feat: IActive interface added for hierarchy active state

This commit is contained in:
2025-04-01 13:22:14 +03:00
parent d4c6288b38
commit 417ddca972
12 changed files with 119 additions and 30 deletions

View File

@@ -6,7 +6,7 @@ public class StateEnable : IStateEnable
{
public event IAssignable.UnassignEventHandler? OnUnassigned = null;
public event IHasEntity.EntityAssignedEventHandler? OnEntityAssigned = null;
public event IStateEnable.NameChangedEventHandler? OnEnabledChanged = null;
public event IStateEnable.EnabledChangedEventHandler? OnEnabledChanged = null;
private bool _enabled = true;
private IEntity _entity = null!;
@@ -27,12 +27,14 @@ public class StateEnable : IStateEnable
}
}
protected virtual void OnAssign(IEntity entity) { }
public bool Assign(IEntity entity)
{
if (_entity is not null && _entity.IsInitialized)
return false;
_entity = entity;
OnAssign(entity);
OnEntityAssigned?.Invoke(this);
return true;
}