perf: regular events to custom events
This commit is contained in:
@@ -4,9 +4,9 @@ namespace Syntriax.Engine.Physics2D;
|
||||
|
||||
public abstract class Collider2DBehaviourBase : Behaviour2D, ICollider2D
|
||||
{
|
||||
public event ICollider2D.CollisionDetectedEventHandler? OnCollisionDetected = null;
|
||||
public event ICollider2D.CollisionResolvedEventHandler? OnCollisionResolved = null;
|
||||
public event ICollider2D.TriggeredEventHandler? OnTriggered = null;
|
||||
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionDetected { get; private set; } = new();
|
||||
public Event<ICollider2D, CollisionDetectionInformation> OnCollisionResolved { get; private set; } = new();
|
||||
public Event<ICollider2D, ICollider2D> OnTriggered { get; private set; } = new();
|
||||
|
||||
protected bool NeedsRecalculation { get; set; } = true;
|
||||
protected IRigidBody2D? _rigidBody2D = null;
|
||||
@@ -29,13 +29,13 @@ public abstract class Collider2DBehaviourBase : Behaviour2D, ICollider2D
|
||||
{
|
||||
BehaviourController.TryGetBehaviourInParent(out _rigidBody2D);
|
||||
|
||||
BehaviourController.OnBehaviourAdded += OnBehaviourAddedToController;
|
||||
BehaviourController.OnBehaviourRemoved += OnBehaviourRemovedFromController;
|
||||
BehaviourController.OnBehaviourAdded.AddListener(OnBehaviourAddedToController);
|
||||
BehaviourController.OnBehaviourRemoved.AddListener(OnBehaviourRemovedFromController);
|
||||
|
||||
Transform.OnPositionChanged += SetNeedsRecalculationFromPosition;
|
||||
Transform.OnRotationChanged += SetNeedsRecalculationFromRotation;
|
||||
Transform.OnScaleChanged += SetNeedsRecalculationFromScale;
|
||||
UniverseObject.OnParentChanged += UpdateRigidBody2D;
|
||||
Transform.OnPositionChanged.AddListener(SetNeedsRecalculationFromPosition);
|
||||
Transform.OnRotationChanged.AddListener(SetNeedsRecalculationFromRotation);
|
||||
Transform.OnScaleChanged.AddListener(SetNeedsRecalculationFromScale);
|
||||
UniverseObject.OnParentChanged.AddListener(UpdateRigidBody2D);
|
||||
}
|
||||
|
||||
private void UpdateRigidBody2D(IUniverseObject sender, IUniverseObject? previousParent, IUniverseObject? newParent)
|
||||
@@ -61,12 +61,12 @@ public abstract class Collider2DBehaviourBase : Behaviour2D, ICollider2D
|
||||
|
||||
protected override void OnFinalize()
|
||||
{
|
||||
BehaviourController.OnBehaviourAdded -= OnBehaviourAddedToController;
|
||||
BehaviourController.OnBehaviourRemoved -= OnBehaviourRemovedFromController;
|
||||
Transform.OnScaleChanged -= SetNeedsRecalculationFromScale;
|
||||
BehaviourController.OnBehaviourAdded.RemoveListener(OnBehaviourAddedToController);
|
||||
BehaviourController.OnBehaviourRemoved.RemoveListener(OnBehaviourRemovedFromController);
|
||||
Transform.OnScaleChanged.RemoveListener(SetNeedsRecalculationFromScale);
|
||||
|
||||
Transform.OnPositionChanged -= SetNeedsRecalculationFromPosition;
|
||||
Transform.OnRotationChanged -= SetNeedsRecalculationFromRotation;
|
||||
Transform.OnPositionChanged.RemoveListener(SetNeedsRecalculationFromPosition);
|
||||
Transform.OnRotationChanged.RemoveListener(SetNeedsRecalculationFromRotation);
|
||||
}
|
||||
|
||||
public void Detect(CollisionDetectionInformation collisionDetectionInformation) => OnCollisionDetected?.Invoke(this, collisionDetectionInformation);
|
||||
|
||||
Reference in New Issue
Block a user