Custom Time Rotors
As of version 5.5.0 you can add custom time rotor models for the TARDIS console.
For TARDIS v6.x.x and Minecraft 1.21.4+
The files for these examples are included in the TARDIS Resource Pack.
Custom time rotor models are defined in plugins/TARDIS/custom_time_rotors.yml, an example entry is shown below:
# this entry is FuzzyLeo's classic time rotor
classic:
# the material of the animated rotor item
# material must be unique for each rotor, the plugin already uses:
# BLACK_DYE, ORANGE_DYE, BROWN_DYE, GRAY_DYE, CYAN_DYE, LIGHT_BLUE_DYE, BLUE_DYE, WHITE_DYE
animated_material: YELLOW_DYE
# a comma separated list of frame numbers to determine the
# model definition file names e.g. time_rotor_classic_0.json
# animation states will need to be set with model definitions
# in the assets/tardis/items/ resource pack folder
animation_sequence: 0,1,2,3,4,5,6,7
# the animation frame rate in ticks
frame_rate: 6
Model definitions
A model definition for the rotor's inventory item must be added as a "minecraft:custom_name" predicate in assets/minecraft/items/light_gray_dye.json
{
"model": {
"type": "minecraft:select",
"property": "component",
"component": "minecraft:custom_name",
"fallback": {
"type": "minecraft:model",
"model": "minecraft:item/light_gray_dye"
},
"cases": [
...,
{
"when": {
"color": "white",
"text": "Time Rotor Classic",
"italic": false
},
"model": {
"type": "minecraft:model",
"model": "tardis:item/time_rotor/time_rotor_classic_off"
}
},
...
]
}
}
Time rotor off state
The time rotor off state will need to be set with model definitions in the assets/tardis/items/
resource pack folder.
The file name should follow the format:
time_rotor_XXX_off.json
Where XXX
is the time rotor name from custom_time_rotors.yml e.g.:
time_rotor_classic_off.json
The model definition should point to the item model for the off state somewhere in assets/tardis/models/item/
, for example:
{
"model": {
"type": "minecraft:model",
"model": "tardis:item/time_rotor/time_rotor_classic_off"
}
}
Time rotor animation states
The time rotor animation states will need to be set with model definitions in the assets/tardis/items/
resource pack folder.
The file names should follow the format:
time_rotor_XXX_N.json
Where XXX
is the time rotor name from custom_time_rotors.yml and N
is the number in the animation sequence e.g.:
time_rotor_classic_0.json
time_rotor_classic_1.json
time_rotor_classic_2.json
time_rotor_classic_3.json
time_rotor_classic_4.json
time_rotor_classic_5.json
time_rotor_classic_6.json
time_rotor_classic_7.json
The model definition should point to the item model for the animation somewhere in assets/tardis/models/item/
, for example:
{
"model": {
"type": "minecraft:model",
"model": "tardis:item/time_rotor/classic/classic_4"
}
}
Prior to TARDIS v6.x.x
Custom time rotor models are defined in plugins/TARDIS/custom_time_rotors.yml, an example entry is shown below:
classic:
off_custom_model_data: 10000010
animated_material: YELLOW_DYE
animation_sequence: 0,1,2,3,4,5,6,7
frame_rate: 6
Config | Type | Default |
---|---|---|
classic: | ||
off_custom_model_data | number | 10000010 |
Custom model data for the rotor's inventory item and off state model, must be added as a "custom_model_data" predicate in assets/minecraft/models/item/light_gray_dye.json - must be higher than 10000009 | ||
animated_material | string | YELLOW_DYE |
The material of the animated rotor item, animation states will need to be set with "custom_model_data" predicates in assets/minecraft/models/item/[animated_material].json, starting at 1021 . Material must be unique for each rotor, the plugin already uses BLACK_DYE, ORANGE_DYE, BROWN_DYE, GRAY_DYE, CYAN_DYE, LIGHT_BLUE_DYE, BLUE_DYE, WHITE_DYE | ||
animation_sequence | string | 0,1,2,3,4,5,6,7 |
A comma separated list of frame numbers where the number is added to the starting animation frame to get the "custom_model_data" predicate e.g. 1021 + 3 = 1024 | ||
frame_rate | number | 6 |
The animation frame rate in server ticks |
Example model overrides
Inventory item / off state go in light_gray_dye.json:
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/light_gray_dye"
},
"overrides": [
# {other predicates}...
{"predicate": {"custom_model_data": 10000010}, "model": "tardis:item/time_rotor/classic/classic_0"}
]
}
Animation states go in yellow_dye.json:
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/yellow_dye"
},
"overrides": [
# {other predicates}...
{"predicate": {"custom_model_data":1021}, "model": "tardis:item/time_rotor/classic/classic_0"},
{"predicate": {"custom_model_data":1022}, "model": "tardis:item/time_rotor/classic/classic_1"},
{"predicate": {"custom_model_data":1023}, "model": "tardis:item/time_rotor/classic/classic_2"},
{"predicate": {"custom_model_data":1024}, "model": "tardis:item/time_rotor/classic/classic_3"},
{"predicate": {"custom_model_data":1025}, "model": "tardis:item/time_rotor/classic/classic_4"},
{"predicate": {"custom_model_data":1026}, "model": "tardis:item/time_rotor/classic/classic_5"},
{"predicate": {"custom_model_data":1027}, "model": "tardis:item/time_rotor/classic/classic_6"},
{"predicate": {"custom_model_data":1028}, "model": "tardis:item/time_rotor/classic/classic_7"},
# {other predicates}...
]
}
Placing custom rotors
- Craft one and place it - see Adding a time rotor.
- Use tab completion for the
/trecipe
command to see the recipe. - Time rotor recipes are all generic, the plugin generates a recipe from the
animated_material
you specify in the custom time rotor config.