diff options
author | RecursivePineapple <recursive_pineapple@proton.me> | 2024-12-01 13:41:33 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-01 18:41:33 +0000 |
commit | 4fb7e58e4efca41f7cde058be8b06a4389bd0a9c (patch) | |
tree | 6ddeb9441d7181473e7983f6612749366f12887c | |
parent | d8e2450d0b8897dc54b91ea63022ef7631e29fc9 (diff) | |
download | GT5-Unofficial-4fb7e58e4efca41f7cde058be8b06a4389bd0a9c.tar.gz GT5-Unofficial-4fb7e58e4efca41f7cde058be8b06a4389bd0a9c.tar.bz2 GT5-Unofficial-4fb7e58e4efca41f7cde058be8b06a4389bd0a9c.zip |
Fixed infinite oil rig getting stuck (#3589)
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java b/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java index 8e1c170fb4..f47ec621b3 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/MTEOilDrillBase.java @@ -30,7 +30,6 @@ import net.minecraft.world.ChunkCoordIntPair; import net.minecraft.world.chunk.Chunk; import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.fluids.Fluid; -import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; import org.jetbrains.annotations.NotNull; @@ -62,7 +61,7 @@ import gregtech.api.util.ValidationType; public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetricsExporter { private final ArrayList<Chunk> mOilFieldChunks = new ArrayList<>(); - private int mOilId = 0; + private Fluid mOil = null; private int mOilFlow = 0; private int chunkRangeConfig = getRangeInChunks(); @@ -104,14 +103,12 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); - aNBT.setInteger("mOilId", mOilId); aNBT.setInteger("chunkRangeConfig", chunkRangeConfig); } @Override public void loadNBTData(NBTTagCompound aNBT) { super.loadNBTData(aNBT); - mOilId = aNBT.getInteger("mOilId"); if (aNBT.hasKey("chunkRangeConfig")) chunkRangeConfig = aNBT.getInteger("chunkRangeConfig"); } @@ -235,16 +232,16 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics private boolean tryFillChunkList() { FluidStack tFluid, tOil; - if (mOilId <= 0) { + if (mOil == null) { tFluid = undergroundOilReadInformation(getBaseMetaTileEntity()); if (tFluid == null) return false; - mOilId = tFluid.getFluidID(); + mOil = tFluid.getFluid(); } if (debugDriller) { - GTLog.out.println(" Driller on fluid = " + mOilId); + GTLog.out.println(" Driller on fluid = " + mOil == null ? null : mOil.getName()); } - tOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0); + tOil = new FluidStack(mOil, 0); if (mOilFieldChunks.isEmpty()) { Chunk tChunk = getBaseMetaTileEntity().getWorld() @@ -300,7 +297,7 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics * If vein is depleted, it returns a result with VALID and null fluid. */ protected ValidationResult<FluidStack> tryPumpOil(float speed) { - if (mOilId <= 0) return null; + if (mOil == null) return null; if (debugDriller) { GTLog.out.println(" pump speed = " + speed); } @@ -330,7 +327,7 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics } ArrayList<Chunk> emptyChunks = new ArrayList<>(); - FluidStack returnOil = new FluidStack(FluidRegistry.getFluid(mOilId), 0); + FluidStack returnOil = new FluidStack(mOil, 0); for (Chunk tChunk : mOilFieldChunks) { FluidStack pumped = undergroundOil(tChunk, simulate ? -speed : speed); @@ -430,9 +427,8 @@ public abstract class MTEOilDrillBase extends MTEDrillerBase implements IMetrics @NotNull private String getFluidName() { - if (mOilId > 0) { - final Fluid fluid = FluidRegistry.getFluid(mOilId); - return fluid.getLocalizedName(new FluidStack(fluid, 0)); + if (mOil != null) { + return mOil.getLocalizedName(new FluidStack(mOil, 0)); } return "None"; } |