From bed728641c3f8e12d937ddfb898b559a50f467e0 Mon Sep 17 00:00:00 2001 From: HbmMods Date: Sat, 5 Aug 2017 22:37:44 +0200 Subject: [PATCH] Added universal barrels, retrofitted coal and nuclear generators --- assets/hbm/textures/gui/GUICoal.png | Bin 2863 -> 2093 bytes assets/hbm/textures/gui/gui_generator.png | Bin 3316 -> 3567 bytes assets/hbm/textures/items/fluid_barrel.png | Bin 0 -> 237 bytes .../textures/items/fluid_barrel_infinite.png | Bin 0 -> 289 bytes .../textures/items/fluid_barrel_overlay.png | Bin 0 -> 156 bytes com/hbm/inventory/FluidTank.java | 12 ++ .../container/ContainerGenerator.java | 37 +--- .../container/ContainerMachineCoal.java | 31 +-- .../container/ContainerMachineOilWell.java | 41 +--- com/hbm/inventory/gui/GUIMachineCoal.java | 20 +- .../inventory/gui/GUIMachineGenerator.java | 26 +-- com/hbm/inventory/gui/GUIMachineOilWell.java | 26 ++- com/hbm/items/ModItems.java | 9 + com/hbm/items/special/ItemPolaroid.java | 3 + com/hbm/items/tool/ItemFluidTank.java | 8 +- com/hbm/lib/RefStrings.java | 2 +- com/hbm/main/MainRegistry.java | 1 + .../TileEntityMachineChemplant.java | 43 +--- com/hbm/tileentity/TileEntityMachineCoal.java | 104 +++++----- .../TileEntityMachineGenerator.java | 187 +++++++----------- .../tileentity/TileEntityMachineOilWell.java | 182 ++++++++--------- .../tileentity/TileEntityMachineRefinery.java | 13 +- .../tileentity/TileEntityMachineUF6Tank.java | 1 - 23 files changed, 312 insertions(+), 434 deletions(-) create mode 100644 assets/hbm/textures/items/fluid_barrel.png create mode 100644 assets/hbm/textures/items/fluid_barrel_infinite.png create mode 100644 assets/hbm/textures/items/fluid_barrel_overlay.png diff --git a/assets/hbm/textures/gui/GUICoal.png b/assets/hbm/textures/gui/GUICoal.png index be80334cf38c9802ab9f730e861c2a730ae3c4b6..ccecfe45ed68d097c658642ee00f626ee388a9e1 100644 GIT binary patch literal 2093 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 ek0JP%EMXn2Tyjt@14CG5-c@>&$on diff --git a/assets/hbm/textures/items/fluid_barrel.png b/assets/hbm/textures/items/fluid_barrel.png new file mode 100644 index 0000000000000000000000000000000000000000..8eb04cde2572e496c7d2ca7f8bb6321ac2b1d15f GIT binary patch literal 237 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfbZcR3rpxzi@tRkt7gwFW^moSYM!LAw#xe|CS&FU)$u0Jt9+Fsrm+et zwgg;xUg;Jp9jJUF=XTr7xxq30g-=a|7>-DE8s2k#$GZPRf76s8ee;wbQ(kA^`7Zn8 i)0FB(XI>cFK4U)F9br-%(e4LyFN3G6pUXO@geCyeVOr4u literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/fluid_barrel_infinite.png b/assets/hbm/textures/items/fluid_barrel_infinite.png new file mode 100644 index 0000000000000000000000000000000000000000..b2e78fd7aaa53471f615ffc11fad5e1249b60539 GIT binary patch literal 289 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#VfRLX`(1b)SYG(2oqBu6{1-oD!M<5Uq0> literal 0 HcmV?d00001 diff --git a/assets/hbm/textures/items/fluid_barrel_overlay.png b/assets/hbm/textures/items/fluid_barrel_overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..35cfb942d2daf603ff296520e107bf758703fae8 GIT binary patch literal 156 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf4egC13 z4DWS;5ut8HaSoU6?2Y}%#o#&1exXY3Cy(mS3}TN|w{;1&Z37z5;OXk;vd$@?2>`ks BH7WoA literal 0 HcmV?d00001 diff --git a/com/hbm/inventory/FluidTank.java b/com/hbm/inventory/FluidTank.java index 244e6b51e..14e85dbaa 100644 --- a/com/hbm/inventory/FluidTank.java +++ b/com/hbm/inventory/FluidTank.java @@ -4,6 +4,7 @@ import java.util.Arrays; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.inventory.gui.GuiFluidContainer; +import com.hbm.items.ModItems; import com.hbm.items.tool.ItemFluidIdentifier; import com.hbm.lib.RefStrings; import com.hbm.packet.PacketDispatcher; @@ -70,6 +71,11 @@ public class FluidTank { if(slots[in] != null) { inType = FluidContainerRegistry.getFluidType(slots[in]); + if(slots[in].getItem() == ModItems.fluid_barrel_infinite) { + this.fluid = this.maxFluid; + return; + } + if(FluidContainerRegistry.getFluidContent(slots[in], type) <= 0) return; } else { @@ -98,6 +104,12 @@ public class FluidTank { ItemStack full = null; if(slots[in] != null) { + + if(slots[in].getItem() == ModItems.fluid_barrel_infinite) { + this.fluid = 0; + return; + } + full = FluidContainerRegistry.getFullContainer(slots[in], type); } if(full == null) diff --git a/com/hbm/inventory/container/ContainerGenerator.java b/com/hbm/inventory/container/ContainerGenerator.java index 5bcd39064..0652c3157 100644 --- a/com/hbm/inventory/container/ContainerGenerator.java +++ b/com/hbm/inventory/container/ContainerGenerator.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotMachineOutput; import com.hbm.tileentity.TileEntityMachineGenerator; import net.minecraft.entity.player.EntityPlayer; @@ -13,8 +14,6 @@ public class ContainerGenerator extends Container { private TileEntityMachineGenerator diFurnace; - private int water; - private int cool; private int power; private int heat; @@ -34,6 +33,8 @@ public class ContainerGenerator extends Container { this.addSlotToContainer(new Slot(tedf, 9, 8, 90)); this.addSlotToContainer(new Slot(tedf, 10, 26, 90)); this.addSlotToContainer(new Slot(tedf, 11, 62, 90)); + this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 12, 8, 90 + 18)); + this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 13, 26, 90 + 18)); for(int i = 0; i < 3; i++) { @@ -52,10 +53,8 @@ public class ContainerGenerator extends Container { @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 0, this.diFurnace.water); - crafting.sendProgressBarUpdate(this, 1, this.diFurnace.cool); - crafting.sendProgressBarUpdate(this, 2, this.diFurnace.power); - crafting.sendProgressBarUpdate(this, 3, this.diFurnace.heat); + crafting.sendProgressBarUpdate(this, 0, this.diFurnace.power); + crafting.sendProgressBarUpdate(this, 1, this.diFurnace.heat); } @Override @@ -106,29 +105,17 @@ public class ContainerGenerator extends Container { { ICrafting par1 = (ICrafting)this.crafters.get(i); - if(this.water != this.diFurnace.water) - { - par1.sendProgressBarUpdate(this, 0, this.diFurnace.water); - } - - if(this.cool != this.diFurnace.cool) - { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.cool); - } - if(this.power != this.diFurnace.power) { - par1.sendProgressBarUpdate(this, 2, this.diFurnace.power); + par1.sendProgressBarUpdate(this, 0, this.diFurnace.power); } if(this.heat != this.diFurnace.heat) { - par1.sendProgressBarUpdate(this, 3, this.diFurnace.heat); + par1.sendProgressBarUpdate(this, 1, this.diFurnace.heat); } } - this.water = this.diFurnace.water; - this.cool = this.diFurnace.cool; this.power = this.diFurnace.power; this.heat = this.diFurnace.heat; } @@ -136,18 +123,10 @@ public class ContainerGenerator extends Container { @Override public void updateProgressBar(int i, int j) { if(i == 0) - { - diFurnace.water = j; - } - if(i == 1) - { - diFurnace.cool = j; - } - if(i == 2) { diFurnace.power = j; } - if(i == 3) + if(i == 1) { diFurnace.heat = j; } diff --git a/com/hbm/inventory/container/ContainerMachineCoal.java b/com/hbm/inventory/container/ContainerMachineCoal.java index b72fad690..2b1bbe83a 100644 --- a/com/hbm/inventory/container/ContainerMachineCoal.java +++ b/com/hbm/inventory/container/ContainerMachineCoal.java @@ -1,5 +1,6 @@ package com.hbm.inventory.container; +import com.hbm.inventory.SlotMachineOutput; import com.hbm.tileentity.TileEntityMachineCoal; import net.minecraft.entity.player.EntityPlayer; @@ -13,19 +14,18 @@ public class ContainerMachineCoal extends Container { private TileEntityMachineCoal diFurnace; private int power; - private int water; private int burnTime; public ContainerMachineCoal(InventoryPlayer invPlayer, TileEntityMachineCoal tedf) { power = 0; - water = 0; burnTime = 0; diFurnace = tedf; - this.addSlotToContainer(new Slot(tedf, 0, 44, 53)); + this.addSlotToContainer(new Slot(tedf, 0, 44, 53 - 36)); this.addSlotToContainer(new Slot(tedf, 1, 80, 53)); this.addSlotToContainer(new Slot(tedf, 2, 116, 53)); + this.addSlotToContainer(new SlotMachineOutput(invPlayer.player, tedf, 3, 44, 53)); for(int i = 0; i < 3; i++) { @@ -44,9 +44,8 @@ public class ContainerMachineCoal extends Container { @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 0, this.diFurnace.water); - crafting.sendProgressBarUpdate(this, 1, this.diFurnace.power); - crafting.sendProgressBarUpdate(this, 2, this.diFurnace.burnTime); + crafting.sendProgressBarUpdate(this, 0, this.diFurnace.power); + crafting.sendProgressBarUpdate(this, 1, this.diFurnace.burnTime); } @Override @@ -60,8 +59,8 @@ public class ContainerMachineCoal extends Container { ItemStack var5 = var4.getStack(); var3 = var5.copy(); - if (par2 <= 2) { - if (!this.mergeItemStack(var5, 3, this.inventorySlots.size(), true)) + if (par2 <= 3) { + if (!this.mergeItemStack(var5, 4, this.inventorySlots.size(), true)) { return null; } @@ -99,23 +98,17 @@ public class ContainerMachineCoal extends Container { { ICrafting par1 = (ICrafting)this.crafters.get(i); - if(this.water != this.diFurnace.water) - { - par1.sendProgressBarUpdate(this, 0, this.diFurnace.water); - } - if(this.power != this.diFurnace.power) { - par1.sendProgressBarUpdate(this, 1, this.diFurnace.power); + par1.sendProgressBarUpdate(this, 0, this.diFurnace.power); } if(this.power != this.diFurnace.burnTime) { - par1.sendProgressBarUpdate(this, 2, this.diFurnace.burnTime); + par1.sendProgressBarUpdate(this, 1, this.diFurnace.burnTime); } } - this.water = this.diFurnace.water; this.power = this.diFurnace.power; this.burnTime = this.diFurnace.burnTime; } @@ -123,14 +116,10 @@ public class ContainerMachineCoal extends Container { @Override public void updateProgressBar(int i, int j) { if(i == 0) - { - diFurnace.water = j; - } - if(i == 1) { diFurnace.power = j; } - if(i == 2) + if(i == 1) { diFurnace.burnTime = j; } diff --git a/com/hbm/inventory/container/ContainerMachineOilWell.java b/com/hbm/inventory/container/ContainerMachineOilWell.java index 0bb0ac1ae..a2523e30c 100644 --- a/com/hbm/inventory/container/ContainerMachineOilWell.java +++ b/com/hbm/inventory/container/ContainerMachineOilWell.java @@ -12,17 +12,13 @@ import net.minecraft.item.ItemStack; public class ContainerMachineOilWell extends Container { private TileEntityMachineOilWell testNuke; - private int oil; private int power; private int warning; - private int gas; private int warning2; public ContainerMachineOilWell(InventoryPlayer invPlayer, TileEntityMachineOilWell tedf) { - oil = 0; power = 0; warning = 0; - gas = 0; warning2 = 0; testNuke = tedf; @@ -57,11 +53,9 @@ public class ContainerMachineOilWell extends Container { @Override public void addCraftingToCrafters(ICrafting crafting) { super.addCraftingToCrafters(crafting); - crafting.sendProgressBarUpdate(this, 0, this.testNuke.oil); - crafting.sendProgressBarUpdate(this, 1, this.testNuke.power); - crafting.sendProgressBarUpdate(this, 2, this.testNuke.warning); - crafting.sendProgressBarUpdate(this, 3, this.testNuke.gas); - crafting.sendProgressBarUpdate(this, 4, this.testNuke.warning2); + crafting.sendProgressBarUpdate(this, 0, this.testNuke.power); + crafting.sendProgressBarUpdate(this, 1, this.testNuke.warning); + crafting.sendProgressBarUpdate(this, 2, this.testNuke.warning2); } @Override @@ -113,33 +107,22 @@ public class ContainerMachineOilWell extends Container { for(int i = 0; i < this.crafters.size(); i++) { ICrafting par1 = (ICrafting)this.crafters.get(i); - - if(this.oil != this.testNuke.oil) - { - par1.sendProgressBarUpdate(this, 0, this.testNuke.oil); - } if(this.power != this.testNuke.power) { - par1.sendProgressBarUpdate(this, 1, this.testNuke.power); + par1.sendProgressBarUpdate(this, 0, this.testNuke.power); } if(this.warning != this.testNuke.warning) { - par1.sendProgressBarUpdate(this, 2, this.testNuke.warning); - } - if(this.gas != this.testNuke.gas) - { - par1.sendProgressBarUpdate(this, 3, this.testNuke.gas); + par1.sendProgressBarUpdate(this, 1, this.testNuke.warning); } if(this.warning2 != this.testNuke.warning2) { - par1.sendProgressBarUpdate(this, 4, this.testNuke.warning2); + par1.sendProgressBarUpdate(this, 2, this.testNuke.warning2); } } - this.oil = this.testNuke.oil; this.power = this.testNuke.power; this.warning = this.testNuke.warning; - this.gas = this.testNuke.gas; this.warning2 = this.testNuke.warning2; } @@ -147,21 +130,13 @@ public class ContainerMachineOilWell extends Container { public void updateProgressBar(int i, int j) { if(i == 0) { - testNuke.oil = j; + testNuke.power = j; } if(i == 1) - { - testNuke.power = j; - } - if(i == 2) { testNuke.warning = j; } - if(i == 3) - { - testNuke.gas = j; - } - if(i == 4) + if(i == 2) { testNuke.warning2 = j; } diff --git a/com/hbm/inventory/gui/GUIMachineCoal.java b/com/hbm/inventory/gui/GUIMachineCoal.java index b90f74859..ba300b851 100644 --- a/com/hbm/inventory/gui/GUIMachineCoal.java +++ b/com/hbm/inventory/gui/GUIMachineCoal.java @@ -8,11 +8,12 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineCoal; import com.hbm.lib.RefStrings; import com.hbm.tileentity.TileEntityMachineCoal; -public class GUIMachineCoal extends GuiContainer { +public class GUIMachineCoal extends GuiFluidContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/GUICoal.png"); private TileEntityMachineCoal diFurnace; @@ -25,6 +26,13 @@ public class GUIMachineCoal extends GuiContainer { this.ySize = 166; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + diFurnace.tank.renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 69 - 52, 16, 52); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); @@ -48,11 +56,9 @@ public class GUIMachineCoal extends GuiContainer { { drawTexturedModalRect(guiLeft + 79, guiTop + 34, 208, 0, 18, 18); } - - if(diFurnace.water > 0) - { - int j = diFurnace.getWaterScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 69 - j, 192, 52 - j, 16, j); - } + + Minecraft.getMinecraft().getTextureManager().bindTexture(FluidTank.fluidTextures); + + diFurnace.tank.renderTank(this, guiLeft + 8, guiTop + 69, diFurnace.tank.getTankType().textureX() * FluidTank.x, diFurnace.tank.getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/com/hbm/inventory/gui/GUIMachineGenerator.java b/com/hbm/inventory/gui/GUIMachineGenerator.java index 4c7823f03..b14a52626 100644 --- a/com/hbm/inventory/gui/GUIMachineGenerator.java +++ b/com/hbm/inventory/gui/GUIMachineGenerator.java @@ -8,11 +8,12 @@ import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerGenerator; import com.hbm.lib.RefStrings; import com.hbm.tileentity.TileEntityMachineGenerator; -public class GUIMachineGenerator extends GuiContainer { +public class GUIMachineGenerator extends GuiFluidContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_generator.png"); private TileEntityMachineGenerator diFurnace; @@ -25,6 +26,14 @@ public class GUIMachineGenerator extends GuiContainer { this.ySize = 222; } + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + diFurnace.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 8, guiTop + 88 - 52, 16, 52); + diFurnace.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 26, guiTop + 88 - 52, 16, 52); + } + @Override protected void drawGuiContainerForegroundLayer(int i, int j) { String name = this.diFurnace.hasCustomInventoryName() ? this.diFurnace.getInventoryName() : I18n.format(this.diFurnace.getInventoryName()); @@ -39,16 +48,6 @@ public class GUIMachineGenerator extends GuiContainer { Minecraft.getMinecraft().getTextureManager().bindTexture(texture); drawTexturedModalRect(guiLeft, guiTop, 0, 0, xSize, ySize); - if(diFurnace.hasWater()) { - int i = diFurnace.getWaterScaled(52); - drawTexturedModalRect(guiLeft + 8, guiTop + 88 - i, 176, 52 - i, 16, i); - } - - if(diFurnace.hasCoolant()) { - int i = diFurnace.getCoolantScaled(52); - drawTexturedModalRect(guiLeft + 26, guiTop + 88 - i, 192, 52 - i, 16, i); - } - if(diFurnace.hasPower()) { int i = diFurnace.getPowerScaled(52); drawTexturedModalRect(guiLeft + 62, guiTop + 88 - i, 224, 52 - i, 16, i); @@ -58,5 +57,10 @@ public class GUIMachineGenerator extends GuiContainer { int i = diFurnace.getHeatScaled(52); drawTexturedModalRect(guiLeft + 98, guiTop + 88 - i, 208, 52 - i, 16, i); } + + Minecraft.getMinecraft().getTextureManager().bindTexture(FluidTank.fluidTextures); + + diFurnace.tanks[0].renderTank(this, guiLeft + 8, guiTop + 88, diFurnace.tanks[0].getTankType().textureX() * FluidTank.x, diFurnace.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + diFurnace.tanks[1].renderTank(this, guiLeft + 26, guiTop + 88, diFurnace.tanks[1].getTankType().textureX() * FluidTank.x, diFurnace.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); } } diff --git a/com/hbm/inventory/gui/GUIMachineOilWell.java b/com/hbm/inventory/gui/GUIMachineOilWell.java index eaf74aa03..e18f3d503 100644 --- a/com/hbm/inventory/gui/GUIMachineOilWell.java +++ b/com/hbm/inventory/gui/GUIMachineOilWell.java @@ -2,6 +2,7 @@ package com.hbm.inventory.gui; import org.lwjgl.opengl.GL11; +import com.hbm.inventory.FluidTank; import com.hbm.inventory.container.ContainerMachineOilWell; import com.hbm.lib.RefStrings; import com.hbm.tileentity.TileEntityMachineOilWell; @@ -11,7 +12,7 @@ import net.minecraft.client.resources.I18n; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.util.ResourceLocation; -public class GUIMachineOilWell extends GuiContainer { +public class GUIMachineOilWell extends GuiFluidContainer { private static ResourceLocation texture = new ResourceLocation(RefStrings.MODID + ":textures/gui/gui_well_large.png"); private TileEntityMachineOilWell derrick; @@ -23,6 +24,14 @@ public class GUIMachineOilWell extends GuiContainer { this.xSize = 176; this.ySize = 222; } + + @Override + public void drawScreen(int mouseX, int mouseY, float f) { + super.drawScreen(mouseX, mouseY, f); + + derrick.tanks[0].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 70 - 52, 34, 52); + derrick.tanks[1].renderTankInfo(this, mouseX, mouseY, guiLeft + 80, guiTop + 124 - 52, 34, 52); + } @Override protected void drawGuiContainerForegroundLayer( int i, int j) { @@ -41,12 +50,6 @@ public class GUIMachineOilWell extends GuiContainer { int i = derrick.getPowerScaled(52); drawTexturedModalRect(guiLeft + 8, guiTop + 70 - i, 176, 52 - i, 16, i); - int j = derrick.getOilScaled(52); - drawTexturedModalRect(guiLeft + 80, guiTop + 70 - j, 192, 52 - j, 34, j); - - int x = derrick.getGasScaled(52); - drawTexturedModalRect(guiLeft + 80, guiTop + 124 - x, 176, 120 - x, 34, x); - int k = derrick.warning; if(k == 2) drawTexturedModalRect(guiLeft + 44, guiTop + 18, 176, 52, 16, 16); @@ -58,5 +61,14 @@ public class GUIMachineOilWell extends GuiContainer { drawTexturedModalRect(guiLeft + 44, guiTop + 90, 208, 52, 16, 16); if(l == 2) drawTexturedModalRect(guiLeft + 44, guiTop + 90, 224, 52, 16, 16); + + Minecraft.getMinecraft().getTextureManager().bindTexture(FluidTank.fluidTextures); + + derrick.tanks[0].renderTank(this, guiLeft + 80, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + derrick.tanks[0].renderTank(this, guiLeft + 96, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 16, 52); + derrick.tanks[0].renderTank(this, guiLeft + 112, guiTop + 70, derrick.tanks[0].getTankType().textureX() * FluidTank.x, derrick.tanks[0].getTankType().textureY() * FluidTank.y, 2, 52); + derrick.tanks[1].renderTank(this, guiLeft + 80, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + derrick.tanks[1].renderTank(this, guiLeft + 96, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 16, 52); + derrick.tanks[1].renderTank(this, guiLeft + 112, guiTop + 124, derrick.tanks[1].getTankType().textureX() * FluidTank.x, derrick.tanks[1].getTankType().textureY() * FluidTank.y, 2, 52); } } diff --git a/com/hbm/items/ModItems.java b/com/hbm/items/ModItems.java index 3d5e647c7..bb5686ccb 100644 --- a/com/hbm/items/ModItems.java +++ b/com/hbm/items/ModItems.java @@ -367,6 +367,9 @@ public class ModItems { public static Item fluid_tank_full; public static Item fluid_tank_empty; + public static Item fluid_barrel_full; + public static Item fluid_barrel_empty; + public static Item fluid_barrel_infinite; public static Item syringe_empty; public static Item syringe_antidote; @@ -1687,6 +1690,9 @@ public class ModItems { fluid_identifier = new ItemFluidIdentifier().setUnlocalizedName("fluid_identifier").setMaxStackSize(1).setCreativeTab(MainRegistry.tabMachine).setTextureName(RefStrings.MODID + ":fluid_identifier"); fluid_tank_full = new ItemFluidTank().setUnlocalizedName("fluid_tank_full").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_tank"); fluid_tank_empty = new Item().setUnlocalizedName("fluid_tank_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_tank"); + fluid_barrel_full = new ItemFluidTank().setUnlocalizedName("fluid_barrel_full").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_empty = new Item().setUnlocalizedName("fluid_barrel_empty").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel"); + fluid_barrel_infinite = new Item().setUnlocalizedName("fluid_barrel_infinite").setCreativeTab(MainRegistry.tabParts).setTextureName(RefStrings.MODID + ":fluid_barrel_infinite"); euphemium_helmet = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 0).setUnlocalizedName("astatine_helmet").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_helmet"); euphemium_plate = new ArmorEuphemium(MainRegistry.enumArmorMaterialEuphemium, 6, 1).setUnlocalizedName("astatine_plate").setMaxStackSize(1).setTextureName(RefStrings.MODID + ":euphemium_plate"); @@ -2272,6 +2278,9 @@ public class ModItems { //Universal Tank GameRegistry.registerItem(fluid_tank_empty, fluid_tank_empty.getUnlocalizedName()); GameRegistry.registerItem(fluid_tank_full, fluid_tank_full.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName()); + GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName()); //Batteries GameRegistry.registerItem(battery_generic, battery_generic.getUnlocalizedName()); diff --git a/com/hbm/items/special/ItemPolaroid.java b/com/hbm/items/special/ItemPolaroid.java index bb6a0a457..c825a5fff 100644 --- a/com/hbm/items/special/ItemPolaroid.java +++ b/com/hbm/items/special/ItemPolaroid.java @@ -2,6 +2,8 @@ package com.hbm.items.special; import java.util.List; +import org.lwjgl.input.Keyboard; + import com.hbm.main.MainRegistry; import net.minecraft.entity.Entity; @@ -11,6 +13,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.world.World; +import scala.swing.event.Key; public class ItemPolaroid extends Item { diff --git a/com/hbm/items/tool/ItemFluidTank.java b/com/hbm/items/tool/ItemFluidTank.java index f02791062..7c436de9b 100644 --- a/com/hbm/items/tool/ItemFluidTank.java +++ b/com/hbm/items/tool/ItemFluidTank.java @@ -3,6 +3,7 @@ package com.hbm.items.tool; import java.util.List; import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.inventory.MachineRecipes; +import com.hbm.items.ModItems; import com.hbm.tileentity.TileEntityFluidDuct; import cpw.mods.fml.relauncher.Side; @@ -32,7 +33,7 @@ public class ItemFluidTank extends Item { @SideOnly(Side.CLIENT) public void getSubItems(Item item, CreativeTabs tabs, List list) { - for (int i = 0; i < FluidType.values().length; ++i) + for (int i = 1; i < FluidType.values().length; ++i) { list.add(new ItemStack(item, 1, i)); } @@ -64,7 +65,10 @@ public class ItemFluidTank extends Item { { super.registerIcons(p_94581_1_); - this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay"); + if(this == ModItems.fluid_tank_full) + this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_tank_overlay"); + if(this == ModItems.fluid_barrel_full) + this.overlayIcon = p_94581_1_.registerIcon("hbm:fluid_barrel_overlay"); } @Override diff --git a/com/hbm/lib/RefStrings.java b/com/hbm/lib/RefStrings.java index 522e150e2..445b590ed 100644 --- a/com/hbm/lib/RefStrings.java +++ b/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.25"; + public static final String VERSION = "1.0.26 BETA (Selena-Luna-X01)"; //HBM's Beta Naming Convention: //V T (X-Y-Z) //V -> next release version diff --git a/com/hbm/main/MainRegistry.java b/com/hbm/main/MainRegistry.java index 810bbe51f..607254d16 100644 --- a/com/hbm/main/MainRegistry.java +++ b/com/hbm/main/MainRegistry.java @@ -838,6 +838,7 @@ public class MainRegistry for(int i = 1; i < FluidType.values().length; i++) { FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_tank_full, 1, i), new ItemStack(ModItems.fluid_tank_empty), FluidType.getEnum(i), 1000)); + FluidContainerRegistry.instance.registerContainer(new FluidContainer(new ItemStack(ModItems.fluid_barrel_full, 1, i), new ItemStack(ModItems.fluid_barrel_empty), FluidType.getEnum(i), 16000)); } } diff --git a/com/hbm/tileentity/TileEntityMachineChemplant.java b/com/hbm/tileentity/TileEntityMachineChemplant.java index 6a45ed2c5..dddbbfcda 100644 --- a/com/hbm/tileentity/TileEntityMachineChemplant.java +++ b/com/hbm/tileentity/TileEntityMachineChemplant.java @@ -37,7 +37,6 @@ import net.minecraft.tileentity.TileEntityHopper; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.oredict.OreDictionary; -//TODO: remove obso1337 cases for accptr/src cases to prevent conflicting tanks when multiple have the same type public class TileEntityMachineChemplant extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidAcceptor, IFluidSource { private ItemStack slots[]; @@ -63,13 +62,9 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve slots = new ItemStack[21]; tanks = new FluidTank[4]; tanks[0] = new FluidTank(FluidType.NONE, 16000, 0); - tanks[1] = new FluidTank(FluidType.NONE, 16000, 0); - tanks[2] = new FluidTank(FluidType.NONE, 16000, 0); - tanks[3] = new FluidTank(FluidType.NONE, 16000, 0); - tanks[0].index = 0; - tanks[1].index = 1; - tanks[2].index = 2; - tanks[3].index = 3; + tanks[1] = new FluidTank(FluidType.NONE, 16000, 1); + tanks[2] = new FluidTank(FluidType.NONE, 16000, 2); + tanks[3] = new FluidTank(FluidType.NONE, 16000, 3); } @Override @@ -786,10 +781,6 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve tanks[0].setFill(i); else if(type.name().equals(tanks[1].getTankType().name())) tanks[1].setFill(i); - /*else if(type.name().equals(tanks[2].getTankType().name())) - tanks[2].setFill(i); - else if(type.name().equals(tanks[3].getTankType().name())) - tanks[3].setFill(i);*/ } @Override @@ -798,21 +789,13 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve return tanks[0].getFill(); else if(type.name().equals(tanks[1].getTankType().name())) return tanks[1].getFill(); - else /*if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getFill();*/ - - return 0; + else + return 0; } @Override public void setSFluidFill(int i, FluidType type) { - /*if(type.name().equals(tanks[0].getTankType().name())) - tanks[0].setFill(i); - else if(type.name().equals(tanks[1].getTankType().name())) - tanks[1].setFill(i); - else */if(type.name().equals(tanks[2].getTankType().name())) + if(type.name().equals(tanks[2].getTankType().name())) tanks[2].setFill(i); else if(type.name().equals(tanks[3].getTankType().name())) tanks[3].setFill(i); @@ -820,11 +803,7 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve @Override public int getSFluidFill(FluidType type) { - /*if(type.name().equals(tanks[0].getTankType().name())) - return tanks[0].getFill(); - else if(type.name().equals(tanks[1].getTankType().name())) - return tanks[1].getFill(); - else*/ if(type.name().equals(tanks[2].getTankType().name())) + if(type.name().equals(tanks[2].getTankType().name())) return tanks[2].getFill(); else if(type.name().equals(tanks[3].getTankType().name())) return tanks[3].getFill(); @@ -838,12 +817,8 @@ public class TileEntityMachineChemplant extends TileEntity implements ISidedInve return tanks[0].getMaxFill(); else if(type.name().equals(tanks[1].getTankType().name())) return tanks[1].getMaxFill(); - else /*if(type.name().equals(tanks[2].getTankType().name())) - return tanks[2].getMaxFill(); - else if(type.name().equals(tanks[3].getTankType().name())) - return tanks[3].getMaxFill();*/ - - return 0; + else + return 0; } @Override diff --git a/com/hbm/tileentity/TileEntityMachineCoal.java b/com/hbm/tileentity/TileEntityMachineCoal.java index 2d8cde9ba..6e106b5be 100644 --- a/com/hbm/tileentity/TileEntityMachineCoal.java +++ b/com/hbm/tileentity/TileEntityMachineCoal.java @@ -14,23 +14,26 @@ import java.util.ArrayList; import java.util.List; import com.hbm.blocks.machine.MachineCoal; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.ISource; +import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; -public class TileEntityMachineCoal extends TileEntity implements ISidedInventory, ISource { +public class TileEntityMachineCoal extends TileEntity implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { private ItemStack slots[]; public int power; - public int water; public int burnTime; public static final int maxPower = 100000; - public static final int maxWater = 10000; public int age = 0; public List list = new ArrayList(); + public FluidTank tank; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {0, 2}; @@ -39,7 +42,8 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory private String customName; public TileEntityMachineCoal() { - slots = new ItemStack[3]; + slots = new ItemStack[4]; + tank = new FluidTank(FluidType.WATER, 5000, 0); } @Override @@ -151,7 +155,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory NBTTagList list = nbt.getTagList("items", 10); this.power = nbt.getInteger("powerTime"); - this.water = nbt.getInteger("water"); + tank.readFromNBT(nbt, "water"); slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -169,7 +173,7 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setInteger("powerTime", power); - nbt.setInteger("water", water); + tank.writeToNBT(nbt, "water"); NBTTagList list = new NBTTagList(); for(int i = 0; i < slots.length; i++) @@ -208,10 +212,6 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory return false; } - public int getWaterScaled(int i) { - return (water * i) / maxWater; - } - public int getPowerScaled(int i) { return (power * i) / maxPower; } @@ -226,58 +226,20 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory if(age == 9 || age == 19) ffgeuaInit(); - - //Water - if(slots[0] != null && slots[0].getItem() == Items.water_bucket && this.water + 2500 <= maxWater) - { - this.slots[0].stackSize--; - this.water += 2500; - if(this.slots[0].stackSize == 0) - { - this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); - } - } - if(slots[0] != null && slots[0].getItem() == ModItems.rod_water && this.water + 2500 <= maxWater) - { - this.slots[0].stackSize--; - this.water += 2500; - if(this.slots[0].stackSize == 0) - { - this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); - } - } - if(slots[0] != null && slots[0].getItem() == ModItems.rod_dual_water && this.water + 5000 <= maxWater) - { - this.slots[0].stackSize--; - this.water += 5000; - if(this.slots[0].stackSize == 0) - { - this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); - } - } - if(slots[0] != null && slots[0].getItem() == ModItems.rod_quad_water && this.water + 10000 <= maxWater) - { - this.slots[0].stackSize--; - this.water += 10000; - if(this.slots[0].stackSize == 0) - { - this.slots[0] = this.slots[0].getItem().getContainerItem(this.slots[0]); - } - } - if(slots[0] != null && slots[0].getItem() == ModItems.inf_water) - { - this.water = TileEntityMachineCoal.maxWater; - } - - //Battery Item - - power = Library.chargeItemsFromTE(slots, 2, power, maxPower); boolean flag = this.burnTime > 0; boolean flag1 = false; if(!worldObj.isRemote) { + + //Water + tank.loadTank(0, 3, slots); + + tank.updateTank(xCoord, yCoord, zCoord); + + //Battery Item + power = Library.chargeItemsFromTE(slots, 2, power, maxPower); boolean trigger = true; @@ -329,9 +291,9 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory { burnTime--; - if(water > 0) + if(tank.getFill() > 0) { - water -= 1; + tank.setFill(tank.getFill() - 1); if(power + 100 <= maxPower) { @@ -406,4 +368,30 @@ public class TileEntityMachineCoal extends TileEntity implements ISidedInventory public void clearList() { this.list.clear(); } + + @Override + public void setAFluidFill(int i, FluidType type) { + if(type.name().equals(tank.getTankType().name())) + tank.setFill(i); + } + + @Override + public int getAFluidFill(FluidType type) { + return type.name().equals(this.tank.getTankType().name()) ? tank.getFill() : 0; + } + + @Override + public int getMaxAFluidFill(FluidType type) { + return type.name().equals(this.tank.getTankType().name()) ? tank.getMaxFill() : 0; + } + + @Override + public void setFillstate(int fill, int index) { + tank.setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + tank.setTankType(type); + } } diff --git a/com/hbm/tileentity/TileEntityMachineGenerator.java b/com/hbm/tileentity/TileEntityMachineGenerator.java index aaa1c0aea..071cb1e44 100644 --- a/com/hbm/tileentity/TileEntityMachineGenerator.java +++ b/com/hbm/tileentity/TileEntityMachineGenerator.java @@ -6,8 +6,12 @@ import java.util.Random; import com.hbm.blocks.machine.MachineGenerator; import com.hbm.explosion.ExplosionNukeGeneric; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; import com.hbm.interfaces.ISource; +import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.items.special.ItemFuelRod; @@ -22,14 +26,10 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; -public class TileEntityMachineGenerator extends TileEntity implements ISidedInventory, ISource { +public class TileEntityMachineGenerator extends TileEntity implements ISidedInventory, ISource, IFluidContainer, IFluidAcceptor { private ItemStack slots[]; - public int water; - public final int waterMax = 1000000; - public int cool; - public final int coolMax = 1000000; public int heat; public final int heatMax = 100000; public int power; @@ -37,15 +37,19 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve public boolean isLoaded = false; public int age = 0; public List list = new ArrayList(); + public FluidTank[] tanks; private static final int[] slots_top = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8}; - private static final int[] slots_bottom = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11}; + private static final int[] slots_bottom = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13}; private static final int[] slots_side = new int[] {9, 10, 11}; private String customName; public TileEntityMachineGenerator() { - slots = new ItemStack[12]; + slots = new ItemStack[14]; + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(FluidType.WATER, 32000, 0); + tanks[1] = new FluidTank(FluidType.COOLANT, 16000, 1); } @Override @@ -166,11 +170,11 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve super.readFromNBT(nbt); NBTTagList list = nbt.getTagList("items", 10); - water = nbt.getInteger("water"); - cool = nbt.getInteger("cool"); power = nbt.getInteger("power"); heat = nbt.getInteger("heat"); slots = new ItemStack[getSizeInventory()]; + tanks[0].readFromNBT(nbt, "water"); + tanks[1].readFromNBT(nbt, "coolant"); for(int i = 0; i < list.tagCount(); i++) { @@ -186,11 +190,11 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); - nbt.setInteger("water", water); - nbt.setInteger("cool", cool); nbt.setInteger("power", power); nbt.setInteger("heat", heat); NBTTagList list = new NBTTagList(); + tanks[0].writeToNBT(nbt, "water"); + tanks[1].writeToNBT(nbt, "coolant"); for(int i = 0; i < slots.length; i++) { @@ -250,14 +254,6 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve return false; } - public int getWaterScaled(int i) { - return (water * i) / waterMax; - } - - public int getCoolantScaled(int i) { - return (cool * i) / coolMax; - } - public int getPowerScaled(int i) { return (power * i) / powerMax; } @@ -266,14 +262,6 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve return (heat * i) / heatMax; } - public boolean hasWater() { - return water > 0; - } - - public boolean hasCoolant() { - return cool > 0; - } - public boolean hasPower() { return power > 0; } @@ -294,85 +282,16 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve if(age == 9 || age == 19) ffgeuaInit(); - //if(!worldObj.isRemote) + if(!worldObj.isRemote) { - if(slots[9] != null && slots[9].getItem() == Items.water_bucket && this.water + 250000 <= waterMax) - { - this.slots[9].stackSize--; - this.water += 250000; - if(this.slots[9].stackSize == 0) - { - this.slots[9] = this.slots[9].getItem().getContainerItem(this.slots[9]); - } - } - if(slots[9] != null && slots[9].getItem() == ModItems.rod_water && this.water + 250000 <= waterMax) - { - this.slots[9].stackSize--; - this.water += 250000; - if(this.slots[9].stackSize == 0) - { - this.slots[9] = this.slots[9].getItem().getContainerItem(this.slots[9]); - } - } - if(slots[9] != null && slots[9].getItem() == ModItems.rod_dual_water && this.water + 500000 <= waterMax) - { - this.slots[9].stackSize--; - this.water += 500000; - if(this.slots[9].stackSize == 0) - { - this.slots[9] = this.slots[9].getItem().getContainerItem(this.slots[9]); - } - } - if(slots[9] != null && slots[9].getItem() == ModItems.rod_quad_water && this.water + 1000000 <= waterMax) - { - this.slots[9].stackSize--; - this.water += 1000000; - if(this.slots[9].stackSize == 0) - { - this.slots[9] = this.slots[9].getItem().getContainerItem(this.slots[9]); - } - } - if(slots[9] != null && slots[9].getItem() == ModItems.inf_water) - { - this.water = this.waterMax; - } - - if(slots[10] != null && slots[10].getItem() == ModItems.rod_coolant && this.cool + 250000 <= coolMax) - { - this.slots[10].stackSize--; - this.cool += 250000; - if(this.slots[10].stackSize == 0) - { - this.slots[10] = this.slots[10].getItem().getContainerItem(this.slots[10]); - } - } - - if(slots[10] != null && slots[10].getItem() == ModItems.rod_dual_coolant && this.cool + 500000 <= coolMax) - { - this.slots[10].stackSize--; - this.cool += 500000; - if(this.slots[10].stackSize == 0) - { - this.slots[10] = this.slots[10].getItem().getContainerItem(this.slots[10]); - } - } - - if(slots[10] != null && slots[10].getItem() == ModItems.rod_quad_coolant && this.cool + 1000000 <= coolMax) - { - this.slots[10].stackSize--; - this.cool += 1000000; - if(this.slots[10].stackSize == 0) - { - this.slots[10] = this.slots[10].getItem().getContainerItem(this.slots[10]); - } - } - - if(slots[10] != null && slots[10].getItem() == ModItems.inf_coolant) - { - this.cool = coolMax; - } + tanks[0].loadTank(9, 12, slots); + tanks[1].loadTank(10, 13, slots); + for(int i = 0; i < 2; i++) + tanks[i].updateTank(xCoord, yCoord, zCoord); + //Batteries + power = Library.chargeItemsFromTE(slots, 11, power, powerMax); for(int i = 0; i < 9; i++) { @@ -542,19 +461,19 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve ((slots[7] != null && !(slots[7].getItem() instanceof ItemFuelRod)) || slots[7] == null) && ((slots[8] != null && !(slots[8].getItem() instanceof ItemFuelRod)) || slots[8] == null)) { - if(this.heat - 10 >= 0 && this.cool - 2 >= 0) + if(this.heat - 10 >= 0 && tanks[1].getFill() - 2 >= 0) { this.heat -= 10; - this.cool -= 2; + this.tanks[1].setFill(tanks[1].getFill() - 2); } - if(this.heat < 10 && this.cool != 0) + if(this.heat < 10 && this.tanks[1].getFill() != 0) { this.heat--; - this.cool--; + this.tanks[1].setFill(tanks[1].getFill() - 1); } - if(this.heat != 0 && this.cool == 0) + if(this.heat != 0 && this.tanks[1].getFill() == 0) { this.heat--; } @@ -568,17 +487,13 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve this.isLoaded = true; } } - - //Batteries - - power = Library.chargeItemsFromTE(slots, 11, power, powerMax); } public void attemptPower(int i) { - if(this.water - i >= 0) + if(this.tanks[0].getFill() - i >= 0) { this.power += i; - this.water -= i; + this.tanks[0].setFill(tanks[0].getFill() - i); } } @@ -587,9 +502,9 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve int j = rand.nextInt(i); - if(this.cool - j >= 0) + if(this.tanks[1].getFill() - j >= 0) { - this.cool -= j; + this.tanks[1].setFill(tanks[1].getFill() - j); } else { this.heat += i; } @@ -651,4 +566,44 @@ public class TileEntityMachineGenerator extends TileEntity implements ISidedInve public void clearList() { this.list.clear(); } + + @Override + public int getMaxAFluidFill(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getMaxFill(); + else if(type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getMaxFill(); + else + return 0; + } + + @Override + public void setAFluidFill(int i, FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + tanks[0].setFill(i); + else if(type.name().equals(tanks[1].getTankType().name())) + tanks[1].setFill(i); + } + + @Override + public int getAFluidFill(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getFill(); + else if(type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getFill(); + else + return 0; + } + + @Override + public void setFillstate(int fill, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setFill(fill); + } + + @Override + public void setType(FluidType type, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setTankType(type); + } } \ No newline at end of file diff --git a/com/hbm/tileentity/TileEntityMachineOilWell.java b/com/hbm/tileentity/TileEntityMachineOilWell.java index 91f7f7e02..38864ef17 100644 --- a/com/hbm/tileentity/TileEntityMachineOilWell.java +++ b/com/hbm/tileentity/TileEntityMachineOilWell.java @@ -7,11 +7,16 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.entity.particle.EntityGasFX; import com.hbm.explosion.ExplosionLarge; +import com.hbm.handler.FluidTypeHandler.FluidType; import com.hbm.interfaces.IConsumer; +import com.hbm.interfaces.IFluidAcceptor; +import com.hbm.interfaces.IFluidContainer; +import com.hbm.interfaces.IFluidSource; import com.hbm.interfaces.IGasAcceptor; import com.hbm.interfaces.IGasSource; import com.hbm.interfaces.IOilAcceptor; import com.hbm.interfaces.IOilSource; +import com.hbm.inventory.FluidTank; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBattery; import com.hbm.lib.Library; @@ -29,22 +34,19 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.oredict.OreDictionary; -public class TileEntityMachineOilWell extends TileEntity implements ISidedInventory, IConsumer, IOilSource, IGasSource { +public class TileEntityMachineOilWell extends TileEntity implements ISidedInventory, IConsumer, IFluidContainer, IFluidSource { private ItemStack slots[]; - public int oil; - public int gas; public int power; public int warning; public int warning2; public static final int maxPower = 100000; - public static final int maxOil = 640; - public static final int maxGas = 640; public int age = 0; public int age2 = 0; - public List aclist = new ArrayList(); - public List gaslist = new ArrayList(); + public List list1 = new ArrayList(); + public List list2 = new ArrayList(); + public FluidTank[] tanks; private static final int[] slots_top = new int[] {1}; private static final int[] slots_bottom = new int[] {2, 0}; @@ -55,6 +57,9 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent public TileEntityMachineOilWell() { slots = new ItemStack[6]; + tanks = new FluidTank[2]; + tanks[0] = new FluidTank(FluidType.OIL, 64000, 0); + tanks[1] = new FluidTank(FluidType.GAS, 64000, 1); } @Override @@ -163,9 +168,11 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent NBTTagList list = nbt.getTagList("items", 10); this.power = nbt.getInteger("powerTime"); - this.oil = nbt.getInteger("oil"); - this.gas = nbt.getInteger("gas"); this.age = nbt.getInteger("age"); + + this.tanks[0].readFromNBT(nbt, "oil"); + this.tanks[1].readFromNBT(nbt, "gas"); + slots = new ItemStack[getSizeInventory()]; for(int i = 0; i < list.tagCount(); i++) @@ -183,9 +190,11 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); nbt.setInteger("powerTime", power); - nbt.setInteger("oil", oil); - nbt.setInteger("gas", gas); nbt.setInteger("age", age); + + this.tanks[0].writeToNBT(nbt, "oil"); + this.tanks[1].writeToNBT(nbt, "gas"); + NBTTagList list = new NBTTagList(); for(int i = 0; i < slots.length; i++) @@ -217,14 +226,6 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent return false; } - public int getOilScaled(int i) { - return (oil * i) / maxOil; - } - - public int getGasScaled(int i) { - return (gas * i) / maxGas; - } - public int getPowerScaled(int i) { return (power * i) / maxPower; } @@ -241,42 +242,17 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent if(age2 >= 20) age2 -= 20; if(age2 == 9 || age2 == 19) { - fillInit(); - fillGasInit(); + fillFluidInit(tanks[0].getTankType()); + fillFluidInit(tanks[1].getTankType()); } if(!worldObj.isRemote) { + + this.tanks[0].unloadTank(1, 2, slots); + this.tanks[1].unloadTank(3, 4, slots); - if(slots[1] != null && slots[1].getItem() == ModItems.canister_empty && oil >= 10) { - if(slots[2] == null) { - oil -= 10; - slots[2] = new ItemStack(ModItems.canister_oil); - slots[1].stackSize--; - if(slots[1].stackSize <= 0) - slots[1] = null; - } else if(slots[2] != null && slots[2].getItem() == ModItems.canister_oil && slots[2].stackSize < slots[2].getMaxStackSize()) { - oil -= 10; - slots[2].stackSize++; - slots[1].stackSize--; - if(slots[1].stackSize <= 0) - slots[1] = null; - } - } - - if(slots[3] != null && slots[3].getItem() == ModItems.gas_empty && gas >= 10) { - if(slots[4] == null) { - gas -= 10; - slots[4] = new ItemStack(ModItems.gas_full); - slots[3].stackSize--; - if(slots[3].stackSize <= 0) - slots[3] = null; - } else if(slots[4] != null && slots[4].getItem() == ModItems.gas_full && slots[4].stackSize < slots[4].getMaxStackSize()) { - gas -= 10; - slots[4].stackSize++; - slots[3].stackSize--; - if(slots[3].stackSize <= 0) - slots[3] = null; - } + for(int i = 0; i < 2; i++) { + tanks[i].updateTank(xCoord, yCoord, zCoord); } power = Library.chargeTEFromItems(slots, 0, power, maxPower); @@ -316,18 +292,20 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent warning = 2; break; - } else if((b == ModBlocks.ore_oil || b == ModBlocks.ore_oil_empty) && this.oil < TileEntityMachineOilWell.maxOil && this.gas < TileEntityMachineOilWell.maxGas) { + } else if((b == ModBlocks.ore_oil || b == ModBlocks.ore_oil_empty) && this.tanks[0].getFill() < this.tanks[0].getMaxFill() && this.tanks[1].getFill() < this.tanks[1].getMaxFill()) { if(succ(this.xCoord, i, this.zCoord)) { - oil += 5; - if(oil > maxOil) - oil = maxOil; - gas += rand.nextInt(26) + 25; - if(gas > maxGas) - gas = maxGas; + this.tanks[0].setFill(this.tanks[0].getFill() + 500); + if(this.tanks[0].getFill() > this.tanks[0].getMaxFill()) + this.tanks[0].setFill(tanks[0].getMaxFill()); + + + this.tanks[1].setFill(this.tanks[1].getFill() + (100 + rand.nextInt(401))); + if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) + this.tanks[1].setFill(tanks[1].getMaxFill()); ExplosionLarge.spawnOilSpills(worldObj, xCoord + 0.5F, yCoord + 5.5F, zCoord + 0.5F, 3); - worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 3.0F, 0.5F); + worldObj.playSoundEffect(this.xCoord, this.yCoord, this.zCoord, "game.neutral.swim.splash", 2.0F, 0.5F); break; } else { @@ -351,12 +329,12 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent } warning2 = 0; - if(gas > 0) { + if(tanks[1].getFill() > 0) { if(slots[5] != null && (slots[5].getItem() == ModItems.fuse || slots[5].getItem() == ModItems.screwdriver)) { warning2 = 2; - gas -= 1; - if(gas <= 0) - gas = 0; + tanks[1].setFill(tanks[1].getFill() - 50); + if(tanks[1].getFill() <= 0) + tanks[1].setFill(0); worldObj.spawnEntityInWorld(new EntityGasFX(worldObj, this.xCoord + 0.5F, this.yCoord + 6.5F, this.zCoord + 0.5F, 0.0, 0.0, 0.0)); } else { warning2 = 1; @@ -472,32 +450,6 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent return 65536.0D; } - @Override - public void fillInit() { - fill(this.xCoord + 2, this.yCoord, this.zCoord, getTact()); - fill(this.xCoord - 2, this.yCoord, this.zCoord, getTact()); - fill(this.xCoord, this.yCoord, this.zCoord + 2, getTact()); - fill(this.xCoord, this.yCoord, this.zCoord - 2, getTact()); - } - - @Override - public void fill(int x, int y, int z, boolean newTact) { - Library.transmitOil(x, y, z, newTact, this, worldObj); - } - - @Override - public void fillGasInit() { - fillGas(this.xCoord + 2, this.yCoord, this.zCoord, getTact()); - fillGas(this.xCoord - 2, this.yCoord, this.zCoord, getTact()); - fillGas(this.xCoord, this.yCoord, this.zCoord + 2, getTact()); - fillGas(this.xCoord, this.yCoord, this.zCoord - 2, getTact()); - } - - @Override - public void fillGas(int x, int y, int z, boolean newTact) { - Library.transmitGas(x, y, z, newTact, this, worldObj); - } - @Override public boolean getTact() { if (age2 >= 0 && age2 < 10) { @@ -508,43 +460,63 @@ public class TileEntityMachineOilWell extends TileEntity implements ISidedInvent } @Override - public int getSFill() { - return this.oil; + public void fillFluidInit(FluidType type) { + fillFluid(this.xCoord - 2, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord + 2, this.yCoord, this.zCoord, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord - 2, getTact(), type); + fillFluid(this.xCoord, this.yCoord, this.zCoord + 2, getTact(), type); } @Override - public void setSFill(int i) { - this.oil = i; + public void fillFluid(int x, int y, int z, boolean newTact, FluidType type) { + Library.transmitFluid(x, y, z, newTact, this, worldObj, type); } @Override - public List getList() { - return aclist; + public int getSFluidFill(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return tanks[0].getFill(); + else if(type.name().equals(tanks[1].getTankType().name())) + return tanks[1].getFill(); + + return 0; } @Override - public void clearList() { - this.aclist.clear(); + public void setSFluidFill(int i, FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + tanks[0].setFill(i); + else if(type.name().equals(tanks[1].getTankType().name())) + tanks[1].setFill(i); } @Override - public int getGasFill() { - return this.gas; + public List getFluidList(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + return this.list1; + if(type.name().equals(tanks[1].getTankType().name())) + return this.list2; + return new ArrayList(); } @Override - public void setGasFill(int i) { - this.gas = i; + public void clearFluidList(FluidType type) { + if(type.name().equals(tanks[0].getTankType().name())) + list1.clear(); + if(type.name().equals(tanks[1].getTankType().name())) + list2.clear(); } @Override - public List getGasList() { - return this.gaslist; + public void setFillstate(int fill, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setFill(fill); } @Override - public void clearGasList() { - this.gaslist.clear(); + public void setType(FluidType type, int index) { + if(index < 2 && tanks[index] != null) + tanks[index].setTankType(type); } } diff --git a/com/hbm/tileentity/TileEntityMachineRefinery.java b/com/hbm/tileentity/TileEntityMachineRefinery.java index d08a89a44..ccae142d5 100644 --- a/com/hbm/tileentity/TileEntityMachineRefinery.java +++ b/com/hbm/tileentity/TileEntityMachineRefinery.java @@ -49,15 +49,10 @@ public class TileEntityMachineRefinery extends TileEntity implements ISidedInven slots = new ItemStack[12]; tanks = new FluidTank[5]; tanks[0] = new FluidTank(FluidType.OIL, 64000, 0); - tanks[1] = new FluidTank(FluidType.HEAVYOIL, 16000, 0); - tanks[2] = new FluidTank(FluidType.NAPHTHA, 16000, 0); - tanks[3] = new FluidTank(FluidType.LIGHTOIL, 16000, 0); - tanks[4] = new FluidTank(FluidType.PETROLEUM, 16000, 0); - tanks[0].index = 0; - tanks[1].index = 1; - tanks[2].index = 2; - tanks[3].index = 3; - tanks[4].index = 4; + tanks[1] = new FluidTank(FluidType.HEAVYOIL, 16000, 1); + tanks[2] = new FluidTank(FluidType.NAPHTHA, 16000, 2); + tanks[3] = new FluidTank(FluidType.LIGHTOIL, 16000, 3); + tanks[4] = new FluidTank(FluidType.PETROLEUM, 16000, 4); } @Override diff --git a/com/hbm/tileentity/TileEntityMachineUF6Tank.java b/com/hbm/tileentity/TileEntityMachineUF6Tank.java index 2f026c6d6..6fc4aeced 100644 --- a/com/hbm/tileentity/TileEntityMachineUF6Tank.java +++ b/com/hbm/tileentity/TileEntityMachineUF6Tank.java @@ -192,7 +192,6 @@ public class TileEntityMachineUF6Tank extends TileEntity implements ISidedInvent if(!worldObj.isRemote) { tank.loadTank(0, 1, slots); - tank.setType(0, 1, slots); tank.unloadTank(2, 3, slots); tank.updateTank(xCoord, yCoord, zCoord); }