refactor: monogame 2D camera now use engine events

This commit is contained in:
2025-10-19 00:11:51 +03:00
parent 598debc233
commit 9d2a192f04

View File

@@ -7,9 +7,9 @@ namespace Engine.Integration.MonoGame;
public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPreDraw public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPreDraw
{ {
public event MatrixTransformChangedArguments? OnMatrixTransformChanged = null; public Event<MonoGameCamera2D> OnMatrixTransformChanged { get; } = new();
public event ViewportChangedArguments? OnViewportChanged = null; public Event<MonoGameCamera2D> OnViewportChanged { get; } = new();
public event ZoomChangedArguments? OnZoomChanged = null; public Event<MonoGameCamera2D> OnZoomChanged { get; } = new();
private Matrix _matrixTransform = Matrix.Identity; private Matrix _matrixTransform = Matrix.Identity;
@@ -28,7 +28,7 @@ public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPr
return; return;
_matrixTransform = value; _matrixTransform = value;
OnMatrixTransformChanged?.Invoke(this); OnMatrixTransformChanged.Invoke(this);
} }
} }
@@ -47,7 +47,7 @@ public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPr
return; return;
_viewport = value; _viewport = value;
OnViewportChanged?.Invoke(this); OnViewportChanged.Invoke(this);
} }
} }
@@ -62,7 +62,7 @@ public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPr
return; return;
_zoom = newValue; _zoom = newValue;
OnZoomChanged?.Invoke(this); OnZoomChanged.Invoke(this);
} }
} }
@@ -102,8 +102,4 @@ public class MonoGameCamera2D : BehaviourBase, ICamera2D, IFirstFrameUpdate, IPr
protected sealed override void InitializeInternal() => Transform = BehaviourController.GetRequiredBehaviour<ITransform2D>(); protected sealed override void InitializeInternal() => Transform = BehaviourController.GetRequiredBehaviour<ITransform2D>();
protected sealed override void FinalizeInternal() => Transform = null!; protected sealed override void FinalizeInternal() => Transform = null!;
public delegate void MatrixTransformChangedArguments(MonoGameCamera2D sender);
public delegate void ViewportChangedArguments(MonoGameCamera2D sender);
public delegate void ZoomChangedArguments(MonoGameCamera2D sender);
} }