aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRichard Hendricks <richardhendricks@pobox.com>2018-08-13 00:50:02 -0500
committerRichard Hendricks <richardhendricks@pobox.com>2018-08-13 00:50:02 -0500
commit4c4c412769df240e4dfe949854c8750b7a91cc9f (patch)
tree0722154dad5f38ff89079299df5fc92605eb5284 /src
parentf35683f2d4e400f84020acf717f98ea1ee3e5f71 (diff)
downloadGT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.tar.gz
GT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.tar.bz2
GT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.zip
Fix for issue 3399.
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/GT_Mod.java1
-rw-r--r--src/main/java/gregtech/api/enums/GT_Values.java4
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java30
3 files changed, 31 insertions, 4 deletions
diff --git a/src/main/java/gregtech/GT_Mod.java b/src/main/java/gregtech/GT_Mod.java
index 2bc04d5861..b086a0f255 100644
--- a/src/main/java/gregtech/GT_Mod.java
+++ b/src/main/java/gregtech/GT_Mod.java
@@ -194,6 +194,7 @@ public class GT_Mod implements IGT_Mod {
GT_Values.D1 = tMainConfig.get(aTextGeneral, "Debug", false).getBoolean(false);
GT_Values.D2 = tMainConfig.get(aTextGeneral, "Debug2", false).getBoolean(false);
GT_Values.debugCleanroom = tMainConfig.get(aTextGeneral, "debugCleanroom", false).getBoolean(false);
+ GT_Values.debugDriller = tMainConfig.get(aTextGeneral, "debugDriller", false).getBoolean(false);
GT_Values.debugWorldGen = tMainConfig.get(aTextGeneral, "debugWorldGen", false).getBoolean(false);
GT_Values.debugOrevein = tMainConfig.get(aTextGeneral, "debugOrevein", false).getBoolean(false);
GT_Values.debugSmallOres = tMainConfig.get(aTextGeneral, "debugSmallOres", false).getBoolean(false);
diff --git a/src/main/java/gregtech/api/enums/GT_Values.java b/src/main/java/gregtech/api/enums/GT_Values.java
index 3ba0dc407a..ca3fe505bf 100644
--- a/src/main/java/gregtech/api/enums/GT_Values.java
+++ b/src/main/java/gregtech/api/enums/GT_Values.java
@@ -143,6 +143,10 @@ public class GT_Values {
*/
public static boolean debugCleanroom = false;
/**
+ * Debug parameter for driller testing.
+ */
+ public static boolean debugDriller = false;
+ /**
* Debug parameter for world generation. Tracks chunks added/removed from run queue.
*/
public static boolean debugWorldGen = false;
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 7410b20993..b1480791e3 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
@@ -2,6 +2,7 @@ package gregtech.common.tileentities.machines.multi;
import gregtech.api.gui.GT_GUIContainer_MultiMachine;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
+import gregtech.api.util.GT_Log;
import gregtech.api.util.GT_Utility;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
@@ -13,6 +14,7 @@ import net.minecraftforge.fluids.FluidStack;
import java.util.ArrayList;
import static gregtech.api.enums.GT_Values.VN;
+import static gregtech.api.enums.GT_Values.debugDriller;
import static gregtech.common.GT_UndergroundOil.undergroundOil;
import static gregtech.common.GT_UndergroundOil.undergroundOilReadInformation;
@@ -115,16 +117,23 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
if (mOilFieldChunks.isEmpty()) {
Chunk tChunk = getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord());
int range = getRangeInChunks();
- int xChunk = (tChunk.xPosition / range) * range - (tChunk.xPosition < 0 ? range : 0), zChunk = (tChunk.zPosition / range) * range - (tChunk.zPosition < 0 ? range : 0);
+ int xChunk = (tChunk.xPosition / range) * range;
+ int zChunk = (tChunk.zPosition / range) * range;
for (int i = 0; i < range; i++) {
for (int j = 0; j < range; j++) {
tChunk = getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(xChunk + i, zChunk + j);
tFluid = undergroundOilReadInformation(tChunk);
- if (tOil.isFluidEqual(tFluid))
+ if (tOil.isFluidEqual(tFluid) && tFluid.amount > 0) {
mOilFieldChunks.add(tChunk);
+ }
}
}
}
+ if (debugDriller) {
+ GT_Log.out.println(
+ "mOilFieldChunks.size = " + mOilFieldChunks.size()
+ );
+ }
return !mOilFieldChunks.isEmpty();
}
@@ -132,11 +141,24 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D
if (mOilId <= 0) return null;
FluidStack tFluid, tOil;
tOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0);
+ if (debugDriller) {
+ GT_Log.out.println(
+ " pump speed = " + speed
+ );
+ }
+
for (Chunk tChunk : mOilFieldChunks) {
- tFluid = undergroundOil(getBaseMetaTileEntity(),speed);
+ tFluid = undergroundOil(tChunk,speed);
+ if (debugDriller) {
+ GT_Log.out.println(
+ " chunkX = " + tChunk.getChunkCoordIntPair().chunkXPos +
+ " chunkZ = " + tChunk.getChunkCoordIntPair().chunkZPos +
+ " Oil pumped = " + tFluid.amount
+ );
+ }
if (tFluid == null || tFluid.amount<1) mOilFieldChunks.remove(tChunk);
if (tOil.isFluidEqual(tFluid)) tOil.amount += tFluid.amount;
}
return tOil.amount == 0 ? null : tOil;
}
-} \ No newline at end of file
+}