diff options
author | feildmaster <admin@feildmaster.com> | 2012-12-25 05:42:04 -0600 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2012-12-25 05:58:49 -0600 |
commit | 3a0c5aff0c646b6ae16345da1a168805f0a53cc7 (patch) | |
tree | 001dcf92da8288594d6885612beeae1bc6be3a86 /src | |
parent | 155b83e2c7b3ee2bdf057353edd8e24247fd14ff (diff) | |
download | craftbukkit-3a0c5aff0c646b6ae16345da1a168805f0a53cc7.tar craftbukkit-3a0c5aff0c646b6ae16345da1a168805f0a53cc7.tar.gz craftbukkit-3a0c5aff0c646b6ae16345da1a168805f0a53cc7.tar.lz craftbukkit-3a0c5aff0c646b6ae16345da1a168805f0a53cc7.tar.xz craftbukkit-3a0c5aff0c646b6ae16345da1a168805f0a53cc7.zip |
Fix fireballs being motionless (again). Fixes BUKKIT-3299
The key "direction" incorrectly mapped to variables that were already
set in the entity. In order to prevent loading incorrect data we
renamed "direction" to "power."
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityFireball.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/EntityFireball.java b/src/main/java/net/minecraft/server/EntityFireball.java index d8f34ef8..107abcad 100644 --- a/src/main/java/net/minecraft/server/EntityFireball.java +++ b/src/main/java/net/minecraft/server/EntityFireball.java @@ -199,7 +199,8 @@ public abstract class EntityFireball extends Entity { nbttagcompound.setShort("zTile", (short) this.g); nbttagcompound.setByte("inTile", (byte) this.h); nbttagcompound.setByte("inGround", (byte) (this.i ? 1 : 0)); - nbttagcompound.set("direction", this.a(new double[] { this.motX, this.motY, this.motZ})); + // CraftBukkit - Fix direction being mismapped to invalid variables + nbttagcompound.set("power", this.a(new double[] { this.dirX, this.dirY, this.dirZ})); } public void a(NBTTagCompound nbttagcompound) { @@ -208,12 +209,14 @@ public abstract class EntityFireball extends Entity { this.g = nbttagcompound.getShort("zTile"); this.h = nbttagcompound.getByte("inTile") & 255; this.i = nbttagcompound.getByte("inGround") == 1; - if (nbttagcompound.hasKey("direction")) { - NBTTagList nbttaglist = nbttagcompound.getList("direction"); - - this.motX = ((NBTTagDouble) nbttaglist.get(0)).data; - this.motY = ((NBTTagDouble) nbttaglist.get(1)).data; - this.motZ = ((NBTTagDouble) nbttaglist.get(2)).data; + // CraftBukkit - direction -> power + if (nbttagcompound.hasKey("power")) { + NBTTagList nbttaglist = nbttagcompound.getList("power"); + + this.dirX = ((NBTTagDouble) nbttaglist.get(0)).data; + this.dirY = ((NBTTagDouble) nbttaglist.get(1)).data; + this.dirZ = ((NBTTagDouble) nbttaglist.get(2)).data; + // CraftBukkit end } else { this.die(); } |