diff options
author | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-29 22:46:16 -0500 |
---|---|---|
committer | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-29 22:46:16 -0500 |
commit | 7e6fb0abeef22b80f16da5f63e7849525823579e (patch) | |
tree | 1b27a15fe4e10218be34cdb381cff7d49f1690f4 /src/main/java/gregtech/common | |
parent | 404cca89e1f69872e4a0300eaee3f9deb69a62c1 (diff) | |
download | GT5-Unofficial-7e6fb0abeef22b80f16da5f63e7849525823579e.tar.gz GT5-Unofficial-7e6fb0abeef22b80f16da5f63e7849525823579e.tar.bz2 GT5-Unofficial-7e6fb0abeef22b80f16da5f63e7849525823579e.zip |
Java does not handle integer division in the expected way when going negative. Have to use Math.floorDiv() instead.
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java | 34 |
1 files changed, 32 insertions, 2 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 b1480791e3..5ae49aba2a 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 @@ -12,6 +12,7 @@ import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import java.util.ArrayList; +import java.lang.Math; //Java was written by idiots import static gregtech.api.enums.GT_Values.VN; import static gregtech.api.enums.GT_Values.debugDriller; @@ -111,20 +112,49 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D tFluid = undergroundOilReadInformation(getBaseMetaTileEntity()); if (tFluid == null) return false; mOilId = tFluid.getFluidID(); + if (debugDriller) { + GT_Log.out.println( + " mOilId null, adding fluid = " + mOilId + ); + } } tOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0); if (mOilFieldChunks.isEmpty()) { Chunk tChunk = getBaseMetaTileEntity().getWorld().getChunkFromBlockCoords(getBaseMetaTileEntity().getXCoord(), getBaseMetaTileEntity().getZCoord()); int range = getRangeInChunks(); - int xChunk = (tChunk.xPosition / range) * range; - int zChunk = (tChunk.zPosition / range) * range; + int xChunk = Math.floorDiv(tChunk.xPosition,range) * range; //Java was written by idiots. For negative values, / returns rounded towards zero. Fucking morons. + int zChunk = Math.floorDiv(tChunk.zPosition,range) * range; + if (debugDriller) { + GT_Log.out.println( + "tChunk.xPosition = " + tChunk.xPosition + + " tChunk.zPosition = " + tChunk.zPosition + + " xChunk = " + xChunk + + " zChunk = " + zChunk + ); + } for (int i = 0; i < range; i++) { for (int j = 0; j < range; j++) { + if (debugDriller) { + GT_Log.out.println( + " getChunkX = " + (xChunk + i) + + " getChunkZ = " + (zChunk + j) + ); + } tChunk = getBaseMetaTileEntity().getWorld().getChunkFromChunkCoords(xChunk + i, zChunk + j); tFluid = undergroundOilReadInformation(tChunk); + if (debugDriller) { + GT_Log.out.println( + " Fluid in chunk = " + tFluid.getFluid().getID() + ); + } if (tOil.isFluidEqual(tFluid) && tFluid.amount > 0) { mOilFieldChunks.add(tChunk); + if (debugDriller) { + GT_Log.out.println( + " Matching fluid, quantity = " + tFluid.amount + ); + } } } } |