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/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java index 0951c04533e7c39b969d041271684355770b53c2..02d4ba2ccdce99ca97614baa7c8e49213126af96 100644 --- a/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/VillagerMakeLove.java @@ -123,8 +123,10 @@ public class VillagerMakeLove extends Behavior { return Optional.empty(); } // CraftBukkit end - parent.setAge(6000); - partner.setAge(6000); + // Purpur start + parent.setAge(world.purpurConfig.villagerBreedingTicks); + partner.setAge(world.purpurConfig.villagerBreedingTicks); + // Purpur end world.addFreshEntityWithPassengers(entityvillager2, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason world.broadcastEntityEvent(entityvillager2, (byte) 12); return Optional.of(entityvillager2); diff --git a/src/main/java/net/minecraft/world/entity/animal/Animal.java b/src/main/java/net/minecraft/world/entity/animal/Animal.java index e3a0a2914db92c95c894174e3815e3eca8d70826..4643c07bc2a26e7886b714514b7a4a059835af64 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Animal.java +++ b/src/main/java/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 protected Animal(EntityType type, Level world) { super(type, world); @@ -272,8 +273,10 @@ public abstract class Animal extends AgeableMob { entityplayer.awardStat(Stats.ANIMALS_BRED); CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer, this, entityanimal, entityageable); }); - this.setAge(6000); - entityanimal.setAge(6000); + // Purpur start + this.setAge(this.getPurpurBreedTime()); + entityanimal.setAge(entityanimal.getPurpurBreedTime()); + // Purpur end this.resetLove(); entityanimal.resetLove(); worldserver.broadcastEntityEvent(this, (byte) 18); diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java index 5c1d0546c014c3a739311c8a8432e5cd1d8cacbc..e0ab585b708fd58db9688fc4631eaacd79a7c8a3 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -471,6 +471,11 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue(this.level.purpurConfig.beeMaxHealth); } + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.beeBreedingTicks; + } + @Override public int getRemainingPersistentAngerTime() { return (Integer) this.entityData.get(Bee.DATA_REMAINING_ANGER_TIME); diff --git a/src/main/java/net/minecraft/world/entity/animal/Cat.java b/src/main/java/net/minecraft/world/entity/animal/Cat.java index 845781610102d2ef89522619b8059073cc48b75d..a312e8ff4e4cd3328f0586348a2eff3deaf4617d 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cat.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cat.java @@ -127,6 +127,11 @@ public class Cat extends TamableAnimal implements VariantHolder { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.catBreedingTicks; + } + public ResourceLocation getResourceLocation() { return this.getVariant().texture(); } diff --git a/src/main/java/net/minecraft/world/entity/animal/Chicken.java b/src/main/java/net/minecraft/world/entity/animal/Chicken.java index bf281b45979e16551fe4777ff69fb9ef67d1f839..5ad29dda33d3d7442992b2d47f44d419dda3021b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Chicken.java +++ b/src/main/java/net/minecraft/world/entity/animal/Chicken.java @@ -79,6 +79,11 @@ public class Chicken extends Animal { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.chickenBreedingTicks; + } + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Cow.java b/src/main/java/net/minecraft/world/entity/animal/Cow.java index 07d60d3f49a4ed67cc4739baddbb41818b557eb1..fd8ec46ccb691d7f85a7a6bb44e1d0db3703b4d6 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Cow.java +++ b/src/main/java/net/minecraft/world/entity/animal/Cow.java @@ -65,6 +65,11 @@ public class Cow extends Animal { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.cowBreedingTicks; + } + @Override protected void registerGoals() { this.goalSelector.addGoal(0, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/Fox.java b/src/main/java/net/minecraft/world/entity/animal/Fox.java index 71fba6fd95f362916e93e89b626dad7c7a72da0b..2232af2cef82014570596c122e11a47d3ae15b9b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Fox.java +++ b/src/main/java/net/minecraft/world/entity/animal/Fox.java @@ -186,6 +186,11 @@ public class Fox extends Animal implements VariantHolder { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.foxBreedingTicks; + } + @Override protected void defineSynchedData() { super.defineSynchedData(); @@ -981,8 +986,10 @@ public class Fox extends Animal implements VariantHolder { CriteriaTriggers.BRED_ANIMALS.trigger(entityplayer2, this.animal, this.partner, entityfox); } - this.animal.setAge(6000); - this.partner.setAge(6000); + // Purpur start + this.animal.setAge(this.animal.getPurpurBreedTime()); + this.partner.setAge(this.partner.getPurpurBreedTime()); + // Purpur end this.animal.resetLove(); this.partner.resetLove(); worldserver.addFreshEntityWithPassengers(entityfox, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.BREEDING); // CraftBukkit - added SpawnReason diff --git a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java index 3e798a9d94963dc39ec4a81265fa659b6cfe5db8..6bc5cca1c0896dda25af505e7ff3d68e5e83a54b 100644 --- a/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java +++ b/src/main/java/net/minecraft/world/entity/animal/MushroomCow.java @@ -85,6 +85,11 @@ public class MushroomCow extends Cow implements Shearable, VariantHolder { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.rabbitBreedingTicks; + } + // CraftBukkit start - code from constructor public void initializePathFinderGoals(){ this.setSpeedModifier(0.0D); diff --git a/src/main/java/net/minecraft/world/entity/animal/Sheep.java b/src/main/java/net/minecraft/world/entity/animal/Sheep.java index 99ed0cf1bb04df94f3ac3b9acd2076a26d43ab1e..fbaa05f3564aeaf31bfaac34ef0112d11869a2c8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Sheep.java +++ b/src/main/java/net/minecraft/world/entity/animal/Sheep.java @@ -139,6 +139,11 @@ public class Sheep extends Animal implements Shearable { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.sheepBreedingTicks; + } + @Override protected void registerGoals() { this.eatBlockGoal = new EatBlockGoal(this); diff --git a/src/main/java/net/minecraft/world/entity/animal/Turtle.java b/src/main/java/net/minecraft/world/entity/animal/Turtle.java index 68b50ffd17e4061c0dba0fb3452cb86014c88e89..726b53822d115fdd6f8911258ff9fc612a4ad54e 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Turtle.java +++ b/src/main/java/net/minecraft/world/entity/animal/Turtle.java @@ -105,6 +105,11 @@ public class Turtle extends Animal { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.turtleBreedingTicks; + } + public void setHomePos(BlockPos pos) { this.entityData.set(Turtle.HOME_POS, pos.immutable()); // Paper - called with mutablepos... } diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java index d74b9426116770ad42b5ceb85ce9a19fe11db74a..3cd49c57d6dc4b0db31c3ac40447c89ce7e193d7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -129,6 +129,11 @@ public class Wolf extends TamableAnimal implements NeutralMob { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.wolfBreedingTicks; + } + @Override protected void registerGoals() { this.goalSelector.addGoal(1, new FloatGoal(this)); diff --git a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java index 11f24bf5886ffccd05b8f78ce960fa3c1ad76856..be44bbd6dd3278ae533f07bbd1f4fb3727f177b7 100644 --- a/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java +++ b/src/main/java/net/minecraft/world/entity/animal/axolotl/Axolotl.java @@ -120,6 +120,11 @@ public class Axolotl extends Animal implements LerpingModel, VariantHolder getModelRotationValues() { return this.modelRotationValues; diff --git a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java index 95fbdb0e9c59edeb647fe0e5d51d5e6a35152cd6..eb7c9846aa01ec0f5e46c24005110b6e6961e295 100644 --- a/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java +++ b/src/main/java/net/minecraft/world/entity/animal/camel/Camel.java @@ -84,6 +84,13 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Rider groundPathNavigation.setCanWalkOverFences(true); } + // Purpur start + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.camelBreedingTicks; + } + // Purpur end + @Override public void addAdditionalSaveData(CompoundTag nbt) { super.addAdditionalSaveData(nbt); diff --git a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java index b6751a90d5ae004accd08ad23c12e18b7abe2118..2cde912c79656199d31bea2d0c84d72cfb1b2a05 100644 --- a/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java +++ b/src/main/java/net/minecraft/world/entity/animal/frog/Frog.java @@ -136,6 +136,10 @@ public class Frog extends Animal implements VariantHolder { } // Purpur end + public int getPurpurBreedTime() { + return this.level.purpurConfig.frogBreedingTicks; + } + @Override protected Brain.Provider brainProvider() { return Brain.provider(MEMORY_TYPES, SENSOR_TYPES); diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java index b1d78fd5674826b021b9f300647b1957daa8ba08..4f7256e6e130be1e84be3b2979b836021460aceb 100644 --- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java +++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java @@ -106,6 +106,11 @@ public class Goat extends Animal { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.goatBreedingTicks; + } + @Override protected Brain.Provider brainProvider() { return Brain.provider(Goat.MEMORY_TYPES, Goat.SENSOR_TYPES); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java index e0568b3401f42ffd5cfd35da52c0a20d8626776e..a9e04b76c0a3831e6b136136ae15dd9884d68148 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Donkey.java @@ -37,6 +37,11 @@ public class Donkey extends AbstractChestedHorse { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.donkeyBreedingTicks; + } + @Override protected SoundEvent getAmbientSound() { return SoundEvents.DONKEY_AMBIENT; diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java index 508111fef316d765d284af31263d5c0dda751774..65fec83d96a02bd3b7c9ba034db95a2bb0833dba 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Horse.java @@ -62,6 +62,11 @@ public class Horse extends AbstractHorse implements VariantHolder { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.horseBreedingTicks; + } + @Override protected void randomizeAttributes(RandomSource random) { this.getAttribute(Attributes.MAX_HEALTH).setBaseValue((double)generateMaxHealth(random::nextInt)); diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java index 9dbfefa7311d4c0f6805fce24429bec2739c6c49..80a7bc90fb4040afd2f7f0b19f5f6dbb6f9d13e8 100644 --- a/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java +++ b/src/main/java/net/minecraft/world/entity/animal/horse/Llama.java @@ -138,6 +138,11 @@ public class Llama extends AbstractChestedHorse implements VariantHolder type, LevelAccessor world, MobSpawnType spawnReason, BlockPos pos, RandomSource random) { BlockPos.MutableBlockPos blockposition_mutableblockposition = pos.mutable(); diff --git a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java index 419377b795f88a8ab67e048e78292a1387ca13e1..35f7f7c75c740760f95eeaef91287a6a0ec3c3cc 100644 --- a/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/Hoglin.java @@ -89,6 +89,11 @@ public class Hoglin extends Animal implements Enemy, HoglinBase { } // Purpur end + @Override + public int getPurpurBreedTime() { + return this.level.purpurConfig.hoglinBreedingTicks; + } + @Override public boolean canBeLeashed(Player player) { return !this.isLeashed(); diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 1e1cfe78113742ea865ca56d5bbf01483d2e0a2c..0eda8243f19af580e6ca20bf1583e0f4d6c5504f 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -480,8 +480,10 @@ public class PurpurWorldConfig { } public double axolotlMaxHealth = 14.0D; + public int axolotlBreedingTicks = 6000; private void axolotlSettings() { axolotlMaxHealth = getDouble("mobs.axolotl.attributes.max_health", axolotlMaxHealth); + axolotlBreedingTicks = getInt("mobs.axolotl.breeding-delay-ticks", axolotlBreedingTicks); } public double batMaxHealth = 6.0D; @@ -509,6 +511,7 @@ public class PurpurWorldConfig { } public double beeMaxHealth = 10.0D; + public int beeBreedingTicks = 6000; private void beeSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.bee.attributes.max-health", beeMaxHealth); @@ -516,6 +519,7 @@ public class PurpurWorldConfig { set("mobs.bee.attributes.max_health", oldValue); } beeMaxHealth = getDouble("mobs.bee.attributes.max_health", beeMaxHealth); + beeBreedingTicks = getInt("mobs.bee.breeding-delay-ticks", beeBreedingTicks); } public double blazeMaxHealth = 20.0D; @@ -528,6 +532,7 @@ public class PurpurWorldConfig { blazeMaxHealth = getDouble("mobs.blaze.attributes.max_health", blazeMaxHealth); } + public int camelBreedingTicks = 6000; public double camelMaxHealthMin = 32.0D; public double camelMaxHealthMax = 32.0D; public double camelJumpStrengthMin = 0.42D; @@ -541,12 +546,14 @@ public class PurpurWorldConfig { camelJumpStrengthMax = getDouble("mobs.camel.attributes.jump_strength.max", camelJumpStrengthMax); camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin); camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax); + camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks); } public double catMaxHealth = 10.0D; public int catSpawnDelay = 1200; public int catSpawnSwampHutScanRange = 16; public int catSpawnVillageScanRange = 48; + public int catBreedingTicks = 6000; private void catSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.cat.attributes.max-health", catMaxHealth); @@ -557,6 +564,7 @@ public class PurpurWorldConfig { catSpawnDelay = getInt("mobs.cat.spawn-delay", catSpawnDelay); catSpawnSwampHutScanRange = getInt("mobs.cat.scan-range-for-other-cats.swamp-hut", catSpawnSwampHutScanRange); catSpawnVillageScanRange = getInt("mobs.cat.scan-range-for-other-cats.village", catSpawnVillageScanRange); + catBreedingTicks = getInt("mobs.cat.breeding-delay-ticks", catBreedingTicks); } public double caveSpiderMaxHealth = 12.0D; @@ -571,6 +579,7 @@ public class PurpurWorldConfig { public double chickenMaxHealth = 4.0D; public boolean chickenRetaliate = false; + public int chickenBreedingTicks = 6000; private void chickenSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.chicken.attributes.max-health", chickenMaxHealth); @@ -579,6 +588,7 @@ public class PurpurWorldConfig { } chickenMaxHealth = getDouble("mobs.chicken.attributes.max_health", chickenMaxHealth); chickenRetaliate = getBoolean("mobs.chicken.retaliate", chickenRetaliate); + chickenBreedingTicks = getInt("mobs.chicken.breeding-delay-ticks", chickenBreedingTicks); } public double codMaxHealth = 3.0D; @@ -593,6 +603,7 @@ public class PurpurWorldConfig { public double cowMaxHealth = 10.0D; public int cowFeedMushrooms = 0; + public int cowBreedingTicks = 6000; private void cowSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.cow.attributes.max-health", cowMaxHealth); @@ -601,6 +612,7 @@ public class PurpurWorldConfig { } cowMaxHealth = getDouble("mobs.cow.attributes.max_health", cowMaxHealth); cowFeedMushrooms = getInt("mobs.cow.feed-mushrooms-for-mooshroom", cowFeedMushrooms); + cowBreedingTicks = getInt("mobs.cow.breeding-delay-ticks", cowBreedingTicks); } public double creeperMaxHealth = 20.0D; @@ -635,6 +647,7 @@ public class PurpurWorldConfig { public double donkeyJumpStrengthMax = 0.5D; public double donkeyMovementSpeedMin = 0.175D; public double donkeyMovementSpeedMax = 0.175D; + public int donkeyBreedingTicks = 6000; private void donkeySettings() { if (PurpurConfig.version < 10) { double oldMin = getDouble("mobs.donkey.attributes.max-health.min", donkeyMaxHealthMin); @@ -649,6 +662,7 @@ public class PurpurWorldConfig { donkeyJumpStrengthMax = getDouble("mobs.donkey.attributes.jump_strength.max", donkeyJumpStrengthMax); donkeyMovementSpeedMin = getDouble("mobs.donkey.attributes.movement_speed.min", donkeyMovementSpeedMin); donkeyMovementSpeedMax = getDouble("mobs.donkey.attributes.movement_speed.max", donkeyMovementSpeedMax); + donkeyBreedingTicks = getInt("mobs.donkey.breeding-delay-ticks", donkeyBreedingTicks); } public double drownedMaxHealth = 20.0D; @@ -729,6 +743,7 @@ public class PurpurWorldConfig { public double foxMaxHealth = 10.0D; public boolean foxTypeChangesWithTulips = false; + public int foxBreedingTicks = 6000; private void foxSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.fox.attributes.max-health", foxMaxHealth); @@ -737,6 +752,12 @@ public class PurpurWorldConfig { } foxMaxHealth = getDouble("mobs.fox.attributes.max_health", foxMaxHealth); foxTypeChangesWithTulips = getBoolean("mobs.fox.tulips-change-type", foxTypeChangesWithTulips); + foxBreedingTicks = getInt("mobs.fox.breeding-delay-ticks", foxBreedingTicks); + } + + public int frogBreedingTicks = 6000; + private void frogSettings() { + frogBreedingTicks = getInt("mobs.frog.breeding-delay-ticks", frogBreedingTicks); } public double ghastMaxHealth = 10.0D; @@ -783,8 +804,10 @@ public class PurpurWorldConfig { } public double goatMaxHealth = 10.0D; + public int goatBreedingTicks = 6000; private void goatSettings() { goatMaxHealth = getDouble("mobs.goat.attributes.max_health", goatMaxHealth); + goatBreedingTicks = getInt("mobs.goat.breeding-delay-ticks", goatBreedingTicks); } public double guardianMaxHealth = 30.0D; @@ -798,6 +821,7 @@ public class PurpurWorldConfig { } public double hoglinMaxHealth = 40.0D; + public int hoglinBreedingTicks = 6000; private void hoglinSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.hoglin.attributes.max-health", hoglinMaxHealth); @@ -805,6 +829,7 @@ public class PurpurWorldConfig { set("mobs.hoglin.attributes.max_health", oldValue); } hoglinMaxHealth = getDouble("mobs.hoglin.attributes.max_health", hoglinMaxHealth); + hoglinBreedingTicks = getInt("mobs.hoglin.breeding-delay-ticks", hoglinBreedingTicks); } public double horseMaxHealthMin = 15.0D; @@ -813,6 +838,7 @@ public class PurpurWorldConfig { public double horseJumpStrengthMax = 1.0D; public double horseMovementSpeedMin = 0.1125D; public double horseMovementSpeedMax = 0.3375D; + public int horseBreedingTicks = 6000; private void horseSettings() { if (PurpurConfig.version < 10) { double oldMin = getDouble("mobs.horse.attributes.max-health.min", horseMaxHealthMin); @@ -827,6 +853,7 @@ public class PurpurWorldConfig { horseJumpStrengthMax = getDouble("mobs.horse.attributes.jump_strength.max", horseJumpStrengthMax); horseMovementSpeedMin = getDouble("mobs.horse.attributes.movement_speed.min", horseMovementSpeedMin); horseMovementSpeedMax = getDouble("mobs.horse.attributes.movement_speed.max", horseMovementSpeedMax); + horseBreedingTicks = getInt("mobs.horse.breeding-delay-ticks", horseBreedingTicks); } public double huskMaxHealth = 20.0D; @@ -884,6 +911,7 @@ public class PurpurWorldConfig { public double llamaJumpStrengthMax = 0.5D; public double llamaMovementSpeedMin = 0.175D; public double llamaMovementSpeedMax = 0.175D; + public int llamaBreedingTicks = 6000; private void llamaSettings() { llamaRidable = getBoolean("mobs.llama.ridable", llamaRidable); llamaRidableInWater = getBoolean("mobs.llama.ridable-in-water", llamaRidableInWater); @@ -901,6 +929,7 @@ public class PurpurWorldConfig { llamaJumpStrengthMax = getDouble("mobs.llama.attributes.jump_strength.max", llamaJumpStrengthMax); llamaMovementSpeedMin = getDouble("mobs.llama.attributes.movement_speed.min", llamaMovementSpeedMin); llamaMovementSpeedMax = getDouble("mobs.llama.attributes.movement_speed.max", llamaMovementSpeedMax); + llamaBreedingTicks = getInt("mobs.llama.breeding-delay-ticks", llamaBreedingTicks); } public String magmaCubeMaxHealth = "size * size"; @@ -920,6 +949,7 @@ public class PurpurWorldConfig { } public double mooshroomMaxHealth = 10.0D; + public int mooshroomBreedingTicks = 6000; private void mooshroomSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.mooshroom.attributes.max-health", mooshroomMaxHealth); @@ -927,6 +957,7 @@ public class PurpurWorldConfig { set("mobs.mooshroom.attributes.max_health", oldValue); } mooshroomMaxHealth = getDouble("mobs.mooshroom.attributes.max_health", mooshroomMaxHealth); + mooshroomBreedingTicks = getInt("mobs.mooshroom.breeding-delay-ticks", mooshroomBreedingTicks); } public double muleMaxHealthMin = 15.0D; @@ -935,6 +966,7 @@ public class PurpurWorldConfig { public double muleJumpStrengthMax = 0.5D; public double muleMovementSpeedMin = 0.175D; public double muleMovementSpeedMax = 0.175D; + public int muleBreedingTicks = 6000; private void muleSettings() { if (PurpurConfig.version < 10) { double oldMin = getDouble("mobs.mule.attributes.max-health.min", muleMaxHealthMin); @@ -949,9 +981,11 @@ public class PurpurWorldConfig { muleJumpStrengthMax = getDouble("mobs.mule.attributes.jump_strength.max", muleJumpStrengthMax); muleMovementSpeedMin = getDouble("mobs.mule.attributes.movement_speed.min", muleMovementSpeedMin); muleMovementSpeedMax = getDouble("mobs.mule.attributes.movement_speed.max", muleMovementSpeedMax); + muleBreedingTicks = getInt("mobs.mule.breeding-delay-ticks", muleBreedingTicks); } public double ocelotMaxHealth = 10.0D; + public int ocelotBreedingTicks = 6000; private void ocelotSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.ocelot.attributes.max-health", ocelotMaxHealth); @@ -959,9 +993,11 @@ public class PurpurWorldConfig { set("mobs.ocelot.attributes.max_health", oldValue); } ocelotMaxHealth = getDouble("mobs.ocelot.attributes.max_health", ocelotMaxHealth); + ocelotBreedingTicks = getInt("mobs.ocelot.breeding-delay-ticks", ocelotBreedingTicks); } public double pandaMaxHealth = 20.0D; + public int pandaBreedingTicks = 6000; private void pandaSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.panda.attributes.max-health", pandaMaxHealth); @@ -969,6 +1005,7 @@ public class PurpurWorldConfig { set("mobs.panda.attributes.max_health", oldValue); } pandaMaxHealth = getDouble("mobs.panda.attributes.max_health", pandaMaxHealth); + pandaBreedingTicks = getInt("mobs.panda.breeding-delay-ticks", pandaBreedingTicks); } public double parrotMaxHealth = 6.0D; @@ -1021,6 +1058,7 @@ public class PurpurWorldConfig { public double pigMaxHealth = 10.0D; public boolean pigGiveSaddleBack = false; + public int pigBreedingTicks = 6000; private void pigSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.pig.attributes.max-health", pigMaxHealth); @@ -1029,6 +1067,7 @@ public class PurpurWorldConfig { } pigMaxHealth = getDouble("mobs.pig.attributes.max_health", pigMaxHealth); pigGiveSaddleBack = getBoolean("mobs.pig.give-saddle-back", pigGiveSaddleBack); + pigBreedingTicks = getInt("mobs.pig.breeding-delay-ticks", pigBreedingTicks); } public double piglinMaxHealth = 16.0D; @@ -1064,6 +1103,7 @@ public class PurpurWorldConfig { public double polarBearMaxHealth = 30.0D; public String polarBearBreedableItemString = ""; public Item polarBearBreedableItem = null; + public int polarBearBreedingTicks = 6000; private void polarBearSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.polar_bear.attributes.max-health", polarBearMaxHealth); @@ -1074,6 +1114,7 @@ public class PurpurWorldConfig { polarBearBreedableItemString = getString("mobs.polar_bear.breedable-item", polarBearBreedableItemString); Item item = BuiltInRegistries.ITEM.get(new ResourceLocation(polarBearBreedableItemString)); if (item != Items.AIR) polarBearBreedableItem = item; + polarBearBreedingTicks = getInt("mobs.polar_bear.breeding-delay-ticks", polarBearBreedingTicks); } public double pufferfishMaxHealth = 3.0D; @@ -1089,6 +1130,7 @@ public class PurpurWorldConfig { public double rabbitMaxHealth = 3.0D; public double rabbitNaturalToast = 0.0D; public double rabbitNaturalKiller = 0.0D; + public int rabbitBreedingTicks = 6000; private void rabbitSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.rabbit.attributes.max-health", rabbitMaxHealth); @@ -1098,6 +1140,7 @@ public class PurpurWorldConfig { rabbitMaxHealth = getDouble("mobs.rabbit.attributes.max_health", rabbitMaxHealth); rabbitNaturalToast = getDouble("mobs.rabbit.spawn-toast-chance", rabbitNaturalToast); rabbitNaturalKiller = getDouble("mobs.rabbit.spawn-killer-rabbit-chance", rabbitNaturalKiller); + rabbitBreedingTicks = getInt("mobs.rabbit.breeding-delay-ticks", rabbitBreedingTicks); } public double ravagerMaxHealth = 100.0D; @@ -1121,6 +1164,7 @@ public class PurpurWorldConfig { } public double sheepMaxHealth = 8.0D; + public int sheepBreedingTicks = 6000; private void sheepSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.sheep.attributes.max-health", sheepMaxHealth); @@ -1128,6 +1172,7 @@ public class PurpurWorldConfig { set("mobs.sheep.attributes.max_health", oldValue); } sheepMaxHealth = getDouble("mobs.sheep.attributes.max_health", sheepMaxHealth); + sheepBreedingTicks = getInt("mobs.sheep.breeding-delay-ticks", sheepBreedingTicks); } public double shulkerMaxHealth = 30.0D; @@ -1214,8 +1259,10 @@ public class PurpurWorldConfig { } public double snifferMaxHealth = 14.0D; + public int snifferBreedingTicks = 6000; private void snifferSettings() { snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth); + snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", chickenBreedingTicks); } public double squidMaxHealth = 10.0D; @@ -1255,6 +1302,7 @@ public class PurpurWorldConfig { } public double striderMaxHealth = 20.0D; + public int striderBreedingTicks = 6000; private void striderSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.strider.attributes.max-health", striderMaxHealth); @@ -1262,6 +1310,7 @@ public class PurpurWorldConfig { set("mobs.strider.attributes.max_health", oldValue); } striderMaxHealth = getDouble("mobs.strider.attributes.max_health", striderMaxHealth); + striderBreedingTicks = getInt("mobs.strider.breeding-delay-ticks", striderBreedingTicks); } public double traderLlamaMaxHealthMin = 15.0D; @@ -1270,6 +1319,7 @@ public class PurpurWorldConfig { public double traderLlamaJumpStrengthMax = 0.5D; public double traderLlamaMovementSpeedMin = 0.175D; public double traderLlamaMovementSpeedMax = 0.175D; + public int traderLlamaBreedingTicks = 6000; private void traderLlamaSettings() { if (PurpurConfig.version < 10) { double oldMin = getDouble("mobs.trader_llama.attributes.max-health.min", traderLlamaMaxHealthMin); @@ -1284,6 +1334,7 @@ public class PurpurWorldConfig { traderLlamaJumpStrengthMax = getDouble("mobs.trader_llama.attributes.jump_strength.max", traderLlamaJumpStrengthMax); traderLlamaMovementSpeedMin = getDouble("mobs.trader_llama.attributes.movement_speed.min", traderLlamaMovementSpeedMin); traderLlamaMovementSpeedMax = getDouble("mobs.trader_llama.attributes.movement_speed.max", traderLlamaMovementSpeedMax); + traderLlamaBreedingTicks = getInt("mobs.trader_llama.breeding-delay-ticks", traderLlamaBreedingTicks); } public double tropicalFishMaxHealth = 3.0D; @@ -1297,6 +1348,7 @@ public class PurpurWorldConfig { } public double turtleMaxHealth = 30.0D; + public int turtleBreedingTicks = 6000; private void turtleSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.turtle.attributes.max-health", turtleMaxHealth); @@ -1304,6 +1356,7 @@ public class PurpurWorldConfig { set("mobs.turtle.attributes.max_health", oldValue); } turtleMaxHealth = getDouble("mobs.turtle.attributes.max_health", turtleMaxHealth); + turtleBreedingTicks = getInt("mobs.turtle.breeding-delay-ticks", turtleBreedingTicks); } public double vexMaxY = 320D; @@ -1322,6 +1375,7 @@ public class PurpurWorldConfig { public boolean villagerFollowEmeraldBlock = false; public boolean villagerCanBeLeashed = false; public boolean villagerCanBreed = true; + public int villagerBreedingTicks = 6000; private void villagerSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.villager.attributes.max-health", villagerMaxHealth); @@ -1332,6 +1386,7 @@ public class PurpurWorldConfig { villagerFollowEmeraldBlock = getBoolean("mobs.villager.follow-emerald-blocks", villagerFollowEmeraldBlock); villagerCanBeLeashed = getBoolean("mobs.villager.can-be-leashed", villagerCanBeLeashed); villagerCanBreed = getBoolean("mobs.villager.can-breed", villagerCanBreed); + villagerBreedingTicks = getInt("mobs.villager.breeding-delay-ticks", villagerBreedingTicks); } public double vindicatorMaxHealth = 24.0D; @@ -1399,6 +1454,7 @@ public class PurpurWorldConfig { } public double wolfMaxHealth = 8.0D; + public int wolfBreedingTicks = 6000; private void wolfSettings() { if (PurpurConfig.version < 10) { double oldValue = getDouble("mobs.wolf.attributes.max-health", wolfMaxHealth); @@ -1406,6 +1462,7 @@ public class PurpurWorldConfig { set("mobs.wolf.attributes.max_health", oldValue); } wolfMaxHealth = getDouble("mobs.wolf.attributes.max_health", wolfMaxHealth); + wolfBreedingTicks = getInt("mobs.wolf.breeding-delay-ticks", wolfBreedingTicks); } public double zoglinMaxHealth = 40.0D;