Пример #1
0
        /// <summary>
        /// Generates an enum.
        /// </summary>
        /// <param name="enumObj">The enum object.</param>
        private async Task GenerateEnum(GenericTypes.UEEnum enumObj)
        {
            var e = new Enum
            {
                Name = await NameValidator.MakeUniqueCppName(enumObj)
            };

            if (e.Name.Contains("Default__") ||
                e.Name.Contains("PLACEHOLDER-CLASS"))
            {
                return;
            }

            e.FullName = await enumObj.GetFullName();

            var conflicts = new Dictionary <string, int>();

            foreach (var s in await enumObj.GetNames())
            {
                var clean = NameValidator.MakeValidName(s);
                if (!conflicts.ContainsKey(clean))
                {
                    e.Values.Add(clean);
                    conflicts[clean] = 1;
                }
                else
                {
                    e.Values.Add($"{clean}{conflicts[clean]:D2}");
                    conflicts[clean]++;
                }
            }

            Enums.Add(e);
        }
Пример #2
0
        public static async Task <string> MakeUniqueCppName(GenericTypes.UEEnum e)
        {
            string name = await MakeUniqueCppNameImpl(e);

            if (!name.Empty() && name[0] != 'E')
            {
                name = $"E{name}";
            }

            return(name);
        }