Updated Upstream (Pufferfish)

Upstream has released updates that appear to apply and compile correctly

Pufferfish Changes:
pufferfish-gg/Pufferfish@e535b1b Change goal selector from a disable to a throttle to improve vanilla parity
This commit is contained in:
Encode42
2022-01-05 14:22:32 -05:00
parent 99f9d0d349
commit eda086ea50
8 changed files with 34 additions and 28 deletions

View File

@@ -617,7 +617,7 @@ index 0000000000000000000000000000000000000000..020368da69b9a492155f6de6297f7473
+}
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
new file mode 100644
index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10edee5a66f
index 0000000000000000000000000000000000000000..284f9eb542b686833ec54d4de6493d7dac5aa6b8
--- /dev/null
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
@@ -0,0 +1,266 @@
@@ -848,10 +848,10 @@ index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10e
+ setComment("dab", "Optimizes entity brains when", "they're far away from the player");
+ }
+
+ public static boolean disableInactiveGoalSelectorTick;
+ private static void inactiveGoalSelectorDisable() {
+ getBoolean("inactive-goal-selector-disable", true,
+ "Disables the AI goal selector in entity inactive ticks.",
+ public static boolean throttleInactiveGoalSelectorTick;
+ private static void inactiveGoalSelectorThrottle() {
+ getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true,
+ "Throttles the AI goal selector in entity inactive ticks.",
+ "This can improve performance by a few percent, but has minor gameplay implications.");
+ }
+
@@ -2799,15 +2799,21 @@ index 43378561cf48f969f5bf1fd0db349415f4d1c866..2c988e05299d530d483e21ab452de0a0
}
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..607e78c24edabb26fd7494855087f7f19cfdc576 100644
index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..06e87f3564bfba17393f36d2188abfd2ee9ac650 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -210,10 +210,10 @@ public abstract class Mob extends LivingEntity {
@@ -206,14 +206,16 @@ public abstract class Mob extends LivingEntity {
return this.lookControl;
}
+ int tickCount = 0; // Pufferfish - throttle inactive goal selector ticking
// Paper start
@Override
public void inactiveTick() {
super.inactiveTick();
- if (this.goalSelector.inactiveTick()) {
+ if (this.goalSelector.inactiveTick(this.activatedPriority, true) && !gg.pufferfish.pufferfish.PufferfishConfig.disableInactiveGoalSelectorTick) { // Pufferfish - pass activated priroity // Pufferfish - disable inactive goal selector ticking
+ boolean isThrottled = gg.pufferfish.pufferfish.PufferfishConfig.throttleInactiveGoalSelectorTick && tickCount++ % 20 != 0; // Pufferfish - throttle inactive goal selector ticking
+ if (this.goalSelector.inactiveTick(this.activatedPriority, true) && !isThrottled) { // Pufferfish - pass activated priroity // Pufferfish - throttle inactive goal selector ticking
this.goalSelector.tick();
}
- if (this.targetSelector.inactiveTick()) {
@@ -2815,7 +2821,7 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..607e78c24edabb26fd7494855087f7f1
this.targetSelector.tick();
}
}
@@ -844,16 +844,20 @@ public abstract class Mob extends LivingEntity {
@@ -844,16 +846,20 @@ public abstract class Mob extends LivingEntity {
if (i % 2 != 0 && this.tickCount > 1) {
this.level.getProfiler().push("targetSelector");

View File

@@ -270,7 +270,7 @@ index 2c988e05299d530d483e21ab452de0a03e5bdcbd..46134547b26de59bb69c584df676bf09
// Paper end
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b14053c62c42 100644
index 06e87f3564bfba17393f36d2188abfd2ee9ac650..ed1d5508d894f5d2f6e61899a2013cbe47fbbc73 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity {
@@ -282,7 +282,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140
this.jumpControl = new JumpControl(this);
this.bodyRotationControl = this.createBodyControl();
this.navigation = this.createNavigation(world);
@@ -1304,7 +1306,7 @@ public abstract class Mob extends LivingEntity {
@@ -1306,7 +1308,7 @@ public abstract class Mob extends LivingEntity {
protected void onOffspringSpawnedFromEgg(Player player, Mob child) {}
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
@@ -291,7 +291,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140
}
public boolean isWithinRestriction() {
@@ -1665,4 +1667,52 @@ public abstract class Mob extends LivingEntity {
@@ -1667,4 +1669,52 @@ public abstract class Mob extends LivingEntity {
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Allow leashing villagers
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 65e7ce5cb473733b6a4ec89998f4b14053c62c42..a9f4f86fc2a3c6017acda35c90ae1b53937256c6 100644
index ed1d5508d894f5d2f6e61899a2013cbe47fbbc73..fe58b02540b56b99a02067bdde1bcfa00c758f39 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1240,6 +1240,7 @@ public abstract class Mob extends LivingEntity {
@@ -1242,6 +1242,7 @@ public abstract class Mob extends LivingEntity {
if (!this.isAlive()) {
return InteractionResult.PASS;
} else if (this.getLeashHolder() == player) {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Dispenser curse of binding protection
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index a9f4f86fc2a3c6017acda35c90ae1b53937256c6..033bf60ff92d26981ace3e3ccab91a52c7b4e241 100644
index fe58b02540b56b99a02067bdde1bcfa00c758f39..9d43556ecdafed0605bfd6f65c4f5795a41261a9 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -63,6 +63,7 @@ import net.minecraft.world.item.ProjectileWeaponItem;
@@ -16,7 +16,7 @@ index a9f4f86fc2a3c6017acda35c90ae1b53937256c6..033bf60ff92d26981ace3e3ccab91a52
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.ItemLike;
import net.minecraft.world.level.Level;
@@ -1096,6 +1097,12 @@ public abstract class Mob extends LivingEntity {
@@ -1098,6 +1099,12 @@ public abstract class Mob extends LivingEntity {
}

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Entity lifespan
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf609184878 100644
index 9d43556ecdafed0605bfd6f65c4f5795a41261a9..6f4396ab99bf87560544e3eb7f4e8711595af2ae 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity {
@@ -16,7 +16,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
public boolean aware = true; // CraftBukkit
protected Mob(EntityType<? extends Mob> type, Level world) {
@@ -286,6 +287,7 @@ public abstract class Mob extends LivingEntity {
@@ -288,6 +289,7 @@ public abstract class Mob extends LivingEntity {
entityliving = null;
}
}
@@ -24,7 +24,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
this.target = entityliving;
return true;
// CraftBukkit end
@@ -330,9 +332,35 @@ public abstract class Mob extends LivingEntity {
@@ -332,9 +334,35 @@ public abstract class Mob extends LivingEntity {
this.playAmbientSound();
}
@@ -60,7 +60,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
@Override
protected void playHurtSound(DamageSource source) {
this.resetAmbientSoundTime();
@@ -516,6 +544,7 @@ public abstract class Mob extends LivingEntity {
@@ -518,6 +546,7 @@ public abstract class Mob extends LivingEntity {
}
nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit
@@ -68,7 +68,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
}
@Override
@@ -586,6 +615,11 @@ public abstract class Mob extends LivingEntity {
@@ -588,6 +617,11 @@ public abstract class Mob extends LivingEntity {
this.aware = nbt.getBoolean("Bukkit.Aware");
}
// CraftBukkit end
@@ -80,7 +80,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
}
@Override
@@ -1611,6 +1645,7 @@ public abstract class Mob extends LivingEntity {
@@ -1613,6 +1647,7 @@ public abstract class Mob extends LivingEntity {
this.setLastHurtMob(target);
}

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Changeable Mob Left Handed Chance
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 359b47daf27712bbd5f2b8fee5a2edf609184878..163ca04792388a9f27e5dc22def40ce5b9efbf11 100644
index 6f4396ab99bf87560544e3eb7f4e8711595af2ae..a3b2d756df150e7be20983fa865b0743de4c91e7 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1229,7 +1229,7 @@ public abstract class Mob extends LivingEntity {
@@ -1231,7 +1231,7 @@ public abstract class Mob extends LivingEntity {
@Nullable
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE));

View File

@@ -18,10 +18,10 @@ index 1bc7b7f016b0f58bad34dfd58e506967d61099e5..f86e65530182685517e12ea609a4bdcd
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 163ca04792388a9f27e5dc22def40ce5b9efbf11..4d2ed6947d661d0f40c9a40824cbd957806c5a3a 100644
index a3b2d756df150e7be20983fa865b0743de4c91e7..c83107cf47eb1aad1bc445661a2703d468155642 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -664,7 +664,7 @@ public abstract class Mob extends LivingEntity {
@@ -666,7 +666,7 @@ public abstract class Mob extends LivingEntity {
public void aiStep() {
super.aiStep();
this.level.getProfiler().push("looting");

View File

@@ -89,10 +89,10 @@ index b7d580fc174b69c23dbbc18e114f3d3119a8e9ea..bf01f496e2b89f6fbd44d845a12cdfae
public boolean isSensitiveToWater() {
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 4d2ed6947d661d0f40c9a40824cbd957806c5a3a..fd8c372169ebbca95ffdf23dc1a7d61bee420ed2 100644
index c83107cf47eb1aad1bc445661a2703d468155642..6e57000706fa51cbde64a6c63d0da39e04b51826 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -1662,17 +1662,7 @@ public abstract class Mob extends LivingEntity {
@@ -1664,17 +1664,7 @@ public abstract class Mob extends LivingEntity {
}
public boolean isSunBurnTick() {