aboutsummaryrefslogtreecommitdiff
path: root/runtime-engine/views/src/main
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-08-06 10:37:38 +0800
committershedaniel <daniel@shedaniel.me>2022-08-26 10:54:44 +0900
commitd3bfd79800aacfde6617d5430ead5fdda0a506fe (patch)
treeb8420034448bd3193c7f541f47a6387a9772d99f /runtime-engine/views/src/main
parent8c13c015031a0de865d2e767cd8e879754f803e2 (diff)
downloadRoughlyEnoughItems-d3bfd79800aacfde6617d5430ead5fdda0a506fe.tar.gz
RoughlyEnoughItems-d3bfd79800aacfde6617d5430ead5fdda0a506fe.tar.bz2
RoughlyEnoughItems-d3bfd79800aacfde6617d5430ead5fdda0a506fe.zip
More work okay
Diffstat (limited to 'runtime-engine/views/src/main')
-rw-r--r--runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/ViewsImpl.java12
-rw-r--r--runtime-engine/views/src/main/java/me/shedaniel/rei/impl/client/view/craftable/CraftableFilter.java29
2 files changed, 18 insertions, 23 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 c0e6381e9..1ba0b9e4f 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,9 +53,9 @@ 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.view.craftable.CraftableFilter;
import me.shedaniel.rei.impl.client.gui.widget.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;
import me.shedaniel.rei.impl.display.DisplaySpec;
import net.minecraft.CrashReport;
@@ -87,13 +87,13 @@ public class ViewsImpl implements Views {
BUILDER.set(builder);
try {
- return _buildMapFor(builder);
+ return ((ViewsImpl) Views.getInstance())._buildMapFor(builder);
} finally {
BUILDER.remove();
}
}
- private static Map<DisplayCategory<?>, List<DisplaySpec>> _buildMapFor(ViewSearchBuilder builder) {
+ private Map<DisplayCategory<?>, List<DisplaySpec>> _buildMapFor(ViewSearchBuilder builder) {
if (PluginManager.areAnyReloading()) {
InternalLogger.getInstance().info("Cancelled Views buildMap since plugins have not finished reloading.");
return Maps.newLinkedHashMap();
@@ -290,11 +290,13 @@ public class ViewsImpl implements Views {
return resultSpeced;
}
- public static boolean isRecipesFor(List<EntryStack<?>> stacks, Display display) {
+ @Override
+ public boolean isRecipesFor(List<EntryStack<?>> stacks, Display display) {
return checkUsages(stacks, display, display.getOutputEntries());
}
- public static boolean isUsagesFor(List<EntryStack<?>> stacks, Display display) {
+ @Override
+ public boolean isUsagesFor(List<EntryStack<?>> stacks, Display display) {
return checkUsages(stacks, display, display.getInputEntries());
}
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 f81d0c385..f004bd0ed 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
@@ -26,6 +26,9 @@ package me.shedaniel.rei.impl.client.view.craftable;
import it.unimi.dsi.fastutil.longs.Long2LongMap;
import it.unimi.dsi.fastutil.longs.Long2LongMaps;
import it.unimi.dsi.fastutil.longs.Long2LongOpenHashMap;
+import me.shedaniel.rei.api.client.REIRuntime;
+import me.shedaniel.rei.api.client.config.ConfigManager;
+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;
@@ -36,27 +39,17 @@ import net.minecraft.world.inventory.Slot;
import net.minecraft.world.item.ItemStack;
import org.jetbrains.annotations.ApiStatus;
+import java.util.Optional;
+
public class CraftableFilter {
public static final CraftableFilter INSTANCE = new CraftableFilter();
- private boolean dirty = false;
private Long2LongMap invStacks = new Long2LongOpenHashMap();
private Long2LongMap containerStacks = new Long2LongOpenHashMap();
- public void markDirty() {
- dirty = true;
- }
-
- public boolean wasDirty() {
- if (dirty) {
- dirty = false;
- return true;
- }
-
- return false;
- }
-
public void tick() {
- if (dirty) return;
+ Optional<ScreenOverlay> overlay = REIRuntime.getInstance().getOverlay();
+ if (overlay.isEmpty() || overlay.get().isSearchReloadQueued()) return;
+ if (!ConfigManager.getInstance().isCraftableOnlyEnabled()) return;
Long2LongMap currentStacks;
try {
currentStacks = getInventoryItemsTypes();
@@ -66,9 +59,9 @@ public class CraftableFilter {
}
if (!currentStacks.equals(this.invStacks)) {
invStacks = currentStacks;
- markDirty();
+ overlay.ifPresent(ScreenOverlay::queueReloadSearch);
+ return;
}
- if (dirty) return;
try {
currentStacks = getContainerItemsTypes();
@@ -78,7 +71,7 @@ public class CraftableFilter {
}
if (!currentStacks.equals(this.containerStacks)) {
containerStacks = currentStacks;
- markDirty();
+ overlay.ifPresent(ScreenOverlay::queueReloadSearch);
}
}