File size: 25,212 Bytes
d46f4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
package net.minecraft.client.model.geom;

import com.google.common.collect.Sets;
import java.util.Set;
import java.util.stream.Stream;
import net.minecraft.client.renderer.blockentity.HangingSignRenderer;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.level.block.state.properties.WoodType;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;

@OnlyIn(Dist.CLIENT)
public class ModelLayers {
    private static final String DEFAULT_LAYER = "main";
    private static final Set<ModelLayerLocation> ALL_MODELS = Sets.newHashSet();
    public static final ModelLayerLocation ACACIA_BOAT = register("boat/acacia");
    public static final ModelLayerLocation ACACIA_CHEST_BOAT = register("chest_boat/acacia");
    public static final ModelLayerLocation ALLAY = register("allay");
    public static final ModelLayerLocation ARMADILLO = register("armadillo");
    public static final ModelLayerLocation ARMADILLO_BABY = register("armadillo_baby");
    public static final ModelLayerLocation ARMOR_STAND = register("armor_stand");
    public static final ModelLayerLocation ARMOR_STAND_INNER_ARMOR = registerInnerArmor("armor_stand");
    public static final ModelLayerLocation ARMOR_STAND_OUTER_ARMOR = registerOuterArmor("armor_stand");
    public static final ModelLayerLocation ARMOR_STAND_SMALL = register("armor_stand_small");
    public static final ModelLayerLocation ARMOR_STAND_SMALL_INNER_ARMOR = registerInnerArmor("armor_stand_small");
    public static final ModelLayerLocation ARMOR_STAND_SMALL_OUTER_ARMOR = registerOuterArmor("armor_stand_small");
    public static final ModelLayerLocation ARROW = register("arrow");
    public static final ModelLayerLocation AXOLOTL = register("axolotl");
    public static final ModelLayerLocation AXOLOTL_BABY = register("axolotl_baby");
    public static final ModelLayerLocation BAMBOO_CHEST_RAFT = register("chest_boat/bamboo");
    public static final ModelLayerLocation BAMBOO_RAFT = register("boat/bamboo");
    public static final ModelLayerLocation STANDING_BANNER = register("standing_banner");
    public static final ModelLayerLocation STANDING_BANNER_FLAG = register("standing_banner", "flag");
    public static final ModelLayerLocation WALL_BANNER = register("wall_banner");
    public static final ModelLayerLocation WALL_BANNER_FLAG = register("wall_banner", "flag");
    public static final ModelLayerLocation BAT = register("bat");
    public static final ModelLayerLocation BED_FOOT = register("bed_foot");
    public static final ModelLayerLocation BED_HEAD = register("bed_head");
    public static final ModelLayerLocation BEE = register("bee");
    public static final ModelLayerLocation BEE_BABY = register("bee_baby");
    public static final ModelLayerLocation BEE_STINGER = register("bee_stinger");
    public static final ModelLayerLocation BELL = register("bell");
    public static final ModelLayerLocation BIRCH_BOAT = register("boat/birch");
    public static final ModelLayerLocation BIRCH_CHEST_BOAT = register("chest_boat/birch");
    public static final ModelLayerLocation BLAZE = register("blaze");
    public static final ModelLayerLocation BOAT_WATER_PATCH = register("boat", "water_patch");
    public static final ModelLayerLocation BOGGED = register("bogged");
    public static final ModelLayerLocation BOGGED_INNER_ARMOR = registerInnerArmor("bogged");
    public static final ModelLayerLocation BOGGED_OUTER_ARMOR = registerOuterArmor("bogged");
    public static final ModelLayerLocation BOGGED_OUTER_LAYER = register("bogged", "outer");
    public static final ModelLayerLocation BOOK = register("book");
    public static final ModelLayerLocation BREEZE = register("breeze");
    public static final ModelLayerLocation BREEZE_WIND = register("breeze_wind");
    public static final ModelLayerLocation CAMEL = register("camel");
    public static final ModelLayerLocation CAMEL_BABY = register("camel_baby");
    public static final ModelLayerLocation CAT = register("cat");
    public static final ModelLayerLocation CAT_BABY = register("cat_baby");
    public static final ModelLayerLocation CAT_BABY_COLLAR = register("cat_baby", "collar");
    public static final ModelLayerLocation CAT_COLLAR = register("cat", "collar");
    public static final ModelLayerLocation CAVE_SPIDER = register("cave_spider");
    public static final ModelLayerLocation CHERRY_BOAT = register("boat/cherry");
    public static final ModelLayerLocation CHERRY_CHEST_BOAT = register("chest_boat/cherry");
    public static final ModelLayerLocation CHEST = register("chest");
    public static final ModelLayerLocation CHEST_MINECART = register("chest_minecart");
    public static final ModelLayerLocation CHICKEN = register("chicken");
    public static final ModelLayerLocation CHICKEN_BABY = register("chicken_baby");
    public static final ModelLayerLocation COD = register("cod");
    public static final ModelLayerLocation COMMAND_BLOCK_MINECART = register("command_block_minecart");
    public static final ModelLayerLocation CONDUIT_CAGE = register("conduit", "cage");
    public static final ModelLayerLocation CONDUIT_EYE = register("conduit", "eye");
    public static final ModelLayerLocation CONDUIT_SHELL = register("conduit", "shell");
    public static final ModelLayerLocation CONDUIT_WIND = register("conduit", "wind");
    public static final ModelLayerLocation COW = register("cow");
    public static final ModelLayerLocation COW_BABY = register("cow_baby");
    public static final ModelLayerLocation CREAKING = register("creaking");
    public static final ModelLayerLocation CREEPER = register("creeper");
    public static final ModelLayerLocation CREEPER_ARMOR = register("creeper", "armor");
    public static final ModelLayerLocation CREEPER_HEAD = register("creeper_head");
    public static final ModelLayerLocation DARK_OAK_BOAT = register("boat/dark_oak");
    public static final ModelLayerLocation DARK_OAK_CHEST_BOAT = register("chest_boat/dark_oak");
    public static final ModelLayerLocation DECORATED_POT_BASE = register("decorated_pot_base");
    public static final ModelLayerLocation DECORATED_POT_SIDES = register("decorated_pot_sides");
    public static final ModelLayerLocation DOLPHIN = register("dolphin");
    public static final ModelLayerLocation DOLPHIN_BABY = register("dolphin_baby");
    public static final ModelLayerLocation DONKEY = register("donkey");
    public static final ModelLayerLocation DONKEY_BABY = register("donkey_baby");
    public static final ModelLayerLocation DOUBLE_CHEST_LEFT = register("double_chest_left");
    public static final ModelLayerLocation DOUBLE_CHEST_RIGHT = register("double_chest_right");
    public static final ModelLayerLocation DRAGON_SKULL = register("dragon_skull");
    public static final ModelLayerLocation DROWNED = register("drowned");
    public static final ModelLayerLocation DROWNED_BABY = register("drowned_baby");
    public static final ModelLayerLocation DROWNED_BABY_INNER_ARMOR = registerInnerArmor("drowned_baby");
    public static final ModelLayerLocation DROWNED_BABY_OUTER_ARMOR = registerOuterArmor("drowned_baby");
    public static final ModelLayerLocation DROWNED_BABY_OUTER_LAYER = register("drowned_baby", "outer");
    public static final ModelLayerLocation DROWNED_INNER_ARMOR = registerInnerArmor("drowned");
    public static final ModelLayerLocation DROWNED_OUTER_ARMOR = registerOuterArmor("drowned");
    public static final ModelLayerLocation DROWNED_OUTER_LAYER = register("drowned", "outer");
    public static final ModelLayerLocation ELDER_GUARDIAN = register("elder_guardian");
    public static final ModelLayerLocation ELYTRA = register("elytra");
    public static final ModelLayerLocation ELYTRA_BABY = register("elytra_baby");
    public static final ModelLayerLocation ENDERMAN = register("enderman");
    public static final ModelLayerLocation ENDERMITE = register("endermite");
    public static final ModelLayerLocation ENDER_DRAGON = register("ender_dragon");
    public static final ModelLayerLocation END_CRYSTAL = register("end_crystal");
    public static final ModelLayerLocation EVOKER = register("evoker");
    public static final ModelLayerLocation EVOKER_FANGS = register("evoker_fangs");
    public static final ModelLayerLocation FOX = register("fox");
    public static final ModelLayerLocation FOX_BABY = register("fox_baby");
    public static final ModelLayerLocation FROG = register("frog");
    public static final ModelLayerLocation FURNACE_MINECART = register("furnace_minecart");
    public static final ModelLayerLocation GHAST = register("ghast");
    public static final ModelLayerLocation GIANT = register("giant");
    public static final ModelLayerLocation GIANT_INNER_ARMOR = registerInnerArmor("giant");
    public static final ModelLayerLocation GIANT_OUTER_ARMOR = registerOuterArmor("giant");
    public static final ModelLayerLocation GLOW_SQUID = register("glow_squid");
    public static final ModelLayerLocation GLOW_SQUID_BABY = register("glow_squid_baby");
    public static final ModelLayerLocation GOAT = register("goat");
    public static final ModelLayerLocation GOAT_BABY = register("goat_baby");
    public static final ModelLayerLocation GUARDIAN = register("guardian");
    public static final ModelLayerLocation HOGLIN = register("hoglin");
    public static final ModelLayerLocation HOGLIN_BABY = register("hoglin_baby");
    public static final ModelLayerLocation HOPPER_MINECART = register("hopper_minecart");
    public static final ModelLayerLocation HORSE = register("horse");
    public static final ModelLayerLocation HORSE_ARMOR = register("horse_armor");
    public static final ModelLayerLocation HORSE_BABY = register("horse_baby");
    public static final ModelLayerLocation HORSE_BABY_ARMOR = register("horse_armor_baby");
    public static final ModelLayerLocation HUSK = register("husk");
    public static final ModelLayerLocation HUSK_BABY = register("husk_baby");
    public static final ModelLayerLocation HUSK_BABY_INNER_ARMOR = registerInnerArmor("husk_baby");
    public static final ModelLayerLocation HUSK_BABY_OUTER_ARMOR = registerOuterArmor("husk_baby");
    public static final ModelLayerLocation HUSK_INNER_ARMOR = registerInnerArmor("husk");
    public static final ModelLayerLocation HUSK_OUTER_ARMOR = registerOuterArmor("husk");
    public static final ModelLayerLocation ILLUSIONER = register("illusioner");
    public static final ModelLayerLocation IRON_GOLEM = register("iron_golem");
    public static final ModelLayerLocation JUNGLE_BOAT = register("boat/jungle");
    public static final ModelLayerLocation JUNGLE_CHEST_BOAT = register("chest_boat/jungle");
    public static final ModelLayerLocation LEASH_KNOT = register("leash_knot");
    public static final ModelLayerLocation LLAMA = register("llama");
    public static final ModelLayerLocation LLAMA_BABY = register("llama_baby");
    public static final ModelLayerLocation LLAMA_BABY_DECOR = register("llama_baby", "decor");
    public static final ModelLayerLocation LLAMA_DECOR = register("llama", "decor");
    public static final ModelLayerLocation LLAMA_SPIT = register("llama_spit");
    public static final ModelLayerLocation MAGMA_CUBE = register("magma_cube");
    public static final ModelLayerLocation MANGROVE_BOAT = register("boat/mangrove");
    public static final ModelLayerLocation MANGROVE_CHEST_BOAT = register("chest_boat/mangrove");
    public static final ModelLayerLocation MINECART = register("minecart");
    public static final ModelLayerLocation MOOSHROOM = register("mooshroom");
    public static final ModelLayerLocation MOOSHROOM_BABY = register("mooshroom_baby");
    public static final ModelLayerLocation MULE = register("mule");
    public static final ModelLayerLocation MULE_BABY = register("mule_baby");
    public static final ModelLayerLocation OAK_BOAT = register("boat/oak");
    public static final ModelLayerLocation OAK_CHEST_BOAT = register("chest_boat/oak");
    public static final ModelLayerLocation OCELOT = register("ocelot");
    public static final ModelLayerLocation OCELOT_BABY = register("ocelot_baby");
    public static final ModelLayerLocation PALE_OAK_BOAT = register("boat/pale_oak");
    public static final ModelLayerLocation PALE_OAK_CHEST_BOAT = register("chest_boat/pale_oak");
    public static final ModelLayerLocation PANDA = register("panda");
    public static final ModelLayerLocation PANDA_BABY = register("panda_baby");
    public static final ModelLayerLocation PARROT = register("parrot");
    public static final ModelLayerLocation PHANTOM = register("phantom");
    public static final ModelLayerLocation PIG = register("pig");
    public static final ModelLayerLocation PIGLIN = register("piglin");
    public static final ModelLayerLocation PIGLIN_BABY = register("piglin_baby");
    public static final ModelLayerLocation PIGLIN_BABY_INNER_ARMOR = registerInnerArmor("piglin_baby");
    public static final ModelLayerLocation PIGLIN_BABY_OUTER_ARMOR = registerOuterArmor("piglin_baby");
    public static final ModelLayerLocation PIGLIN_BRUTE = register("piglin_brute");
    public static final ModelLayerLocation PIGLIN_BRUTE_INNER_ARMOR = registerInnerArmor("piglin_brute");
    public static final ModelLayerLocation PIGLIN_BRUTE_OUTER_ARMOR = registerOuterArmor("piglin_brute");
    public static final ModelLayerLocation PIGLIN_HEAD = register("piglin_head");
    public static final ModelLayerLocation PIGLIN_INNER_ARMOR = registerInnerArmor("piglin");
    public static final ModelLayerLocation PIGLIN_OUTER_ARMOR = registerOuterArmor("piglin");
    public static final ModelLayerLocation PIG_BABY = register("pig_baby");
    public static final ModelLayerLocation PIG_BABY_SADDLE = register("pig_baby", "saddle");
    public static final ModelLayerLocation PIG_SADDLE = register("pig", "saddle");
    public static final ModelLayerLocation PILLAGER = register("pillager");
    public static final ModelLayerLocation PLAYER = register("player");
    public static final ModelLayerLocation PLAYER_CAPE = register("player", "cape");
    public static final ModelLayerLocation PLAYER_EARS = register("player", "ears");
    public static final ModelLayerLocation PLAYER_HEAD = register("player_head");
    public static final ModelLayerLocation PLAYER_INNER_ARMOR = registerInnerArmor("player");
    public static final ModelLayerLocation PLAYER_OUTER_ARMOR = registerOuterArmor("player");
    public static final ModelLayerLocation PLAYER_SLIM = register("player_slim");
    public static final ModelLayerLocation PLAYER_SLIM_INNER_ARMOR = registerInnerArmor("player_slim");
    public static final ModelLayerLocation PLAYER_SLIM_OUTER_ARMOR = registerOuterArmor("player_slim");
    public static final ModelLayerLocation PLAYER_SPIN_ATTACK = register("spin_attack");
    public static final ModelLayerLocation POLAR_BEAR = register("polar_bear");
    public static final ModelLayerLocation POLAR_BEAR_BABY = register("polar_bear_baby");
    public static final ModelLayerLocation PUFFERFISH_BIG = register("pufferfish_big");
    public static final ModelLayerLocation PUFFERFISH_MEDIUM = register("pufferfish_medium");
    public static final ModelLayerLocation PUFFERFISH_SMALL = register("pufferfish_small");
    public static final ModelLayerLocation RABBIT = register("rabbit");
    public static final ModelLayerLocation RABBIT_BABY = register("rabbit_baby");
    public static final ModelLayerLocation RAVAGER = register("ravager");
    public static final ModelLayerLocation SALMON = register("salmon");
    public static final ModelLayerLocation SALMON_LARGE = register("salmon_large");
    public static final ModelLayerLocation SALMON_SMALL = register("salmon_small");
    public static final ModelLayerLocation SHEEP = register("sheep");
    public static final ModelLayerLocation SHEEP_BABY = register("sheep_baby");
    public static final ModelLayerLocation SHEEP_BABY_WOOL = register("sheep_baby", "wool");
    public static final ModelLayerLocation SHEEP_WOOL = register("sheep", "wool");
    public static final ModelLayerLocation SHIELD = register("shield");
    public static final ModelLayerLocation SHULKER = register("shulker");
    public static final ModelLayerLocation SHULKER_BOX = register("shulker_box");
    public static final ModelLayerLocation SHULKER_BULLET = register("shulker_bullet");
    public static final ModelLayerLocation SILVERFISH = register("silverfish");
    public static final ModelLayerLocation SKELETON = register("skeleton");
    public static final ModelLayerLocation SKELETON_HORSE = register("skeleton_horse");
    public static final ModelLayerLocation SKELETON_HORSE_BABY = register("skeleton_horse_baby");
    public static final ModelLayerLocation SKELETON_INNER_ARMOR = registerInnerArmor("skeleton");
    public static final ModelLayerLocation SKELETON_OUTER_ARMOR = registerOuterArmor("skeleton");
    public static final ModelLayerLocation SKELETON_SKULL = register("skeleton_skull");
    public static final ModelLayerLocation SLIME = register("slime");
    public static final ModelLayerLocation SLIME_OUTER = register("slime", "outer");
    public static final ModelLayerLocation SNIFFER = register("sniffer");
    public static final ModelLayerLocation SNIFFER_BABY = register("sniffer_baby");
    public static final ModelLayerLocation SNOW_GOLEM = register("snow_golem");
    public static final ModelLayerLocation SPAWNER_MINECART = register("spawner_minecart");
    public static final ModelLayerLocation SPIDER = register("spider");
    public static final ModelLayerLocation SPRUCE_BOAT = register("boat/spruce");
    public static final ModelLayerLocation SPRUCE_CHEST_BOAT = register("chest_boat/spruce");
    public static final ModelLayerLocation SQUID = register("squid");
    public static final ModelLayerLocation SQUID_BABY = register("squid_baby");
    public static final ModelLayerLocation STRAY = register("stray");
    public static final ModelLayerLocation STRAY_INNER_ARMOR = registerInnerArmor("stray");
    public static final ModelLayerLocation STRAY_OUTER_ARMOR = registerOuterArmor("stray");
    public static final ModelLayerLocation STRAY_OUTER_LAYER = register("stray", "outer");
    public static final ModelLayerLocation STRIDER = register("strider");
    public static final ModelLayerLocation STRIDER_SADDLE = register("strider", "saddle");
    public static final ModelLayerLocation STRIDER_BABY = register("strider_baby");
    public static final ModelLayerLocation STRIDER_BABY_SADDLE = register("strider_baby", "saddle");
    public static final ModelLayerLocation TADPOLE = register("tadpole");
    public static final ModelLayerLocation TNT_MINECART = register("tnt_minecart");
    public static final ModelLayerLocation TRADER_LLAMA = register("trader_llama");
    public static final ModelLayerLocation TRADER_LLAMA_BABY = register("trader_llama_baby");
    public static final ModelLayerLocation TRIDENT = register("trident");
    public static final ModelLayerLocation TROPICAL_FISH_LARGE = register("tropical_fish_large");
    public static final ModelLayerLocation TROPICAL_FISH_LARGE_PATTERN = register("tropical_fish_large", "pattern");
    public static final ModelLayerLocation TROPICAL_FISH_SMALL = register("tropical_fish_small");
    public static final ModelLayerLocation TROPICAL_FISH_SMALL_PATTERN = register("tropical_fish_small", "pattern");
    public static final ModelLayerLocation TURTLE = register("turtle");
    public static final ModelLayerLocation TURTLE_BABY = register("turtle_baby");
    public static final ModelLayerLocation VEX = register("vex");
    public static final ModelLayerLocation VILLAGER = register("villager");
    public static final ModelLayerLocation VILLAGER_BABY = register("villager_baby");
    public static final ModelLayerLocation VINDICATOR = register("vindicator");
    public static final ModelLayerLocation WANDERING_TRADER = register("wandering_trader");
    public static final ModelLayerLocation WARDEN = register("warden");
    public static final ModelLayerLocation WIND_CHARGE = register("wind_charge");
    public static final ModelLayerLocation WITCH = register("witch");
    public static final ModelLayerLocation WITHER = register("wither");
    public static final ModelLayerLocation WITHER_ARMOR = register("wither", "armor");
    public static final ModelLayerLocation WITHER_SKELETON = register("wither_skeleton");
    public static final ModelLayerLocation WITHER_SKELETON_INNER_ARMOR = registerInnerArmor("wither_skeleton");
    public static final ModelLayerLocation WITHER_SKELETON_OUTER_ARMOR = registerOuterArmor("wither_skeleton");
    public static final ModelLayerLocation WITHER_SKELETON_SKULL = register("wither_skeleton_skull");
    public static final ModelLayerLocation WITHER_SKULL = register("wither_skull");
    public static final ModelLayerLocation WOLF = register("wolf");
    public static final ModelLayerLocation WOLF_ARMOR = register("wolf_armor");
    public static final ModelLayerLocation WOLF_BABY = register("wolf_baby");
    public static final ModelLayerLocation WOLF_BABY_ARMOR = register("wolf_baby_armor");
    public static final ModelLayerLocation ZOGLIN = register("zoglin");
    public static final ModelLayerLocation ZOGLIN_BABY = register("zoglin_baby");
    public static final ModelLayerLocation ZOMBIE = register("zombie");
    public static final ModelLayerLocation ZOMBIE_BABY = register("zombie_baby");
    public static final ModelLayerLocation ZOMBIE_BABY_INNER_ARMOR = registerInnerArmor("zombie_baby");
    public static final ModelLayerLocation ZOMBIE_BABY_OUTER_ARMOR = registerOuterArmor("zombie_baby");
    public static final ModelLayerLocation ZOMBIE_HEAD = register("zombie_head");
    public static final ModelLayerLocation ZOMBIE_HORSE = register("zombie_horse");
    public static final ModelLayerLocation ZOMBIE_HORSE_BABY = register("zombie_horse_baby");
    public static final ModelLayerLocation ZOMBIE_INNER_ARMOR = registerInnerArmor("zombie");
    public static final ModelLayerLocation ZOMBIE_OUTER_ARMOR = registerOuterArmor("zombie");
    public static final ModelLayerLocation ZOMBIE_VILLAGER = register("zombie_villager");
    public static final ModelLayerLocation ZOMBIE_VILLAGER_BABY = register("zombie_villager_baby");
    public static final ModelLayerLocation ZOMBIE_VILLAGER_BABY_INNER_ARMOR = registerInnerArmor("zombie_villager_baby");
    public static final ModelLayerLocation ZOMBIE_VILLAGER_BABY_OUTER_ARMOR = registerOuterArmor("zombie_villager_baby");
    public static final ModelLayerLocation ZOMBIE_VILLAGER_INNER_ARMOR = registerInnerArmor("zombie_villager");
    public static final ModelLayerLocation ZOMBIE_VILLAGER_OUTER_ARMOR = registerOuterArmor("zombie_villager");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN = register("zombified_piglin");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN_BABY = register("zombified_piglin_baby");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN_BABY_INNER_ARMOR = registerInnerArmor("zombified_piglin_baby");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN_BABY_OUTER_ARMOR = registerOuterArmor("zombified_piglin_baby");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN_INNER_ARMOR = registerInnerArmor("zombified_piglin");
    public static final ModelLayerLocation ZOMBIFIED_PIGLIN_OUTER_ARMOR = registerOuterArmor("zombified_piglin");

    private static ModelLayerLocation register(String p_171294_) {
        return register(p_171294_, "main");
    }

    private static ModelLayerLocation register(String p_171296_, String p_171297_) {
        ModelLayerLocation modellayerlocation = createLocation(p_171296_, p_171297_);
        if (!ALL_MODELS.add(modellayerlocation)) {
            throw new IllegalStateException("Duplicate registration for " + modellayerlocation);
        } else {
            return modellayerlocation;
        }
    }

    private static ModelLayerLocation createLocation(String p_171301_, String p_171302_) {
        return new ModelLayerLocation(ResourceLocation.withDefaultNamespace(p_171301_), p_171302_);
    }

    private static ModelLayerLocation registerInnerArmor(String p_171299_) {
        return register(p_171299_, "inner_armor");
    }

    private static ModelLayerLocation registerOuterArmor(String p_171304_) {
        return register(p_171304_, "outer_armor");
    }

    public static ModelLayerLocation createStandingSignModelName(WoodType p_171292_) {
        return createLocation("sign/standing/" + p_171292_.name(), "main");
    }

    public static ModelLayerLocation createWallSignModelName(WoodType p_363532_) {
        return createLocation("sign/wall/" + p_363532_.name(), "main");
    }

    public static ModelLayerLocation createHangingSignModelName(WoodType p_252225_, HangingSignRenderer.AttachmentType p_378070_) {
        return createLocation("hanging_sign/" + p_252225_.name() + "/" + p_378070_.getSerializedName(), "main");
    }

    public static Stream<ModelLayerLocation> getKnownLocations() {
        return ALL_MODELS.stream();
    }
}