mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-22 00:19:33 +00:00
Add More*6 Performance Improvements by Pufferfish
This commit is contained in:
@@ -151,18 +151,22 @@ index 4cdfc433df67afcd455422e9baf56f167dd712ae..a6e0f5dab21d806e0c7744b2a337cded
|
||||
private void ensureActiveIsNotIterated() {
|
||||
// Paper - replace with better logic, do not delay removals
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 857b8881ba2d526ee366aa04228b72bc8d7c8c47..7430ba59d0d16c628a7c62100902e23b0470b419 100644
|
||||
index 857b8881ba2d526ee366aa04228b72bc8d7c8c47..6f0d0c255e7767c31605effbcb0b41659f0b8ddb 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -222,7 +222,12 @@ public final class LeavesConfig {
|
||||
@@ -222,7 +222,16 @@ public final class LeavesConfig {
|
||||
}
|
||||
noChatSign = getBoolean("settings.misc.no-chat-sign", noChatSign);
|
||||
}
|
||||
-
|
||||
+
|
||||
+ public static boolean asyncMobSpawning = false;
|
||||
+ private static boolean asyncMobSpawningLock = false;
|
||||
+ private static void asyncMobSpawning() {
|
||||
+ if (!asyncMobSpawningLock) {
|
||||
+ asyncMobSpawning = getBoolean("settings.performance.async-mob-spawning", asyncMobSpawning);
|
||||
+ asyncMobSpawningLock = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -69,11 +69,11 @@ index 3b144c820531122eb37d41be06c182b5f5dc0724..8eb4a062489b42b26076d5f3bdfbff36
|
||||
this.entity.stopSeenByPlayer(player);
|
||||
player.connection.send(new ClientboundRemoveEntitiesPacket(new int[]{this.entity.getId()}));
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 7430ba59d0d16c628a7c62100902e23b0470b419..26e23a21f7cbd8d5e9a2dbf4860adc03a04e6e0e 100644
|
||||
index 6f0d0c255e7767c31605effbcb0b41659f0b8ddb..f4e5b84f0bd952676950369eff44b87fe1c46f1b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -228,6 +228,11 @@ public final class LeavesConfig {
|
||||
asyncMobSpawning = getBoolean("settings.performance.async-mob-spawning", asyncMobSpawning);
|
||||
@@ -232,6 +232,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public static boolean dontSendUselessEntityPackets = true;
|
||||
|
||||
@@ -186,16 +186,20 @@ index 8eb4a062489b42b26076d5f3bdfbff368c1a199b..441edf3dbd34c8d15b7b1ba02c92e8f1
|
||||
|
||||
set.clear();
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 26e23a21f7cbd8d5e9a2dbf4860adc03a04e6e0e..51130d4d0f95af0d3ee508e83e69697783c31106 100644
|
||||
index f4e5b84f0bd952676950369eff44b87fe1c46f1b..1ef5e16bc44369eefd58df7d93e031ca83ce7190 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -233,6 +233,11 @@ public final class LeavesConfig {
|
||||
@@ -237,6 +237,15 @@ public final class LeavesConfig {
|
||||
dontSendUselessEntityPackets = getBoolean("settings.performance.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
|
||||
}
|
||||
|
||||
+ public static boolean asyncEntityTracker = false;
|
||||
+ private static boolean asyncEntityTrackerLock = false;
|
||||
+ private static void asyncEntityTracker() {
|
||||
+ if (!asyncEntityTrackerLock) {
|
||||
+ asyncEntityTracker = getBoolean("settings.performance.async-entity-tracker", asyncEntityTracker);
|
||||
+ asyncEntityTrackerLock = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -18,11 +18,11 @@ index 26bf383caea68834c654b25653ced9017f1b1b22..71e3c7fc5c071e83dfeca6954771e559
|
||||
this.blockPos = mutableBlockPos;
|
||||
setTargetPosition(mutableBlockPos.immutable()); // Paper
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 51130d4d0f95af0d3ee508e83e69697783c31106..f157ee3c0b37fab427c9ce97ac3d28ddca831f8b 100644
|
||||
index 1ef5e16bc44369eefd58df7d93e031ca83ce7190..51c71e922fa98dd30d52d89b1d8d4be77eff491b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -238,6 +238,11 @@ public final class LeavesConfig {
|
||||
asyncEntityTracker = getBoolean("settings.performance.async-entity-tracker", asyncEntityTracker);
|
||||
@@ -246,6 +246,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public static boolean fixPaper6045 = true;
|
||||
|
||||
@@ -38,10 +38,10 @@ index eda98b85fb00fe7787d2f7a643c3854aa4b02fbf..1f1bed78e8d003cfd85bc5cf38014c3d
|
||||
private Vec3 deltaMovement;
|
||||
public float yRot; // Paper - private->public
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f157ee3c0b37fab427c9ce97ac3d28ddca831f8b..fbdead4eaeee7bb730c23d6228ae939ce9c01971 100644
|
||||
index 51c71e922fa98dd30d52d89b1d8d4be77eff491b..338aef7429790cb24bacb790c0180d5516c9c3ba 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -243,6 +243,11 @@ public final class LeavesConfig {
|
||||
@@ -251,6 +251,11 @@ public final class LeavesConfig {
|
||||
fixPaper6045 = getBoolean("settings.performance.fix.fix-paper-6045", fixPaper6045);
|
||||
}
|
||||
|
||||
|
||||
@@ -35,10 +35,10 @@ index 2dee51917888e20768f434b8232430094028b516..8f9bbe88827b6697762f4d43dce1da39
|
||||
public boolean hurt(DamageSource source, float amount) {
|
||||
if (this.isInvulnerableTo(source)) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index fbdead4eaeee7bb730c23d6228ae939ce9c01971..6091a783878f929edfb87cf88963590538c72634 100644
|
||||
index 338aef7429790cb24bacb790c0180d5516c9c3ba..4e241398ea555e3696ad969aa37c51311116b92e 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -248,6 +248,11 @@ public final class LeavesConfig {
|
||||
@@ -256,6 +256,11 @@ public final class LeavesConfig {
|
||||
optimizeEntityCoordinateKey = getBoolean("settings.performance.optimize-entity-coordinate-key", optimizeEntityCoordinateKey);
|
||||
}
|
||||
|
||||
|
||||
@@ -142,10 +142,10 @@ index fd18fb454263893d404979a9c9af860ee2ba9a3a..1bd4a181ccf82c687f58b8033683f15a
|
||||
return pos.isInsideBuildHeightAndWorldBoundsHorizontal(this); // Paper - use better/optimized check
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 6091a783878f929edfb87cf88963590538c72634..76c4110c54c8a883fd015a434c7b101fa3fbb18b 100644
|
||||
index 4e241398ea555e3696ad969aa37c51311116b92e..8de03a1d05888308b64007d78dc01f6be58fd730 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -253,6 +253,11 @@ public final class LeavesConfig {
|
||||
@@ -261,6 +261,11 @@ public final class LeavesConfig {
|
||||
enableSuffocationOptimization = getBoolean("settings.performance.enable-suffocation-optimization", enableSuffocationOptimization);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,10 +45,10 @@ index 50d4595b81f24949011c7565c5e3fc8c26c86019..8de1653e3fbf29e9de550a1976344bd8
|
||||
@Override
|
||||
protected float getStandingEyeHeight(Pose pose, EntityDimensions dimensions) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 76c4110c54c8a883fd015a434c7b101fa3fbb18b..a675e5ebf5d8ee2ff7dfc86fe93293f1366b886a 100644
|
||||
index 8de03a1d05888308b64007d78dc01f6be58fd730..f5c07942038a51400e6cdbaee264ad869ebe8b7b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -258,6 +258,11 @@ public final class LeavesConfig {
|
||||
@@ -266,6 +266,11 @@ public final class LeavesConfig {
|
||||
entityStripRaytracing = getBoolean("settings.performance.strip-raytracing-for-entity", entityStripRaytracing);
|
||||
}
|
||||
|
||||
|
||||
@@ -93,14 +93,14 @@ index 2292cb0e0c1a3e0ed34b941f028136bfb0bff13e..a6ea5fd73cb1f6b3c6c35d0cde331b6c
|
||||
|
||||
public org.bukkit.Chunk bukkitChunk;
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index a675e5ebf5d8ee2ff7dfc86fe93293f1366b886a..f01a5349f59a98cb80b06d6b48d23bcd6cc59eb3 100644
|
||||
index f5c07942038a51400e6cdbaee264ad869ebe8b7b..a5f51eefcff48e5a5e44b5143f80b87be06676c3 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -263,6 +263,11 @@ public final class LeavesConfig {
|
||||
@@ -271,6 +271,11 @@ public final class LeavesConfig {
|
||||
checkSpookySeasonOnceAnHour = getBoolean("settings.performance.check-spooky-season-once-an-hour", checkSpookySeasonOnceAnHour);
|
||||
}
|
||||
|
||||
+ public static boolean optimizeChunkTicking = true;
|
||||
+ public static boolean optimizeChunkTicking = false;
|
||||
+ private static void optimizeChunkTicking() {
|
||||
+ optimizeChunkTicking = getBoolean("settings.performance.optimize-chunk-ticking", optimizeChunkTicking);
|
||||
+ }
|
||||
|
||||
@@ -18,10 +18,10 @@ index 43243537b765a2d270be6de3f053fea77ff67d18..7d8a137068ab2b33690c369f4da46e90
|
||||
this.batchCache.long2ObjectEntrySet().removeIf((entry) -> {
|
||||
return !entry.getValue().isStillValid(time);
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f01a5349f59a98cb80b06d6b48d23bcd6cc59eb3..4112467e6e72b31ec0963d69800da758c089a0a0 100644
|
||||
index a5f51eefcff48e5a5e44b5143f80b87be06676c3..f00104ea447d83f4fa94352296b9ae78cd46b765 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -268,6 +268,11 @@ public final class LeavesConfig {
|
||||
@@ -276,6 +276,11 @@ public final class LeavesConfig {
|
||||
optimizeChunkTicking = getBoolean("settings.performance.optimize-chunk-ticking", optimizeChunkTicking);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,10 +29,10 @@ index a7575b5ef56af6f53448d391abb4956e130148ca..e2764cbc888be39943728ff810e1e44b
|
||||
return false;
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 4112467e6e72b31ec0963d69800da758c089a0a0..2da10eaf3dc4fce1edf65fe4068f5c9e30df3b17 100644
|
||||
index f00104ea447d83f4fa94352296b9ae78cd46b765..5a56cae5ef2a256b5b70e8b0bebdea4a88431f0b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -272,6 +272,11 @@ public final class LeavesConfig {
|
||||
@@ -280,6 +280,11 @@ public final class LeavesConfig {
|
||||
private static void skipPOIFindingInVehicle() {
|
||||
skipPOIFindingInVehicle = getBoolean("settings.performance.skip-poi-find-in-vehicle", skipPOIFindingInVehicle);
|
||||
}
|
||||
|
||||
@@ -38,10 +38,10 @@ index e31a2eea9a62ab2c0bed1a97dab6bae231b8cd8b..cc851e1a9c5b23269c53206a7f1e14f3
|
||||
|
||||
public static boolean isValidEmptySpawnBlock(BlockGetter blockView, BlockPos pos, BlockState state, FluidState fluidState, EntityType<?> entityType) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 2da10eaf3dc4fce1edf65fe4068f5c9e30df3b17..f7f2c18112fc711edda300753ce2f465fe75ba7f 100644
|
||||
index 5a56cae5ef2a256b5b70e8b0bebdea4a88431f0b..c0b01e0aee7fcb66f2940225069366ef02b6ef2a 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -278,6 +278,11 @@ public final class LeavesConfig {
|
||||
@@ -286,6 +286,11 @@ public final class LeavesConfig {
|
||||
entityTargetFindingOptimization = getBoolean("settings.performance.entity-target-find-optimization", entityTargetFindingOptimization);
|
||||
}
|
||||
|
||||
|
||||
@@ -38,10 +38,10 @@ index 6832efb59d9efdfbc3ec38a219193b503f57cabe..7b2ec2afb29f4141a1cc2736e3d6c07d
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f7f2c18112fc711edda300753ce2f465fe75ba7f..bf0cf0bc2e26c58fb4bef13258947e0021e9ace5 100644
|
||||
index c0b01e0aee7fcb66f2940225069366ef02b6ef2a..306415241dbe86eac20b2011ac7676dbca032644 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -283,6 +283,11 @@ public final class LeavesConfig {
|
||||
@@ -291,6 +291,11 @@ public final class LeavesConfig {
|
||||
useMoreThreadUnsafeRandom = getBoolean("settings.performance.use-more-thread-unsafe-random", useMoreThreadUnsafeRandom);
|
||||
}
|
||||
|
||||
|
||||
@@ -25,10 +25,10 @@ index 3646b969fa51b9683ab4137e530c3a6f6fc6c465..ed06eaa8bcd8246483115d2dfcb1de23
|
||||
}
|
||||
if (this.targetSelector.inactiveTick()) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index bf0cf0bc2e26c58fb4bef13258947e0021e9ace5..111787b63f67b1fdcac559faf1cc0eb7d6f0984e 100644
|
||||
index 306415241dbe86eac20b2011ac7676dbca032644..85d13feec033d3939dbbe8f1684aa408796a1706 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -288,6 +288,11 @@ public final class LeavesConfig {
|
||||
@@ -296,6 +296,11 @@ public final class LeavesConfig {
|
||||
disableMethodProfiler = getBoolean("settings.misc.disable-method-profiler", disableMethodProfiler);
|
||||
}
|
||||
|
||||
|
||||
@@ -28,10 +28,10 @@ index 35f9b11a3a61976c952a2c1c64bb2a932538f54f..5d678cfca0a39aeed0881c3a38828fdc
|
||||
|
||||
public boolean hasParam(LootContextParam<?> parameter) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 111787b63f67b1fdcac559faf1cc0eb7d6f0984e..1e7b428f4e8fef77bdc8eae43216fe113484fdcc 100644
|
||||
index 85d13feec033d3939dbbe8f1684aa408796a1706..d14eb8bf345552559708bd028bfe5c76d1de3720 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -293,6 +293,11 @@ public final class LeavesConfig {
|
||||
@@ -301,6 +301,11 @@ public final class LeavesConfig {
|
||||
throttleInactiveGoalSelectorTick = getBoolean("settings.performance.inactive-goal-selector-disable", throttleInactiveGoalSelectorTick);
|
||||
}
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@ index c770ee21b7b699522941f6a1584d532001c04082..a0672f21797ff90e8bb6b16d3aaa671b
|
||||
|
||||
public boolean hasAttribute(Attribute attribute) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1e7b428f4e8fef77bdc8eae43216fe113484fdcc..afdb9c047d9f06c6dee5cec24393d5dd5bc9546b 100644
|
||||
index d14eb8bf345552559708bd028bfe5c76d1de3720..ddb1ed98be6bcdcd6604025c7996432d613697d8 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -298,6 +298,11 @@ public final class LeavesConfig {
|
||||
@@ -306,6 +306,11 @@ public final class LeavesConfig {
|
||||
skipCloneLootParameters = getBoolean("settings.performance.skip-clone-loot-parameters", skipCloneLootParameters);
|
||||
}
|
||||
|
||||
|
||||
@@ -36,10 +36,10 @@ index bb360a8a54fa4efe1cc6b672df09d4c0d6816d16..82fdf9ae2af5e36b2a8b74ec92d604d1
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index afdb9c047d9f06c6dee5cec24393d5dd5bc9546b..5c35fe757b7dfffb7570a36e49f13fa2e4680a3a 100644
|
||||
index ddb1ed98be6bcdcd6604025c7996432d613697d8..cfc8289915c95596991661e42fe5894aac9225c2 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -303,6 +303,11 @@ public final class LeavesConfig {
|
||||
@@ -311,6 +311,11 @@ public final class LeavesConfig {
|
||||
reduceEntityAllocations = getBoolean("settings.performance.reduce-entity-allocations", reduceEntityAllocations);
|
||||
}
|
||||
|
||||
|
||||
@@ -55,10 +55,10 @@ index a1a625a8dacf4d2bbf75ddd90dce1b1be663c919..038c5fae763c5d387a23aaacc3264ab3
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 5c35fe757b7dfffb7570a36e49f13fa2e4680a3a..8b4095c0e8797482bca3800ad9dfc4f894e63f85 100644
|
||||
index cfc8289915c95596991661e42fe5894aac9225c2..2c4b7a4c69721bfdd6cf8b9f06663dc3ad875fe3 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -308,6 +308,11 @@ public final class LeavesConfig {
|
||||
@@ -316,6 +316,11 @@ public final class LeavesConfig {
|
||||
removeTickGuardLambda = getBoolean("settings.performance.remove.tick-guard-lambda", removeTickGuardLambda);
|
||||
}
|
||||
|
||||
|
||||
@@ -68,10 +68,10 @@ index 66cecf64fac0b72590e1a4ea7147ea2ac78dd30a..2a55e56b80e2835ca8b3975f3b34e008
|
||||
return chunkMap.playerEntityTrackerTrackMaps[type.ordinal()].getObjectsInRange(MCUtil.getCoordinateKey(this));
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 8b4095c0e8797482bca3800ad9dfc4f894e63f85..d797792d4c26ba70c08e0b96f0a611c379b07105 100644
|
||||
index 2c4b7a4c69721bfdd6cf8b9f06663dc3ad875fe3..b4555c7beabd15666be6869432d0cb92484a8df8 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -313,6 +313,11 @@ public final class LeavesConfig {
|
||||
@@ -321,6 +321,11 @@ public final class LeavesConfig {
|
||||
removeInventoryContainsIterators = getBoolean("settings.performance.remove.inventory-contains-iterators", removeInventoryContainsIterators);
|
||||
}
|
||||
|
||||
|
||||
@@ -63,10 +63,10 @@ index 6c95663869b9d7a545393df0416332a509306bb5..b5ac10207ef5d500b36547322459f19e
|
||||
return this.scaledRange(i);
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index d797792d4c26ba70c08e0b96f0a611c379b07105..1c36dd6bdaa0bc11b0a7e082fdcd2061c19a333b 100644
|
||||
index b4555c7beabd15666be6869432d0cb92484a8df8..9845b7397c7c3a1e0229d40c054353c4a489e542 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -318,6 +318,11 @@ public final class LeavesConfig {
|
||||
@@ -326,6 +326,11 @@ public final class LeavesConfig {
|
||||
removeGetNearPlayerStreams = getBoolean("settings.performance.remove.get-nearby-players-streams", removeGetNearPlayerStreams);
|
||||
}
|
||||
|
||||
|
||||
@@ -756,16 +756,20 @@ index d23481453717f715124156b5d83f6448f720d049..6cc6140f44827ccc055aafdd6bfb3a09
|
||||
protected float distance(Node a, Node b) {
|
||||
return a.distanceTo(b);
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1c36dd6bdaa0bc11b0a7e082fdcd2061c19a333b..1203a5efe08cf6b3606f12c60672bd933718d52a 100644
|
||||
index 9845b7397c7c3a1e0229d40c054353c4a489e542..9636d6b7494c937071ea685dad9da06acba6149b 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -323,6 +323,11 @@ public final class LeavesConfig {
|
||||
@@ -331,6 +331,15 @@ public final class LeavesConfig {
|
||||
removeRangeCheckStreams = getBoolean("settings.performance.remove.range-check-streams-and-iterators", removeRangeCheckStreams);
|
||||
}
|
||||
|
||||
+ public static boolean asyncPathfinding = false;
|
||||
+ private static boolean asyncPathfindingLock = false;
|
||||
+ private static void asyncPathfinding() {
|
||||
+ if (!asyncPathfindingLock) {
|
||||
+ asyncPathfinding = getBoolean("settings.performance.async-pathfinding", asyncPathfinding);
|
||||
+ asyncPathfindingLock = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -46,11 +46,11 @@ index 40b382c2e0e33fe5c24a51b211cd2f9557a60c5e..5da7dc703aeaa4d7c325574ea9f6fd8c
|
||||
return 1; // Paper
|
||||
}
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 1203a5efe08cf6b3606f12c60672bd933718d52a..2d2cb73b4f8295ce5d60f3089c999bf4c5917a9a 100644
|
||||
index 9636d6b7494c937071ea685dad9da06acba6149b..9dc2a8d9de3207d56a6c6567f18ec3286010610e 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -328,6 +328,11 @@ public final class LeavesConfig {
|
||||
asyncPathfinding = getBoolean("settings.performance.async-pathfinding", asyncPathfinding);
|
||||
@@ -340,6 +340,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public static boolean cacheClimbCheck = true;
|
||||
|
||||
@@ -102,16 +102,20 @@ index ca259e278ad10347567c021376abca0287610432..968937e86bca8568a17988409506bcc0
|
||||
|
||||
public boolean shouldFreeze(LevelReader world, BlockPos blockPos) {
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index 2d2cb73b4f8295ce5d60f3089c999bf4c5917a9a..f2b028c2905d6a1c83d45280ace377a03f6f4598 100644
|
||||
index 9dc2a8d9de3207d56a6c6567f18ec3286010610e..fa323a0348536b4e356a0f796131f2b364a1cb6d 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -333,6 +333,11 @@ public final class LeavesConfig {
|
||||
@@ -345,6 +345,15 @@ public final class LeavesConfig {
|
||||
cacheClimbCheck = getBoolean("settings.performance.cache-climb-check", cacheClimbCheck);
|
||||
}
|
||||
|
||||
+ public static boolean biomeTemperaturesUseAgingCache = true;
|
||||
+ private static boolean biomeTemperaturesUseAgingCacheLock = false;
|
||||
+ private static void biomeTemperaturesUseAgingCache() {
|
||||
+ if (!biomeTemperaturesUseAgingCacheLock) {
|
||||
+ biomeTemperaturesUseAgingCache = getBoolean("settings.performance.biome-temperatures-use-aging-cache", biomeTemperaturesUseAgingCache);
|
||||
+ biomeTemperaturesUseAgingCacheLock = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
@@ -0,0 +1,234 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
||||
Date: Sat, 20 Aug 2022 22:52:31 +0800
|
||||
Subject: [PATCH] Reduce entity fluid lookups if no fluids
|
||||
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 2a55e56b80e2835ca8b3975f3b34e0087d385717..b52eed1005bc118d3dc7f74daabceec574a59349 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -3990,16 +3990,18 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
}
|
||||
|
||||
public boolean updateFluidHeightAndDoFluidPushing(TagKey<Fluid> tag, double speed) {
|
||||
- if (this.touchingUnloadedChunk()) {
|
||||
+ if (!top.leavesmc.leaves.LeavesConfig.reduceEntityFluidLookup && this.touchingUnloadedChunk()) { // Leaves - cost of a lookup here is the same cost as below, so skip
|
||||
return false;
|
||||
} else {
|
||||
AABB axisalignedbb = this.getBoundingBox().deflate(0.001D);
|
||||
- int i = Mth.floor(axisalignedbb.minX);
|
||||
- int j = Mth.ceil(axisalignedbb.maxX);
|
||||
- int k = Mth.floor(axisalignedbb.minY);
|
||||
- int l = Mth.ceil(axisalignedbb.maxY);
|
||||
- int i1 = Mth.floor(axisalignedbb.minZ);
|
||||
- int j1 = Mth.ceil(axisalignedbb.maxZ);
|
||||
+ // Leaves start - rename
|
||||
+ int minBlockX = Mth.floor(axisalignedbb.minX);
|
||||
+ int maxBlockX = Mth.ceil(axisalignedbb.maxX);
|
||||
+ int minBlockY = Mth.floor(axisalignedbb.minY);
|
||||
+ int maxBlockY = Mth.ceil(axisalignedbb.maxY);
|
||||
+ int minBlockZ = Mth.floor(axisalignedbb.minZ);
|
||||
+ int maxBlockZ = Mth.ceil(axisalignedbb.maxZ);
|
||||
+ // Leaves end
|
||||
double d1 = 0.0D;
|
||||
boolean flag = this.isPushedByFluid();
|
||||
boolean flag1 = false;
|
||||
@@ -4007,38 +4009,123 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
int k1 = 0;
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos();
|
||||
|
||||
- for (int l1 = i; l1 < j; ++l1) {
|
||||
- for (int i2 = k; i2 < l; ++i2) {
|
||||
- for (int j2 = i1; j2 < j1; ++j2) {
|
||||
- blockposition_mutableblockposition.set(l1, i2, j2);
|
||||
- FluidState fluid = this.level.getFluidState(blockposition_mutableblockposition);
|
||||
+ // Leaves start - based off CollisionUtil.getCollisionsForBlocksOrWorldBorder
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.reduceEntityFluidLookup) {
|
||||
+ final int minSection = io.papermc.paper.util.WorldUtil.getMinSection(this.level);
|
||||
+ final int maxSection = io.papermc.paper.util.WorldUtil.getMaxSection(this.level);
|
||||
+ final int minBlock = minSection << 4;
|
||||
+ final int maxBlock = (maxSection << 4) | 15;
|
||||
|
||||
- if (fluid.is(tag)) {
|
||||
- double d2 = (double) ((float) i2 + fluid.getHeight(this.level, blockposition_mutableblockposition));
|
||||
+ // special cases:
|
||||
+ if (minBlockY > maxBlock || maxBlockY < minBlock) {
|
||||
+ // no point in checking
|
||||
+ return false;
|
||||
+ }
|
||||
|
||||
- if (d2 >= axisalignedbb.minY) {
|
||||
- flag1 = true;
|
||||
- d1 = Math.max(d2 - axisalignedbb.minY, d1);
|
||||
- if (flag) {
|
||||
- Vec3 vec3d1 = fluid.getFlow(this.level, blockposition_mutableblockposition);
|
||||
+ int minYIterate = Math.max(minBlock, minBlockY);
|
||||
+ int maxYIterate = Math.min(maxBlock, maxBlockY);
|
||||
|
||||
- if (d1 < 0.4D) {
|
||||
- vec3d1 = vec3d1.scale(d1);
|
||||
- }
|
||||
+ int minChunkX = minBlockX >> 4;
|
||||
+ int maxChunkX = maxBlockX >> 4;
|
||||
+
|
||||
+ int minChunkZ = minBlockZ >> 4;
|
||||
+ int maxChunkZ = maxBlockZ >> 4;
|
||||
+
|
||||
+ for (int currChunkZ = minChunkZ; currChunkZ <= maxChunkZ; ++currChunkZ) {
|
||||
+ int minZ = currChunkZ == minChunkZ ? minBlockZ & 15 : 0; // coordinate in chunk
|
||||
+ int maxZ = currChunkZ == maxChunkZ ? maxBlockZ & 15 : 16; // coordinate in chunk
|
||||
+
|
||||
+ for (int currChunkX = minChunkX; currChunkX <= maxChunkX; ++currChunkX) {
|
||||
+ int minX = currChunkX == minChunkX ? minBlockX & 15 : 0; // coordinate in chunk
|
||||
+ int maxX = currChunkX == maxChunkX ? maxBlockX & 15 : 16; // coordinate in chunk
|
||||
+
|
||||
+ net.minecraft.world.level.chunk.ChunkAccess chunk = this.level.getChunkIfLoadedImmediately(currChunkX, currChunkZ);
|
||||
+ if (chunk == null) {
|
||||
+ return false; // if we're touching an unloaded chunk then it's false
|
||||
+ }
|
||||
+
|
||||
+ net.minecraft.world.level.chunk.LevelChunkSection[] sections = chunk.getSections();
|
||||
+
|
||||
+ for (int currY = minYIterate; currY < maxYIterate; ++currY) {
|
||||
+ net.minecraft.world.level.chunk.LevelChunkSection section = sections[(currY >> 4) - minSection];
|
||||
|
||||
- vec3d = vec3d.add(vec3d1);
|
||||
- ++k1;
|
||||
+ if (section == null || section.hasOnlyAir() || section.fluidStateCount == 0) { // if no fluids, nothing in this section
|
||||
+ // empty
|
||||
+ // skip to next section
|
||||
+ currY = (currY & ~(15)) + 15; // increment by 15: iterator loop increments by the extra one
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ net.minecraft.world.level.chunk.PalettedContainer<BlockState> blocks = section.states;
|
||||
+
|
||||
+ for (int currZ = minZ; currZ < maxZ; ++currZ) {
|
||||
+ for (int currX = minX; currX < maxX; ++currX) {
|
||||
+ FluidState fluid = blocks.get(currX & 15, currY & 15, currZ & 15).getFluidState();
|
||||
+
|
||||
+ if (fluid.is(tag)) {
|
||||
+ blockposition_mutableblockposition.set((currChunkX << 4) + currX, currY, (currChunkZ << 4) + currZ);
|
||||
+ double d2 = (double) ((float) currY + fluid.getHeight(this.level, blockposition_mutableblockposition));
|
||||
+
|
||||
+ if (d2 >= axisalignedbb.minY) {
|
||||
+ flag1 = true;
|
||||
+ d1 = Math.max(d2 - axisalignedbb.minY, d1);
|
||||
+ if (flag) {
|
||||
+ Vec3 vec3d1 = fluid.getFlow(this.level, blockposition_mutableblockposition);
|
||||
+
|
||||
+ if (d1 < 0.4D) {
|
||||
+ vec3d1 = vec3d1.scale(d1);
|
||||
+ }
|
||||
+
|
||||
+ vec3d = vec3d.add(vec3d1);
|
||||
+ ++k1;
|
||||
+ }
|
||||
+ // CraftBukkit start - store last lava contact location
|
||||
+ if (tag == FluidTags.LAVA) {
|
||||
+ this.lastLavaContact = blockposition_mutableblockposition.immutable();
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
- // CraftBukkit start - store last lava contact location
|
||||
- if (tag == FluidTags.LAVA) {
|
||||
- this.lastLavaContact = blockposition_mutableblockposition.immutable();
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ } else {
|
||||
+ for (int l1 = minBlockX; l1 < maxBlockX; ++l1) {
|
||||
+ for (int i2 = minBlockY; i2 < maxBlockY; ++i2) {
|
||||
+ for (int j2 = minBlockZ; j2 < maxBlockZ; ++j2) {
|
||||
+ blockposition_mutableblockposition.set(l1, i2, j2);
|
||||
+ FluidState fluid = this.level.getFluidState(blockposition_mutableblockposition);
|
||||
+
|
||||
+ if (fluid.is(tag)) {
|
||||
+ double d2 = (double) ((float) i2 + fluid.getHeight(this.level, blockposition_mutableblockposition));
|
||||
+
|
||||
+ if (d2 >= axisalignedbb.minY) {
|
||||
+ flag1 = true;
|
||||
+ d1 = Math.max(d2 - axisalignedbb.minY, d1);
|
||||
+ if (flag) {
|
||||
+ Vec3 vec3d1 = fluid.getFlow(this.level, blockposition_mutableblockposition);
|
||||
+
|
||||
+ if (d1 < 0.4D) {
|
||||
+ vec3d1 = vec3d1.scale(d1);
|
||||
+ }
|
||||
+
|
||||
+ vec3d = vec3d.add(vec3d1);
|
||||
+ ++k1;
|
||||
+ }
|
||||
+ // CraftBukkit start - store last lava contact location
|
||||
+ if (tag == FluidTags.LAVA) {
|
||||
+ this.lastLavaContact = blockposition_mutableblockposition.immutable();
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
}
|
||||
- // CraftBukkit end
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+ // Leaves end
|
||||
|
||||
if (vec3d.length() > 0.0D) {
|
||||
if (k1 > 0) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
index b0c9fce9d4e06cac139e341d218d0b6aac1f1943..f53fee91b78ba4c1e17360a40d5a94febd11eb21 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/LevelChunkSection.java
|
||||
@@ -27,6 +27,7 @@ public class LevelChunkSection {
|
||||
public final PalettedContainer<BlockState> states;
|
||||
// CraftBukkit start - read/write
|
||||
private PalettedContainer<Holder<Biome>> biomes;
|
||||
+ public short fluidStateCount; // Leaves
|
||||
public final com.destroystokyo.paper.util.maplist.IBlockDataList tickingList = new com.destroystokyo.paper.util.maplist.IBlockDataList(); // Paper
|
||||
|
||||
public LevelChunkSection(int i, PalettedContainer<BlockState> datapaletteblock, PalettedContainer<Holder<Biome>> palettedcontainerro) {
|
||||
@@ -198,6 +199,7 @@ public class LevelChunkSection {
|
||||
|
||||
if (!fluid.isEmpty()) {
|
||||
--this.tickingFluidCount;
|
||||
+ --this.fluidStateCount; // Leaves
|
||||
}
|
||||
|
||||
if (!state.isAir()) {
|
||||
@@ -212,6 +214,7 @@ public class LevelChunkSection {
|
||||
|
||||
if (!fluid1.isEmpty()) {
|
||||
++this.tickingFluidCount;
|
||||
+ --this.fluidStateCount; // Leaves
|
||||
}
|
||||
|
||||
this.updateKnownBlockInfo(x | (z << 4) | (y << 8), iblockdata1, state); // Paper
|
||||
@@ -260,6 +263,7 @@ public class LevelChunkSection {
|
||||
if (fluid.isRandomlyTicking()) {
|
||||
this.tickingFluidCount = (short) (this.tickingFluidCount + 1);
|
||||
}
|
||||
+ this.fluidStateCount++; // Leaves
|
||||
}
|
||||
|
||||
});
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index fa323a0348536b4e356a0f796131f2b364a1cb6d..f2e6d4879afbf8cef5440fc615512e92b61d8085 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -354,6 +354,11 @@ public final class LeavesConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public static boolean reduceEntityFluidLookup = true;
|
||||
+ private static void reduceEntityFluidLookup() {
|
||||
+ reduceEntityFluidLookup = getBoolean("settings.performance.reduce-entity-fluid-lookup", reduceEntityFluidLookup);
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
public final String worldName;
|
||||
59
patches/server/0043-Reduce-chunk-loading-lookups.patch
Normal file
59
patches/server/0043-Reduce-chunk-loading-lookups.patch
Normal file
@@ -0,0 +1,59 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: violetc <58360096+s-yh-china@users.noreply.github.com>
|
||||
Date: Sun, 21 Aug 2022 08:29:15 +0800
|
||||
Subject: [PATCH] Reduce chunk loading & lookups
|
||||
|
||||
This patch is Powered by Pufferfish(https://github.com/pufferfish-gg/Pufferfish)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
index f22e615dba31619c97bf58930da060476a52facf..c330e65310821248409655953b88717f634b0db5 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||
@@ -317,11 +317,28 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||
private boolean teleport(double x, double y, double z) {
|
||||
BlockPos.MutableBlockPos blockposition_mutableblockposition = new BlockPos.MutableBlockPos(x, y, z);
|
||||
|
||||
- while (blockposition_mutableblockposition.getY() > this.level.getMinBuildHeight() && !this.level.getBlockState(blockposition_mutableblockposition).getMaterial().blocksMotion()) {
|
||||
- blockposition_mutableblockposition.move(Direction.DOWN);
|
||||
+ // Leaves start - single chunk lookup
|
||||
+ BlockState iblockdata;
|
||||
+ if (top.leavesmc.leaves.LeavesConfig.reduceChuckLoadAndLookup) {
|
||||
+ net.minecraft.world.level.chunk.LevelChunk chunk = this.level.getChunkIfLoaded(blockposition_mutableblockposition);
|
||||
+ if (chunk == null) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ while (blockposition_mutableblockposition.getY() > this.level.getMinBuildHeight() && !chunk.getBlockState(blockposition_mutableblockposition).getMaterial().blocksMotion()) {
|
||||
+ blockposition_mutableblockposition.move(Direction.DOWN);
|
||||
+ }
|
||||
+
|
||||
+ iblockdata = chunk.getBlockState(blockposition_mutableblockposition);
|
||||
+ } else {
|
||||
+ while (blockposition_mutableblockposition.getY() > this.level.getMinBuildHeight() && !this.level.getBlockState(blockposition_mutableblockposition).getMaterial().blocksMotion()) {
|
||||
+ blockposition_mutableblockposition.move(Direction.DOWN);
|
||||
+ }
|
||||
+
|
||||
+ iblockdata = this.level.getBlockState(blockposition_mutableblockposition);
|
||||
}
|
||||
+ // Leaves end - single chunk lookup
|
||||
|
||||
- BlockState iblockdata = this.level.getBlockState(blockposition_mutableblockposition);
|
||||
boolean flag = iblockdata.getMaterial().blocksMotion();
|
||||
boolean flag1 = iblockdata.getFluidState().is(FluidTags.WATER);
|
||||
|
||||
diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
index f2e6d4879afbf8cef5440fc615512e92b61d8085..3260987fc92c2571907695386e7c0d3f23c6ab38 100644
|
||||
--- a/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
+++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java
|
||||
@@ -359,6 +359,11 @@ public final class LeavesConfig {
|
||||
reduceEntityFluidLookup = getBoolean("settings.performance.reduce-entity-fluid-lookup", reduceEntityFluidLookup);
|
||||
}
|
||||
|
||||
+ public static boolean reduceChuckLoadAndLookup = true;
|
||||
+ private static void reduceChuckLoadAndLookup() {
|
||||
+ reduceChuckLoadAndLookup = getBoolean("settings.performance.reduce-chuck-load-and-lookup", reduceChuckLoadAndLookup);
|
||||
+ }
|
||||
+
|
||||
public static final class WorldConfig {
|
||||
|
||||
public final String worldName;
|
||||
Reference in New Issue
Block a user