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:
1 parent
f9bb809ed1
commit
7b699a642b
2 files changed
+3
-4
No files matched your search
@@ -29,13 +29,12 @@ namespace Cthangover.Mods.ScenarioStudio
|
||||
var layer = new StudioLayer(args);
|
||||
layer.Mount();
|
||||
|
||||
var root = (Godot.Engine.GetMainLoop() as SceneTree)?.Root;
|
||||
root?.CallDeferred("add_child", new StudioLive(layer));
|
||||
ModRoot.AddDeferred(new StudioLive(layer));
|
||||
|
||||
if (!args.Contains(Flag))
|
||||
return;
|
||||
GameLogger.Log("UI", "Scenario studio: --studio given, the dock opens with the first scene");
|
||||
root?.CallDeferred("add_child", new StudioAutoOpenNode());
|
||||
ModRoot.AddDeferred(new StudioAutoOpenNode());
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35,7 +35,7 @@ namespace Cthangover.Mods.ScenarioStudio.Tests.Live
|
||||
|
||||
driverQueued = true;
|
||||
GameLogger.Log("TEST", $"StudioLiveTestInitializer: activating studio live test, shots='{shots ?? ""}'");
|
||||
(Godot.Engine.GetMainLoop() as SceneTree)?.Root?.CallDeferred("add_child", new StudioLiveDriverNode(shots));
|
||||
ModRoot.AddDeferred(new StudioLiveDriverNode(shots));
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user