refactor: removed unnecessary overrides from Behaviour class

This commit is contained in:
2025-06-01 14:31:05 +03:00
parent f31b84f519
commit ac620264b1
7 changed files with 20 additions and 122 deletions

View File

@@ -1,8 +1,6 @@
namespace Syntriax.Engine.Core;
public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
IPreUpdate, IUpdate, IPostUpdate,
IPreDraw, IDraw, IPostDraw
public abstract class Behaviour : BehaviourBase
{
private readonly Event<IUniverseObject, IUniverseObject.EnteredUniverseArguments>.EventHandler delegateEnteredUniverse = null!;
private readonly Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments>.EventHandler delegateExitedUniverse = null!;
@@ -18,10 +16,10 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
}
protected virtual void OnUnassign() { }
protected virtual void OnUnassign(IAssignable assignable) => OnUnassign();
protected void OnUnassign(IAssignable assignable) => OnUnassign();
protected virtual void OnInitialize() { }
protected virtual void OnInitialize(IInitializable _)
protected void OnInitialize(IInitializable _)
{
BehaviourController.UniverseObject.OnEnteredUniverse.AddListener(delegateEnteredUniverse);
BehaviourController.UniverseObject.OnExitedUniverse.AddListener(delegateExitedUniverse);
@@ -33,7 +31,7 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
}
protected virtual void OnFinalize() { }
protected virtual void OnFinalize(IInitializable _)
protected void OnFinalize(IInitializable _)
{
BehaviourController.UniverseObject.OnEnteredUniverse.RemoveListener(delegateEnteredUniverse);
BehaviourController.UniverseObject.OnExitedUniverse.RemoveListener(delegateExitedUniverse);
@@ -44,100 +42,9 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
ExitedUniverse(UniverseObject, new(Universe));
}
protected virtual void OnFirstActiveFrame() { }
void IFirstFrameUpdate.FirstActiveFrame()
{
Debug.Assert.AssertInitialized(this);
OnFirstActiveFrame();
}
protected virtual void OnPreUpdatePreActiveCheck() { }
protected virtual void OnPreUpdate() { }
void IPreUpdate.PreUpdate()
{
Debug.Assert.AssertInitialized(this);
OnPreUpdatePreActiveCheck();
if (!IsActive)
return;
OnPreUpdate();
}
protected virtual void OnUpdatePreActiveCheck() { }
protected virtual void OnUpdate() { }
void IUpdate.Update()
{
Debug.Assert.AssertInitialized(this);
OnUpdatePreActiveCheck();
if (!IsActive)
return;
OnUpdate();
}
protected virtual void OnPostUpdatePreActiveCheck() { }
protected virtual void OnPostUpdate() { }
void IPostUpdate.PostUpdate()
{
Debug.Assert.AssertInitialized(this);
OnPostUpdatePreActiveCheck();
if (!StateEnable.Enabled)
return;
OnPostUpdate();
}
protected virtual void OnPreDrawPreActiveCheck() { }
protected virtual void OnPreDraw() { }
void IPreDraw.PreDraw()
{
Debug.Assert.AssertInitialized(this);
OnPreDrawPreActiveCheck();
if (!StateEnable.Enabled)
return;
OnPreDraw();
}
protected virtual void OnDrawPreActiveCheck() { }
protected virtual void OnDraw() { }
void IDraw.Draw()
{
Debug.Assert.AssertInitialized(this);
OnDrawPreActiveCheck();
if (!StateEnable.Enabled)
return;
OnDraw();
}
protected virtual void OnPostDrawPreActiveCheck() { }
protected virtual void OnPostDraw() { }
void IPostDraw.PostDraw()
{
Debug.Assert.AssertInitialized(this);
OnPostDrawPreActiveCheck();
if (!StateEnable.Enabled)
return;
OnPostDraw();
}
protected virtual void OnEnteredUniverse(IUniverse universe) { }
protected virtual void EnteredUniverse(IUniverseObject sender, IUniverseObject.EnteredUniverseArguments args) => OnEnteredUniverse(args.Universe);
protected void EnteredUniverse(IUniverseObject sender, IUniverseObject.EnteredUniverseArguments args) => OnEnteredUniverse(args.Universe);
protected virtual void OnExitedUniverse(IUniverse universe) { }
protected virtual void ExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments args) => OnExitedUniverse(args.Universe);
protected void ExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments args) => OnExitedUniverse(args.Universe);
}

View File

@@ -4,19 +4,6 @@ public abstract class Behaviour2D : Behaviour, IBehaviour2D
{
public ITransform2D Transform { get; private set; } = null!;
protected sealed override void OnInitialize(IInitializable _)
{
Transform = BehaviourController.GetRequiredBehaviour<ITransform2D>();
base.OnInitialize(_);
}
protected sealed override void OnFinalize(IInitializable _)
{
Transform = null!;
base.OnFinalize(_);
}
protected sealed override void OnUnassign(IAssignable assignable) => base.OnUnassign(assignable);
protected sealed override void EnteredUniverse(IUniverseObject sender, IUniverseObject.EnteredUniverseArguments args) => base.EnteredUniverse(sender, args);
protected sealed override void ExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments args) => base.ExitedUniverse(sender, args);
protected override void OnInitialize() => Transform = BehaviourController.GetRequiredBehaviour<ITransform2D>();
protected override void OnFinalize() => Transform = null!;
}