Root nodes join through ModRoot.AddDeferred, so a reload that unloads the mod first never hands Godot a freed node

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
cthangoverandClaude Opus 5.5 committed 2026-10-24 11:29:16 +02:00
1 parent e0bc983f39
commit 55caaf020d
6 files changed
+6 -6

No files matched your search

@@ -19,7 +19,7 @@ namespace Mods.CollectionEditTest
queued = true; queued = true;
GameLogger.Log("TEST", "CollectionEditTest: activating"); GameLogger.Log("TEST", "CollectionEditTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new CollectionEditTestDriverNode()); ModRoot.AddDeferred(new CollectionEditTestDriverNode());
} }
} }
} }
@@ -27,7 +27,7 @@ namespace Mods.DisplaySettingsTest
queued = true; queued = true;
GameLogger.Log("TEST", "DisplaySettingsTest: activating"); GameLogger.Log("TEST", "DisplaySettingsTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new DisplaySettingsTestDriverNode(shots)); ModRoot.AddDeferred(new DisplaySettingsTestDriverNode(shots));
} }
} }
} }
@@ -19,7 +19,7 @@ namespace Mods.HotReloadTest
queued = true; queued = true;
GameLogger.Log("TEST", "HotReloadTest: activating"); GameLogger.Log("TEST", "HotReloadTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new HotReloadTestDriverNode()); ModRoot.AddDeferred(new HotReloadTestDriverNode());
} }
} }
} }
@@ -19,7 +19,7 @@ namespace Mods.MenuFlowTest
queued = true; queued = true;
GameLogger.Log("TEST", "MenuFlowTest: activating"); GameLogger.Log("TEST", "MenuFlowTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new MenuFlowTestDriverNode()); ModRoot.AddDeferred(new MenuFlowTestDriverNode());
} }
} }
} }
@@ -19,7 +19,7 @@ namespace Mods.NewGameTest
queued = true; queued = true;
GameLogger.Log("TEST", "NewGameTest: activating"); GameLogger.Log("TEST", "NewGameTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new NewGameTestDriverNode()); ModRoot.AddDeferred(new NewGameTestDriverNode());
} }
} }
} }
@@ -19,7 +19,7 @@ namespace Mods.SaveDormancyTest
queued = true; queued = true;
GameLogger.Log("TEST", "SaveDormancyTest: activating"); GameLogger.Log("TEST", "SaveDormancyTest: activating");
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new SaveDormancyTestDriverNode()); ModRoot.AddDeferred(new SaveDormancyTestDriverNode());
} }
} }
} }