001    package net.minecraft.src;
002    
003    import cpw.mods.fml.common.Side;
004    import cpw.mods.fml.common.asm.SideOnly;
005    
006    public final class WorldSettings
007    {
008        /** The seed for the map. */
009        private final long seed;
010    
011        /** The EnumGameType. */
012        private final EnumGameType theGameType;
013    
014        /**
015         * Switch for the map features. 'true' for enabled, 'false' for disabled.
016         */
017        private final boolean mapFeaturesEnabled;
018    
019        /** True if hardcore mode is enabled */
020        private final boolean hardcoreEnabled;
021        private final WorldType terrainType;
022    
023        /** True if Commands (cheats) are allowed. */
024        private boolean commandsAllowed;
025    
026        /** True if the Bonus Chest is enabled. */
027        private boolean bonusChestEnabled;
028    
029        public WorldSettings(long par1, EnumGameType par3EnumGameType, boolean par4, boolean par5, WorldType par6WorldType)
030        {
031            this.seed = par1;
032            this.theGameType = par3EnumGameType;
033            this.mapFeaturesEnabled = par4;
034            this.hardcoreEnabled = par5;
035            this.terrainType = par6WorldType;
036        }
037    
038        public WorldSettings(WorldInfo par1WorldInfo)
039        {
040            this(par1WorldInfo.getSeed(), par1WorldInfo.getGameType(), par1WorldInfo.isMapFeaturesEnabled(), par1WorldInfo.isHardcoreModeEnabled(), par1WorldInfo.getTerrainType());
041        }
042    
043        /**
044         * Enables the bonus chest.
045         */
046        public WorldSettings enableBonusChest()
047        {
048            this.bonusChestEnabled = true;
049            return this;
050        }
051    
052        @SideOnly(Side.CLIENT)
053    
054        /**
055         * Enables Commands (cheats).
056         */
057        public WorldSettings enableCommands()
058        {
059            this.commandsAllowed = true;
060            return this;
061        }
062    
063        /**
064         * Returns true if the Bonus Chest is enabled.
065         */
066        public boolean isBonusChestEnabled()
067        {
068            return this.bonusChestEnabled;
069        }
070    
071        /**
072         * Returns the seed for the world.
073         */
074        public long getSeed()
075        {
076            return this.seed;
077        }
078    
079        /**
080         * Gets the game type.
081         */
082        public EnumGameType getGameType()
083        {
084            return this.theGameType;
085        }
086    
087        /**
088         * Returns true if hardcore mode is enabled, otherwise false
089         */
090        public boolean getHardcoreEnabled()
091        {
092            return this.hardcoreEnabled;
093        }
094    
095        /**
096         * Get whether the map features (e.g. strongholds) generation is enabled or disabled.
097         */
098        public boolean isMapFeaturesEnabled()
099        {
100            return this.mapFeaturesEnabled;
101        }
102    
103        public WorldType getTerrainType()
104        {
105            return this.terrainType;
106        }
107    
108        /**
109         * Returns true if Commands (cheats) are allowed.
110         */
111        public boolean areCommandsAllowed()
112        {
113            return this.commandsAllowed;
114        }
115    
116        /**
117         * Gets the GameType by ID
118         */
119        public static EnumGameType getGameTypeById(int par0)
120        {
121            return EnumGameType.getByID(par0);
122        }
123    }