    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    }