aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations
diff options
context:
space:
mode:
authorAlkalus <3060479+draknyte1@users.noreply.github.com>2018-05-29 16:22:10 +1000
committerAlkalus <3060479+draknyte1@users.noreply.github.com>2018-05-29 16:22:10 +1000
commit45c071b2ac73abc28671bbaa087dec075e4254c0 (patch)
tree86ffb289dab9caf41b1887559632bba9b2dfa13f /src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations
parentaaed15d6c833f634b785cad80913e8cd691cd88c (diff)
downloadGT5-Unofficial-45c071b2ac73abc28671bbaa087dec075e4254c0.tar.gz
GT5-Unofficial-45c071b2ac73abc28671bbaa087dec075e4254c0.tar.bz2
GT5-Unofficial-45c071b2ac73abc28671bbaa087dec075e4254c0.zip
$ Reduced cpu usage in EIO tooltip handler.
$ Made GTPP clean up any left-over threads when the server shuts down (Mostly for SSP memory leaks). $ Made each buffer get a unique thread. Thread life reduced greatly and capped out at 32k seconds.
Diffstat (limited to 'src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations')
-rw-r--r--src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java
index c7914331b7..8dc0a8c2cf 100644
--- a/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java
+++ b/src/Java/gtPlusPlus/xmod/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_ThreadedBuffer.java
@@ -6,6 +6,7 @@ import net.minecraft.entity.player.EntityPlayer;
import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Utility;
+import gtPlusPlus.api.objects.minecraft.BlockPos;
import gtPlusPlus.xmod.gregtech.api.objects.GregtechBufferThread;
import gregtech.api.interfaces.tileentity.IGregTechTileEntity;
@@ -18,6 +19,7 @@ import gregtech.api.interfaces.ITexture;
public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity_Buffer {
protected GregtechBufferThread mLogicThread;
+ protected BlockPos mPos;
public final ItemStack[] mInventorySynchro;
public GT_MetaTileEntity_ThreadedBuffer(final int aID, final String aName, final String aNameRegional, final int aTier,
@@ -69,7 +71,7 @@ public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity
return mLogicThread;
}
else {
- return this.mLogicThread = GregtechBufferThread.getBufferThread(this.getBaseMetaTileEntity().getWorld());
+ return this.mLogicThread = GregtechBufferThread.getBufferThread(mPos);
}
}
@@ -297,8 +299,17 @@ public abstract class GT_MetaTileEntity_ThreadedBuffer extends GT_MetaTileEntity
}
public synchronized void onPostTick(final IGregTechTileEntity aBaseMetaTileEntity, final long aTimer) {
- if (aBaseMetaTileEntity.isServerSide())
- getLogicThread().onPostTick(aBaseMetaTileEntity, aTimer, this);
+ if (aBaseMetaTileEntity.isServerSide()) {
+ if (mPos == null) {
+ mPos = new BlockPos(this.getBaseMetaTileEntity().getXCoord(), this.getBaseMetaTileEntity().getYCoord(), this.getBaseMetaTileEntity().getZCoord(), this.getBaseMetaTileEntity().getWorld());
+ }
+ if (mLogicThread == null) {
+ mLogicThread = GregtechBufferThread.getBufferThread(mPos);
+ }
+ if (mLogicThread!= null) {
+ getLogicThread().onPostTick(aBaseMetaTileEntity, aTimer, this);
+ }
+ }
}
public void onFirstTick(final IGregTechTileEntity aBaseMetaTileEntity) {