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.isAdventure();
057 }
058
059 /**
060 * Returns true if this is the ADVENTURE game type
061 */
062 public boolean isAdventure()
063 {
064 return this == ADVENTURE;
065 }
066
067 /**
068 * Returns true if this is the CREATIVE game type
069 */
070 public boolean isCreative()
071 {
072 return this == CREATIVE;
073 }
074
075 @SideOnly(Side.CLIENT)
076
077 /**
078 * Returns true if this is the SURVIVAL or ADVENTURE game type
079 */
080 public boolean isSurvivalOrAdventure()
081 {
082 return this == SURVIVAL || this == ADVENTURE;
083 }
084
085 /**
086 * Returns the game type with the specified ID, or SURVIVAL if none found. Args: id
087 */
088 public static EnumGameType getByID(int par0)
089 {
090 EnumGameType[] var1 = values();
091 int var2 = var1.length;
092
093 for (int var3 = 0; var3 < var2; ++var3)
094 {
095 EnumGameType var4 = var1[var3];
096
097 if (var4.id == par0)
098 {
099 return var4;
100 }
101 }
102
103 return SURVIVAL;
104 }
105
106 @SideOnly(Side.CLIENT)
107
108 /**
109 * Returns the game type with the specified name, or SURVIVAL if none found. This is case sensitive. Args: name
110 */
111 public static EnumGameType getByName(String par0Str)
112 {
113 EnumGameType[] var1 = values();
114 int var2 = var1.length;
115
116 for (int var3 = 0; var3 < var2; ++var3)
117 {
118 EnumGameType var4 = var1[var3];
119
120 if (var4.name.equals(par0Str))
121 {
122 return var4;
123 }
124 }
125
126 return SURVIVAL;
127 }
128 }