diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java index 494c8d0ea..00b19c062 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineFrackingTower.java @@ -1,11 +1,16 @@ package com.hbm.tileentity.machine.oil; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.interfaces.IFluidAcceptor; import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.world.feature.OilSpot; @@ -13,6 +18,18 @@ import net.minecraft.block.Block; public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { + protected static int maxPower = 5_000_000; + protected static int consumption = 5000; + protected static int solutionRequired = 10; + protected static int delay = 20; + protected static int oilPerDepsoit = 1000; + protected static int gasPerDepositMin = 100; + protected static int gasPerDepositMax = 500; + protected static int oilPerBedrockDepsoit = 100; + protected static int gasPerBedrockDepositMin = 10; + protected static int gasPerBedrockDepositMax = 50; + protected static int destructionRange = 75; + public TileEntityMachineFrackingTower() { super(); tanks = new FluidTank[3]; @@ -28,17 +45,17 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple @Override public long getMaxPower() { - return 5_000_000; + return maxPower; } @Override public int getPowerReq() { - return 5000; + return consumption; } @Override public int getDelay() { - return 20; + return delay; } @Override @@ -48,7 +65,7 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple @Override public boolean canPump() { - boolean b = this.tanks[2].getFill() >= 10; + boolean b = this.tanks[2].getFill() >= solutionRequired; if(!b) { this.indicator = 3; @@ -80,12 +97,12 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple int gas = 0; if(b == ModBlocks.ore_oil) { - oil = 1000; - gas = 100 + worldObj.rand.nextInt(401); + oil = oilPerDepsoit; + gas = gasPerDepositMin + worldObj.rand.nextInt(gasPerDepositMax - gasPerDepositMin + 1); } if(b == ModBlocks.ore_bedrock_oil) { - oil = 100; - gas = 10 + worldObj.rand.nextInt(41); + oil = oilPerBedrockDepsoit; + gas = gasPerBedrockDepositMin + worldObj.rand.nextInt(gasPerBedrockDepositMax - gasPerBedrockDepositMin + 1); } this.tanks[0].setFill(this.tanks[0].getFill() + oil); @@ -93,9 +110,9 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple this.tanks[1].setFill(this.tanks[1].getFill() + gas); if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) this.tanks[1].setFill(tanks[1].getMaxFill()); - this.tanks[2].setFill(tanks[2].getFill() - 10); + this.tanks[2].setFill(tanks[2].getFill() - solutionRequired); - OilSpot.generateOilSpot(worldObj, xCoord, zCoord, 75, 10); + OilSpot.generateOilSpot(worldObj, xCoord, zCoord, destructionRange, 10); } @Override @@ -143,4 +160,39 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple this.trySubscribe(tanks[2].getTankType(), worldObj, pos.getX(), pos.getY(), pos.getZ(), pos.getDir()); } } + + @Override + public String getConfigName() { + return "frackingtower"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "I:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "I:consumption", consumption); + solutionRequired = IConfigurableMachine.grab(obj, "I:solutionRequired", solutionRequired); + delay = IConfigurableMachine.grab(obj, "I:delay", delay); + oilPerDepsoit = IConfigurableMachine.grab(obj, "I:oilPerDeposit", oilPerDepsoit); + gasPerDepositMin = IConfigurableMachine.grab(obj, "I:gasPerDepositMin", gasPerDepositMin); + gasPerDepositMax = IConfigurableMachine.grab(obj, "I:gasPerDepositMax", gasPerDepositMax); + oilPerBedrockDepsoit = IConfigurableMachine.grab(obj, "I:oilPerBedrockDeposit", oilPerBedrockDepsoit); + gasPerBedrockDepositMin = IConfigurableMachine.grab(obj, "I:gasPerBedrockDepositMin", gasPerBedrockDepositMin); + gasPerBedrockDepositMax = IConfigurableMachine.grab(obj, "I:gasPerBedrockDepositMax", gasPerBedrockDepositMax); + destructionRange = IConfigurableMachine.grab(obj, "I:destructionRange", destructionRange); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:powerCap").value(maxPower); + writer.name("I:consumption").value(consumption); + writer.name("I:solutionRequired").value(solutionRequired); + writer.name("I:delay").value(delay); + writer.name("I:oilPerDeposit").value(oilPerDepsoit); + writer.name("I:gasPerDepositMin").value(gasPerDepositMin); + writer.name("I:gasPerDepositMax").value(gasPerDepositMax); + writer.name("I:oilPerBedrockDeposit").value(oilPerBedrockDepsoit); + writer.name("I:gasPerBedrockDepositMin").value(gasPerBedrockDepositMin); + writer.name("I:gasPerBedrockDepositMax").value(gasPerBedrockDepositMax); + writer.name("I:destructionRange").value(destructionRange); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java index 7495cf5a3..d208f1e86 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachineOilWell.java @@ -1,9 +1,14 @@ package com.hbm.tileentity.machine.oil; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.ModBlocks; import com.hbm.explosion.ExplosionLarge; import com.hbm.inventory.fluid.FluidType; import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.util.fauxpointtwelve.DirPos; import net.minecraft.block.Block; @@ -13,6 +18,13 @@ import net.minecraftforge.oredict.OreDictionary; public class TileEntityMachineOilWell extends TileEntityOilDrillBase { + protected static int maxPower = 100_000; + protected static int consumption = 100; + protected static int delay = 50; + protected static int oilPerDepsoit = 500; + protected static int gasPerDepositMin = 100; + protected static int gasPerDepositMax = 500; + @Override public String getName() { return "container.oilWell"; @@ -20,17 +32,17 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { @Override public long getMaxPower() { - return 100_000; + return maxPower; } @Override public int getPowerReq() { - return 100; + return consumption; } @Override public int getDelay() { - return 50; + return delay; } @Override @@ -69,9 +81,9 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { 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", 2.0F, 0.5F); - this.tanks[0].setFill(this.tanks[0].getFill() + 500); + this.tanks[0].setFill(this.tanks[0].getFill() + oilPerDepsoit); 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 + worldObj.rand.nextInt(401))); + this.tanks[1].setFill(this.tanks[1].getFill() + (gasPerDepositMin + worldObj.rand.nextInt((gasPerDepositMax - gasPerDepositMin + 1)))); if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) this.tanks[1].setFill(tanks[1].getMaxFill()); } @@ -111,4 +123,29 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase { new DirPos(xCoord, yCoord, zCoord - 2, Library.NEG_Z) }; } + + @Override + public String getConfigName() { + return "derrick"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "I:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "I:consumption", consumption); + delay = IConfigurableMachine.grab(obj, "I:delay", delay); + oilPerDepsoit = IConfigurableMachine.grab(obj, "I:oilPerDeposit", oilPerDepsoit); + gasPerDepositMin = IConfigurableMachine.grab(obj, "I:gasPerDepositMin", gasPerDepositMin); + gasPerDepositMax = IConfigurableMachine.grab(obj, "I:gasPerDepositMax", gasPerDepositMax); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:powerCap").value(maxPower); + writer.name("I:consumption").value(consumption); + writer.name("I:delay").value(delay); + writer.name("I:oilPerDeposit").value(oilPerDepsoit); + writer.name("I:gasPerDepositMin").value(gasPerDepositMin); + writer.name("I:gasPerDepositMax").value(gasPerDepositMax); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java index b52cb8fa1..03429f92c 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityMachinePumpjack.java @@ -1,10 +1,13 @@ package com.hbm.tileentity.machine.oil; +import java.io.IOException; + +import com.google.gson.JsonObject; +import com.google.gson.stream.JsonWriter; import com.hbm.blocks.BlockDummyable; import com.hbm.blocks.ModBlocks; import com.hbm.inventory.fluid.FluidType; -import com.hbm.inventory.fluid.tank.FluidTank; -import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.util.fauxpointtwelve.DirPos; import net.minecraft.block.Block; @@ -15,6 +18,13 @@ import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.oredict.OreDictionary; public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { + + protected static int maxPower = 250_000; + protected static int consumption = 200; + protected static int delay = 25; + protected static int oilPerDepsoit = 750; + protected static int gasPerDepositMin = 50; + protected static int gasPerDepositMax = 250; public float rot = 0; public float prevRot = 0; @@ -27,17 +37,17 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { @Override public long getMaxPower() { - return 250_000; + return maxPower; } @Override public int getPowerReq() { - return 200; + return consumption; } @Override public int getDelay() { - return 25; + return delay; } @Override @@ -106,9 +116,9 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { @Override public void onSuck(int x, int y, int z) { - this.tanks[0].setFill(this.tanks[0].getFill() + 750); + this.tanks[0].setFill(this.tanks[0].getFill() + oilPerDepsoit); if(this.tanks[0].getFill() > this.tanks[0].getMaxFill()) this.tanks[0].setFill(tanks[0].getMaxFill()); - this.tanks[1].setFill(this.tanks[1].getFill() + (50 + worldObj.rand.nextInt(201))); + this.tanks[1].setFill(this.tanks[1].getFill() + (gasPerDepositMin + worldObj.rand.nextInt((gasPerDepositMax - gasPerDepositMin + 1)))); if(this.tanks[1].getFill() > this.tanks[1].getMaxFill()) this.tanks[1].setFill(tanks[1].getMaxFill()); } @@ -163,4 +173,29 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { new DirPos(xCoord + rot.offsetX * 4 - dir.offsetX * 2, yCoord, zCoord + rot.offsetZ * 2 - dir.offsetZ * 2, dir.getOpposite()) }; } + + @Override + public String getConfigName() { + return "pumpjack"; + } + + @Override + public void readIfPresent(JsonObject obj) { + maxPower = IConfigurableMachine.grab(obj, "I:powerCap", maxPower); + consumption = IConfigurableMachine.grab(obj, "I:consumption", consumption); + delay = IConfigurableMachine.grab(obj, "I:delay", delay); + oilPerDepsoit = IConfigurableMachine.grab(obj, "I:oilPerDeposit", oilPerDepsoit); + gasPerDepositMin = IConfigurableMachine.grab(obj, "I:gasPerDepositMin", gasPerDepositMin); + gasPerDepositMax = IConfigurableMachine.grab(obj, "I:gasPerDepositMax", gasPerDepositMax); + } + + @Override + public void writeConfig(JsonWriter writer) throws IOException { + writer.name("I:powerCap").value(maxPower); + writer.name("I:consumption").value(consumption); + writer.name("I:delay").value(delay); + writer.name("I:oilPerDeposit").value(oilPerDepsoit); + writer.name("I:gasPerDepositMin").value(gasPerDepositMin); + writer.name("I:gasPerDepositMax").value(gasPerDepositMax); + } } diff --git a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java index 6015322b4..bf786751b 100644 --- a/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java +++ b/src/main/java/com/hbm/tileentity/machine/oil/TileEntityOilDrillBase.java @@ -14,6 +14,7 @@ import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.lib.Library; +import com.hbm.tileentity.IConfigurableMachine; import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.util.BobMathUtil; import com.hbm.util.Tuple; @@ -31,7 +32,7 @@ import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; import net.minecraftforge.common.util.ForgeDirection; -public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver { +public abstract class TileEntityOilDrillBase extends TileEntityMachineBase implements IEnergyUser, IFluidSource, IFluidStandardTransceiver, IConfigurableMachine { public int indicator = 0; diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gui_heatex.png b/src/main/resources/assets/hbm/textures/gui/machine/gui_heatex.png new file mode 100644 index 000000000..0070970ec Binary files /dev/null and b/src/main/resources/assets/hbm/textures/gui/machine/gui_heatex.png differ diff --git a/src/main/resources/assets/hbm/textures/gui/machine/gas_tester.png b/src/main/resources/assets/hbm/textures/items/gas_tester.png similarity index 100% rename from src/main/resources/assets/hbm/textures/gui/machine/gas_tester.png rename to src/main/resources/assets/hbm/textures/items/gas_tester.png