public void fillExport() { if (_exportable.empty()) return; if (_export == null) { _export = _exportable.take(); } else { int request = Math.min(SLOT_STACK_LIMIT, _export.getMaxStackSize()) - _export.stackSize; ItemStack taken = _exportable.take(_export, request); if (taken != null) _export.stackSize += taken.stackSize; else _export = _exportable.take(); } }
public Inventory clear() { _elements.clear(); _whitelist.clear(); _exportable.clear(); _export = null; _total = 0; return this; }
public void fromNbt(NBTTagCompound tag) { clear(); NBTTagList elements = tag.getTagList("elements", Constants.NBT.TAG_COMPOUND); for (int i = 0; i < elements.tagCount(); ++i) { NBTTagCompound element = elements.getCompoundTagAt(i); Key k = Key.fromNbt(element.getCompoundTag("key")); Element e = Element.fromNbt(element.getCompoundTag("element")); _elements.put(k, e); if (e.whitelisted()) _whitelist.add(k); } _exportable.fromNbt(tag.getCompoundTag("exportable")); if (tag.hasKey("export")) _export = ItemHelper.readItemStackFromNBT(tag.getCompoundTag("export")); _total = tag.getInteger("total"); }
public NBTTagCompound toNbt() { NBTTagCompound tag = new NBTTagCompound(); NBTTagList elements = new NBTTagList(); for (Map.Entry<Key, Element> e : _elements.entrySet()) { NBTTagCompound element = new NBTTagCompound(); element.setTag("key", e.getKey().toNbt()); element.setTag("element", e.getValue().toNbt()); elements.appendTag(element); } tag.setTag("elements", elements); tag.setTag("exportable", _exportable.toNbt()); if (_export != null) tag.setTag("export", ItemHelper.writeItemStackToNBT(_export, new NBTTagCompound())); tag.setInteger("total", _total); return tag; }
public ItemStack putExportable(ItemStack stack) { return _exportable.put(stack); }