refactor!: IGameObject removed
This commit is contained in:
@@ -9,7 +9,7 @@ namespace Syntriax.Engine.Core;
|
||||
public class BehaviourCollector<T> : IBehaviourCollector<T> where T : class
|
||||
{
|
||||
public event IAssignable.OnUnassignedEventHandler? OnUnassigned = null;
|
||||
public event IAssignableGameManager.OnGameManagerAssignedEventHandler? OnGameManagerAssigned = null;
|
||||
public event IHasGameManager.OnGameManagerAssignedEventHandler? OnGameManagerAssigned = null;
|
||||
|
||||
public event IBehaviourCollector<T>.OnCollectedEventHandler? OnCollected = null;
|
||||
public event IBehaviourCollector<T>.OnRemovedEventHandler? OnRemoved = null;
|
||||
@@ -24,22 +24,22 @@ public class BehaviourCollector<T> : IBehaviourCollector<T> where T : class
|
||||
public BehaviourCollector() { }
|
||||
public BehaviourCollector(IGameManager gameManager) => Assign(gameManager);
|
||||
|
||||
private void OnGameObjectRegistered(IGameManager manager, IGameObject gameObject)
|
||||
private void OnHierarchyObjectRegistered(IGameManager manager, IHierarchyObject hierarchyObject)
|
||||
{
|
||||
gameObject.BehaviourController.OnBehaviourAdded += OnBehaviourAdded;
|
||||
gameObject.BehaviourController.OnBehaviourRemoved += OnBehaviourRemoved;
|
||||
hierarchyObject.BehaviourController.OnBehaviourAdded += OnBehaviourAdded;
|
||||
hierarchyObject.BehaviourController.OnBehaviourRemoved += OnBehaviourRemoved;
|
||||
|
||||
foreach (IBehaviour item in gameObject.BehaviourController)
|
||||
OnBehaviourAdded(gameObject.BehaviourController, item);
|
||||
foreach (IBehaviour item in hierarchyObject.BehaviourController)
|
||||
OnBehaviourAdded(hierarchyObject.BehaviourController, item);
|
||||
}
|
||||
|
||||
private void OnGameObjectUnregistered(IGameManager manager, IGameObject gameObject)
|
||||
private void OnHierarchyObjectUnregistered(IGameManager manager, IHierarchyObject hierarchyObject)
|
||||
{
|
||||
gameObject.BehaviourController.OnBehaviourAdded -= OnBehaviourAdded;
|
||||
gameObject.BehaviourController.OnBehaviourRemoved -= OnBehaviourRemoved;
|
||||
hierarchyObject.BehaviourController.OnBehaviourAdded -= OnBehaviourAdded;
|
||||
hierarchyObject.BehaviourController.OnBehaviourRemoved -= OnBehaviourRemoved;
|
||||
|
||||
foreach (IBehaviour item in gameObject.BehaviourController)
|
||||
OnBehaviourRemoved(gameObject.BehaviourController, item);
|
||||
foreach (IBehaviour item in hierarchyObject.BehaviourController)
|
||||
OnBehaviourRemoved(hierarchyObject.BehaviourController, item);
|
||||
}
|
||||
|
||||
protected virtual void OnBehaviourAdd(IBehaviour behaviour) { }
|
||||
@@ -71,11 +71,11 @@ public class BehaviourCollector<T> : IBehaviourCollector<T> where T : class
|
||||
if (GameManager is not null)
|
||||
return false;
|
||||
|
||||
foreach (IGameObject gameObject in gameManager.GameObjects)
|
||||
OnGameObjectRegistered(gameManager, gameObject);
|
||||
foreach (IHierarchyObject hierarchyObject in gameManager.HierarchyObjects)
|
||||
OnHierarchyObjectRegistered(gameManager, hierarchyObject);
|
||||
|
||||
gameManager.OnGameObjectRegistered += OnGameObjectRegistered;
|
||||
gameManager.OnGameObjectUnRegistered += OnGameObjectUnregistered;
|
||||
gameManager.OnHierarchyObjectRegistered += OnHierarchyObjectRegistered;
|
||||
gameManager.OnHierarchyObjectUnRegistered += OnHierarchyObjectUnregistered;
|
||||
|
||||
GameManager = gameManager;
|
||||
OnGameManagerAssigned?.Invoke(this);
|
||||
@@ -88,11 +88,11 @@ public class BehaviourCollector<T> : IBehaviourCollector<T> where T : class
|
||||
if (GameManager is null)
|
||||
return false;
|
||||
|
||||
foreach (IGameObject gameObject in GameManager.GameObjects)
|
||||
OnGameObjectUnregistered(GameManager, gameObject);
|
||||
foreach (IHierarchyObject hierarchyObject in GameManager.HierarchyObjects)
|
||||
OnHierarchyObjectUnregistered(GameManager, hierarchyObject);
|
||||
|
||||
GameManager.OnGameObjectRegistered -= OnGameObjectRegistered;
|
||||
GameManager.OnGameObjectUnRegistered -= OnGameObjectUnregistered;
|
||||
GameManager.OnHierarchyObjectRegistered -= OnHierarchyObjectRegistered;
|
||||
GameManager.OnHierarchyObjectUnRegistered -= OnHierarchyObjectUnregistered;
|
||||
|
||||
GameManager = null!;
|
||||
OnUnassigned?.Invoke(this);
|
||||
|
Reference in New Issue
Block a user