diff options
author | Erik Broes <erikbroes@grum.nl> | 2011-01-29 22:50:29 +0100 |
---|---|---|
committer | Erik Broes <erikbroes@grum.nl> | 2011-01-30 13:24:39 +0100 |
commit | df69047324abc54f5d5b8d069bb69b1061b20cce (patch) | |
tree | 76f8d13addf80730deea9285f4bd9a1ffbe45f80 /src/main/java/net/minecraft/server/BlockButton.java | |
parent | d0cd8c6cc7d1aaf38934996e7e5d3e03272e4ff1 (diff) | |
download | craftbukkit-df69047324abc54f5d5b8d069bb69b1061b20cce.tar craftbukkit-df69047324abc54f5d5b8d069bb69b1061b20cce.tar.gz craftbukkit-df69047324abc54f5d5b8d069bb69b1061b20cce.tar.lz craftbukkit-df69047324abc54f5d5b8d069bb69b1061b20cce.tar.xz craftbukkit-df69047324abc54f5d5b8d069bb69b1061b20cce.zip |
Port to new mc-dev format.
Diffstat (limited to 'src/main/java/net/minecraft/server/BlockButton.java')
-rw-r--r-- | src/main/java/net/minecraft/server/BlockButton.java | 228 |
1 files changed, 109 insertions, 119 deletions
diff --git a/src/main/java/net/minecraft/server/BlockButton.java b/src/main/java/net/minecraft/server/BlockButton.java index 3a82ea91..b3e3283c 100644 --- a/src/main/java/net/minecraft/server/BlockButton.java +++ b/src/main/java/net/minecraft/server/BlockButton.java @@ -17,8 +17,8 @@ import org.bukkit.event.block.BlockRedstoneEvent; public class BlockButton extends Block { protected BlockButton(int i, int j) { - super(i, j, Material.n); - a(true); + super(i, j, Material.ORIENTABLE); + this.a(true); } public AxisAlignedBB d(World world, int i, int j, int k) { @@ -34,35 +34,30 @@ public class BlockButton extends Block { } public boolean a(World world, int i, int j, int k) { - if (world.d(i - 1, j, k)) { - return true; - } - if (world.d(i + 1, j, k)) { - return true; - } - if (world.d(i, j, k - 1)) { - return true; - } - return world.d(i, j, k + 1); + return world.d(i - 1, j, k) ? true : (world.d(i + 1, j, k) ? true : (world.d(i, j, k - 1) ? true : world.d(i, j, k + 1))); } public void c(World world, int i, int j, int k, int l) { - int i1 = world.b(i, j, k); + int i1 = world.getData(i, j, k); int j1 = i1 & 8; i1 &= 7; if (l == 2 && world.d(i, j, k + 1)) { i1 = 4; } + if (l == 3 && world.d(i, j, k - 1)) { i1 = 3; } + if (l == 4 && world.d(i + 1, j, k)) { i1 = 2; } + if (l == 5 && world.d(i - 1, j, k)) { i1 = 1; } + world.c(i, j, k, i1 + j1); } @@ -76,36 +71,41 @@ public class BlockButton extends Block { } else if (world.d(i, j, k + 1)) { world.c(i, j, k, 4); } - g(world, i, j, k); + + this.g(world, i, j, k); } public void b(World world, int i, int j, int k, int l) { - if (g(world, i, j, k)) { - int i1 = world.b(i, j, k) & 7; + if (this.g(world, i, j, k)) { + int i1 = world.getData(i, j, k) & 7; boolean flag = false; if (!world.d(i - 1, j, k) && i1 == 1) { flag = true; } + if (!world.d(i + 1, j, k) && i1 == 2) { flag = true; } + if (!world.d(i, j, k - 1) && i1 == 3) { flag = true; } + if (!world.d(i, j, k + 1) && i1 == 4) { flag = true; } + if (flag) { - a_(world, i, j, k, world.b(i, j, k)); + this.a_(world, i, j, k, world.getData(i, j, k)); world.e(i, j, k, 0); } } } private boolean g(World world, int i, int j, int k) { - if (!a(world, i, j, k)) { - a_(world, i, j, k, world.b(i, j, k)); + if (!this.a(world, i, j, k)) { + this.a_(world, i, j, k, world.getData(i, j, k)); world.e(i, j, k, 0); return false; } else { @@ -114,7 +114,7 @@ public class BlockButton extends Block { } public void a(IBlockAccess iblockaccess, int i, int j, int k) { - int l = iblockaccess.b(i, j, k); + int l = iblockaccess.getData(i, j, k); int i1 = l & 7; boolean flag = (l & 8) > 0; float f = 0.375F; @@ -125,122 +125,113 @@ public class BlockButton extends Block { if (flag) { f3 = 0.0625F; } + if (i1 == 1) { - a(0.0F, f, 0.5F - f2, f3, f1, 0.5F + f2); + this.a(0.0F, f, 0.5F - f2, f3, f1, 0.5F + f2); } else if (i1 == 2) { - a(1.0F - f3, f, 0.5F - f2, 1.0F, f1, 0.5F + f2); + this.a(1.0F - f3, f, 0.5F - f2, 1.0F, f1, 0.5F + f2); } else if (i1 == 3) { - a(0.5F - f2, f, 0.0F, 0.5F + f2, f1, f3); + this.a(0.5F - f2, f, 0.0F, 0.5F + f2, f1, f3); } else if (i1 == 4) { - a(0.5F - f2, f, 1.0F - f3, 0.5F + f2, f1, 1.0F); + this.a(0.5F - f2, f, 1.0F - f3, 0.5F + f2, f1, 1.0F); } } - public void b(World world, int i, int j, int k, EntityPlayer entityplayer) { - a(world, i, j, k, entityplayer); + public void b(World world, int i, int j, int k, EntityHuman entityhuman) { + this.a(world, i, j, k, entityhuman); } - public boolean a(World world, int i, int j, int k, EntityPlayer entityplayer) { - // CraftBukkit start - Interact Button - CraftWorld craftWorld = ((WorldServer) world).getWorld(); - CraftServer server = ((WorldServer) world).getServer(); - Type eventType = Type.BLOCK_INTERACT; - CraftBlock block = (CraftBlock) craftWorld.getBlockAt(i, j, k); - LivingEntity who = (entityplayer == null)?null:(LivingEntity)entityplayer.getBukkitEntity(); - - BlockInteractEvent bie = new BlockInteractEvent(eventType, block, who); - server.getPluginManager().callEvent(bie); - - if (bie.isCancelled()) { - return true; - } - // CraftBukkit end - - - if (world.z) { + public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + if (world.isStatic) { return true; - } - int l = world.b(i, j, k); - int i1 = l & 7; - int j1 = 8 - (l & 8); + } else { + // CraftBukkit start - Interact Button + CraftWorld craftWorld = ((WorldServer) world).getWorld(); + CraftServer server = ((WorldServer) world).getServer(); + Type eventType = Type.BLOCK_INTERACT; + CraftBlock block = (CraftBlock) craftWorld.getBlockAt(i, j, k); + LivingEntity who = (entityhuman == null) ? null : (LivingEntity) entityhuman.getBukkitEntity(); + + BlockInteractEvent event = new BlockInteractEvent(eventType, block, who); + server.getPluginManager().callEvent(event); + + if (event.isCancelled()) { + return true; + } + // CraftBukkit end - if (j1 == 0) { - return true; - } + int l = world.getData(i, j, k); + int i1 = l & 7; + int j1 = 8 - (l & 8); - //Allow the lever to change the current - int old = (j1 != 8) ? 1 : 0; - int current = (j1 == 8) ? 1 : 0; - BlockRedstoneEvent bre = new BlockRedstoneEvent(block, BlockFace.SELF, old, current); - server.getPluginManager().callEvent(bre); - if ((bre.getNewCurrent() > 0) == (j1 == 8)) { - world.c(i, j, k, i1 + j1); - world.b(i, j, k, i, j, k); - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); - world.h(i, j, k, bi); - if (i1 == 1) { - world.h(i - 1, j, k, bi); - } else if (i1 == 2) { - world.h(i + 1, j, k, bi); - } else if (i1 == 3) { - world.h(i, j, k - 1, bi); - } else if (i1 == 4) { - world.h(i, j, k + 1, bi); + if (j1 == 0) { + return true; } else { - world.h(i, j - 1, k, bi); + //Allow the lever to change the current + int old = (j1 != 8) ? 1 : 0; + int current = (j1 == 8) ? 1 : 0; + BlockRedstoneEvent eventRedstone = new BlockRedstoneEvent(block, BlockFace.SELF, old, current); + server.getPluginManager().callEvent(eventRedstone); + if ((eventRedstone.getNewCurrent() > 0) == (j1 == 8)) { + world.c(i, j, k, i1 + j1); + world.b(i, j, k, i, j, k); + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.6F); + world.h(i, j, k, this.id); + if (i1 == 1) { + world.h(i - 1, j, k, this.id); + } else if (i1 == 2) { + world.h(i + 1, j, k, this.id); + } else if (i1 == 3) { + world.h(i, j, k - 1, this.id); + } else if (i1 == 4) { + world.h(i, j, k + 1, this.id); + } else { + world.h(i, j - 1, k, this.id); + } + world.i(i, j, k, this.id); + } + return true; } - world.i(i, j, k, bi); } - return true; } public void b(World world, int i, int j, int k) { - int l = world.b(i, j, k); + int l = world.getData(i, j, k); if ((l & 8) > 0) { - world.h(i, j, k, bi); + world.h(i, j, k, this.id); int i1 = l & 7; if (i1 == 1) { - world.h(i - 1, j, k, bi); + world.h(i - 1, j, k, this.id); } else if (i1 == 2) { - world.h(i + 1, j, k, bi); + world.h(i + 1, j, k, this.id); } else if (i1 == 3) { - world.h(i, j, k - 1, bi); + world.h(i, j, k - 1, this.id); } else if (i1 == 4) { - world.h(i, j, k + 1, bi); + world.h(i, j, k + 1, this.id); } else { - world.h(i, j - 1, k, bi); + world.h(i, j - 1, k, this.id); } } + super.b(world, i, j, k); } public boolean b(IBlockAccess iblockaccess, int i, int j, int k, int l) { - return (iblockaccess.b(i, j, k) & 8) > 0; + return (iblockaccess.getData(i, j, k) & 8) > 0; } public boolean d(World world, int i, int j, int k, int l) { - int i1 = world.b(i, j, k); + int i1 = world.getData(i, j, k); if ((i1 & 8) == 0) { return false; - } - int j1 = i1 & 7; + } else { + int j1 = i1 & 7; - if (j1 == 5 && l == 1) { - return true; - } - if (j1 == 4 && l == 2) { - return true; - } - if (j1 == 3 && l == 3) { - return true; + return j1 == 5 && l == 1 ? true : (j1 == 4 && l == 2 ? true : (j1 == 3 && l == 3 ? true : (j1 == 2 && l == 4 ? true : j1 == 1 && l == 5))); } - if (j1 == 2 && l == 4) { - return true; - } - return j1 == 1 && l == 5; } public boolean c() { @@ -248,30 +239,29 @@ public class BlockButton extends Block { } public void a(World world, int i, int j, int k, Random random) { - if (world.z) { - return; - } - int l = world.b(i, j, k); - - if ((l & 8) == 0) { - return; - } - world.c(i, j, k, l & 7); - world.h(i, j, k, bi); - int i1 = l & 7; - - if (i1 == 1) { - world.h(i - 1, j, k, bi); - } else if (i1 == 2) { - world.h(i + 1, j, k, bi); - } else if (i1 == 3) { - world.h(i, j, k - 1, bi); - } else if (i1 == 4) { - world.h(i, j, k + 1, bi); - } else { - world.h(i, j - 1, k, bi); + if (!world.isStatic) { + int l = world.getData(i, j, k); + + if ((l & 8) != 0) { + world.c(i, j, k, l & 7); + world.h(i, j, k, this.id); + int i1 = l & 7; + + if (i1 == 1) { + world.h(i - 1, j, k, this.id); + } else if (i1 == 2) { + world.h(i + 1, j, k, this.id); + } else if (i1 == 3) { + world.h(i, j, k - 1, this.id); + } else if (i1 == 4) { + world.h(i, j, k + 1, this.id); + } else { + world.h(i, j - 1, k, this.id); + } + + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); + world.b(i, j, k, i, j, k); + } } - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.click", 0.3F, 0.5F); - world.b(i, j, k, i, j, k); } } |