--- ../src-base/minecraft/net/minecraft/entity/passive/EntityHorse.java +++ ../src-work/minecraft/net/minecraft/entity/passive/EntityHorse.java @@ -50,7 +50,7 @@ return p_82704_1_ instanceof EntityHorse && ((EntityHorse)p_82704_1_).func_110205_ce(); } }; - private static final IAttribute horseJumpStrength = (new RangedAttribute("horse.jumpStrength", 0.7D, 0.0D, 2.0D)).setDescription("Jump Strength").setShouldWatch(true); + public static final IAttribute horseJumpStrength = (new RangedAttribute("horse.jumpStrength", 0.7D, 0.0D, 2.0D)).setDescription("Jump Strength").setShouldWatch(true); // CraftBukkit - private -> public private static final String[] horseArmorTextures = new String[] {null, "textures/entity/horse/armor/horse_armor_iron.png", "textures/entity/horse/armor/horse_armor_gold.png", "textures/entity/horse/armor/horse_armor_diamond.png"}; private static final String[] field_110273_bx = new String[] {"", "meo", "goo", "dio"}; private static final int[] armorValues = new int[] {0, 5, 7, 11}; @@ -64,7 +64,7 @@ public int field_110278_bp; public int field_110279_bq; protected boolean horseJumping; - private AnimalChest horseChest; + public AnimalChest horseChest; // CraftBukkit - private -> public private boolean hasReproduced; protected int temper; protected float jumpPower; @@ -78,6 +78,7 @@ private int field_110285_bP; private String field_110286_bQ; private String[] field_110280_bR = new String[3]; + public int maxDomestication = 100; // CraftBukkit - store max domestication value private static final String __OBFID = "CL_00001641"; public EntityHorse(World p_i1685_1_) @@ -403,13 +404,13 @@ private int func_110225_cC() { int i = this.getHorseType(); - return this.isChested() && (i == 1 || i == 2) ? 17 : 2; + return this.isChested() /* && (i == 1 || i == 2) */ ? 17 : 2; // CraftBukkit - Remove type check } - private void func_110226_cD() + public void func_110226_cD() // CraftBukkit - private -> public { AnimalChest animalchest = this.horseChest; - this.horseChest = new AnimalChest("HorseChest", this.func_110225_cC()); + this.horseChest = new AnimalChest("HorseChest", this.func_110225_cC(), this); // CraftBukkit - add this horse this.horseChest.func_110133_a(this.getCommandSenderName()); if (animalchest != null) @@ -950,12 +951,25 @@ { super.onDeath(p_70645_1_); + /* CraftBukkit start - Handle chest dropping in dropFewItems below if (!this.worldObj.isRemote) { this.dropChestItems(); } + // CraftBukkit end */ } + // CraftBukkit start - Add method + protected void dropFewItems(boolean flag, int i) { + super.dropFewItems(flag, i); + + // Moved from die method above + if (!this.worldObj.isRemote) { + this.dropChestItems(); + } + } + // CraftBukkit end + public void onLivingUpdate() { if (this.rand.nextInt(200) == 0) @@ -1278,6 +1292,7 @@ p_70014_1_.setInteger("Temper", this.getTemper()); p_70014_1_.setBoolean("Tame", this.isTame()); p_70014_1_.setString("OwnerUUID", this.func_152119_ch()); + p_70014_1_.setInteger("Bukkit.MaxDomestication", this.maxDomestication); // CraftBukkit if (this.isChested()) { @@ -1327,6 +1342,13 @@ this.func_152120_b(p_70037_1_.getString("OwnerUUID")); } + // CraftBukkit start + if (p_70037_1_.hasKey("Bukkit.MaxDomestication")) + { + this.maxDomestication = p_70037_1_.getInteger("Bukkit.MaxDomestication"); + } + + // CraftBukkit end IAttributeInstance iattributeinstance = this.getAttributeMap().getAttributeInstanceByName("Speed"); if (iattributeinstance != null) @@ -1566,24 +1588,33 @@ { if (this.isHorseSaddled()) { + // CraftBukkit start - fire HorseJumpEvent, use event power if (p_110206_1_ < 0) { p_110206_1_ = 0; } - else - { - this.field_110294_bI = true; - this.makeHorseRear(); - } + float power; + if (p_110206_1_ >= 90) { - this.jumpPower = 1.0F; + power = 1.0F; } else { - this.jumpPower = 0.4F + 0.4F * (float)p_110206_1_ / 90.0F; + power = 0.4F + 0.4F * (float)p_110206_1_ / 90.0F; } + + org.bukkit.event.entity.HorseJumpEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callHorseJumpEvent(this, power); + + if (!event.isCancelled()) + { + this.field_110294_bI = true; + this.makeHorseRear(); + this.jumpPower = event.getPower(); + } + + // CraftBukkit end } }