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;
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);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

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.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;

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