diff options
| author | Unknown <shekwancheung0528@gmail.com> | 2019-03-05 22:32:29 +0800 |
|---|---|---|
| committer | Unknown <shekwancheung0528@gmail.com> | 2019-03-05 22:32:29 +0800 |
| commit | c9ac8fccef10d968faf9ec60d116694ef511cd14 (patch) | |
| tree | 68c7029a5dc73f0290772bd0220982f8f975d679 /src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java | |
| parent | 0924138bc88c1cfa8a3cee5089dc8792555e70fa (diff) | |
| download | RoughlyEnoughItems-c9ac8fccef10d968faf9ec60d116694ef511cd14.tar.gz RoughlyEnoughItems-c9ac8fccef10d968faf9ec60d116694ef511cd14.tar.bz2 RoughlyEnoughItems-c9ac8fccef10d968faf9ec60d116694ef511cd14.zip | |
v2.3.2
Diffstat (limited to 'src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java')
| -rw-r--r-- | src/main/java/me/shedaniel/rei/client/ItemRegistryImpl.java | 53 |
1 files changed, 53 insertions, 0 deletions
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<ItemStack> itemList = Lists.newLinkedList(); + + @Override + public List<ItemStack> getItemList() { + return Collections.unmodifiableList(itemList); + } + + @Deprecated + @Override + public List<ItemStack> getModifiableItemList() { + return itemList; + } + + @Override + public ItemStack[] getAllStacksFromItem(Item item) { + DefaultedList<ItemStack> list = DefaultedList.create(); + list.add(item.getDefaultStack()); + item.appendItemsForGroup(item.getItemGroup(), list); + TreeSet<ItemStack> stackSet = list.stream().collect(Collectors.toCollection(() -> new TreeSet<ItemStack>((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); + } + } + +} |
