Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-15 11:00:06 +01:00
33 Zeilen
1.9 KiB
Diff
33 Zeilen
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Phoenix616 <mail@moep.tv>
|
|
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 0c4b4c8b770ea0adb1a8346ea2cda96570687bea..e58ba9c46e6de59b55c6471a44e1a5f158e70e07 100644
|
|
--- a/src/main/java/net/minecraft/world/item/MapItem.java
|
|
+++ b/src/main/java/net/minecraft/world/item/MapItem.java
|
|
@@ -134,9 +134,9 @@ public class MapItem extends ComplexItem {
|
|
int j2 = (j / i + k1 - 64) * i;
|
|
int k2 = (k / i + l1 - 64) * i;
|
|
Multiset<MaterialColor> multiset = LinkedHashMultiset.create();
|
|
- LevelChunk chunk = world.getChunk(SectionPos.blockToSectionCoord(j2), SectionPos.blockToSectionCoord(k2));
|
|
+ LevelChunk chunk = world.getChunkIfLoaded(SectionPos.blockToSectionCoord(j2), SectionPos.blockToSectionCoord(k2)); // Paper - Maps shouldn't load chunks
|
|
|
|
- if (!chunk.isEmpty()) {
|
|
+ if (chunk != null && !chunk.isEmpty()) { // Paper - Maps shouldn't load chunks
|
|
int l2 = 0;
|
|
double d1 = 0.0D;
|
|
int i3;
|