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 235f6514328338d28c2bf967bcd06f1413f12c65..4d99a1bf2dc141630a76942ccbf1f60824cf7495 100644 --- a/net/minecraft/world/entity/animal/Animal.java +++ b/net/minecraft/world/entity/animal/Animal.java @@ -43,6 +43,7 @@ public abstract class Animal extends AgeableMob { @Nullable public EntityReference 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); @@ -279,8 +280,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 bdb16d355dac48760c9a083303035265f6a1fc74..11a7cbb1781e396ecb2b9fdbad7af2c55ea2606a 100644 --- a/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java @@ -481,6 +481,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 d429beb03da8b499f19c3ed721b110d916849698..5e6a66c1a3532d39dae82eaeb2428605536e2155 100644 --- a/net/minecraft/world/entity/animal/Cat.java +++ b/net/minecraft/world/entity/animal/Cat.java @@ -125,6 +125,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 6f6d99c075b3e402742e3c7401dea366f2d871b6..e4702a5a89147bd83fa73a969fab7077ddd623f6 100644 --- a/net/minecraft/world/entity/animal/Chicken.java +++ b/net/minecraft/world/entity/animal/Chicken.java @@ -102,6 +102,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 9dbc5f7b3896acb199577afa85451da38f2d2a01..753ed26cc6bfc8276d4405091b78b0e50182b84a 100644 --- a/net/minecraft/world/entity/animal/Cow.java +++ b/net/minecraft/world/entity/animal/Cow.java @@ -54,6 +54,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 869a0154c81593db8933f9daa6a7d3a9d02facc5..37b6bfa8dc1fd4ed0006f6531d2056bcd3c3abae 100644 --- a/net/minecraft/world/entity/animal/Fox.java +++ b/net/minecraft/world/entity/animal/Fox.java @@ -188,6 +188,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); @@ -993,8 +1000,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/HappyGhast.java b/net/minecraft/world/entity/animal/HappyGhast.java index 3bdfd064ba3985e7f3d1c537d60908568678ec78..9b101015f7add4821fb863255294ba2171f5405f 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java @@ -146,6 +146,13 @@ public class HappyGhast extends Animal { } // 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 + @Override protected void ageBoundaryReached() { if (this.isBaby()) { diff --git a/net/minecraft/world/entity/animal/MushroomCow.java b/net/minecraft/world/entity/animal/MushroomCow.java index 8cfbe37df24647c3f0a2d64bcc3451de1402c86f..3e4cb7680e6082ebab95e2b8307eedb0d3fcfbcd 100644 --- a/net/minecraft/world/entity/animal/MushroomCow.java +++ b/net/minecraft/world/entity/animal/MushroomCow.java @@ -86,6 +86,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 84664a62dcae89dff1b63b0ac952756440ee090f..c4ed3f906d4b47c07915afd07db7a731e99b7215 100644 --- a/net/minecraft/world/entity/animal/Ocelot.java +++ b/net/minecraft/world/entity/animal/Ocelot.java @@ -89,6 +89,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 4ec69b45049b2c947e0d9ef71619e8acd358e7ad..c7686698a9615a51c653658cf6a46ccfb9c4d168 100644 --- a/net/minecraft/world/entity/animal/Panda.java +++ b/net/minecraft/world/entity/animal/Panda.java @@ -142,6 +142,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 d997102941a6add1b116053c119bcd6690eb42a5..6019406d7c7e51c53d8822e44070e626091495af 100644 --- a/net/minecraft/world/entity/animal/Parrot.java +++ b/net/minecraft/world/entity/animal/Parrot.java @@ -201,6 +201,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 9f511a6a2692dc46c14e0e0e59518c0a3040cfb9..885135fb301eeb6149aa53d581b4073d3724264d 100644 --- a/net/minecraft/world/entity/animal/Pig.java +++ b/net/minecraft/world/entity/animal/Pig.java @@ -91,6 +91,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 28919a96de837a15d116c6b863eba5c8a1cf6a7b..e39ca22a871c911defdbfe1cb0f1b15cde8d4612 100644 --- a/net/minecraft/world/entity/animal/PolarBear.java +++ b/net/minecraft/world/entity/animal/PolarBear.java @@ -125,6 +125,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 d74b492c5d1c3a323106b5de5bbf595a38d976a1..5fc1d6ba3cb54f2ea8c6fe3f994ffea2cca5784b 100644 --- a/net/minecraft/world/entity/animal/Rabbit.java +++ b/net/minecraft/world/entity/animal/Rabbit.java @@ -153,6 +153,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 e26b97e92ecfadb351e91aeae38beb4c4da87e26..f5735e5bcc34b78db544aa8971234bc86e0ddfa9 100644 --- a/net/minecraft/world/entity/animal/Turtle.java +++ b/net/minecraft/world/entity/animal/Turtle.java @@ -111,6 +111,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; } @@ -351,8 +358,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 e4c8376c009984e40b90c01f78c65e76e260ee0b..0da5c51c4830cf1826261f4d8877303b34c6cb87 100644 --- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java +++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java @@ -107,6 +107,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 17b20b36a3edafaea089288d22ad3e07795b9770..e32a78cb9574505d78f3e298a38a28a2422d34b3 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -147,6 +147,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 f45d1ba8dc0bb4b7041c5efba5d6261a3a5f5ff4..0c698241b10f84afb17ae10d3661a90bc62ec243 100644 --- a/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java @@ -98,6 +98,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 protected void addAdditionalSaveData(ValueOutput output) { super.addAdditionalSaveData(output); diff --git a/net/minecraft/world/entity/animal/frog/Frog.java b/net/minecraft/world/entity/animal/frog/Frog.java index 0bb0c875b12c94e9fb42b81210c5935cb5efecf8..1d5079602e7ae1042e2bb92209dded4007f703da 100644 --- a/net/minecraft/world/entity/animal/frog/Frog.java +++ b/net/minecraft/world/entity/animal/frog/Frog.java @@ -165,6 +165,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 f106d5bbbe9227b2c7cc4cc24ade57d8df9b4e10..8da2cdf5a308b4c1359f94127934ee90e9cef558 100644 --- a/net/minecraft/world/entity/animal/goat/Goat.java +++ b/net/minecraft/world/entity/animal/goat/Goat.java @@ -132,6 +132,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 53c0eac62018a0d88e30b8c13de94216ff829cd8..3678c767818abb9e4180c2ade378ca09761ad784 100644 --- a/net/minecraft/world/entity/animal/horse/Horse.java +++ b/net/minecraft/world/entity/animal/horse/Horse.java @@ -71,6 +71,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 3bc0f670a84216e5a62d1e3a9fb26bd85a0cd79a..45d0977b5016a8728b11ec13c528b160598c80e2 100644 --- a/net/minecraft/world/entity/animal/horse/Llama.java +++ b/net/minecraft/world/entity/animal/horse/Llama.java @@ -154,6 +154,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 a7bcc0ff10e429ebfe91173c392e9a0c07903289..042b73f0807438327ebf4a2fd3a9d54d52159511 100644 --- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java +++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java @@ -66,6 +66,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 39175d4537e84ef39bcbdafc5200ed7b14482d62..b36064e58ecc1512fed2d53c20bde333a405e8b0 100644 --- a/net/minecraft/world/entity/animal/horse/TraderLlama.java +++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java @@ -70,6 +70,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 8e4a14ca6a0cef1c52c64de3502077d7d25b0308..1fee6d36abe42ff9998287c47d0f498bbba910e3 100644 --- a/net/minecraft/world/entity/animal/sheep/Sheep.java +++ b/net/minecraft/world/entity/animal/sheep/Sheep.java @@ -87,6 +87,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 683c9f82bfb2306f81b094464462d7d372ef5b22..9ad310cbc5fa41c949a37c1a5db6d6cd024f1483 100644 --- a/net/minecraft/world/entity/animal/sniffer/Sniffer.java +++ b/net/minecraft/world/entity/animal/sniffer/Sniffer.java @@ -114,6 +114,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 7326debf3725844bfe8730dab480da7b1d6e99aa..372360baedbe4f8b59e94c261bc60346ba3cfbbe 100644 --- a/net/minecraft/world/entity/animal/wolf/Wolf.java +++ b/net/minecraft/world/entity/animal/wolf/Wolf.java @@ -216,6 +216,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 c2de8c58f43a43df77f28e077fbbf00e0f930ba7..298246318f5103ff416f076467d3b6bfec297c5e 100644 --- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -121,6 +121,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;