/* * Decompiled with CFR 0.152. * * Could not load the following classes: * com.google.common.collect.Maps * com.google.common.collect.Sets */ package net.minecraft.client.data.models.model; import com.google.common.collect.Maps; import com.google.common.collect.Sets; import java.util.Map; import java.util.Set; import java.util.stream.Stream; import net.minecraft.client.data.models.model.TextureSlot; import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.resources.Identifier; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; public class TextureMapping { private final Map slots = Maps.newHashMap(); private final Set forcedSlots = Sets.newHashSet(); public TextureMapping put(TextureSlot slot, Identifier id) { this.slots.put(slot, id); return this; } public TextureMapping putForced(TextureSlot slot, Identifier id) { this.slots.put(slot, id); this.forcedSlots.add(slot); return this; } public Stream getForced() { return this.forcedSlots.stream(); } public TextureMapping copySlot(TextureSlot from, TextureSlot to) { this.slots.put(to, this.slots.get(from)); return this; } public TextureMapping copyForced(TextureSlot from, TextureSlot to) { this.slots.put(to, this.slots.get(from)); this.forcedSlots.add(to); return this; } public Identifier get(TextureSlot slot) { for (TextureSlot currentSlot = slot; currentSlot != null; currentSlot = currentSlot.getParent()) { Identifier result = this.slots.get(currentSlot); if (result == null) continue; return result; } throw new IllegalStateException("Can't find texture for slot " + String.valueOf(slot)); } public TextureMapping copyAndUpdate(TextureSlot slot, Identifier id) { TextureMapping result = new TextureMapping(); result.slots.putAll(this.slots); result.forcedSlots.addAll(this.forcedSlots); result.put(slot, id); return result; } public static TextureMapping cube(Block block) { Identifier texture = TextureMapping.getBlockTexture(block); return TextureMapping.cube(texture); } public static TextureMapping defaultTexture(Block block) { Identifier texture = TextureMapping.getBlockTexture(block); return TextureMapping.defaultTexture(texture); } public static TextureMapping defaultTexture(Identifier texture) { return new TextureMapping().put(TextureSlot.TEXTURE, texture); } public static TextureMapping cube(Identifier all) { return new TextureMapping().put(TextureSlot.ALL, all); } public static TextureMapping cross(Block block) { return TextureMapping.singleSlot(TextureSlot.CROSS, TextureMapping.getBlockTexture(block)); } public static TextureMapping side(Block block) { return TextureMapping.singleSlot(TextureSlot.SIDE, TextureMapping.getBlockTexture(block)); } public static TextureMapping crossEmissive(Block block) { return new TextureMapping().put(TextureSlot.CROSS, TextureMapping.getBlockTexture(block)).put(TextureSlot.CROSS_EMISSIVE, TextureMapping.getBlockTexture(block, "_emissive")); } public static TextureMapping cross(Identifier cross) { return TextureMapping.singleSlot(TextureSlot.CROSS, cross); } public static TextureMapping plant(Block block) { return TextureMapping.singleSlot(TextureSlot.PLANT, TextureMapping.getBlockTexture(block)); } public static TextureMapping plantEmissive(Block block) { return new TextureMapping().put(TextureSlot.PLANT, TextureMapping.getBlockTexture(block)).put(TextureSlot.CROSS_EMISSIVE, TextureMapping.getBlockTexture(block, "_emissive")); } public static TextureMapping plant(Identifier plant) { return TextureMapping.singleSlot(TextureSlot.PLANT, plant); } public static TextureMapping rail(Block block) { return TextureMapping.singleSlot(TextureSlot.RAIL, TextureMapping.getBlockTexture(block)); } public static TextureMapping rail(Identifier rail) { return TextureMapping.singleSlot(TextureSlot.RAIL, rail); } public static TextureMapping wool(Block block) { return TextureMapping.singleSlot(TextureSlot.WOOL, TextureMapping.getBlockTexture(block)); } public static TextureMapping flowerbed(Block block) { return new TextureMapping().put(TextureSlot.FLOWERBED, TextureMapping.getBlockTexture(block)).put(TextureSlot.STEM, TextureMapping.getBlockTexture(block, "_stem")); } public static TextureMapping wool(Identifier cross) { return TextureMapping.singleSlot(TextureSlot.WOOL, cross); } public static TextureMapping stem(Block block) { return TextureMapping.singleSlot(TextureSlot.STEM, TextureMapping.getBlockTexture(block)); } public static TextureMapping attachedStem(Block stem, Block upperStem) { return new TextureMapping().put(TextureSlot.STEM, TextureMapping.getBlockTexture(stem)).put(TextureSlot.UPPER_STEM, TextureMapping.getBlockTexture(upperStem)); } public static TextureMapping pattern(Block block) { return TextureMapping.singleSlot(TextureSlot.PATTERN, TextureMapping.getBlockTexture(block)); } public static TextureMapping fan(Block block) { return TextureMapping.singleSlot(TextureSlot.FAN, TextureMapping.getBlockTexture(block)); } public static TextureMapping crop(Identifier id) { return TextureMapping.singleSlot(TextureSlot.CROP, id); } public static TextureMapping pane(Block body, Block edge) { return new TextureMapping().put(TextureSlot.PANE, TextureMapping.getBlockTexture(body)).put(TextureSlot.EDGE, TextureMapping.getBlockTexture(edge, "_top")); } public static TextureMapping singleSlot(TextureSlot slot, Identifier id) { return new TextureMapping().put(slot, id); } public static TextureMapping column(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.END, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping cubeTop(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping pottedAzalea(Block block) { return new TextureMapping().put(TextureSlot.PLANT, TextureMapping.getBlockTexture(block, "_plant")).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping logColumn(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block)).put(TextureSlot.END, TextureMapping.getBlockTexture(block, "_top")).put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(block)); } public static TextureMapping column(Identifier side, Identifier end) { return new TextureMapping().put(TextureSlot.SIDE, side).put(TextureSlot.END, end); } public static TextureMapping fence(Block block) { return new TextureMapping().put(TextureSlot.TEXTURE, TextureMapping.getBlockTexture(block)).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping customParticle(Block block) { return new TextureMapping().put(TextureSlot.TEXTURE, TextureMapping.getBlockTexture(block)).put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(block, "_particle")); } public static TextureMapping cubeBottomTop(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, "_bottom")); } public static TextureMapping cubeBottomTopWithWall(Block block) { Identifier side = TextureMapping.getBlockTexture(block); return new TextureMapping().put(TextureSlot.WALL, side).put(TextureSlot.SIDE, side).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, "_bottom")); } public static TextureMapping columnWithWall(Block block) { Identifier side = TextureMapping.getBlockTexture(block); return new TextureMapping().put(TextureSlot.TEXTURE, side).put(TextureSlot.WALL, side).put(TextureSlot.SIDE, side).put(TextureSlot.END, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping door(Identifier top, Identifier bottom) { return new TextureMapping().put(TextureSlot.TOP, top).put(TextureSlot.BOTTOM, bottom); } public static TextureMapping door(Block block) { return new TextureMapping().put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, "_bottom")); } public static TextureMapping particle(Block block) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(block)); } public static TextureMapping particle(Identifier id) { return new TextureMapping().put(TextureSlot.PARTICLE, id); } public static TextureMapping fire0(Block block) { return new TextureMapping().put(TextureSlot.FIRE, TextureMapping.getBlockTexture(block, "_0")); } public static TextureMapping fire1(Block block) { return new TextureMapping().put(TextureSlot.FIRE, TextureMapping.getBlockTexture(block, "_1")); } public static TextureMapping lantern(Block block) { return new TextureMapping().put(TextureSlot.LANTERN, TextureMapping.getBlockTexture(block)); } public static TextureMapping torch(Block block) { return new TextureMapping().put(TextureSlot.TORCH, TextureMapping.getBlockTexture(block)); } public static TextureMapping torch(Identifier id) { return new TextureMapping().put(TextureSlot.TORCH, id); } public static TextureMapping trialSpawner(Block block, String sideSuffix, String topSuffix) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, sideSuffix)).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, topSuffix)).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, "_bottom")); } public static TextureMapping vault(Block block, String frontSuffix, String sideSuffix, String topSuffix, String bottomSuffix) { return new TextureMapping().put(TextureSlot.FRONT, TextureMapping.getBlockTexture(block, frontSuffix)).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, sideSuffix)).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, topSuffix)).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, bottomSuffix)); } public static TextureMapping particleFromItem(Item item) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getItemTexture(item)); } public static TextureMapping commandBlock(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.FRONT, TextureMapping.getBlockTexture(block, "_front")).put(TextureSlot.BACK, TextureMapping.getBlockTexture(block, "_back")); } public static TextureMapping orientableCube(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.FRONT, TextureMapping.getBlockTexture(block, "_front")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(block, "_bottom")); } public static TextureMapping orientableCubeOnlyTop(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.FRONT, TextureMapping.getBlockTexture(block, "_front")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping orientableCubeSameEnds(Block block) { return new TextureMapping().put(TextureSlot.SIDE, TextureMapping.getBlockTexture(block, "_side")).put(TextureSlot.FRONT, TextureMapping.getBlockTexture(block, "_front")).put(TextureSlot.END, TextureMapping.getBlockTexture(block, "_end")); } public static TextureMapping top(Block block) { return new TextureMapping().put(TextureSlot.TOP, TextureMapping.getBlockTexture(block, "_top")); } public static TextureMapping craftingTable(Block table, Block bottomWood) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(table, "_front")).put(TextureSlot.DOWN, TextureMapping.getBlockTexture(bottomWood)).put(TextureSlot.UP, TextureMapping.getBlockTexture(table, "_top")).put(TextureSlot.NORTH, TextureMapping.getBlockTexture(table, "_front")).put(TextureSlot.EAST, TextureMapping.getBlockTexture(table, "_side")).put(TextureSlot.SOUTH, TextureMapping.getBlockTexture(table, "_side")).put(TextureSlot.WEST, TextureMapping.getBlockTexture(table, "_front")); } public static TextureMapping fletchingTable(Block table, Block bottomWood) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(table, "_front")).put(TextureSlot.DOWN, TextureMapping.getBlockTexture(bottomWood)).put(TextureSlot.UP, TextureMapping.getBlockTexture(table, "_top")).put(TextureSlot.NORTH, TextureMapping.getBlockTexture(table, "_front")).put(TextureSlot.SOUTH, TextureMapping.getBlockTexture(table, "_front")).put(TextureSlot.EAST, TextureMapping.getBlockTexture(table, "_side")).put(TextureSlot.WEST, TextureMapping.getBlockTexture(table, "_side")); } public static TextureMapping snifferEgg(String suffix) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_north")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_bottom")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_top")).put(TextureSlot.NORTH, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_north")).put(TextureSlot.SOUTH, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_south")).put(TextureSlot.EAST, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_east")).put(TextureSlot.WEST, TextureMapping.getBlockTexture(Blocks.SNIFFER_EGG, suffix + "_west")); } public static TextureMapping driedGhast(String suffix) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_north")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_bottom")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_top")).put(TextureSlot.NORTH, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_north")).put(TextureSlot.SOUTH, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_south")).put(TextureSlot.EAST, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_east")).put(TextureSlot.WEST, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_west")).put(TextureSlot.TENTACLES, TextureMapping.getBlockTexture(Blocks.DRIED_GHAST, suffix + "_tentacles")); } public static TextureMapping campfire(Block campfire) { return new TextureMapping().put(TextureSlot.LIT_LOG, TextureMapping.getBlockTexture(campfire, "_log_lit")).put(TextureSlot.FIRE, TextureMapping.getBlockTexture(campfire, "_fire")); } public static TextureMapping candleCake(Block block, boolean lit) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(Blocks.CAKE, "_side")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(Blocks.CAKE, "_bottom")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(Blocks.CAKE, "_top")).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(Blocks.CAKE, "_side")).put(TextureSlot.CANDLE, TextureMapping.getBlockTexture(block, lit ? "_lit" : "")); } public static TextureMapping cauldron(Identifier contentTextureLoc) { return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(Blocks.CAULDRON, "_side")).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(Blocks.CAULDRON, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(Blocks.CAULDRON, "_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(Blocks.CAULDRON, "_bottom")).put(TextureSlot.INSIDE, TextureMapping.getBlockTexture(Blocks.CAULDRON, "_inner")).put(TextureSlot.CONTENT, contentTextureLoc); } public static TextureMapping sculkShrieker(boolean canSummon) { String innerTopString = canSummon ? "_can_summon" : ""; return new TextureMapping().put(TextureSlot.PARTICLE, TextureMapping.getBlockTexture(Blocks.SCULK_SHRIEKER, "_bottom")).put(TextureSlot.SIDE, TextureMapping.getBlockTexture(Blocks.SCULK_SHRIEKER, "_side")).put(TextureSlot.TOP, TextureMapping.getBlockTexture(Blocks.SCULK_SHRIEKER, "_top")).put(TextureSlot.INNER_TOP, TextureMapping.getBlockTexture(Blocks.SCULK_SHRIEKER, innerTopString + "_inner_top")).put(TextureSlot.BOTTOM, TextureMapping.getBlockTexture(Blocks.SCULK_SHRIEKER, "_bottom")); } public static TextureMapping bars(Block block) { return new TextureMapping().put(TextureSlot.BARS, TextureMapping.getBlockTexture(block)).put(TextureSlot.EDGE, TextureMapping.getBlockTexture(block)); } public static TextureMapping layer0(Item item) { return new TextureMapping().put(TextureSlot.LAYER0, TextureMapping.getItemTexture(item)); } public static TextureMapping layer0(Block block) { return new TextureMapping().put(TextureSlot.LAYER0, TextureMapping.getBlockTexture(block)); } public static TextureMapping layer0(Identifier id) { return new TextureMapping().put(TextureSlot.LAYER0, id); } public static TextureMapping layered(Identifier layer0, Identifier layer1) { return new TextureMapping().put(TextureSlot.LAYER0, layer0).put(TextureSlot.LAYER1, layer1); } public static TextureMapping layered(Identifier layer0, Identifier layer1, Identifier layer2) { return new TextureMapping().put(TextureSlot.LAYER0, layer0).put(TextureSlot.LAYER1, layer1).put(TextureSlot.LAYER2, layer2); } public static Identifier getBlockTexture(Block block) { Identifier id = BuiltInRegistries.BLOCK.getKey(block); return id.withPrefix("block/"); } public static Identifier getBlockTexture(Block block, String suffix) { Identifier id = BuiltInRegistries.BLOCK.getKey(block); return id.withPath(path -> "block/" + path + suffix); } public static Identifier getItemTexture(Item block) { Identifier id = BuiltInRegistries.ITEM.getKey(block); return id.withPrefix("item/"); } public static Identifier getItemTexture(Item item, String suffix) { Identifier id = BuiltInRegistries.ITEM.getKey(item); return id.withPath(path -> "item/" + path + suffix); } }