diff --git a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/blast_search_trees/MinecraftMixin.java b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/blast_search_trees/MinecraftMixin.java index 889803f2..5a9deb53 100644 --- a/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/blast_search_trees/MinecraftMixin.java +++ b/common/src/main/java/org/embeddedt/modernfix/common/mixin/perf/blast_search_trees/MinecraftMixin.java @@ -37,7 +37,7 @@ public abstract class MinecraftMixin { SearchRegistry.TreeBuilderSupplier tagSupplier = list -> provider.getSearchTree(true); this.searchRegistry.register(SearchRegistry.CREATIVE_NAMES, nameSupplier); this.searchRegistry.register(SearchRegistry.CREATIVE_TAGS, tagSupplier); - this.searchRegistry.register(SearchRegistry.RECIPE_COLLECTIONS, list -> new RecipeBookSearchTree(provider.getSearchTree(false))); + this.searchRegistry.register(SearchRegistry.RECIPE_COLLECTIONS, list -> new RecipeBookSearchTree(provider.getSearchTree(false), list)); ModernFixPlatformHooks.INSTANCE.registerCreativeSearchTrees(this.searchRegistry, nameSupplier, tagSupplier, this::populateSearchTree); // grab components for all key mappings in order to prevent them from being loaded off-thread later // this populates the LazyLoadedValues diff --git a/common/src/main/java/org/embeddedt/modernfix/searchtree/RecipeBookSearchTree.java b/common/src/main/java/org/embeddedt/modernfix/searchtree/RecipeBookSearchTree.java index f4bf16b4..6048f47e 100644 --- a/common/src/main/java/org/embeddedt/modernfix/searchtree/RecipeBookSearchTree.java +++ b/common/src/main/java/org/embeddedt/modernfix/searchtree/RecipeBookSearchTree.java @@ -15,10 +15,11 @@ import java.util.stream.Collectors; public class RecipeBookSearchTree extends DummySearchTree { private final SearchTree stackCollector; private Map> collectionsByItem = null; - private final List allCollections = new ArrayList<>(); + private final List allCollections; - public RecipeBookSearchTree(SearchTree stackCollector) { + public RecipeBookSearchTree(SearchTree stackCollector, List allCollections) { this.stackCollector = stackCollector; + this.allCollections = allCollections; } private Map> populateCollectionMap() { @@ -27,7 +28,7 @@ public class RecipeBookSearchTree extends DummySearchTree { collections = new Object2ObjectOpenHashMap<>(); Map> finalCollection = collections; for(RecipeCollection collection : allCollections) { - collection.getRecipes().stream().map(recipe -> recipe.getResultItem().getItem()).distinct().forEach(item -> { + collection.getRecipes().stream().map(recipe -> recipe.getResultItem(collection.registryAccess()).getItem()).distinct().forEach(item -> { finalCollection.computeIfAbsent(item, k -> new ArrayList<>()).add(collection); }); } @@ -36,16 +37,6 @@ public class RecipeBookSearchTree extends DummySearchTree { return collections; } - @Override - public void add(RecipeCollection pObj) { - this.allCollections.add(pObj); - } - - @Override - public void clear() { - this.allCollections.clear(); - } - @Override public void refresh() { this.collectionsByItem = null;