List of usage examples for net.minecraftforge.items ItemStackHandler getStackInSlot
@Override
@Nonnull
public ItemStack getStackInSlot(int slot)
From source file:com.buuz135.industrial.tile.api.IAcceptsTransferAddons.java
License:Open Source License
default void workTransferAddon(TileEntity tileEntity, ItemStackHandler addons) { for (int i = 0; i < addons.getSlots(); i++) { ItemStack item = addons.getStackInSlot(i); if (!item.isEmpty() && item.getItem() instanceof TransferAddon) { TransferAddon addon = (TransferAddon) item.getItem(); if (addon.actionTransfer(tileEntity.getWorld(), tileEntity.getPos(), addon.getFacingFromMeta(item), addon.getTransferAmount(item))) break; }//from ww w .j av a 2s . com } }
From source file:com.buuz135.industrial.tile.generator.AbstractReactorTile.java
License:Open Source License
private boolean canInsert(int slot, ItemStackHandler handler, ItemStack stack) { if (getReactorsEntries().stream().noneMatch(entry -> entry.doesStackMatch(stack))) { return false; }//from ww w .j ava2 s . c o m if (handler.getStackInSlot(slot).isItemEqual(stack)) { return true; } for (int i = 0; i < handler.getSlots(); ++i) { if (stack.isItemEqual(handler.getStackInSlot(i))) return false; } return true; }
From source file:com.buuz135.industrial.tile.misc.BlackHoleControllerTile.java
License:Open Source License
public void dropItems() { for (ItemStackHandler items : new ItemStackHandler[] { input, storage, output }) { for (int i = 0; i < items.getSlots(); ++i) { ItemStack stack = items.getStackInSlot(i); if (!stack.isEmpty()) { InventoryHelper.spawnItemStack(this.getWorld(), pos.getX(), pos.getY(), pos.getZ(), stack); }/*from w w w. ja v a 2 s. c o m*/ } } }
From source file:com.buuz135.industrial.tile.mob.WitherBuilderTile.java
License:Open Source License
public ItemStack getDefaultOrFind(int i, ItemStackHandler handler, ItemStack filter) { if (handler.getStackInSlot(i).isItemEqual(filter)) return handler.getStackInSlot(i); for (ItemStackHandler h : new ItemStackHandler[] { top, middle, bottom }) { for (int s = 0; s < h.getSlots(); ++s) { if (h.getStackInSlot(s).isItemEqual(filter)) return h.getStackInSlot(s); }/*from w w w .ja v a 2s . c o m*/ } return ItemStack.EMPTY; }
From source file:com.buuz135.industrial.tile.world.LatexProcessingUnitTile.java
License:Open Source License
@Override protected void processFluidItems(ItemStackHandler fluidItems) { ItemStack stack = fluidItems.getStackInSlot(0); if (!stack.isEmpty()) { FluidStack fluid = FluidUtil.getFluidContained(stack); if (fluid != null) { if (fluid.getFluid() == FluidRegistry.WATER) ItemStackUtils.fillTankFromItem(fluidItems, waterTank); if (fluid.getFluid() == FluidsRegistry.LATEX) ItemStackUtils.fillTankFromItem(fluidItems, latexTank); }//from ww w.j a v a 2s . c om } }
From source file:com.buuz135.industrial.utils.ItemStackUtils.java
License:Open Source License
public static boolean isInventoryFull(ItemStackHandler handler) { for (int i = 0; i < handler.getSlots(); ++i) { if (handler.getStackInSlot(i).isEmpty()) return false; }//from www.j a va 2 s .c o m return true; }
From source file:com.buuz135.industrial.utils.ItemStackUtils.java
License:Open Source License
public static void fillItemFromTank(ItemStackHandler fluidItems, IFluidTank tank) { if (tank.getFluid() == null) return;/*from w w w . j av a 2 s .c om*/ ItemStack stack = fluidItems.getStackInSlot(0).copy(); if (!stack.isEmpty()) { if (stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) { FluidActionResult result = FluidUtil.tryFillContainer(stack, (IFluidHandler) tank, tank.getCapacity(), null, false); if (result.isSuccess() && (fluidItems.getStackInSlot(1).isEmpty() || (ItemHandlerHelper.canItemStacksStack(result.getResult(), fluidItems.getStackInSlot(1)) && result.getResult().getCount() + fluidItems.getStackInSlot(1).getCount() <= result .getResult().getMaxStackSize()))) { result = FluidUtil.tryFillContainer(stack, (IFluidHandler) tank, tank.getCapacity(), null, true); if (fluidItems.getStackInSlot(1).isEmpty()) { fluidItems.setStackInSlot(1, result.getResult()); } else { fluidItems.getStackInSlot(1).grow(1); } fluidItems.getStackInSlot(0).shrink(1); } } } }
From source file:com.buuz135.industrial.utils.ItemStackUtils.java
License:Open Source License
public static void fillTankFromItem(ItemStackHandler fluidItems, IFluidTank tank) { ItemStack stack = fluidItems.getStackInSlot(0).copy(); if (!stack.isEmpty()) { if (stack.hasCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null)) { IFluidHandlerItem cap = stack.getCapability(CapabilityFluidHandler.FLUID_HANDLER_ITEM_CAPABILITY, null);// w ww. j a v a 2 s.c o m FluidStack fluidStack = cap.drain(1000, false); if (fluidStack != null && tank.fill(fluidStack, false) == 0) return; FluidActionResult result = FluidUtil.tryEmptyContainer(stack, (IFluidHandler) tank, 1000, null, false); if (result.isSuccess() && (fluidItems.getStackInSlot(1).isEmpty() || (ItemHandlerHelper.canItemStacksStack(result.getResult(), fluidItems.getStackInSlot(1)) && result.getResult().getCount() + fluidItems.getStackInSlot(1).getCount() <= result .getResult().getMaxStackSize()))) { result = FluidUtil.tryEmptyContainer(stack, (IFluidHandler) tank, tank.getCapacity(), null, true); if (fluidItems.getStackInSlot(1).isEmpty()) { fluidItems.setStackInSlot(1, result.getResult()); } else { fluidItems.getStackInSlot(1).grow(1); } fluidItems.getStackInSlot(0).shrink(1); } } } }
From source file:com.gmail.socraticphoenix.forge.randore.compatability.waila.RandoresWailaHandler.java
License:Open Source License
@Override public List<String> getWailaBody(ItemStack itemStack, List<String> list, IWailaDataAccessor iWailaDataAccessor, IWailaConfigHandler iWailaConfigHandler) { Block block = iWailaDataAccessor.getBlock(); if (this.forgeMode && block instanceof CraftiniumForge) { NBTTagCompound randores = iWailaDataAccessor.getNBTData().getCompoundTag("randores"); int cookTime = randores.getInteger("cook_time"); int totalCookTime = randores.getInteger("cook_time_total"); int burnTime = randores.getInteger("burn_time"); if (burnTime > 0) { ItemStackHandler input = new ItemStackHandler(); ItemStackHandler output = new ItemStackHandler(); ItemStackHandler fuel = new ItemStackHandler(); input.deserializeNBT(randores.getCompoundTag("input")); fuel.deserializeNBT(randores.getCompoundTag("fuel")); output.deserializeNBT(randores.getCompoundTag("output")); ItemStack[] inventory = new ItemStack[3]; inventory[0] = input.getStackInSlot(0); inventory[1] = fuel.getStackInSlot(0); inventory[2] = output.getStackInSlot(0); for (int i = 0; i < inventory.length; i++) { if (inventory[i] == ItemStack.EMPTY) { inventory[i] = null; }//w w w. ja v a2 s .co m } String renderStr = ""; if (inventory[0] != null) { String name = inventory[0].getItem().getRegistryName().toString(); renderStr += SpecialChars.getRenderString("waila.stack", "1", name, String.valueOf(inventory[0].getCount()), String.valueOf(inventory[0].getItemDamage())); } else { renderStr += SpecialChars.getRenderString("waila.stack", "2"); } if (inventory[1] != null) { String name = inventory[1].getItem().getRegistryName().toString(); renderStr += SpecialChars.getRenderString("waila.stack", "1", name, String.valueOf(inventory[1].getCount()), String.valueOf(inventory[1].getItemDamage())); } else { renderStr += SpecialChars.getRenderString("waila.stack", "2"); } renderStr += SpecialChars.getRenderString("waila.progress", String.valueOf(cookTime), String.valueOf(totalCookTime)); if (inventory[2] != null) { String name = inventory[2].getItem().getRegistryName().toString(); renderStr += SpecialChars.getRenderString("waila.stack", "1", name, String.valueOf(inventory[2].getCount()), String.valueOf(inventory[2].getItemDamage())); } else { renderStr += SpecialChars.getRenderString("waila.stack", "2"); } list.add(renderStr); } } return list; }
From source file:daxum.temporalconvergence.block.BlockBrazier.java
License:Open Source License
@Override public void breakBlock(World world, BlockPos pos, IBlockState state) { if (world.getTileEntity(pos) instanceof TileBrazier) { ItemStackHandler invToDrop = ((TileBrazier) world.getTileEntity(pos)).getInventory(); for (int i = 0; i < invToDrop.getSlots(); i++) { InventoryHelper.spawnItemStack(world, pos.getX(), pos.getY(), pos.getZ(), invToDrop.getStackInSlot(i)); invToDrop.setStackInSlot(i, ItemStack.EMPTY); }/*from w w w . j av a 2s.c o m*/ } if (world.getBlockState(pos.down()).getBlock() instanceof BlockBrazierBottom) { world.setBlockToAir(pos.down()); } }