diff --git a/src/main/java/com/jnngl/vanillaminimaps/map/Minimap.java b/src/main/java/com/jnngl/vanillaminimaps/map/Minimap.java index e353fbf..8a00f8d 100644 --- a/src/main/java/com/jnngl/vanillaminimaps/map/Minimap.java +++ b/src/main/java/com/jnngl/vanillaminimaps/map/Minimap.java @@ -72,14 +72,14 @@ public void update(MinimapProvider provider, double playerX, double playerZ, boo offsetZ += 128; } byte[] data = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX, alignedZ); - byte[] dataRight = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX + 128, alignedZ); - byte[] dataUpRight = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX + 128, alignedZ + 128); - byte[] dataUp = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX, alignedZ + 128); + byte[] dataRight = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX + 256, alignedZ); + byte[] dataUpRight = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX + 256, alignedZ + 256); + byte[] dataUp = cacheableRenderer.getWorldMapCache().get(holder.getWorld(), alignedX, alignedZ + 256); LongList usedChunks = LongList.of( WorldMapCache.getKey(holder.getWorld(), alignedTrackX, alignedTrackZ), - WorldMapCache.getKey(holder.getWorld(), alignedTrackX + 128, alignedTrackZ), - WorldMapCache.getKey(holder.getWorld(), alignedTrackX + 128, alignedTrackZ + 128), - WorldMapCache.getKey(holder.getWorld(), alignedTrackX, alignedTrackZ + 128) + WorldMapCache.getKey(holder.getWorld(), alignedTrackX + 256, alignedTrackZ), + WorldMapCache.getKey(holder.getWorld(), alignedTrackX + 256, alignedTrackZ + 256), + WorldMapCache.getKey(holder.getWorld(), alignedTrackX, alignedTrackZ + 256) ); for (int z = 0; z < 128; z++) { for (int x = 0; x < 128; x++) { diff --git a/src/main/java/com/jnngl/vanillaminimaps/map/renderer/world/FlatWorldMinimapRenderer.java b/src/main/java/com/jnngl/vanillaminimaps/map/renderer/world/FlatWorldMinimapRenderer.java index ced91fb..583e046 100644 --- a/src/main/java/com/jnngl/vanillaminimaps/map/renderer/world/FlatWorldMinimapRenderer.java +++ b/src/main/java/com/jnngl/vanillaminimaps/map/renderer/world/FlatWorldMinimapRenderer.java @@ -24,24 +24,36 @@ import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.material.MapColor; +import org.bukkit.Material; import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.craftbukkit.v1_20_R3.block.CraftBlock; import org.bukkit.craftbukkit.v1_20_R3.block.data.CraftBlockData; +import java.util.ArrayList; +import java.util.Collections; + public class FlatWorldMinimapRenderer implements CacheableWorldMinimapRenderer { private final WorldMapCache cache = new WorldMapCache<>(this); @Override - public void renderFully(World world, int blockX, int blockZ, byte[] data) { - for (int x = 0; x < 128; x++) { - for (int z = 0; z < 128; z++) { - int worldX = blockX + x; - int worldZ = blockZ + z; - int index = (127 - z) * 128 + (127 - x); + public void renderFully(World world, int centerX, int centerZ, byte[] data) { + + int size = 256; + int step = (int) (size/128.0); + + for (int x = 0; x < size; x+= step) { + for (int z = 0; z < size; z+= step) { + + int worldX = centerX + x; + int worldZ = centerZ + z; + + int index = (int) ((127 - z/step) * 128 + (127 - x/step)); + Block block = world.getHighestBlockAt(worldX, worldZ); storeBlockColor(data, index, block); + } } }