Example usage for net.minecraftforge.items ItemStackHandler getStackInSlot

List of usage examples for net.minecraftforge.items ItemStackHandler getStackInSlot

Introduction

In this page you can find the example usage for net.minecraftforge.items ItemStackHandler getStackInSlot.

Prototype

@Override
    @Nonnull
    public ItemStack getStackInSlot(int slot) 

Source Link

Usage

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());
    }
}