@Override public int getSlots() { return super.getSlots() - 5; }
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; }
/** * Dump the inventory of a citizen into the warehouse. * Go through all items and search the right chest to dump it in. * * @param inventoryCitizen the inventory of the citizen */ public void dumpInventoryIntoWareHouse(@NotNull final InventoryCitizen inventoryCitizen) { for (int i = 0; i < new InvWrapper(inventoryCitizen).getSlots(); i++) { final ItemStack stack = inventoryCitizen.getStackInSlot(i); if (ItemStackUtils.isEmpty(stack)) { continue; } @Nullable final TileEntity chest = searchRightChestForStack(stack); if (chest == null) { LanguageHandler.sendPlayersMessage(getColony().getMessageEntityPlayers(), COM_MINECOLONIES_COREMOD_WAREHOUSE_FULL); return; } InventoryUtils.transferItemStackIntoNextBestSlotInItemHandler(new InvWrapper(inventoryCitizen), i, chest.getCapability(ITEM_HANDLER_CAPABILITY, null)); } }
/** * Drop the equipment for this entity. */ @Override protected void dropEquipment(final boolean par1, final int par2) { //Drop actual inventory for (int i = 0; i < new InvWrapper(getInventoryCitizen()).getSlots(); i++) { final ItemStack itemstack = getCitizenData().getInventory().getStackInSlot(i); if (ItemStackUtils.getSize(itemstack) > 0) { citizenItemHandler.entityDropItem(itemstack); } } }
/** * Calculates the most efficient tool to use * on that block. * * @param target the Block type to mine * @return the slot with the best tool */ protected int getMostEfficientTool(@NotNull final Block target) { final IToolType toolType = WorkerUtil.getBestToolForBlock(target); final int required = WorkerUtil.getCorrectHavestLevelForBlock(target); int bestSlot = -1; int bestLevel = Integer.MAX_VALUE; @NotNull final InventoryCitizen inventory = worker.getInventoryCitizen(); final int maxToolLevel = worker.getCitizenColonyHandler().getWorkBuilding().getMaxToolLevel(); for (int i = 0; i < new InvWrapper(worker.getInventoryCitizen()).getSlots(); i++) { final ItemStack item = inventory.getStackInSlot(i); final int level = ItemStackUtils.getMiningLevel(item, toolType); if (level >= required && level < bestLevel && (toolType == ToolType.NONE || ItemStackUtils.verifyToolLevel(item, level, required, maxToolLevel))) { bestSlot = i; bestLevel = level; } } return bestSlot; }
for (int i = 0; i < new InvWrapper(worker.getInventoryCitizen()).getSlots(); i++)