Files
Purpur/purpur-server/minecraft-patches/features/0013-Make-entity-breeding-times-configurable.patch
William Blake Galbreath 33fe2966e6 Phantom flames on swoop
2025-01-14 11:51:16 -08:00

599 lines
28 KiB
Diff

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 4fb63e58eac5d67fcd31c3233dca1dae72b98bc4..dd8d315eba203db121e24e3402f2117fc0f3043f 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<Villager> {
return Optional.empty();
}
// Move age setting down
- 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
level.broadcastEntityEvent(breedOffspring, (byte)12);
diff --git a/net/minecraft/world/entity/animal/Animal.java b/net/minecraft/world/entity/animal/Animal.java
index 33c3752be451508343cad83766da7c3be1822d02..fa34e7f1c20dfd569b52a9c8e0a8d4d5e659ce20 100644
--- a/net/minecraft/world/entity/animal/Animal.java
+++ b/net/minecraft/world/entity/animal/Animal.java
@@ -40,6 +40,7 @@ public abstract class Animal extends AgeableMob {
@Nullable
public UUID loveCause;
public ItemStack breedItem; // CraftBukkit - Add breedItem variable
+ public abstract int getPurpurBreedTime(); // Purpur - Make entity breeding times configurable
protected Animal(EntityType<? extends Animal> 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
- 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 bcf554054111f85b095341a5455856ee79f3ade6..62fbaed0f81b900730ab22b969ffd48d31a268ce 100644
--- a/net/minecraft/world/entity/animal/Bee.java
+++ b/net/minecraft/world/entity/animal/Bee.java
@@ -479,6 +479,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 ec56ba8da89cccdf37abb26b75e524ee98a2f29c..f0b7025e5a0d9f2aeb42dec388c1c532a46ece35 100644
--- a/net/minecraft/world/entity/animal/Cat.java
+++ b/net/minecraft/world/entity/animal/Cat.java
@@ -126,6 +126,13 @@ public class Cat extends TamableAnimal implements VariantHolder<Holder<CatVarian
}
// 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, itemStack -> itemStack.is(ItemTags.CAT_FOOD), true);
diff --git a/net/minecraft/world/entity/animal/Chicken.java b/net/minecraft/world/entity/animal/Chicken.java
index d718f0ed362c49803260dceed64bd93e2b6744fc..39ad1729ef03fc35a6365ee215be214eccfd959a 100644
--- a/net/minecraft/world/entity/animal/Chicken.java
+++ b/net/minecraft/world/entity/animal/Chicken.java
@@ -81,6 +81,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 d2a4bfa5334f7361067e4adac36ba5a4a4fa6ad8..e4965300eb41512d03a0b111422c98627cf29a54 100644
--- a/net/minecraft/world/entity/animal/Cow.java
+++ b/net/minecraft/world/entity/animal/Cow.java
@@ -63,6 +63,13 @@ public class Cow extends Animal {
}
// 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 registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/net/minecraft/world/entity/animal/Fox.java b/net/minecraft/world/entity/animal/Fox.java
index 8bf893837586ae2a9b4ef7564d242e16e4863b5d..1acf9b8c9e6a5915b3f095e83d3f209708947093 100644
--- a/net/minecraft/world/entity/animal/Fox.java
+++ b/net/minecraft/world/entity/animal/Fox.java
@@ -175,6 +175,13 @@ public class Fox extends Animal implements VariantHolder<Fox.Variant> {
}
// 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);
@@ -969,8 +976,10 @@ public class Fox extends Animal implements VariantHolder<Fox.Variant> {
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 990723c31aa1040a4e45b9857a18d86287ef91b4..a64b609bf5ce38a252bfa1bcff869f88e14389b5 100644
--- a/net/minecraft/world/entity/animal/MushroomCow.java
+++ b/net/minecraft/world/entity/animal/MushroomCow.java
@@ -79,6 +79,13 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder<Mushroo
}
// 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 1346556aa3a704930f1d278b65c6a2a904e41488..c76dff55f28f63be407c438f0c6ed634185d7b6b 100644
--- a/net/minecraft/world/entity/animal/Ocelot.java
+++ b/net/minecraft/world/entity/animal/Ocelot.java
@@ -87,6 +87,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 5b07dff937c8873300eabecf1c510cf562fae4f3..450c7be36846bf4e95f84615fca893501415cdbc 100644
--- a/net/minecraft/world/entity/animal/Panda.java
+++ b/net/minecraft/world/entity/animal/Panda.java
@@ -140,6 +140,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 0d78ebe27928006f11e9b49380d6a759d273645d..1020e28a8c82b786a317098e2072d1a16f8964f0 100644
--- a/net/minecraft/world/entity/animal/Parrot.java
+++ b/net/minecraft/world/entity/animal/Parrot.java
@@ -194,6 +194,13 @@ public class Parrot extends ShoulderRidingEntity implements VariantHolder<Parrot
}
// 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 7df848bd9c4cf98fbd431a8cae16a2df86ec5e2b..801365d71b5b733e2dce54211e08d26d7f45f4d9 100644
--- a/net/minecraft/world/entity/animal/Pig.java
+++ b/net/minecraft/world/entity/animal/Pig.java
@@ -81,6 +81,13 @@ public class Pig extends Animal implements ItemSteerable, Saddleable {
}
// 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 913439a769a36521ba59d59cba4d6878d3186254..365ad366bd0077619b0f6b5d26ed41038da0397e 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 e71161ecc9d4ee3fe29fa3a27d11d63e1a28d1a0..bbdd06002b07699fffebdf6ed8148abdb69c24cc 100644
--- a/net/minecraft/world/entity/animal/Rabbit.java
+++ b/net/minecraft/world/entity/animal/Rabbit.java
@@ -145,6 +145,13 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
}
// 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/Sheep.java b/net/minecraft/world/entity/animal/Sheep.java
index b66440f5cfbd714c6d2f5b7f66b4e755602b4521..882c799cb66a2acada33ff24f3adb7eb611f89c1 100644
--- a/net/minecraft/world/entity/animal/Sheep.java
+++ b/net/minecraft/world/entity/animal/Sheep.java
@@ -106,6 +106,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/Turtle.java b/net/minecraft/world/entity/animal/Turtle.java
index 4f0fbbb2caeda6d1477d3297fd68f802e4f3a9ca..edbccb7ca27aa8a1917eb8b35b3ba8600c91111a 100644
--- a/net/minecraft/world/entity/animal/Turtle.java
+++ b/net/minecraft/world/entity/animal/Turtle.java
@@ -109,6 +109,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.entityData.set(HOME_POS, homePos);
}
diff --git a/net/minecraft/world/entity/animal/Wolf.java b/net/minecraft/world/entity/animal/Wolf.java
index 710d37dc7623738ce8d8310eaecec8e3a1bc63f0..3e1cb63c1658dccc3bee53ed82ff5b5b7f321afd 100644
--- a/net/minecraft/world/entity/animal/Wolf.java
+++ b/net/minecraft/world/entity/animal/Wolf.java
@@ -210,6 +210,13 @@ public class Wolf extends TamableAnimal implements NeutralMob, VariantHolder<Hol
}
// 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/animal/armadillo/Armadillo.java b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
index c10ebb66dec26b6ccc223e98effa0b9a68363626..90bcd8c79cccbcbe7ff3fd2534e0c3450b970bd4 100644
--- a/net/minecraft/world/entity/animal/armadillo/Armadillo.java
+++ b/net/minecraft/world/entity/animal/armadillo/Armadillo.java
@@ -105,6 +105,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 f2f09a529e9db88784ff4299fdf3966046c736ab..07eee1f82331a2172aede02219a7eae8e82c7b59 100644
--- a/net/minecraft/world/entity/animal/axolotl/Axolotl.java
+++ b/net/minecraft/world/entity/animal/axolotl/Axolotl.java
@@ -140,6 +140,13 @@ public class Axolotl extends Animal implements VariantHolder<Axolotl.Variant>, B
}
// 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 1d7e2358bac193af48dc4b7f5b0295e3bffa152b..1d7ae2a08968860636918e7c66b60139a9d761b4 100644
--- a/net/minecraft/world/entity/animal/camel/Camel.java
+++ b/net/minecraft/world/entity/animal/camel/Camel.java
@@ -90,6 +90,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 9a400c8bf2b54aa5fbcbe65b61670cac5fbebf05..c4ea9485294b7dec2582c638802f003ad70659b6 100644
--- a/net/minecraft/world/entity/animal/frog/Frog.java
+++ b/net/minecraft/world/entity/animal/frog/Frog.java
@@ -165,6 +165,12 @@ public class Frog extends Animal implements VariantHolder<Holder<FrogVariant>> {
}
// 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<Frog> 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 9924a39953fb49954d02c771ae1a51411226ceac..e7337eaa2813c30b92fd518f12ef4ba0c17ec6a3 100644
--- a/net/minecraft/world/entity/animal/goat/Goat.java
+++ b/net/minecraft/world/entity/animal/goat/Goat.java
@@ -128,6 +128,12 @@ 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<Goat> 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 223f1d109680e3643ab2c8343be22713e89755fd..b977597785df5665176ab2f330633ec61b7c9feb 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
protected 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 8bd118e82da9e4d4153de0a3efaf6d69e3c4c540..0339ab08b3029a9ffc102c5b865e411aca2a863c 100644
--- a/net/minecraft/world/entity/animal/horse/Horse.java
+++ b/net/minecraft/world/entity/animal/horse/Horse.java
@@ -67,6 +67,13 @@ public class Horse extends AbstractHorse implements VariantHolder<Variant> {
}
// 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 8b6beeff7ad0c7ca7bc09f505891f560096d5c9a..67413d7c1cbef72a9068b33ea69125315aa35565 100644
--- a/net/minecraft/world/entity/animal/horse/Llama.java
+++ b/net/minecraft/world/entity/animal/horse/Llama.java
@@ -141,6 +141,13 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
}
// 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 d0d6b511dbd4f992d11f06e7539b0c1034250660..20458799fdcfa16bdd1c22df74b414000b110f82 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
protected 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 6cc64c7e2f50a311460cd5d7ffa9545e5d7e0b02..0ce71ab6a28a5fbff9d71793b855c116b31729fc 100644
--- a/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -63,6 +63,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 715cb8046e1fb9ac929d81709777bf4ae9323d46..870775ce8a1bd09d35bf85551e1af3a6edfefc0e 100644
--- a/net/minecraft/world/entity/animal/horse/TraderLlama.java
+++ b/net/minecraft/world/entity/animal/horse/TraderLlama.java
@@ -68,6 +68,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 8da61e14f2470dfb191d9dfaf19c713584b8e9b8..cdff0fab8a256c1e06e280500a31d4a99659d1ee 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/sniffer/Sniffer.java b/net/minecraft/world/entity/animal/sniffer/Sniffer.java
index a5ff61a3697e2299c96288b6f8d7c6f2511d86d5..11a5da22149a61ca48bbb0a8ed10b71e91a5cc98 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/monster/Strider.java b/net/minecraft/world/entity/monster/Strider.java
index 30cfd9b98f84f2aaa80aab529574d993b6d65c96..10ce387c4bb0529624d78e0ae41423e15530793f 100644
--- a/net/minecraft/world/entity/monster/Strider.java
+++ b/net/minecraft/world/entity/monster/Strider.java
@@ -119,6 +119,13 @@ public class Strider extends Animal implements ItemSteerable, Saddleable {
}
// 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<Strider> 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 54924cd7c84cbcd22ffc0bd37fc24f24e73c18bc..b2edc0723a0d60801716cec31abf7403a06a903a 100644
--- a/net/minecraft/world/entity/monster/hoglin/Hoglin.java
+++ b/net/minecraft/world/entity/monster/hoglin/Hoglin.java
@@ -122,6 +122,12 @@ public class Hoglin extends Animal implements Enemy, HoglinBase {
this.timeInOverworld = timeInOverworld;
}
+ // Purpur start - Make entity breeding times configurable
+ @Override
+ public int getPurpurBreedTime() {
+ return this.level().purpurConfig.hoglinBreedingTicks;
+ }
+ // Purpur end - Make entity breeding times configurable
@Override
public boolean canBeLeashed() {
return true;