mirror of
https://github.com/PaperMC/Paper.git
synced 2024-11-09 12:19:56 +01:00
72e87abc2d
Co-authored-by: Paul Sauve <paul@technove.co>
33 lines
1.9 KiB
Diff
33 lines
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 9b55b04ab2769c6089d16a9c7bc61ca41683559f..7a5e5fa67ed5625cfbe74ba8ea8810095100e836 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<MapColor> 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;
|