adds ridable option to zombie horse and skeleton horse, fixes #1458

only set as tamable if already tamed or if ridable option is enabled
This commit is contained in:
granny
2023-11-13 23:41:37 -08:00
parent 1adf78b91a
commit 2a38801aeb
41 changed files with 309 additions and 301 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable entity base attributes
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index de2a1621b2d671de8f1c10463661cb361cd9e6b4..120377f090669ef06ad6d53fa55facfb9e1e800a 100644
index 9501683d6a6239e7a053f9a40a377783232bbe8e..8b9efc0477f1d97414d12282bd9d10a7d2ec83a8 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -156,7 +156,7 @@ import org.bukkit.plugin.PluginManager;
@@ -238,7 +238,7 @@ index 66f80ec010909648278c4e74c80d3766b9cf6c6a..14daac1a87e32e0ff0a610aef256e20c
return (Boolean) this.entityData.get(Ocelot.DATA_TRUSTING);
}
diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java
index 5b3a2010da3b6429da783f8263fd170a4fb8d80b..2832d7cbcfad43b3f0f6c33504cff68add85601d 100644
index 61af090813936bac334a487c21e9e67f80a4c413..6c7354ca03efdaf9e01d4a63f8ac38e74c0c35c8 100644
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
@@ -140,6 +140,12 @@ public class Panda extends Animal {
@@ -475,7 +475,7 @@ index d1dd2cda473bb2294dc10c66c13eac8591ea4d5b..5cd79df01d4dbe7a1af530c502a78e48
public Map<String, Vector3f> 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 29108c481756d3150fd0ae69f6d249d127b11fdd..85a557b50498bb83eeec4125aa2ae14f3bfaaab8 100644
index 02d19eaa4599951dd8a8fe594946c8a3dc5b30a9..909d32553ffd7a32f44f7201fdab850e4bcfdcc7 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
@@ -320,6 +320,23 @@ public class Camel extends AbstractHorse implements PlayerRideableJumping, Saddl
@@ -503,7 +503,7 @@ index 29108c481756d3150fd0ae69f6d249d127b11fdd..85a557b50498bb83eeec4125aa2ae14f
protected SoundEvent getAmbientSound() {
return SoundEvents.CAMEL_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
index 27050c00ea4e4b301d4c85528117fc1d87e6f1ef..ad4d4e38a2f0125e0943945c9440a9be80b60257 100644
index 73db73bb5b47f586ce32249458268e4b7cda2003..a27e99ee6d8d2406d141dc1537c7098f43a29318 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/AbstractHorse.java
@@ -162,6 +162,44 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
@@ -613,7 +613,7 @@ index 3e50581033e88e8eddcbd85bfa890cbe0b88a7e6..92339f5a07dcb6bf7eb1bce6d584464e
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 0549974c56ae7d05b5eec77029c5d08a6614a8bf..278c33b7de4472a746cdbc1faaa68e05592777bc 100644
index cd11879b8ad7977ca9c0c26d9bcc26ac7078a265..8c8c135e9bc707ae8e2aad249302109023f6fea3 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
@@ -124,6 +124,21 @@ public class Llama extends AbstractChestedHorse implements VariantHolder<Llama.V
@@ -665,7 +665,7 @@ index ae7bcfa608d8bdd2a2320618225294de0314ce53..abbeb305b2d09e9c4c02ade603adac5c
protected SoundEvent getAmbientSound() {
return SoundEvents.MULE_AMBIENT;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
index 6d5a37facc288ebb27d96c2451091ea299c16077..8ffba7c368f936ea5cdfc46c5fa76c3feb63e1ac 100644
index 0318297ed96a640932728d704fa273c4d126e034..cc8813c572618700981403d513f30b8a06e4c49e 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/SkeletonHorse.java
@@ -38,6 +38,21 @@ public class SkeletonHorse extends AbstractHorse {
@@ -717,7 +717,7 @@ index 5fc37e2322188e0db12f7679e40b1a3d40268ca7..4abb9d5fedf63eba9dc3f716d44ea118
public boolean isTraderLlama() {
return true;
diff --git a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
index 6c03ad3d978378221db3e5bed947738bd710eae0..2e6b55a01e022252245c16ed310920bcba072975 100644
index 8c5a083f3db046709a38355343ad7e5ab45779b5..ebfd54d835cdac3f95c926b3e2e10db6170b4dd7 100644
--- a/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
+++ b/src/main/java/net/minecraft/world/entity/animal/horse/ZombieHorse.java
@@ -34,6 +34,21 @@ public class ZombieHorse extends AbstractHorse {
@@ -1504,7 +1504,7 @@ index 2bed7b373813660139d2322dcd6b83f3015768f0..731bf43e2685554174d7ff295b5561ec
protected void registerGoals() {
this.goalSelector.addGoal(0, new FloatGoal(this));
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b023919b77 100644
index 3eae97d610d8f61528b87039723ef4ce2dc75c91..e248395ad5f5f012aeefecf367d54f90cade0996 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -112,99 +112,190 @@ public class PurpurWorldConfig {
@@ -2188,7 +2188,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
private void phantomSettings() {
phantomRidable = getBoolean("mobs.phantom.ridable", phantomRidable);
phantomRidableInWater = getBoolean("mobs.phantom.ridable-in-water", phantomRidableInWater);
@@ -461,189 +806,361 @@ public class PurpurWorldConfig {
@@ -461,191 +806,363 @@ public class PurpurWorldConfig {
phantomFlameDamage = (float) getDouble("mobs.phantom.flames.damage", phantomFlameDamage);
phantomFlameFireTime = getInt("mobs.phantom.flames.fire-time", phantomFlameFireTime);
phantomAllowGriefing = getBoolean("mobs.phantom.allow-griefing", phantomAllowGriefing);
@@ -2411,6 +2411,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
+ skeletonMaxHealth = getDouble("mobs.skeleton.attributes.max_health", skeletonMaxHealth);
}
public boolean skeletonHorseRidable = false;
public boolean skeletonHorseRidableInWater = true;
public boolean skeletonHorseCanSwim = false;
+ public double skeletonHorseMaxHealthMin = 15.0D;
@@ -2420,6 +2421,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
+ public double skeletonHorseMovementSpeedMin = 0.2D;
+ public double skeletonHorseMovementSpeedMax = 0.2D;
private void skeletonHorseSettings() {
skeletonHorseRidable = getBoolean("mobs.skeleton_horse.ridable", skeletonHorseRidable);
skeletonHorseRidableInWater = getBoolean("mobs.skeleton_horse.ridable-in-water", skeletonHorseRidableInWater);
skeletonHorseCanSwim = getBoolean("mobs.skeleton_horse.can-swim", skeletonHorseCanSwim);
+ if (PurpurConfig.version < 10) {
@@ -2550,7 +2552,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
}
public boolean tadpoleRidable = false;
@@ -658,64 +1175,125 @@ public class PurpurWorldConfig {
@@ -660,64 +1177,125 @@ public class PurpurWorldConfig {
public boolean traderLlamaRidable = false;
public boolean traderLlamaRidableInWater = false;
public boolean traderLlamaControllable = true;
@@ -2676,7 +2678,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
}
public boolean wardenRidable = false;
@@ -730,81 +1308,165 @@ public class PurpurWorldConfig {
@@ -732,83 +1310,167 @@ public class PurpurWorldConfig {
public boolean witchRidable = false;
public boolean witchRidableInWater = true;
public boolean witchControllable = true;
@@ -2781,6 +2783,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
+ zombieSpawnReinforcements = getDouble("mobs.zombie.attributes.spawn_reinforcements", zombieSpawnReinforcements);
}
public boolean zombieHorseRidable = false;
public boolean zombieHorseRidableInWater = false;
public boolean zombieHorseCanSwim = false;
+ public double zombieHorseMaxHealthMin = 15.0D;
@@ -2790,6 +2793,7 @@ index 4c25461a6d75a47425b66e04285792787d7193ee..27ce55687c7c59fdfdcc4553240ea8b0
+ public double zombieHorseMovementSpeedMin = 0.2D;
+ public double zombieHorseMovementSpeedMax = 0.2D;
private void zombieHorseSettings() {
zombieHorseRidable = getBoolean("mobs.zombie_horse.ridable", zombieHorseRidable);
zombieHorseRidableInWater = getBoolean("mobs.zombie_horse.ridable-in-water", zombieHorseRidableInWater);
zombieHorseCanSwim = getBoolean("mobs.zombie_horse.can-swim", zombieHorseCanSwim);
+ if (PurpurConfig.version < 10) {