diff options
author | feildmaster <admin@feildmaster.com> | 2012-12-23 05:49:03 -0600 |
---|---|---|
committer | feildmaster <admin@feildmaster.com> | 2012-12-23 07:29:06 -0600 |
commit | ced06463510e7836de72e259bcd17e8ab1629877 (patch) | |
tree | 4c694e6ccf866b9acb45ca3a8ea8302e4c13894a /src/main/java/net/minecraft/server/EntityLiving.java | |
parent | 4e1793f363fad0ecb8c519526f1b93d8fd53377d (diff) | |
download | craftbukkit-ced06463510e7836de72e259bcd17e8ab1629877.tar craftbukkit-ced06463510e7836de72e259bcd17e8ab1629877.tar.gz craftbukkit-ced06463510e7836de72e259bcd17e8ab1629877.tar.lz craftbukkit-ced06463510e7836de72e259bcd17e8ab1629877.tar.xz craftbukkit-ced06463510e7836de72e259bcd17e8ab1629877.zip |
Implement entity max health methods. Adds BUKKIT-266
Diffstat (limited to 'src/main/java/net/minecraft/server/EntityLiving.java')
-rw-r--r-- | src/main/java/net/minecraft/server/EntityLiving.java | 33 |
1 files changed, 26 insertions, 7 deletions
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java index bae495a2..005b8617 100644 --- a/src/main/java/net/minecraft/server/EntityLiving.java +++ b/src/main/java/net/minecraft/server/EntityLiving.java @@ -106,8 +106,11 @@ public abstract class EntityLiving extends Entity { private int bV = 0; private Entity bW; protected int bI = 0; - public int expToDrop = 0; // CraftBukkit - public int maxAirTicks = 300; // CraftBukkit + // CraftBukkit start + public int expToDrop = 0; + public int maxAirTicks = 300; + public int maxHealth = this.getMaxHealth(); + // CraftBukkit end public EntityLiving(World world) { super(world); @@ -418,6 +421,14 @@ public abstract class EntityLiving extends Entity { return 0; } } + + public int getScaledHealth() { + if (this.maxHealth != this.getMaxHealth() && this.getHealth() > 0) { + return this.getHealth() * this.getMaxHealth() / this.maxHealth + 1; + } else { + return this.getHealth(); + } + } // CraftBukkit end protected void aP() { @@ -626,10 +637,11 @@ public abstract class EntityLiving extends Entity { if (!event.isCancelled()) { this.health += event.getAmount(); } - // CraftBukkit end - if (this.health > this.getMaxHealth()) { - this.health = this.getMaxHealth(); + // this.getMaxHealth() -> this.maxHealth + if (this.health > this.maxHealth) { + this.health = this.maxHealth; + // CraftBukkit end } this.noDamageTicks = this.maxNoDamageTicks / 2; @@ -1138,12 +1150,19 @@ public abstract class EntityLiving extends Entity { } nbttagcompound.set("DropChances", nbttaglist1); + nbttagcompound.setInt("Bukkit.MaxHealth", this.maxHealth); // CraftBukkit } public void a(NBTTagCompound nbttagcompound) { this.health = nbttagcompound.getShort("Health"); + // CraftBukkit start + if (nbttagcompound.hasKey("Bukkit.MaxHealth")) { + this.maxHealth = nbttagcompound.getInt("Bukkit.MaxHealth"); + } + if (!nbttagcompound.hasKey("Health")) { - this.health = this.getMaxHealth(); + this.health = this.maxHealth; // this.getMaxHealth() -> this.maxHealth + // CraftBukkit } this.hurtTicks = nbttagcompound.getShort("HurtTime"); @@ -1811,7 +1830,7 @@ public abstract class EntityLiving extends Entity { if (this.aG() == null) { return 3; } else { - int i = (int) ((float) this.health - (float) this.getMaxHealth() * 0.33F); + int i = (int) ((float) this.health - (float) this.maxHealth * 0.33F); // this.getMaxHealth() -> this.maxHealth i -= (3 - this.world.difficulty) * 4; if (i < 0) { |