aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java
index ef3689f64c..4b6ce12e65 100644
--- a/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java
+++ b/src/main/java/gregtech/common/tileentities/machines/GT_MetaTileEntity_Hatch_OutputBus_ME.java
@@ -118,7 +118,6 @@ public class GT_MetaTileEntity_Hatch_OutputBus_ME extends GT_MetaTileEntity_Hatc
if (rest != null && rest.getStackSize() > 0)
{
lastOutputFailed = true;
- cachedStack.stackSize = (int)rest.getStackSize();
if (sameStack) // return all that was cached to sender
{
cachedStack = null;
@@ -191,9 +190,39 @@ public class GT_MetaTileEntity_Hatch_OutputBus_ME extends GT_MetaTileEntity_Hatc
public void gridChanged() {
}
+ @Optional.Method(modid = "appliedenergistics2")
+ private void flushCachedStack()
+ {
+ if (cachedStack == null)
+ return;
+ AENetworkProxy proxy = getProxy();
+ if (proxy == null) {
+ lastOutputFailed = true;
+ return;
+ }
+ try {
+ IMEMonitor<IAEItemStack> sg = proxy.getStorage().getItemInventory();
+ IAEItemStack toStore = AEApi.instance().storage().createItemStack(cachedStack);
+ IAEItemStack rest = Platform.poweredInsert(proxy.getEnergy(), sg, toStore, getRequest());
+ if (rest != null && rest.getStackSize() > 0) {
+ lastOutputFailed = true;
+ cachedStack.stackSize = (int) rest.getStackSize();
+ }
+ else
+ cachedStack = null;
+ }
+ catch( final GridAccessException ignored )
+ {
+ lastOutputFailed = true;
+ }
+ lastOutputTick = tickCounter;
+ }
+
@Override
public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) {
tickCounter = aTick;
+ if (tickCounter > (lastOutputTick + 40))
+ flushCachedStack();
super.onPostTick(aBaseMetaTileEntity, aTick);
}