From 50a830a101572dc8baa47e446ca449dac32e5c20 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sun, 1 Nov 2015 16:45:58 +0000 Subject: [PATCH] Fixes #207 --- .../container/ContainerDieselGenerator.java | 37 +++++++++++++++++++ .../client/gui/GuiDieselGenerator.java | 9 ++++- .../powerSystem/TilePowerAcceptor.java | 2 +- .../techreborn/tiles/TileDieselGenerator.java | 7 +++- 4 files changed, 51 insertions(+), 4 deletions(-) diff --git a/src/main/java/techreborn/client/container/ContainerDieselGenerator.java b/src/main/java/techreborn/client/container/ContainerDieselGenerator.java index bb007ad71..07329fda4 100644 --- a/src/main/java/techreborn/client/container/ContainerDieselGenerator.java +++ b/src/main/java/techreborn/client/container/ContainerDieselGenerator.java @@ -1,6 +1,9 @@ package techreborn.client.container; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.inventory.ICrafting; import net.minecraft.inventory.Slot; import techreborn.client.SlotFake; import techreborn.client.SlotOutput; @@ -9,6 +12,8 @@ import techreborn.tiles.TileDieselGenerator; public class ContainerDieselGenerator extends TechRebornContainer { public TileDieselGenerator tiledieselGenerator; public EntityPlayer player; + public int energy; + public int fluid; public ContainerDieselGenerator(TileDieselGenerator tiledieselGenerator, EntityPlayer player) { @@ -42,4 +47,36 @@ public class ContainerDieselGenerator extends TechRebornContainer { public boolean canInteractWith(EntityPlayer player) { return true; } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + for (int i = 0; i < this.crafters.size(); i++) { + ICrafting icrafting = (ICrafting) this.crafters.get(i); + if (this.energy != (int) tiledieselGenerator.getEnergy()) { + icrafting.sendProgressBarUpdate(this, 0, (int) tiledieselGenerator.getEnergy()); + } + if (this.fluid != tiledieselGenerator.tank.getFluidAmount()) { + icrafting.sendProgressBarUpdate(this, 1, tiledieselGenerator.tank.getFluidAmount()); + } + } + } + + @Override + public void addCraftingToCrafters(ICrafting crafting) { + super.addCraftingToCrafters(crafting); + crafting.sendProgressBarUpdate(this, 0, (int) tiledieselGenerator.getEnergy()); + crafting.sendProgressBarUpdate(this, 1, tiledieselGenerator.tank.getFluidAmount()); + } + + @SideOnly(Side.CLIENT) + @Override + public void updateProgressBar(int id, int value) { + if (id == 0) { + this.energy = value; + }else + if (id == 1) { + this.fluid = value; + } + } } diff --git a/src/main/java/techreborn/client/gui/GuiDieselGenerator.java b/src/main/java/techreborn/client/gui/GuiDieselGenerator.java index 172a20484..73ff0477c 100644 --- a/src/main/java/techreborn/client/gui/GuiDieselGenerator.java +++ b/src/main/java/techreborn/client/gui/GuiDieselGenerator.java @@ -15,11 +15,14 @@ public class GuiDieselGenerator extends GuiContainer { TileDieselGenerator tile; + ContainerDieselGenerator containerDieselGenerator; + public GuiDieselGenerator(EntityPlayer player, TileDieselGenerator tile) { super(new ContainerDieselGenerator(tile, player)); this.xSize = 176; this.ySize = 167; this.tile = tile; + containerDieselGenerator = (ContainerDieselGenerator) this.inventorySlots; } @Override @@ -39,7 +42,11 @@ public class GuiDieselGenerator extends GuiContainer { I18n.format("container.inventory", new Object[0]), 8, this.ySize - 96 + 2, 4210752); this.fontRendererObj.drawString("Liquid Amount", 10, 20, 16448255); - this.fontRendererObj.drawString(tile.tank.getFluidAmount() + "", 10, + this.fontRendererObj.drawString(containerDieselGenerator.fluid + "", 10, 30, 16448255); + + this.fontRendererObj.drawString("EU Amount", 10, 40, 16448255); + this.fontRendererObj.drawString(containerDieselGenerator.energy + "", 10, + 50, 16448255); } } diff --git a/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java b/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java index 3444ef66f..f6025235e 100644 --- a/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java +++ b/src/main/java/techreborn/powerSystem/TilePowerAcceptor.java @@ -227,7 +227,7 @@ public abstract class TilePowerAcceptor extends RFProviderTile implements double energyReceived = Math.min(getMaxPower() - energy, Math.min(this.getMaxPower(), energy)); if (!simulate) { - setEnergy(energy + energyReceived); + setEnergy(getEnergy() + energyReceived); } return energyReceived; } diff --git a/src/main/java/techreborn/tiles/TileDieselGenerator.java b/src/main/java/techreborn/tiles/TileDieselGenerator.java index 7665b4765..476e3ec95 100644 --- a/src/main/java/techreborn/tiles/TileDieselGenerator.java +++ b/src/main/java/techreborn/tiles/TileDieselGenerator.java @@ -89,11 +89,13 @@ public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchabl @Override public boolean canFill(ForgeDirection from, Fluid fluid) { + System.out.println("hi"); return FluidPowerManager.fluidPowerValues.containsKey(fluid); } @Override public boolean canDrain(ForgeDirection from, Fluid fluid) { + System.out.println("hi"); return tank.getFluid() == null || tank.getFluid().getFluid() == fluid; } @@ -149,9 +151,10 @@ public class TileDieselGenerator extends TilePowerAcceptor implements IWrenchabl if (!tank.isEmpty()) { double powerIn = FluidPowerManager.fluidPowerValues.get(tank.getFluidType()); if(getFreeSpace() >= powerIn){ - addEnergy(powerIn); + addEnergy(powerIn, false); tank.drain(1, true); - } + System.out.println(getEnergy() + ":" + tank.getFluidAmount()); + } } }