diff options
author | Glease <4586901+Glease@users.noreply.github.com> | 2022-09-16 17:56:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-16 11:56:24 +0200 |
commit | 598dbb1c3d78345721556da65ea62973f23abc13 (patch) | |
tree | 06cefca093478a53b68350b6f7466887ee8d783f /src/main/java/gregtech/common/tileentities | |
parent | 462f63064558da98f08e45b3fe3e7e77baa4b0c1 (diff) | |
download | GT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.tar.gz GT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.tar.bz2 GT5-Unofficial-598dbb1c3d78345721556da65ea62973f23abc13.zip |
duct tape fix for too many updates on an overloaded server preventing structure check (#1384)
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
2 files changed, 12 insertions, 4 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java index 143548cfaa..f6bc532469 100644 --- a/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java +++ b/src/main/java/gregtech/common/tileentities/machines/long_distance/GT_MetaTileEntity_LongDistancePipelineBase.java @@ -57,8 +57,10 @@ import net.minecraftforge.common.util.ForgeDirection; public abstract class GT_MetaTileEntity_LongDistancePipelineBase extends GT_MetaTileEntity_BasicHull_NonElectric { public static int minimalDistancePoints = 64; - protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null, mSender = null; - protected ChunkCoordinates mTargetPos = null; + protected GT_MetaTileEntity_LongDistancePipelineBase mTarget = null; + // these two are updated by machine block update thread, so must be volatile + protected volatile GT_MetaTileEntity_LongDistancePipelineBase mSender = null; + protected volatile ChunkCoordinates mTargetPos = null; protected GT_MetaTileEntity_LongDistancePipelineBase mTooCloseTarget = null, mTooCloseSender = null; public GT_MetaTileEntity_LongDistancePipelineBase( diff --git a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java index e53bf880ba..12ef824ee1 100644 --- a/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java +++ b/src/main/java/gregtech/common/tileentities/machines/multi/GT_MetaTileEntity_PrimitiveBlastFurnace.java @@ -29,7 +29,8 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn public static final int INPUT_SLOTS = 3, OUTPUT_SLOTS = 3; public int mMaxProgresstime = 0; - public volatile int mUpdate = 5; + private volatile boolean mUpdated; + public int mUpdate = 5; public int mProgresstime = 0; public boolean mMachine = false; private boolean mChimneyBlocked = false; @@ -211,7 +212,7 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn @Override public void onMachineBlockUpdate() { - this.mUpdate = 5; + mUpdated = true; } @Override @@ -231,6 +232,11 @@ public abstract class GT_MetaTileEntity_PrimitiveBlastFurnace extends MetaTileEn .run(); } if (aBaseMetaTileEntity.isServerSide()) { + if (mUpdated) { + // duct tape fix for too many updates on an overloaded server, causing the structure check to not run + if (mUpdate < 0) mUpdate = 5; + mUpdated = false; + } if (this.mUpdate-- == 0) { this.mMachine = checkMachine(); } |