List of usage examples for net.minecraftforge.items IItemHandler IItemHandler
IItemHandler
From source file:de.ellpeck.actuallyadditions.mod.tile.TileEntityItemViewer.java
public TileEntityItemViewer() { super("itemViewer"); this.itemHandler = new IItemHandler() { @Override//from ww w. j a va 2 s . co m public int getSlots() { int size = 0; List<GenericItemHandlerInfo> infos = TileEntityItemViewer.this.getItemHandlerInfos(); if (infos != null) { for (GenericItemHandlerInfo info : infos) { for (IItemHandler handler : info.handlers) { size += handler.getSlots(); } } } return size; } @Override public ItemStack getStackInSlot(int slot) { SpecificItemHandlerInfo handler = TileEntityItemViewer.this.getSwitchedIndexHandler(slot); if (handler != null) { return handler.handler.getStackInSlot(handler.switchedIndex); } return StackUtil.getNull(); } @Override public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { SpecificItemHandlerInfo info = TileEntityItemViewer.this.getSwitchedIndexHandler(slot); if (info != null && TileEntityItemViewer.this.isWhitelisted(info, stack, false)) { ItemStack inserted = info.handler.insertItem(info.switchedIndex, stack, simulate); if (!ItemStack.areItemStacksEqual(inserted, stack)) { TileEntityItemViewer.this.markDirty(); } return inserted; } return stack; } @Override public ItemStack extractItem(int slot, int amount, boolean simulate) { ItemStack stackIn = this.getStackInSlot(slot); if (StackUtil.isValid(stackIn)) { SpecificItemHandlerInfo info = TileEntityItemViewer.this.getSwitchedIndexHandler(slot); if (info != null && TileEntityItemViewer.this.isWhitelisted(info, stackIn, true)) { ItemStack extracted = info.handler.extractItem(info.switchedIndex, amount, simulate); if (extracted != null) { TileEntityItemViewer.this.markDirty(); } return extracted; } } return StackUtil.getNull(); } @Override public int getSlotLimit(int slot) { SpecificItemHandlerInfo info = TileEntityItemViewer.this.getSwitchedIndexHandler(slot); if (info != null) { return info.handler.getSlotLimit(info.switchedIndex); } else { return 0; } } }; }
From source file:therogue.storehouse.multiblock.block.ItemCapabilityWrapper.java
License:Open Source License
@Override public IItemHandler getWrappedCapability(IItemHandler wrappable) { return new IItemHandler() { @Override/*from w w w . j a v a 2s. c o m*/ public int getSlots() { return wrappable.getSlots(); } @Override public ItemStack getStackInSlot(int slot) { return wrappable.getStackInSlot(slot); } @Override public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { return canInsert ? wrappable.insertItem(slot, stack, simulate) : stack; } @Override public ItemStack extractItem(int slot, int amount, boolean simulate) { return canExtract ? wrappable.extractItem(slot, amount, simulate) : ItemStack.EMPTY; } @Override public int getSlotLimit(int slot) { return wrappable.getSlotLimit(slot); } }; }