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/BlockDoor.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/BlockDoor.java')
-rw-r--r-- | src/main/java/net/minecraft/server/BlockDoor.java | 190 |
1 files changed, 93 insertions, 97 deletions
diff --git a/src/main/java/net/minecraft/server/BlockDoor.java b/src/main/java/net/minecraft/server/BlockDoor.java index 33c577e1..da7fb166 100644 --- a/src/main/java/net/minecraft/server/BlockDoor.java +++ b/src/main/java/net/minecraft/server/BlockDoor.java @@ -16,14 +16,15 @@ public class BlockDoor extends Block { protected BlockDoor(int i, Material material) { super(i, material); - bh = 97; - if (material == Material.e) { - bh++; + this.textureId = 97; + if (material == Material.ORE) { + ++this.textureId; } + float f = 0.5F; float f1 = 1.0F; - a(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f1, 0.5F + f); + this.a(0.5F - f, 0.0F, 0.5F - f, 0.5F + f, f1, 0.5F + f); } public boolean a() { @@ -31,170 +32,165 @@ public class BlockDoor extends Block { } public AxisAlignedBB d(World world, int i, int j, int k) { - a(((IBlockAccess) (world)), i, j, k); + this.a((IBlockAccess) world, i, j, k); return super.d(world, i, j, k); } public void a(IBlockAccess iblockaccess, int i, int j, int k) { - c(d(iblockaccess.b(i, j, k))); + this.c(this.d(iblockaccess.getData(i, j, k))); } public void c(int i) { float f = 0.1875F; - a(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F); + this.a(0.0F, 0.0F, 0.0F, 1.0F, 2.0F, 1.0F); if (i == 0) { - a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f); + this.a(0.0F, 0.0F, 0.0F, 1.0F, 1.0F, f); } + if (i == 1) { - a(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); + this.a(1.0F - f, 0.0F, 0.0F, 1.0F, 1.0F, 1.0F); } + if (i == 2) { - a(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F); + this.a(0.0F, 0.0F, 1.0F - f, 1.0F, 1.0F, 1.0F); } + if (i == 3) { - a(0.0F, 0.0F, 0.0F, f, 1.0F, 1.0F); + this.a(0.0F, 0.0F, 0.0F, f, 1.0F, 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) { - if (bt == Material.e) { + public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { + if (this.material == Material.ORE) { return true; - } - int l = world.b(i, j, k); + } else { + int l = world.getData(i, j, k); - if ((l & 8) != 0) { - if (world.a(i, j - 1, k) == bi) { - a(world, i, j - 1, k, entityplayer); - } - return true; - } + if ((l & 8) != 0) { + if (world.getTypeId(i, j - 1, k) == this.id) { + this.a(world, i, j - 1, k, entityhuman); + } - // CraftBukkit start - Interact Door - 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); - - // CraftBukkit the client updates the doors before the server does it's thing. - // Forcibly send correct data. - if (bie.isCancelled()) { - ((EntityPlayerMP) entityplayer).a.b(new Packet53BlockChange(i, j, k, (WorldServer) world)); - ((EntityPlayerMP) entityplayer).a.b(new Packet53BlockChange(i, j + 1, k, (WorldServer) world)); - return true; - } - // CraftBukkit end + return true; + } else { + // CraftBukkit start - Interact Door + 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); + + // CraftBukkit the client updates the doors before the server does it's thing. + // Forcibly send correct data. + if (event.isCancelled()) { + ((EntityPlayer) entityhuman).a.b(new Packet53BlockChange(i, j, k, (WorldServer) world)); + ((EntityPlayer) entityhuman).a.b(new Packet53BlockChange(i, j + 1, k, (WorldServer) world)); + return true; + } + // CraftBukkit end - if (world.a(i, j + 1, k) == bi) { - world.c(i, j + 1, k, (l ^ 4) + 8); - } - world.c(i, j, k, l ^ 4); - world.b(i, j - 1, k, i, j, k); - if (Math.random() < 0.5D) { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); - } else { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + if (world.getTypeId(i, j + 1, k) == this.id) { + world.c(i, j + 1, k, (l ^ 4) + 8); + } + + world.c(i, j, k, l ^ 4); + world.b(i, j - 1, k, i, j, k); + if (Math.random() < 0.5D) { + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + } else { + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + } + + return true; + } } - return true; } public void a(World world, int i, int j, int k, boolean flag) { - int l = world.b(i, j, k); + int l = world.getData(i, j, k); if ((l & 8) != 0) { - if (world.a(i, j - 1, k) == bi) { - a(world, i, j - 1, k, flag); + if (world.getTypeId(i, j - 1, k) == this.id) { + this.a(world, i, j - 1, k, flag); } - return; - } - boolean flag1 = (world.b(i, j, k) & 4) > 0; - - if (flag1 == flag) { - return; - } - if (world.a(i, j + 1, k) == bi) { - world.c(i, j + 1, k, (l ^ 4) + 8); - } - world.c(i, j, k, l ^ 4); - world.b(i, j - 1, k, i, j, k); - if (Math.random() < 0.5D) { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); } else { - world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + boolean flag1 = (world.getData(i, j, k) & 4) > 0; + + if (flag1 != flag) { + if (world.getTypeId(i, j + 1, k) == this.id) { + world.c(i, j + 1, k, (l ^ 4) + 8); + } + + world.c(i, j, k, l ^ 4); + world.b(i, j - 1, k, i, j, k); + if (Math.random() < 0.5D) { + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_open", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + } else { + world.a((double) i + 0.5D, (double) j + 0.5D, (double) k + 0.5D, "random.door_close", 1.0F, world.l.nextFloat() * 0.1F + 0.9F); + } + } } } public void b(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) { - if (world.a(i, j - 1, k) != bi) { + if (world.getTypeId(i, j - 1, k) != this.id) { world.e(i, j, k, 0); } - if (l > 0 && Block.m[l].c()) { - b(world, i, j - 1, k, l); + + if (l > 0 && Block.byId[l].c()) { + this.b(world, i, j - 1, k, l); } } else { boolean flag = false; - if (world.a(i, j + 1, k) != bi) { + if (world.getTypeId(i, j + 1, k) != this.id) { world.e(i, j, k, 0); flag = true; } + if (!world.d(i, j - 1, k)) { world.e(i, j, k, 0); flag = true; - if (world.a(i, j + 1, k) == bi) { + if (world.getTypeId(i, j + 1, k) == this.id) { world.e(i, j + 1, k, 0); } } + if (flag) { - a_(world, i, j, k, i1); - } else if (l > 0 && Block.m[l].c()) { + this.a_(world, i, j, k, i1); + } else if (l > 0 && Block.byId[l].c()) { boolean flag1 = world.p(i, j, k) || world.p(i, j + 1, k); - a(world, i, j, k, flag1); + this.a(world, i, j, k, flag1); } } } public int a(int i, Random random) { - if ((i & 8) != 0) { - return 0; - } - if (bt == Material.e) { - return Item.az.ba; - } else { - return Item.at.ba; - } + return (i & 8) != 0 ? 0 : (this.material == Material.ORE ? Item.IRON_DOOR.id : Item.WOOD_DOOR.id); } public MovingObjectPosition a(World world, int i, int j, int k, Vec3D vec3d, Vec3D vec3d1) { - a(((IBlockAccess) (world)), i, j, k); + this.a((IBlockAccess) world, i, j, k); return super.a(world, i, j, k, vec3d, vec3d1); } public int d(int i) { - if ((i & 4) == 0) { - return i - 1 & 3; - } else { - return i & 3; - } + return (i & 4) == 0 ? i - 1 & 3 : i & 3; } public boolean a(World world, int i, int j, int k) { - if (j >= 127) { - return false; - } else { - return world.d(i, j - 1, k) && super.a(world, i, j, k) && super.a(world, i, j + 1, k); - } + return j >= 127 ? false : world.d(i, j - 1, k) && super.a(world, i, j, k) && super.a(world, i, j + 1, k); } } |