feat: IUniverse.OnTimeChanged event added
This commit is contained in:
parent
5c1c025fe3
commit
94d01521d4
@ -32,6 +32,11 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
|
||||
/// </summary>
|
||||
event UniverseObjectUnRegisteredEventHandler? OnUniverseObjectUnRegistered;
|
||||
|
||||
/// <summary>
|
||||
/// Event triggered when <see cref="TimeScale"/> is changed on the <see cref="IUniverse"/>.
|
||||
/// </summary>
|
||||
event TimeScaleChangedEventHandler? OnTimeScaleChanged;
|
||||
|
||||
/// <summary>
|
||||
/// Current time scale the <see cref="IUniverse"/> operates on.
|
||||
/// </summary>
|
||||
@ -83,6 +88,8 @@ public interface IUniverse : IEntity, IEnumerable<IUniverseObject>
|
||||
/// </summary>
|
||||
void PreDraw();
|
||||
|
||||
delegate void TimeScaleChangedEventHandler(IUniverse sender, float previousTimeScale);
|
||||
|
||||
delegate void UpdateEventHandler(IUniverse sender, UniverseTime engineTime);
|
||||
delegate void PreDrawEventHandler(IUniverse sender);
|
||||
|
||||
|
@ -16,6 +16,8 @@ public class Universe : BaseEntity, IUniverse
|
||||
public event IUniverse.UniverseObjectRegisteredEventHandler? OnUniverseObjectRegistered = null;
|
||||
public event IUniverse.UniverseObjectUnRegisteredEventHandler? OnUniverseObjectUnRegistered = null;
|
||||
|
||||
public event IUniverse.TimeScaleChangedEventHandler? OnTimeScaleChanged = null;
|
||||
|
||||
private readonly List<IUniverseObject> _universeObjects = new(Constants.UNIVERSE_OBJECTS_SIZE_INITIAL);
|
||||
private float _timeScale = 1f;
|
||||
|
||||
@ -26,7 +28,16 @@ public class Universe : BaseEntity, IUniverse
|
||||
public float TimeScale
|
||||
{
|
||||
get => _timeScale;
|
||||
set => _timeScale = value.Max(0f);
|
||||
set
|
||||
{
|
||||
value = value.Max(0f);
|
||||
if (value == _timeScale)
|
||||
return;
|
||||
|
||||
float previousTimeScale = _timeScale;
|
||||
_timeScale = value;
|
||||
OnTimeScaleChanged?.InvokeSafe(this, previousTimeScale);
|
||||
}
|
||||
}
|
||||
|
||||
public void Register(IUniverseObject universeObject)
|
||||
|
Loading…
x
Reference in New Issue
Block a user