chore: cleanup
This commit is contained in:
parent
417ddca972
commit
c71bf71fb3
@ -11,7 +11,6 @@ public abstract class BehaviourBase : BaseEntity, IBehaviour
|
|||||||
public event IActive.ActiveChangedEventHandler? OnActiveChanged = null;
|
public event IActive.ActiveChangedEventHandler? OnActiveChanged = null;
|
||||||
|
|
||||||
private IBehaviourController _behaviourController = null!;
|
private IBehaviourController _behaviourController = null!;
|
||||||
|
|
||||||
public IBehaviourController BehaviourController => _behaviourController;
|
public IBehaviourController BehaviourController => _behaviourController;
|
||||||
|
|
||||||
private int _priority = 0;
|
private int _priority = 0;
|
||||||
@ -29,7 +28,8 @@ public abstract class BehaviourBase : BaseEntity, IBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsActive { get; private set; } = false;
|
private bool _isActive = false;
|
||||||
|
public bool IsActive => _isActive;
|
||||||
|
|
||||||
protected virtual void OnAssign(IBehaviourController behaviourController) { }
|
protected virtual void OnAssign(IBehaviourController behaviourController) { }
|
||||||
public bool Assign(IBehaviourController behaviourController)
|
public bool Assign(IBehaviourController behaviourController)
|
||||||
@ -80,7 +80,7 @@ public abstract class BehaviourBase : BaseEntity, IBehaviour
|
|||||||
private void UpdateActive()
|
private void UpdateActive()
|
||||||
{
|
{
|
||||||
bool previousActive = IsActive;
|
bool previousActive = IsActive;
|
||||||
IsActive = StateEnable.Enabled && _behaviourController.HierarchyObject.IsActive;
|
_isActive = StateEnable.Enabled && _behaviourController.HierarchyObject.IsActive;
|
||||||
|
|
||||||
if (previousActive != IsActive)
|
if (previousActive != IsActive)
|
||||||
OnActiveChanged?.Invoke(this, previousActive);
|
OnActiveChanged?.Invoke(this, previousActive);
|
||||||
|
@ -20,12 +20,15 @@ public class HierarchyObject : BaseEntity, IHierarchyObject
|
|||||||
private string _name = nameof(HierarchyObject);
|
private string _name = nameof(HierarchyObject);
|
||||||
private IGameManager _gameManager = null!;
|
private IGameManager _gameManager = null!;
|
||||||
private IBehaviourController _behaviourController = null!;
|
private IBehaviourController _behaviourController = null!;
|
||||||
|
private bool _isActive = false;
|
||||||
private readonly List<IHierarchyObject> _children = [];
|
private readonly List<IHierarchyObject> _children = [];
|
||||||
|
|
||||||
public IHierarchyObject? Parent { get; private set; } = null;
|
public IHierarchyObject? Parent { get; private set; } = null;
|
||||||
public IReadOnlyList<IHierarchyObject> Children => _children;
|
public IReadOnlyList<IHierarchyObject> Children => _children;
|
||||||
|
public IBehaviourController BehaviourController => _behaviourController;
|
||||||
public IGameManager GameManager => _gameManager;
|
public IGameManager GameManager => _gameManager;
|
||||||
public bool IsInHierarchy => _gameManager is not null;
|
public bool IsInHierarchy => _gameManager is not null;
|
||||||
|
public bool IsActive => _isActive;
|
||||||
|
|
||||||
public string Name
|
public string Name
|
||||||
{
|
{
|
||||||
@ -40,10 +43,6 @@ public class HierarchyObject : BaseEntity, IHierarchyObject
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public IBehaviourController BehaviourController => _behaviourController;
|
|
||||||
|
|
||||||
public bool IsActive { get; private set; } = false;
|
|
||||||
|
|
||||||
protected virtual void OnEnteringHierarchy(IGameManager gameManager) { }
|
protected virtual void OnEnteringHierarchy(IGameManager gameManager) { }
|
||||||
bool IHierarchyObject.EnterHierarchy(IGameManager gameManager)
|
bool IHierarchyObject.EnterHierarchy(IGameManager gameManager)
|
||||||
{
|
{
|
||||||
@ -142,12 +141,12 @@ public class HierarchyObject : BaseEntity, IHierarchyObject
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void OnParentActiveChanged(IActive sender, bool previousState) => UpdateActive();
|
private void OnParentActiveChanged(IActive sender, bool previousState) => UpdateActive();
|
||||||
private void OnStateEnabledChanged(IStateEnable senfder, bool previousState) => UpdateActive();
|
private void OnStateEnabledChanged(IStateEnable sender, bool previousState) => UpdateActive();
|
||||||
|
|
||||||
private void UpdateActive()
|
private void UpdateActive()
|
||||||
{
|
{
|
||||||
bool previousActive = IsActive;
|
bool previousActive = IsActive;
|
||||||
IsActive = StateEnable.Enabled && (Parent?.IsActive ?? true);
|
_isActive = StateEnable.Enabled && (Parent?.IsActive ?? true);
|
||||||
|
|
||||||
if (previousActive != IsActive)
|
if (previousActive != IsActive)
|
||||||
OnActiveChanged?.Invoke(this, previousActive);
|
OnActiveChanged?.Invoke(this, previousActive);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user