Fork of Poseidon providing Bukkit #1060 to older Beta versions (b1.0-b1.7.3)
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}