add nautilus and zombie nautilus options

This commit is contained in:
granny
2025-12-10 19:37:43 -08:00
parent 6544e6eae2
commit c396a803f6
4 changed files with 113 additions and 22 deletions

View File

@@ -707,6 +707,50 @@ index 0a75d3790a4bf4812e4f3b27ec50d67fdccf812d..cd888e070a72ff46d35a4425a0013c61
}
@Override
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
index a02a4b47cf02cd7eaa76d25af2dccb50ad884504..a32ac3907883f65c2a00173128a4a011fd552932 100644
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
@@ -21,6 +21,17 @@ public class Nautilus extends AbstractNautilus {
super(type, level);
}
+ // Purpur start - Configurable entity base attributes
+ @Override
+ public void initAttributes() {
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.nautilusMaxHealth);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED).setBaseValue(this.level().purpurConfig.nautilusMovementSpeed);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.nautilusAttackDamage);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE).setBaseValue(this.level().purpurConfig.nautilusKnockbackResistance);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SCALE).setBaseValue(this.level().purpurConfig.nautilusScale);
+ }
+ // Purpur end - Configurable entity base attributes
+
@Override
protected Brain.Provider<Nautilus> brainProvider() {
return NautilusAi.brainProvider();
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
index 83c16a44b230efd010e06cabb428954d157cea47..7ef4a15ba2b315a41480484572a6c6898340466b 100644
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
@@ -43,6 +43,17 @@ public class ZombieNautilus extends AbstractNautilus {
super(type, level);
}
+ // Purpur start - Configurable entity base attributes
+ @Override
+ public void initAttributes() {
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MAX_HEALTH).setBaseValue(this.level().purpurConfig.zombieNautilusMaxHealth);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.MOVEMENT_SPEED).setBaseValue(this.level().purpurConfig.zombieNautilusMovementSpeed);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.ATTACK_DAMAGE).setBaseValue(this.level().purpurConfig.zombieNautilusAttackDamage);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.KNOCKBACK_RESISTANCE).setBaseValue(this.level().purpurConfig.zombieNautilusKnockbackResistance);
+ this.getAttribute(net.minecraft.world.entity.ai.attributes.Attributes.SCALE).setBaseValue(this.level().purpurConfig.zombieNautilusScale);
+ }
+ // Purpur end - Configurable entity base attributes
+
public static AttributeSupplier.Builder createAttributes() {
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
}
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index 93503f6b4eea2cb2ae6c01279e847c307920c35d..d5060fb8e9a711e6230f2c4950521d8b4f5c01d2 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java

View File

@@ -420,12 +420,12 @@ index cd888e070a72ff46d35a4425a0013c617b31e159..30204224ed83f6d3cfd64640b332b23c
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
index a02a4b47cf02cd7eaa76d25af2dccb50ad884504..a941cb9843fcf8d008ae846dcab95e32d823a1b2 100644
index a32ac3907883f65c2a00173128a4a011fd552932..98199869b70c7c0f2b744ac74961c77d473617ca 100644
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
@@ -21,6 +21,13 @@ public class Nautilus extends AbstractNautilus {
super(type, level);
@@ -32,6 +32,13 @@ public class Nautilus extends AbstractNautilus {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Make entity breeding times configurable
+ @Override
@@ -438,12 +438,12 @@ index a02a4b47cf02cd7eaa76d25af2dccb50ad884504..a941cb9843fcf8d008ae846dcab95e32
protected Brain.Provider<Nautilus> brainProvider() {
return NautilusAi.brainProvider();
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
index 83c16a44b230efd010e06cabb428954d157cea47..9e2b703d23a044fecdbc544588079c345fd376c7 100644
index 7ef4a15ba2b315a41480484572a6c6898340466b..94383c5020b6631203ddc4e0a58a222729ffe9a2 100644
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
@@ -43,6 +43,13 @@ public class ZombieNautilus extends AbstractNautilus {
super(type, level);
@@ -54,6 +54,13 @@ public class ZombieNautilus extends AbstractNautilus {
}
// Purpur end - Configurable entity base attributes
+ // Purpur start - Make entity breeding times configurable
+ @Override

View File

@@ -472,6 +472,42 @@ index 828793aaa2992fd1077040309154f814b302476a..8034ce67266b6baab35c72eaebf5ad67
@Override
protected void ageBoundaryReached() {
if (this.isBaby()) {
diff --git a/net/minecraft/world/entity/animal/nautilus/Nautilus.java b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
index 98199869b70c7c0f2b744ac74961c77d473617ca..7c4467933061f097425d6c82188a65fd5e4c4d3b 100644
--- a/net/minecraft/world/entity/animal/nautilus/Nautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/Nautilus.java
@@ -39,6 +39,13 @@ public class Nautilus extends AbstractNautilus {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Mobs always drop experience
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level().purpurConfig.nautilusAlwaysDropExp;
+ }
+ // Purpur end - Mobs always drop experience
+
@Override
protected Brain.Provider<Nautilus> brainProvider() {
return NautilusAi.brainProvider();
diff --git a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
index 94383c5020b6631203ddc4e0a58a222729ffe9a2..7e4d005053e6812f329ab7ac1f252c547d4c9a12 100644
--- a/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
+++ b/net/minecraft/world/entity/animal/nautilus/ZombieNautilus.java
@@ -61,6 +61,13 @@ public class ZombieNautilus extends AbstractNautilus {
}
// Purpur end - Make entity breeding times configurable
+ // Purpur start - Mobs always drop experience
+ @Override
+ protected boolean isAlwaysExperienceDropper() {
+ return this.level().purpurConfig.zombieNautilusAlwaysDropExp;
+ }
+ // Purpur end - Mobs always drop experience
+
public static AttributeSupplier.Builder createAttributes() {
return AbstractNautilus.createAttributes().add(Attributes.MOVEMENT_SPEED, 1.1F);
}
diff --git a/net/minecraft/world/entity/animal/panda/Panda.java b/net/minecraft/world/entity/animal/panda/Panda.java
index e9aa07dea0515f53a08a7066fa9e23e0ee69d69e..5116e9e16070e23d13b526d21facb7b5ad0988ba 100644
--- a/net/minecraft/world/entity/animal/panda/Panda.java

View File

@@ -2365,25 +2365,21 @@ public class PurpurWorldConfig {
muleAlwaysDropExp = getBoolean("mobs.mule.always-drop-exp", muleAlwaysDropExp);
}
// public boolean nautilusRidable = false;
// public boolean nautilusRidableInWater = true;
// public boolean nautilusControllable = true;
// public double nautilusMaxHealth = 10.0D;
// public double nautilusScale = 1.0D;
public double nautilusMaxHealth = 15.0D;
public double nautilusMovementSpeed = 1.0D;
public double nautilusAttackDamage = 3.0D;
public double nautilusKnockbackResistance = 0.3D;
public double nautilusScale = 1.0D;
public int nautilusBreedingTicks = 6000;
// public boolean nautilusTakeDamageFromWater = false;
// public boolean nautilusAlwaysDropExp = false;
// public boolean nautilusSpawnUnderSeaLevel = false;
public boolean nautilusAlwaysDropExp = false;
private void nautilusSettings() {
// nautilusRidable = getBoolean("mobs.nautilus.ridable", nautilusRidable);
// nautilusRidableInWater = getBoolean("mobs.nautilus.ridable-in-water", nautilusRidableInWater);
// nautilusControllable = getBoolean("mobs.nautilus.controllable", nautilusControllable);
// nautilusMaxHealth = getDouble("mobs.nautilus.attributes.max_health", nautilusMaxHealth);
// nautilusScale = Mth.clamp(getDouble("mobs.nautilus.attributes.scale", nautilusScale), 0.0625D, 16.0D);
nautilusMaxHealth = getDouble("mobs.nautilus.attributes.max_health", nautilusMaxHealth);
nautilusMovementSpeed = getDouble("mobs.nautilus.attributes.movement_speed", nautilusMovementSpeed);
nautilusAttackDamage = getDouble("mobs.nautilus.attributes.attack_damage", nautilusAttackDamage);
nautilusKnockbackResistance = getDouble("mobs.nautilus.attributes.knockback_resistance", nautilusKnockbackResistance);
nautilusScale = Mth.clamp(getDouble("mobs.nautilus.attributes.scale", nautilusScale), 0.0625D, 16.0D);
nautilusBreedingTicks = getInt("mobs.nautilus.breeding-delay-ticks", nautilusBreedingTicks);
// nautilusTakeDamageFromWater = getBoolean("mobs.nautilus.takes-damage-from-water", nautilusTakeDamageFromWater);
// nautilusAlwaysDropExp = getBoolean("mobs.nautilus.always-drop-exp", nautilusAlwaysDropExp);
// nautilusSpawnUnderSeaLevel = getBoolean("mobs.nautilus.spawn-below-sea-level", nautilusSpawnUnderSeaLevel);
nautilusAlwaysDropExp = getBoolean("mobs.nautilus.always-drop-exp", nautilusAlwaysDropExp);
}
public boolean ocelotRidable = false;
@@ -3635,6 +3631,21 @@ public class PurpurWorldConfig {
zombieHorseAlwaysDropExp = getBoolean("mobs.zombie_horse.always-drop-exp", zombieHorseAlwaysDropExp);
}
public double zombieNautilusMaxHealth = 15.0D;
public double zombieNautilusMovementSpeed = 1.1D;
public double zombieNautilusAttackDamage = 3.0D;
public double zombieNautilusKnockbackResistance = 0.3D;
public double zombieNautilusScale = 1.0D;
public boolean zombieNautilusAlwaysDropExp = false;
private void zombieNautilusSettings() {
zombieNautilusMaxHealth = getDouble("mobs.zombie_nautilus.attributes.max_health", zombieNautilusMaxHealth);
zombieNautilusMovementSpeed = getDouble("mobs.zombie_nautilus.attributes.movement_speed", zombieNautilusMovementSpeed);
zombieNautilusAttackDamage = getDouble("mobs.zombie_nautilus.attributes.attack_damage", zombieNautilusAttackDamage);
zombieNautilusKnockbackResistance = getDouble("mobs.zombie_nautilus.attributes.knockback_resistance", zombieNautilusKnockbackResistance);
zombieNautilusScale = Mth.clamp(getDouble("mobs.zombie_nautilus.attributes.scale", zombieNautilusScale), 0.0625D, 16.0D);
zombieNautilusAlwaysDropExp = getBoolean("mobs.zombie_nautilus.always-drop-exp", zombieNautilusAlwaysDropExp);
}
public boolean zombieVillagerRidable = false;
public boolean zombieVillagerRidableInWater = true;
public boolean zombieVillagerControllable = true;