/// <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); }
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); }