2015-11-03 10:00:40 -08:00
|
|
|
package WayofTime.bloodmagic.api;
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
|
|
|
import net.minecraft.item.Item;
|
|
|
|
import net.minecraft.item.ItemStack;
|
2015-12-29 14:32:35 -05:00
|
|
|
import net.minecraft.nbt.NBTTagCompound;
|
2015-11-03 10:00:40 -08:00
|
|
|
|
2017-01-01 21:43:34 -08:00
|
|
|
import javax.annotation.Nullable;
|
2016-07-08 18:13:46 -04:00
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.List;
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public class ItemStackWrapper {
|
2015-11-03 10:00:40 -08:00
|
|
|
public final Item item;
|
|
|
|
public final int stackSize;
|
|
|
|
public final int meta;
|
2015-12-29 14:32:35 -05:00
|
|
|
public NBTTagCompound nbtTag;
|
2015-11-03 10:00:40 -08:00
|
|
|
|
2017-08-15 20:21:54 -07:00
|
|
|
public ItemStackWrapper(Item item, int stackSize, int meta) {
|
|
|
|
this.item = item;
|
|
|
|
this.stackSize = stackSize;
|
|
|
|
this.meta = meta;
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(Item item, int stackSize) {
|
2015-11-03 10:00:40 -08:00
|
|
|
this(item, stackSize, 0);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(Item item) {
|
2015-11-03 10:00:40 -08:00
|
|
|
this(item, 1, 0);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(Block block, int stackSize, int meta) {
|
2015-11-03 10:00:40 -08:00
|
|
|
this(Item.getItemFromBlock(block), stackSize, meta);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(Block block, int stackSize) {
|
2015-11-03 10:00:40 -08:00
|
|
|
this(block, stackSize, 0);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(Block block) {
|
2015-11-03 10:00:40 -08:00
|
|
|
this(block, 1, 0);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStackWrapper(BlockStack blockStack) {
|
2016-01-05 15:26:24 -08:00
|
|
|
this(blockStack.getBlock(), 1, blockStack.getMeta());
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStack toStack() {
|
2015-11-03 10:00:40 -08:00
|
|
|
return new ItemStack(item, stackSize, meta);
|
|
|
|
}
|
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public String getDisplayName() {
|
2015-11-03 10:00:40 -08:00
|
|
|
return toStack().getDisplayName();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2017-08-15 21:30:48 -07:00
|
|
|
public String toString() {
|
2015-11-03 10:00:40 -08:00
|
|
|
return stackSize + "x" + item.getUnlocalizedName() + "@" + this.meta;
|
|
|
|
}
|
2015-12-29 14:32:35 -05:00
|
|
|
|
2017-08-15 21:30:48 -07:00
|
|
|
public ItemStack toStack(int count) {
|
2015-12-29 14:32:35 -05:00
|
|
|
ItemStack result = new ItemStack(item, count, meta);
|
|
|
|
result.setTagCompound(nbtTag);
|
|
|
|
return result;
|
|
|
|
}
|
2016-07-08 18:13:46 -04:00
|
|
|
|
2017-08-15 20:21:54 -07:00
|
|
|
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;
|
|
|
|
}
|
2017-08-15 21:30:48 -07:00
|
|
|
|
|
|
|
@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;
|
|
|
|
}
|
2015-11-03 10:00:40 -08:00
|
|
|
}
|