From c9ac8fccef10d968faf9ec60d116694ef511cd14 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 5 Mar 2019 22:32:29 +0800 Subject: v2.3.2 --- .../me/shedaniel/rei/client/ItemRegistryImpl.java | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java (limited to 'src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java') diff --git a/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java b/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java new file mode 100644 index 000000000..f61c3d063 --- /dev/null +++ b/src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java @@ -0,0 +1,53 @@ +package me.shedaniel.rei.client; + +import com.google.common.collect.Lists; +import me.shedaniel.rei.api.ItemRegistry; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.item.Items; +import net.minecraft.util.DefaultedList; + +import java.util.Collections; +import java.util.List; +import java.util.TreeSet; +import java.util.stream.Collectors; + +public class ItemRegistryImpl implements ItemRegistry { + + private final List itemList = Lists.newLinkedList(); + + @Override + public List getItemList() { + return Collections.unmodifiableList(itemList); + } + + @Deprecated + @Override + public List getModifiableItemList() { + return itemList; + } + + @Override + public ItemStack[] getAllStacksFromItem(Item item) { + DefaultedList list = DefaultedList.create(); + list.add(item.getDefaultStack()); + item.appendItemsForGroup(item.getItemGroup(), list); + TreeSet stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet((p1, p2) -> ItemStack.areEqual(p1, p2) ? 0 : 1))); + return Lists.newArrayList(stackSet).toArray(new ItemStack[0]); + } + + @Override + public void registerItemStack(Item afterItem, ItemStack stack) { + if (!stack.isEmpty() && !alreadyContain(stack)) + if (afterItem == null || afterItem.equals(Items.AIR)) + itemList.add(stack); + else { + int last = itemList.size(); + for(int i = 0; i < itemList.size(); i++) + if (itemList.get(i).getItem().equals(afterItem)) + last = i + 1; + itemList.add(last, stack); + } + } + +} -- cgit