private Set<EnumDirection> f(World world, BlockPosition blockposition) { int i = 1000; EnumSet enumset = EnumSet.noneOf(EnumDirection.class); Iterator iterator = EnumDirection.EnumDirectionLimit.HORIZONTAL.iterator(); while (iterator.hasNext()) { EnumDirection enumdirection = (EnumDirection) iterator.next(); BlockPosition blockposition1 = blockposition.shift(enumdirection); IBlockData iblockdata = world.getType(blockposition1); if ((!g(world, blockposition1, iblockdata)) && ((iblockdata.getBlock().getMaterial() != this.material) || (((Integer) iblockdata.get(LEVEL)).intValue() > 0))) { int j; int j; if (g(world, blockposition1.down(), world.getType(blockposition1.down()))) { j = a(world, blockposition1, 1, enumdirection.opposite()); } else { j = 0; } if (j < i) { enumset.clear(); } if (j <= i) { enumset.add(enumdirection); i = j; } } } return enumset; }
public boolean interactWith( ItemStack itemstack, EntityHuman entityhuman, World world, BlockPosition blockposition, EnumDirection enumdirection, float f, float f1, float f2) { if (world.isClientSide) { return true; } else { blockposition = blockposition.shift(enumdirection); if (!entityhuman.a(blockposition, enumdirection, itemstack)) { return false; } else { if (world.getType(blockposition).getBlock().getMaterial() == Material.AIR) { world.makeSound( (double) blockposition.getX() + 0.5D, (double) blockposition.getY() + 0.5D, (double) blockposition.getZ() + 0.5D, "item.fireCharge.use", 1.0F, (ItemFireball.g.nextFloat() - ItemFireball.g.nextFloat()) * 0.2F + 1.0F); world.setTypeUpdate(blockposition, Blocks.FIRE.getBlockData()); } if (!entityhuman.abilities.canInstantlyBuild) { --itemstack.count; } return true; } } }
private int a(World world, BlockPosition blockposition, int i, EnumDirection enumdirection) { int j = 1000; Iterator iterator = EnumDirection.EnumDirectionLimit.HORIZONTAL.iterator(); while (iterator.hasNext()) { EnumDirection enumdirection1 = (EnumDirection) iterator.next(); if (enumdirection1 != enumdirection) { BlockPosition blockposition1 = blockposition.shift(enumdirection1); IBlockData iblockdata = world.getType(blockposition1); if ((!g(world, blockposition1, iblockdata)) && ((iblockdata.getBlock().getMaterial() != this.material) || (((Integer) iblockdata.get(LEVEL)).intValue() > 0))) { if (!g(world, blockposition1.down(), iblockdata)) { return i; } if (i < 4) { int k = a(world, blockposition1, i + 1, enumdirection1.opposite()); if (k < j) { j = k; } } } } } return j; }
public void remove(World world, BlockPosition blockposition, IBlockData iblockdata) { if (((Boolean) iblockdata.get(POWERED)).booleanValue()) { world.applyPhysics(blockposition, this); EnumDirection enumdirection = ((EnumLeverPosition) iblockdata.get(FACING)).c(); world.applyPhysics(blockposition.shift(enumdirection.opposite()), this); } super.remove(world, blockposition, iblockdata); }
public void doPhysics(World var1, BlockPosition var2, IBlockData var3, Block var4) { EnumDirection var5 = (EnumDirection) var3.get(a); if (!var1.getType(var2.shift(var5.opposite())).getBlock().getMaterial().isBuildable()) { this.dropNaturallyForSure(var1, var2, var3, 0); var1.setAir(var2); } super.doPhysics(var1, var2, var3, var4); }
public boolean interactWith( ItemStack itemstack, EntityHuman entityhuman, World world, BlockPosition blockposition, EnumDirection enumdirection, float f, float f1, float f2) { IBlockData iblockdata = world.getType(blockposition); Block block = iblockdata.getBlock(); if (!block.a(world, blockposition)) { blockposition = blockposition.shift(enumdirection); } if (itemstack.count == 0) { return false; } else if (!entityhuman.a(blockposition, enumdirection, itemstack)) { return false; } else if (world.a(this.a, blockposition, false, enumdirection, (Entity) null, itemstack)) { int i = this.filterData(itemstack.getData()); IBlockData iblockdata1 = this.a.getPlacedState(world, blockposition, enumdirection, f, f1, f2, i, entityhuman); if (world.setTypeAndData(blockposition, iblockdata1, 3)) { iblockdata1 = world.getType(blockposition); if (iblockdata1.getBlock() == this.a) { a(world, entityhuman, blockposition, itemstack); this.a.postPlace(world, blockposition, iblockdata1, entityhuman, itemstack); } world.makeSound( (double) ((float) blockposition.getX() + 0.5F), (double) ((float) blockposition.getY() + 0.5F), (double) ((float) blockposition.getZ() + 0.5F), this.a.stepSound.getPlaceSound(), (this.a.stepSound.getVolume1() + 1.0F) / 2.0F, this.a.stepSound.getVolume2() * 0.8F); --itemstack.count; } return true; } else { return false; } }
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 interact( World world, BlockPosition blockposition, IBlockData iblockdata, EntityHuman entityhuman, EnumDirection enumdirection, float f, float f1, float f2) { if (world.isClientSide) { return true; } boolean powered = ((Boolean) iblockdata.get(POWERED)).booleanValue(); org.bukkit.block.Block block = world .getWorld() .getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ()); int old = powered ? 15 : 0; int current = !powered ? 15 : 0; BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, old, current); world.getServer().getPluginManager().callEvent(eventRedstone); if ((eventRedstone.getNewCurrent() > 0 ? 1 : 0) != (powered ? 0 : 1)) { return true; } iblockdata = iblockdata.a(POWERED); world.setTypeAndData(blockposition, iblockdata, 3); world.makeSound( blockposition.getX() + 0.5D, blockposition.getY() + 0.5D, blockposition.getZ() + 0.5D, "random.click", 0.3F, ((Boolean) iblockdata.get(POWERED)).booleanValue() ? 0.6F : 0.5F); world.applyPhysics(blockposition, this); EnumDirection enumdirection1 = ((EnumLeverPosition) iblockdata.get(FACING)).c(); world.applyPhysics(blockposition.shift(enumdirection1.opposite()), this); 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); } } } }