From a31dc90741ed9c121a13a3c124c9ebf5bafd0da7 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Wed, 29 May 2024 13:58:57 -0700 Subject: Several fixes and new api for experience merging/stacking (#9242) --- .../server/0369-Maps-shouldn-t-load-chunks.patch | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 patches/server/0369-Maps-shouldn-t-load-chunks.patch (limited to 'patches/server/0369-Maps-shouldn-t-load-chunks.patch') diff --git a/patches/server/0369-Maps-shouldn-t-load-chunks.patch b/patches/server/0369-Maps-shouldn-t-load-chunks.patch new file mode 100644 index 0000000000..3bc3299f81 --- /dev/null +++ b/patches/server/0369-Maps-shouldn-t-load-chunks.patch @@ -0,0 +1,31 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Phoenix616 +Date: Sun, 7 Jun 2020 21:43:42 +0100 +Subject: [PATCH] Maps shouldn't load chunks + +Previously maps would load all chunks in a certain radius depending on + their scale when trying to update their content. This would result in + main thread chunk loads when they weren't really necessary, especially + on low view distances or "slow" async chunk loads after teleports or + other prioritisation. + + This changes it to only try to render already loaded chunks based on + the assumption that the chunks around the player will get loaded + eventually anyways and that maps will get checked for update every + five ticks that movement occur in anyways. + +diff --git a/src/main/java/net/minecraft/world/item/MapItem.java b/src/main/java/net/minecraft/world/item/MapItem.java +index 4e6d42051de14a1a62184fbb586ea38fb31261b3..36de7c63370c529579d31ba1d77ec12b754ef313 100644 +--- a/src/main/java/net/minecraft/world/item/MapItem.java ++++ b/src/main/java/net/minecraft/world/item/MapItem.java +@@ -98,8 +98,8 @@ public class MapItem extends ComplexItem { + int r = (j / i + o - 64) * i; + int s = (k / i + p - 64) * i; + Multiset multiset = LinkedHashMultiset.create(); +- LevelChunk levelChunk = world.getChunk(SectionPos.blockToSectionCoord(r), SectionPos.blockToSectionCoord(s)); +- if (!levelChunk.isEmpty()) { ++ LevelChunk levelChunk = world.getChunkIfLoaded(SectionPos.blockToSectionCoord(r), SectionPos.blockToSectionCoord(s)); // Paper - Maps shouldn't load chunks ++ if (levelChunk != null && !levelChunk.isEmpty()) { // Paper - Maps shouldn't load chunks + int t = 0; + double e = 0.0; + if (world.dimensionType().hasCeiling()) { -- cgit v1.2.3