Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Feb 3, 2026

Implements a preset system for Creative TARDIS placement. When placing a Creative TARDIS, a GUI opens allowing players to select from datapack-defined presets that configure exterior, console, desktop, hum, sounds, and vortex in a single action.

Core Implementation

  • TardisPreset: Record with optional fields for 8 customization elements, loaded from data/[namespace]/preset/*.json
  • TardisPresetRegistry: Extends SimpleDatapackRegistry for datapack loading and syncing
  • TardisPresetHandler: Server-side packet handler for preset confirmation
  • CreativePresetScreen: GUI with element preview cycling—3D spinning models for exteriors/consoles, texture preview for desktops, sound playback buttons, scissor-clipped vortex preview

Default Presets

Hartnell (fallback), Crystalline, Toyota, Copper, Coral, Renaissance, Steam, Alnico, Hudolin, Hourglass

Example Preset JSON

{
  "id": "ait:coral",
  "name": "Coral",
  "exterior": "ait:exterior/police_box/coral",
  "console": "ait:console/coral",
  "desktop": "ait:coral",
  "hum": "ait:coral",
  "vortex": "ait:tennantblue"
}

All fields except id and name are optional—omitted values fall back to Hartnell preset defaults.

Console Variant Application

Console variant stored via ExtraHandler.setPendingConsoleVariant() after TARDIS creation. Applied when ConsoleBlockEntity.onLinked() fires, handling the case where interior may not be loaded at creation time.

Translations

Generated via datagen in AITModDataGenerator.

Original prompt

This section details on the original issue you should resolve

<issue_title>Dedicated Creative TARDIS "Presets"</issue_title>
<issue_description>### Description

Datapackable TARDIS Presets.

Images, links & related resources

For TARDIS', we should add "presets". For example, we have 8 customizable features of the TARDIS that the player can modify:

  • Exterior
  • Console
  • Desktop
  • Hum
  • Takeoff Sound
  • Flight Sound
  • Landing Sound
  • Vortex

And with these customization options, we can make presets that are datapackable. In the mod currently, we have this system set up (sort of) that dictate just the exterior and desktop when placing down a Creative TARDIS. If we were to implement this feature, it would probably be as follows:

Crystalline Preset:

  • Tokamak Exterior (they're the same)
  • Crystalline Console
  • Crystalline Desktop
  • Crystalline Hum
  • Default Takeoff
  • Default Flight
  • Default Landing
  • Crystal Vortex

Toyota Preset:

  • Default Exterior
  • Toyota Console
  • Toyota Desktop
  • Toyota Hum
  • Default Takeoff
  • Default Flight
  • Default Landing
  • Capaldi Vortex

Copper Preset:

  • Default Exterior
  • Copper Console
  • Copper Desktop
  • Copper Hum
  • Default Takeoff
  • Default Flight
  • Default Landing
  • Copper Vortex

Coral Preset:

  • Coral Exterior
  • Coral Console
  • Coral Desktop
  • Coral Hum
  • Default Takeoff
  • Default Flight
  • Default Landing
  • Tennant Blue Vortex

I've checked the feature requests...

  • ...and this feature request was not requested before.
    </issue_description>

<agent_instructions>All of the given preset values should be optional, with the fallback being whatever matches the Hartnell/Classic preset (You may need to create a Hartnell preset)
When you place down a Creative TARDIS (tardis_item), a GUI should open which has the generic tardis screen background
It should have a way to select which preset you want to use
When you have a preset selected, it will preview the elements of the preset
You can select what element you want to preview, and it will also idly iterate through the elements.
For the exterior and console, it should render a spinning 3D preview of the model
For the desktop, it should render the preview texture of the desktop
For the sound related (including hums), it should be a button which allows you to play the sound (When the next element is previewed, the sound is stopped)
The Vortex should fully render in the preview, animated and all.

Then when you confirm the selection, it should place the TARDIS with all the elements
For the console, you will want to find the first ConsoleBlockEntity inside the TARDIS and set its variant - although the interior world / structure may not be loaded yet!

You should frequently run gradle build to ensure that your code is up to scratch
Do not run code security due to its incompatibility with this repository.

Do you have any questions before continuing?</agent_instructions>

Comments on the Issue (you are @copilot in this section)


✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.

Copilot AI and others added 4 commits February 3, 2026 01:27
Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
…nd code style

Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
…leDatapackRegistry

Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
Copilot AI changed the title [WIP] Add dedicated creative TARDIS presets feature Add datapackable Creative TARDIS Presets with GUI selection Feb 3, 2026
Copilot AI requested a review from duzos February 3, 2026 01:41
@duzos duzos requested a review from drtheodor February 3, 2026 01:53
@github-actions github-actions bot added the S: Needs Review Status: Requires additional reviews before being fully accepted. label Feb 3, 2026
…rendering, and add more presets

Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
Copilot AI and others added 2 commits February 3, 2026 02:11
Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
…utton position, improve vortex preview

Co-authored-by: duzos <73184526+duzos@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

S: Needs Review Status: Requires additional reviews before being fully accepted.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dedicated Creative TARDIS "Presets"

2 participants