diff --git a/common/buildcraft/core/gui/GuiAdvancedInterface.java b/common/buildcraft/core/gui/GuiAdvancedInterface.java index 0ac25b67..539d01f6 100644 --- a/common/buildcraft/core/gui/GuiAdvancedInterface.java +++ b/common/buildcraft/core/gui/GuiAdvancedInterface.java @@ -11,7 +11,7 @@ import net.minecraftforge.fluids.Fluid; import org.lwjgl.opengl.GL11; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.core.render.FluidRenderer; public abstract class GuiAdvancedInterface extends GuiBuildCraft { @@ -188,7 +188,7 @@ public abstract class GuiAdvancedInterface extends GuiBuildCraft { @Override public void drawSprite(int cornerX, int cornerY) { if (fluid != null) { - GL.color(colorRenderCache); + RenderUtils.setGLColorFromInt(colorRenderCache); } super.drawSprite(cornerX, cornerY); } diff --git a/common/buildcraft/core/gui/GuiBuildCraft.java b/common/buildcraft/core/gui/GuiBuildCraft.java index 312521f7..41528f07 100644 --- a/common/buildcraft/core/gui/GuiBuildCraft.java +++ b/common/buildcraft/core/gui/GuiBuildCraft.java @@ -6,7 +6,7 @@ import buildcraft.core.gui.tooltips.IToolTipProvider; import buildcraft.core.gui.tooltips.ToolTip; import buildcraft.core.gui.tooltips.ToolTipLine; import buildcraft.core.gui.widgets.Widget; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.core.utils.SessionVars; import java.util.ArrayList; import java.util.Collection; @@ -438,7 +438,7 @@ public abstract class GuiBuildCraft extends GuiContainer { protected void drawBackground(int x, int y) { - GL.color(overlayColor); + RenderUtils.setGLColorFromInt(overlayColor); mc.renderEngine.bindTexture(LEDGER_TEXTURE); drawTexturedModalRect(x, y, 0, 256 - currentHeight, 4, currentHeight); diff --git a/common/buildcraft/core/render/FluidRenderer.java b/common/buildcraft/core/render/FluidRenderer.java index 6dc70261..2b32c7be 100644 --- a/common/buildcraft/core/render/FluidRenderer.java +++ b/common/buildcraft/core/render/FluidRenderer.java @@ -8,7 +8,6 @@ package buildcraft.core.render; import buildcraft.core.render.RenderEntityBlock.RenderInfo; -import buildcraft.core.utils.GL; import java.util.HashMap; import java.util.Map; import net.minecraft.block.Block; @@ -67,7 +66,7 @@ public class FluidRenderer { return; int color = fluidstack.getFluid().getColor(fluidstack); - GL.color(color); + RenderUtils.setGLColorFromInt(color); } public static int[] getFluidDisplayLists(FluidStack fluidStack, World world, boolean flowing) { diff --git a/common/buildcraft/core/utils/GL.java b/common/buildcraft/core/render/RenderUtils.java similarity index 67% rename from common/buildcraft/core/utils/GL.java rename to common/buildcraft/core/render/RenderUtils.java index 7040db22..62b88d4c 100644 --- a/common/buildcraft/core/utils/GL.java +++ b/common/buildcraft/core/render/RenderUtils.java @@ -1,9 +1,10 @@ -package buildcraft.core.utils; +package buildcraft.core.render; import org.lwjgl.opengl.GL11; -public class GL { - public static void color(int color) { +public class RenderUtils { + + public static void setGLColorFromInt(int color) { float red = (float) (color >> 16 & 255) / 255.0F; float green = (float) (color >> 8 & 255) / 255.0F; float blue = (float) (color & 255) / 255.0F; diff --git a/common/buildcraft/energy/gui/GuiCombustionEngine.java b/common/buildcraft/energy/gui/GuiCombustionEngine.java index a1f65e89..3566aab9 100644 --- a/common/buildcraft/energy/gui/GuiCombustionEngine.java +++ b/common/buildcraft/energy/gui/GuiCombustionEngine.java @@ -17,7 +17,7 @@ import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidStack; import buildcraft.core.DefaultProps; import buildcraft.core.fluids.Tank; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.core.utils.StringUtils; import buildcraft.energy.TileEngineIron; import buildcraft.energy.TileEngineWithInventory; @@ -68,7 +68,7 @@ public class GuiCombustionEngine extends GuiEngine { liquidIcon = fluid.getStillIcon(); } mc.renderEngine.bindTexture(BLOCK_TEXTURE); - GL.color(tank.colorRenderCache); + RenderUtils.setGLColorFromInt(tank.colorRenderCache); if (liquidIcon != null) { while (true) { diff --git a/common/buildcraft/factory/render/RenderRefinery.java b/common/buildcraft/factory/render/RenderRefinery.java index d44c16a5..b1bce960 100644 --- a/common/buildcraft/factory/render/RenderRefinery.java +++ b/common/buildcraft/factory/render/RenderRefinery.java @@ -11,7 +11,7 @@ import buildcraft.core.DefaultProps; import buildcraft.core.IInventoryRenderer; import buildcraft.core.fluids.Tank; import buildcraft.core.render.FluidRenderer; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.factory.TileRefinery; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; @@ -188,7 +188,7 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent if (list1 != null) { bindTexture(FluidRenderer.getFluidSheet(liquid1)); - GL.color(color1); + RenderUtils.setGLColorFromInt(color1); GL11.glCallList(list1[getDisplayListIndex(tile.tank1)]); } } @@ -200,7 +200,7 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent GL11.glPushMatrix(); GL11.glTranslatef(0, 0, 1); bindTexture(FluidRenderer.getFluidSheet(liquid2)); - GL.color(color2); + RenderUtils.setGLColorFromInt(color2); GL11.glCallList(list2[getDisplayListIndex(tile.tank2)]); GL11.glPopMatrix(); } @@ -214,7 +214,7 @@ public class RenderRefinery extends TileEntitySpecialRenderer implements IInvent GL11.glPushMatrix(); GL11.glTranslatef(1, 0, 0.5F); bindTexture(FluidRenderer.getFluidSheet(liquidResult)); - GL.color(colorResult); + RenderUtils.setGLColorFromInt(colorResult); GL11.glCallList(list3[getDisplayListIndex(tile.result)]); GL11.glPopMatrix(); } diff --git a/common/buildcraft/factory/render/RenderTank.java b/common/buildcraft/factory/render/RenderTank.java index a0e304ee..896dadcf 100644 --- a/common/buildcraft/factory/render/RenderTank.java +++ b/common/buildcraft/factory/render/RenderTank.java @@ -8,7 +8,7 @@ package buildcraft.factory.render; import buildcraft.core.render.FluidRenderer; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.factory.TileTank; import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer; import net.minecraft.tileentity.TileEntity; @@ -41,7 +41,7 @@ public class RenderTank extends TileEntitySpecialRenderer { GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); bindTexture(FluidRenderer.getFluidSheet(liquid)); - GL.color(color); + RenderUtils.setGLColorFromInt(color); GL11.glTranslatef((float) x + 0.125F, (float) y + 0.5F, (float) z + 0.125F); GL11.glScalef(0.75F, 0.999F, 0.75F); diff --git a/common/buildcraft/transport/TransportProxyClient.java b/common/buildcraft/transport/TransportProxyClient.java index 84d63d10..deacb153 100644 --- a/common/buildcraft/transport/TransportProxyClient.java +++ b/common/buildcraft/transport/TransportProxyClient.java @@ -2,6 +2,7 @@ package buildcraft.transport; import buildcraft.BuildCraftTransport; import buildcraft.transport.render.FacadeItemRenderer; +import buildcraft.transport.render.GateItemRenderer; import buildcraft.transport.render.PipeItemRenderer; import buildcraft.transport.render.PipeRendererWorld; import buildcraft.transport.render.PlugItemRenderer; @@ -11,10 +12,12 @@ import cpw.mods.fml.client.registry.RenderingRegistry; import net.minecraftforge.client.MinecraftForgeClient; public class TransportProxyClient extends TransportProxy { + public final static PipeItemRenderer pipeItemRenderer = new PipeItemRenderer(); public final static PipeRendererWorld pipeWorldRenderer = new PipeRendererWorld(); public final static FacadeItemRenderer facadeItemRenderer = new FacadeItemRenderer(); public final static PlugItemRenderer plugItemRenderer = new PlugItemRenderer(); + public final static GateItemRenderer gateItemRenderer = new GateItemRenderer(); @Override public void registerTileEntities() { @@ -64,11 +67,12 @@ public class TransportProxyClient extends TransportProxy { MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.facadeItem.itemID, facadeItemRenderer); MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.plugItem.itemID, plugItemRenderer); + MinecraftForgeClient.registerItemRenderer(BuildCraftTransport.pipeGate.itemID, gateItemRenderer); TransportProxy.pipeModel = RenderingRegistry.getNextAvailableRenderId(); RenderingRegistry.registerBlockHandler(pipeWorldRenderer); } - + @Override public void setIconProviderFromPipe(ItemPipe item, Pipe dummyPipe) { item.setPipesIcons(dummyPipe.getIconProvider()); diff --git a/common/buildcraft/transport/gates/ItemGate.java b/common/buildcraft/transport/gates/ItemGate.java index 7054d513..dc7a6e6a 100644 --- a/common/buildcraft/transport/gates/ItemGate.java +++ b/common/buildcraft/transport/gates/ItemGate.java @@ -20,9 +20,6 @@ import net.minecraft.util.Icon; public class ItemGate extends ItemBuildCraft { - @SideOnly(Side.CLIENT) - private Icon[] icons; - public ItemGate(int id) { super(id); setHasSubtypes(false); @@ -104,11 +101,6 @@ public class ItemGate extends ItemBuildCraft { @Override public Icon getIconIndex(ItemStack stack) { - return getIcon(stack, 0); - } - - @Override - public Icon getIcon(ItemStack stack, int pass) { return getLogic(stack).getIconItem(); } diff --git a/common/buildcraft/transport/render/FacadeItemRenderer.java b/common/buildcraft/transport/render/FacadeItemRenderer.java index 7b31449d..749fc0d6 100644 --- a/common/buildcraft/transport/render/FacadeItemRenderer.java +++ b/common/buildcraft/transport/render/FacadeItemRenderer.java @@ -2,7 +2,7 @@ package buildcraft.transport.render; import buildcraft.BuildCraftTransport; import buildcraft.core.CoreConstants; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.transport.ItemFacade; import buildcraft.transport.PipeIconProvider; import net.minecraft.block.Block; @@ -24,7 +24,7 @@ public class FacadeItemRenderer implements IItemRenderer { try { int color = Item.itemsList[decodedBlockId].getColorFromItemStack(new ItemStack(decodedBlockId, 1, decodedMeta), 0); - GL.color(color); + RenderUtils.setGLColorFromInt(color); } catch (Throwable error) { } diff --git a/common/buildcraft/transport/render/GateItemRenderer.java b/common/buildcraft/transport/render/GateItemRenderer.java new file mode 100644 index 00000000..a648e043 --- /dev/null +++ b/common/buildcraft/transport/render/GateItemRenderer.java @@ -0,0 +1,157 @@ +package buildcraft.transport.render; + +import buildcraft.transport.gates.ItemGate; +import java.util.Random; +import net.minecraft.item.ItemStack; +import net.minecraft.client.renderer.entity.RenderItem; +import net.minecraft.client.renderer.entity.RenderManager; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.util.Icon; +import net.minecraft.client.renderer.ItemRenderer; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.IItemRenderer.ItemRenderType; +import net.minecraftforge.client.IItemRenderer.ItemRendererHelper; +import org.lwjgl.opengl.GL11; +import net.minecraft.entity.item.EntityItem; + +/** + * + * @author CovertJaguar + */ +public class GateItemRenderer implements IItemRenderer { + + RenderItem renderItem = new RenderItem(); + + @Override + public boolean handleRenderType(ItemStack stack, ItemRenderType type) { + if (type == ItemRenderType.INVENTORY || type == ItemRenderType.ENTITY || type == ItemRenderType.EQUIPPED || type == ItemRenderType.EQUIPPED_FIRST_PERSON) + return true; + return false; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack stack, ItemRendererHelper helper) { + if (helper == ItemRendererHelper.ENTITY_BOBBING) + return true; + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack stack, Object... data) { + if (type == ItemRenderType.INVENTORY) + render(ItemRenderType.INVENTORY, stack); + else if (type == ItemRenderType.ENTITY) + if (RenderManager.instance.options.fancyGraphics) + renderAsEntity(stack, (EntityItem) data[1]); + else + renderAsEntityFlat(stack); + else if (type == ItemRenderType.EQUIPPED || type == ItemRenderType.EQUIPPED_FIRST_PERSON) { + renderIn3D(stack); + } + } + + private void renderIn3D(ItemStack stack) { + GL11.glPushMatrix(); + + renderLayerIn3D(ItemGate.getLogic(stack).getIconItem()); + GL11.glScalef(1, 1, 1.05f); + renderLayerIn3D(ItemGate.getMaterial(stack).getIconItem()); + + GL11.glPopMatrix(); + } + + private void renderLayerIn3D(Icon icon) { + if (icon == null) + return; + GL11.glPushMatrix(); + Tessellator tessellator = Tessellator.instance; + + float uv1 = icon.getMinU(); + float uv2 = icon.getMaxU(); + float uv3 = icon.getMinV(); + float uv4 = icon.getMaxV(); + + ItemRenderer.renderItemIn2D(tessellator, uv2, uv3, uv1, uv4, icon.getIconWidth(), icon.getIconHeight(), 0.0625F); + GL11.glPopMatrix(); + } + + private void renderAsEntity(ItemStack stack, EntityItem entity) { + GL11.glPushMatrix(); + byte iterations = 1; + if (stack.stackSize > 1) + iterations = 2; + if (stack.stackSize > 15) + iterations = 3; + if (stack.stackSize > 31) + iterations = 4; + + Random rand = new Random(187L); + + float offsetZ = 0.0625F + 0.021875F; + + GL11.glRotatef((((float) entity.age + 1.0F) / 20.0F + entity.hoverStart) * (180F / (float) Math.PI), 0.0F, 1.0F, 0.0F); + GL11.glTranslatef(-0.5F, -0.25F, -(offsetZ * (float) iterations / 2.0F)); + + for (int count = 0; count < iterations; ++count) { + if (count > 0) { + float offsetX = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; + float offsetY = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; + float z = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F / 0.5F; + GL11.glTranslatef(offsetX, offsetY, offsetZ); + } else + GL11.glTranslatef(0f, 0f, offsetZ); + + renderIn3D(stack); + } + GL11.glPopMatrix(); + } + + private void renderAsEntityFlat(ItemStack stack) { + GL11.glPushMatrix(); + byte iterations = 1; + if (stack.stackSize > 1) + iterations = 2; + if (stack.stackSize > 15) + iterations = 3; + if (stack.stackSize > 31) + iterations = 4; + + Random rand = new Random(187L); + + for (int ii = 0; ii < iterations; ++ii) { + GL11.glPushMatrix(); + GL11.glRotatef(180.0F, 0.0F, 1.0F, 0.0F); + GL11.glRotatef(180 - RenderManager.instance.playerViewY, 0.0F, 1.0F, 0.0F); + + if (ii > 0) { + float var12 = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F; + float var13 = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F; + float var14 = (rand.nextFloat() * 2.0F - 1.0F) * 0.3F; + GL11.glTranslatef(var12, var13, var14); + } + + GL11.glTranslatef(0.5f, 0.8f, 0); + GL11.glRotatef(180.0F, 0.0F, 0.0F, 1.0F); + GL11.glScalef(1f / 16f, 1f / 16f, 1); + + render(ItemRenderType.ENTITY, stack); + GL11.glPopMatrix(); + } + GL11.glPopMatrix(); + } + + private void render(ItemRenderType type, ItemStack stack) { + GL11.glPushMatrix(); + GL11.glDisable(GL11.GL_LIGHTING); + Icon icon = ItemGate.getLogic(stack).getIconItem(); + renderItem.renderIcon(0, 0, icon, 16, 16); + icon = ItemGate.getMaterial(stack).getIconItem(); + if (icon != null) { + if (type == ItemRenderType.ENTITY) + GL11.glTranslatef(0, 0, -0.01f); + renderItem.renderIcon(0, 0, icon, 16, 16); + } + GL11.glEnable(GL11.GL_LIGHTING); + GL11.glPopMatrix(); + } +} diff --git a/common/buildcraft/transport/render/PipeRendererTESR.java b/common/buildcraft/transport/render/PipeRendererTESR.java index d037a79c..71c0983c 100644 --- a/common/buildcraft/transport/render/PipeRendererTESR.java +++ b/common/buildcraft/transport/render/PipeRendererTESR.java @@ -16,7 +16,7 @@ import buildcraft.core.CoreConstants; import buildcraft.core.render.RenderEntityBlock; import buildcraft.core.render.RenderEntityBlock.RenderInfo; import buildcraft.core.utils.EnumColor; -import buildcraft.core.utils.GL; +import buildcraft.core.render.RenderUtils; import buildcraft.core.utils.MatrixTranformations; import buildcraft.transport.Pipe; import buildcraft.transport.PipeIconProvider; @@ -456,7 +456,11 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { bindTexture(TextureMap.locationBlocksTexture); - renderGate(pipe, pipe.pipe.gate.logic.getIconDark()); + renderGate(pipe, pipe.pipe.gate.logic.getIconDark(), 0); + + Icon materialIcon = pipe.pipe.gate.material.getIconBlock(); + if (materialIcon != null) + renderGate(pipe, materialIcon, 1); RenderHelper.enableStandardItemLighting(); @@ -464,9 +468,8 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { GL11.glPopMatrix(); } - private void renderGate(TileGenericPipe tile, Icon icon) { - float min = CoreConstants.PIPE_MIN_POS + 0.05F; - float max = CoreConstants.PIPE_MAX_POS - 0.05F; + private void renderGate(TileGenericPipe tile, Icon icon, int layer) { + PipeRenderState state = tile.renderState; @@ -474,12 +477,15 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { box.texture = icon; float[][] zeroState = new float[3][2]; + float min = CoreConstants.PIPE_MIN_POS + 0.05F; + float max = CoreConstants.PIPE_MAX_POS - 0.05F; + // X START - END zeroState[0][0] = min; zeroState[0][1] = max; // Y START - END zeroState[1][0] = CoreConstants.PIPE_MIN_POS - 0.10F; - zeroState[1][1] = CoreConstants.PIPE_MIN_POS + 0.001F; + zeroState[1][1] = CoreConstants.PIPE_MIN_POS + 0.001F + 0.01F * layer; // Z START - END zeroState[2][0] = min; zeroState[2][1] = max; @@ -489,40 +495,12 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { float[][] rotated = MatrixTranformations.deepClone(zeroState); MatrixTranformations.transform(rotated, direction); + if (layer != 0) + box.setRenderSingleSide(direction.ordinal()); box.setBounds(rotated[0][0], rotated[1][0], rotated[2][0], rotated[0][1], rotated[1][1], rotated[2][1]); RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); } } - -// if (shouldRenderNormalPipeSide(state, ForgeDirection.WEST)) { -// box.setBounds(CoreConstants.PIPE_MIN_POS - 0.10F, min, min, CoreConstants.PIPE_MIN_POS + 0.001F, max, max); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } -// -// if (shouldRenderNormalPipeSide(state, ForgeDirection.EAST)) { -// box.setBounds(CoreConstants.PIPE_MAX_POS + 0.001F, min, min, CoreConstants.PIPE_MAX_POS + 0.10F, max, max); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } -// -// if (shouldRenderNormalPipeSide(state, ForgeDirection.DOWN)) { -// box.setBounds(min, CoreConstants.PIPE_MIN_POS - 0.10F, min, max, CoreConstants.PIPE_MIN_POS + 0.001F, max); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } -// -// if (shouldRenderNormalPipeSide(state, ForgeDirection.UP)) { -// box.setBounds(min, CoreConstants.PIPE_MAX_POS + 0.001F, min, max, CoreConstants.PIPE_MAX_POS + 0.10F, max); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } -// -// if (shouldRenderNormalPipeSide(state, ForgeDirection.NORTH)) { -// box.setBounds(min, min, CoreConstants.PIPE_MIN_POS - 0.10F, max, max, CoreConstants.PIPE_MIN_POS + 0.001F); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } -// -// if (shouldRenderNormalPipeSide(state, ForgeDirection.SOUTH)) { -// box.setBounds(min, min, CoreConstants.PIPE_MAX_POS + 0.001F, max, max, CoreConstants.PIPE_MAX_POS + 0.10F); -// RenderEntityBlock.INSTANCE.renderBlock(box, tile.worldObj, 0, 0, 0, tile.xCoord, tile.yCoord, tile.zCoord, true, true); -// } } private boolean shouldRenderNormalPipeSide(PipeRenderState state, ForgeDirection direction) { @@ -624,7 +602,6 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { int i = side.ordinal(); FluidStack fluidStack = trans.renderCache[i]; - int color = trans.colorRenderCache[i]; if (fluidStack == null || fluidStack.amount <= 0) continue; @@ -666,13 +643,12 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { default: } bindTexture(TextureMap.locationBlocksTexture); - GL.color(color); + RenderUtils.setGLColorFromInt(trans.colorRenderCache[i]); GL11.glCallList(list); GL11.glPopMatrix(); } // CENTER FluidStack fluidStack = trans.renderCache[ForgeDirection.UNKNOWN.ordinal()]; - int color = trans.colorRenderCache[ForgeDirection.UNKNOWN.ordinal()]; if (fluidStack != null && fluidStack.amount > 0) { DisplayFluidList d = getListFromBuffer(fluidStack, pipe.container.worldObj); @@ -681,7 +657,7 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { int stage = (int) ((float) fluidStack.amount / (float) (trans.getCapacity()) * (LIQUID_STAGES - 1)); bindTexture(TextureMap.locationBlocksTexture); - GL.color(color); + RenderUtils.setGLColorFromInt(trans.colorRenderCache[ForgeDirection.UNKNOWN.ordinal()]); if (above) { GL11.glCallList(d.centerVertical[stage]); @@ -761,7 +737,7 @@ public class PipeRendererTESR extends TileEntitySpecialRenderer { block.minX = min; block.maxX = max; - GL.color(color.getLightHex()); + RenderUtils.setGLColorFromInt(color.getLightHex()); RenderEntityBlock.INSTANCE.renderBlock(block, null, 0, 0, 0, false, true); } GL11.glPopMatrix();