Exemplo n.º 1
0
 public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
   MovingObjectPosition movingobjectposition = func_40402_a(world, entityplayer, true);
   if (movingobjectposition == null) {
     return itemstack;
   }
   if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
     int i = movingobjectposition.blockX;
     int j = movingobjectposition.blockY;
     int k = movingobjectposition.blockZ;
     if (!world.canMineBlock(entityplayer, i, j, k)) {
       return itemstack;
     }
     if (!entityplayer.canPlayerEdit(i, j, k)) {
       return itemstack;
     }
     if (world.getBlockMaterial(i, j, k) == Material.water) {
       itemstack.stackSize--;
       if (itemstack.stackSize <= 0) {
         return new ItemStack(Item.potion);
       }
       if (!entityplayer.inventory.addItemStackToInventory(new ItemStack(Item.potion))) {
         entityplayer.dropPlayerItem(new ItemStack(Item.potion.shiftedIndex, 1, 0));
       }
     }
   }
   return itemstack;
 }
Exemplo n.º 2
0
 public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer entityplayer) {
   MovingObjectPosition movingobjectposition = func_40402_a(world, entityplayer, true);
   if (movingobjectposition == null) {
     return itemstack;
   }
   if (movingobjectposition.typeOfHit == EnumMovingObjectType.TILE) {
     int i = movingobjectposition.blockX;
     int j = movingobjectposition.blockY;
     int k = movingobjectposition.blockZ;
     if (!world.canMineBlock(entityplayer, i, j, k)) {
       return itemstack;
     }
     if (!entityplayer.func_35190_e(i, j, k)) {
       return itemstack;
     }
     if (world.getBlockMaterial(i, j, k) == Material.water
         && world.getBlockMetadata(i, j, k) == 0
         && world.isAirBlock(i, j + 1, k)) {
       world.setBlockWithNotify(i, j + 1, k, Block.waterlily.blockID);
       if (!entityplayer.capabilities.depleteBuckets) {
         itemstack.stackSize--;
       }
     }
   }
   return itemstack;
 }
Exemplo n.º 3
0
  /**
   * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack,
   * world, entityPlayer
   */
  public ItemStack onItemRightClick(
      ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    MovingObjectPosition var4 =
        this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true);

    if (var4 == null) {
      return par1ItemStack;
    } else {
      if (var4.typeOfHit == EnumMovingObjectType.TILE) {
        int var5 = var4.blockX;
        int var6 = var4.blockY;
        int var7 = var4.blockZ;

        if (!par2World.canMineBlock(par3EntityPlayer, var5, var6, var7)) {
          return par1ItemStack;
        }

        if (!par3EntityPlayer.canPlayerEdit(var5, var6, var7)) {
          return par1ItemStack;
        }

        if (par2World.getBlockMaterial(var5, var6, var7) == Material.water) {
          --par1ItemStack.stackSize;

          if (par1ItemStack.stackSize <= 0) {
            return new ItemStack(Item.potion);
          }

          if (!par3EntityPlayer.inventory.addItemStackToInventory(new ItemStack(Item.potion))) {
            par3EntityPlayer.dropPlayerItem(new ItemStack(Item.potion.shiftedIndex, 1, 0));
          }
        }
      }

      return par1ItemStack;
    }
  }
Exemplo n.º 4
0
  /**
   * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack,
   * world, entityPlayer
   */
  public ItemStack onItemRightClick(
      ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
    float var4 = 1.0F;
    double var5 =
        par3EntityPlayer.prevPosX
            + (par3EntityPlayer.posX - par3EntityPlayer.prevPosX) * (double) var4;
    double var7 =
        par3EntityPlayer.prevPosY
            + (par3EntityPlayer.posY - par3EntityPlayer.prevPosY) * (double) var4
            + 1.62D
            - (double) par3EntityPlayer.yOffset;
    double var9 =
        par3EntityPlayer.prevPosZ
            + (par3EntityPlayer.posZ - par3EntityPlayer.prevPosZ) * (double) var4;
    boolean var11 = this.isFull == 0;
    MovingObjectPosition var12 =
        this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, var11);

    if (var12 == null) {
      return par1ItemStack;
    } else {
      if (var12.typeOfHit == EnumMovingObjectType.TILE) {
        int var13 = var12.blockX;
        int var14 = var12.blockY;
        int var15 = var12.blockZ;

        if (!par2World.canMineBlock(par3EntityPlayer, var13, var14, var15)) {
          return par1ItemStack;
        }

        if (this.isFull == 0) {
          if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack)) {
            return par1ItemStack;
          }

          if (par2World.getBlockMaterial(var13, var14, var15) == Material.water
              && par2World.getBlockMetadata(var13, var14, var15) == 0) {
            par2World.setBlockToAir(var13, var14, var15);

            if (par3EntityPlayer.capabilities.isCreativeMode) {
              return par1ItemStack;
            }

            if (--par1ItemStack.stackSize <= 0) {
              return new ItemStack(Item.bucketWater);
            }

            if (!par3EntityPlayer.inventory.addItemStackToInventory(
                new ItemStack(Item.bucketWater))) {
              par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketWater.itemID, 1, 0));
            }

            return par1ItemStack;
          }

          if (par2World.getBlockMaterial(var13, var14, var15) == Material.lava
              && par2World.getBlockMetadata(var13, var14, var15) == 0) {
            par2World.setBlockToAir(var13, var14, var15);

            if (par3EntityPlayer.capabilities.isCreativeMode) {
              return par1ItemStack;
            }

            if (--par1ItemStack.stackSize <= 0) {
              return new ItemStack(Item.bucketLava);
            }

            if (!par3EntityPlayer.inventory.addItemStackToInventory(
                new ItemStack(Item.bucketLava))) {
              par3EntityPlayer.dropPlayerItem(new ItemStack(Item.bucketLava.itemID, 1, 0));
            }

            return par1ItemStack;
          }
        } else {
          if (this.isFull < 0) {
            return new ItemStack(Item.bucketEmpty);
          }

          if (var12.sideHit == 0) {
            --var14;
          }

          if (var12.sideHit == 1) {
            ++var14;
          }

          if (var12.sideHit == 2) {
            --var15;
          }

          if (var12.sideHit == 3) {
            ++var15;
          }

          if (var12.sideHit == 4) {
            --var13;
          }

          if (var12.sideHit == 5) {
            ++var13;
          }

          if (!par3EntityPlayer.canPlayerEdit(var13, var14, var15, var12.sideHit, par1ItemStack)) {
            return par1ItemStack;
          }

          if (this.tryPlaceContainedLiquid(par2World, var5, var7, var9, var13, var14, var15)
              && !par3EntityPlayer.capabilities.isCreativeMode) {
            return new ItemStack(Item.bucketEmpty);
          }
        }
      } else if (this.isFull == 0 && var12.entityHit instanceof EntityCow) {
        return new ItemStack(Item.bucketMilk);
      }

      return par1ItemStack;
    }
  }
Exemplo n.º 5
0
  public ItemStack onItemRightClick(ItemStack itemstack, World world, EntityPlayer player) {
    float var4 = 1.0F;
    double var5 = player.prevPosX + (player.posX - player.prevPosX) * (double) var4;
    double var7 =
        player.prevPosY
            + (player.posY - player.prevPosY) * (double) var4
            + 1.62D
            - (double) player.yOffset;
    double var9 = player.prevPosZ + (player.posZ - player.prevPosZ) * (double) var4;
    boolean var11 = this.isFull == 0;
    MovingObjectPosition mop = this.getMovingObjectPositionFromPlayer(world, player, var11);

    if (mop == null) {
      return itemstack;
    }
    if (mop.typeOfHit == EnumMovingObjectType.TILE) {
      int x = mop.blockX;
      int y = mop.blockY;
      int z = mop.blockZ;
      if (!world.canMineBlock(player, x, y, z)) {
        return itemstack;
      }
      if (isFull == 0) {
        int bID = world.getBlockId(x, y, z);
        if ((bID == Block.waterMoving.blockID || bID == Block.waterStill.blockID)
            && world.getBlockMetadata(x, y, z) == 0) {
          world.setBlockWithNotify(x, y, z, 0);
          return new ItemStack(mod_InfiTools.goldBucketWater);
        }
        if ((bID == Block.lavaMoving.blockID || bID == Block.lavaStill.blockID)
            && world.getBlockMetadata(x, y, z) == 0) {
          world.setBlockWithNotify(x, y, z, 0);
          return new ItemStack(mod_InfiTools.goldBucketLava);
        }
        if (bID == Block.sand.blockID) {
          world.setBlockWithNotify(x, y, z, 0);
          return new ItemStack(mod_InfiTools.goldBucketSand);
        }
        if (bID == Block.gravel.blockID) {
          world.setBlockWithNotify(x, y, z, 0);
          return new ItemStack(mod_InfiTools.goldBucketGravel);
        }
      } else {
        if (isFull < 0) {
          return new ItemStack(mod_InfiTools.goldBucketEmpty);
        }
        if (mop.sideHit == 0) {
          y--;
        }
        if (mop.sideHit == 1) {
          y++;
        }
        if (mop.sideHit == 2) {
          z--;
        }
        if (mop.sideHit == 3) {
          z++;
        }
        if (mop.sideHit == 4) {
          x--;
        }
        if (mop.sideHit == 5) {
          x++;
        }
        if (world.isAirBlock(x, y, z) || !world.getBlockMaterial(x, y, z).isSolid()) {
          if (world.worldProvider.isHellWorld && isFull == Block.waterMoving.blockID) {
            world.playSoundEffect(
                x + 0.5D,
                y + 0.5D,
                z + 0.5D,
                "random.fizz",
                0.5F,
                2.6F + (world.rand.nextFloat() - world.rand.nextFloat()) * 0.8F);
            for (int l = 0; l < 8; l++) {
              world.spawnParticle(
                  "largesmoke",
                  (double) x + Math.random(),
                  (double) y + Math.random(),
                  (double) z + Math.random(),
                  0.0D,
                  0.0D,
                  0.0D);
            }
          } else {
            world.setBlockAndMetadataWithNotify(x, y, z, isFull, 0);
          }
          return new ItemStack(mod_InfiTools.goldBucketEmpty);
        }
      }
    } else if (isFull == 0 && (mop.entityHit instanceof EntityCow)) {
      return new ItemStack(mod_InfiTools.goldBucketMilk);
    }
    return itemstack;
  }