diff options
| author | shedaniel <daniel@shedaniel.me> | 2022-06-11 01:13:58 +0800 |
|---|---|---|
| committer | shedaniel <daniel@shedaniel.me> | 2022-06-11 01:13:58 +0800 |
| commit | 92a438eef6f217d7b2d3ee21c6efb68ac2498d0a (patch) | |
| tree | ad45925f49339f39494455a62e991ae2573fd817 /runtime/src/main/java/me/shedaniel/rei/impl/common | |
| parent | b99ba98ffeaff540a15dd7b188a9793539fd2bb7 (diff) | |
| parent | 0e2a66156d69bb6d8d37a1c05f59abde42d62ebc (diff) | |
| download | RoughlyEnoughItems-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.java | 20 |
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()); } |
