From 3eec4bba3b0c1601691b19852d959e972d0616ea Mon Sep 17 00:00:00 2001 From: Dinnerbone Date: Thu, 26 May 2011 06:14:48 +0100 Subject: [PATCH] Added new World.Environment --- src/main/java/org/bukkit/World.java | 61 ++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 15 deletions(-) diff --git a/src/main/java/org/bukkit/World.java b/src/main/java/org/bukkit/World.java index 6ce168cb..0aca6a23 100644 --- a/src/main/java/org/bukkit/World.java +++ b/src/main/java/org/bukkit/World.java @@ -1,6 +1,8 @@ package org.bukkit; +import java.util.HashMap; import java.util.List; +import java.util.Map; import org.bukkit.block.Block; import org.bukkit.entity.*; import org.bukkit.inventory.ItemStack; @@ -482,21 +484,6 @@ public interface World { */ public Environment getEnvironment(); - /** - * Represents various map environment types that a world may be - */ - public enum Environment { - - /** - * Represents the "normal"/"surface world" map - */ - NORMAL, - /** - * Represents a nether based map - */ - NETHER - } - /** * Gets the Seed for this world. * @@ -520,4 +507,48 @@ public interface World { * Saves world to disk */ public void save(); + + /** + * Represents various map environment types that a world may be + */ + public enum Environment { + /** + * Represents the "normal"/"surface world" map + */ + NORMAL(0), + /** + * Represents a nether based map ("hell") + */ + NETHER(-1), + /** + * Represents a sky-lands based map ("heaven") + */ + SKYLANDS(1); + + private final int id; + private static final Map lookup = new HashMap(); + + private Environment(int id) { + this.id = id; + } + + /** + * Gets the dimension ID of this environment + * + * @return dimension ID + */ + public int getId() { + return id; + } + + public static Environment getEnvironment(int id) { + return lookup.get(id); + } + + static { + for (Environment env : values()) { + lookup.put(env.getId(), env); + } + } + } }