@Override public void closeInventory(EntityPlayer player) { markDirty(); }
@Override public ItemStack removeStackFromSlot(int index) { return decrStackSize(index, 1); }
public boolean getFlag(int flag) { return filterWrapper.getFilter().getFlag(flag); }
public String getInventoryName() { return filterWrapper.hasCustomName() ? filterWrapper.getName() : StringHelper.localize(ContainerSatchel.NAME); }
public void onSlotChanged() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (valid && !item.isEmpty() && item.getItem() == filterWrapper.getFilterItem()) { player.inventory.mainInventory.set(containerIndex, filterWrapper.getFilterStack()); } }
return false; ItemFilterWrapper wrapper = new ItemFilterWrapper(stack, getFilterSize(stack)); ItemStack eventItem = event.getItem().getItem(); if (wrapper.getFilter().matches(eventItem)) { if (isVoid(stack)) { eventItem.setCount(0);
public ItemStack getFilterStack() { return filterWrapper.getFilterStack(); }
@Override public boolean canInteractWith(EntityPlayer player) { onSlotChanged(); if (filterWrapper.getDirty() && !valid) { player.inventory.setItemStack(ItemStack.EMPTY); } return valid; }
@Override public void detectAndSendChanges() { ItemStack item = player.inventory.mainInventory.get(containerIndex); if (item.isEmpty() || item.getItem() != filterWrapper.getFilterItem()) { valid = false; return; } super.detectAndSendChanges(); }
public ContainerSatchelFilter(ItemStack stack, InventoryPlayer inventory) { player = inventory.player; containerIndex = inventory.currentItem; filterWrapper = new ItemFilterWrapper(stack, ItemSatchel.getFilterSize(stack)); filterIndex = ItemSatchel.getLevel(stack); int rows = MathHelper.clamp(filterIndex + 1, 1, 3); int slots = ItemSatchel.getFilterSize(stack); int rowSize = slots / rows; int xOffset = 62 - 9 * rowSize; int yOffset = 44 - 9 * rows; bindPlayerInventory(inventory); for (int i = 0; i < slots; i++) { addSlotToContainer(new SlotSatchelFilter(filterWrapper, i, xOffset + i % rowSize * 18, yOffset + i / rowSize * 18)); } }
public ItemFilterWrapper(ItemStack stack, int size) { if (stack.getTagCompound() == null) { stack.setTagCompound(new NBTTagCompound()); } this.stack = stack; this.filter = new ItemFilter(size); filter.deserializeNBT(stack.getTagCompound().getCompoundTag(CoreProps.FILTER)); markDirty(); }