diff options
author | Harry <harryyunull@gmail.com> | 2023-07-09 10:26:47 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-09 16:26:47 +0200 |
commit | f2f832546ba1d87c3c32e85eff3415f7f99c072a (patch) | |
tree | 7b61a1cf4da48c4e05c205ddce6d7ff6bf39eb4e /src/main/java/gregtech/api/metatileentity/implementations | |
parent | 7afca0b302c15777c10c4ad47f3341c5d492193f (diff) | |
download | GT5-Unofficial-f2f832546ba1d87c3c32e85eff3415f7f99c072a.tar.gz GT5-Unofficial-f2f832546ba1d87c3c32e85eff3415f7f99c072a.tar.bz2 GT5-Unofficial-f2f832546ba1d87c3c32e85eff3415f7f99c072a.zip |
More frequent recipe checks after machine just shuts down (#2125)
* More frequent recipe checks after machine just shuts down
* spotless
* modify checking interval
Diffstat (limited to 'src/main/java/gregtech/api/metatileentity/implementations')
-rw-r--r-- | src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java index 7cefae41e5..1c93779f01 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_MultiBlockBase.java @@ -123,6 +123,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity @SideOnly(Side.CLIENT) protected GT_SoundLoop activitySoundLoop; + private long mLastWorkingTick = 0; + protected static final byte INTERRUPT_SOUND_INDEX = 8; protected static final byte PROCESS_START_SOUND_INDEX = 1; @@ -452,6 +454,21 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity return result; } + private boolean shouldCheckRecipeThisTick(long aTick) { + // Perform more frequent recipe change after the machine just shuts down. + long timeElapsed = aTick - mLastWorkingTick; + + if (timeElapsed >= 100) return aTick % 100 == 0; + + return timeElapsed == 5 || timeElapsed == 12 + || timeElapsed == 20 + || timeElapsed == 30 + || timeElapsed == 40 + || timeElapsed == 55 + || timeElapsed == 70 + || timeElapsed == 85; + } + protected void runMachine(IGregTechTileEntity aBaseMetaTileEntity, long aTick) { if (mMaxProgresstime > 0 && doRandomMaintenanceDamage()) { if (onRunningTick(mInventory[1])) { @@ -481,6 +498,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity mProgresstime = 0; mMaxProgresstime = 0; mEfficiencyIncrease = 0; + mLastWorkingTick = aTick; if (aBaseMetaTileEntity.isAllowedToWork()) { checkRecipe(); } @@ -497,7 +515,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity } } } else { - if (aTick % 100 == 0 || aBaseMetaTileEntity.hasWorkJustBeenEnabled() + if (shouldCheckRecipeThisTick(aTick) || aBaseMetaTileEntity.hasWorkJustBeenEnabled() || aBaseMetaTileEntity.hasInventoryBeenModified()) { if (aBaseMetaTileEntity.isAllowedToWork()) { |