Refactor project structure and improve performance

Changed the `ProjectRepository` class to be static for easier usage.
Changed `ProjectService` constants to public properties for accessibility.
Changed `App.xaml` to consolidate theme resources into `Override.xaml`.
Changed `App.xaml.cs` to implement an `AppStateMachine` for better state management.
Changed `ConsolePage` and `HierarchyPage` to utilize the new ViewModel structure.
Changed `ProjectPage` to use the `ExplorerItem` model for asset display.
Changed `Entity` and `EntityManager` to enhance component management with a new `IComponentData` interface.
Changed the `Logger` class to introduce structured logging functionality.
Changed the system architecture to support dependency management for better organization.
Changed the `QueryEnumerable` class to allow for more flexible entity queries.
Changed the `TypeHandle` class to improve efficiency in retrieving type handles.
Changed the `World` class to support robust world management and multiple worlds.
Updated the `Test` class to demonstrate the new entity and component management system.
This commit is contained in:
2025-06-05 21:45:50 +09:00
parent 61bbb1bc68
commit bab3be2508
69 changed files with 2184 additions and 1582 deletions

View File

@@ -0,0 +1,56 @@
using System.Diagnostics;
namespace Ghost.Engine.Models;
public enum LogLevel
{
Info,
Warning,
Error
}
internal class LogMessage
{
public LogLevel Level
{
get; set;
}
public string Message
{
get; set;
}
public StackTrace? StackTrace
{
get; set;
}
public DateTime Timestamp
{
get; set;
}
public LogMessage(LogLevel level, string message, StackTrace? stackTrace = null)
{
Level = level;
Message = message;
StackTrace = stackTrace;
Timestamp = DateTime.Now;
}
public override string ToString()
{
return $"{Timestamp:HH:mm:ss} [{Level}] {Message}";
}
public string ToStringWithStackTrace()
{
if (StackTrace == null)
{
return ToString();
}
return $"{ToString()}\n{StackTrace}";
}
}