SettingsCompiler.SettingsCompiler.WriteEnumTypes C# (CSharp) Method

WriteEnumTypes() public static method

public static WriteEnumTypes ( List lines, List enumTypes ) : void
lines List
enumTypes List
return void
        public static void WriteEnumTypes(List<string> lines, List<Type> enumTypes)
        {
            foreach(Type enumType in enumTypes)
            {
                if(enumType.GetEnumUnderlyingType() != typeof(int))
                    throw new Exception("Invalid underlying type for enum " + enumType.Name + ", must be int");
                string[] enumNames = enumType.GetEnumNames();
                int numEnumValues = enumNames.Length;

                Array values = enumType.GetEnumValues();
                int[] enumValues = new int[numEnumValues];
                for(int i = 0; i < numEnumValues; ++i)
                    enumValues[i] = (int)values.GetValue(i);

                lines.Add("enum class " + enumType.Name);
                lines.Add("{");
                for(int i = 0; i < values.Length; ++i)
                    lines.Add("    " + enumNames[i] + " = " + enumValues[i] + ",");
                lines.Add("\r\n    NumValues");

                lines.Add("};\r\n");

                lines.Add("typedef EnumSettingT<" + enumType.Name + "> " + enumType.Name + "Setting;\r\n");
            }
        }