9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00
Files
Leaf/leaf-server/paper-patches/features/0057-optimize-despawn.patch
hayanesuru fe444c434f Update optimize entity despawn (#454)
* update partial sort in despawn map

* inline get pos

* cache difficulty

* refactor

* fix fallback extract

* remove test code

* cleanup

* direct compare

* cleanup

* cleanup

* fix axis and remove bucket

* reduce alloc

* paper vertical fallback

* add 2 dimension

* cleanup
2025-09-14 20:45:57 -04:00

35 lines
2.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: hayanesuru <hayanesuru@outlook.jp>
Date: Thu, 26 Jun 2025 00:42:27 +0900
Subject: [PATCH] optimize despawn
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
index 5fc9ec3e564135013622f839e59ef5a0ddff6f71..74d0c6ed2d779b8d02870da74379887e3c460361 100644
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
@@ -179,7 +179,7 @@ public class WorldConfiguration extends ConfigurationPart {
@MergeMap
public Reference2IntMap<MobCategory> spawnLimits = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
@MergeMap
- public Map<MobCategory, DespawnRangePair> despawnRanges = Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> DespawnRangePair.createDefault()));
+ public Map<MobCategory, DespawnRangePair> despawnRanges = new java.util.EnumMap<>(Arrays.stream(MobCategory.values()).collect(Collectors.toMap(Function.identity(), category -> DespawnRangePair.createDefault()))); // Leaf - optimize despawn - replace with EnumMap
public DespawnRange.Shape despawnRangeShape = DespawnRange.Shape.ELLIPSOID;
@MergeMap
public Reference2IntMap<MobCategory> ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
diff --git a/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java b/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java
index 7779edcbbce36d7da177a92807dac73fbe24c9fa..093638ded4e35a33f34ef3d0e0fc2175efc5efaf 100644
--- a/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java
+++ b/src/main/java/io/papermc/paper/configuration/type/DespawnRange.java
@@ -20,8 +20,8 @@ public final class DespawnRange {
public static final TypeSerializer<DespawnRange> SERIALIZER = new Serializer();
- private final IntOr.Default horizontalLimit;
- private final IntOr.Default verticalLimit;
+ public final IntOr.Default horizontalLimit; // Leaf - optimize despawn
+ public final IntOr.Default verticalLimit; // Leaf - optimize despawn
private final boolean wasDefinedViaLongSyntax;
// cached values