Files
GhostEngine/Ghost.Engine/Services/SceneManager.cs
Misaki 61bbb1bc68 Refactor project structure and enhance functionality
Added `InternalsVisibleTo` attribute for "Ghost.Editor" in `AssemblyInfo.cs`.
Added a binary file `Empty.zip` to the project.
Added a new `ProjectMetadata` class in `ProjectMetadata.cs`.
Added new states and interfaces for managing application states in `EditorState.cs`, `LandingState.cs`, and `IAppState.cs`.
Added a notification service in `INotificationService.cs` and `StackedNotificationService.cs`.
Added new XAML files for UI components, including `InspectorView.xaml` and `InternalControls.xaml`.

Changed the `ProjectInfo` class in `ProjectInfo.cs` to include a `MetadataPath` property instead of `Path` and `EngineVersion`.
Changed the `TemplateInfo` class in `TemplateInfo.cs` to use a struct instead of a class for `TemplateData`.
Changed the `ProjectService` class to use the new `ProjectRepository` for managing project data.

Removed several using directives and the entire `ProjectRepository` class from `ProjectRepository.cs`, replacing it with a new implementation.
Removed old methods and properties in `EntityManager` and `World` classes to improve entity management and component handling.

Updated the `Ghost.Data.csproj` file to include the new `Empty.zip` file as a content item.
Updated the `ProjectRepository` class to manage project data using SQLite.
Updated various XAML files to include new styles and controls, improving the overall UI design.
Updated the `CreateProjectViewModel` to include a notification service and handle project creation logic.
Updated the test project to include references to the new `Ghost.Graphics` project and modified test cases to align with the new structure.
2025-05-31 01:45:34 +09:00

48 lines
1.1 KiB
C#

namespace Ghost.Engine.Services;
public enum SceneLoadMode
{
Single,
Additive
}
public static class SceneManager
{
//private readonly static HashSet<Scene> _activeScenes = new();
//internal static IEnumerable<GameObject> QueryRootGameObjects()
//{
// foreach (var scene in _activeScenes)
// {
// foreach (var gameObject in scene.RootObjects)
// {
// if (!gameObject.IsActive)
// {
// continue;
// }
// yield return gameObject;
// }
// }
//}
//public static void LoadScene(Scene scene, SceneLoadMode loadMode)
//{
// if (loadMode == SceneLoadMode.Single)
// {
// foreach (var activeScene in _activeScenes)
// {
// activeScene.Unload();
// }
// _activeScenes.Clear();
// }
// _activeScenes.Add(scene);
// scene.Load();
//}
//public static Task LoadSceneAsync(Scene scene, SceneLoadMode loadMode)
//{
// return Task.Run(() => LoadScene(scene, loadMode));
//}
}