diff options
author | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-30 00:57:18 -0500 |
---|---|---|
committer | Richard Hendricks <richardhendricks@pobox.com> | 2018-08-30 00:57:18 -0500 |
commit | 7741a6b36a7a9f36cb38c49da35d2ac8c831d2b7 (patch) | |
tree | 24d2c1f62e2d31b9c0bf2370add6163ce888d726 /src | |
parent | 7e6fb0abeef22b80f16da5f63e7849525823579e (diff) | |
download | GT5-Unofficial-7741a6b36a7a9f36cb38c49da35d2ac8c831d2b7.tar.gz GT5-Unofficial-7741a6b36a7a9f36cb38c49da35d2ac8c831d2b7.tar.bz2 GT5-Unofficial-7741a6b36a7a9f36cb38c49da35d2ac8c831d2b7.zip |
Fixed Java exception when removing chunks from list.
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_OilDrillBase.java | 31 |
1 files changed, 23 insertions, 8 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 5ae49aba2a..08d5dab287 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 @@ -112,12 +112,13 @@ 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 - ); - } } + if (debugDriller) { + GT_Log.out.println( + " Driller on fluid = " + mOilId + ); + } + tOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0); if (mOilFieldChunks.isEmpty()) { @@ -176,19 +177,33 @@ public abstract class GT_MetaTileEntity_OilDrillBase extends GT_MetaTileEntity_D " pump speed = " + speed ); } + + ArrayList<Chunk> emptyChunks = new ArrayList<Chunk>(); for (Chunk tChunk : mOilFieldChunks) { tFluid = undergroundOil(tChunk,speed); if (debugDriller) { GT_Log.out.println( " chunkX = " + tChunk.getChunkCoordIntPair().chunkXPos + - " chunkZ = " + tChunk.getChunkCoordIntPair().chunkZPos + - " Oil pumped = " + tFluid.amount + " chunkZ = " + tChunk.getChunkCoordIntPair().chunkZPos ); + if( tFluid != null ) { + GT_Log.out.println( + " Fluid pumped = " + tFluid.amount + ); + } else { + GT_Log.out.println( + " No fluid pumped " + ); + } + } - if (tFluid == null || tFluid.amount<1) mOilFieldChunks.remove(tChunk); + if (tFluid == null || tFluid.amount<1) emptyChunks.add(tChunk); if (tOil.isFluidEqual(tFluid)) tOil.amount += tFluid.amount; } + for( Chunk tChunk : emptyChunks) { + mOilFieldChunks.remove( tChunk ); + } return tOil.amount == 0 ? null : tOil; } } |