/// <summary> /// Add a new scene to the tree /// </summary> /// <param name="path"></param> /// <param name="scene"></param> public static bool TryAddScene(ScenePrefabs scene, string TreePath = "Game") { foreach (ScenePrefabs s in Scenes.Keys) { if (scene == s) { string path = Scenes[s][0]; PackedScene packed = (PackedScene)ResourceLoader.Load(Scenes[s][0]); instance.GetTree().Root.GetNodeOrNull(TreePath).CallDeferred("add_child", packed.Instance()); return(true); } } return(false); }
/// <summary> /// Add a new scene, as long as it doesn't already exist. /// </summary> /// <param name="scene"></param> /// <param name="treePath"></param> public static bool TryAddSceneNoDupe(ScenePrefabs scene, string TreePath = "Game") { foreach (ScenePrefabs s in Scenes.Keys) { if (scene == s) { string path = Scenes[s][0]; var tempInstance = instance.GetTree().Root.GetNodeOrNull(Scenes[s][1]); if (tempInstance == null) { PackedScene packed = (PackedScene)ResourceLoader.Load(Scenes[s][0]); var scn = packed.Instance(); instance.GetTree().Root.GetNodeOrNull(TreePath).CallDeferred("add_child", scn); return(true); } else { return(false); } } } return(false); }