public float c(float f) { BlockPosition blockposition = new BlockPosition(this.locX, 0.0D, this.locZ); if (this.world.isLoaded(blockposition)) { double d0 = (this.getBoundingBox().e - this.getBoundingBox().b) * 0.66D; int i = MathHelper.floor(this.locY + d0); return this.world.o(blockposition.up(i)); } else { return 0.0F; } }
protected void a(BlockPosition blockposition, Block block) { StepSound stepsound = block.stepSound; if (this.world.getType(blockposition.up()).getBlock() == Blocks.SNOW_LAYER) { stepsound = Blocks.SNOW_LAYER.stepSound; this.makeSound( stepsound.getStepSound(), stepsound.getVolume1() * 0.15F, stepsound.getVolume2()); } else if (!block.getMaterial().isLiquid()) { this.makeSound( stepsound.getStepSound(), stepsound.getVolume1() * 0.15F, stepsound.getVolume2()); } }
public boolean interactWith( ItemStack itemstack, EntityHuman entityhuman, World world, BlockPosition blockposition, EnumDirection enumdirection, float f, float f1, float f2) { if (!entityhuman.a(blockposition.shift(enumdirection), enumdirection, itemstack)) { return false; } else { IBlockData iblockdata = world.getType(blockposition); Block block = iblockdata.getBlock(); if (enumdirection != EnumDirection.DOWN && world.getType(blockposition.up()).getBlock().getMaterial() == Material.AIR) { if (block == Blocks.GRASS) { return this.a( itemstack, entityhuman, world, blockposition, Blocks.FARMLAND.getBlockData()); } if (block == Blocks.DIRT) { switch (ItemHoe.SyntheticClass_1.a[ ((BlockDirt.EnumDirtVariant) iblockdata.get(BlockDirt.VARIANT)).ordinal()]) { case 1: return this.a( itemstack, entityhuman, world, blockposition, Blocks.FARMLAND.getBlockData()); case 2: return this.a( itemstack, entityhuman, world, blockposition, Blocks.DIRT .getBlockData() .set(BlockDirt.VARIANT, BlockDirt.EnumDirtVariant.DIRT)); } } } return false; } }
public UseResult registerItemKey( ItemStack var1, EntityHuman var2, World var3, BlockPosition var4, EnumUsedHand var5, EnumDirection var6, float var7, float var8, float var9) { if (!var2.a(var4.shift(var6), var6, var1)) { return UseResult.CANT_USE; } else { IBlockData var10 = var3.getType(var4); Block var11 = var10.getBlock(); if (var6 != EnumDirection.DOWN && var3.getType(var4.up()).getBlock().getMaterial() == Material.AIR) { if (var11 == Blocks.GRASS || var11 == Blocks.GRASS_PATH) { return this.a(var1, var2, var3, var4, Blocks.FARMLAND.getBlockData()); } if (var11 == Blocks.DIRT) { switch (ItemHoe.SyntheticClass_1.a[ ((BlockDirt.EnumDirtVariant) var10.get(BlockDirt.VARIANT)).ordinal()]) { case 1: return this.a(var1, var2, var3, var4, Blocks.FARMLAND.getBlockData()); case 2: return this.a( var1, var2, var3, var4, Blocks.DIRT .getBlockData() .set(BlockDirt.VARIANT, BlockDirt.EnumDirtVariant.DIRT)); } } } return UseResult.CANT_USE; } }
public boolean generate(World var1, Random var2, BlockPosition var3) { if (this.a == null) { this.a = var2.nextBoolean() ? Blocks.BROWN_MUSHROOM_BLOCK : Blocks.RED_MUSHROOM_BLOCK; } int var4 = var2.nextInt(3) + 4; boolean var5 = true; if (var3.getY() >= 1 && var3.getY() + var4 + 1 < 256) { int var9; int var10; for (int var6 = var3.getY(); var6 <= var3.getY() + 1 + var4; ++var6) { byte var7 = 3; if (var6 <= var3.getY() + 3) { var7 = 0; } BlockPosition.MutableBlockPosition var8 = new BlockPosition.MutableBlockPosition(); for (var9 = var3.getX() - var7; var9 <= var3.getX() + var7 && var5; ++var9) { for (var10 = var3.getZ() - var7; var10 <= var3.getZ() + var7 && var5; ++var10) { if (var6 >= 0 && var6 < 256) { Block var11 = var1.getType(var8.setPosition(var9, var6, var10)).getBlock(); if (var11.getMaterial() != Material.AIR && var11.getMaterial() != Material.LEAVES) { var5 = false; } } else { var5 = false; } } } } if (!var5) { return false; } else { Block var19 = var1.getType(var3.down()).getBlock(); if (var19 != Blocks.DIRT && var19 != Blocks.GRASS && var19 != Blocks.MYCELIM) { return false; } else { int var20 = var3.getY() + var4; if (this.a == Blocks.RED_MUSHROOM_BLOCK) { var20 = var3.getY() + var4 - 3; } int var21; for (var21 = var20; var21 <= var3.getY() + var4; ++var21) { var9 = 1; if (var21 < var3.getY() + var4) { ++var9; } if (this.a == Blocks.BROWN_MUSHROOM_BLOCK) { var9 = 3; } var10 = var3.getX() - var9; int var23 = var3.getX() + var9; int var12 = var3.getZ() - var9; int var13 = var3.getZ() + var9; for (int var14 = var10; var14 <= var23; ++var14) { for (int var15 = var12; var15 <= var13; ++var15) { int var16 = 5; if (var14 == var10) { --var16; } else if (var14 == var23) { ++var16; } if (var15 == var12) { var16 -= 3; } else if (var15 == var13) { var16 += 3; } BlockHugeMushroom.class_a_in_class_aiw var17 = BlockHugeMushroom.class_a_in_class_aiw.a(var16); if (this.a == Blocks.BROWN_MUSHROOM_BLOCK || var21 < var3.getY() + var4) { if ((var14 == var10 || var14 == var23) && (var15 == var12 || var15 == var13)) { continue; } if (var14 == var3.getX() - (var9 - 1) && var15 == var12) { var17 = BlockHugeMushroom.class_a_in_class_aiw.a; } if (var14 == var10 && var15 == var3.getZ() - (var9 - 1)) { var17 = BlockHugeMushroom.class_a_in_class_aiw.a; } if (var14 == var3.getX() + (var9 - 1) && var15 == var12) { var17 = BlockHugeMushroom.class_a_in_class_aiw.c; } if (var14 == var23 && var15 == var3.getZ() - (var9 - 1)) { var17 = BlockHugeMushroom.class_a_in_class_aiw.c; } if (var14 == var3.getX() - (var9 - 1) && var15 == var13) { var17 = BlockHugeMushroom.class_a_in_class_aiw.g; } if (var14 == var10 && var15 == var3.getZ() + (var9 - 1)) { var17 = BlockHugeMushroom.class_a_in_class_aiw.g; } if (var14 == var3.getX() + (var9 - 1) && var15 == var13) { var17 = BlockHugeMushroom.class_a_in_class_aiw.i; } if (var14 == var23 && var15 == var3.getZ() + (var9 - 1)) { var17 = BlockHugeMushroom.class_a_in_class_aiw.i; } } if (var17 == BlockHugeMushroom.class_a_in_class_aiw.e && var21 < var3.getY() + var4) { var17 = BlockHugeMushroom.class_a_in_class_aiw.k; } if (var3.getY() >= var3.getY() + var4 - 1 || var17 != BlockHugeMushroom.class_a_in_class_aiw.k) { BlockPosition var18 = new BlockPosition(var14, var21, var15); if (!var1.getType(var18).getBlock().isFullBlock()) { this.setTypeAndData( var1, var18, this.a.getBlockData().set(BlockHugeMushroom.a, var17)); } } } } } for (var21 = 0; var21 < var4; ++var21) { Block var22 = var1.getType(var3.up(var21)).getBlock(); if (!var22.isFullBlock()) { this.setTypeAndData( var1, var3.up(var21), this.a .getBlockData() .set(BlockHugeMushroom.a, BlockHugeMushroom.class_a_in_class_aiw.j)); } } return true; } } } else { return false; } }
protected boolean j(double d0, double d1, double d2) { BlockPosition blockposition = new BlockPosition(d0, d1, d2); double d3 = d0 - (double) blockposition.getX(); double d4 = d1 - (double) blockposition.getY(); double d5 = d2 - (double) blockposition.getZ(); List list = this.world.a(this.getBoundingBox()); if (list.isEmpty() && !this.world.u(blockposition)) { return false; } else { byte b0 = 3; double d6 = 9999.0D; if (!this.world.u(blockposition.west()) && d3 < d6) { d6 = d3; b0 = 0; } if (!this.world.u(blockposition.east()) && 1.0D - d3 < d6) { d6 = 1.0D - d3; b0 = 1; } if (!this.world.u(blockposition.up()) && 1.0D - d4 < d6) { d6 = 1.0D - d4; b0 = 3; } if (!this.world.u(blockposition.north()) && d5 < d6) { d6 = d5; b0 = 4; } if (!this.world.u(blockposition.south()) && 1.0D - d5 < d6) { d6 = 1.0D - d5; b0 = 5; } float f = this.random.nextFloat() * 0.2F + 0.1F; if (b0 == 0) { this.motX = (double) (-f); } if (b0 == 1) { this.motX = (double) f; } if (b0 == 3) { this.motY = (double) f; } if (b0 == 4) { this.motZ = (double) (-f); } if (b0 == 5) { this.motZ = (double) f; } return true; } }
public UseResult interactWith( ItemStack var1, EntityHuman var2, World var3, BlockPosition var4, EnumUsedHand var5, EnumDirection var6, float var7, float var8, float var9) { if (var6 == EnumDirection.DOWN) { return UseResult.CANT_USE; } else { boolean var10 = var3.getType(var4).getBlock().isReplaceable(var3, var4); BlockPosition var11 = var10 ? var4 : var4.shift(var6); if (!var2.a(var11, var6, var1)) { return UseResult.CANT_USE; } else { BlockPosition var12 = var11.up(); boolean var13 = !var3.isEmpty(var11) && !var3.getType(var11).getBlock().isReplaceable(var3, var11); var13 |= !var3.isEmpty(var12) && !var3.getType(var12).getBlock().isReplaceable(var3, var12); if (var13) { return UseResult.CANT_USE; } else { double var14 = (double) var11.getX(); double var16 = (double) var11.getY(); double var18 = (double) var11.getZ(); List var20 = var3.getEntities( (Entity) null, (AxisAlignedBB) AxisAlignedBB.a( var14, var16, var18, var14 + 1.0D, var16 + 2.0D, var18 + 1.0D)); if (!var20.isEmpty()) { return UseResult.CANT_USE; } else { if (!var3.isClientSide) { var3.setAir(var11); var3.setAir(var12); EntityArmorStand var21 = new EntityArmorStand(var3, var14 + 0.5D, var16, var18 + 0.5D); float var22 = (float) MathHelper.floor( (MathHelper.clampAngle(var2.yaw - 180.0F) + 22.5F) / 45.0F) * 45.0F; var21.setPositionRotation(var14 + 0.5D, var16, var18 + 0.5D, var22, 0.0F); this.a(var21, var3.random); NBTTagCompound var23 = var1.getTag(); if (var23 != null && var23.hasOfType("EntityTag", 10)) { NBTTagCompound var24 = new NBTTagCompound(); var21.d(var24); var24.copyFrom(var23.getCompound("EntityTag")); var21.f(var24); } var3.addEntity((Entity) var21); } --var1.count; return UseResult.SUCCESS; } } } } }
public void b(World world, BlockPosition blockposition, IBlockData iblockdata, Random random) { org.bukkit.World bworld = world.getWorld(); Server server = world.getServer(); org.bukkit.block.Block source = bworld == null ? null : bworld.getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); int i = ((Integer) iblockdata.get(LEVEL)).intValue(); byte b0 = 1; if ((this.material == Material.LAVA) && (!world.worldProvider.n())) { b0 = 2; } int j = a(world); if (i > 0) { int l = -100; this.a = 0; EnumDirection enumdirection; for (Iterator iterator = EnumDirection.EnumDirectionLimit.HORIZONTAL.iterator(); iterator.hasNext(); l = a(world, blockposition.shift(enumdirection), l)) { enumdirection = (EnumDirection) iterator.next(); } int i1 = l + b0; if ((i1 >= 8) || (l < 0)) { i1 = -1; } if (e(world, blockposition.up()) >= 0) { int k = e(world, blockposition.up()); if (k >= 8) { i1 = k; } else { i1 = k + 8; } } if ((this.a >= 2) && (this.material == Material.WATER)) { IBlockData iblockdata1 = world.getType(blockposition.down()); if (iblockdata1.getBlock().getMaterial().isBuildable()) { i1 = 0; } else if ((iblockdata1.getBlock().getMaterial() == this.material) && (((Integer) iblockdata1.get(LEVEL)).intValue() == 0)) { i1 = 0; } } if ((this.material == Material.LAVA) && (i < 8) && (i1 < 8) && (i1 > i) && (random.nextInt(4) != 0)) { j *= 4; } if (i1 == i) { f(world, blockposition, iblockdata); } else { i = i1; if (i1 < 0) { world.setAir(blockposition); } else { iblockdata = iblockdata.set(LEVEL, Integer.valueOf(i1)); world.setTypeAndData(blockposition, iblockdata, 2); world.a(blockposition, this, j); world.applyPhysics(blockposition, this); } } } else { f(world, blockposition, iblockdata); } IBlockData iblockdata2 = world.getType(blockposition.down()); if (h(world, blockposition.down(), iblockdata2)) { BlockFromToEvent event = new BlockFromToEvent(source, BlockFace.DOWN); if (server != null) { server.getPluginManager().callEvent(event); } if (!event.isCancelled()) { if ((this.material == Material.LAVA) && (world.getType(blockposition.down()).getBlock().getMaterial() == Material.WATER)) { world.setTypeUpdate(blockposition.down(), Blocks.STONE.getBlockData()); fizz(world, blockposition.down()); return; } if (i >= 8) { flow(world, blockposition.down(), iblockdata2, i); } else { flow(world, blockposition.down(), iblockdata2, i + 8); } } } else if ((i >= 0) && ((i == 0) || (g(world, blockposition.down(), iblockdata2)))) { Set set = f(world, blockposition); int k = i + b0; if (i >= 8) { k = 1; } if (k >= 8) { return; } Iterator iterator1 = set.iterator(); while (iterator1.hasNext()) { EnumDirection enumdirection1 = (EnumDirection) iterator1.next(); BlockFromToEvent event = new BlockFromToEvent(source, CraftBlock.notchToBlockFace(enumdirection1)); if (server != null) { server.getPluginManager().callEvent(event); } if (!event.isCancelled()) { flow( world, blockposition.shift(enumdirection1), world.getType(blockposition.shift(enumdirection1)), k); } } } }