feat: safe delegate invocation helper added

This commit is contained in:
2025-04-13 19:08:47 +03:00
parent 00f7b1aaab
commit 58eb373c79
21 changed files with 116 additions and 91 deletions

View File

@@ -49,7 +49,7 @@ public class GameManager : BaseEntity, IGameManager
if (!hierarchyObject.EnterHierarchy(this))
throw new Exception($"{hierarchyObject.Name} can't enter the hierarchy");
OnHierarchyObjectRegistered?.Invoke(this, hierarchyObject);
OnHierarchyObjectRegistered?.InvokeSafe(this, hierarchyObject);
}
public T InstantiateHierarchyObject<T>(params object?[]? args) where T : class, IHierarchyObject
@@ -84,7 +84,7 @@ public class GameManager : BaseEntity, IGameManager
if (!hierarchyObject.Finalize())
throw new Exception($"{hierarchyObject.Name} can't be finalized");
OnHierarchyObjectUnRegistered?.Invoke(this, hierarchyObject);
OnHierarchyObjectUnRegistered?.InvokeSafe(this, hierarchyObject);
}
protected override void InitializeInternal()
@@ -107,12 +107,12 @@ public class GameManager : BaseEntity, IGameManager
UnscaledTime = engineTime;
Time = new(TimeSpan.FromTicks((long)(Time.TimeSinceStart.Ticks + engineTime.DeltaSpan.Ticks * TimeScale)), TimeSpan.FromTicks((long)(engineTime.DeltaSpan.Ticks * TimeScale)));
OnPreUpdate?.Invoke(this, Time);
OnPreUpdate?.InvokeSafe(this, Time);
for (int i = 0; i < HierarchyObjects.Count; i++)
HierarchyObjects[i].BehaviourController.Update();
OnUpdate?.Invoke(this, Time);
OnUpdate?.InvokeSafe(this, Time);
}
public void PreDraw()
@@ -122,7 +122,7 @@ public class GameManager : BaseEntity, IGameManager
for (int i = 0; i < HierarchyObjects.Count; i++)
HierarchyObjects[i].BehaviourController.UpdatePreDraw();
OnPreDraw?.Invoke(this);
OnPreDraw?.InvokeSafe(this);
}
private void OnHierarchyObjectFinalize(IInitializable initializable)