summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ItemInWorldManager.java
diff options
context:
space:
mode:
authorTaylor Kelly <tkelly910@gmail.com>2011-01-10 09:36:19 +0800
committerDinner Bone <dinnerbone@dinnerbone.com>2011-01-10 09:49:54 +0800
commit21e7f1c4407ce04ae4d3cd883edfcf1b1bc95f18 (patch)
treefb48ad630c482cdcf81c7728e98d0ac02a853a2c /src/main/java/net/minecraft/server/ItemInWorldManager.java
parent103d4ee88728b80887e007b07254ceba77e5a943 (diff)
downloadcraftbukkit-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.java128
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