fix(gameevents): merge and sort game event properties if duplicate events

This commit is contained in:
Michael Wilson
2025-05-12 05:59:21 +00:00
parent 6511a0098a
commit 073728b4ce
3 changed files with 1510 additions and 2102 deletions

View File

@@ -5,6 +5,7 @@
"customizations": {
"vscode": {
"extensions": [
"ms-dotnettools.csdevkit",
"ms-vscode.cpptools",
"ms-vscode.cpptools-extension-pack",
"GitHub.copilot",

File diff suppressed because it is too large Load Diff

View File

@@ -107,7 +107,18 @@ public partial class Generators
}
}
allGameEvents[gameEvent.Name] = gameEvent;
if (allGameEvents.ContainsKey(gameEvent.Name))
{
foreach (var key in gameEvent.Keys)
{
if (!allGameEvents[gameEvent.Name].Keys.Any(x => x.Name == key.Name))
{
allGameEvents[gameEvent.Name].Keys.Add(key);
}
}
}
else
allGameEvents[gameEvent.Name] = gameEvent;
}
}
@@ -115,17 +126,16 @@ public partial class Generators
}
public static async Task GenerateGameEvents()
{
var allGameEvents = await GetGameEvents();
// Remove the player_chat event as it's manually implemented
allGameEvents.RemoveAll(e => e.Name == "player_chat");
var gameEventsString = string.Join("\n", allGameEvents.OrderBy(x => x.NamePascalCase).Select(gameEvent =>
{
var propertyDefinition = gameEvent.Keys.Select(key =>
var propertyDefinition = gameEvent.Keys.OrderBy(p => p.NamePascalCase).Select(key =>
{
// Hack for now, since we some params with the same name as their parent.
var propertyName = key.NamePascalCase == gameEvent.NamePascalCase
@@ -133,7 +143,6 @@ public partial class Generators
: key.NamePascalCase;
return $@"
{(!string.IsNullOrEmpty(key.Comment) ? "// " + key.Comment : "")}
public {key.MappedType} {propertyName}
{{