This commit is contained in:
2025-05-30 16:05:49 +03:00
committed by Syntriax
parent 846aa75dd5
commit b5140a94de
57 changed files with 437 additions and 462 deletions

View File

@@ -1,5 +1,3 @@
using System;
namespace Syntriax.Engine.Core;
public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
@@ -9,8 +7,8 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
protected IUniverse Universe => BehaviourController.UniverseObject.Universe;
protected IUniverseObject UniverseObject => BehaviourController.UniverseObject;
private readonly Action<IUniverseObject, IUniverse> cachedEnteredUniverse = null!;
private readonly Action<IUniverseObject, IUniverse> cachedExitedUniverse = null!;
private readonly Event<IUniverseObject, IUniverseObject.EnteredUniverseArguments>.EventHandler cachedEnteredUniverse = null!;
private readonly Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments>.EventHandler cachedExitedUniverse = null!;
public Behaviour()
{
@@ -34,7 +32,7 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
OnInitialize();
if (UniverseObject.IsInUniverse)
EnteredUniverse(UniverseObject, Universe);
EnteredUniverse(UniverseObject, new(Universe));
}
protected virtual void OnFinalize() { }
@@ -46,7 +44,7 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
OnFinalize();
if (UniverseObject.IsInUniverse)
ExitedUniverse(UniverseObject, Universe);
ExitedUniverse(UniverseObject, new(Universe));
}
protected virtual void OnFirstActiveFrame() { }
@@ -141,8 +139,8 @@ public abstract class Behaviour : BehaviourBase, IFirstFrameUpdate,
}
protected virtual void OnEnteredUniverse(IUniverse universe) { }
protected virtual void EnteredUniverse(IUniverseObject sender, IUniverse universe) => OnEnteredUniverse(universe);
protected virtual void EnteredUniverse(IUniverseObject sender, IUniverseObject.EnteredUniverseArguments arguments) => OnEnteredUniverse(arguments.Universe);
protected virtual void OnExitedUniverse(IUniverse universe) { }
protected virtual void ExitedUniverse(IUniverseObject sender, IUniverse universe) => OnExitedUniverse(universe);
protected virtual void ExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments arguments) => OnExitedUniverse(arguments.Universe);
}