From 078a7800baa7ad01f268f53363ced60034811948 Mon Sep 17 00:00:00 2001 From: Sampsa <69092953+S4mpsa@users.noreply.github.com> Date: Mon, 29 Jul 2024 22:33:21 +0300 Subject: Spread multiblocks to 20 buckets to spread recipe checks around (#2789) * Add offset between 1 and 20 to every multiblock to spread recipeChecks around * Change to 100 buckets instead to have even distribution * Make random offset final --- .../implementations/GT_MetaTileEntity_MultiBlockBase.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/main/java/gregtech/api/metatileentity/implementations') 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 44e3e4bd52..f0f8c9f806 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 @@ -160,6 +160,8 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity protected GT_SoundLoop activitySoundLoop; private long mLastWorkingTick = 0; + private static final int CHECK_INTERVAL = 100; // How often should we check for a new recipe on an idle machine? + private final int randomTickOffset = (int) (Math.random() * CHECK_INTERVAL + 1); protected static final byte INTERRUPT_SOUND_INDEX = 8; protected static final byte PROCESS_START_SOUND_INDEX = 1; @@ -526,7 +528,7 @@ public abstract class GT_MetaTileEntity_MultiBlockBase extends MetaTileEntity // Perform more frequent recipe change after the machine just shuts down. long timeElapsed = aTick - mLastWorkingTick; - if (timeElapsed >= 100) return aTick % 100 == 0; + if (timeElapsed >= CHECK_INTERVAL) return (aTick + randomTickOffset) % CHECK_INTERVAL == 0; // Batch mode should be a lot less aggressive at recipe checking if (!isBatchModeEnabled()) { return timeElapsed == 5 || timeElapsed == 12 -- cgit