@Override public void onBlockClicked(World world, int x, int y, int z, EntityPlayer player) { TileEntityDoorController tileEntity = (TileEntityDoorController) world.getTileEntity(x, y, z); // If the user is not the owner, or the user is not in creative drop out. if (tileEntity.getOwner() != null) { if (tileEntity.getOwner().equals(player.getUniqueID().toString())) { this.setResistance(0F); this.setHardness(0F); } } }
/** Called when the block is placed in the world. */ @Override public void onBlockPlacedBy( World par1World, int x, int y, int z, EntityLivingBase par5EntityLivingBase, ItemStack par6ItemStack) { TileEntity te = par1World.getTileEntity(x, y, z); ((TileEntityDoorController) te).setOwner(par5EntityLivingBase.getUniqueID().toString()); ((TileEntityDoorController) te) .overrideTexture( ContentRegistry.DoorController, new ItemStack(Item.getItemFromBlock(ContentRegistry.DoorController)), ForgeDirection.getOrientation(1)); }
/** * From the specified side and block metadata retrieves the blocks texture. Args: side, metadata */ @Override @SideOnly(Side.CLIENT) public IIcon getIcon(IBlockAccess block, int x, int y, int z, int side) { // int metadata = block.getBlockMetadata(x, y, z); TileEntityDoorController te = (TileEntityDoorController) block.getTileEntity(x, y, z); IIcon thisBlockTextures[] = new IIcon[6]; if (te.DoorControllerCamo[0] != null) { te.overrideTexture(te.DoorControllerCamo[0]); } for (int getSide = 0; getSide < thisBlockTextures.length; getSide++) { if (te.blockTextures[getSide] != null) { if (side == getSide) { return te.blockTextures[getSide]; } } } return topIcon; }
@Override public boolean onBlockActivated( World world, int x, int y, int z, EntityPlayer player, int side, float clickX, float clickY, float clickZ) { TileEntityDoorController tileEntity = (TileEntityDoorController) world.getTileEntity(x, y, z); if (tileEntity == null || player.isSneaking()) { return false; } // If the user is not the owner, or the user is not in creative drop out. if (tileEntity.getOwner() != null) { if (!tileEntity.getOwner().equals(player.getUniqueID().toString()) && !player.capabilities.isCreativeMode) { if (!tileEntity.getOwner().isEmpty()) { return false; } } } // Change the block texture if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof ItemBlock) { Block block = Block.getBlockFromItem(player.getCurrentEquippedItem().getItem()); Item oldBlock = tileEntity.DoorControllerCamo[0].getItem(); if (block.isOpaqueCube() || block instanceof BlockGlass || block instanceof BlockStainedGlass) { if (!tileEntity .DoorControllerCamo[0] .getItem() .equals(player.getCurrentEquippedItem().getItem())) { if (player.capabilities.isCreativeMode) { tileEntity.overrideTexture( block, player.getCurrentEquippedItem().splitStack(0), ForgeDirection.getOrientation(side)); } else { tileEntity.overrideTexture( block, player.getCurrentEquippedItem().splitStack(1), ForgeDirection.getOrientation(side)); } world.scheduleBlockUpdate(x, y, z, tileEntity.block, 5); if (!world.isRemote) { ItemStack testAgainst = new ItemStack(oldBlock); if (!testAgainst .getItem() .equals(Item.getItemFromBlock(ContentRegistry.DoorController))) { EntityItem myItemEntity = new EntityItem(world, x, y, z, testAgainst); world.spawnEntityInWorld(myItemEntity); } } } } // Remove the block texture with the scrench } else if (player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() instanceof Wrench) { if (!world.isRemote) { if (!tileEntity .DoorControllerCamo[0] .getItem() .equals(Item.getItemFromBlock(ContentRegistry.DoorController))) { EntityItem myItemEntity = new EntityItem(world, x, y, z, tileEntity.DoorControllerCamo[0]); world.spawnEntityInWorld(myItemEntity); } } tileEntity.overrideTexture( ContentRegistry.DoorController, new ItemStack(Item.getItemFromBlock(ContentRegistry.DoorController)), ForgeDirection.getOrientation(side)); world.scheduleBlockUpdate(x, y, z, tileEntity.block, 5); } return true; }