oil well configs

This commit is contained in:
Boblet 2022-11-29 16:46:38 +01:00
parent e882084d71
commit 84587c25ef
6 changed files with 148 additions and 23 deletions

View File

@ -1,11 +1,16 @@
package com.hbm.tileentity.machine.oil; 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.blocks.ModBlocks;
import com.hbm.interfaces.IFluidAcceptor; import com.hbm.interfaces.IFluidAcceptor;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.Fluids; import com.hbm.inventory.fluid.Fluids;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import com.hbm.world.feature.OilSpot; import com.hbm.world.feature.OilSpot;
@ -13,6 +18,18 @@ import net.minecraft.block.Block;
public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase implements IFluidAcceptor { 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() { public TileEntityMachineFrackingTower() {
super(); super();
tanks = new FluidTank[3]; tanks = new FluidTank[3];
@ -28,17 +45,17 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple
@Override @Override
public long getMaxPower() { public long getMaxPower() {
return 5_000_000; return maxPower;
} }
@Override @Override
public int getPowerReq() { public int getPowerReq() {
return 5000; return consumption;
} }
@Override @Override
public int getDelay() { public int getDelay() {
return 20; return delay;
} }
@Override @Override
@ -48,7 +65,7 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple
@Override @Override
public boolean canPump() { public boolean canPump() {
boolean b = this.tanks[2].getFill() >= 10; boolean b = this.tanks[2].getFill() >= solutionRequired;
if(!b) { if(!b) {
this.indicator = 3; this.indicator = 3;
@ -80,12 +97,12 @@ public class TileEntityMachineFrackingTower extends TileEntityOilDrillBase imple
int gas = 0; int gas = 0;
if(b == ModBlocks.ore_oil) { if(b == ModBlocks.ore_oil) {
oil = 1000; oil = oilPerDepsoit;
gas = 100 + worldObj.rand.nextInt(401); gas = gasPerDepositMin + worldObj.rand.nextInt(gasPerDepositMax - gasPerDepositMin + 1);
} }
if(b == ModBlocks.ore_bedrock_oil) { if(b == ModBlocks.ore_bedrock_oil) {
oil = 100; oil = oilPerBedrockDepsoit;
gas = 10 + worldObj.rand.nextInt(41); gas = gasPerBedrockDepositMin + worldObj.rand.nextInt(gasPerBedrockDepositMax - gasPerBedrockDepositMin + 1);
} }
this.tanks[0].setFill(this.tanks[0].getFill() + oil); 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); 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()); 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 @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()); 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);
}
} }

View File

@ -1,9 +1,14 @@
package com.hbm.tileentity.machine.oil; 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.blocks.ModBlocks;
import com.hbm.explosion.ExplosionLarge; import com.hbm.explosion.ExplosionLarge;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -13,6 +18,13 @@ import net.minecraftforge.oredict.OreDictionary;
public class TileEntityMachineOilWell extends TileEntityOilDrillBase { 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 @Override
public String getName() { public String getName() {
return "container.oilWell"; return "container.oilWell";
@ -20,17 +32,17 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase {
@Override @Override
public long getMaxPower() { public long getMaxPower() {
return 100_000; return maxPower;
} }
@Override @Override
public int getPowerReq() { public int getPowerReq() {
return 100; return consumption;
} }
@Override @Override
public int getDelay() { public int getDelay() {
return 50; return delay;
} }
@Override @Override
@ -69,9 +81,9 @@ public class TileEntityMachineOilWell extends TileEntityOilDrillBase {
ExplosionLarge.spawnOilSpills(worldObj, xCoord + 0.5F, yCoord + 5.5F, zCoord + 0.5F, 3); 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); 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()); 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()); 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) 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);
}
} }

View File

@ -1,10 +1,13 @@
package com.hbm.tileentity.machine.oil; 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.BlockDummyable;
import com.hbm.blocks.ModBlocks; import com.hbm.blocks.ModBlocks;
import com.hbm.inventory.fluid.FluidType; import com.hbm.inventory.fluid.FluidType;
import com.hbm.inventory.fluid.tank.FluidTank; import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.lib.Library;
import com.hbm.util.fauxpointtwelve.DirPos; import com.hbm.util.fauxpointtwelve.DirPos;
import net.minecraft.block.Block; import net.minecraft.block.Block;
@ -15,6 +18,13 @@ import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.oredict.OreDictionary; import net.minecraftforge.oredict.OreDictionary;
public class TileEntityMachinePumpjack extends TileEntityOilDrillBase { 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 rot = 0;
public float prevRot = 0; public float prevRot = 0;
@ -27,17 +37,17 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase {
@Override @Override
public long getMaxPower() { public long getMaxPower() {
return 250_000; return maxPower;
} }
@Override @Override
public int getPowerReq() { public int getPowerReq() {
return 200; return consumption;
} }
@Override @Override
public int getDelay() { public int getDelay() {
return 25; return delay;
} }
@Override @Override
@ -106,9 +116,9 @@ public class TileEntityMachinePumpjack extends TileEntityOilDrillBase {
@Override @Override
public void onSuck(int x, int y, int z) { 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()); 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()); 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()) 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);
}
} }

View File

@ -14,6 +14,7 @@ import com.hbm.inventory.fluid.tank.FluidTank;
import com.hbm.items.machine.ItemMachineUpgrade; import com.hbm.items.machine.ItemMachineUpgrade;
import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType; import com.hbm.items.machine.ItemMachineUpgrade.UpgradeType;
import com.hbm.lib.Library; import com.hbm.lib.Library;
import com.hbm.tileentity.IConfigurableMachine;
import com.hbm.tileentity.TileEntityMachineBase; import com.hbm.tileentity.TileEntityMachineBase;
import com.hbm.util.BobMathUtil; import com.hbm.util.BobMathUtil;
import com.hbm.util.Tuple; import com.hbm.util.Tuple;
@ -31,7 +32,7 @@ import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraftforge.common.util.ForgeDirection; 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; public int indicator = 0;

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

Before

Width:  |  Height:  |  Size: 220 B

After

Width:  |  Height:  |  Size: 220 B