List of usage examples for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY
Capability ITEM_HANDLER_CAPABILITY
To view the source code for net.minecraftforge.items CapabilityItemHandler ITEM_HANDLER_CAPABILITY.
Click Source Link
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); }