feat: Added IAssignable.Unassign()

This commit is contained in:
2023-11-24 17:03:21 +03:00
parent 6f68e29fb8
commit 5a01b01215
6 changed files with 79 additions and 2 deletions

View File

@@ -6,6 +6,7 @@ namespace Syntriax.Engine.Core;
public abstract class Behaviour : IBehaviour
{
public Action<IAssignable>? OnUnassigned { get; set; } = null;
public Action<IAssignableStateEnable>? OnStateEnableAssigned { get; set; } = null;
public Action<IAssignableBehaviourController>? OnBehaviourControllerAssigned { get; set; } = null;
@@ -73,6 +74,19 @@ public abstract class Behaviour : IBehaviour
return true;
}
public bool Unassign()
{
if (Initialized)
return false;
_stateEnable = null!;
_behaviourController = null!;
_stateEnable.Unassign();
OnUnassigned?.Invoke(this);
return true;
}
public bool Initialize()
{
if (Initialized)