aboutsummaryrefslogtreecommitdiff
path: root/runtime/src/main/java/me/shedaniel/rei/impl/common
diff options
context:
space:
mode:
authorshedaniel <daniel@shedaniel.me>2022-06-11 01:13:58 +0800
committershedaniel <daniel@shedaniel.me>2022-06-11 01:13:58 +0800
commit92a438eef6f217d7b2d3ee21c6efb68ac2498d0a (patch)
treead45925f49339f39494455a62e991ae2573fd817 /runtime/src/main/java/me/shedaniel/rei/impl/common
parentb99ba98ffeaff540a15dd7b188a9793539fd2bb7 (diff)
parent0e2a66156d69bb6d8d37a1c05f59abde42d62ebc (diff)
downloadRoughlyEnoughItems-92a438eef6f217d7b2d3ee21c6efb68ac2498d0a.tar.gz
RoughlyEnoughItems-92a438eef6f217d7b2d3ee21c6efb68ac2498d0a.tar.bz2
RoughlyEnoughItems-92a438eef6f217d7b2d3ee21c6efb68ac2498d0a.zip
Merge remote-tracking branch 'origin/8.x-1.18.2' into 9.x-1.19
# Conflicts: # api/src/main/java/me/shedaniel/rei/api/client/registry/transfer/TransferHandler.java # default-plugin/src/main/java/me/shedaniel/rei/plugin/client/DefaultClientPlugin.java # fabric/src/main/java/me/shedaniel/rei/impl/client/gui/fabric/ScreenOverlayImplImpl.java # runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/AbstractDisplayViewingScreen.java # runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/AutoCraftingEvaluator.java # runtime/src/main/java/me/shedaniel/rei/impl/client/gui/widget/QueuedTooltip.java
Diffstat (limited to 'runtime/src/main/java/me/shedaniel/rei/impl/common')
-rw-r--r--runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java20
1 files changed, 18 insertions, 2 deletions
diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
index 1aa49902b..28baa75c1 100644
--- a/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
+++ b/runtime/src/main/java/me/shedaniel/rei/impl/common/entry/type/EntryRegistryImpl.java
@@ -36,6 +36,11 @@ import me.shedaniel.rei.api.client.overlay.ScreenOverlay;
import me.shedaniel.rei.api.client.plugins.REIClientPlugin;
import me.shedaniel.rei.api.client.registry.entry.EntryRegistry;
import me.shedaniel.rei.api.common.entry.EntryStack;
+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.EntryType;
+import me.shedaniel.rei.api.common.entry.type.EntryTypeRegistry;
+import me.shedaniel.rei.api.common.entry.type.VanillaEntryTypes;
import me.shedaniel.rei.api.common.registry.ReloadStage;
import me.shedaniel.rei.api.common.util.CollectionUtils;
import me.shedaniel.rei.api.common.util.EntryStacks;
@@ -172,8 +177,19 @@ public class EntryRegistryImpl implements EntryRegistry {
@Override
public List<ItemStack> appendStacksForItem(Item item) {
NonNullList<ItemStack> list = NonNullList.create();
- CreativeModeTab category = item.getItemCategory();
- item.fillItemCategory(MoreObjects.firstNonNull(category, CreativeModeTab.TAB_SEARCH), list);
+ LongSet set = new LongOpenHashSet();
+ EntryDefinition<ItemStack> itemDefinition = VanillaEntryTypes.ITEM.getDefinition();
+ for (CreativeModeTab tab : CreativeModeTab.TABS) {
+ if (tab != CreativeModeTab.TAB_HOTBAR && tab != CreativeModeTab.TAB_INVENTORY) {
+ NonNullList<ItemStack> tabList = NonNullList.create();
+ item.fillItemCategory(tab, tabList);
+ for (ItemStack stack : tabList) {
+ if (set.add(itemDefinition.hash(null, stack, ComparisonContext.EXACT))) {
+ list.add(stack);
+ }
+ }
+ }
+ }
if (list.isEmpty()) {
return Collections.singletonList(item.getDefaultInstance());
}