@Override public int getBlockCount(EntityPlayer player, ItemStack requestor, ItemStack stack, Block block, int meta) { if(requestor != null && requestor.getItem() == this) return 0; return ItemExchangeRod.getInventoryItemCount(player, new InvWrapper(player.getInventoryEnderChest()), stack, block, meta); }
@Override public boolean provideBlock(EntityPlayer player, ItemStack requestor, ItemStack stack, Block block, int meta, boolean doit) { if(requestor != null && requestor.getItem() == this) return false; ItemStack istack = ItemExchangeRod.removeFromInventory(player, new InvWrapper(player.getInventoryEnderChest()), stack, block, meta, false); if(!istack.isEmpty()) { boolean mana = ManaItemHandler.requestManaExact(stack, player, COST_PROVIDE, false); if(mana) { if(doit) { ManaItemHandler.requestManaExact(stack, player, COST_PROVIDE, true); ItemExchangeRod.removeFromInventory(player, new InvWrapper(player.getInventoryEnderChest()), stack, block, meta, true); } return true; } } return false; }
@Nonnull @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float xs, float ys, float zs) { TileEntity tile = world.getTileEntity(pos); if(tile != null) { if(!world.isRemote) { IItemHandler tileInv = null; if(tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side)) tileInv = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, side); else if(tile instanceof IInventory) tileInv = new InvWrapper((IInventory) tile); if(tileInv == null) return EnumActionResult.FAIL; IItemHandlerModifiable bagInv = (IItemHandlerModifiable) player.getHeldItem(hand).getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null); for(int i = 0; i < bagInv.getSlots(); i++) { ItemStack flower = bagInv.getStackInSlot(i); bagInv.setStackInSlot(i, ItemHandlerHelper.insertItemStacked(tileInv, flower, false)); } } return EnumActionResult.SUCCESS; } return EnumActionResult.PASS; }
public ItemHandlerFilter(TileGeneticFilter filter, EnumFacing facing) { this.filter = filter; this.facing = facing; this.itemHandler = new InvWrapper(filter); }
InventoryWrapperInventory(IInventory inventory) { this.inventory = inventory; if (inventory instanceof InventoryPlayer) { // Don't use PlayerMainInvWrapper to avoid stack animations. this.wrapper = new RangedWrapper(new InvWrapper(inventory), 0, ((InventoryPlayer) inventory).mainInventory.size()); } else { this.wrapper = new InvWrapper(inventory); } }
@NotNull public IItemHandler getItemHandlerCitizen() { return new InvWrapper(getInventoryCitizen()); }
/** * Returns the amount of a certain block in the inventory. * * @param block the block. * @param itemDamage the damage value * @return the quantity. */ public int getItemCountInInventory(final Block block, final int itemDamage) { return InventoryUtils.getItemCountInItemHandler(new InvWrapper(citizen.getInventoryCitizen()), block, itemDamage); }
/** * Checks if citizen has a certain block in the inventory. * * @param block the block. * @param itemDamage the damage value * @return true if so. */ public boolean hasItemInInventory(final Block block, final int itemDamage) { return InventoryUtils.hasItemInItemHandler(new InvWrapper(citizen.getInventoryCitizen()), block, itemDamage); }
/** * Checks if the lumberjack has logs in it's inventory. * * @return true if he has logs. */ private boolean hasLogs() { return InventoryUtils.hasItemInItemHandler(new InvWrapper(getInventory()), this::isStackLog); } }
@Override public IItemHandler getUpgradesInventory(ItemStack is) { return new InvWrapper(new InventoryPlain("configInventory", 0, 64)); } }
/** * Very simple action, straightly extract it from the furnace. * @param furnace the furnace to retrieve from. */ private void extractFromFurnace(final TileEntityFurnace furnace) { InventoryUtils.transferItemStackIntoNextFreeSlotInItemHandler( new InvWrapper(furnace), RESULT_SLOT, new InvWrapper(worker.getInventoryCitizen())); worker.getCitizenExperienceHandler().addExperience(BASE_XP_GAIN); this.incrementActionsDoneAndDecSaturation(); }
@Override public boolean hasMainWeapon() { return InventoryUtils.getFirstSlotOfItemHandlerContainingTool(new InvWrapper(getInventory()), ToolType.SWORD, 0, buildingGuards.getMaxToolLevel()) != -1; }
public MOTileEntityMachine(int upgradeCount) { components = new ArrayList<>(); upgrade_slots = new int[upgradeCount]; inventory = new TileEntityInventory(this, ""); for (EnumFacing facing : EnumFacing.VALUES) sidedWrappers[facing.ordinal()] = new SidedInvWrapper(this, facing); inventoryHandler = new InvWrapper(this); registerComponents(); RegisterSlots(inventory); watchers = new ArrayList<>(); }
if(scanInventory(new InvWrapper(inv), pstack)) entIdBuilder.add(e.getEntityId()); if(scanInventory(new InvWrapper(inv), pstack)) blockPosBuilder.appendTag(new NBTTagLong(pos_.toLong()));
@Override public IAIState decideWhatToDo() { final IAIState result = super.decideWhatToDo(); final BuildingCowboy building = getOwnBuilding(); final boolean hasBucket = InventoryUtils.hasItemInItemHandler(new InvWrapper(worker.getInventoryCitizen()), Items.BUCKET, 0); if (building != null && building.isMilkingCows() && result.equals(START_WORKING) && hasBucket) { return COWBOY_MILK; } return result; }
/** * Get's the slot in which the rod is in. * * @return slot number */ private int getRodSlot() { return InventoryUtils.getFirstSlotOfItemHandlerContainingTool(new InvWrapper(getInventory()), ToolType.FISHINGROD, TOOL_LEVEL_WOOD_OR_GOLD, getOwnBuilding().getMaxToolLevel()); }
/** * Get's the slot in which the hoe is in. * * @return slot number */ private int getHoeSlot() { return InventoryUtils.getFirstSlotOfItemHandlerContainingTool(new InvWrapper(getInventory()), ToolType.HOE, TOOL_LEVEL_WOOD_OR_GOLD, getWorkBuilding().getMaxToolLevel()); }
private int findSaplingSlot() { for (int slot = 0; slot < new InvWrapper(getInventory()).getSlots(); slot++) { final ItemStack stack = getInventory().getStackInSlot(slot); if (isCorrectSapling(stack)) { return slot; } } return -1; }
@Override public void updateServer(int tickCount) { if (tickCount % 40 == 0) { IInventory productInventory = getMultiblockLogic().getController().getFarmInventory().getProductInventory(); IItemHandler productItemHandler = new InvWrapper(productInventory); if (!InventoryUtil.moveOneItemToPipe(productItemHandler, tileCache, dumpDirections)) { InventoryUtil.moveItemStack(productItemHandler, inventoryCache.getAdjacentInventories()); } } }
private void dumpStash() { IInventory wasteInventory = getWasteInventory(); IItemHandler wasteItemHandler = new InvWrapper(wasteInventory); if (!InventoryUtil.moveOneItemToPipe(wasteItemHandler, getTileCache())) { EnumFacing powerSide = world.getBlockState(getPos()).getValue(BlockBase.FACING); Collection<IItemHandler> inventories = inventoryCache.getAdjacentInventoriesOtherThan(powerSide); InventoryUtil.moveItemStack(wasteItemHandler, inventories); } }