public void a(World world, int i, int j, int k, int l, EntityHuman entityhuman) { if (!world.isStatic) { if (entityhuman.bx() != null && entityhuman.bx().id == Item.SHEARS.id) { world.setData(i, j, k, l | 8, 4); } } }
private boolean g(World world, int i, int j, int k) { int l = world.getData(i, j, k); int i1 = l; if (l > 0) { for (int j1 = 0; j1 <= 3; ++j1) { int k1 = 1 << j1; if ((l & k1) != 0 && !this.c(world.getTypeId(i + Direction.a[j1], j, k + Direction.b[j1])) && (world.getTypeId(i, j + 1, k) != this.id || (world.getData(i, j + 1, k) & k1) == 0)) { i1 &= ~k1; } } } if (i1 == 0 && !this.c(world.getTypeId(i, j + 1, k))) { return false; } else { if (i1 != l) { world.setData(i, j, k, i1); } return true; } }
private void g(World world, int i, int j, int k) { if (!world.isStatic) { int l = world.getTypeId(i, j, k - 1); int i1 = world.getTypeId(i, j, k + 1); int j1 = world.getTypeId(i - 1, j, k); int k1 = world.getTypeId(i + 1, j, k); byte b0 = 3; if (Block.n[l] && !Block.n[i1]) { b0 = 3; } if (Block.n[i1] && !Block.n[l]) { b0 = 2; } if (Block.n[j1] && !Block.n[k1]) { b0 = 5; } if (Block.n[k1] && !Block.n[j1]) { b0 = 4; } world.setData(i, j, k, b0); } }
public void dropRecord(World world, int i, int j, int k) { if (!world.isStatic) { TileEntityRecordPlayer tileentityrecordplayer = (TileEntityRecordPlayer) world.getTileEntity(i, j, k); if (tileentityrecordplayer != null) { ItemStack itemstack = tileentityrecordplayer.record; if (itemstack != null) { world.triggerEffect(1005, i, j, k, 0); world.a((String) null, i, j, k); tileentityrecordplayer.record = null; tileentityrecordplayer.update(); world.setData(i, j, k, 0); float f = 0.7F; double d0 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D; double d1 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.2D + 0.6D; double d2 = (double) (world.random.nextFloat() * f) + (double) (1.0F - f) * 0.5D; ItemStack itemstack1 = itemstack.cloneItemStack(); EntityItem entityitem = new EntityItem(world, (double) i + d0, (double) j + d1, (double) k + d2, itemstack1); entityitem.pickupDelay = 10; world.addEntity(entityitem); } } } }
/** Ticks the block if it's been scheduled */ public void b(World var1, int var2, int var3, int var4, Random var5) { super.b(var1, var2, var3, var4, var5); if (var1.getLightLevel(var2, var3 + 1, var4) >= 9) { float var6 = this.n(var1, var2, var3, var4); if (var5.nextInt((int) (25.0F / var6) + 1) == 0) { int var7 = var1.getData(var2, var3, var4); if (var7 < 7) { ++var7; var1.setData(var2, var3, var4, var7); } else { if (var1.getTypeId(var2 - 1, var3, var4) == this.blockFruit.id) { return; } if (var1.getTypeId(var2 + 1, var3, var4) == this.blockFruit.id) { return; } if (var1.getTypeId(var2, var3, var4 - 1) == this.blockFruit.id) { return; } if (var1.getTypeId(var2, var3, var4 + 1) == this.blockFruit.id) { return; } int var8 = var5.nextInt(4); int var9 = var2; int var10 = var4; if (var8 == 0) { var9 = var2 - 1; } if (var8 == 1) { ++var9; } if (var8 == 2) { var10 = var4 - 1; } if (var8 == 3) { ++var10; } int var11 = var1.getTypeId(var9, var3 - 1, var10); if (var1.getTypeId(var9, var3, var10) == 0 && (var11 == Block.SOIL.id || var11 == Block.DIRT.id || var11 == Block.GRASS.id)) { var1.setTypeId(var9, var3, var10, this.blockFruit.id); } } } } }
public void grow(World world, int i, int j, int k, Random random) { int l = world.getData(i, j, k); if ((l & 8) == 0) { world.setData(i, j, k, l | 8, 4); } else { this.d(world, i, j, k, random); } }
public void postPlace(World world, int i, int j, int k, EntityLiving entityliving) { int l = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; if (l == 0) { world.setData(i, j, k, 2); } if (l == 1) { world.setData(i, j, k, 5); } if (l == 2) { world.setData(i, j, k, 3); } if (l == 3) { world.setData(i, j, k, 4); } }
public void a(World world, int i, int j, int k, ItemStack itemstack) { if (!world.isStatic) { TileEntityRecordPlayer tileentityrecordplayer = (TileEntityRecordPlayer) world.getTileEntity(i, j, k); if (tileentityrecordplayer != null) { tileentityrecordplayer.record = itemstack.cloneItemStack(); tileentityrecordplayer.update(); world.setData(i, j, k, 1); } } }
public void postPlace( World world, int i, int j, int k, EntityLiving entityliving, ItemStack itemstack) { int l = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; int i1 = world.getData(i, j, k) >> 2; ++l; l %= 4; if (l == 0) { world.setData(i, j, k, 2 | i1 << 2, 2); } if (l == 1) { world.setData(i, j, k, 3 | i1 << 2, 2); } if (l == 2) { world.setData(i, j, k, 0 | i1 << 2, 2); } if (l == 3) { world.setData(i, j, k, 1 | i1 << 2, 2); } }
public void postPlace(World world, int i, int j, int k, EntityLiving entityliving) { int l = world.getTypeId(i, j, k - 1); int i1 = world.getTypeId(i, j, k + 1); int j1 = world.getTypeId(i - 1, j, k); int k1 = world.getTypeId(i + 1, j, k); byte b0 = 0; int l1 = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; if (l1 == 0) { b0 = 2; } if (l1 == 1) { b0 = 5; } if (l1 == 2) { b0 = 3; } if (l1 == 3) { b0 = 4; } if (l != this.id && i1 != this.id && j1 != this.id && k1 != this.id) { world.setData(i, j, k, b0); } else { if ((l == this.id || i1 == this.id) && (b0 == 4 || b0 == 5)) { if (l == this.id) { world.setData(i, j, k - 1, b0); } else { world.setData(i, j, k + 1, b0); } world.setData(i, j, k, b0); } if ((j1 == this.id || k1 == this.id) && (b0 == 2 || b0 == 3)) { if (j1 == this.id) { world.setData(i - 1, j, k, b0); } else { world.setData(i + 1, j, k, b0); } world.setData(i, j, k, b0); } } }
public void postPlace(World world, int i, int j, int k, EntityLiving entityliving) { byte b0 = 0; int l = MathHelper.floor((double) (entityliving.yaw * 4.0F / 360.0F) + 0.5D) & 3; if (l == 0) { b0 = 2; } if (l == 1) { b0 = 5; } if (l == 2) { b0 = 3; } if (l == 3) { b0 = 4; } world.setData(i, j, k, b0); }
public void postPlace(World world, int i, int j, int k, int l) { byte b0 = 0; switch (l) { case 2: b0 = 1; break; case 3: b0 = 4; break; case 4: b0 = 8; break; case 5: b0 = 2; } if (b0 != 0) { world.setData(i, j, k, b0); } }
private void a(World world, int i, int j, int k, int l, int i1, int j1) { int k1 = world.getData(i, j, k); int l1 = 0; this.a = false; boolean flag = world.isBlockIndirectlyPowered(i, j, k); this.a = true; if (flag) { l1 = 15; } else { for (int i2 = 0; i2 < 4; i2++) { int j2 = i; int k2 = k; if (i2 == 0) { j2 = i - 1; } if (i2 == 1) { j2++; } if (i2 == 2) { k2 = k - 1; } if (i2 == 3) { k2++; } if ((j2 != l) || (j != i1) || (k2 != j1)) { l1 = getPower(world, j2, j, k2, l1); } if ((world.s(j2, j, k2)) && (!world.s(i, j + 1, k))) { if ((j2 != l) || (j + 1 != i1) || (k2 != j1)) l1 = getPower(world, j2, j + 1, k2, l1); } else if ((!world.s(j2, j, k2)) && ((j2 != l) || (j - 1 != i1) || (k2 != j1))) { l1 = getPower(world, j2, j - 1, k2, l1); } } if (l1 > 0) l1--; else { l1 = 0; } } if (k1 != l1) { BlockRedstoneEvent event = new BlockRedstoneEvent(world.getWorld().getBlockAt(i, j, k), k1, l1); world.getServer().getPluginManager().callEvent(event); l1 = event.getNewCurrent(); } if (k1 != l1) { world.suppressPhysics = true; world.setData(i, j, k, l1); world.d(i, j, k, i, j, k); world.suppressPhysics = false; for (int i2 = 0; i2 < 4; i2++) { int j2 = i; int k2 = k; int l2 = j - 1; if (i2 == 0) { j2 = i - 1; } if (i2 == 1) { j2++; } if (i2 == 2) { k2 = k - 1; } if (i2 == 3) { k2++; } if (world.s(j2, j, k2)) { l2 += 2; } boolean flag1 = false; int i3 = getPower(world, j2, j, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { l1--; } if ((i3 >= 0) && (i3 != l1)) { a(world, j2, j, k2, i, j, k); } i3 = getPower(world, j2, l2, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { l1--; } if ((i3 >= 0) && (i3 != l1)) { a(world, j2, l2, k2, i, j, k); } } if ((k1 < l1) || (l1 == 0)) { this.b.add(new ChunkPosition(i, j, k)); this.b.add(new ChunkPosition(i - 1, j, k)); this.b.add(new ChunkPosition(i + 1, j, k)); this.b.add(new ChunkPosition(i, j - 1, k)); this.b.add(new ChunkPosition(i, j + 1, k)); this.b.add(new ChunkPosition(i, j, k - 1)); this.b.add(new ChunkPosition(i, j, k + 1)); } } }
public void b(World world, int i, int j, int k) { if (!world.isStatic) { int l = world.getTypeId(i, j, k - 1); int i1 = world.getTypeId(i, j, k + 1); int j1 = world.getTypeId(i - 1, j, k); int k1 = world.getTypeId(i + 1, j, k); boolean flag = true; int l1; int i2; boolean flag1; byte b0; int j2; if (l != this.id && i1 != this.id) { if (j1 != this.id && k1 != this.id) { b0 = 3; if (Block.o[l] && !Block.o[i1]) { b0 = 3; } if (Block.o[i1] && !Block.o[l]) { b0 = 2; } if (Block.o[j1] && !Block.o[k1]) { b0 = 5; } if (Block.o[k1] && !Block.o[j1]) { b0 = 4; } } else { l1 = world.getTypeId(j1 == this.id ? i - 1 : i + 1, j, k - 1); i2 = world.getTypeId(j1 == this.id ? i - 1 : i + 1, j, k + 1); b0 = 3; flag1 = true; if (j1 == this.id) { j2 = world.getData(i - 1, j, k); } else { j2 = world.getData(i + 1, j, k); } if (j2 == 2) { b0 = 2; } if ((Block.o[l] || Block.o[l1]) && !Block.o[i1] && !Block.o[i2]) { b0 = 3; } if ((Block.o[i1] || Block.o[i2]) && !Block.o[l] && !Block.o[l1]) { b0 = 2; } } } else { l1 = world.getTypeId(i - 1, j, l == this.id ? k - 1 : k + 1); i2 = world.getTypeId(i + 1, j, l == this.id ? k - 1 : k + 1); b0 = 5; flag1 = true; if (l == this.id) { j2 = world.getData(i, j, k - 1); } else { j2 = world.getData(i, j, k + 1); } if (j2 == 4) { b0 = 4; } if ((Block.o[j1] || Block.o[l1]) && !Block.o[k1] && !Block.o[i2]) { b0 = 5; } if ((Block.o[k1] || Block.o[i2]) && !Block.o[j1] && !Block.o[l1]) { b0 = 4; } } world.setData(i, j, k, b0); } }
public boolean interactWith( ItemStack itemstack, EntityHuman entityhuman, World world, int i, int j, int k, int l, float f, float f1, float f2) { if (!entityhuman.a(i, j, k, l, itemstack)) { return false; } else { int i1; int j1; int k1; if (itemstack.getData() == 15) { i1 = world.getTypeId(i, j, k); if (i1 == Block.SAPLING.id) { if (!world.isStatic) { // CraftBukkit start Player player = (entityhuman instanceof EntityPlayer) ? (Player) entityhuman.getBukkitEntity() : null; ((BlockSapling) Block.SAPLING) .grow(world, i, j, k, world.random, true, player, itemstack); // --itemstack.count; - called later if the bonemeal attempt was succesful // CraftBukkit end } return true; } if (i1 == Block.BROWN_MUSHROOM.id || i1 == Block.RED_MUSHROOM.id) { // CraftBukkit start if (!world.isStatic) { Player player = (entityhuman instanceof EntityPlayer) ? (Player) entityhuman.getBukkitEntity() : null; ((BlockMushroom) Block.byId[i1]) .grow(world, i, j, k, world.random, true, player, itemstack); // --itemstack.count; - called later if the bonemeal attempt was succesful // CraftBukkit end } return true; } if (i1 == Block.MELON_STEM.id || i1 == Block.PUMPKIN_STEM.id) { if (world.getData(i, j, k) == 7) { return false; } if (!world.isStatic) { ((BlockStem) Block.byId[i1]).l(world, i, j, k); --itemstack.count; } return true; } if (i1 > 0 && Block.byId[i1] instanceof BlockCrops) { if (world.getData(i, j, k) == 7) { return false; } if (!world.isStatic) { ((BlockCrops) Block.byId[i1]).c_(world, i, j, k); --itemstack.count; } return true; } if (i1 == Block.COCOA.id) { if (!world.isStatic) { world.setData(i, j, k, 8 | BlockDirectional.e(world.getData(i, j, k))); --itemstack.count; } return true; } if (i1 == Block.GRASS.id) { if (!world.isStatic) { --itemstack.count; label133: for (j1 = 0; j1 < 128; ++j1) { k1 = i; int l1 = j + 1; int i2 = k; for (int j2 = 0; j2 < j1 / 16; ++j2) { k1 += d.nextInt(3) - 1; l1 += (d.nextInt(3) - 1) * d.nextInt(3) / 2; i2 += d.nextInt(3) - 1; if (world.getTypeId(k1, l1 - 1, i2) != Block.GRASS.id || world.t(k1, l1, i2)) { continue label133; } } if (world.getTypeId(k1, l1, i2) == 0) { if (d.nextInt(10) != 0) { if (Block.LONG_GRASS.d(world, k1, l1, i2)) { world.setTypeIdAndData(k1, l1, i2, Block.LONG_GRASS.id, 1); } } else if (d.nextInt(3) != 0) { if (Block.YELLOW_FLOWER.d(world, k1, l1, i2)) { world.setTypeId(k1, l1, i2, Block.YELLOW_FLOWER.id); } } else if (Block.RED_ROSE.d(world, k1, l1, i2)) { world.setTypeId(k1, l1, i2, Block.RED_ROSE.id); } } } } return true; } } else if (itemstack.getData() == 3) { i1 = world.getTypeId(i, j, k); j1 = world.getData(i, j, k); if (i1 == Block.LOG.id && BlockLog.e(j1) == 3) { if (l == 0) { return false; } if (l == 1) { return false; } if (l == 2) { --k; } if (l == 3) { ++k; } if (l == 4) { --i; } if (l == 5) { ++i; } if (world.isEmpty(i, j, k)) { k1 = Block.byId[Block.COCOA.id].getPlacedData(world, i, j, k, l, f, f1, f2, 0); world.setTypeIdAndData(i, j, k, Block.COCOA.id, k1); if (!entityhuman.abilities.canInstantlyBuild) { --itemstack.count; } } return true; } } return false; } }
public void onPlace(World world, int i, int j, int k) { int l = world.w(i, j - 1, k) ? 0 : 2; world.setData(i, j, k, l, 3); this.d(world, i, j, k, l); }
public void l(World var1, int var2, int var3, int var4) { var1.setData(var2, var3, var4, 7); }
private void a(World world, int i, int j, int k, int l, int i1, int j1) { int k1 = world.getData(i, j, k); int l1 = 0; this.a = false; boolean flag = world.isBlockIndirectlyPowered(i, j, k); this.a = true; int i2; int j2; int k2; if (flag) { l1 = 15; } else { for (i2 = 0; i2 < 4; ++i2) { j2 = i; k2 = k; if (i2 == 0) { j2 = i - 1; } if (i2 == 1) { ++j2; } if (i2 == 2) { k2 = k - 1; } if (i2 == 3) { ++k2; } if (j2 != l || j != i1 || k2 != j1) { l1 = this.getPower(world, j2, j, k2, l1); } if (world.t(j2, j, k2) && !world.t(i, j + 1, k)) { if (j2 != l || j + 1 != i1 || k2 != j1) { l1 = this.getPower(world, j2, j + 1, k2, l1); } } else if (!world.t(j2, j, k2) && (j2 != l || j - 1 != i1 || k2 != j1)) { l1 = this.getPower(world, j2, j - 1, k2, l1); } } if (l1 > 0) { --l1; } else { l1 = 0; } } // CraftBukkit start if (k1 != l1) { BlockRedstoneEvent event = new BlockRedstoneEvent(world.getWorld().getBlockAt(i, j, k), k1, l1); world.getServer().getPluginManager().callEvent(event); l1 = event.getNewCurrent(); } // CraftBukkit end if (k1 != l1) { world.suppressPhysics = true; world.setData(i, j, k, l1); world.e(i, j, k, i, j, k); world.suppressPhysics = false; for (i2 = 0; i2 < 4; ++i2) { j2 = i; k2 = k; int l2 = j - 1; if (i2 == 0) { j2 = i - 1; } if (i2 == 1) { ++j2; } if (i2 == 2) { k2 = k - 1; } if (i2 == 3) { ++k2; } if (world.t(j2, j, k2)) { l2 += 2; } boolean flag1 = false; int i3 = this.getPower(world, j2, j, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { --l1; } if (i3 >= 0 && i3 != l1) { this.a(world, j2, j, k2, i, j, k); } i3 = this.getPower(world, j2, l2, k2, -1); l1 = world.getData(i, j, k); if (l1 > 0) { --l1; } if (i3 >= 0 && i3 != l1) { this.a(world, j2, l2, k2, i, j, k); } } if (k1 < l1 || l1 == 0) { this.b.add(new ChunkPosition(i, j, k)); this.b.add(new ChunkPosition(i - 1, j, k)); this.b.add(new ChunkPosition(i + 1, j, k)); this.b.add(new ChunkPosition(i, j - 1, k)); this.b.add(new ChunkPosition(i, j + 1, k)); this.b.add(new ChunkPosition(i, j, k - 1)); this.b.add(new ChunkPosition(i, j, k + 1)); } } }
private void k(World world, int i, int j, int k) { int l = world.getData(i, j, k); boolean flag = (l & 1) == 1; boolean flag1 = false; List list = world.getEntities( (Entity) null, AxisAlignedBB.a() .a( (double) i + this.minX, (double) j + this.minY, (double) k + this.minZ, (double) i + this.maxX, (double) j + this.maxY, (double) k + this.maxZ)); if (!list.isEmpty()) { Iterator iterator = list.iterator(); while (iterator.hasNext()) { Entity entity = (Entity) iterator.next(); if (!entity.at()) { flag1 = true; break; } } } // CraftBukkit start - Call interact even when triggering connected tripwire if (flag != flag1 && flag1 && (world.getData(i, j, k) & 4) == 4) { org.bukkit.World bworld = world.getWorld(); org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager(); org.bukkit.block.Block block = bworld.getBlockAt(i, j, k); boolean allowed = false; // If all of the events are cancelled block the tripwire trigger, else allow for (Object object : list) { if (object != null) { org.bukkit.event.Cancellable cancellable; if (object instanceof EntityHuman) { cancellable = org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent( (EntityHuman) object, org.bukkit.event.block.Action.PHYSICAL, i, j, k, -1, null); } else if (object instanceof Entity) { cancellable = new EntityInteractEvent(((Entity) object).getBukkitEntity(), block); manager.callEvent((EntityInteractEvent) cancellable); } else { continue; } if (!cancellable.isCancelled()) { allowed = true; break; } } } if (!allowed) { return; } } // CraftBukkit end if (flag1 && !flag) { l |= 1; } if (!flag1 && flag) { l &= -2; } if (flag1 != flag) { world.setData(i, j, k, l, 3); this.d(world, i, j, k, l); } if (flag1) { world.a(i, j, k, this.id, this.a(world)); } }
public void a(World world, int i, int j, int k, Random random) { if (!world.isStatic && world.random.nextInt(16) == 0) { byte b0 = 4; int l = 5; boolean flag = false; int i1; int j1; int k1; label138: for (i1 = i - b0; i1 <= i + b0; ++i1) { for (j1 = k - b0; j1 <= k + b0; ++j1) { for (k1 = j - 1; k1 <= j + 1; ++k1) { if (world.getTypeId(i1, k1, j1) == this.id) { --l; if (l <= 0) { flag = true; break label138; } } } } } i1 = world.getData(i, j, k); j1 = world.random.nextInt(6); k1 = Direction.d[j1]; int l1; int i2; if (j1 == 1) { world.getClass(); if (j < 128 - 1 && world.isEmpty(i, j + 1, k)) { if (flag) { return; } l1 = world.random.nextInt(16) & i1; if (l1 > 0) { for (i2 = 0; i2 <= 3; ++i2) { if (!this.c(world.getTypeId(i + Direction.a[i2], j + 1, k + Direction.b[i2]))) { l1 &= ~(1 << i2); } } if (l1 > 0) { world.setTypeIdAndData(i, j + 1, k, this.id, l1); return; } } return; } } int j2; if (j1 >= 2 && j1 <= 5 && (i1 & 1 << k1) == 0) { if (flag) { return; } l1 = world.getTypeId(i + Direction.a[k1], j, k + Direction.b[k1]); if (l1 != 0 && Block.byId[l1] != null) { if (Block.byId[l1].material.j() && Block.byId[l1].b()) { world.setData(i, j, k, i1 | 1 << k1); } } else { i2 = k1 + 1 & 3; j2 = k1 + 3 & 3; if ((i1 & 1 << i2) != 0 && this.c( world.getTypeId( i + Direction.a[k1] + Direction.a[i2], j, k + Direction.b[k1] + Direction.b[i2]))) { world.setTypeIdAndData(i + Direction.a[k1], j, k + Direction.b[k1], this.id, 1 << i2); } else if ((i1 & 1 << j2) != 0 && this.c( world.getTypeId( i + Direction.a[k1] + Direction.a[j2], j, k + Direction.b[k1] + Direction.b[j2]))) { world.setTypeIdAndData(i + Direction.a[k1], j, k + Direction.b[k1], this.id, 1 << j2); } else if ((i1 & 1 << i2) != 0 && world.isEmpty( i + Direction.a[k1] + Direction.a[i2], j, k + Direction.b[k1] + Direction.b[i2]) && this.c(world.getTypeId(i + Direction.a[i2], j, k + Direction.b[i2]))) { world.setTypeIdAndData( i + Direction.a[k1] + Direction.a[i2], j, k + Direction.b[k1] + Direction.b[i2], this.id, 1 << (k1 + 2 & 3)); } else if ((i1 & 1 << j2) != 0 && world.isEmpty( i + Direction.a[k1] + Direction.a[j2], j, k + Direction.b[k1] + Direction.b[j2]) && this.c(world.getTypeId(i + Direction.a[j2], j, k + Direction.b[j2]))) { world.setTypeIdAndData( i + Direction.a[k1] + Direction.a[j2], j, k + Direction.b[k1] + Direction.b[j2], this.id, 1 << (k1 + 2 & 3)); } else if (this.c(world.getTypeId(i + Direction.a[k1], j + 1, k + Direction.b[k1]))) { world.setTypeIdAndData(i + Direction.a[k1], j, k + Direction.b[k1], this.id, 0); } } } else if (j > 1) { l1 = world.getTypeId(i, j - 1, k); if (l1 == 0) { i2 = world.random.nextInt(16) & i1; if (i2 > 0) { world.setTypeIdAndData(i, j - 1, k, this.id, i2); } } else if (l1 == this.id) { i2 = world.random.nextInt(16) & i1; j2 = world.getData(i, j - 1, k); if (j2 != (j2 | i2)) { world.setData(i, j - 1, k, j2 | i2); } } } } }
public void g(World world, int i, int j, int k) { world.setData(i, j, k, 7); }
private void g(World world, int i, int j, int k) { boolean flag = world.getData(i, j, k) == 1; boolean flag1 = false; float f = 0.125F; List list = null; if (this.a == EnumMobType.EVERYTHING) { list = world.b( (Entity) null, AxisAlignedBB.b( (double) ((float) i + f), (double) j, (double) ((float) k + f), (double) ((float) (i + 1) - f), (double) j + 0.25D, (double) ((float) (k + 1) - f))); } if (this.a == EnumMobType.MOBS) { list = world.a( EntityLiving.class, AxisAlignedBB.b( (double) ((float) i + f), (double) j, (double) ((float) k + f), (double) ((float) (i + 1) - f), (double) j + 0.25D, (double) ((float) (k + 1) - f))); } if (this.a == EnumMobType.PLAYERS) { list = world.a( EntityHuman.class, AxisAlignedBB.b( (double) ((float) i + f), (double) j, (double) ((float) k + f), (double) ((float) (i + 1) - f), (double) j + 0.25D, (double) ((float) (k + 1) - f))); } if (list.size() > 0) { flag1 = true; } // CraftBukkit start - Interact Pressure Plate org.bukkit.World bworld = world.getWorld(); org.bukkit.plugin.PluginManager manager = world.getServer().getPluginManager(); if (flag != flag1) { if (flag1) { for (Object object : list) { if (object != null) { org.bukkit.event.Cancellable cancellable; if (object instanceof EntityHuman) { cancellable = CraftEventFactory.callPlayerInteractEvent( (EntityHuman) object, org.bukkit.event.block.Action.PHYSICAL, i, j, k, -1, null); } else if (object instanceof Entity) { cancellable = new EntityInteractEvent( ((Entity) object).getBukkitEntity(), bworld.getBlockAt(i, j, k)); manager.callEvent((EntityInteractEvent) cancellable); } else { continue; } if (cancellable.isCancelled()) { return; } } } } BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(bworld.getBlockAt(i, j, k), flag ? 1 : 0, flag1 ? 1 : 0); manager.callEvent(eventRedstone); flag1 = eventRedstone.getNewCurrent() > 0; } // CraftBukkit end if (flag1 && !flag) { world.setData(i, j, k, 1); world.applyPhysics(i, j, k, this.id); world.applyPhysics(i, j - 1, k, this.id); world.b(i, j, k, i, j, k); world.makeSound( (double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); } if (!flag1 && flag) { world.setData(i, j, k, 0); world.applyPhysics(i, j, k, this.id); world.applyPhysics(i, j - 1, k, this.id); world.b(i, j, k, i, j, k); world.makeSound( (double) i + 0.5D, (double) j + 0.1D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); } if (flag1) { world.c(i, j, k, this.id, this.d()); } }