From 5f684ef163947946a76e0ec60a5da7a25c3ed2a8 Mon Sep 17 00:00:00 2001 From: Tahg Date: Fri, 3 Jun 2011 18:35:05 -0400 Subject: fixed environments --- src/main/java/net/minecraft/server/World.java | 2 +- src/main/java/org/bukkit/craftbukkit/CraftWorld.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index 9f698e23..a5f954b2 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -47,7 +47,7 @@ public class World implements IBlockAccess { public int spawnMonsters; public Random random = new Random(); public boolean s = false; - public final WorldProvider worldProvider; + public WorldProvider worldProvider; // Craftbukkit - remove final protected List u = new ArrayList(); public IChunkProvider chunkProvider; // CraftBukkit - protected -> public protected final IDataManager w; diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java index 2b38b2bb..a942e743 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java @@ -26,7 +26,7 @@ import org.bukkit.World; public class CraftWorld implements World { private final WorldServer world; - private final Environment environment; + private Environment environment; private final CraftServer server; private final ChunkProviderServer provider; private HashMap unloadedChunks = new HashMap(); @@ -37,12 +37,8 @@ public class CraftWorld implements World { this.world = world; this.server = world.getServer(); this.provider = world.chunkProviderServer; - - if (world.worldProvider instanceof WorldProviderHell) { - environment = Environment.NETHER; - } else { - environment = Environment.NORMAL; - } + + environment = Environment.getEnvironment(world.worldProvider.dimension); server.addWorld(this); } @@ -443,6 +439,13 @@ public class CraftWorld implements World { public Environment getEnvironment() { return environment; } + + public void setEnvironment(Environment env) { + if (environment != env) { + environment = env; + world.worldProvider = WorldProvider.a(environment.getId()); + } + } public Block getBlockAt(Location location) { return getBlockAt(location.getBlockX(), location.getBlockY(), location.getBlockZ()); -- cgit v1.2.3