namespace Syntriax.Engine.Core; public abstract class Behaviour2D : Behaviour, IBehaviour2D { public ITransform2D Transform { get; private set; } = null!; protected sealed override void OnInitialize(IInitializable _) { Transform = BehaviourController.GetRequiredBehaviour(); 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 arguments) => base.EnteredUniverse(sender, arguments); protected sealed override void ExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments arguments) => base.ExitedUniverse(sender, arguments); }