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 f673a7e78729edf13f094d547a0b995ea9ae7146..0fa52865c293e74c9e5f3d1fd93a0e24435a9055 100644 --- a/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java +++ b/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java @@ -117,8 +117,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 834a7d6b0a332c1c3f32ab8797fe1d3cb45159c1..8405cbe7754b916e3d3a39318685fb91af5edce2 100644 --- a/net/minecraft/world/entity/animal/Animal.java +++ b/net/minecraft/world/entity/animal/Animal.java @@ -41,6 +41,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); @@ -267,8 +268,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 0238bbbd85100dd107a11c00fd19d2250766b11e..a5e0edd6da8675643f3a4d63199e8cd865a6d836 100644 --- a/net/minecraft/world/entity/animal/Bee.java +++ b/net/minecraft/world/entity/animal/Bee.java @@ -483,6 +483,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 50c8030a9ac6d1fc465cdf6ffbc88f85933405b0..8066bdf7c3b8ea37c9649a6f236fd8531b33f951 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 597250765504186f7e01b3b88c7428258938afb3..95dd6d0aa45330fb09e430d920ab92411ea8926e 100644 --- a/net/minecraft/world/entity/animal/HappyGhast.java +++ b/net/minecraft/world/entity/animal/HappyGhast.java @@ -145,6 +145,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 eede8c36b351eb7bd555a0e6e362647e11dbeb2d..5bca000fc9b8ba992e5285ef34b96b5fbcaae0da 100644 --- a/net/minecraft/world/entity/animal/MushroomCow.java +++ b/net/minecraft/world/entity/animal/MushroomCow.java @@ -87,6 +87,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 9f3ab67cf17c4f66da8bec0c9b818025ef303040..bc81c68fda213f3d64be5f480ae87264c581a52a 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 b31e2ef8a498fe33107a5c4ee2b4e056a44027cc..83110d64ab7fd9b30a9fee1c5240c3de11c2514a 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 24f7e486dec1714d917342887afaf775ef6300d5..35afe8dc9fb3ad6e9103f4fb60742ad70d933f85 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 39f6a3f3ea5f7e51580b7cbf9bbfd4a04368a380..50d20169b0a8ccc78e8573d26663e800f70a9f66 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 75eb4a6dd43346622d6c528aa6e66d251167d3ac..63fae10cea012f6f00a52d375e39b64538f88208 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 b644b85f2509f584770dee11677e5bfeef4a46a2..ec2620726f84a59312b03044b181ca436122d9bb 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 b9dd8a359711a1993b515fda4b81e61d28a4da49..966f21d90996a9c162e3f60ff53edb53507645b3 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 c77284ba3dc3c2eb13ba97bbdcdea7c4a864c195..33e678dca2a5f50eadcf6719822190cedf5265dd 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 9bec0aa8cf669d68f9cdb87621024ac4dfe217c9..a56ff850de466a592855a9bf2bc395c2e4b97c17 100644 --- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -146,6 +146,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 3a794ff3d68c86b4e5ef93ff8f5cedfa07d22f99..bb750bcc35a3dd75c112dea445595ab27cc15fd5 100644 --- a/net/minecraft/world/entity/animal/camel/Camel.java +++ b/net/minecraft/world/entity/animal/camel/Camel.java @@ -97,6 +97,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 054fb0c62a827e708e2195c4d4991e24df2eca78..295a907236c2f0ad4038a86edef45374da906d98 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 330fe06b0b1d4c25c69acde22c2e9c00e0756a52..52d35093b9fc84e27b4c4e62883a7e581e8c0f5b 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 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 fb2b45b85d9f8ae5546573a31cf0d5a39dad149c..d6ae23d48dacb3f445465daf755e6fe7ad8c9c70 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 db07a476fdaa1cfde2b44be77cdc5a17a17bd898..09769f47dc2849ee9eeb60b3c4edb7536a5cf87d 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 a36ce4568ae173edaeab04b580c88c5389487bd5..eca2b9e1b92ba626eb6203dbc5678976f43bdc29 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 04c80778f9ce75e337c6c97e8fe6c47f275a558c..93dc1c39d1d61a0f3c2b84e239dc083ee0abec65 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 70753293961f73f917973c35e1d3fb81b836f1f8..c8966878b861ba8ecf1be1ca830742d2b4e76864 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 255d4d0cd8f48bf09232cd0fecb87f430e68084a..eb33b66fa3bc705552b6abf2d8e941e84cdda60e 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 c74c6409ce61f9d4d728b6ce6693bb7ba665e474..b19717af413f739abf632050409db25e2e85e0c6 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;