diff --git a/client/src/main/java/client/renderer/blockmodel/ModelManager.java b/client/src/main/java/client/renderer/blockmodel/ModelManager.java index 7e56296c..aaa7cc5f 100755 --- a/client/src/main/java/client/renderer/blockmodel/ModelManager.java +++ b/client/src/main/java/client/renderer/blockmodel/ModelManager.java @@ -8,10 +8,8 @@ import java.util.Set; import client.renderer.texture.TextureAtlasSprite; import client.renderer.texture.TextureMap; import common.block.Block; -import common.block.liquid.BlockLiquid; import common.collect.Maps; import common.init.BlockRegistry; -import common.init.Blocks; import common.properties.Property; import common.util.IRegistry; import common.world.State; @@ -21,7 +19,6 @@ public class ModelManager private IRegistry modelRegistry; private final TextureMap texMap; private final Map bakedModelStore = Maps.newIdentityHashMap(); - private final Map liquidMap = Maps.newIdentityHashMap(); private final Map mappers = Maps.newIdentityHashMap(); private final Set builtin = Collections.newSetFromMap(Maps.newIdentityHashMap()); private IBakedModel defaultModel; @@ -75,35 +72,21 @@ public class ModelManager public TextureAtlasSprite getTexture(State state) { Block block = state.getBlock(); - IBakedModel ibakedmodel = this.getModelForState(state); + IBakedModel model = this.getModelForState(state); - if (ibakedmodel == null || ibakedmodel == this.defaultModel) + if (model == null || model == this.defaultModel) { - if (block == Blocks.wall_sign || block == Blocks.sign || block == Blocks.chest || block == Blocks.trapped_chest || block == Blocks.banner || block == Blocks.wall_banner) - { - return this.texMap.getAtlasSprite("blocks/oak_planks"); - } - - if (block == Blocks.floor_portal) - { - return this.texMap.getAtlasSprite("blocks/obsidian"); - } - - if (block.getMaterial().isLiquid()) - { - String texture = this.liquidMap.get(block); - if(texture == null) - this.liquidMap.put(block, texture = "blocks/" + BlockRegistry.getNameFromFluid((BlockLiquid)block) + "_still"); - return this.texMap.getAtlasSprite(texture); - } + String tex = block.getFallbackTexture(); + if(tex != null) + return this.texMap.getAtlasSprite("blocks/" + tex); } - if (ibakedmodel == null) + if (model == null) { - ibakedmodel = this.defaultModel; + model = this.defaultModel; } - return ibakedmodel.getBaseTexture(); + return model.getBaseTexture(); } public IBakedModel getModelForState(State state) diff --git a/client/src/main/java/client/renderer/texture/TextureMap.java b/client/src/main/java/client/renderer/texture/TextureMap.java index 377906af..fd2d49a1 100755 --- a/client/src/main/java/client/renderer/texture/TextureMap.java +++ b/client/src/main/java/client/renderer/texture/TextureMap.java @@ -46,13 +46,13 @@ public class TextureMap extends Texture } for(Entry entry : map.entrySet()) { if(entry.getValue() instanceof Integer) { - this.animTextures.put(entry.getKey(), (Integer)entry.getValue()); + this.animTextures.put("blocks/" + entry.getKey(), (Integer)entry.getValue()); } else { Class clazz = anim.get((TextureAnimation)entry.getValue()); if(clazz == null) throw new RuntimeException("Animation '" + entry.getValue() + "' existiert nicht"); - this.tickedTextures.put(entry.getKey(), clazz); + this.tickedTextures.put("blocks/" + entry.getKey(), clazz); } } map.clear(); diff --git a/common/src/main/java/common/block/Block.java b/common/src/main/java/common/block/Block.java index 8bef156c..a19e331e 100755 --- a/common/src/main/java/common/block/Block.java +++ b/common/src/main/java/common/block/Block.java @@ -1011,4 +1011,8 @@ public class Block { public final int getEncouragement() { return this.encouragement; } + + public String getFallbackTexture() { + return null; + } } diff --git a/common/src/main/java/common/block/artificial/BlockFloorPortal.java b/common/src/main/java/common/block/artificial/BlockFloorPortal.java index c9b3c33f..ff405826 100755 --- a/common/src/main/java/common/block/artificial/BlockFloorPortal.java +++ b/common/src/main/java/common/block/artificial/BlockFloorPortal.java @@ -152,6 +152,10 @@ public class BlockFloorPortal extends Block } public void getAnimatedTextures(Map map) { - map.put("blocks/floor_portal", 5); + map.put("floor_portal", 5); } + + public String getFallbackTexture() { + return "obsidian"; + } } diff --git a/common/src/main/java/common/block/artificial/BlockPortal.java b/common/src/main/java/common/block/artificial/BlockPortal.java index 36e1b045..13f1d105 100755 --- a/common/src/main/java/common/block/artificial/BlockPortal.java +++ b/common/src/main/java/common/block/artificial/BlockPortal.java @@ -293,7 +293,7 @@ public class BlockPortal extends Block } public void getAnimatedTextures(Map map) { - map.put("blocks/portal", 1); + map.put("portal", 1); } // public BlockPattern.PatternHelper func_181089_f(World p_181089_1_, BlockPos p_181089_2_) diff --git a/common/src/main/java/common/block/liquid/BlockDynamicLiquid.java b/common/src/main/java/common/block/liquid/BlockDynamicLiquid.java index 100327cb..c4dca049 100755 --- a/common/src/main/java/common/block/liquid/BlockDynamicLiquid.java +++ b/common/src/main/java/common/block/liquid/BlockDynamicLiquid.java @@ -315,6 +315,12 @@ public class BlockDynamicLiquid extends BlockLiquid } public void getAnimatedTextures(Map map) { - map.put("blocks/" + BlockRegistry.getNameFromBlock(this.staticBlock) + "_flow", this.animation); + map.put(BlockRegistry.getNameFromBlock(this.staticBlock) + "_flow", this.animation); + } + + public String getFallbackTexture() { + if(this.cachedTexture == null) + this.cachedTexture = BlockRegistry.getNameFromBlock(this.staticBlock) + "_still"; + return this.cachedTexture; } } diff --git a/common/src/main/java/common/block/liquid/BlockLiquid.java b/common/src/main/java/common/block/liquid/BlockLiquid.java index 54bfd53c..581408a4 100755 --- a/common/src/main/java/common/block/liquid/BlockLiquid.java +++ b/common/src/main/java/common/block/liquid/BlockLiquid.java @@ -37,6 +37,8 @@ public abstract class BlockLiquid extends Block protected final boolean opaque; protected final int flowRate; protected final Object animation; + + protected String cachedTexture; public BlockLiquid(Material materialIn, boolean tick, boolean opaque, int rate, Object animation) { diff --git a/common/src/main/java/common/block/liquid/BlockStaticLiquid.java b/common/src/main/java/common/block/liquid/BlockStaticLiquid.java index 565179bf..6e25ad74 100755 --- a/common/src/main/java/common/block/liquid/BlockStaticLiquid.java +++ b/common/src/main/java/common/block/liquid/BlockStaticLiquid.java @@ -114,6 +114,12 @@ public class BlockStaticLiquid extends BlockLiquid } public void getAnimatedTextures(Map map) { - map.put("blocks/" + BlockRegistry.getNameFromBlock(this) + "_still", this.animation); + map.put(BlockRegistry.getNameFromBlock(this) + "_still", this.animation); + } + + public String getFallbackTexture() { + if(this.cachedTexture == null) + this.cachedTexture = BlockRegistry.getNameFromBlock(this) + "_still"; + return this.cachedTexture; } } diff --git a/common/src/main/java/common/block/natural/BlockFire.java b/common/src/main/java/common/block/natural/BlockFire.java index 7a7bc1dc..5d2c4833 100755 --- a/common/src/main/java/common/block/natural/BlockFire.java +++ b/common/src/main/java/common/block/natural/BlockFire.java @@ -1144,8 +1144,8 @@ public class BlockFire extends Block } public void getAnimatedTextures(Map map) { - map.put("blocks/fire_layer_0", TextureAnimation.FIRE1); - map.put("blocks/fire_layer_1", TextureAnimation.FIRE2); + map.put("fire_layer_0", TextureAnimation.FIRE1); + map.put("fire_layer_1", TextureAnimation.FIRE2); } public boolean canExtinguish() { diff --git a/common/src/main/java/common/block/natural/BlockTintedFire.java b/common/src/main/java/common/block/natural/BlockTintedFire.java index 27a5edd8..3a9a2185 100644 --- a/common/src/main/java/common/block/natural/BlockTintedFire.java +++ b/common/src/main/java/common/block/natural/BlockTintedFire.java @@ -30,7 +30,7 @@ public class BlockTintedFire extends BlockFire { } public void getAnimatedTextures(Map map) { - map.put("blocks/flame_layer_0", TextureAnimation.FLAME1); - map.put("blocks/flame_layer_1", TextureAnimation.FLAME2); + map.put("flame_layer_0", TextureAnimation.FLAME1); + map.put("flame_layer_1", TextureAnimation.FLAME2); } } diff --git a/common/src/main/java/common/block/tech/BlockChest.java b/common/src/main/java/common/block/tech/BlockChest.java index 03080280..e942df78 100755 --- a/common/src/main/java/common/block/tech/BlockChest.java +++ b/common/src/main/java/common/block/tech/BlockChest.java @@ -634,4 +634,8 @@ public class BlockChest extends BlockContainer implements Rotatable { return true; } + + public String getFallbackTexture() { + return "oak_planks"; + } } diff --git a/common/src/main/java/common/block/tech/BlockTianReactor.java b/common/src/main/java/common/block/tech/BlockTianReactor.java index 9d3ae888..2af3248b 100755 --- a/common/src/main/java/common/block/tech/BlockTianReactor.java +++ b/common/src/main/java/common/block/tech/BlockTianReactor.java @@ -21,6 +21,6 @@ public class BlockTianReactor extends BlockMachine { } public void getAnimatedTextures(Map map) { - map.put("blocks/tian_reactor_front", 5); + map.put("tian_reactor_front", 5); } } diff --git a/common/src/main/java/common/block/tile/BlockBanner.java b/common/src/main/java/common/block/tile/BlockBanner.java index 328c226c..6c0dd05d 100755 --- a/common/src/main/java/common/block/tile/BlockBanner.java +++ b/common/src/main/java/common/block/tile/BlockBanner.java @@ -144,4 +144,8 @@ public class BlockBanner extends BlockContainer implements Rotatable public Transforms getTransform() { return Transforms.BANNER; } + + public String getFallbackTexture() { + return "oak_planks"; + } } diff --git a/common/src/main/java/common/block/tile/BlockSign.java b/common/src/main/java/common/block/tile/BlockSign.java index d467d323..502e7d06 100755 --- a/common/src/main/java/common/block/tile/BlockSign.java +++ b/common/src/main/java/common/block/tile/BlockSign.java @@ -131,4 +131,8 @@ public class BlockSign extends BlockContainer { return true; } + + public String getFallbackTexture() { + return "oak_planks"; + } }