summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/ChunkProviderServer.java
diff options
context:
space:
mode:
authorDinnerbone <dinnerbone@dinnerbone.com>2011-06-06 14:52:02 +0100
committerDinnerbone <dinnerbone@dinnerbone.com>2011-06-06 18:38:47 +0100
commitfedcbdf256e29df3300639e4a9fa97fd04cd4108 (patch)
treeb4de9c3979cc0dae2487e427d38a9c776e9d3073 /src/main/java/net/minecraft/server/ChunkProviderServer.java
parent891dfbcef8c98faec837fc7f3fa31eac5505b6f9 (diff)
downloadcraftbukkit-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.java16
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();
}
}