From e936b53fdf159bbbf679b6789a78b881b781b595 Mon Sep 17 00:00:00 2001 From: AlgorithmX2 Date: Sun, 27 Jul 2014 00:49:56 -0500 Subject: [PATCH] Fixed Facade Code for colored items, this fixes mekanisms plastic blocks, sadly no luck with XU. --- block/networking/BlockCableBus.java | 14 ++++++++++++++ client/render/BusRenderHelper.java | 7 +++++++ facade/FacadePart.java | 13 +++++++++---- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/block/networking/BlockCableBus.java b/block/networking/BlockCableBus.java index f115d4da..649c564b 100644 --- a/block/networking/BlockCableBus.java +++ b/block/networking/BlockCableBus.java @@ -430,4 +430,18 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection { return cb( world, x, y, z ).canConnectRedstone( EnumSet.allOf( ForgeDirection.class ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None; } + + int myColorMultiplier = 0xffffff; + + public void setRenderColor(int color) + { + myColorMultiplier = color; + } + + @Override + public int colorMultiplier(IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_) + { + return myColorMultiplier; + } + } diff --git a/client/render/BusRenderHelper.java b/client/render/BusRenderHelper.java index 23ee3114..82652a2e 100644 --- a/client/render/BusRenderHelper.java +++ b/client/render/BusRenderHelper.java @@ -13,6 +13,7 @@ import appeng.api.parts.IPartCollsionHelper; import appeng.api.parts.IPartRenderHelper; import appeng.api.parts.ISimplifiedBundle; import appeng.block.AEBaseBlock; +import appeng.block.networking.BlockCableBus; import appeng.core.AEConfig; import appeng.core.features.AEFeature; import cpw.mods.fml.relauncher.Side; @@ -352,6 +353,12 @@ public class BusRenderHelper implements IPartRenderHelper return AEApi.instance().blocks().blockMultiPart.block(); } + public void setRenderColor(int color) + { + BlockCableBus blk = (BlockCableBus) AEApi.instance().blocks().blockMultiPart.block(); + blk.setRenderColor( color ); + } + public void prepareBounds(RenderBlocks renderer) { bbr.renderBlockBounds( renderer, minX, minY, minZ, maxX, maxY, maxZ, ax, ay, az ); diff --git a/facade/FacadePart.java b/facade/FacadePart.java index a9fd28ad..85eb9ebe 100644 --- a/facade/FacadePart.java +++ b/facade/FacadePart.java @@ -141,10 +141,11 @@ public class FacadePart implements IFacadePart instance.renderForPass( 1 ); } + int color = 0xffffff; + try { - int color = ib.getColorFromItemStack( randomItem, 0 ); - Tessellator.instance.setColorOpaque_I( color ); + color = ib.getColorFromItemStack( randomItem, 0 ); } catch (Throwable error) { @@ -161,7 +162,9 @@ public class FacadePart implements IFacadePart rbw.calculations = true; rbw.faces = EnumSet.noneOf( ForgeDirection.class ); - rbw.renderStandardBlock( blk, x, y, z ); + instance.setRenderColor( color ); + rbw.renderStandardBlock( instance.getBlock(), x, y, z ); + instance.setRenderColor( 0xffffff ); rbw.calculations = false; rbw.faces = calculateFaceOpenFaces( rbw.blockAccess, fc, x, y, z, side ); @@ -403,11 +406,13 @@ public class FacadePart implements IFacadePart float r = (color >> 16 & 0xff) / 255F; float g = (color >> 8 & 0xff) / 255F; float b = (color & 0xff) / 255F; - GL11.glColor4f( r, g, b, 1.0F ); + GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0F ); + instance.setInvColor( color ); } catch (Throwable error) { GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0F ); + instance.setInvColor( 0xffffff ); } Tessellator.instance.setBrightness( 15 << 20 | 15 << 4 );