Example usage for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY

List of usage examples for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY

Introduction

In this page you can find the example usage for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY.

Prototype

Capability ITEM_HANDLER_CAPABILITY

To view the source code for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY.

Click Source Link

Usage

From source file:blusunrize.immersiveengineering.common.blocks.BlockIETileProvider.java

@Override
public void getDrops(NonNullList<ItemStack> drops, IBlockAccess world, BlockPos pos, IBlockState state,
        int fortune)
//   public List<ItemStack> getDrops(IBlockAccess world, BlockPos pos, IBlockState state, int fortune)
{
    TileEntity tile = world.getTileEntity(pos);
    DimensionBlockPos dpos = new DimensionBlockPos(pos,
            world instanceof World ? ((World) world).provider.getDimension() : 0);
    if (tile == null && tempTile.containsKey(dpos))
        tile = tempTile.get(dpos);/*  w  ww. j  a  v a2  s  .c  om*/
    if (tile != null && (!(tile instanceof ITileDrop) || !((ITileDrop) tile).preventInventoryDrop())) {
        if (tile instanceof IIEInventory && ((IIEInventory) tile).getDroppedItems() != null) {
            for (ItemStack s : ((IIEInventory) tile).getDroppedItems())
                if (!s.isEmpty())
                    drops.add(s);
        } else if (tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null)) {
            IItemHandler h = tile.getCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
            if (h instanceof IEInventoryHandler)
                for (int i = 0; i < h.getSlots(); i++)
                    if (!h.getStackInSlot(i).isEmpty()) {
                        drops.add(h.getStackInSlot(i));
                        ((IEInventoryHandler) h).setStackInSlot(i, ItemStack.EMPTY);
                    }
        }
    }
    if (tile instanceof ITileDrop) {
        NonNullList<ItemStack> s = ((ITileDrop) tile).getTileDrops(harvesters.get(), state);
        drops.addAll(s);
    } else
        super.getDrops(drops, world, pos, state, fortune);

    tempTile.remove(dpos);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.conveyors.ConveyorExtract.java

private float getExtensionIntoBlock(TileEntity tile) {
    float extend = 0;
    if (tile == null || !tile.hasWorld())
        return extend;

    World world = tile.getWorld();/*from   w  ww.ja  v a  2  s  . co  m*/
    BlockPos neighbour = tile.getPos().offset(this.extractDirection);
    if (!world.isAirBlock(neighbour)) {
        IBlockState connected = world.getBlockState(neighbour);
        TileEntity connectedTile = world.getTileEntity(neighbour);
        if (connectedTile != null && connectedTile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY,
                this.extractDirection.getOpposite()))
            if (connected.getBlockFaceShape(world, neighbour,
                    this.extractDirection.getOpposite()) != BlockFaceShape.SOLID) {
                AxisAlignedBB aabb = connected.getBoundingBox(world, neighbour);
                switch (extractDirection) {
                case NORTH:
                    extend = (float) (1 - aabb.maxZ);
                    break;
                case SOUTH:
                    extend = (float) aabb.minZ;
                    break;
                case WEST:
                    extend = (float) (1 - aabb.maxX);
                    break;
                case EAST:
                    extend = (float) aabb.minX;
                    break;
                }
                if (extend > .25f)
                    return .25f;
                float round = extend % .0625f;
                if (round < extend)
                    extend = round + .0625f;
            }
    }
    return extend;
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.conveyors.ConveyorExtract.java

@Override
public void onUpdate(TileEntity tile, EnumFacing facing) {
    if (!tile.getWorld().isRemote) {
        if (this.transferCooldown > 0) {
            this.transferCooldown--;
        }/* ww w .j  a v  a 2s. c om*/
        if (!isPowered(tile) && this.transferCooldown <= 0) {
            World world = tile.getWorld();
            BlockPos neighbour = tile.getPos().offset(this.extractDirection);
            if (!world.isAirBlock(neighbour)) {
                TileEntity neighbourTile = world.getTileEntity(neighbour);
                if (neighbourTile != null && neighbourTile.hasCapability(
                        CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, this.extractDirection.getOpposite())) {
                    IItemHandler itemHandler = neighbourTile.getCapability(
                            CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, this.extractDirection.getOpposite());
                    for (int i = 0; i < itemHandler.getSlots(); i++) {
                        ItemStack extractItem = itemHandler.extractItem(i, 1, true);
                        if (!extractItem.isEmpty()) {
                            extractItem = itemHandler.extractItem(i, 1, false);
                            EntityItem entity = new EntityItem(world, tile.getPos().getX() + .5,
                                    tile.getPos().getY() + .1875, tile.getPos().getZ() + .5, extractItem);
                            entity.motionX = 0;
                            entity.motionY = 0;
                            entity.motionZ = 0;
                            world.spawnEntity(entity);
                            this.onItemDeployed(tile, entity, facing);
                            this.transferCooldown = this.transferTickrate;
                            return;
                        }
                    }
                }
            }
        }
    }
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityArcFurnace.java

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
    if ((pos == 2 || pos == 22 || pos == 86 || pos == 88)
            && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
        return master() != null;
    return super.hasCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityArcFurnace.java

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
    if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
        TileEntityArcFurnace master = master();
        if (master == null)
            return null;
        if (pos == 2)
            return (T) master.outputHandler;
        else if (pos == 22)
            return (T) master.slagHandler;
        else if (pos == (mirrored ? 88 : 86))
            return (T) master.inputHandler;
        else if (pos == (mirrored ? 86 : 88))
            return (T) master.additiveHandler;
    }// w  w  w. j a v a 2  s .c o  m
    return super.getCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityAssembler.java

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
    if ((pos == 10 || pos == 16) && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
        return ((pos == 10 && facing == this.facing.getOpposite()) || (pos == 16 && facing == this.facing))
                && master() != null;
    return super.hasCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityAssembler.java

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
    if ((pos == 10 || pos == 16) && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
        TileEntityAssembler master = master();
        if (master == null)
            return null;
        if (pos == 10 && facing == this.facing.getOpposite())
            return (T) master.insertionHandler;
        if (pos == 16 && facing == this.facing)
            return (T) master.extractionHandler;
        return null;
    }/*from  ww w .ja v a  2 s.co  m*/
    return super.getCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityAutoWorkbench.java

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
    if (pos == 9 && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
        return master() != null;
    return super.hasCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityAutoWorkbench.java

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
    if (pos == 9 && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
        TileEntityAutoWorkbench master = master();
        if (master == null)
            return null;
        return (T) master.insertionHandler;
    }//from  ww w . ja  v a2 s  . c om
    return super.getCapability(capability, facing);
}

From source file:blusunrize.immersiveengineering.common.blocks.metal.TileEntityBelljar.java

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
    if (getGuiMaster() != null) {
        if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
            return dummy == 0 ? (facing == null || facing.getAxis() != this.facing.rotateY().getAxis())
                    : dummy == 1 && (facing == null || facing == this.facing.getOpposite());
        else if (capability == CapabilityFluidHandler.FLUID_HANDLER_CAPABILITY)
            return dummy == 0 && (facing == null || facing.getAxis() != this.facing.rotateY().getAxis());
    }/* w w  w . ja v a2s  .  com*/
    return super.hasCapability(capability, facing);
}