diff options
author | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-13 00:50:02 -0500 |
---|---|---|
committer | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-13 00:50:02 -0500 |
commit | 4c4c412769df240e4dfe949854c8750b7a91cc9f (patch) | |
tree | 0722154dad5f38ff89079299df5fc92605eb5284 /src | |
parent | f35683f2d4e400f84020acf717f98ea1ee3e5f71 (diff) | |
download | GT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.tar.gz GT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.tar.bz2 GT5-Unofficial-4c4c412769df240e4dfe949854c8750b7a91cc9f.zip |
Fix for issue 3399.
Diffstat (limited to 'src')
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 +} |