From 8a5645760b6808039f10d76e5df81b17c9bf6787 Mon Sep 17 00:00:00 2001 From: tterrag1098 Date: Sat, 9 May 2015 20:07:28 -0400 Subject: [PATCH] Add block param to createRenderContext. Set render bounds from blocks. Closes #311 --- .../chisel/api/rendering/ISubmapManager.java | 2 +- .../chisel/api/rendering/TextureType.java | 11 +++++------ .../chisel/client/render/RendererCTM.java | 2 +- .../chisel/client/render/SubmapManagerAntiblock.java | 3 ++- .../chisel/client/render/SubmapManagerBase.java | 3 ++- .../client/render/SubmapManagerCarpetFloor.java | 4 ++-- .../chisel/client/render/SubmapManagerSlab.java | 4 ++-- 7 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/cricketcraft/chisel/api/rendering/ISubmapManager.java b/src/main/java/com/cricketcraft/chisel/api/rendering/ISubmapManager.java index 0bd7a468..f9fc3994 100644 --- a/src/main/java/com/cricketcraft/chisel/api/rendering/ISubmapManager.java +++ b/src/main/java/com/cricketcraft/chisel/api/rendering/ISubmapManager.java @@ -41,7 +41,7 @@ public interface ISubmapManager { void registerIcons(String modName, Block block, IIconRegister register); @SideOnly(Side.CLIENT) - T createRenderContext(RenderBlocks rendererOld, IBlockAccess world); + T createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world); @SideOnly(Side.CLIENT) void preRenderSide(T renderer, IBlockAccess world, int x, int y, int z, ForgeDirection side); diff --git a/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java b/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java index fbc090df..aa25c886 100644 --- a/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java +++ b/src/main/java/com/cricketcraft/chisel/api/rendering/TextureType.java @@ -234,9 +234,6 @@ public enum TextureType { RenderBlocksCTM ret = theRenderBlocksCTM; Triple data = (Triple) cachedObject; ret.blockAccess = world; - ret.renderMaxX = 1.0; - ret.renderMaxY = 1.0; - ret.renderMaxZ = 1.0; ret.submap = data.getMiddle(); ret.submapSmall = data.getRight(); @@ -342,7 +339,7 @@ public enum TextureType { @SideOnly(Side.CLIENT) protected RenderBlocks createRenderContext(RenderBlocks rendererOld, IBlockAccess world, Object cachedObject) { - return null; + return rendererOld; } public static TextureType getTypeFor(CarvableHelper inst, String modid, String path) { @@ -396,9 +393,11 @@ public enum TextureType { } @Override - public T createRenderContext(RenderBlocks rendererOld, IBlockAccess world) { + public T createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) { initStatics(); - return (T) type.createRenderContext(rendererOld, world, cachedObject); + T rb = (T) type.createRenderContext(rendererOld, world, cachedObject); + rb.setRenderBoundsFromBlock(block); + return rb; } @Override diff --git a/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java b/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java index 74fcbc0e..a8641766 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/RendererCTM.java @@ -41,7 +41,7 @@ public class RendererCTM implements ISimpleBlockRenderingHandler { IVariationInfo var = ((ICarvable) block).getVariation(world, x, y, z, meta); if (!rendererOld.hasOverrideBlockTexture() && var != null) { - RenderBlocks rb = var.getSubmapManager().createRenderContext(rendererOld, world); + RenderBlocks rb = var.getSubmapManager().createRenderContext(rendererOld, block, world); if (rb != null && rb != rendererOld) { rb.blockAccess = world; if (rb instanceof RenderBlocksCTM) { diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerAntiblock.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerAntiblock.java index 12d0ab4e..d781e086 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerAntiblock.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerAntiblock.java @@ -54,10 +54,11 @@ public class SubmapManagerAntiblock extends SubmapManagerBase { @Override @SideOnly(Side.CLIENT) - public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, IBlockAccess world) { + public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) { if (rb == null) { rb = new RenderBlocksCTMFullbright(); } + rb.setRenderBoundsFromBlock(block); rb.submap = submap; rb.submapSmall = submapSmall; return rb; diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerBase.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerBase.java index 6e2eaa6c..6711cb5f 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerBase.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerBase.java @@ -1,5 +1,6 @@ package com.cricketcraft.chisel.client.render; +import net.minecraft.block.Block; import net.minecraft.client.renderer.RenderBlocks; import net.minecraft.util.IIcon; import net.minecraft.world.IBlockAccess; @@ -20,7 +21,7 @@ public abstract class SubmapManagerBase implements ISubm @Override @SideOnly(Side.CLIENT) - public T createRenderContext(RenderBlocks rendererOld, IBlockAccess world) { + public T createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) { return null; } diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerCarpetFloor.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerCarpetFloor.java index 8a63bf6c..44ecae70 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerCarpetFloor.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerCarpetFloor.java @@ -45,11 +45,11 @@ public class SubmapManagerCarpetFloor extends SubmapManagerBase @Override @SideOnly(Side.CLIENT) - public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, IBlockAccess world) { + public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) { if (rb == null) { rb = new RenderBlocksCTM(); } - rb.renderMaxY = 1f / 16f; + rb.setRenderBoundsFromBlock(block); rb.submap = submap; rb.submapSmall = submapSmall; return rb; diff --git a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerSlab.java b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerSlab.java index a19e6047..c4a19e3c 100644 --- a/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerSlab.java +++ b/src/main/java/com/cricketcraft/chisel/client/render/SubmapManagerSlab.java @@ -49,11 +49,11 @@ public class SubmapManagerSlab implements ISubmapManager { @Override @SideOnly(Side.CLIENT) - public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, IBlockAccess world) { + public RenderBlocksCTM createRenderContext(RenderBlocks rendererOld, Block block, IBlockAccess world) { if (rb == null) { rb = new RenderBlocksCTM(); } - rb.renderMaxY = 1f / 2f; + rb.setRenderBoundsFromBlock(block); rb.submap = submap; rb.submapSmall = submapSmall; return rb;