From 0490425cde966d02d16a5bc6cf64065a88f8f940 Mon Sep 17 00:00:00 2001 From: Brianna Date: Fri, 10 Apr 2020 13:20:18 -0400 Subject: [PATCH] Lets not update chunks 458,752 times on island create and biome change. --- .../java/com/songoda/skyblock/biome/BiomeManager.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/songoda/skyblock/biome/BiomeManager.java b/src/main/java/com/songoda/skyblock/biome/BiomeManager.java index a4651dd0..23fe15a5 100644 --- a/src/main/java/com/songoda/skyblock/biome/BiomeManager.java +++ b/src/main/java/com/songoda/skyblock/biome/BiomeManager.java @@ -23,20 +23,21 @@ public class BiomeManager { } public void setBiome(Island island, Biome biome) { - Set chunks = new HashSet<>(); Location location = island.getLocation(IslandWorld.Normal, IslandEnvironment.Island); int radius = (int) Math.ceil(island.getRadius()); for (int x = location.getBlockX() - radius; x < location.getBlockX() + radius; x++) { for (int z = location.getBlockZ() - radius; z < location.getBlockZ() + radius; z++) { location.getWorld().setBiome(x, z, biome); - Chunk chunk = location.getWorld().getChunkAt(x >> 4, z >> 4); - chunks.add(chunk); } } - for (Chunk chunk : chunks) - updateBiome(island, chunk); + for (int x = location.getBlockX() - radius; x < location.getBlockX() + radius; x += 16) { + for (int z = location.getBlockZ() - radius; z < location.getBlockZ() + radius; z += 16) { + Chunk chunk = location.getWorld().getChunkAt(x >> 4, z >> 4); + updateBiome(island, chunk); + } + } } private void updateBiome(Island island, Chunk chunk) {