    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    }