diff --git a/Engine.Core/Behaviour.cs b/Engine.Core/Behaviour.cs index 9d41d61..abe8a3d 100644 --- a/Engine.Core/Behaviour.cs +++ b/Engine.Core/Behaviour.cs @@ -54,7 +54,7 @@ public abstract class Behaviour : IBehaviour public bool Assign(IStateEnable stateEnable) { - if (_initialized) + if (Initialized) return false; _stateEnable = stateEnable; @@ -65,7 +65,7 @@ public abstract class Behaviour : IBehaviour public bool Assign(IBehaviourController behaviourController) { - if (_behaviourController is not null) + if (Initialized) return false; _behaviourController = behaviourController; @@ -90,9 +90,6 @@ public abstract class Behaviour : IBehaviour if (!Initialized) return false; - _behaviourController = null!; - _stateEnable = null!; - Initialized = false; return true; } diff --git a/Engine.Core/BehaviourController.cs b/Engine.Core/BehaviourController.cs index 4201663..3bf59d4 100644 --- a/Engine.Core/BehaviourController.cs +++ b/Engine.Core/BehaviourController.cs @@ -87,7 +87,7 @@ public class BehaviourController : IBehaviourController public bool Assign(IGameObject gameObject) { - if (_gameObject is not null) + if (GameObject.Initialized) return false; _gameObject = gameObject; diff --git a/Engine.Core/Behaviours/DrawableBehaviour.cs b/Engine.Core/Behaviours/DrawableBehaviour.cs index d452e70..4b0784a 100644 --- a/Engine.Core/Behaviours/DrawableBehaviour.cs +++ b/Engine.Core/Behaviours/DrawableBehaviour.cs @@ -32,7 +32,7 @@ public class DrawableSpriteBehaviour : Behaviour, IDrawBehaviour, IAssignableSpr public bool Assign(ISprite sprite) { - if (_sprite is not null) + if (Initialized) return false; _sprite = sprite; diff --git a/Engine.Core/GameManager.cs b/Engine.Core/GameManager.cs index 83075c4..eb26a8d 100644 --- a/Engine.Core/GameManager.cs +++ b/Engine.Core/GameManager.cs @@ -2,6 +2,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Syntriax.Engine.Core.Abstract; +using Syntriax.Engine.Core.Exceptions; using Syntriax.Engine.Core.Factory; namespace Syntriax.Engine.Core; @@ -63,6 +64,8 @@ public class GameManager : IInitialize if (Initialized) return false; + NotAssignedException.Check(this, StateEnable); + foreach (var gameObject in GameObjects) gameObject.Initialize(); @@ -84,7 +87,7 @@ public class GameManager : IInitialize public bool Assign(IStateEnable stateEnable) { - if (_stateEnable is not null) + if (Initialized) return false; _stateEnable = stateEnable; diff --git a/Engine.Core/GameObject.cs b/Engine.Core/GameObject.cs index 373d1bf..8fc6918 100644 --- a/Engine.Core/GameObject.cs +++ b/Engine.Core/GameObject.cs @@ -92,17 +92,13 @@ public class GameObject : IGameObject behaviour => behaviour.Finalize() ); - _transform = null!; - _behaviourController = null!; - _stateEnable = null!; - Initialized = false; return true; } public bool Assign(IStateEnable stateEnable) { - if (_stateEnable is not null) + if (Initialized) return false; _stateEnable = stateEnable; @@ -112,7 +108,7 @@ public class GameObject : IGameObject public bool Assign(ITransform transform) { - if (_transform is not null) + if (Initialized) return false; _transform = transform; @@ -122,7 +118,7 @@ public class GameObject : IGameObject public bool Assign(IBehaviourController behaviourController) { - if (_behaviourController is not null) + if (Initialized) return false; _behaviourController = behaviourController; diff --git a/Engine.Core/StateEnable.cs b/Engine.Core/StateEnable.cs index 7a1a461..1c047cb 100644 --- a/Engine.Core/StateEnable.cs +++ b/Engine.Core/StateEnable.cs @@ -29,7 +29,7 @@ public class StateEnable : IStateEnable public bool Assign(IEntity entity) { - if (_entity is not null) + if (_entity is not null) // TODO: IInitialize Maybe? return false; _entity = entity;