From c684b3830bf6eaa96e2abf2f0b9d4895f9afe764 Mon Sep 17 00:00:00 2001 From: Léa Gris Date: Wed, 3 Mar 2021 19:55:11 +0100 Subject: quickfix(ao): reset ao state after rendering tileblock Reset RenderBlock.enableAO to false after rendering Gregtech tile blocks. Minecraft makes assumption that enableAO is false when it renders a lower door panel. Leaving enableAO to true in the RenderBlock instance after rendering gregtech tile blocks caused lower door panels to randomply pick some remanent ambient occlusion colour values it should not. --- src/main/java/gregtech/common/render/GT_Renderer_Block.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/main/java/gregtech/common/render') diff --git a/src/main/java/gregtech/common/render/GT_Renderer_Block.java b/src/main/java/gregtech/common/render/GT_Renderer_Block.java index 6cb161fcb8..5265be43e1 100644 --- a/src/main/java/gregtech/common/render/GT_Renderer_Block.java +++ b/src/main/java/gregtech/common/render/GT_Renderer_Block.java @@ -558,13 +558,20 @@ public class GT_Renderer_Block implements ISimpleBlockRenderingHandler { IMetaTileEntity metaTileEntity; if ((metaTileEntity = ((IGregTechTileEntity) tileEntity).getMetaTileEntity()) != null && metaTileEntity.renderInWorld(aWorld, aX, aY, aZ, aBlock, aRenderer)) { + aRenderer.enableAO = false; return true; } } - if ((tileEntity instanceof IPipeRenderedTileEntity)) { - return renderPipeBlock(aWorld, aX, aY, aZ, aBlock, (IPipeRenderedTileEntity) tileEntity, aRenderer); + if (tileEntity instanceof IPipeRenderedTileEntity && + renderPipeBlock(aWorld, aX, aY, aZ, aBlock, (IPipeRenderedTileEntity) tileEntity, aRenderer)) { + aRenderer.enableAO = false; + return true; } - return renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer); + if (renderStandardBlock(aWorld, aX, aY, aZ, aBlock, aRenderer)) { + aRenderer.enableAO = false; + return true; + } + return false; } public boolean shouldRender3DInInventory(int aModel) { -- cgit