diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-06-06 14:52:02 +0100 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-06-06 18:38:47 +0100 |
commit | fedcbdf256e29df3300639e4a9fa97fd04cd4108 (patch) | |
tree | b4de9c3979cc0dae2487e427d38a9c776e9d3073 /src/main/java/net/minecraft/server/ChunkProviderServer.java | |
parent | 891dfbcef8c98faec837fc7f3fa31eac5505b6f9 (diff) | |
download | craftbukkit-fedcbdf256e29df3300639e4a9fa97fd04cd4108.tar craftbukkit-fedcbdf256e29df3300639e4a9fa97fd04cd4108.tar.gz craftbukkit-fedcbdf256e29df3300639e4a9fa97fd04cd4108.tar.lz craftbukkit-fedcbdf256e29df3300639e4a9fa97fd04cd4108.tar.xz craftbukkit-fedcbdf256e29df3300639e4a9fa97fd04cd4108.zip |
Implemented custom chunk generators and block populators
Diffstat (limited to 'src/main/java/net/minecraft/server/ChunkProviderServer.java')
-rw-r--r-- | src/main/java/net/minecraft/server/ChunkProviderServer.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index 8d790184..40a2b91d 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Random; import java.util.Set; // CraftBukkit start @@ -16,6 +17,7 @@ import org.bukkit.craftbukkit.util.LongHashset; import org.bukkit.craftbukkit.util.LongHashtable; import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.event.world.ChunkUnloadEvent; +import org.bukkit.generator.BlockPopulator; // CraftBukkit end public class ChunkProviderServer implements IChunkProvider { @@ -172,6 +174,20 @@ public class ChunkProviderServer implements IChunkProvider { chunk.done = true; if (this.chunkProvider != null) { this.chunkProvider.getChunkAt(ichunkprovider, i, j); + + // Craftbukkit start + BlockSand.a = true; + Random random = new Random(); + random.setSeed(world.getSeed()); + long xRand = random.nextLong() / 2L * 2L + 1L; + long zRand = random.nextLong() / 2L * 2L + 1L; + random.setSeed((long) i * xRand + (long) j * zRand ^ world.getSeed()); + for (BlockPopulator populator : world.getWorld().getPopulators()) { + populator.populate(world.getWorld(), random, chunk.bukkitChunk); + } + BlockSand.a = false; + // Craftbukkit end + chunk.f(); } } |