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