aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRecursivePineapple <recursive_pineapple@proton.me>2024-12-01 13:41:33 -0500
committerGitHub <noreply@github.com>2024-12-01 18:41:33 +0000
commit4fb7e58e4efca41f7cde058be8b06a4389bd0a9c (patch)
tree6ddeb9441d7181473e7983f6612749366f12887c
parentd8e2450d0b8897dc54b91ea63022ef7631e29fc9 (diff)
downloadGT5-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.java22
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";
}