Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
at develop 74 lines 2.5 kB view raw
1package net.minecraft.server; 2 3import java.util.Random; 4 5import uk.betacraft.uberbukkit.UberbukkitConfig; 6 7public class BlockTNT extends Block { 8 9 public BlockTNT(int i, int j) { 10 super(i, j, Material.TNT); 11 } 12 13 public int a(int i) { 14 return i == 0 ? this.textureId + 2 : (i == 1 ? this.textureId + 1 : this.textureId); 15 } 16 17 public void c(World world, int i, int j, int k) { 18 super.c(world, i, j, k); 19 if (world.isBlockIndirectlyPowered(i, j, k)) { 20 this.postBreak(world, i, j, k, 1); 21 world.setTypeId(i, j, k, 0); 22 } 23 } 24 25 public void doPhysics(World world, int i, int j, int k, int l) { 26 if (l > 0 && Block.byId[l].isPowerSource() && world.isBlockIndirectlyPowered(i, j, k)) { 27 this.postBreak(world, i, j, k, 1); 28 world.setTypeId(i, j, k, 0); 29 } 30 } 31 32 public int a(Random random) { 33 return 0; 34 } 35 36 public void d(World world, int i, int j, int k) { 37 if (!world.isStatic) { 38 EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F)); 39 40 entitytntprimed.fuseTicks = world.random.nextInt(entitytntprimed.fuseTicks / 4) + entitytntprimed.fuseTicks / 8; 41 world.addEntity(entitytntprimed); 42 } 43 } 44 45 public void postBreak(World world, int i, int j, int k, int l) { 46 if (!world.isStatic) { 47 if ((l & 1) == 0) { 48 this.a(world, i, j, k, new ItemStack(Block.TNT.id, 1, 0)); 49 } else { 50 EntityTNTPrimed entitytntprimed = new EntityTNTPrimed(world, (double) ((float) i + 0.5F), (double) ((float) j + 0.5F), (double) ((float) k + 0.5F)); 51 52 world.addEntity(entitytntprimed); 53 world.makeSound(entitytntprimed, "random.fuse", 1.0F, 1.0F); 54 } 55 } 56 } 57 58 public void b(World world, int i, int j, int k, EntityHuman entityhuman) { 59 // uberbukkit 60 if (!UberbukkitConfig.getInstance().getBoolean("mechanics.tnt_require_lighter", true)) { 61 world.setRawData(i, j, k, 1); 62 } 63 64 if ((entityhuman.G() != null && entityhuman.G().id == Item.FLINT_AND_STEEL.id)) { 65 world.setRawData(i, j, k, 1); 66 } 67 68 super.b(world, i, j, k, entityhuman); 69 } 70 71 public boolean interact(World world, int i, int j, int k, EntityHuman entityhuman) { 72 return super.interact(world, i, j, k, entityhuman); 73 } 74}