aboutsummaryrefslogtreecommitdiff
path: root/runtime-engine/views/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'runtime-engine/views/src/main/java')
-rw-r--r--runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java11
-rw-r--r--runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java24
2 files changed, 21 insertions, 14 deletions
diff --git a/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java b/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java
index 1ba0b9e4f..3483b1ee3 100644
--- a/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java
+++ b/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java
@@ -53,7 +53,8 @@ import me.shedaniel.rei.api.common.transfer.info.stack.SlotAccessor;
import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.api.common.util.EntryIngredients;
import me.shedaniel.rei.api.common.util.EntryStacks;
-import me.shedaniel.rei.impl.client.gui.widget.AutoCraftingEvaluator;
+import me.shedaniel.rei.impl.client.ClientInternals;
+import me.shedaniel.rei.impl.client.provider.AutoCraftingEvaluator;
import me.shedaniel.rei.impl.client.util.CrashReportUtils;
import me.shedaniel.rei.impl.client.view.craftable.CraftableFilter;
import me.shedaniel.rei.impl.common.InternalLogger;
@@ -319,11 +320,11 @@ public class ViewsImpl implements Views {
Set<Display> applicableDisplays = new LinkedHashSet<>();
for (Display display : displays) {
- AutoCraftingEvaluator.AutoCraftingResult result = AutoCraftingEvaluator.evaluateAutoCrafting(false, false, display, null);
+ AutoCraftingEvaluator.Result result = ClientInternals.getAutoCraftingEvaluator(display).get();
- if (result.successful) {
+ if (result.isSuccessful()) {
successfulDisplays.add(display);
- } else if (result.hasApplicable) {
+ } else if (result.isApplicable()) {
applicableDisplays.add(display);
}
}
@@ -451,7 +452,7 @@ public class ViewsImpl implements Views {
int slotsCraftable = 0;
boolean containsNonEmpty = false;
List<EntryIngredient> requiredInput = display.getRequiredEntries();
- Long2LongMap invCount = new Long2LongOpenHashMap(info == null ? CraftableFilter.INSTANCE.getInvStacks() : Long2LongMaps.EMPTY_MAP);
+ Long2LongMap invCount = new Long2LongOpenHashMap(info == null ? CraftableFilter.getInvStacks() : Long2LongMaps.EMPTY_MAP);
for (SlotAccessor inputSlot : inputSlots) {
ItemStack stack = inputSlot.getItemStack();
diff --git a/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java b/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java
index f004bd0ed..56be8000c 100644
--- a/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java
+++ b/runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java
@@ -32,6 +32,8 @@ import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.common.entry.comparison.ComparisonContext;
import me.shedaniel.rei.api.common.entry.type.EntryDefinition;
import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes;
+import me.shedaniel.rei.api.common.plugins.PluginManager;
+import me.shedaniel.rei.impl.client.provider.OverlayTicker;
import net.minecraft.client.Minecraft;
import net.minecraft.core.NonNullList;
import net.minecraft.world.inventory.AbstractContainerMenu;
@@ -41,12 +43,16 @@ import org.jetbrains.annotations.ApiStatus;
import java.util.Optional;
-public class CraftableFilter {
- public static final CraftableFilter INSTANCE = new CraftableFilter();
- private Long2LongMap invStacks = new Long2LongOpenHashMap();
- private Long2LongMap containerStacks = new Long2LongOpenHashMap();
+public class CraftableFilter implements OverlayTicker {
+ private static Long2LongMap invStacks = new Long2LongOpenHashMap();
+ private static Long2LongMap containerStacks = new Long2LongOpenHashMap();
+ @Override
public void tick() {
+ if (Minecraft.getInstance().player == null || PluginManager.areAnyReloading() || Minecraft.getInstance().player.tickCount % 5 != 0) {
+ return;
+ }
+
Optional<ScreenOverlay> overlay = REIRuntime.getInstance().getOverlay();
if (overlay.isEmpty() || overlay.get().isSearchReloadQueued()) return;
if (!ConfigManager.getInstance().isCraftableOnlyEnabled()) return;
@@ -57,7 +63,7 @@ public class CraftableFilter {
throwable.printStackTrace();
currentStacks = Long2LongMaps.EMPTY_MAP;
}
- if (!currentStacks.equals(this.invStacks)) {
+ if (!currentStacks.equals(CraftableFilter.invStacks)) {
invStacks = currentStacks;
overlay.ifPresent(ScreenOverlay::queueReloadSearch);
return;
@@ -69,18 +75,18 @@ public class CraftableFilter {
throwable.printStackTrace();
currentStacks = Long2LongMaps.EMPTY_MAP;
}
- if (!currentStacks.equals(this.containerStacks)) {
+ if (!currentStacks.equals(CraftableFilter.containerStacks)) {
containerStacks = currentStacks;
overlay.ifPresent(ScreenOverlay::queueReloadSearch);
}
}
- public Long2LongMap getInvStacks() {
+ public static Long2LongMap getInvStacks() {
return invStacks;
}
@ApiStatus.Internal
- public Long2LongMap getInventoryItemsTypes() {
+ public static Long2LongMap getInventoryItemsTypes() {
EntryDefinition<ItemStack> definition;
try {
definition = VanillaEntryTypes.ITEM.getDefinition();
@@ -99,7 +105,7 @@ public class CraftableFilter {
}
@ApiStatus.Internal
- public Long2LongMap getContainerItemsTypes() {
+ public static Long2LongMap getContainerItemsTypes() {
EntryDefinition<ItemStack> definition;
try {
definition = VanillaEntryTypes.ITEM.getDefinition();