From 2aaeec607015e31c710883d4884ccdcae4abbf7a Mon Sep 17 00:00:00 2001 From: BTone <102826865+BTone@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:15:53 -0700 Subject: Item pipes now consider the tick their current transfer period started before resetting their transferred items, resulting in more predictable pipe transfer rates. (#2334) --- .../metatileentity/implementations/GT_MetaPipeEntity_Item.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java index 5c98724df6..660230660e 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaPipeEntity_Item.java @@ -47,6 +47,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE public final int mStepSize; public final int mTickTime; public int mTransferredItems = 0; + public long mCurrentTransferStartTick = 0; public ForgeDirection mLastReceivedFrom = ForgeDirection.UNKNOWN, oLastReceivedFrom = ForgeDirection.UNKNOWN; public boolean mIsRestrictive = false; private int[] cacheSides; @@ -204,8 +205,11 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE @Override public void onPostTick(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { super.onPostTick(aBaseMetaTileEntity, aTick); - if (aBaseMetaTileEntity.isServerSide() && aTick % 10 == 0) { - if (aTick % mTickTime == 0) mTransferredItems = 0; + if (aBaseMetaTileEntity.isServerSide() && (aTick - mCurrentTransferStartTick) % 10 == 0) { + if ((aTick - mCurrentTransferStartTick) % mTickTime == 0) { + mTransferredItems = 0; + mCurrentTransferStartTick = 0; + } if (!GT_Mod.gregtechproxy.gt6Pipe || mCheckConnections) checkConnections(); @@ -323,6 +327,7 @@ public class GT_MetaPipeEntity_Item extends MetaPipeEntity implements IMetaTileE @Override public boolean incrementTransferCounter(int aIncrement) { + if (mTransferredItems == 0) mCurrentTransferStartTick = getBaseMetaTileEntity().getTimer(); mTransferredItems += aIncrement; return pipeCapacityCheck(); } -- cgit