chore: cleanup

This commit is contained in:
Syntriax 2025-04-01 13:29:56 +03:00
parent 417ddca972
commit c71bf71fb3
2 changed files with 8 additions and 9 deletions

View File

@ -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);

View File

@ -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);