diff options
author | Taylor Kelly <tkelly910@gmail.com> | 2011-01-10 09:36:19 +0800 |
---|---|---|
committer | Dinner Bone <dinnerbone@dinnerbone.com> | 2011-01-10 09:49:54 +0800 |
commit | 21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18 (patch) | |
tree | fb48ad630c482cdcf81c7728e98d0ac02a853a2c /src/main/java/net/minecraft/server/ItemInWorldManager.java | |
parent | 103d4ee88728b80887e007b07254ceba77e5a943 (diff) | |
download | craftbukkit-21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18.tar craftbukkit-21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18.tar.gz craftbukkit-21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18.tar.lz craftbukkit-21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18.tar.xz craftbukkit-21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18.zip |
BlockDamagedEvent
Diffstat (limited to 'src/main/java/net/minecraft/server/ItemInWorldManager.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ItemInWorldManager.java | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ItemInWorldManager.java b/src/main/java/net/minecraft/server/ItemInWorldManager.java new file mode 100644 index 00000000..6b285e1b --- /dev/null +++ b/src/main/java/net/minecraft/server/ItemInWorldManager.java @@ -0,0 +1,128 @@ +package net.minecraft.server; + + +public class ItemInWorldManager { + + private World b; + public EntityPlayer a; + private float c; + private float d; + private int e; + private float f; + private int g; + private int h; + private int i; + + public ItemInWorldManager(World world) { + d = 0.0F; + e = 0; + f = 0.0F; + b = world; + } + + public void a(int j, int k, int l) { + int i1 = b.a(j, k, l); + + if (i1 > 0 && d == 0.0F) { + Block.m[i1].b(b, j, k, l, a); + } + if (i1 > 0 && Block.m[i1].a(a) >= 1.0F) { + c(j, k, l); + } + } + + public void a() { + d = 0.0F; + e = 0; + } + + public void a(int j, int k, int l, int i1) { + if (e > 0) { + e--; + return; + } + if (j == g && k == h && l == i) { + int j1 = b.a(j, k, l); + + if (j1 == 0) { + return; + } + Block block = Block.m[j1]; + + d += block.a(a); + f++; + if (d >= 1.0F) { + c(j, k, l); + d = 0.0F; + c = 0.0F; + f = 0.0F; + e = 5; + } + } else { + d = 0.0F; + c = 0.0F; + f = 0.0F; + g = j; + h = k; + i = l; + } + } + + public boolean b(int j, int k, int l) { + Block block = Block.m[b.a(j, k, l)]; + int i1 = b.b(j, k, l); + boolean flag = b.d(j, k, l, 0); + + if (block != null && flag) { + block.a(b, j, k, l, i1); + } + return flag; + } + + public boolean c(int j, int k, int l) { + int i1 = b.a(j, k, l); + int j1 = b.b(j, k, l); + boolean flag = b(j, k, l); + ItemStack itemstack = a.M(); + + if (itemstack != null) { + itemstack.a(i1, j, k, l); + if (itemstack.a == 0) { + itemstack.a(a); + a.N(); + } + } + if (flag && a.b(Block.m[i1])) { + Block.m[i1].g(b, j, k, l, j1); + } + return flag; + } + + public boolean a(EntityPlayer entityplayer, World world, ItemStack itemstack) { + int j = itemstack.a; + ItemStack itemstack1 = itemstack.a(world, entityplayer); + + if (itemstack1 != itemstack || itemstack1 != null && itemstack1.a != j) { + entityplayer.an.a[entityplayer.an.c] = itemstack1; + if (itemstack1.a == 0) { + entityplayer.an.a[entityplayer.an.c] = null; + } + return true; + } else { + return false; + } + } + + public boolean a(EntityPlayer entityplayer, World world, ItemStack itemstack, int j, int k, int l, int i1) { + int j1 = world.a(j, k, l); + + if (j1 > 0 && Block.m[j1].a(world, j, k, l, entityplayer)) { + return true; + } + if (itemstack == null) { + return false; + } else { + return itemstack.a(entityplayer, world, j, k, l, i1); + } + } +}
\ No newline at end of file |