From 6ca3f22b17bcafe65d26ca5b47486f00b5e76468 Mon Sep 17 00:00:00 2001 From: Syntriax Date: Fri, 6 Mar 2026 11:39:46 +0300 Subject: [PATCH] feat: added UpdateManager.CallFirstActiveFrameImmediately method for early calls of behaviours --- Engine.Core/Systems/UpdateManager.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Engine.Core/Systems/UpdateManager.cs b/Engine.Core/Systems/UpdateManager.cs index 6af1be4..f07ee7b 100644 --- a/Engine.Core/Systems/UpdateManager.cs +++ b/Engine.Core/Systems/UpdateManager.cs @@ -44,6 +44,17 @@ public class UpdateManager : Behaviour, IEnterUniverse, IExitUniverse universe.OnPostUpdate.RemoveListener(OnPostUpdate); } + /// + /// Call the early if it's in queue to be called by this the . + /// It will not be called in the next natural cycle. + /// + /// The instance that will be called now rather than later. + public void CallFirstActiveFrameImmediately(IFirstFrameUpdate instance) + { + if (toCallFirstFrameUpdates.Remove(instance)) + instance.FirstActiveFrame(); + } + private void OnFirstUpdate(IUniverse sender, IUniverse.UpdateArguments args) { for (int i = toCallFirstFrameUpdates.Count - 1; i >= 0; i--)