9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-26 10:29:13 +00:00
Files
Leaf/leaf-server/paper-patches/features/0045-Cache-chunk-key.patch
2025-08-06 03:10:45 +08:00

24 lines
1.2 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Sat, 2 Nov 2024 04:15:20 -0400
Subject: [PATCH] Cache chunk key
Cache convert process in ChunkPos to the chunkKey, to avoid unnecessary casting and shift operations.
This patch didn't cahce SectionPos or BlockPos to chunkKey, since they are mutable after creation.
The JMH benchmark of this patch can be found in SunBox's `CacheChunkKey`
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
index bb5b9c9cb0c73edce1dbe3758ee2db0fcc8f4e40..e9ed38430e15d51692004dbf2a1110abc77b31d2 100644
--- a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
+++ b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
@@ -21,7 +21,7 @@ public final class CoordinateUtils {
}
public static long getChunkKey(final ChunkPos pos) {
- return ((long)pos.z << 32) | (pos.x & 0xFFFFFFFFL);
+ return ((long)pos.z << 32) | (pos.x & 0xFFFFFFFFL); // Leaf - Cache chunk key - diff on change
}
public static long getChunkKey(final SectionPos pos) {