package mods.ocminecart.common.util; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Map.Entry; public class ComputerCartData { private Map<Integer, ItemStack> components = new HashMap<Integer, ItemStack>(); private int tier = -1; private double energy = -1; private String emblem =""; public void saveItemData(NBTTagCompound nbt) { if (nbt != null){ NBTTagList list = new NBTTagList(); Iterator<Entry<Integer, ItemStack>> items = components.entrySet().iterator(); while(items.hasNext()){ Entry<Integer,ItemStack> e = items.next(); if(e.getValue()!=null){ NBTTagCompound slot = new NBTTagCompound(); slot.setTag("item", e.getValue().writeToNBT(new NBTTagCompound())); slot.setInteger("slot", e.getKey()); list.appendTag(slot); } } nbt.setTag("componentinv", list); nbt.setInteger("tier", tier); nbt.setDouble("energy", energy); nbt.setString("emblem", emblem); } } public void loadItemData(NBTTagCompound nbt) { if (nbt != null){ if (nbt.hasKey("componentinv")) { NBTTagList list = (NBTTagList) nbt.getTag("componentinv"); for (int i = 0; i < list.tagCount(); i += 1) { NBTTagCompound invslot = list.getCompoundTagAt(i); components.put(invslot.getInteger("slot"), ItemStack.loadItemStackFromNBT(invslot.getCompoundTag("item"))); } } if(nbt.hasKey("energy")) this.energy = nbt.getDouble("energy"); if(nbt.hasKey("tier")) this.tier = nbt.getInteger("tier"); if(nbt.hasKey("emblem")) this.emblem = nbt.getString("emblem"); } } public int getTier() { return tier; } public void setTier(int tier) { this.tier = tier; } public Map<Integer, ItemStack> getComponents() { return components; } public void setComponents(Map<Integer, ItemStack> components) { this.components = components; } public double getEnergy() { return energy; } public void setEnergy(double energy) { this.energy = energy; } public String getEmblem() { return emblem; } public void setEmblem(String emblem) { this.emblem = emblem; } }