From db3e039b31f1a464ce201b2d8ca92bbd73009c4e Mon Sep 17 00:00:00 2001 From: RainWarrior Date: Wed, 30 Dec 2015 11:37:32 +0300 Subject: [PATCH] TESRs registering in preinit don't break pistons anymore. Fixes #2298. --- .../TileEntityPistonRenderer.java.patch | 15 +++++++++++++++ .../minecraftforge/debug/ModelAnimationDebug.java | 5 +++-- 2 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java.patch diff --git a/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java.patch b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java.patch new file mode 100644 index 000000000..d70da76e8 --- /dev/null +++ b/patches/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java.patch @@ -0,0 +1,15 @@ +--- ../src-base/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java ++++ ../src-work/minecraft/net/minecraft/client/renderer/tileentity/TileEntityPistonRenderer.java +@@ -23,10 +23,11 @@ + @SideOnly(Side.CLIENT) + public class TileEntityPistonRenderer extends TileEntitySpecialRenderer + { +- private final BlockRendererDispatcher field_178462_c = Minecraft.func_71410_x().func_175602_ab(); ++ private BlockRendererDispatcher field_178462_c; + + public void func_180535_a(TileEntityPiston p_180535_1_, double p_180535_2_, double p_180535_4_, double p_180535_6_, float p_180535_8_, int p_180535_9_) + { ++ if(field_178462_c == null) field_178462_c = Minecraft.func_71410_x().func_175602_ab(); + BlockPos blockpos = p_180535_1_.func_174877_v(); + IBlockState iblockstate = p_180535_1_.func_174927_b(); + Block block = iblockstate.func_177230_c(); diff --git a/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java b/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java index 4ea71f05d..8a1de5806 100644 --- a/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java +++ b/src/test/java/net/minecraftforge/debug/ModelAnimationDebug.java @@ -150,13 +150,13 @@ public class ModelAnimationDebug super.preInit(event); B3DLoader.instance.addDomain(MODID); ModelLoader.setCustomModelResourceLocation(Item.getItemFromBlock(GameRegistry.findBlock(MODID, blockName)), 0, new ModelResourceLocation(MODID.toLowerCase() + ":" + blockName, "inventory")); + ClientRegistry.bindTileEntitySpecialRenderer(Chest.class, ChestRenderer.instance); } @Override public void init(FMLInitializationEvent event) { super.init(event); - ClientRegistry.bindTileEntitySpecialRenderer(Chest.class, ChestRenderer.instance); } } @@ -239,10 +239,11 @@ public class ModelAnimationDebug public static ChestRenderer instance = new ChestRenderer(); private ChestRenderer() {} - private final BlockRendererDispatcher blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); + private BlockRendererDispatcher blockRenderer; public void renderTileEntityAt(Chest te, double x, double y, double z, float partialTick, int breakStage) { + if(blockRenderer == null) blockRenderer = Minecraft.getMinecraft().getBlockRendererDispatcher(); IBlockState state = te.getWorld().getBlockState(te.getPos()); state = state.withProperty(STATIC, false); IBakedModel model = this.blockRenderer.getBlockModelShapes().getModelForState(state);