mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
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:
@@ -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
|
diff --git a/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10edee5a66f
|
index 0000000000000000000000000000000000000000..284f9eb542b686833ec54d4de6493d7dac5aa6b8
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
+++ b/src/main/java/gg/pufferfish/pufferfish/PufferfishConfig.java
|
||||||
@@ -0,0 +1,266 @@
|
@@ -0,0 +1,266 @@
|
||||||
@@ -848,10 +848,10 @@ index 0000000000000000000000000000000000000000..c32f284b5ce200c0f4dc7e22b986c10e
|
|||||||
+ setComment("dab", "Optimizes entity brains when", "they're far away from the player");
|
+ setComment("dab", "Optimizes entity brains when", "they're far away from the player");
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ public static boolean disableInactiveGoalSelectorTick;
|
+ public static boolean throttleInactiveGoalSelectorTick;
|
||||||
+ private static void inactiveGoalSelectorDisable() {
|
+ private static void inactiveGoalSelectorThrottle() {
|
||||||
+ getBoolean("inactive-goal-selector-disable", true,
|
+ getBoolean("inactive-goal-selector-throttle", "inactive-goal-selector-disable", true,
|
||||||
+ "Disables the AI goal selector in entity inactive ticks.",
|
+ "Throttles the AI goal selector in entity inactive ticks.",
|
||||||
+ "This can improve performance by a few percent, but has minor gameplay implications.");
|
+ "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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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
|
@Override
|
||||||
public void inactiveTick() {
|
public void inactiveTick() {
|
||||||
super.inactiveTick();
|
super.inactiveTick();
|
||||||
- if (this.goalSelector.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();
|
this.goalSelector.tick();
|
||||||
}
|
}
|
||||||
- if (this.targetSelector.inactiveTick()) {
|
- if (this.targetSelector.inactiveTick()) {
|
||||||
@@ -2815,7 +2821,7 @@ index 031660f7d0ea270f87e5174a4fe65ccad1f7a561..607e78c24edabb26fd7494855087f7f1
|
|||||||
this.targetSelector.tick();
|
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) {
|
if (i % 2 != 0 && this.tickCount > 1) {
|
||||||
this.level.getProfiler().push("targetSelector");
|
this.level.getProfiler().push("targetSelector");
|
||||||
|
|||||||
@@ -270,7 +270,7 @@ index 2c988e05299d530d483e21ab452de0a03e5bdcbd..46134547b26de59bb69c584df676bf09
|
|||||||
// Paper end
|
// Paper end
|
||||||
if (!this.level.isClientSide && this.isSensitiveToWater() && this.isInWaterRainOrBubble()) {
|
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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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 {
|
@@ -143,6 +143,8 @@ public abstract class Mob extends LivingEntity {
|
||||||
@@ -282,7 +282,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140
|
|||||||
this.jumpControl = new JumpControl(this);
|
this.jumpControl = new JumpControl(this);
|
||||||
this.bodyRotationControl = this.createBodyControl();
|
this.bodyRotationControl = this.createBodyControl();
|
||||||
this.navigation = this.createNavigation(world);
|
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 void onOffspringSpawnedFromEgg(Player player, Mob child) {}
|
||||||
|
|
||||||
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
protected InteractionResult mobInteract(Player player, InteractionHand hand) {
|
||||||
@@ -291,7 +291,7 @@ index 607e78c24edabb26fd7494855087f7f19cfdc576..65e7ce5cb473733b6a4ec89998f4b140
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isWithinRestriction() {
|
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);
|
return itemmonsteregg == null ? null : new ItemStack(itemmonsteregg);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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()) {
|
if (!this.isAlive()) {
|
||||||
return InteractionResult.PASS;
|
return InteractionResult.PASS;
|
||||||
} else if (this.getLeashHolder() == player) {
|
} else if (this.getLeashHolder() == player) {
|
||||||
|
|||||||
@@ -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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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;
|
@@ -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.GameRules;
|
||||||
import net.minecraft.world.level.ItemLike;
|
import net.minecraft.world.level.ItemLike;
|
||||||
import net.minecraft.world.level.Level;
|
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 {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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 {
|
@@ -129,6 +129,7 @@ public abstract class Mob extends LivingEntity {
|
||||||
@@ -16,7 +16,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
|
|||||||
public boolean aware = true; // CraftBukkit
|
public boolean aware = true; // CraftBukkit
|
||||||
|
|
||||||
protected Mob(EntityType<? extends Mob> type, Level world) {
|
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;
|
entityliving = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
|
|||||||
this.target = entityliving;
|
this.target = entityliving;
|
||||||
return true;
|
return true;
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -330,9 +332,35 @@ public abstract class Mob extends LivingEntity {
|
@@ -332,9 +334,35 @@ public abstract class Mob extends LivingEntity {
|
||||||
this.playAmbientSound();
|
this.playAmbientSound();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,7 +60,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
|
|||||||
@Override
|
@Override
|
||||||
protected void playHurtSound(DamageSource source) {
|
protected void playHurtSound(DamageSource source) {
|
||||||
this.resetAmbientSoundTime();
|
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
|
nbt.putBoolean("Bukkit.Aware", this.aware); // CraftBukkit
|
||||||
@@ -68,7 +68,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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");
|
this.aware = nbt.getBoolean("Bukkit.Aware");
|
||||||
}
|
}
|
||||||
// CraftBukkit end
|
// CraftBukkit end
|
||||||
@@ -80,7 +80,7 @@ index 033bf60ff92d26981ace3e3ccab91a52c7b4e241..359b47daf27712bbd5f2b8fee5a2edf6
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -1611,6 +1645,7 @@ public abstract class Mob extends LivingEntity {
|
@@ -1613,6 +1647,7 @@ public abstract class Mob extends LivingEntity {
|
||||||
this.setLastHurtMob(target);
|
this.setLastHurtMob(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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
|
@Nullable
|
||||||
public SpawnGroupData finalizeSpawn(ServerLevelAccessor world, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData entityData, @Nullable CompoundTag entityNbt) {
|
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));
|
this.getAttribute(Attributes.FOLLOW_RANGE).addPermanentModifier(new AttributeModifier("Random spawn bonus", this.random.nextGaussian() * 0.05D, AttributeModifier.Operation.MULTIPLY_BASE));
|
||||||
|
|||||||
@@ -18,10 +18,10 @@ index 1bc7b7f016b0f58bad34dfd58e506967d61099e5..f86e65530182685517e12ea609a4bdcd
|
|||||||
BlockState iblockdata = Blocks.WITHER_ROSE.defaultBlockState();
|
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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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() {
|
public void aiStep() {
|
||||||
super.aiStep();
|
super.aiStep();
|
||||||
this.level.getProfiler().push("looting");
|
this.level.getProfiler().push("looting");
|
||||||
|
|||||||
@@ -89,10 +89,10 @@ index b7d580fc174b69c23dbbc18e114f3d3119a8e9ea..bf01f496e2b89f6fbd44d845a12cdfae
|
|||||||
|
|
||||||
public boolean isSensitiveToWater() {
|
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
|
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
|
--- a/src/main/java/net/minecraft/world/entity/Mob.java
|
||||||
+++ b/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() {
|
public boolean isSunBurnTick() {
|
||||||
|
|||||||
Reference in New Issue
Block a user