aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines
diff options
context:
space:
mode:
authorboubou19 <miisterunknown@gmail.com>2021-12-12 00:06:05 +0100
committerGitHub <noreply@github.com>2021-12-12 00:06:05 +0100
commit00dd201c0024d75d55abca019ac533713818d280 (patch)
tree7cb2e6bf9e52875a933c6cf0838adc05e7079d59 /src/main/java/gregtech/common/tileentities/machines
parent450a7042f919a04d790bd4b295b43ed8287c6ca4 (diff)
downloadGT5-Unofficial-00dd201c0024d75d55abca019ac533713818d280.tar.gz
GT5-Unofficial-00dd201c0024d75d55abca019ac533713818d280.tar.bz2
GT5-Unofficial-00dd201c0024d75d55abca019ac533713818d280.zip
add infinite oil rig (#795)
* add infinite oil rig * fix typo * get same speed as the oil rig III * adjust speed for the infinite oil rig
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java18
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillInfinite.java83
2 files changed, 94 insertions, 7 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java
index 76231980ec..3e144d7a1a 100644
--- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java
@@ -147,6 +147,10 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
) >> tier);
}
+ protected float computeSpeed(){
+ return .5F+(GT_Utility.getTier(getMaxInputVoltage()) - getMinTier()) *.25F;
+ }
+
@Override
protected boolean workingAtBottom(ItemStack aStack, int xDrill, int yDrill, int zDrill, int xPipe, int zPipe, int yHead, int oldYHead) {
switch (tryLowerPipeState(true)) {
@@ -160,7 +164,7 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
GT_ChunkManager.requestChunkLoad((TileEntity) getBaseMetaTileEntity(), null);
mWorkChunkNeedsReload = false;
}
- float speed = .5F+(GT_Utility.getTier(getMaxInputVoltage()) - getMinTier()) *.25F;
+ float speed = computeSpeed();
FluidStack tFluid = pumpOil(speed);
if (tFluid != null && tFluid.amount > getTotalConfigValue()){
this.mOutputFluids = new FluidStack[]{tFluid};
@@ -234,7 +238,7 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
return !mOilFieldChunks.isEmpty();
}
- private FluidStack pumpOil(float speed){
+ protected FluidStack pumpOil(float speed){
if (mOilId <= 0) return null;
FluidStack tFluid, tOil;
tOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0);
@@ -245,13 +249,13 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
}
ArrayList<Chunk> emptyChunks = new ArrayList<>();
-
+
for (Chunk tChunk : mOilFieldChunks) {
tFluid = undergroundOil(tChunk,speed);
if (debugDriller) {
GT_Log.out.println(
- " chunkX = " + tChunk.getChunkCoordIntPair().chunkXPos +
- " chunkZ = " + tChunk.getChunkCoordIntPair().chunkZPos
+ " chunkX = " + tChunk.getChunkCoordIntPair().chunkXPos +
+ " chunkZ = " + tChunk.getChunkCoordIntPair().chunkZPos
);
if( tFluid != null ) {
GT_Log.out.println(
@@ -259,10 +263,10 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
);
} else {
GT_Log.out.println(
- " No fluid pumped "
+ " No fluid pumped "
);
}
-
+
}
if (tFluid == null || tFluid.amount<1) emptyChunks.add(tChunk);
if (tOil.isFluidEqual(tFluid)) tOil.amount += tFluid.amount;
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillInfinite.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillInfinite.java
new file mode 100644
index 0000000000..59e41656b3
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillInfinite.java
@@ -0,0 +1,83 @@
+package gregtech.common.tileentities.machines.multi;
+
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
+import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GT_Multiblock_Tooltip_Builder;
+import gregtech.api.util.GT_Utility;
+import net.minecraftforge.fluids.FluidStack;
+
+import static gregtech.api.enums.GT_Values.VN;
+
+public class GT_MetaTileEntity_OilDrillInfinite extends GT_MetaTileEntity_OilDrillBase{
+ public GT_MetaTileEntity_OilDrillInfinite(int aID, String aName, String aNameRegional) {
+ super(aID, aName, aNameRegional);
+ }
+
+ public GT_MetaTileEntity_OilDrillInfinite(String aName) {
+ super(aName);
+ }
+
+ @Override
+ protected GT_Multiblock_Tooltip_Builder createTooltip() {
+ String casings = getCasingBlockItem().get(0).getDisplayName();
+
+ final GT_Multiblock_Tooltip_Builder tt = new GT_Multiblock_Tooltip_Builder();
+ tt.addMachineType("Pump")
+ .addInfo("Controller Block for the Infinite Oil/Gas/Fluid Drilling Rig ")
+ .addInfo("Works on " + getRangeInChunks() + "x" + getRangeInChunks() + " chunks")
+ .addSeparator()
+ .beginStructureBlock(3, 7, 3, false)
+ .addController("Front bottom")
+ .addStructureInfo(casings + " form the 3x1x3 Base")
+ .addOtherStructurePart(casings, " 1x3x1 pillar above the center of the base (2 minimum total)")
+ .addOtherStructurePart(getFrameMaterial().mName + " Frame Boxes", "Each pillar's side and 1x3x1 on top")
+ .addEnergyHatch(VN[getMinTier()] + "+, Any base casing", 1)
+ .addMaintenanceHatch("Any base casing", 1)
+ .addInputBus("Mining Pipes or Circuits, optional, any base casing", 1)
+ .addOutputHatch("Any base casing", 1)
+ .toolTipFinisher("Gregtech");
+ return tt;
+ }
+
+ @Override
+ public IMetaTileEntity newMetaEntity(IGregTechTileEntity aTileEntity) {
+ return new GT_MetaTileEntity_OilDrillInfinite(mName);
+ }
+
+ @Override
+ protected FluidStack pumpOil(float speed){
+ return super.pumpOil(-speed);
+ }
+
+ @Override
+ protected ItemList getCasingBlockItem() {
+ return ItemList.Casing_MiningNeutronium;
+ }
+
+ @Override
+ protected Materials getFrameMaterial() {
+ return Materials.Neutronium;
+ }
+
+ @Override
+ protected int getCasingTextureIndex() {
+ return 178;
+ }
+
+ @Override
+ protected int getRangeInChunks() {
+ return 8;
+ }
+
+ @Override
+ protected float computeSpeed(){
+ return .5F+(GT_Utility.getTier(getMaxInputVoltage()) - getMinTier()+5) *.25F;
+ }
+
+ @Override
+ protected int getMinTier() {
+ return 9;
+ }
+}