package zmaster587.advancedRocketry.rocket; import java.util.LinkedList; import java.util.List; import zmaster587.libVulpes.inventory.modules.IModularInventory; import zmaster587.libVulpes.inventory.modules.ModuleBase; import zmaster587.libVulpes.inventory.modules.ModuleSlotArray; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; public class GuidanceComputer implements IInventory, IModularInventory { ItemStack inv; private static final String destinationSlot = "destinationSlot"; @Override public int getSizeInventory() { return 1; } @Override public ItemStack getStackInSlot(int slot) { return inv; } @Override public ItemStack decrStackSize(int slot, int amount) { if(inv == null) return null; else { ItemStack stack; stack = inv.splitStack(amount); if(inv.stackSize == 0) inv = null; return stack; } } @Override public ItemStack getStackInSlotOnClosing(int slot) { return inv; } @Override public void setInventorySlotContents(int slot, ItemStack stack) { inv = stack; } @Override public String getModularInventoryName() { return "tile.guidanceComputer.name"; } @Override public String getInventoryName() { return getModularInventoryName(); } @Override public boolean hasCustomInventoryName() { return false; } @Override public int getInventoryStackLimit() { return 1; } @Override public void markDirty() { } @Override public boolean isUseableByPlayer(EntityPlayer player) { return true; } @Override public void openInventory() { } @Override public void closeInventory() { } @Override public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) { return true; } public void writeToNBT(NBTTagCompound nbt) { if(inv != null) { NBTTagCompound itemNbt = new NBTTagCompound(); inv.writeToNBT(itemNbt); nbt.setTag(destinationSlot, itemNbt); } } public void readFromNBT(NBTTagCompound nbt) { if(nbt.hasKey(destinationSlot)) ItemStack.loadItemStackFromNBT(nbt.getCompoundTag(destinationSlot)); } @Override public List<ModuleBase> getModules(int ID, EntityPlayer player) { List<ModuleBase> modules = new LinkedList<ModuleBase>(); modules.add(new ModuleSlotArray(8, 17, this, 0, 1)); return modules; } @Override public boolean canInteractWithContainer(EntityPlayer entity) { return true; } }