aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-10-21 23:32:36 +0800
committershedaniel <daniel@shedaniel.me>2022-10-21 23:42:39 +0800
commit3ca86a00bcdcda148a18419365c31db79f8b02d4 (patch)
tree4e9626bb16723649bd71713e5f7761a1eec7a4dd /runtime/src/main/java/me/shedaniel
parent972d15b7ab1d20c2573ac0e8bcb81e4efd477175 (diff)
downloadRoughlyEnoughItems-3ca86a00bcdcda148a18419365c31db79f8b02d4.tar.gz
RoughlyEnoughItems-3ca86a00bcdcda148a18419365c31db79f8b02d4.tar.bz2
RoughlyEnoughItems-3ca86a00bcdcda148a18419365c31db79f8b02d4.zip
Fix shedaniel/REIPluginCompatibilities-Issues#15
Diffstat (limited to 'runtime/src/main/java/me/shedaniel')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/InternalWidgets.java9
1 files changed, 8 insertions, 1 deletions
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 a2eb4894e..c717d05d5 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;
@@ -52,6 +53,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
@@ -66,9 +68,14 @@ public final class InternalWidgets {
AutoCraftingEvaluator.evaluateAutoCrafting(true, Screen.hasShiftDown(), displaySupplier.get(), idsSupplier);
});
return new DelegateWidget(autoCraftingButton) {
+ final Supplier<AutoCraftingEvaluator.AutoCraftingResult> 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);