001 package net.minecraft.src;
002
003 import cpw.mods.fml.common.Side;
004 import cpw.mods.fml.common.asm.SideOnly;
005
006 public enum EnumGameType
007 {
008 NOT_SET(-1, ""),
009 SURVIVAL(0, "survival"),
010 CREATIVE(1, "creative"),
011 ADVENTURE(2, "adventure");
012 int id;
013 String name;
014
015 private EnumGameType(int par3, String par4Str)
016 {
017 this.id = par3;
018 this.name = par4Str;
019 }
020
021 /**
022 * Returns the ID of this game type
023 */
024 public int getID()
025 {
026 return this.id;
027 }
028
029 /**
030 * Returns the name of this game type
031 */
032 public String getName()
033 {
034 return this.name;
035 }
036
037 /**
038 * Configures the player capabilities based on the game type
039 */
040 public void configurePlayerCapabilities(PlayerCapabilities par1PlayerCapabilities)
041 {
042 if (this == CREATIVE)
043 {
044 par1PlayerCapabilities.allowFlying = true;
045 par1PlayerCapabilities.isCreativeMode = true;
046 par1PlayerCapabilities.disableDamage = true;
047 }
048 else
049 {
050 par1PlayerCapabilities.allowFlying = false;
051 par1PlayerCapabilities.isCreativeMode = false;
052 par1PlayerCapabilities.disableDamage = false;
053 par1PlayerCapabilities.isFlying = false;
054 }
055
056 par1PlayerCapabilities.allowEdit = !this.func_82752_c();
057 }
058
059 public boolean func_82752_c()
060 {
061 return this == ADVENTURE;
062 }
063
064 /**
065 * Returns true if this is the CREATIVE game type
066 */
067 public boolean isCreative()
068 {
069 return this == CREATIVE;
070 }
071
072 @SideOnly(Side.CLIENT)
073
074 /**
075 * Returns true if this is the SURVIVAL or ADVENTURE game type
076 */
077 public boolean isSurvivalOrAdventure()
078 {
079 return this == SURVIVAL || this == ADVENTURE;
080 }
081
082 /**
083 * Returns the game type with the specified ID, or SURVIVAL if none found. Args: id
084 */
085 public static EnumGameType getByID(int par0)
086 {
087 EnumGameType[] var1 = values();
088 int var2 = var1.length;
089
090 for (int var3 = 0; var3 < var2; ++var3)
091 {
092 EnumGameType var4 = var1[var3];
093
094 if (var4.id == par0)
095 {
096 return var4;
097 }
098 }
099
100 return SURVIVAL;
101 }
102
103 @SideOnly(Side.CLIENT)
104
105 /**
106 * Returns the game type with the specified name, or SURVIVAL if none found. This is case sensitive. Args: name
107 */
108 public static EnumGameType getByName(String par0Str)
109 {
110 EnumGameType[] var1 = values();
111 int var2 = var1.length;
112
113 for (int var3 = 0; var3 < var2; ++var3)
114 {
115 EnumGameType var4 = var1[var3];
116
117 if (var4.name.equals(par0Str))
118 {
119 return var4;
120 }
121 }
122
123 return SURVIVAL;
124 }
125 }