Separate ridable and controllable configs

This commit is contained in:
BillyGalbreath
2022-01-18 09:10:04 -06:00
parent 0a9a17044b
commit bd0a85a17c
94 changed files with 2558 additions and 1857 deletions

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable villager brain ticks
diff --git a/src/main/java/net/minecraft/world/entity/npc/Villager.java b/src/main/java/net/minecraft/world/entity/npc/Villager.java
index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff485936c77de3 100644
index e413888ee04d6b236d2f7b8323e36d02dfe6b854..3ec933905f247e23c4c13b21dbf6fe4018583c5d 100644
--- a/src/main/java/net/minecraft/world/entity/npc/Villager.java
+++ b/src/main/java/net/minecraft/world/entity/npc/Villager.java
@@ -137,6 +137,7 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -24,7 +24,7 @@ index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff4859
}
// Purpur start
@@ -272,6 +274,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
@@ -277,6 +279,10 @@ public class Villager extends AbstractVillager implements ReputationEventHandler
this.level.getProfiler().push("villagerBrain");
// Pufferfish start
if (!inactive) {
@@ -32,23 +32,23 @@ index 0f466c9301c38e3747a22f116b98d47d1d912601..783cdc4949549725c884cdc0edff4859
+ boolean tick = (level.getGameTime() + brainTickOffset) % level.purpurConfig.villagerBrainTicks == 0;
+ if (((ServerLevel) level).getServer().lagging ? tick : level.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
+ // Purpur end
if (getRider() == null && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
if ((getRider() == null || !this.isControllable()) && this.behaviorTick++ % this.activatedPriority == 0) // Pufferfish // Purpur - only use brain if no rider
this.getBrain().tick((ServerLevel) this.level, this); // Paper
}
diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
index 83f2729035d42674d480bb508737497a7bffb4c7..a4111896ba007d252cb6fed8824cb99d78727991 100644
index 81524c4f676766c09125187876b46e0704294880..93d89fb27044e5e97574122b0e7863694d245bf0 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1092,6 +1092,8 @@ public class PurpurWorldConfig {
public boolean villagerRidable = false;
@@ -1207,6 +1207,8 @@ public class PurpurWorldConfig {
public boolean villagerRidableInWater = false;
public boolean villagerControllable = true;
public double villagerMaxHealth = 20.0D;
+ public int villagerBrainTicks = 1;
+ public boolean villagerUseBrainTicksOnlyWhenLagging = true;
private void villagerSettings() {
villagerRidable = getBoolean("mobs.villager.ridable", villagerRidable);
villagerRidableInWater = getBoolean("mobs.villager.ridable-in-water", villagerRidableInWater);
@@ -1101,6 +1103,8 @@ public class PurpurWorldConfig {
@@ -1217,6 +1219,8 @@ public class PurpurWorldConfig {
set("mobs.villager.attributes.max_health", oldValue);
}
villagerMaxHealth = getDouble("mobs.villager.attributes.max_health", villagerMaxHealth);