summaryrefslogtreecommitdiffstats
path: root/nms-patches/EntityHorse.patch
diff options
context:
space:
mode:
authorThinkofdeath <thinkofdeath@spigotmc.org>2014-11-26 08:32:16 +1100
committermd_5 <git@md-5.net>2014-11-28 17:16:30 +1100
commit24557bc2b37deb6a0edf497d547471832457b1dd (patch)
treec560572889a3b0b34964a0cddb35dc87fda3c914 /nms-patches/EntityHorse.patch
parenta4805dbd77da057cc1ea0bf344379bc6e53ca1f6 (diff)
downloadcraftbukkit-24557bc2b37deb6a0edf497d547471832457b1dd.tar
craftbukkit-24557bc2b37deb6a0edf497d547471832457b1dd.tar.gz
craftbukkit-24557bc2b37deb6a0edf497d547471832457b1dd.tar.lz
craftbukkit-24557bc2b37deb6a0edf497d547471832457b1dd.tar.xz
craftbukkit-24557bc2b37deb6a0edf497d547471832457b1dd.zip
Update to Minecraft 1.8
For more information please see http://www.spigotmc.org/
Diffstat (limited to 'nms-patches/EntityHorse.patch')
-rw-r--r--nms-patches/EntityHorse.patch140
1 files changed, 140 insertions, 0 deletions
diff --git a/nms-patches/EntityHorse.patch b/nms-patches/EntityHorse.patch
new file mode 100644
index 00000000..f4ff42d0
--- /dev/null
+++ b/nms-patches/EntityHorse.patch
@@ -0,0 +1,140 @@
+--- ../work/decompile-bb26c12b/net/minecraft/server/EntityHorse.java 2014-11-27 08:59:46.681421935 +1100
++++ src/main/java/net/minecraft/server/EntityHorse.java 2014-11-27 08:42:10.148850918 +1100
+@@ -4,6 +4,8 @@
+ import java.util.Iterator;
+ import java.util.List;
+
++import org.bukkit.event.entity.EntityRegainHealthEvent.RegainReason; // CraftBukkit
++
+ public class EntityHorse extends EntityAnimal implements IInventoryListener {
+
+ private static final Predicate bq = new EntitySelectorHorse();
+@@ -36,6 +38,7 @@
+ private String bM;
+ private String[] bN = new String[3];
+ private boolean bO = false;
++ public int maxDomestication = 100; // CraftBukkit - store max domestication value
+
+ public EntityHorse(World world) {
+ super(world);
+@@ -314,13 +317,13 @@
+ private int cX() {
+ int i = this.getType();
+
+- return this.hasChest() && (i == 1 || i == 2) ? 17 : 2;
++ return this.hasChest() /* && (i == 1 || i == 2) */ ? 17 : 2; // CraftBukkit - Remove type check
+ }
+
+ public void loadChest() {
+ InventoryHorseChest inventoryhorsechest = this.inventoryChest;
+
+- this.inventoryChest = new InventoryHorseChest("HorseChest", this.cX());
++ this.inventoryChest = new InventoryHorseChest("HorseChest", this.cX(), this); // CraftBukkit - add this horse
+ this.inventoryChest.a(this.getName());
+ if (inventoryhorsechest != null) {
+ inventoryhorsechest.b(this);
+@@ -485,7 +488,7 @@
+ }
+
+ public int getMaxDomestication() {
+- return 100;
++ return this.maxDomestication; // CraftBukkit - return stored max domestication instead of 100
+ }
+
+ protected float bA() {
+@@ -585,7 +588,7 @@
+ }
+
+ if (this.getHealth() < this.getMaxHealth() && f > 0.0F) {
+- this.heal(f);
++ this.heal(f, RegainReason.EATING); // CraftBukkit
+ flag = true;
+ }
+
+@@ -692,11 +695,24 @@
+
+ public void die(DamageSource damagesource) {
+ super.die(damagesource);
++ /* CraftBukkit start - Handle chest dropping in dropDeathLoot below
+ if (!this.world.isStatic) {
+ this.dropChest();
+ }
++ // CraftBukkit end */
++ }
+
++ // CraftBukkit start - Add method
++ @Override
++ protected void dropDeathLoot(boolean flag, int i) {
++ super.dropDeathLoot(flag, i);
++
++ // Moved from die method above
++ if (!this.world.isStatic) {
++ this.dropChest();
++ }
+ }
++ // CraftBukkit end
+
+ public void m() {
+ if (this.random.nextInt(200) == 0) {
+@@ -706,7 +722,7 @@
+ super.m();
+ if (!this.world.isStatic) {
+ if (this.random.nextInt(900) == 0 && this.deathTicks == 0) {
+- this.heal(1.0F);
++ this.heal(1.0F, RegainReason.REGEN); // CraftBukkit
+ }
+
+ if (!this.cw() && this.passenger == null && this.random.nextInt(300) == 0 && this.world.getType(new BlockPosition(MathHelper.floor(this.locX), MathHelper.floor(this.locY) - 1, MathHelper.floor(this.locZ))).getBlock() == Blocks.GRASS) {
+@@ -949,6 +965,7 @@
+ nbttagcompound.setInt("Temper", this.getTemper());
+ nbttagcompound.setBoolean("Tame", this.isTame());
+ nbttagcompound.setString("OwnerUUID", this.getOwnerUUID());
++ nbttagcompound.setInt("Bukkit.MaxDomestication", this.maxDomestication); // CraftBukkit
+ if (this.hasChest()) {
+ NBTTagList nbttaglist = new NBTTagList();
+
+@@ -1001,6 +1018,12 @@
+ this.setOwnerUUID(s);
+ }
+
++ // CraftBukkit start
++ if (nbttagcompound.hasKey("Bukkit.MaxDomestication")) {
++ this.maxDomestication = nbttagcompound.getInt("Bukkit.MaxDomestication");
++ }
++ // CraftBukkit end
++
+ AttributeInstance attributeinstance = this.getAttributeMap().a("Speed");
+
+ if (attributeinstance != null) {
+@@ -1166,18 +1189,25 @@
+
+ public void v(int i) {
+ if (this.cE()) {
++ // CraftBukkit start - fire HorseJumpEvent, use event power
+ if (i < 0) {
+ i = 0;
+- } else {
+- this.bE = true;
+- this.df();
+ }
+-
++
++ float power;
+ if (i >= 90) {
+- this.bp = 1.0F;
++ power = 1.0F;
+ } else {
+- this.bp = 0.4F + 0.4F * (float) i / 90.0F;
++ power = 0.4F + 0.4F * (float) i / 90.0F;
++ }
++
++ org.bukkit.event.entity.HorseJumpEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callHorseJumpEvent(this, power);
++ if (!event.isCancelled()) {
++ this.bE = true;
++ this.df();
++ this.bp = power;
+ }
++ // CraftBukkit end
+ }
+
+ }