Custom Doors
As of version 5.6.0 you can add custom door models for the TARDIS console.
Custom door models are defined in plugins/TARDIS/custom_doors.yml, an example entry is shown below:
# this entry is the police box door, but centred on a block
centred:
material: ANGLER_POTTERY_SHERD
animation_sequence: 0,1,2
frame_rate: 6
has_extra: true
open_sound: tardis_door_open
close_sound: tardis_door_close
For TARDIS v6.x.x and Minecraft 1.21.4+
Config | Type | Default |
---|---|---|
centred: | ||
material | string | ANGLER_POTTERY_SHERD |
The material of the door item display - MUST be an unused pottery sherd, one of ANGLER_POTTERY_SHERD , ARCHER_POTTERY_SHERD , ARMS_UP_POTTERY_SHERD , BLADE_POTTERY_SHERD , BREWER_POTTERY_SHERD , BURN_POTTERY_SHERD , DANGER_POTTERY_SHERD , EXPLORER_POTTERY_SHERD , FLOW_POTTERY_SHERD , FRIEND_POTTERY_SHERD , GUSTER_POTTERY_SHERD , HEART_POTTERY_SHERD , HEARTBREAK_POTTERY_SHERD , HOWL_POTTERY_SHERD , MINER_POTTERY_SHERD , MOURNER_POTTERY_SHERD , PLENTY_POTTERY_SHERD , PRIZE_POTTERY_SHERD , SCRAPE_POTTERY_SHERD , SHEAF_POTTERY_SHERD , SHELTER_POTTERY_SHERD , SKULL_POTTERY_SHERD , SNORT_POTTERY_SHERD . | ||
animation_sequence | string | 0,1,2 |
A comma separated list of frame numbers where the number is added to the item model’s file name. Door states will need to be saved as separate JSON model definition files in assets/tardis/items/ with the following naming scheme (where xxx = the name value above - assets/tardis/items/xxx_[zero-based sequential frame number].json . In this example the open animation would be 0, 1, 2, open and the closed animation would be 2, 1, 0, closed . | ||
frame_rate | number | 6 |
The animation frame rate in ticks | ||
has_extra | boolean | true |
Whether the door has a third state activated by crouch-right-clicking e.g. the double police door has one side open, closed, and a third "both sides open" state. The JSON model definition file name for this state should be xxx_extra e.g.: assets/tardis/items/centred_extra.json . | ||
open_sound | string | tardis_door_open |
SFX - If using new custom sounds, you will need to add entries to assets/minecraft/sounds.json and save .ogg files to assets/tardis/sounds/ in the resource pack. This one is the sound for when the door opens. | ||
close_sound | string | tardis_door_close |
The sound for when the door closes. |
Model definitions
Model definitions should be located in assets/tardis/items
with specific names:
State | Filename suffix |
---|---|
door closed | _closed |
door open | _open |
door extra | _extra |
door animation | _[frame number] |
Using the suffixes above, the example centred preset files would be named:
centred_closed.json
centred_open.json
centred_extra.json
centred_0.json
centred_1.json
centred_2.json
The model definition in these files then points to the actual item model found somewhere in assets/tardis/models/item/
, for example:
{
"model": {
"type": "minecraft:model",
"model": "tardis:item/doors/centred_open"
}
}
Once set up this way and the resource pack reloaded, you can use the minecraft:give
command to test the models are working:
/give @s angler_pottery_sherd[item_model="tardis:centred_open"]
Or alternatively, use the resource pack debug preview feature.
Prior to TARDIS v6.x.x
Config | Type | Default |
---|---|---|
centred: | ||
material | string | ANGLER_POTTERY_SHERD |
The material of the door item display - MUST be an unused pottery sherd, one of ANGLER_POTTERY_SHERD , ARCHER_POTTERY_SHERD , ARMS_UP_POTTERY_SHERD , BLADE_POTTERY_SHERD , BREWER_POTTERY_SHERD , BURN_POTTERY_SHERD , DANGER_POTTERY_SHERD , EXPLORER_POTTERY_SHERD , FRIEND_POTTERY_SHERD , HEART_POTTERY_SHERD , HEARTBREAK_POTTERY_SHERD , HOWL_POTTERY_SHERD , MINER_POTTERY_SHERD , MOURNER_POTTERY_SHERD , PLENTY_POTTERY_SHERD , PRIZE_POTTERY_SHERD , SHEAF_POTTERY_SHERD , SHELTER_POTTERY_SHERD , SKULL_POTTERY_SHERD , SNORT_POTTERY_SHERD , 1.21+ FLOW_POTTERY_SHERD , GUSTER_POTTERY_SHERD , SCRAPE_POTTERY_SHERD . Open/closed/animation states will need to be set with "custom_model_data" predicates in assets/minecraft/models/item/[xxx_pottery_sherd].json starting at 10000 | ||
animation_sequence | string | 0,1,2,3,4 |
A comma separated list of frame numbers where the number is added to the starting (closed) animation frame to get the "custom_model_data" predicate e.g. 10000 + 3 = 10003 - in this example, 0 => closed, 4 => fully open, but for a simple door 0,1 would be just closed and open. | ||
frame_rate | number | 6 |
The animation frame rate in ticks | ||
has_extra | boolean | true |
Whether the door has a third state activated by crouch-right-clicking e.g. the double police door has one side open, closed, and a third "both sides open" state. The "custom_model_data" predicate for this state should be 1 greater than the highest value of the animation_sequence, for this example it would be 5 . | ||
open_sound | string | tardis_door_open |
SFX - If using new custom sounds, you will need to add entries to assets/minecraft/sounds.json and save .ogg files to assets/tardis/sounds/ in the resource pack. This one is the sound for when the door opens. | ||
close_sound | string | tardis_door_close |
The sound for when the door closes. |
Example model overrides
Door model custom_model_data
predicates go in angler_pottery_sherd.json:
{
"parent": "minecraft:item/generated",
"textures": {
"layer0": "minecraft:item/angler_pottery_sherd"
},
"overrides": [
{"predicate": {"custom_model_data":10000}, "model": "tardis:block/tardis/police_box_door_0"},
{"predicate": {"custom_model_data":10001}, "model": "tardis:block/tardis/police_box_door_1"},
{"predicate": {"custom_model_data":10002}, "model": "tardis:block/tardis/police_box_door_2"},
{"predicate": {"custom_model_data":10003}, "model": "tardis:block/tardis/police_box_door_3"},
{"predicate": {"custom_model_data":10004}, "model": "tardis:block/tardis/police_box_door_4"},
{"predicate": {"custom_model_data":10005}, "model": "tardis:block/tardis/police_box_door_both"}
]
}