minecraft-src/net/minecraft/client/model/geom/ModelLayers.java
2025-07-04 01:41:11 +03:00

242 lines
16 KiB
Java

package net.minecraft.client.model.geom;
import com.google.common.collect.Sets;
import java.util.Set;
import java.util.stream.Stream;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.entity.vehicle.Boat;
import net.minecraft.world.level.block.state.properties.WoodType;
@Environment(EnvType.CLIENT)
public class ModelLayers {
private static final String DEFAULT_LAYER = "main";
private static final Set<ModelLayerLocation> ALL_MODELS = Sets.<ModelLayerLocation>newHashSet();
public static final ModelLayerLocation ALLAY = register("allay");
public static final ModelLayerLocation ARMADILLO = register("armadillo");
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 AXOLOTL = register("axolotl");
public static final ModelLayerLocation BANNER = register("banner");
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 BELL = register("bell");
public static final ModelLayerLocation BLAZE = register("blaze");
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 CAT = register("cat");
public static final ModelLayerLocation CAT_COLLAR = register("cat", "collar");
public static final ModelLayerLocation CAMEL = register("camel");
public static final ModelLayerLocation CAVE_SPIDER = register("cave_spider");
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 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 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 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 DONKEY = register("donkey");
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_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 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 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 GOAT = register("goat");
public static final ModelLayerLocation GUARDIAN = register("guardian");
public static final ModelLayerLocation HOGLIN = register("hoglin");
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 HUSK = register("husk");
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 LEASH_KNOT = register("leash_knot");
public static final ModelLayerLocation LLAMA = register("llama");
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 MINECART = register("minecart");
public static final ModelLayerLocation MOOSHROOM = register("mooshroom");
public static final ModelLayerLocation MULE = register("mule");
public static final ModelLayerLocation OCELOT = register("ocelot");
public static final ModelLayerLocation PANDA = register("panda");
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_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_SADDLE = register("pig", "saddle");
public static final ModelLayerLocation PILLAGER = register("pillager");
public static final ModelLayerLocation PLAYER = register("player");
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 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 RAVAGER = register("ravager");
public static final ModelLayerLocation SALMON = register("salmon");
public static final ModelLayerLocation SHEEP = register("sheep");
public static final ModelLayerLocation SHEEP_FUR = register("sheep", "fur");
public static final ModelLayerLocation SHIELD = register("shield");
public static final ModelLayerLocation SHULKER = register("shulker");
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_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 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 SQUID = register("squid");
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 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 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 VEX = register("vex");
public static final ModelLayerLocation VILLAGER = register("villager");
public static final ModelLayerLocation VINDICATOR = register("vindicator");
public static final ModelLayerLocation WARDEN = register("warden");
public static final ModelLayerLocation WANDERING_TRADER = register("wandering_trader");
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 ZOGLIN = register("zoglin");
public static final ModelLayerLocation ZOMBIE = register("zombie");
public static final ModelLayerLocation ZOMBIE_HEAD = register("zombie_head");
public static final ModelLayerLocation ZOMBIE_HORSE = register("zombie_horse");
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_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_INNER_ARMOR = registerInnerArmor("zombified_piglin");
public static final ModelLayerLocation ZOMBIFIED_PIGLIN_OUTER_ARMOR = registerOuterArmor("zombified_piglin");
private static ModelLayerLocation register(String path) {
return register(path, "main");
}
private static ModelLayerLocation register(String path, String model) {
ModelLayerLocation modelLayerLocation = createLocation(path, model);
if (!ALL_MODELS.add(modelLayerLocation)) {
throw new IllegalStateException("Duplicate registration for " + modelLayerLocation);
} else {
return modelLayerLocation;
}
}
private static ModelLayerLocation createLocation(String path, String model) {
return new ModelLayerLocation(ResourceLocation.withDefaultNamespace(path), model);
}
private static ModelLayerLocation registerInnerArmor(String path) {
return register(path, "inner_armor");
}
private static ModelLayerLocation registerOuterArmor(String path) {
return register(path, "outer_armor");
}
public static ModelLayerLocation createRaftModelName(Boat.Type type) {
return createLocation("raft/" + type.getName(), "main");
}
public static ModelLayerLocation createChestRaftModelName(Boat.Type type) {
return createLocation("chest_raft/" + type.getName(), "main");
}
public static ModelLayerLocation createBoatModelName(Boat.Type type) {
return createLocation("boat/" + type.getName(), "main");
}
public static ModelLayerLocation createChestBoatModelName(Boat.Type type) {
return createLocation("chest_boat/" + type.getName(), "main");
}
public static ModelLayerLocation createSignModelName(WoodType woodType) {
return createLocation("sign/" + woodType.name(), "main");
}
public static ModelLayerLocation createHangingSignModelName(WoodType woodType) {
return createLocation("hanging_sign/" + woodType.name(), "main");
}
public static Stream<ModelLayerLocation> getKnownLocations() {
return ALL_MODELS.stream();
}
}