From 068a78b6cfd88fec8af0d9a4edb81ad026ffabb2 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Fri, 21 Oct 2022 23:32:36 +0800 Subject: Fix shedaniel/REIPluginCompatibilities-Issues#15 --- .../me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java index cba9a4bb1..67296e755 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java @@ -23,6 +23,7 @@ package me.shedaniel.rei.impl.client.gui.widget; +import com.google.common.base.Suppliers; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.math.Matrix4f; import me.shedaniel.math.Point; @@ -54,6 +55,7 @@ import org.jetbrains.annotations.ApiStatus; import java.util.Collection; import java.util.List; +import java.util.concurrent.TimeUnit; import java.util.function.Supplier; @ApiStatus.Internal @@ -68,9 +70,14 @@ public final class InternalWidgets { AutoCraftingEvaluator.evaluateAutoCrafting(true, Screen.hasShiftDown(), displaySupplier.get(), idsSupplier); }); return new DelegateWidget(autoCraftingButton) { + final Supplier result = Suppliers.memoizeWithExpiration( + () -> AutoCraftingEvaluator.evaluateAutoCrafting(false, false, displaySupplier.get(), idsSupplier), + 1000, TimeUnit.MILLISECONDS + ); + @Override public void render(PoseStack poses, int mouseX, int mouseY, float delta) { - AutoCraftingEvaluator.AutoCraftingResult result = AutoCraftingEvaluator.evaluateAutoCrafting(false, false, displaySupplier.get(), idsSupplier); + AutoCraftingEvaluator.AutoCraftingResult result = this.result.get(); autoCraftingButton.setEnabled(result.successful); autoCraftingButton.setTint(result.tint); -- cgit