BloodMagic/src/main/java/WayofTime/bloodmagic/util/ItemStackWrapper.java
Nicholas Ignoffo 2fecb427fd Merge apibutnotreally with the main packages
Do not consider anything outside of the true API safe to use. And even then,
I'm changing things. Just wait. Please I beg you.
2018-02-15 18:49:07 -08:00

113 lines
2.9 KiB
Java

package WayofTime.bloodmagic.util;
import net.minecraft.block.Block;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import javax.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
@Deprecated
public class ItemStackWrapper {
public final Item item;
public final int stackSize;
public final int meta;
public NBTTagCompound nbtTag;
public ItemStackWrapper(Item item, int stackSize, int meta) {
this.item = item;
this.stackSize = stackSize;
this.meta = meta;
}
public ItemStackWrapper(Item item, int stackSize) {
this(item, stackSize, 0);
}
public ItemStackWrapper(Item item) {
this(item, 1, 0);
}
public ItemStackWrapper(Block block, int stackSize, int meta) {
this(Item.getItemFromBlock(block), stackSize, meta);
}
public ItemStackWrapper(Block block, int stackSize) {
this(block, stackSize, 0);
}
public ItemStackWrapper(Block block) {
this(block, 1, 0);
}
public ItemStackWrapper(BlockStack blockStack) {
this(blockStack.getBlock(), 1, blockStack.getMeta());
}
public ItemStack toStack() {
return new ItemStack(item, stackSize, meta);
}
public String getDisplayName() {
return toStack().getDisplayName();
}
@Override
public String toString() {
return stackSize + "x" + item.getUnlocalizedName() + "@" + this.meta;
}
public ItemStack toStack(int count) {
ItemStack result = new ItemStack(item, count, meta);
result.setTagCompound(nbtTag);
return result;
}
public Item getItem() {
return item;
}
public int getStackSize() {
return stackSize;
}
public int getMeta() {
return meta;
}
public NBTTagCompound getNbtTag() {
return nbtTag;
}
public void setNbtTag(NBTTagCompound nbtTag) {
this.nbtTag = nbtTag;
}
@Nullable
public static ItemStackWrapper getHolder(ItemStack stack) {
if (stack.isEmpty())
return null;
ItemStackWrapper wrapper = new ItemStackWrapper(stack.getItem(), stack.getCount(), stack.getItemDamage());
wrapper.setNbtTag(stack.getTagCompound());
return wrapper;
}
public static List<ItemStackWrapper> toWrapperList(List<ItemStack> itemStackList) {
List<ItemStackWrapper> wrapperList = new ArrayList<ItemStackWrapper>();
for (ItemStack stack : itemStackList)
wrapperList.add(ItemStackWrapper.getHolder(stack));
return wrapperList;
}
public static List<ItemStack> toStackList(List<ItemStackWrapper> wrapperList) {
List<ItemStack> stackList = new ArrayList<ItemStack>();
for (ItemStackWrapper wrapper : wrapperList)
stackList.add(wrapper.toStack());
return stackList;
}
}