diff --git a/common/mekanism/client/render/RenderPartTransmitter.java b/common/mekanism/client/render/RenderPartTransmitter.java index 77e76644d..6d948235c 100644 --- a/common/mekanism/client/render/RenderPartTransmitter.java +++ b/common/mekanism/client/render/RenderPartTransmitter.java @@ -16,7 +16,6 @@ import net.minecraft.util.Icon; import net.minecraft.util.ResourceLocation; import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; import org.lwjgl.opengl.GL11; @@ -314,9 +313,28 @@ public class RenderPartTransmitter implements IIconRegister return displays; } - public void renderContents(PartPressurizedTube transmitter, Vector3 pos) + public void renderContents(PartPressurizedTube tube, Vector3 pos) { - System.out.println("specific"); + if(tube.getTransmitterNetwork().refGas == null || tube.getTransmitterNetwork().gasScale == 0) + { + return; + } + + GL11.glPushMatrix(); + CCRenderState.reset(); + CCRenderState.useNormals(true); + CCRenderState.useModelColours(true); + CCRenderState.startDrawing(7); + GL11.glTranslated(pos.x, pos.y, pos.z); + + for(ForgeDirection side : ForgeDirection.VALID_DIRECTIONS) + { + renderGasSide(side, tube); + } + + CCRenderState.draw(); + + GL11.glPopMatrix(); } public void renderStatic(PartTransmitter transmitter) @@ -330,7 +348,6 @@ public class RenderPartTransmitter implements IIconRegister { renderSide(side, transmitter); } - } public void renderSide(ForgeDirection side, PartTransmitter transmitter) @@ -349,12 +366,22 @@ public class RenderPartTransmitter implements IIconRegister name += connected ? "Out" : "In"; renderTransparency(MekanismRenderer.energyIcon, cableContentsModels.get(name), new ColourRGBA(1.0, 1.0, 1.0, cable.getTransmitterNetwork().clientEnergyScale)); } + + public void renderGasSide(ForgeDirection side, PartPressurizedTube tube) + { + boolean connected = PartTransmitter.connectionMapContainsSide(tube.getAllCurrentConnections(), side); + String name = side.name().toLowerCase(); + name += connected ? "Out" : "In"; + renderTransparency(tube.getTransmitterNetwork().refGas.getIcon(), cableContentsModels.get(name), new ColourRGBA(1.0, 1.0, 1.0, tube.getTransmitterNetwork().gasScale)); + } - public void renderPart(Icon icon, CCModel cc, double x, double y, double z) { + public void renderPart(Icon icon, CCModel cc, double x, double y, double z) + { cc.render(0, cc.verts.length, new Translation(x, y, z), new IconTransformation(icon), null); } - public void renderTransparency(Icon icon, CCModel cc, Colour colour) { + public void renderTransparency(Icon icon, CCModel cc, Colour colour) + { cc.render(0, cc.verts.length, new Translation(0, 0, 0), new IconTransformation(icon), new ColourMultiplier(colour)); } diff --git a/common/mekanism/common/multipart/PartPressurizedTube.java b/common/mekanism/common/multipart/PartPressurizedTube.java index 953de3739..f860ce9f7 100644 --- a/common/mekanism/common/multipart/PartPressurizedTube.java +++ b/common/mekanism/common/multipart/PartPressurizedTube.java @@ -2,11 +2,15 @@ package mekanism.common.multipart; import java.util.Set; +import codechicken.lib.vec.Vector3; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import mekanism.api.gas.Gas; import mekanism.api.gas.GasNetwork; import mekanism.api.gas.IGasAcceptor; import mekanism.api.transmitters.ITransmitter; import mekanism.api.transmitters.TransmissionType; +import mekanism.client.render.RenderPartTransmitter; import net.minecraft.tileentity.TileEntity; import net.minecraftforge.common.ForgeDirection; @@ -65,4 +69,11 @@ public class PartPressurizedTube extends PartTransmitter { return getTransmitterNetwork().getFlow(); } + + @Override + @SideOnly(Side.CLIENT) + public void renderDynamic(Vector3 pos, float f, int pass) + { + RenderPartTransmitter.getInstance().renderContents(this, pos); + } } diff --git a/common/mekanism/generators/common/tileentity/TileEntitySolarGenerator.java b/common/mekanism/generators/common/tileentity/TileEntitySolarGenerator.java index 509075ed8..623f2ed7c 100644 --- a/common/mekanism/generators/common/tileentity/TileEntitySolarGenerator.java +++ b/common/mekanism/generators/common/tileentity/TileEntitySolarGenerator.java @@ -94,7 +94,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator if(canOperate()) { setActive(true); - setEnergy(electricityStored + getProduction()); + setEnergy(getEnergy() + getProduction()); } else { setActive(false); @@ -127,7 +127,7 @@ public class TileEntitySolarGenerator extends TileEntityGenerator @Override public boolean canOperate() { - return electricityStored < MAX_ELECTRICITY && seesSun && MekanismUtils.canFunction(this); + return getEnergy() < getMaxEnergy() && seesSun && MekanismUtils.canFunction(this); } public double getProduction() @@ -147,6 +147,8 @@ public class TileEntitySolarGenerator extends TileEntityGenerator { ret *= 1.5; } + + return ret; } return 0;