diff --git a/src/main/java/storagecraft/gui/GuiController.java b/src/main/java/storagecraft/gui/GuiController.java index 8fa7be9a4..baa8e11a7 100644 --- a/src/main/java/storagecraft/gui/GuiController.java +++ b/src/main/java/storagecraft/gui/GuiController.java @@ -41,9 +41,9 @@ public class GuiController extends GuiContainer { int energy = controller.getEnergyStored(null); int maxEnergy = controller.getMaxEnergyStored(null); - int height = (int) ((float) energy / (float) maxEnergy * (float) barHeight); + int newBarHeight = (int) ((float) energy / (float) maxEnergy * (float) barHeight); - drawTexturedModalRect(barX, barY + barHeight - height, 178, 0, barWidth, height); + drawTexturedModalRect(barX, barY + barHeight - newBarHeight, 178, 0, barWidth, newBarHeight); fontRendererObj.drawString("Controller", x + 7, y + 7, 4210752); fontRendererObj.drawString("Inventory", x + 7, y + 96, 4210752); diff --git a/src/main/java/storagecraft/render/BlockCableRenderer.java b/src/main/java/storagecraft/render/BlockCableRenderer.java index d684fccbb..53b29aec5 100644 --- a/src/main/java/storagecraft/render/BlockCableRenderer.java +++ b/src/main/java/storagecraft/render/BlockCableRenderer.java @@ -9,12 +9,11 @@ import storagecraft.render.model.CableModel; import storagecraft.tile.TileCable; public class BlockCableRenderer extends TileEntitySpecialRenderer { + public static final CableModel CABLE_MODEL = new CableModel(); public static final ResourceLocation CABLE_RESOURCE = new ResourceLocation("storagecraft:textures/blocks/cable.png"); @Override public void renderTileEntityAt(TileEntity tile, double x, double y, double z, float scale) { - CableModel model = new CableModel((TileCable) tile); - GL11.glPushMatrix(); GL11.glTranslatef((float) x, (float) y, (float) z); @@ -23,7 +22,7 @@ public class BlockCableRenderer extends TileEntitySpecialRenderer { Minecraft.getMinecraft().renderEngine.bindTexture(CABLE_RESOURCE); - model.render(null, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); + CABLE_MODEL.render((TileCable) tile, 0.0F, 0.0F, -0.1F, 0.0F, 0.0F, 0.0625F); GL11.glPopMatrix(); } diff --git a/src/main/java/storagecraft/render/model/CableModel.java b/src/main/java/storagecraft/render/model/CableModel.java index 33a6b2ad7..97f6123dc 100644 --- a/src/main/java/storagecraft/render/model/CableModel.java +++ b/src/main/java/storagecraft/render/model/CableModel.java @@ -2,13 +2,10 @@ package storagecraft.render.model; import net.minecraft.client.model.ModelBase; import net.minecraft.client.model.ModelRenderer; -import net.minecraft.entity.Entity; import net.minecraftforge.common.util.ForgeDirection; import storagecraft.tile.TileCable; public class CableModel extends ModelBase { - private TileCable cable; - private ModelRenderer core; private ModelRenderer up; private ModelRenderer down; @@ -17,9 +14,7 @@ public class CableModel extends ModelBase { private ModelRenderer south; private ModelRenderer west; - public CableModel(TileCable cable) { - this.cable = cable; - + public CableModel() { core = new ModelRenderer(this, 0, 0); core.addBox(6F, 6F, 6F, 4, 4, 4); core.setTextureSize(16, 16); @@ -49,8 +44,7 @@ public class CableModel extends ModelBase { west.setTextureSize(16, 16); } - @Override - public void render(Entity entity, float f, float f1, float f2, float f3, float f4, float f5) { + public void render(TileCable cable, float f, float f1, float f2, float f3, float f4, float f5) { core.render(f5); if (cable != null) { diff --git a/src/main/java/storagecraft/tile/TileCable.java b/src/main/java/storagecraft/tile/TileCable.java index c5fef4f97..cd9c3a039 100644 --- a/src/main/java/storagecraft/tile/TileCable.java +++ b/src/main/java/storagecraft/tile/TileCable.java @@ -27,15 +27,17 @@ public class TileCable extends TileSC { } public List findMachines(TileController controller) { - return findMachines(new ArrayList(), controller); - } - - private List findMachines(List visited, TileController controller) { List machines = new ArrayList(); + findMachinesInternal(new ArrayList(), machines, controller); + + return machines; + } + + private void findMachinesInternal(List visited, List machines, TileController controller) { for (Vec3 visitedBlock : visited) { if (visitedBlock.xCoord == xCoord && visitedBlock.yCoord == yCoord && visitedBlock.zCoord == zCoord) { - return machines; + return; } } @@ -65,12 +67,10 @@ public class TileCable extends TileSC { visited.add(Vec3.createVectorHelper(x, y, z)); } else if (tile instanceof TileCable) { - machines.addAll(((TileCable) tile).findMachines(visited, controller)); + ((TileCable) tile).findMachinesInternal(visited, machines, controller); } else if (tile instanceof TileController && (x != controller.xCoord || y != controller.yCoord || z != controller.zCoord)) { worldObj.createExplosion(null, x, y, z, 4.5f, true); } } - - return machines; } } diff --git a/src/main/java/storagecraft/tile/TileController.java b/src/main/java/storagecraft/tile/TileController.java index 540a11346..6dc8390ad 100644 --- a/src/main/java/storagecraft/tile/TileController.java +++ b/src/main/java/storagecraft/tile/TileController.java @@ -59,9 +59,9 @@ public class TileController extends TileSC implements IEnergyHandler, INetworkTi for (IMachine machine : connectedMachines) { energyUsage += machine.getEnergyUsage(); } - } - storage.extractEnergy(getEnergyUsage(), false); + storage.extractEnergy(energyUsage, false); + } } public void onDestroyed() { @@ -76,6 +76,10 @@ public class TileController extends TileSC implements IEnergyHandler, INetworkTi connectedMachines.clear(); } + public List getMachines() { + return connectedMachines; + } + @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt);