canto/Assets/Scripts/UI/Orchestration/UiOrchestrator.cs
2025-07-18 20:38:44 -04:00

26 lines
No EOL
798 B
C#

using System;
using KitsuneCafe.System;
using UnityEngine;
namespace KitsuneCafe.UI
{
[CreateAssetMenu(menuName = KitsuneCafeMenu.Ui + "Orchestrator")]
public class UiOrchestrator : ScriptableObject
{
public event EventHandler<SpawnElementRequest> SpawnRequested = default;
public event EventHandler<DespawnElementRequest> DespawnRequested = default;
public ElementId SpawnElement(IUiElement element, Vector3 worldPosition)
{
var id = ElementId.Create();
SpawnRequested.Invoke(this, SpawnElementRequest.Create(id, element, worldPosition));
return id;
}
public void DespawnElement(ElementId id)
{
DespawnRequested.Invoke(this, DespawnElementRequest.Create(id));
}
}
}