package net.minecraft.world;
import net.minecraft.entity.player.PlayerCapabilities;
import net.minecraft.world.storage.WorldInfo;
public final class WorldSettings
{
/** The seed for the map. */
private final long seed;
/** The EnumGameType. */
private final WorldSettings.GameType theGameType;
/**
* Switch for the map features. 'true' for enabled, 'false' for disabled.
*/
private final boolean mapFeaturesEnabled;
/** True if hardcore mode is enabled */
private final boolean hardcoreEnabled;
private final WorldType terrainType;
/** True if Commands (cheats) are allowed. */
private boolean commandsAllowed;
/** True if the Bonus Chest is enabled. */
private boolean bonusChestEnabled;
private String worldName;
private static final String __OBFID = "CL_00000147";
public WorldSettings(long seedIn, WorldSettings.GameType gameType, boolean enableMapFeatures, boolean hardcoreMode, WorldType worldTypeIn)
{
this.worldName = "";
this.seed = seedIn;
this.theGameType = gameType;
this.mapFeaturesEnabled = enableMapFeatures;
this.hardcoreEnabled = hardcoreMode;
this.terrainType = worldTypeIn;
}
public WorldSettings(WorldInfo info)
{
this(info.getSeed(), info.getGameType(), info.isMapFeaturesEnabled(), info.isHardcoreModeEnabled(), info.getTerrainType());
}
/**
* Enables the bonus chest.
*/
public WorldSettings enableBonusChest()
{
this.bonusChestEnabled = true;
return this;
}
/**
* Enables Commands (cheats).
*/
public WorldSettings enableCommands()
{
this.commandsAllowed = true;
return this;
}
public WorldSettings setWorldName(String name)
{
this.worldName = name;
return this;
}
/**
* Returns true if the Bonus Chest is enabled.
*/
public boolean isBonusChestEnabled()
{
return this.bonusChestEnabled;
}
/**
* Returns the seed for the world.
*/
public long getSeed()
{
return this.seed;
}
/**
* Gets the game type.
*/
public WorldSettings.GameType getGameType()
{
return this.theGameType;
}
/**
* Returns true if hardcore mode is enabled, otherwise false
*/
public boolean getHardcoreEnabled()
{
return this.hardcoreEnabled;
}
/**
* Get whether the map features (e.g. strongholds) generation is enabled or disabled.
*/
public boolean isMapFeaturesEnabled()
{
return this.mapFeaturesEnabled;
}
public WorldType getTerrainType()
{
return this.terrainType;
}
/**
* Returns true if Commands (cheats) are allowed.
*/
public boolean areCommandsAllowed()
{
return this.commandsAllowed;
}
/**
* Gets the GameType by ID
*/
public static WorldSettings.GameType getGameTypeById(int id)
{
return WorldSettings.GameType.getByID(id);
}
public String getWorldName()
{
return this.worldName;
}
public static enum GameType
{
NOT_SET("NOT_SET", 0, -1, ""),
SURVIVAL("SURVIVAL", 1, 0, "survival"),
CREATIVE("CREATIVE", 2, 1, "creative"),
ADVENTURE("ADVENTURE", 3, 2, "adventure"),
SPECTATOR("SPECTATOR", 4, 3, "spectator");
int id;
String name;
private static final WorldSettings.GameType[] $VALUES = new WorldSettings.GameType[]{NOT_SET, SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR};
private static final String __OBFID = "CL_00000148";
private GameType(String p_i1956_1_, int p_i1956_2_, int typeId, String nameIn)
{
this.id = typeId;
this.name = nameIn;
}
public int getID()
{
return this.id;
}
public String getName()
{
return this.name;
}
public void configurePlayerCapabilities(PlayerCapabilities capabilities)
{
if (this == CREATIVE)
{
capabilities.allowFlying = true;
capabilities.isCreativeMode = true;
capabilities.disableDamage = true;
}
else if (this == SPECTATOR)
{
capabilities.allowFlying = true;
capabilities.isCreativeMode = false;
capabilities.disableDamage = true;
capabilities.isFlying = true;
}
else
{
capabilities.allowFlying = false;
capabilities.isCreativeMode = false;
capabilities.disableDamage = false;
capabilities.isFlying = false;
}
capabilities.allowEdit = !this.isAdventure();
}
public boolean isAdventure()
{
return this == ADVENTURE || this == SPECTATOR;
}
public boolean isCreative()
{
return this == CREATIVE;
}
public boolean isSurvivalOrAdventure()
{
return this == SURVIVAL || this == ADVENTURE;
}
public static WorldSettings.GameType getByID(int idIn)
{
WorldSettings.GameType[] var1 = values();
int var2 = var1.length;
for (int var3 = 0; var3 < var2; ++var3)
{
WorldSettings.GameType var4 = var1[var3];
if (var4.id == idIn)
{
return var4;
}
}
return SURVIVAL;
}
public static WorldSettings.GameType getByName(String p_77142_0_)
{
WorldSettings.GameType[] var1 = values();
int var2 = var1.length;
for (int var3 = 0; var3 < var2; ++var3)
{
WorldSettings.GameType var4 = var1[var3];
if (var4.name.equals(p_77142_0_))
{
return var4;
}
}
return SURVIVAL;
}
}
}