From fea5e8dab73a2c3946e5b83112987eb2a75b2946 Mon Sep 17 00:00:00 2001 From: "Aidan C. Brady" Date: Sun, 24 Nov 2013 16:01:35 -0600 Subject: [PATCH] Pressurized Tubes now render gas in connected block bounds dynamically --- common/mekanism/client/gui/GuiFactory.java | 5 ++ .../client/model/ModelTransmitter.java | 2 +- .../tileentity/RenderPressurizedTube.java | 49 +++++++------------ common/mekanism/common/Mekanism.java | 2 +- 4 files changed, 26 insertions(+), 32 deletions(-) diff --git a/common/mekanism/client/gui/GuiFactory.java b/common/mekanism/client/gui/GuiFactory.java index c0e23cba5..15e5e2a47 100644 --- a/common/mekanism/client/gui/GuiFactory.java +++ b/common/mekanism/client/gui/GuiFactory.java @@ -46,6 +46,11 @@ public class GuiFactory extends GuiMekanism { drawCreativeTabHoveringText(MekanismUtils.getEnergyDisplay(tileEntity.getEnergy()), xAxis, yAxis); } + + if(xAxis >= 8 && xAxis <= 168 && yAxis >= 78 && yAxis <= 83) + { + drawCreativeTabHoveringText("Secondary energy: " + tileEntity.secondaryEnergyStored, xAxis, yAxis); + } } @Override diff --git a/common/mekanism/client/model/ModelTransmitter.java b/common/mekanism/client/model/ModelTransmitter.java index 302fe5dbb..beff7206c 100644 --- a/common/mekanism/client/model/ModelTransmitter.java +++ b/common/mekanism/client/model/ModelTransmitter.java @@ -59,7 +59,7 @@ public class ModelTransmitter extends ModelBase setRotation(Front, 0F, 1.570796F, 0F); Back = new ModelRendererSelectiveFace(this, 0, 49); Back.addBox(0F, 0F, 0F, 4, 8, 8); - Back.setRotationPoint(-4F, 12F, 8F);// + Back.setRotationPoint(-4F, 12F, 8F); Back.setTextureSize(64, 64); Back.mirror = true; setRotation(Back, 0F, 1.570796F, 0F); diff --git a/common/mekanism/client/render/tileentity/RenderPressurizedTube.java b/common/mekanism/client/render/tileentity/RenderPressurizedTube.java index 1cb583cf0..0a96706e7 100644 --- a/common/mekanism/client/render/tileentity/RenderPressurizedTube.java +++ b/common/mekanism/client/render/tileentity/RenderPressurizedTube.java @@ -13,6 +13,7 @@ import mekanism.client.render.MekanismRenderer; import mekanism.client.render.MekanismRenderer.BooleanArray; import mekanism.client.render.MekanismRenderer.DisplayInteger; import mekanism.client.render.MekanismRenderer.Model3D; +import mekanism.common.Mekanism; import mekanism.common.tileentity.TileEntityGasTank; import mekanism.common.tileentity.TileEntityPressurizedTube; import mekanism.common.util.MekanismUtils; @@ -34,7 +35,6 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer private boolean[] connectable; - private HashMap> cachedSideGasses = new HashMap>(); private HashMap> cachedCenterGasses = new HashMap>(); private static final double offset = 0.015; @@ -121,23 +121,27 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer bindTexture(MekanismRenderer.getBlocksTexture()); GL11.glTranslatef((float)x, (float)y, (float)z); - if(tileEntity.gasScale > 0) + if(!Mekanism.proxy.isPaused()) { - tileEntity.gasScale = Math.max(0, tileEntity.gasScale - .008F); - } - else { - tileEntity.refGas = null; + if(tileEntity.gasScale > 0) + { + tileEntity.gasScale = Math.max(0, tileEntity.gasScale - .008F); + } + else { + tileEntity.refGas = null; + } } for(int i = 0; i < 6; i++) { if(connectable[i]) { - getListAndRender(ForgeDirection.getOrientation(i), tileEntity.refGas).render(); + Block b = Block.blocksList[Object3D.get(tileEntity).getFromSide(ForgeDirection.getOrientation(i)).getBlockId(tileEntity.worldObj)]; + getListAndRender(ForgeDirection.getOrientation(i), tileEntity.refGas, b).render(); } } - getListAndRender(ForgeDirection.UNKNOWN, tileEntity.refGas).render(); + getListAndRender(ForgeDirection.UNKNOWN, tileEntity.refGas, null).render(); pop(); } @@ -160,7 +164,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer } @SuppressWarnings("incomplete-switch") - private DisplayInteger getListAndRender(ForgeDirection side, EnumGas type) + private DisplayInteger getListAndRender(ForgeDirection side, EnumGas type, Block block) { if(side == ForgeDirection.UNKNOWN) { @@ -205,11 +209,6 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer return display; } - if(cachedSideGasses.containsKey(side) && cachedSideGasses.get(side).containsKey(type)) - { - return cachedSideGasses.get(side).get(type); - } - Model3D toReturn = new Model3D(); toReturn.baseBlock = Block.waterStill; toReturn.setTexture(type.gasIcon); @@ -218,23 +217,13 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer toReturn.setSideRender(side.getOpposite(), false); DisplayInteger display = DisplayInteger.createAndStart(); - - if(cachedSideGasses.containsKey(side)) - { - cachedSideGasses.get(side).put(type, display); - } - else { - HashMap map = new HashMap(); - map.put(type, display); - cachedSideGasses.put(side, map); - } switch(side) { case DOWN: { toReturn.minX = 0.3 + offset; - toReturn.minY = 0.0; + toReturn.minY = 0.0 - (1-block.getBlockBoundsMaxY()); toReturn.minZ = 0.3 + offset; toReturn.maxX = 0.7 - offset; @@ -249,7 +238,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer toReturn.minZ = 0.3 + offset; toReturn.maxX = 0.7 - offset; - toReturn.maxY = 1.0; + toReturn.maxY = 1.0 + block.getBlockBoundsMinY(); toReturn.maxZ = 0.7 - offset; break; } @@ -257,7 +246,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer { toReturn.minX = 0.3 + offset; toReturn.minY = 0.3 + offset; - toReturn.minZ = 0.0; + toReturn.minZ = 0.0 - (1-block.getBlockBoundsMaxZ()); toReturn.maxX = 0.7 - offset; toReturn.maxY = 0.7 - offset; @@ -272,12 +261,12 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer toReturn.maxX = 0.7 - offset; toReturn.maxY = 0.7 - offset; - toReturn.maxZ = 1.0; + toReturn.maxZ = 1.0 + block.getBlockBoundsMinZ(); break; } case WEST: { - toReturn.minX = 0.0; + toReturn.minX = 0.0 - (1-block.getBlockBoundsMaxX()); toReturn.minY = 0.3 + offset; toReturn.minZ = 0.3 + offset; @@ -292,7 +281,7 @@ public class RenderPressurizedTube extends TileEntitySpecialRenderer toReturn.minY = 0.3 + offset; toReturn.minZ = 0.3 + offset; - toReturn.maxX = 1.0; + toReturn.maxX = 1.0 + block.getBlockBoundsMinX(); toReturn.maxY = 0.7 - offset; toReturn.maxZ = 0.7 - offset; break; diff --git a/common/mekanism/common/Mekanism.java b/common/mekanism/common/Mekanism.java index 38e4344dc..ef3281fb1 100644 --- a/common/mekanism/common/Mekanism.java +++ b/common/mekanism/common/Mekanism.java @@ -112,7 +112,7 @@ import cpw.mods.fml.common.registry.EntityRegistry; import cpw.mods.fml.common.registry.GameRegistry; /** - * Mekanism - the mod in which no true definition fits. + * Mekanism - the mod that doesn't have a category. * @author AidanBrady * */