From 73ae55e1d483d20f46d94538dcbac863aa397877 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Mon, 15 Jul 2024 01:17:05 +0300 Subject: [PATCH] refactor: Actions to Delegates --- Engine | 2 +- Game/Behaviours/MonoGameCamera2DBehaviour.cs | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Engine b/Engine index 2cf6135..ef21cdf 160000 --- a/Engine +++ b/Engine @@ -1 +1 @@ -Subproject commit 2cf6135063b12dfff4d2c8391ad8edde806183f0 +Subproject commit ef21cdf2138a2f5107a628c0fe970b88bc03dcfd diff --git a/Game/Behaviours/MonoGameCamera2DBehaviour.cs b/Game/Behaviours/MonoGameCamera2DBehaviour.cs index 2861798..7feb1fe 100644 --- a/Game/Behaviours/MonoGameCamera2DBehaviour.cs +++ b/Game/Behaviours/MonoGameCamera2DBehaviour.cs @@ -8,9 +8,9 @@ namespace Pong.Behaviours; public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : BehaviourOverride, ICamera2D { - public System.Action? OnMatrixTransformChanged { get; set; } = null; - public System.Action? OnViewportChanged { get; set; } = null; - public System.Action? OnZoomChanged { get; set; } = null; + public event OnMatrixTransformChangedDelegate? OnMatrixTransformChanged = null; + public event OnViewportChangedDelegate? OnViewportChanged = null; + public event OnZoomChangedDelegate? OnZoomChanged = null; private Matrix _matrixTransform = Matrix.Identity; @@ -72,7 +72,7 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio set => Transform.Rotation = value; } - System.Action? IAssignableTransform.OnTransformAssigned { get => GameObject.OnTransformAssigned; set => GameObject.OnTransformAssigned = value; } + public event IAssignableTransform.OnTransformAssignedDelegate? OnTransformAssigned { add => GameObject.OnTransformAssigned += value; remove => GameObject.OnTransformAssigned -= value; } ITransform IAssignableTransform.Transform => GameObject.Transform; bool IAssignableTransform.Assign(ITransform transform) => GameObject.Assign(transform); @@ -99,4 +99,8 @@ public class MonoGameCamera2DBehaviour(GraphicsDeviceManager Graphics) : Behavio Matrix.CreateScale(Zoom) * Matrix.CreateTranslation(new Vector3(_viewport.Width * .5f, _viewport.Height * .5f, 0f)); } + + public delegate void OnMatrixTransformChangedDelegate(MonoGameCamera2DBehaviour sender); + public delegate void OnViewportChangedDelegate(MonoGameCamera2DBehaviour sender); + public delegate void OnZoomChangedDelegate(MonoGameCamera2DBehaviour sender); }