Amend Me
This commit is contained in:
@@ -7,18 +7,18 @@ namespace Syntriax.Engine.Core;
|
||||
[System.Diagnostics.DebuggerDisplay("UniverseObject Count: {_universeObjects.Count}")]
|
||||
public class Universe : BaseEntity, IUniverse
|
||||
{
|
||||
public Event<IUniverse, UniverseTime> OnPreUpdate { get; set; } = new();
|
||||
public Event<IUniverse, UniverseTime> OnUpdate { get; set; } = new();
|
||||
public Event<IUniverse, UniverseTime> OnPostUpdate { get; set; } = new();
|
||||
public Event<IUniverse> OnPreDraw { get; set; } = new();
|
||||
public Event<IUniverse> OnDraw { get; set; } = new();
|
||||
public Event<IUniverse> OnPostDraw { get; set; } = new();
|
||||
public Event<IUniverse, IUniverseObject> OnUniverseObjectRegistered { get; set; } = new();
|
||||
public Event<IUniverse, IUniverseObject> OnUniverseObjectUnRegistered { get; set; } = new();
|
||||
public Event<IUniverse, float> OnTimeScaleChanged { get; set; } = new();
|
||||
public Event<IUniverse, IUniverse.UpdateArguments> OnPreUpdate { get; init; } = new();
|
||||
public Event<IUniverse, IUniverse.UpdateArguments> OnUpdate { get; init; } = new();
|
||||
public Event<IUniverse, IUniverse.UpdateArguments> OnPostUpdate { get; init; } = new();
|
||||
public Event<IUniverse> OnPreDraw { get; init; } = new();
|
||||
public Event<IUniverse> OnDraw { get; init; } = new();
|
||||
public Event<IUniverse> OnPostDraw { get; init; } = new();
|
||||
public Event<IUniverse, IUniverse.UniverseObjectRegisteredArguments> OnUniverseObjectRegistered { get; init; } = new();
|
||||
public Event<IUniverse, IUniverse.UniverseObjectUnRegisteredArguments> OnUniverseObjectUnRegistered { get; init; } = new();
|
||||
public Event<IUniverse, IUniverse.TimeScaleChangedArguments> OnTimeScaleChanged { get; init; } = new();
|
||||
|
||||
private readonly Action<IInitializable> cachedOnUniverseObjectFinalize = null!;
|
||||
private readonly Action<IUniverseObject, IUniverse> cachedOnUniverseObjectExitedUniverse = null!;
|
||||
private readonly Event<IInitializable>.EventHandler cachedOnUniverseObjectFinalize = null!;
|
||||
private readonly Event<IUniverseObject, IUniverseObject.ExitedUniverseArguments>.EventHandler cachedOnUniverseObjectExitedUniverse = null!;
|
||||
|
||||
private readonly List<IUniverseObject> _universeObjects = new(Constants.UNIVERSE_OBJECTS_SIZE_INITIAL);
|
||||
private float _timeScale = 1f;
|
||||
@@ -44,7 +44,7 @@ public class Universe : BaseEntity, IUniverse
|
||||
|
||||
float previousTimeScale = _timeScale;
|
||||
_timeScale = value;
|
||||
OnTimeScaleChanged?.Invoke(this, previousTimeScale);
|
||||
OnTimeScaleChanged?.Invoke(this, new(previousTimeScale));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +67,7 @@ public class Universe : BaseEntity, IUniverse
|
||||
if (!universeObject.EnterUniverse(this))
|
||||
throw new Exception($"{universeObject.Name} can't enter the universe");
|
||||
|
||||
OnUniverseObjectRegistered?.Invoke(this, universeObject);
|
||||
OnUniverseObjectRegistered?.Invoke(this, new(universeObject));
|
||||
}
|
||||
|
||||
public T InstantiateUniverseObject<T>(params object?[]? args) where T : class, IUniverseObject
|
||||
@@ -102,7 +102,7 @@ public class Universe : BaseEntity, IUniverse
|
||||
if (!universeObject.Finalize())
|
||||
throw new Exception($"{universeObject.Name} can't be finalized");
|
||||
|
||||
OnUniverseObjectUnRegistered?.Invoke(this, universeObject);
|
||||
OnUniverseObjectUnRegistered?.Invoke(this, new(universeObject));
|
||||
}
|
||||
|
||||
protected override void InitializeInternal()
|
||||
@@ -125,9 +125,9 @@ public class Universe : BaseEntity, IUniverse
|
||||
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);
|
||||
OnUpdate?.Invoke(this, Time);
|
||||
OnPostUpdate?.Invoke(this, Time);
|
||||
OnPreUpdate?.Invoke(this, new(Time));
|
||||
OnUpdate?.Invoke(this, new(Time));
|
||||
OnPostUpdate?.Invoke(this, new(Time));
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
@@ -145,7 +145,7 @@ public class Universe : BaseEntity, IUniverse
|
||||
Remove(universeObject);
|
||||
}
|
||||
|
||||
private void OnUniverseObjectExitedUniverse(IUniverseObject sender, IUniverse universe)
|
||||
private void OnUniverseObjectExitedUniverse(IUniverseObject sender, IUniverseObject.ExitedUniverseArguments arguments)
|
||||
{
|
||||
if (sender is IUniverseObject universeObject)
|
||||
Remove(universeObject);
|
||||
|
||||
Reference in New Issue
Block a user