diff --git a/src/main/java/net/minecraft/world/chunk/Chunk.java b/src/main/java/net/minecraft/world/chunk/Chunk.java index 0086d35..4067eaf 100644 --- a/src/main/java/net/minecraft/world/chunk/Chunk.java +++ b/src/main/java/net/minecraft/world/chunk/Chunk.java @@ -39,6 +39,7 @@ import net.minecraft.world.biome.BiomeGenBase; import net.minecraft.world.biome.WorldChunkManager; import net.minecraft.world.chunk.storage.ExtendedBlockStorage; +import net.minecraft.world.gen.ChunkProviderServer; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.EntityEvent; import net.minecraftforge.event.world.ChunkEvent; @@ -1054,25 +1055,7 @@ public void populateChunk(IChunkProvider p_76624_1_, IChunkProvider p_76624_2_, int p_76624_3_, int p_76624_4_) { - if (!this.isTerrainPopulated && p_76624_1_.chunkExists(p_76624_3_ + 1, p_76624_4_ + 1) && p_76624_1_.chunkExists(p_76624_3_, p_76624_4_ + 1) && p_76624_1_.chunkExists(p_76624_3_ + 1, p_76624_4_)) - { - p_76624_1_.populate(p_76624_2_, p_76624_3_, p_76624_4_); - } - - if (p_76624_1_.chunkExists(p_76624_3_ - 1, p_76624_4_) && !p_76624_1_.provideChunk(p_76624_3_ - 1, p_76624_4_).isTerrainPopulated && p_76624_1_.chunkExists(p_76624_3_ - 1, p_76624_4_ + 1) && p_76624_1_.chunkExists(p_76624_3_, p_76624_4_ + 1) && p_76624_1_.chunkExists(p_76624_3_ - 1, p_76624_4_ + 1)) - { - p_76624_1_.populate(p_76624_2_, p_76624_3_ - 1, p_76624_4_); - } - - if (p_76624_1_.chunkExists(p_76624_3_, p_76624_4_ - 1) && !p_76624_1_.provideChunk(p_76624_3_, p_76624_4_ - 1).isTerrainPopulated && p_76624_1_.chunkExists(p_76624_3_ + 1, p_76624_4_ - 1) && p_76624_1_.chunkExists(p_76624_3_ + 1, p_76624_4_ - 1) && p_76624_1_.chunkExists(p_76624_3_ + 1, p_76624_4_)) - { - p_76624_1_.populate(p_76624_2_, p_76624_3_, p_76624_4_ - 1); - } - - if (p_76624_1_.chunkExists(p_76624_3_ - 1, p_76624_4_ - 1) && !p_76624_1_.provideChunk(p_76624_3_ - 1, p_76624_4_ - 1).isTerrainPopulated && p_76624_1_.chunkExists(p_76624_3_, p_76624_4_ - 1) && p_76624_1_.chunkExists(p_76624_3_ - 1, p_76624_4_)) - { - p_76624_1_.populate(p_76624_2_, p_76624_3_ - 1, p_76624_4_ - 1); - } + ((ChunkProviderServer)p_76624_1_).populateChunk(this, p_76624_3_, p_76624_4_); } public int getPrecipitationHeight(int p_76626_1_, int p_76626_2_) diff --git a/src/main/java/net/minecraft/world/gen/ChunkProviderServer.java b/src/main/java/net/minecraft/world/gen/ChunkProviderServer.java index ee5f0bc..b755781 100644 --- a/src/main/java/net/minecraft/world/gen/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/world/gen/ChunkProviderServer.java @@ -269,9 +269,9 @@ public void populate(IChunkProvider par1IChunkProvider, int par2, int par3) { - Chunk chunk = this.provideChunk(par2, par3); + Chunk chunk = this.getChunkIfExists(par2, par3); - if (!chunk.isTerrainPopulated) + if (chunk != null && !chunk.isTerrainPopulated && worldObj.chunkRoundExists(par2, par3, 2)) { chunk.func_150809_p(); @@ -508,4 +508,12 @@ } } } + + public void populateChunk(Chunk chunk, int cx, int cz) + { + final int radius = 2; + for(int x = cx - radius; x <= cx + radius; x++) + for(int z = cz - radius; z <= cz + radius; z++) + populate(this, x, z); + } } \ No newline at end of file diff --git a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java index 32eb99e..af574c4 100644 --- a/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java +++ b/src/main/java/org/ultramine/server/chunk/ChunkSendManager.java @@ -380,7 +380,7 @@ else { sendingQueueSize.decrementAndGet(); - ((WorldServer)chunk.worldObj).theChunkProviderServer.loadAsyncRadius(chunk.xPosition, chunk.zPosition, 1, IChunkLoadCallback.EMPTY); + ((WorldServer)chunk.worldObj).theChunkProviderServer.loadAsyncRadius(chunk.xPosition, chunk.zPosition, 2, IChunkLoadCallback.EMPTY); int ind = (int)rate*2+1; if(ind < toSend.size()-1)