Exemplo n.º 1
0
  @Override
  public boolean onItemUse(
      ItemStack itemStack,
      EntityPlayer player,
      World world,
      int x,
      int y,
      int z,
      int side,
      float par8,
      float par9,
      float par10) {

    if (world.isRemote) {
      return true;
    }

    ForgeDirection dir = ForgeDirection.values()[side];
    int placeX = x + dir.offsetX;
    int placeY = y + dir.offsetY;
    int placeZ = z + dir.offsetZ;

    if (player.canPlayerEdit(placeX, placeY, placeZ, side, itemStack)
        && world.isAirBlock(placeX, placeY, placeZ)
        && PainterUtil.getSourceBlock(itemStack) != null) {

      world.setBlock(placeX, placeY, placeZ, EnderIO.blockConduitBundle);
      IConduitBundle bundle = (IConduitBundle) world.getTileEntity(placeX, placeY, placeZ);
      Block facadeID = PainterUtil.getSourceBlock(itemStack);
      int facadeMeta = PainterUtil.getSourceBlockMetadata(itemStack);
      facadeMeta = PainterUtil.adjustFacadeMetadata(facadeID, facadeMeta, side);
      bundle.setFacadeId(facadeID);
      bundle.setFacadeMetadata(facadeMeta);
      bundle.setFacadeType(FacadeType.values()[itemStack.getItemDamage()]);
      ConduitUtil.playStepSound(facadeID.stepSound, world, x, y, z);
      if (!player.capabilities.isCreativeMode) {
        itemStack.stackSize--;
      }
      return true;
    }

    return false;
  }