Refactor and expand scene/entity hierarchy system
- SceneGraphBuilder: support initial entity names in tree - EditorWorldService: full CRUD, events, scene graph rebuild - SceneGraphSyncService: event-driven sync, node map, TryGetNode - SceneSerializationService: serialize/deserialize names, sync - Hierarchy UI: context menus, drag-and-drop, delete, no polling - SceneManager: fix component type ID handling - Add SceneGraphSync unit tests - Remove obsolete asset handler/importer attributes - Scene hierarchy is now reactive, robust, and testable
This commit is contained in:
@@ -5,35 +5,6 @@ namespace Ghost.Editor.Core;
|
||||
/// </summary>
|
||||
public abstract class DiscoverableAttributeBase : Attribute;
|
||||
|
||||
|
||||
[AttributeUsage(AttributeTargets.Method)]
|
||||
public class AssetOpenHandlerAttribute : DiscoverableAttributeBase
|
||||
{
|
||||
public string[] Extensions
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
public AssetOpenHandlerAttribute(params string[] extensions)
|
||||
{
|
||||
Extensions = extensions.Select(e => e.StartsWith('.') ? e.ToLowerInvariant() : '.' + e.ToLowerInvariant()).ToArray();
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
|
||||
internal class AssetImporterAttribute : DiscoverableAttributeBase
|
||||
{
|
||||
public string[] SupportedExtensions
|
||||
{
|
||||
get;
|
||||
}
|
||||
|
||||
public AssetImporterAttribute(params string[] supportedExtensions)
|
||||
{
|
||||
SupportedExtensions = supportedExtensions;
|
||||
}
|
||||
}
|
||||
|
||||
[AttributeUsage(AttributeTargets.Class)]
|
||||
public class CustomEditorAttribute : DiscoverableAttributeBase
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user