diff options
Diffstat (limited to 'ihl/processing/chemistry')
4 files changed, 314 insertions, 346 deletions
diff --git a/ihl/processing/chemistry/ChemicalReactorTileEntity.java b/ihl/processing/chemistry/ChemicalReactorTileEntity.java index cec4177..ea3427c 100644 --- a/ihl/processing/chemistry/ChemicalReactorTileEntity.java +++ b/ihl/processing/chemistry/ChemicalReactorTileEntity.java @@ -230,7 +230,7 @@ public class ChemicalReactorTileEntity extends BasicElectricMotorTileEntity impl if(te instanceof CryogenicDistillerTileEntity)
{
CryogenicDistillerTileEntity cgte = (CryogenicDistillerTileEntity)te;
- cgte.fill(ForgeDirection.getOrientation(this.getFacing()), recipeInput.getFluidInputs().get(1).getInputs().get(0), true);
+ cgte.fill(ForgeDirection.getOrientation(this.getFacing()).getOpposite(), recipeInput.getFluidInputs().get(0).getInputs().get(0), true);
}
}
this.fluidTank.drain(recipeInput.getFluidInputs(), true);
diff --git a/ihl/processing/chemistry/CryogenicDistillerGui.java b/ihl/processing/chemistry/CryogenicDistillerGui.java index 3fbbfa4..2bfd969 100644 --- a/ihl/processing/chemistry/CryogenicDistillerGui.java +++ b/ihl/processing/chemistry/CryogenicDistillerGui.java @@ -2,7 +2,9 @@ package ihl.processing.chemistry; import org.lwjgl.opengl.GL11;
+import ic2.core.IC2;
import ihl.utils.IHLRenderUtils;
+import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.util.ResourceLocation;
@@ -15,43 +17,55 @@ public class CryogenicDistillerGui extends GuiContainer { super(latheContainer);
container = latheContainer;
}
-
-
- @Override
- protected void drawGuiContainerForegroundLayer(int par1, int par2) {
- int xOffset = (this.width - xSize) / 2;
- int yOffset = (this.height - ySize) / 2;
-
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(tex);
- int i1;
- if (this.container.tileEntity.getEnergy() > 0D)
- {
- GL11.glEnable(GL11.GL_BLEND);
- GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.9F);
- i1 = Math.min(this.container.tileEntity.getGUIEnergy(12),12);
- this.drawTexturedModalRect(9, 15 + 12 - i1, 176, 12 - i1, 14, i1 + 2);
- }
- if (this.container.tileEntity.progress > 0)
- {
- i1 = Math.min(this.container.tileEntity.gaugeProgressScaled(18),18);
- this.drawTexturedModalRect(81, 35, 198, 0, i1 + 1, 13);
- }
- if (this.container.tileEntity.fluidTankProducts.getFluid()!=null && this.container.tileEntity.fluidTankProducts.getFluidAmount() > 0)
- {
- IHLRenderUtils.instance.renderIHLFluidTank(this.container.tileEntity.fluidTankProducts, 125, 28, 137, 67, zLevel, par1, par2, xOffset, yOffset);
- }
- }
-
- @Override
- protected void drawGuiContainerBackgroundLayer(float par1, int par2,
- int par3) {
- //draw your Gui here, only thing you need to change is the path
- GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
- this.mc.renderEngine.bindTexture(tex);
- int x = (width - xSize) / 2;
- int y = (height - ySize) / 2;
- this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
- }
+
+ @SuppressWarnings("unchecked")
+ @Override
+ public void initGui() {
+ super.initGui();
+ int x = (width - xSize) / 2;
+ int y = (height - ySize) / 2;
+ this.buttonList.add(new GuiButton(0, x + 7, y + 49, 49, 20, "Empty"));
+ }
+
+ @Override
+ public void actionPerformed(GuiButton button) {
+ super.actionPerformed(button);
+ IC2.network.get().initiateClientTileEntityEvent(this.container.tileEntity, button.id);
+ }
+
+ @Override
+ protected void drawGuiContainerForegroundLayer(int par1, int par2) {
+ int xOffset = (this.width - xSize) / 2;
+ int yOffset = (this.height - ySize) / 2;
+
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.mc.renderEngine.bindTexture(tex);
+ int i1;
+ if (this.container.tileEntity.getEnergy() > 0D) {
+ GL11.glEnable(GL11.GL_BLEND);
+ GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 0.9F);
+ i1 = Math.min(this.container.tileEntity.getGUIEnergy(12), 12);
+ this.drawTexturedModalRect(9, 15 + 12 - i1, 176, 12 - i1, 14, i1 + 2);
+ }
+ if (this.container.tileEntity.progress > 0) {
+ i1 = Math.min(this.container.tileEntity.gaugeProgressScaled(18), 18);
+ this.drawTexturedModalRect(81, 35, 198, 0, i1 + 1, 13);
+ }
+ if (this.container.tileEntity.fluidTankProducts.getFluid() != null
+ && this.container.tileEntity.fluidTankProducts.getFluidAmount() > 0) {
+ IHLRenderUtils.instance.renderIHLFluidTank(this.container.tileEntity.fluidTankProducts, 125, 28, 137, 67,
+ zLevel, par1, par2, xOffset, yOffset);
+ }
+ }
+
+ @Override
+ protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) {
+ // draw your Gui here, only thing you need to change is the path
+ GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
+ this.mc.renderEngine.bindTexture(tex);
+ int x = (width - xSize) / 2;
+ int y = (height - ySize) / 2;
+ this.drawTexturedModalRect(x, y, 0, 0, xSize, ySize);
+ }
}
diff --git a/ihl/processing/chemistry/CryogenicDistillerTileEntity.java b/ihl/processing/chemistry/CryogenicDistillerTileEntity.java index 5a0194f..1ed4e36 100644 --- a/ihl/processing/chemistry/CryogenicDistillerTileEntity.java +++ b/ihl/processing/chemistry/CryogenicDistillerTileEntity.java @@ -1,9 +1,9 @@ package ihl.processing.chemistry;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import ic2.core.ContainerBase;
import ic2.core.block.invslot.InvSlot;
@@ -16,7 +16,6 @@ import ihl.recipes.UniversalRecipeManager; import ihl.recipes.UniversalRecipeOutput;
import ihl.utils.IHLFluidTank;
import ihl.utils.IHLUtils;
-import net.minecraft.block.Block;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
@@ -24,195 +23,154 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.fluids.Fluid;
-import net.minecraftforge.fluids.FluidRegistry;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.fluids.FluidTankInfo;
import net.minecraftforge.fluids.IFluidHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
-public class CryogenicDistillerTileEntity extends BasicElectricMotorTileEntity implements IFluidHandler{
+public class CryogenicDistillerTileEntity extends BasicElectricMotorTileEntity implements IFluidHandler {
- public final InvSlotConsumableLiquidIHL fillInputSlotInput;
- public final InvSlotOutput fluidItemsSlot;
- public final InvSlotConsumableLiquidIHL fillInputSlotProducts;
+ public final InvSlotConsumableLiquidIHL fillInputSlotInput;
+ public final InvSlotOutput fluidItemsSlot;
+ public final InvSlotConsumableLiquidIHL fillInputSlotProducts;
- private int processTimer=0;
private IHLFluidTank fluidTankInput = new IHLFluidTank(8000);
public IHLFluidTank fluidTankProducts = new IHLFluidTank(8000);
protected static final UniversalRecipeManager recipeManager = new UniversalRecipeManager("cryogenicdistiller");
- public CryogenicDistillerTileEntity()
- {
+ public CryogenicDistillerTileEntity() {
super();
- this.fillInputSlotInput = new InvSlotConsumableLiquidIHL(this, "fillInputSlotInput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
- this.fillInputSlotProducts = new InvSlotConsumableLiquidIHL(this, "fillInputSlotProducts", -1, InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
+ this.fillInputSlotInput = new InvSlotConsumableLiquidIHL(this, "fillInputSlotInput", -1, InvSlot.Access.I, 1,
+ InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
+ this.fillInputSlotProducts = new InvSlotConsumableLiquidIHL(this, "fillInputSlotProducts", -1, InvSlot.Access.I,
+ 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
this.fluidItemsSlot = new InvSlotOutput(this, "fluidCellsOutput", 2, 2);
}
-
+
@Override
public String getInventoryName() {
return "CryogenicDistiller";
}
-
- @Override
- public void updateEntityServer()
- {
- super.updateEntityServer();
- ForgeDirection dir = ForgeDirection.getOrientation(getFacing());
- if(this.processTimer++>20 && this.energy>=this.energyConsume)
- {
- this.energy-=this.energyConsume;
- this.processTimer=0;
- dir = dir.getOpposite();
- Block block = worldObj.getBlock(xCoord+dir.offsetX,yCoord+dir.offsetY,zCoord+dir.offsetZ);
- if(block!=null && block.isAir(worldObj, xCoord+dir.offsetX,yCoord+dir.offsetY,zCoord+dir.offsetZ) && this.fluidTankInput.getFluidAmount()<1000)
- {
- if(this.fluidTankInput.getFluid()==null || (this.fluidTankInput.getNumberOfFluids()<=1 && this.fluidTankInput.getFluid().getFluid()==FluidRegistry.getFluid("air")))
- {
- this.fluidTankInput.fill(IHLUtils.getFluidStackWithSize("air", 1000-(this.fluidTankInput.getFluid()!=null?this.fluidTankInput.getFluid().amount:0)),true);
- }
- }
- TileEntity teOnTop = worldObj.getTileEntity(xCoord, yCoord+1, zCoord);
- if(teOnTop instanceof IFluidHandler && this.fluidTankProducts.getLigthestFluid()!=null)
- {
- IFluidHandler topFH = (IFluidHandler)teOnTop;
- if(topFH.canFill(ForgeDirection.DOWN, this.fluidTankProducts.getLigthestFluid().getFluid()))
- {
- FluidStack fsToDrain = this.fluidTankProducts.getLigthestFluid().copy();
- fsToDrain.amount=topFH.fill(ForgeDirection.DOWN, fsToDrain, true);
- this.fluidTankProducts.drain(fsToDrain, true);
- }
- }
- ForgeDirection orientation = ForgeDirection.getOrientation(this.getFacing());
- TileEntity teOnFront = worldObj.getTileEntity(xCoord+orientation.offsetX, yCoord, zCoord+orientation.offsetZ);
- if(teOnFront instanceof IFluidHandler && this.fluidTankProducts.getFluid()!=null)
- {
- IFluidHandler frontFH = (IFluidHandler)teOnFront;
- if(frontFH.canFill(orientation, this.fluidTankProducts.getFluid().getFluid()))
- {
- FluidStack fsToDrain = this.fluidTankProducts.getFluid().copy();
- fsToDrain.amount=frontFH.fill(orientation, fsToDrain, true);
- this.fluidTankProducts.drain(fsToDrain, true);
- }
- }
- }
- IHLUtils.handleFluidSlotsBehaviour(fillInputSlotProducts, null, fluidItemsSlot, fluidTankProducts);
- }
-
+
+ @Override
+ public void updateEntityServer() {
+ super.updateEntityServer();
+ IHLUtils.handleFluidSlotsBehaviour(fillInputSlotProducts, null, fluidItemsSlot, fluidTankProducts);
+ }
+
@Override
- public ItemStack getWrenchDrop(EntityPlayer player)
- {
+ public ItemStack getWrenchDrop(EntityPlayer player) {
return IHLUtils.getThisModItemStack("cryogenicDistiller");
}
-
+
@Override
@SideOnly(Side.CLIENT)
public GuiScreen getGui(EntityPlayer player, boolean arg1) {
return new CryogenicDistillerGui(new CryogenicDistillerContainer(player, this));
}
-
+
@Override
public ContainerBase<?> getGuiContainer(EntityPlayer player) {
return new CryogenicDistillerContainer(player, this);
}
-
- @Override
- public void operate()
- {
- if (!this.fillInputSlotInput.isEmpty() && this.fluidTankInput.getFluid().getFluid()==FluidRegistry.getFluid("air"))
- {
- IHLUtils.handleFluidSlotsBehaviour(fillInputSlotInput, null, fluidItemsSlot, fluidTankInput);
- }
- else
- {
- UniversalRecipeInput ri = CryogenicDistillerTileEntity.recipeManager.getRecipeInput(getInput());
- Iterator<FluidStack> listFluidOutputsIterator = getOutput().getFluidOutputs().iterator();
- while(listFluidOutputsIterator.hasNext())
- {
- this.fluidTankProducts.fill(listFluidOutputsIterator.next(), true);
- }
- this.fluidTankInput.drain(ri.getFluidInputs().get(0), true);
- }
- }
-
- public UniversalRecipeOutput getOutput()
- {
- return CryogenicDistillerTileEntity.recipeManager.getOutputFor(this.getInput(), false, false);
- }
-
+
+ @Override
+ public void operate() {
+ UniversalRecipeInput ri = CryogenicDistillerTileEntity.recipeManager.getRecipeInput(getInput());
+ this.fluidTankProducts.fill(getOutput().getFluidOutputs(), true);
+ this.fluidTankInput.drain(ri.getFluidInputs().get(0), true);
+ TileEntity teOnTop = worldObj.getTileEntity(xCoord, yCoord + 1, zCoord);
+ if (teOnTop instanceof IFluidHandler && this.fluidTankProducts.getLigthestFluid() != null) {
+ IFluidHandler topFH = (IFluidHandler) teOnTop;
+ if (topFH.canFill(ForgeDirection.DOWN, this.fluidTankProducts.getLigthestFluid().getFluid())) {
+ FluidStack fsToDrain = this.fluidTankProducts.getLigthestFluid().copy();
+ fsToDrain.amount = topFH.fill(ForgeDirection.DOWN, fsToDrain, true);
+ this.fluidTankProducts.drain(fsToDrain, true);
+ }
+ }
+ ForgeDirection orientation = ForgeDirection.getOrientation(this.getFacing());
+ TileEntity teOnFront = worldObj.getTileEntity(xCoord + orientation.offsetX, yCoord,
+ zCoord + orientation.offsetZ);
+ if (teOnFront instanceof IFluidHandler && this.fluidTankProducts.getFluid() != null) {
+ IFluidHandler frontFH = (IFluidHandler) teOnFront;
+ if (frontFH.canFill(orientation, this.fluidTankProducts.getFluid().getFluid())) {
+ FluidStack fsToDrain = this.fluidTankProducts.getFluid().copy();
+ fsToDrain.amount = frontFH.fill(orientation, fsToDrain, true);
+ this.fluidTankProducts.drain(fsToDrain, true);
+ }
+ }
+ }
+
+ public UniversalRecipeOutput getOutput() {
+ return CryogenicDistillerTileEntity.recipeManager.getOutputFor(this.getInput(), false, false);
+ }
+
@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
- public List[] getInput()
- {
- return new List [] {Arrays.asList(new FluidStack [] {this.fluidTankInput.getLigthestFluid()}),null};
+ public List[] getInput() {
+ return new List[] {Arrays.asList(new FluidStack[] {this.fluidTankInput.getLigthestFluid()}), null };
}
-
+
@Override
- public boolean canOperate()
- {
- return this.getOutput()!=null;
+ public boolean canOperate() {
+ return this.getOutput() != null;
}
@Override
- public void onGuiClosed(EntityPlayer arg0) {}
-
+ public void onGuiClosed(EntityPlayer arg0) {
+ }
+
@Override
- public void readFromNBT(NBTTagCompound nbttagcompound)
- {
- super.readFromNBT(nbttagcompound);
- this.fluidTankInput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankInput"));
- this.fluidTankProducts.readFromNBT(nbttagcompound.getCompoundTag("fluidTankProducts"));
- }
+ public void readFromNBT(NBTTagCompound nbttagcompound) {
+ super.readFromNBT(nbttagcompound);
+ this.fluidTankInput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankInput"));
+ this.fluidTankProducts.readFromNBT(nbttagcompound.getCompoundTag("fluidTankProducts"));
+ }
@Override
- public void writeToNBT(NBTTagCompound nbttagcompound)
- {
- super.writeToNBT(nbttagcompound);
- NBTTagCompound fluidTankInputTag = new NBTTagCompound();
- this.fluidTankInput.writeToNBT(fluidTankInputTag);
- nbttagcompound.setTag("fluidTankInput", fluidTankInputTag);
- NBTTagCompound fluidTankProductsTag = new NBTTagCompound();
- this.fluidTankProducts.writeToNBT(fluidTankProductsTag);
- nbttagcompound.setTag("fluidTankProducts", fluidTankProductsTag);
- }
+ public void writeToNBT(NBTTagCompound nbttagcompound) {
+ super.writeToNBT(nbttagcompound);
+ NBTTagCompound fluidTankInputTag = new NBTTagCompound();
+ this.fluidTankInput.writeToNBT(fluidTankInputTag);
+ nbttagcompound.setTag("fluidTankInput", fluidTankInputTag);
+ NBTTagCompound fluidTankProductsTag = new NBTTagCompound();
+ this.fluidTankProducts.writeToNBT(fluidTankProductsTag);
+ nbttagcompound.setTag("fluidTankProducts", fluidTankProductsTag);
+ }
- public static void addRecipe(FluidStack input, FluidStack output, FluidStack output2, boolean specialCondition)
- {
- if(output2!=null)
- {
- recipeManager.addRecipe(new UniversalRecipeInput(new FluidStack[] {input},null), new UniversalRecipeOutput(new FluidStack[] {output,output2},null,20,specialCondition));
- }
- else
- {
- recipeManager.addRecipe(new UniversalRecipeInput(new FluidStack[] {input},null), new UniversalRecipeOutput(new FluidStack[] {output},null,20,specialCondition));
+ public static void addRecipe(FluidStack input, FluidStack output, FluidStack output2, boolean specialCondition) {
+ if (output2 != null) {
+ recipeManager.addRecipe(new UniversalRecipeInput(new FluidStack[] { input }, null),
+ new UniversalRecipeOutput(new FluidStack[] { output, output2 }, null, 20, specialCondition));
+ } else {
+ recipeManager.addRecipe(new UniversalRecipeInput(new FluidStack[] { input }, null),
+ new UniversalRecipeOutput(new FluidStack[] { output }, null, 20, specialCondition));
}
}
-
public static Map<UniversalRecipeInput, UniversalRecipeOutput> getRecipes() {
return recipeManager.getRecipes();
}
-
- public boolean canProcess()
- {
- return this.energy>=this.maxStorage && this.fluidTankInput.getFluidAmount()<1000;
+
+ public boolean canProcess() {
+ return this.energy >= this.energyConsume;
}
@Override
public boolean canDrain(ForgeDirection dir, Fluid arg1) {
- return dir.getOpposite().equals(ForgeDirection.getOrientation(this.getFacing())) || dir.equals(ForgeDirection.UP);
+ return dir.equals(ForgeDirection.getOrientation(this.getFacing()))
+ || dir.equals(ForgeDirection.UP);
}
@Override
public boolean canFill(ForgeDirection dir, Fluid fluid) {
- return dir.equals(ForgeDirection.getOrientation(this.getFacing()));
+ return dir.equals(ForgeDirection.getOrientation(this.getFacing()).getOpposite());
}
@Override
public FluidStack drain(ForgeDirection dir, FluidStack fstack, boolean doDrain) {
- if(this.canDrain(dir, null))
- {
+ if (this.canDrain(dir, null)) {
return this.fluidTankProducts.drain(fstack, doDrain);
}
return null;
@@ -220,10 +178,8 @@ public class CryogenicDistillerTileEntity extends BasicElectricMotorTileEntity i @Override
public FluidStack drain(ForgeDirection dir, int amount, boolean doDrain) {
- if(this.canDrain(dir, null))
- {
- if(dir.equals(ForgeDirection.UP))
- {
+ if (this.canDrain(dir, null)) {
+ if (dir.equals(ForgeDirection.UP)) {
return this.fluidTankProducts.drainLightest(amount, doDrain);
}
return this.fluidTankProducts.drain(amount, doDrain);
@@ -232,20 +188,25 @@ public class CryogenicDistillerTileEntity extends BasicElectricMotorTileEntity i }
@Override
- public int fill(ForgeDirection dir, FluidStack fstack, boolean doFill)
- {
- if(fstack!=null && fstack.getFluid()!=null && this.canFill(dir, fstack.getFluid()))
- {
- this.fluidTankInput.drain(IHLUtils.getFluidStackWithSize("air", this.fluidTankInput.getCapacity()), true);
+ public int fill(ForgeDirection dir, FluidStack fstack, boolean doFill) {
+ if (fstack != null && fstack.getFluid() != null && this.canFill(dir, fstack.getFluid())) {
return this.fluidTankInput.fill(fstack, doFill);
}
return 0;
}
@Override
- public FluidTankInfo[] getTankInfo(ForgeDirection dir)
- {
- return new FluidTankInfo[] {this.fluidTankInput.getInfo(),this.fluidTankProducts.getInfo()};
+ public FluidTankInfo[] getTankInfo(ForgeDirection dir) {
+ return new FluidTankInfo[] { this.fluidTankInput.getInfo(), this.fluidTankProducts.getInfo() };
}
-
+
+ @Override
+ public void onNetworkEvent(EntityPlayer player, int event) {
+ switch (event) {
+ case 0:
+ this.fluidTankProducts.setEmpty();
+ break;
+ }
+ }
+
}
diff --git a/ihl/processing/chemistry/LabElectrolyzerTileEntity.java b/ihl/processing/chemistry/LabElectrolyzerTileEntity.java index 10feef6..f8c00ad 100644 --- a/ihl/processing/chemistry/LabElectrolyzerTileEntity.java +++ b/ihl/processing/chemistry/LabElectrolyzerTileEntity.java @@ -29,105 +29,102 @@ import ihl.recipes.UniversalRecipeOutput; import ihl.utils.IHLFluidTank;
import ihl.utils.IHLUtils;
-public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity implements IFluidHandler
-{
+public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity implements IFluidHandler {
private final static UniversalRecipeManager recipeManager = new UniversalRecipeManager("labelectrolyzer");
- public final IHLInvSlotOutput outputSlot;
- public final InvSlotConsumableLiquidIHL drainInputSlot;
- public final InvSlotConsumableLiquidIHL fillInputSlot;
- public final InvSlotConsumableLiquidIHL fillInputSlotAnodeOutput;
- public final InvSlotConsumableLiquidIHL fillInputSlotCathodeOutput;
- public final InvSlotOutput emptyFluidItemsSlot;
+ public final IHLInvSlotOutput outputSlot;
+ public final InvSlotConsumableLiquidIHL drainInputSlot;
+ public final InvSlotConsumableLiquidIHL fillInputSlot;
+ public final InvSlotConsumableLiquidIHL fillInputSlotAnodeOutput;
+ public final InvSlotConsumableLiquidIHL fillInputSlotCathodeOutput;
+ public final InvSlotOutput emptyFluidItemsSlot;
private final IHLFluidTank fluidTank = new IHLFluidTank(2000);
public final IHLFluidTank fluidTankAnodeOutput = new IHLFluidTank(8000);
public final IHLFluidTank fluidTankCathodeOutput = new IHLFluidTank(8000);
- public short temperature=20;
-
+ public short temperature = 20;
+
public LabElectrolyzerTileEntity() {
super();
- this.outputSlot = new IHLInvSlotOutput(this, "output", 0, 2);
- this.drainInputSlot = new InvSlotConsumableLiquidIHL(this, "drainInput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.TOP, InvSlotConsumableLiquid.OpType.Drain);
- this.fillInputSlot = new InvSlotConsumableLiquidIHL(this, "fillInput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
- this.fillInputSlotAnodeOutput = new InvSlotConsumableLiquidIHL(this, "fillInputAnodeOutput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
- this.fillInputSlotCathodeOutput = new InvSlotConsumableLiquidIHL(this, "fillInputCathodeOutput", -1, InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
+ this.energyConsume *= 10;
+ this.outputSlot = new IHLInvSlotOutput(this, "output", 0, 2);
+ this.drainInputSlot = new InvSlotConsumableLiquidIHL(this, "drainInput", -1, InvSlot.Access.I, 1,
+ InvSlot.InvSide.TOP, InvSlotConsumableLiquid.OpType.Drain);
+ this.fillInputSlot = new InvSlotConsumableLiquidIHL(this, "fillInput", -1, InvSlot.Access.I, 1,
+ InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
+ this.fillInputSlotAnodeOutput = new InvSlotConsumableLiquidIHL(this, "fillInputAnodeOutput", -1,
+ InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
+ this.fillInputSlotCathodeOutput = new InvSlotConsumableLiquidIHL(this, "fillInputCathodeOutput", -1,
+ InvSlot.Access.I, 1, InvSlot.InvSide.BOTTOM, InvSlotConsumableLiquid.OpType.Fill);
this.emptyFluidItemsSlot = new InvSlotOutput(this, "fluidCellsOutput", 2, 3);
}
-
- @Override
- public void readFromNBT(NBTTagCompound nbttagcompound)
- {
- super.readFromNBT(nbttagcompound);
- this.fluidTank.readFromNBT(nbttagcompound.getCompoundTag("fluidTank"));
- this.fluidTankAnodeOutput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankAnodeOutput"));
- this.fluidTankCathodeOutput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankCathodeOutput"));
- }
-
- @Override
- public void writeToNBT(NBTTagCompound nbttagcompound)
- {
- super.writeToNBT(nbttagcompound);
- NBTTagCompound fluidTankTag = new NBTTagCompound();
- this.fluidTank.writeToNBT(fluidTankTag);
- nbttagcompound.setTag("fluidTank", fluidTankTag);
-
- NBTTagCompound fluidTankAnodeTag = new NBTTagCompound();
- this.fluidTankAnodeOutput.writeToNBT(fluidTankAnodeTag);
- nbttagcompound.setTag("fluidTankAnodeOutput", fluidTankAnodeTag);
-
- NBTTagCompound fluidTankCathodeTag = new NBTTagCompound();
- this.fluidTankCathodeOutput.writeToNBT(fluidTankCathodeTag);
- nbttagcompound.setTag("fluidTankCathodeOutput", fluidTankCathodeTag);
- }
-
+
+ @Override
+ public void readFromNBT(NBTTagCompound nbttagcompound) {
+ super.readFromNBT(nbttagcompound);
+ this.fluidTank.readFromNBT(nbttagcompound.getCompoundTag("fluidTank"));
+ this.fluidTankAnodeOutput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankAnodeOutput"));
+ this.fluidTankCathodeOutput.readFromNBT(nbttagcompound.getCompoundTag("fluidTankCathodeOutput"));
+ }
+
+ @Override
+ public void writeToNBT(NBTTagCompound nbttagcompound) {
+ super.writeToNBT(nbttagcompound);
+ NBTTagCompound fluidTankTag = new NBTTagCompound();
+ this.fluidTank.writeToNBT(fluidTankTag);
+ nbttagcompound.setTag("fluidTank", fluidTankTag);
+
+ NBTTagCompound fluidTankAnodeTag = new NBTTagCompound();
+ this.fluidTankAnodeOutput.writeToNBT(fluidTankAnodeTag);
+ nbttagcompound.setTag("fluidTankAnodeOutput", fluidTankAnodeTag);
+
+ NBTTagCompound fluidTankCathodeTag = new NBTTagCompound();
+ this.fluidTankCathodeOutput.writeToNBT(fluidTankCathodeTag);
+ nbttagcompound.setTag("fluidTankCathodeOutput", fluidTankCathodeTag);
+ }
+
@Override
public boolean wrenchCanSetFacing(EntityPlayer entityPlayer, int side) {
- return this.getFacing()!=side;
+ return this.getFacing() != side;
}
-
+
@Override
public ItemStack getWrenchDrop(EntityPlayer entityPlayer) {
return IHLUtils.getThisModItemStack("labElectrolyzer");
}
-
- @Override
- public boolean enableUpdateEntity()
- {
- return IC2.platform.isSimulating();
- }
-
-
- @Override
- public void updateEntityServer()
- {
- super.updateEntityServer();
- IHLUtils.handleFluidSlotsBehaviour(fillInputSlot, drainInputSlot, emptyFluidItemsSlot, fluidTank);
- IHLUtils.handleFluidSlotsBehaviour(fillInputSlotAnodeOutput, null, emptyFluidItemsSlot, fluidTankAnodeOutput);
- IHLUtils.handleFluidSlotsBehaviour(fillInputSlotCathodeOutput, null, emptyFluidItemsSlot, fluidTankCathodeOutput);
- }
-
- @Override
- public FluidStack drain(ForgeDirection direction, int amount, boolean doDrain)
- {
- if(this.canDrain(direction, null))
- {
- if(direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.UP)))
- {
- return this.fluidTankAnodeOutput.drain(amount, doDrain);
- }
- if(direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.DOWN)))
- {
- return this.fluidTankCathodeOutput.drain(amount, doDrain);
- }
+
+ @Override
+ public boolean enableUpdateEntity() {
+ return IC2.platform.isSimulating();
+ }
+
+ @Override
+ public void updateEntityServer() {
+ super.updateEntityServer();
+ IHLUtils.handleFluidSlotsBehaviour(fillInputSlot, drainInputSlot, emptyFluidItemsSlot, fluidTank);
+ IHLUtils.handleFluidSlotsBehaviour(fillInputSlotAnodeOutput, null, emptyFluidItemsSlot, fluidTankAnodeOutput);
+ IHLUtils.handleFluidSlotsBehaviour(fillInputSlotCathodeOutput, null, emptyFluidItemsSlot,
+ fluidTankCathodeOutput);
+ }
+
+ @Override
+ public FluidStack drain(ForgeDirection direction, int amount, boolean doDrain) {
+ if (this.canDrain(direction, null)) {
+ if (direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.UP))) {
+ return this.fluidTankAnodeOutput.drain(amount, doDrain);
+ }
+ if (direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.DOWN))) {
+ return this.fluidTankCathodeOutput.drain(amount, doDrain);
+ }
return this.fluidTank.drain(amount, doDrain);
- }
- return null;
- }
+ }
+ return null;
+ }
-
- //1.7.10 API
+ // 1.7.10 API
@Override
public boolean canDrain(ForgeDirection direction, Fluid arg1) {
- return direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.UP))||direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.DOWN))||direction.equals(ForgeDirection.DOWN);
+ return direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.UP))
+ || direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.DOWN))
+ || direction.equals(ForgeDirection.DOWN);
}
@Override
@@ -139,12 +136,11 @@ public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity impl public String getInventoryName() {
return "labElectrolizer";
}
-
- @Override
- public int gaugeProgressScaled(int i)
- {
- return this.progress * i / operationLength;
- }
+
+ @Override
+ public int gaugeProgressScaled(int i) {
+ return this.progress * i / operationLength;
+ }
@Override
@SideOnly(Side.CLIENT)
@@ -153,64 +149,58 @@ public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity impl }
@Override
- public ContainerBase<?> getGuiContainer(EntityPlayer player)
- {
+ public ContainerBase<?> getGuiContainer(EntityPlayer player) {
this.fluidTank.sortFluidsByDensity();
return new LabElectrolyzerContainer(player, this);
}
@Override
- public void onGuiClosed(EntityPlayer player) {}
-
- @Override
- public boolean canOperate()
- {
- UniversalRecipeOutput output = getOutput();
- if(output!=null)
- {
- if(getOutput().getItemOutputs()!=null && !getOutput().getItemOutputs().isEmpty() && getOutput().getItemOutputs().get(0)!=null)
- {
- return this.outputSlot.canAdd(getOutput().getItemOutputs());
- }
- else
- {
- return this.fluidTankAnodeOutput.getFluidAmount()<this.fluidTankAnodeOutput.getCapacity() && this.fluidTankAnodeOutput.getFluidAmount()<this.fluidTankCathodeOutput.getCapacity();
- }
- }
- return false;
- }
-
- public UniversalRecipeOutput getOutput()
- {
- return LabElectrolyzerTileEntity.recipeManager.getOutputFor(this.getInput(), false, false);
- }
+ public void onGuiClosed(EntityPlayer player) {
+ }
+
+ @Override
+ public boolean canOperate() {
+ UniversalRecipeOutput output = getOutput();
+ if (output != null) {
+ if (getOutput().getItemOutputs() != null && !getOutput().getItemOutputs().isEmpty()
+ && getOutput().getItemOutputs().get(0) != null) {
+ return this.outputSlot.canAdd(getOutput().getItemOutputs());
+ } else {
+ return this.fluidTankAnodeOutput.getFluidAmount() < this.fluidTankAnodeOutput.getCapacity()
+ && this.fluidTankAnodeOutput.getFluidAmount() < this.fluidTankCathodeOutput.getCapacity();
+ }
+ }
+ return false;
+ }
+
+ public UniversalRecipeOutput getOutput() {
+ return LabElectrolyzerTileEntity.recipeManager.getOutputFor(this.getInput(), false, false);
+ }
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
- public List[] getInput()
- {
- return new List[]{Arrays.asList(new FluidStack[]{fluidTank.getFluid()}),null};
+ public List[] getInput() {
+ return new List[] { Arrays.asList(new FluidStack[] { fluidTank.getFluid() }), null };
}
-
+
@Override
- public void operate()
- {
+ public void operate() {
UniversalRecipeInput recipeInput = LabElectrolyzerTileEntity.recipeManager.getRecipeInput(getInput());
UniversalRecipeOutput output1 = getOutput();
this.fluidTank.drain(recipeInput.getFluidInputs().get(0), true);
- if(output1.getFluidOutputs().size()>0)this.fluidTankAnodeOutput.fill(output1.getFluidOutputs().get(0).copy(), true);
- if(output1.getFluidOutputs().size()>1)this.fluidTankCathodeOutput.fill(output1.getFluidOutputs().get(1).copy(), true);
- if(!output1.getItemOutputs().isEmpty() && output1.getItemOutputs().get(0)!=null)this.outputSlot.add(output1.getItemOutputs());
+ if (output1.getFluidOutputs().size() > 0)
+ this.fluidTankAnodeOutput.fill(output1.getFluidOutputs().get(0).copy(), true);
+ if (output1.getFluidOutputs().size() > 1)
+ this.fluidTankCathodeOutput.fill(output1.getFluidOutputs().get(1).copy(), true);
+ if (!output1.getItemOutputs().isEmpty() && output1.getItemOutputs().get(0) != null)
+ this.outputSlot.add(output1.getItemOutputs());
}
@Override
- public FluidStack drain(ForgeDirection arg0, FluidStack fluidStack, boolean doDrain) {
- if(this.fluidTankAnodeOutput.getFluid().containsFluid(fluidStack))
- {
+ public FluidStack drain(ForgeDirection direction, FluidStack fluidStack, boolean doDrain) {
+ if (this.fluidTankAnodeOutput.getFluid().containsFluid(fluidStack)) {
return this.fluidTankAnodeOutput.drain(fluidStack.amount, doDrain);
- }
- if(this.fluidTankCathodeOutput.getFluid().containsFluid(fluidStack))
- {
+ } else if (this.fluidTankCathodeOutput.getFluid().containsFluid(fluidStack)) {
return this.fluidTankCathodeOutput.drain(fluidStack.amount, doDrain);
}
return null;
@@ -222,36 +212,39 @@ public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity impl }
@Override
- public FluidTankInfo[] getTankInfo(ForgeDirection arg0) {
- return new FluidTankInfo[] {this.fluidTank.getInfo()};
+ public FluidTankInfo[] getTankInfo(ForgeDirection direction) {
+ if (direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.UP))) {
+ return new FluidTankInfo[] { this.fluidTankAnodeOutput.getInfo() };
+ }
+ if (direction.equals(ForgeDirection.getOrientation(this.getFacing()).getRotation(ForgeDirection.DOWN))) {
+ return new FluidTankInfo[] { this.fluidTankCathodeOutput.getInfo() };
+ }
+ return new FluidTankInfo[] { this.fluidTank.getInfo() };
+
+ }
+
+ public boolean needsFluid() {
+ return this.fluidTank.getFluidAmount() <= this.fluidTank.getCapacity();
+ }
+
+ public FluidStack getFluidStackfromTank() {
+ return this.fluidTank.getFluid();
}
-
- public boolean needsFluid()
- {
- return this.fluidTank.getFluidAmount() <= this.fluidTank.getCapacity();
- }
-
- public FluidStack getFluidStackfromTank()
- {
- return this.fluidTank.getFluid();
- }
-
- public int getTankAmount()
- {
+
+ public int getTankAmount() {
return this.fluidTank.getFluidAmount();
}
-
- public int gaugeLiquidScaled(int i, int index)
- {
- return this.fluidTank.getFluidAmount() <= 0 ? 0 : this.fluidTank.getFluidAmount(index) * i / this.fluidTank.getCapacity();
- }
- public static void addRecipe(UniversalRecipeInput input, UniversalRecipeOutput output)
- {
+
+ public int gaugeLiquidScaled(int i, int index) {
+ return this.fluidTank.getFluidAmount() <= 0 ? 0
+ : this.fluidTank.getFluidAmount(index) * i / this.fluidTank.getCapacity();
+ }
+
+ public static void addRecipe(UniversalRecipeInput input, UniversalRecipeOutput output) {
recipeManager.addRecipe(input, output);
}
- public int getNumberOfFluidsInTank()
- {
+ public int getNumberOfFluidsInTank() {
return this.fluidTank.getNumberOfFluids();
}
@@ -259,20 +252,20 @@ public class LabElectrolyzerTileEntity extends BasicElectricMotorTileEntity impl return recipeManager.getRecipes();
}
- public static void addRecipe(FluidStack fluidStackInput1, FluidStack fluidStackOutputAnode, FluidStack fluidStackOutputCathode, ItemStack itemStackOutput1)
- {
- if(itemStackOutput1!=null)
- {
- addRecipe(new UniversalRecipeInput((new FluidStack[] {fluidStackInput1}), null), new UniversalRecipeOutput((new FluidStack[] {fluidStackOutputAnode, fluidStackOutputCathode}), (new ItemStack[] {itemStackOutput1}),200));
- }
- else
- {
- addRecipe(new UniversalRecipeInput((new FluidStack[] {fluidStackInput1}), null), new UniversalRecipeOutput((new FluidStack[] {fluidStackOutputAnode, fluidStackOutputCathode}), null,200));
+ public static void addRecipe(FluidStack fluidStackInput1, FluidStack fluidStackOutputAnode,
+ FluidStack fluidStackOutputCathode, ItemStack itemStackOutput1) {
+ if (itemStackOutput1 != null) {
+ addRecipe(new UniversalRecipeInput((new FluidStack[] { fluidStackInput1 }), null),
+ new UniversalRecipeOutput((new FluidStack[] { fluidStackOutputAnode, fluidStackOutputCathode }),
+ (new ItemStack[] { itemStackOutput1 }), 200));
+ } else {
+ addRecipe(new UniversalRecipeInput((new FluidStack[] { fluidStackInput1 }), null),
+ new UniversalRecipeOutput((new FluidStack[] { fluidStackOutputAnode, fluidStackOutputCathode }),
+ null, 200));
}
}
- public IHLFluidTank getFluidTank()
- {
+ public IHLFluidTank getFluidTank() {
return this.fluidTank;
}
|
