From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Sun, 15 Nov 2020 02:18:15 -0800 Subject: [PATCH] Make entity breeding times configurable diff --git a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java index 2591e4bbd234e51ff2c6b00db888d3b158f5a07d..e3d48c7c6615185f8a14bc96476a665bdadc275b 100644 --- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java +++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java @@ -118,8 +118,10 @@ public class VillagerMakeLove extends Behavior { if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreedEvent(breedOffspring, parent, partner, null, null, 0).isCancelled()) { return Optional.empty(); } - parent.setAge(6000); - partner.setAge(6000); + // Purpur start - Make entity breeding times configurable + parent.setAge(level.purpurConfig.villagerBreedingTicks); + partner.setAge(level.purpurConfig.villagerBreedingTicks); + // Purpur end - Make entity breeding times configurable level.addFreshEntityWithPassengers(breedOffspring, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit end - call EntityBreedEvent level.broadcastEntityEvent(breedOffspring, (byte)12); diff --git a/net/minecraft/world/entity/animal/Animal.java b/net/minecraft/world/entity/animal/Animal.java index 2ce0099460c14a6dd8b128f268ee915ea4be5183..1cae770340e969ec4f037b9121142878894102d3 100644 --- a/net/minecraft/world/entity/animal/Animal.java +++ b/net/minecraft/world/entity/animal/Animal.java @@ -42,6 +42,7 @@ public abstract class Animal extends AgeableMob { @Nullable public UUID loveCause; public @Nullable ItemStack breedItem; // CraftBukkit - Add breedItem variable + public abstract int getPurpurBreedTime(); // Purpur - Make entity breeding times configurable protected Animal(EntityType entityType, Level level) { super(entityType, level); @@ -283,8 +284,10 @@ public abstract class Animal extends AgeableMob { player.awardStat(Stats.ANIMALS_BRED); CriteriaTriggers.BRED_ANIMALS.trigger(player, this, animal, baby); } // Paper - Call EntityBreedEvent - this.setAge(6000); - animal.setAge(6000); + // Purpur start - Make entity breeding times configurable + this.setAge(this.getPurpurBreedTime()); + animal.setAge(animal.getPurpurBreedTime()); + // Purpur end - Make entity breeding times configurable this.resetLove(); animal.resetLove(); level.broadcastEntityEvent(this, (byte)18); diff --git a/net/minecraft/world/entity/animal/Bee.java b/net/minecraft/world/entity/animal/Bee.java index 7fbf46efe8007e4b0e2f07c3ada8f0e02484d59d..68acacdf30834fe318862d1900cb18800caa0e13 100644 --- a/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java @@ -480,6 +480,13 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.beeBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public int getRemainingPersistentAngerTime() { return this.entityData.get(DATA_REMAINING_ANGER_TIME); diff --git a/net/minecraft/world/entity/animal/Cat.java b/net/minecraft/world/entity/animal/Cat.java index d2813c68df511a2702f2b57c31f828730a9a21c8..75a63c8e8917f20b389f8194ae3089ff41e9d0ff 100644 --- a/net/minecraft/world/entity/animal/Cat.java +++ b/net/minecraft/world/entity/animal/Cat.java @@ -124,6 +124,13 @@ public class Cat extends TamableAnimal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.catBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void registerGoals() { this.temptGoal = new Cat.CatTemptGoal(this, 0.6, stack -> stack.is(ItemTags.CAT_FOOD), true); diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java index fc3291b5e1a2c3956802b268abb58189b24a7a16..ef808c4462387bb73466b33d1c3156796fea251b 100644 --- a/net/minecraft/world/entity/animal/Chicken.java +++ b/net/minecraft/world/entity/animal/Chicken.java @@ -101,6 +101,13 @@ public class Chicken extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.chickenBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/Cow.java b/net/minecraft/world/entity/animal/Cow.java index 7c4f1eadcbc13010f6b4b5748b8e0d5c822458e1..0f4f732d9501df42e0d42fe978692c4b0e3d8f0b 100644 --- a/net/minecraft/world/entity/animal/Cow.java +++ b/net/minecraft/world/entity/animal/Cow.java @@ -53,6 +53,13 @@ public class Cow extends AbstractCow { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.cowBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java index 8d69b6bb1d5efd0b47595a12acdd2088cddd5ace..6a531e5d93d42d3dca7a5e49fb2ba14063665d2e 100644 --- a/net/minecraft/world/entity/animal/Fox.java +++ b/net/minecraft/world/entity/animal/Fox.java @@ -187,6 +187,13 @@ public class Fox extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.foxBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); @@ -996,8 +1003,10 @@ public class Fox extends Animal { CriteriaTriggers.BRED_ANIMALS.trigger(serverPlayer, this.animal, this.partner, fox); } - this.animal.setAge(6000); - this.partner.setAge(6000); + // Purpur start - Make entity breeding times configurable + this.animal.setAge(this.animal.getPurpurBreedTime()); + this.partner.setAge(this.partner.getPurpurBreedTime()); + // Purpur end - Make entity breeding times configurable this.animal.resetLove(); this.partner.resetLove(); serverLevel.addFreshEntityWithPassengers(fox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java index af035af33db993cf7c573b87df576529e98a842e..24313a5dd5f5be39677ac8080ecf56703c751923 100644 --- a/net/minecraft/world/entity/animal/MushroomCow.java +++ b/net/minecraft/world/entity/animal/MushroomCow.java @@ -85,6 +85,13 @@ public class MushroomCow extends AbstractCow implements Shearable { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.mooshroomBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public float getWalkTargetValue(BlockPos pos, LevelReader level) { return level.getBlockState(pos.below()).is(Blocks.MYCELIUM) ? 10.0F : level.getPathfindingCostFromLightLevels(pos); diff --git a/net/minecraft/world/entity/animal/Ocelot.java b/net/minecraft/world/entity/animal/Ocelot.java index b05aea388ddadaa5bc28bee9f3f4d7fbf673eaa7..56b9fa9b24a9b5cf510dc6610a1b1bedf3a32d72 100644 --- a/net/minecraft/world/entity/animal/Ocelot.java +++ b/net/minecraft/world/entity/animal/Ocelot.java @@ -88,6 +88,13 @@ public class Ocelot extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.ocelotBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + public boolean isTrusting() { return this.entityData.get(DATA_TRUSTING); } diff --git a/net/minecraft/world/entity/animal/Panda.java b/net/minecraft/world/entity/animal/Panda.java index ebeed4fab4fff87ac61a3a4ef28443eb4746c3fa..cc1144d44526caa7fc7549ecaf405813b4bad1de 100644 --- a/net/minecraft/world/entity/animal/Panda.java +++ b/net/minecraft/world/entity/animal/Panda.java @@ -141,6 +141,13 @@ public class Panda extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.pandaBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected boolean canDispenserEquipIntoSlot(EquipmentSlot slot) { return slot == EquipmentSlot.MAINHAND && this.canPickUpLoot(); diff --git a/net/minecraft/world/entity/animal/Parrot.java b/net/minecraft/world/entity/animal/Parrot.java index 94031cbd5d40c9a5536b1d1c404bbe2666e8ae0a..d69992a1f729ba99f3992920cd2372a04ff60996 100644 --- a/net/minecraft/world/entity/animal/Parrot.java +++ b/net/minecraft/world/entity/animal/Parrot.java @@ -199,6 +199,13 @@ public class Parrot extends ShoulderRidingEntity implements FlyingAnimal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return 6000; + } + // Purpur end - Make entity breeding times configurable + @Nullable @Override public SpawnGroupData finalizeSpawn( diff --git a/net/minecraft/world/entity/animal/Pig.java b/net/minecraft/world/entity/animal/Pig.java index bdf0574bf6b70aa7477e1143df24e63d658bc841..f81a448a522fa7551ead16a5ac2b41460235f4b6 100644 --- a/net/minecraft/world/entity/animal/Pig.java +++ b/net/minecraft/world/entity/animal/Pig.java @@ -90,6 +90,13 @@ public class Pig extends Animal implements ItemSteerable { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.pigBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/PolarBear.java b/net/minecraft/world/entity/animal/PolarBear.java index d6f5c2573f5fd072a7eaed39790b43e7a67cf3b8..329115fcd70531c48b352008faef92e10ddc84de 100644 --- a/net/minecraft/world/entity/animal/PolarBear.java +++ b/net/minecraft/world/entity/animal/PolarBear.java @@ -124,6 +124,13 @@ public class PolarBear extends Animal implements NeutralMob { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.polarBearBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Nullable @Override public AgeableMob getBreedOffspring(ServerLevel level, AgeableMob otherParent) { diff --git a/net/minecraft/world/entity/animal/Rabbit.java b/net/minecraft/world/entity/animal/Rabbit.java index 8e3dcd912d7631bc7863a576e28f85c8d1cb2818..6c1e23e96352aa777c4e0c7d00f7620aa3f29a32 100644 --- a/net/minecraft/world/entity/animal/Rabbit.java +++ b/net/minecraft/world/entity/animal/Rabbit.java @@ -152,6 +152,13 @@ public class Rabbit extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.rabbitBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/animal/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java index 11772e81d932fae6542a0cb2d283ef91b5bbbd76..57e4cb66fbf29b992a144ca923f2e22983cc1db5 100644 --- a/net/minecraft/world/entity/animal/Turtle.java +++ b/net/minecraft/world/entity/animal/Turtle.java @@ -110,6 +110,13 @@ public class Turtle extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.turtleBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + public void setHomePos(BlockPos homePos) { this.homePos = homePos; } @@ -350,8 +357,10 @@ public class Turtle extends Animal { } this.turtle.setHasEgg(true); - this.animal.setAge(6000); - this.partner.setAge(6000); + // Purpur start - Make entity breeding times configurable + this.animal.setAge(this.animal.getPurpurBreedTime()); + this.partner.setAge(this.partner.getPurpurBreedTime()); + // Purpur end - Make entity breeding times configurable this.animal.resetLove(); this.partner.resetLove(); RandomSource random = this.animal.getRandom(); diff --git a/net/minecraft/world/entity/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java index 67a93960b3c6fe5725783ebf9f1c5b57e931f58c..0b4d1e6633ecc2e11606024d085bb9e6cca5a86b 100644 --- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java +++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java @@ -106,6 +106,13 @@ public class Armadillo extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.armadilloBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/net/minecraft/world/entity/animal/axolotl/Axolotl.java index 83b1080765eb49a8a606258bb2db8b1a7daea081..8cf67fe3807ccbe8c9cdebf9d79f1fc5e4f1a817 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -145,6 +145,13 @@ public class Axolotl extends Animal implements Bucketable { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.axolotlBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public float getWalkTargetValue(BlockPos pos, LevelReader level) { return 0.0F; diff --git a/net/minecraft/world/entity/animal/camel/Camel.java b/net/minecraft/world/entity/animal/camel/Camel.java index 6c6ef89aacbc328a2cb2dc05022998dbd79cfaf8..344edef98e13831d1238e5ae155d81b13126a696 100644 --- a/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java @@ -96,6 +96,13 @@ public class Camel extends AbstractHorse { } // Purpur end - Ridables + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.camelBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public void addAdditionalSaveData(CompoundTag compound) { super.addAdditionalSaveData(compound); diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java index 054811d807c56018617dc4a8e10af87ed15ad00c..71c09b9b8cc66d1a6f557a685539f9f4c93c0b8b 100644 --- a/net/minecraft/world/entity/animal/frog/Frog.java +++ b/net/minecraft/world/entity/animal/frog/Frog.java @@ -164,6 +164,13 @@ public class Frog extends Animal { } // Purpur end - Ridables + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.frogBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/net/minecraft/world/entity/animal/goat/Goat.java b/net/minecraft/world/entity/animal/goat/Goat.java index b922d8c37b89a5762c8ed29e6a5fa545f408511e..a04892dce1f904fad3312499352ad56853ea658e 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -131,6 +131,13 @@ public class Goat extends Animal { } // Purpur end - Ridables + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.goatBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/net/minecraft/world/entity/animal/horse/Donkey.java b/net/minecraft/world/entity/animal/horse/Donkey.java index 3aa12702cd1f4ef160180bc6ba64a6566cbddc9d..9e1100d672bfb712854d23203d0b730b8cc78a3d 100644 --- a/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/net/minecraft/world/entity/animal/horse/Donkey.java @@ -40,6 +40,13 @@ public class Donkey extends AbstractChestedHorse { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.donkeyBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public SoundEvent getAmbientSound() { return SoundEvents.DONKEY_AMBIENT; diff --git a/net/minecraft/world/entity/animal/horse/Horse.java b/net/minecraft/world/entity/animal/horse/Horse.java index e0346014de51958976459eeb6677d886e7f261ab..6c1897fadaf93e9a71f0e361a602e6d9475a4f50 100644 --- a/net/minecraft/world/entity/animal/horse/Horse.java +++ b/net/minecraft/world/entity/animal/horse/Horse.java @@ -70,6 +70,13 @@ public class Horse extends AbstractHorse { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.horseBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void randomizeAttributes(RandomSource random) { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(generateMaxHealth(random::nextInt)); diff --git a/net/minecraft/world/entity/animal/horse/Llama.java b/net/minecraft/world/entity/animal/horse/Llama.java index 10e7724d424cd39c96b91cf3de4bc4524d9311a4..db73d8821b3374341fa77fbbb3308a21abb60db6 100644 --- a/net/minecraft/world/entity/animal/horse/Llama.java +++ b/net/minecraft/world/entity/animal/horse/Llama.java @@ -146,6 +146,13 @@ public class Llama extends AbstractChestedHorse implements RangedAttackMob { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.llamaBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + public boolean isTraderLlama() { return false; } diff --git a/net/minecraft/world/entity/animal/horse/Mule.java b/net/minecraft/world/entity/animal/horse/Mule.java index 0107bb5fc029c5390d73e9a4cd08c13838a2ded5..fe2570ceb96d39ff6598a67a4ac4b4707eb28656 100644 --- a/net/minecraft/world/entity/animal/horse/Mule.java +++ b/net/minecraft/world/entity/animal/horse/Mule.java @@ -39,6 +39,13 @@ public class Mule extends AbstractChestedHorse { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.muleBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public SoundEvent getAmbientSound() { return SoundEvents.MULE_AMBIENT; diff --git a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java index b7903386ce4648ef577b1d4875866b7c268c888b..39b8b10b950359952c7b149e4fca08d68f1ad8eb 100644 --- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java +++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java @@ -65,6 +65,13 @@ public class SkeletonHorse extends AbstractHorse { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return 6000; + } + // Purpur end - Make entity breeding times configurable + public static AttributeSupplier.Builder createAttributes() { return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F); } diff --git a/net/minecraft/world/entity/animal/horse/TraderLlama.java b/net/minecraft/world/entity/animal/horse/TraderLlama.java index 4664de247745c5346f1d131b19aac0512d394647..c67f82654897bec94dce1226d5ef2ce10d53e077 100644 --- a/net/minecraft/world/entity/animal/horse/TraderLlama.java +++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java @@ -69,6 +69,13 @@ public class TraderLlama extends Llama { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.traderLlamaBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override public boolean isTraderLlama() { return true; diff --git a/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/net/minecraft/world/entity/animal/horse/ZombieHorse.java index 3d597bd355b6c918ea1bf4b7d537ad4f76e218d2..69b9ae449e58f13bf0950fdfe3f89742af89956e 100644 --- a/net/minecraft/world/entity/animal/horse/ZombieHorse.java +++ b/net/minecraft/world/entity/animal/horse/ZombieHorse.java @@ -62,6 +62,13 @@ public class ZombieHorse extends AbstractHorse { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return 6000; + } + // Purpur end - Make entity breeding times configurable + public static AttributeSupplier.Builder createAttributes() { return createBaseHorseAttributes().add(Attributes.MAX_HEALTH, 15.0).add(Attributes.MOVEMENT_SPEED, 0.2F); } diff --git a/net/minecraft/world/entity/animal/sheep/Sheep.java b/net/minecraft/world/entity/animal/sheep/Sheep.java index 7d4d13d78da258bdceae82cc57e0aa5a3e06fd7d..625f9b7bb027ccc4495d83349909be59e7a19061 100644 --- a/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java @@ -109,6 +109,13 @@ public class Sheep extends Animal implements Shearable { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.sheepBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void registerGoals() { this.eatBlockGoal = new EatBlockGoal(this); diff --git a/net/minecraft/world/entity/animal/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java index fab5a8d0974aab57a1e4a803eb4f3b47a3ee4a07..a21604d3ff3377946cbcbd57ddfa1cbb7e84dac6 100644 --- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -113,6 +113,13 @@ public class Sniffer extends Animal { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.snifferBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void defineSynchedData(SynchedEntityData.Builder builder) { super.defineSynchedData(builder); diff --git a/net/minecraft/world/entity/animal/wolf/Wolf.java b/net/minecraft/world/entity/animal/wolf/Wolf.java index cca4debfabbe60ecea9fc59514a24fc199c79003..99050a33a170b685c2fe3645b80c21b6069ab48a 100644 --- a/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java @@ -217,6 +217,13 @@ public class Wolf extends TamableAnimal implements NeutralMob { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.wolfBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @Override protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/net/minecraft/world/entity/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java index a68e9f3f96f37b6dd685fd02072f38b9e320fffc..4e300141b0c7fa967e3d0b9ef952097efeb2bef6 100644 --- a/net/minecraft/world/entity/monster/Strider.java +++ b/net/minecraft/world/entity/monster/Strider.java @@ -117,6 +117,13 @@ public class Strider extends Animal implements ItemSteerable { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.striderBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + public static boolean checkStriderSpawnRules( EntityType entityType, LevelAccessor level, EntitySpawnReason spawnReason, BlockPos pos, RandomSource random ) { diff --git a/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/net/minecraft/world/entity/monster/hoglin/Hoglin.java index 6b0eb12e9d879f22098eb2294d0d73db6ca266ed..df763444e9935b8f43ea65b3695c715993903fb8 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -120,6 +120,13 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { } // Purpur end - Configurable entity base attributes + // Purpur start - Make entity breeding times configurable + @Override + public int getPurpurBreedTime() { + return this.level().purpurConfig.hoglinBreedingTicks; + } + // Purpur end - Make entity breeding times configurable + @VisibleForTesting public void setTimeInOverworld(int timeInOverworld) { this.timeInOverworld = timeInOverworld;