Unified those messy FrameEventArgs.

This commit is contained in:
Pieter-Jan Briers
2019-08-04 01:08:44 +02:00
parent 0e65843f39
commit 0a41ef3c9a
40 changed files with 125 additions and 149 deletions

View File

@@ -34,6 +34,7 @@ using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Log;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client
@@ -205,33 +206,31 @@ namespace Robust.Client
_mainLoop.Running = false;
}
private void Update(float frameTime)
private void Update(FrameEventArgs frameEventArgs)
{
var eventArgs = new ProcessFrameEventArgs(frameTime);
_networkManager.ProcessPackets();
_modLoader.BroadcastUpdate(ModUpdateLevel.PreEngine, eventArgs.Elapsed);
_timerManager.UpdateTimers(frameTime);
_modLoader.BroadcastUpdate(ModUpdateLevel.PreEngine, frameEventArgs);
_timerManager.UpdateTimers(frameEventArgs);
_taskManager.ProcessPendingTasks();
_userInterfaceManager.Update(eventArgs);
_stateManager.Update(eventArgs);
_userInterfaceManager.Update(frameEventArgs);
_stateManager.Update(frameEventArgs);
if (_client.RunLevel >= ClientRunLevel.Connected)
{
_gameStateManager.ApplyGameState();
}
_modLoader.BroadcastUpdate(ModUpdateLevel.PostEngine, eventArgs.Elapsed);
_modLoader.BroadcastUpdate(ModUpdateLevel.PostEngine, frameEventArgs);
}
private void _frameProcessMain(float delta)
private void _frameProcessMain(FrameEventArgs frameEventArgs)
{
var eventArgs = new RenderFrameEventArgs(delta);
_clyde.FrameProcess(eventArgs);
_modLoader.BroadcastUpdate(ModUpdateLevel.FramePreEngine, eventArgs.Elapsed);
_stateManager.FrameUpdate(eventArgs);
_overlayManager.FrameUpdate(eventArgs);
_userInterfaceManager.FrameUpdate(eventArgs);
_modLoader.BroadcastUpdate(ModUpdateLevel.FramePostEngine, eventArgs.Elapsed);
_clyde.FrameProcess(frameEventArgs);
_modLoader.BroadcastUpdate(ModUpdateLevel.FramePreEngine, frameEventArgs);
_stateManager.FrameUpdate(frameEventArgs);
_overlayManager.FrameUpdate(frameEventArgs);
_userInterfaceManager.FrameUpdate(frameEventArgs);
_modLoader.BroadcastUpdate(ModUpdateLevel.FramePostEngine, frameEventArgs);
}
internal static void SetupLogging(ILogManager logManager)

View File

@@ -1,25 +0,0 @@
using System;
namespace Robust.Client
{
// This is probably a terrible folder to put this but I can't think of anything else.
public class FrameEventArgs : EventArgs
{
public float Elapsed { get; }
public FrameEventArgs(float elapsed)
{
Elapsed = elapsed;
}
}
public class ProcessFrameEventArgs : FrameEventArgs
{
public ProcessFrameEventArgs(float elapsed) : base(elapsed) { }
}
public class RenderFrameEventArgs : FrameEventArgs
{
public RenderFrameEventArgs(float elapsed) : base(elapsed) { }
}
}

View File

@@ -59,7 +59,7 @@ namespace Robust.Client
{
if (_mainLoop.Running)
{
Update(args.DeltaSeconds);
Update(args);
}
};
@@ -75,7 +75,7 @@ namespace Robust.Client
{
if (_mainLoop.Running)
{
_clyde.ProcessInput(new FrameEventArgs(args.DeltaSeconds));
_clyde.ProcessInput(args);
}
};
@@ -83,7 +83,7 @@ namespace Robust.Client
{
if (_mainLoop.Running)
{
_frameProcessMain(args.DeltaSeconds);
_frameProcessMain(args);
}
};

View File

@@ -70,7 +70,7 @@ namespace Robust.Client.GameStates
}
/// <inheritdoc />
internal override void FrameUpdate(RenderFrameEventArgs args)
internal override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);

View File

@@ -28,6 +28,7 @@ using Robust.Shared.Utility;
using Matrix3 = Robust.Shared.Maths.Matrix3;
using Vector2 = Robust.Shared.Maths.Vector2;
using Vector3 = Robust.Shared.Maths.Vector3;
using FrameEventArgs = Robust.Shared.Timing.FrameEventArgs;
namespace Robust.Client.Graphics.Clyde
{
@@ -123,9 +124,9 @@ namespace Robust.Client.Graphics.Clyde
ReloadConfig();
}
public void FrameProcess(RenderFrameEventArgs eventArgs)
public void FrameProcess(FrameEventArgs eventArgs)
{
_renderTime += eventArgs.Elapsed;
_renderTime += eventArgs.DeltaSeconds;
_updateAudio();
}

View File

@@ -4,6 +4,7 @@ using Robust.Client.Audio;
using Robust.Client.Graphics.Shaders;
using Robust.Client.Interfaces.Graphics;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.PixelFormats;
@@ -43,7 +44,7 @@ namespace Robust.Client.Graphics.Clyde
// Nada.
}
public void FrameProcess(RenderFrameEventArgs eventArgs)
public void FrameProcess(FrameEventArgs eventArgs)
{
// Nada.
}

View File

@@ -7,6 +7,7 @@ using System.Collections.Generic;
using JetBrains.Annotations;
using Robust.Client.Graphics.Clyde;
using Robust.Client.Interfaces.Graphics;
using Robust.Shared.Timing;
namespace Robust.Client.Graphics.Overlays
{
@@ -75,7 +76,7 @@ namespace Robust.Client.Graphics.Overlays
_isDirty = true;
}
internal virtual void FrameUpdate(RenderFrameEventArgs args)
internal virtual void FrameUpdate(FrameEventArgs args)
{
}

View File

@@ -4,6 +4,7 @@ using Robust.Shared.GameObjects;
using Robust.Shared.IoC;
using System;
using System.Collections.Generic;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.Graphics.Overlays
@@ -12,7 +13,7 @@ namespace Robust.Client.Graphics.Overlays
{
private readonly Dictionary<string, Overlay> _overlays = new Dictionary<string, Overlay>();
public void FrameUpdate(RenderFrameEventArgs args)
public void FrameUpdate(FrameEventArgs args)
{
foreach (var overlay in _overlays.Values)
{

View File

@@ -9,6 +9,7 @@ using Robust.Client.Graphics.Shaders;
using Robust.Client.Interfaces.Input;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.Interfaces.Graphics
{
@@ -41,7 +42,7 @@ namespace Robust.Client.Interfaces.Graphics
{
// Basic main loop hooks.
void Render();
void FrameProcess(RenderFrameEventArgs eventArgs);
void FrameProcess(FrameEventArgs eventArgs);
void ProcessInput(FrameEventArgs frameEventArgs);
// Init.

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic;
using JetBrains.Annotations;
using Robust.Client.Graphics.Overlays;
using Robust.Shared.Timing;
namespace Robust.Client.Interfaces.Graphics.Overlays
{
@@ -22,6 +23,6 @@ namespace Robust.Client.Interfaces.Graphics.Overlays
internal interface IOverlayManagerInternal : IOverlayManager
{
void FrameUpdate(RenderFrameEventArgs args);
void FrameUpdate(FrameEventArgs args);
}
}

View File

@@ -4,6 +4,7 @@ using Robust.Client.Placement;
using Robust.Shared;
using Robust.Shared.Enums;
using Robust.Shared.Map;
using Robust.Shared.Timing;
namespace Robust.Client.Interfaces.Placement
{
@@ -21,6 +22,6 @@ namespace Robust.Client.Interfaces.Placement
void Clear();
void ToggleEraser();
void FrameUpdate(RenderFrameEventArgs e);
void FrameUpdate(FrameEventArgs e);
}
}

View File

@@ -1,5 +1,6 @@
using Robust.Client.Input;
using System;
using Robust.Shared.Timing;
namespace Robust.Client.Interfaces.State
{
@@ -9,8 +10,8 @@ namespace Robust.Client.Interfaces.State
Client.State.State CurrentState { get; }
void RequestStateChange<T>() where T : Client.State.State, new();
void Update(ProcessFrameEventArgs e);
void FrameUpdate(RenderFrameEventArgs e);
void Update(FrameEventArgs e);
void FrameUpdate(FrameEventArgs e);
void MouseUp(MouseButtonEventArgs e);
void MouseDown(MouseButtonEventArgs e);
void MouseMove(MouseMoveEventArgs e);

View File

@@ -3,6 +3,7 @@ using Robust.Client.Input;
using Robust.Client.Interfaces.Graphics;
using Robust.Client.UserInterface;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.Interfaces.UserInterface
{
@@ -71,9 +72,9 @@ namespace Robust.Client.Interfaces.UserInterface
void Initialize();
void InitializeTesting();
void Update(ProcessFrameEventArgs args);
void Update(FrameEventArgs args);
void FrameUpdate(RenderFrameEventArgs args);
void FrameUpdate(FrameEventArgs args);
void MouseDown(MouseButtonEventArgs args);

View File

@@ -30,6 +30,7 @@ using Robust.Client.Player;
using Robust.Shared.Input;
using Robust.Shared.Utility;
using Robust.Shared.Serialization;
using Robust.Shared.Timing;
namespace Robust.Client.Placement
{
@@ -474,7 +475,7 @@ namespace Robust.Client.Placement
}
/// <inheritdoc />
public void FrameUpdate(RenderFrameEventArgs e)
public void FrameUpdate(FrameEventArgs e)
{
if (!CurrentMousePosition(out var mouseScreen))
return;

View File

@@ -1,5 +1,6 @@
using System;
using Robust.Client.Input;
using Robust.Shared.Timing;
namespace Robust.Client.State
{
@@ -18,9 +19,9 @@ namespace Robust.Client.State
/// <summary>
/// Update the contents of this screen.
/// </summary>
public virtual void Update(ProcessFrameEventArgs e) { }
public virtual void Update(FrameEventArgs e) { }
public virtual void FrameUpdate(RenderFrameEventArgs e) { }
public virtual void FrameUpdate(FrameEventArgs e) { }
#region Events

View File

@@ -3,6 +3,7 @@ using Robust.Client.Interfaces.State;
using Robust.Shared.Log;
using System;
using Robust.Shared.IoC;
using Robust.Shared.Timing;
namespace Robust.Client.State
{
@@ -17,12 +18,12 @@ namespace Robust.Client.State
#region Updates & Statechanges
public void Update(ProcessFrameEventArgs e)
public void Update(FrameEventArgs e)
{
CurrentState?.Update(e);
}
public void FrameUpdate(RenderFrameEventArgs e)
public void FrameUpdate(FrameEventArgs e)
{
CurrentState?.FrameUpdate(e);
}

View File

@@ -15,6 +15,7 @@ using Robust.Shared.Interfaces.Map;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.IoC;
using Robust.Shared.Map;
using Robust.Shared.Timing;
namespace Robust.Client.State.States
{
@@ -49,17 +50,17 @@ namespace Robust.Client.State.States
inputManager.KeyBindStateChanged -= OnKeyBindStateChanged;
}
public override void Update(ProcessFrameEventArgs e)
public override void Update(FrameEventArgs e)
{
_componentManager.CullRemovedComponents();
_entityManager.Update(e.Elapsed);
playerManager.Update(e.Elapsed);
_entityManager.Update(e.DeltaSeconds);
playerManager.Update(e.DeltaSeconds);
}
public override void FrameUpdate(RenderFrameEventArgs e)
public override void FrameUpdate(FrameEventArgs e)
{
placementManager.FrameUpdate(e);
_entityManager.FrameUpdate(e.Elapsed);
_entityManager.FrameUpdate(e.DeltaSeconds);
var mousePosWorld = eyeManager.ScreenToWorld(new ScreenCoordinates(inputManager.MouseScreenPosition));
var entityToClick = GetEntityUnderPosition(mousePosWorld);

View File

@@ -9,6 +9,7 @@ using Robust.Client.Interfaces.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
using Robust.Shared.ViewVariables;
@@ -1716,7 +1717,7 @@ namespace Robust.Client.UserInterface
Both
}
internal void DoUpdate(ProcessFrameEventArgs args)
internal void DoUpdate(FrameEventArgs args)
{
Update(args);
foreach (var child in Children)
@@ -1728,11 +1729,11 @@ namespace Robust.Client.UserInterface
/// <summary>
/// This is called every process frame.
/// </summary>
protected virtual void Update(ProcessFrameEventArgs args)
protected virtual void Update(FrameEventArgs args)
{
}
internal void DoFrameUpdate(RenderFrameEventArgs args)
internal void DoFrameUpdate(FrameEventArgs args)
{
FrameUpdate(args);
foreach (var child in Children)
@@ -1744,7 +1745,7 @@ namespace Robust.Client.UserInterface
/// <summary>
/// This is called before every render frame.
/// </summary>
protected virtual void FrameUpdate(RenderFrameEventArgs args)
protected virtual void FrameUpdate(FrameEventArgs args)
{
}

View File

@@ -7,6 +7,7 @@ using Robust.Client.Input;
using Robust.Client.Interfaces.UserInterface;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.Controls
{
@@ -196,11 +197,11 @@ namespace Robust.Client.UserInterface.Controls
}
}
protected override void FrameUpdate(RenderFrameEventArgs args)
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
_cursorBlinkTimer -= args.Elapsed;
_cursorBlinkTimer -= args.DeltaSeconds;
if (_cursorBlinkTimer <= 0)
{
_cursorBlinkTimer += BlinkTime;

View File

@@ -9,6 +9,7 @@ using Robust.Client.Interfaces.Console;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.UserInterface.CustomControls
@@ -81,7 +82,7 @@ namespace Robust.Client.UserInterface.CustomControls
_loadHistoryFromDisk();
}
protected override void Update(ProcessFrameEventArgs args)
protected override void Update(FrameEventArgs args)
{
base.Update(args);

View File

@@ -14,6 +14,7 @@ using Robust.Client.Player;
using Robust.Client.State.States;
using Robust.Shared.Interfaces.GameObjects;
using Robust.Shared.Interfaces.Map;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.UserInterface.CustomControls
@@ -77,7 +78,7 @@ namespace Robust.Client.UserInterface.CustomControls
MouseFilter = contents.MouseFilter = MouseFilterMode.Ignore;
}
protected override void FrameUpdate(RenderFrameEventArgs args)
protected override void FrameUpdate(FrameEventArgs args)
{
if (!VisibleInTree)
{

View File

@@ -2,6 +2,7 @@ using System;
using Robust.Client.Graphics.Drawing;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.CustomControls
{
@@ -34,7 +35,7 @@ namespace Robust.Client.UserInterface.CustomControls
MouseFilter = _label.MouseFilter = MouseFilterMode.Ignore;
}
protected override void FrameUpdate(RenderFrameEventArgs args)
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);

View File

@@ -6,6 +6,7 @@ using Robust.Client.UserInterface.Controls;
using Robust.Shared.Interfaces.Network;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.UserInterface.CustomControls
@@ -65,7 +66,7 @@ namespace Robust.Client.UserInterface.CustomControls
MouseFilter = contents.MouseFilter = MouseFilterMode.Ignore;
}
protected override void Update(ProcessFrameEventArgs args)
protected override void Update(FrameEventArgs args)
{
base.Update(args);

View File

@@ -4,6 +4,7 @@ using Robust.Client.ResourceManagement;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Client.UserInterface.CustomControls
@@ -50,7 +51,7 @@ namespace Robust.Client.UserInterface.CustomControls
SizeFlagsHorizontal = SizeFlags.None;
}
protected override void Update(ProcessFrameEventArgs args)
protected override void Update(FrameEventArgs args)
{
base.Update(args);

View File

@@ -1,6 +1,7 @@
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.CustomControls
{
@@ -24,7 +25,7 @@ namespace Robust.Client.UserInterface.CustomControls
MouseFilter = MouseFilterMode.Ignore;
}
protected override void Update(ProcessFrameEventArgs args)
protected override void Update(FrameEventArgs args)
{
if (!VisibleInTree)
{

View File

@@ -1,6 +1,7 @@
using Robust.Client.Graphics.Drawing;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.CustomControls
{
@@ -52,7 +53,7 @@ namespace Robust.Client.UserInterface.CustomControls
return (TrackedFrames * FrameWidth, FrameHeight * 2);
}
protected override void FrameUpdate(RenderFrameEventArgs args)
protected override void FrameUpdate(FrameEventArgs args)
{
_frameTimes[_frameIndex] = (float)_gameTiming.RealFrameTime.TotalSeconds;
_frameIndex = (_frameIndex + 1) % TrackedFrames;

View File

@@ -3,6 +3,7 @@ using Robust.Client.Graphics.Drawing;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Log;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.CustomControls
{
@@ -375,7 +376,7 @@ namespace Robust.Client.UserInterface.CustomControls
}
// Prevent window headers from getting off screen due to game window resizes.
protected override void Update(ProcessFrameEventArgs args)
protected override void Update(FrameEventArgs args)
{
var (spaceX, spaceY) = Parent.Size;
if (Position.Y > spaceY)

View File

@@ -20,6 +20,7 @@ using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.IoC;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface
{
@@ -138,16 +139,16 @@ namespace Robust.Client.UserInterface
RootControl?.Dispose();
}
public void Update(ProcessFrameEventArgs args)
public void Update(FrameEventArgs args)
{
RootControl.DoUpdate(args);
}
public void FrameUpdate(RenderFrameEventArgs args)
public void FrameUpdate(FrameEventArgs args)
{
RootControl.DoFrameUpdate(args);
_tooltipTimer -= args.Elapsed;
_tooltipTimer -= args.DeltaSeconds;
if (_tooltipTimer <= 0)
{
_showTooltip();

View File

@@ -17,7 +17,6 @@ using Robust.Shared.IoC;
using Robust.Shared.Localization;
using Robust.Shared.Log;
using Robust.Shared.Timing;
using FrameEventArgs = Robust.Client.FrameEventArgs;
namespace Robust.Lite
{
@@ -108,7 +107,7 @@ namespace Robust.Lite
{
if (_mainLoop.Running)
{
ProcessUpdate(args.DeltaSeconds);
ProcessUpdate(args);
}
};
@@ -124,7 +123,7 @@ namespace Robust.Lite
{
if (_mainLoop.Running)
{
_clyde.ProcessInput(new FrameEventArgs(args.DeltaSeconds));
_clyde.ProcessInput(args);
}
};
@@ -132,28 +131,24 @@ namespace Robust.Lite
{
if (_mainLoop.Running)
{
RenderFrameProcess(args.DeltaSeconds);
RenderFrameProcess(args);
}
};
_mainLoop.Run();
}
private void RenderFrameProcess(float delta)
private void RenderFrameProcess(FrameEventArgs frameEventArgs)
{
var frameEventArgs = new RenderFrameEventArgs(delta);
_userInterfaceManager.FrameUpdate(frameEventArgs);
_clyde.FrameProcess(frameEventArgs);
}
private void ProcessUpdate(float delta)
private void ProcessUpdate(FrameEventArgs frameEventArgs)
{
var eventArgs = new ProcessFrameEventArgs(delta);
_timerManager.UpdateTimers(delta);
_timerManager.UpdateTimers(frameEventArgs);
_taskManager.ProcessPendingTasks();
_userInterfaceManager.Update(eventArgs);
_userInterfaceManager.Update(frameEventArgs);
}
public void KeyDown(KeyEventArgs keyEvent)

View File

@@ -258,7 +258,7 @@ namespace Robust.Server
};
}
_mainLoop.Tick += (sender, args) => Update(args.DeltaSeconds);
_mainLoop.Tick += (sender, args) => Update(args);
// set GameLoop.Running to false to return from this function.
_mainLoop.Run();
@@ -342,22 +342,22 @@ namespace Robust.Server
return bps;
}
private void Update(float frameTime)
private void Update(FrameEventArgs frameEventArgs)
{
UpdateTitle();
_systemConsole.Update();
IoCManager.Resolve<IServerNetManager>().ProcessPackets();
_modLoader.BroadcastUpdate(ModUpdateLevel.PreEngine, frameTime);
_modLoader.BroadcastUpdate(ModUpdateLevel.PreEngine, frameEventArgs);
timerManager.UpdateTimers(frameTime);
timerManager.UpdateTimers(frameEventArgs);
_taskManager.ProcessPendingTasks();
_components.CullRemovedComponents();
_entities.Update(frameTime);
_entities.Update(frameEventArgs.DeltaSeconds);
_modLoader.BroadcastUpdate(ModUpdateLevel.PostEngine, frameTime);
_modLoader.BroadcastUpdate(ModUpdateLevel.PostEngine, frameEventArgs);
_stateManager.SendGameStateUpdate();
}

View File

@@ -1,4 +1,5 @@
using System;
using Robust.Shared.Timing;
namespace Robust.Shared.ContentPack
{
@@ -22,7 +23,7 @@ namespace Robust.Shared.ContentPack
{
}
public virtual void Update(ModUpdateLevel level, float frameTime)
public virtual void Update(ModUpdateLevel level, FrameEventArgs frameEventArgs)
{
}

View File

@@ -1,4 +1,5 @@
using Robust.Shared.Interfaces.Resources;
using Robust.Shared.Timing;
namespace Robust.Shared.ContentPack
{
@@ -26,7 +27,7 @@ namespace Robust.Shared.ContentPack
/// <param name="level">New level</param>
void BroadcastRunLevel(ModRunLevel level);
void BroadcastUpdate(ModUpdateLevel level, float frameTime);
void BroadcastUpdate(ModUpdateLevel level, FrameEventArgs frameEventArgs);
/// <summary>
/// Tries to load an assembly from a resource manager into the current appdomain.

View File

@@ -7,6 +7,7 @@ using Robust.Shared.Interfaces.Reflection;
using Robust.Shared.Interfaces.Resources;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Timing;
using Robust.Shared.Utility;
namespace Robust.Shared.ContentPack
@@ -145,11 +146,11 @@ namespace Robust.Shared.ContentPack
}
}
public void BroadcastUpdate(ModUpdateLevel level, float frameTime)
public void BroadcastUpdate(ModUpdateLevel level, FrameEventArgs frameEventArgs)
{
foreach (var entrypoint in _mods.SelectMany(m => m.EntryPoints))
{
entrypoint.Update(level, frameTime);
entrypoint.Update(level, frameEventArgs);
}
}

View File

@@ -218,7 +218,7 @@ namespace Robust.Shared.GameObjects
private void DeleteComponent(Component component)
{
var reg = _componentFactory.GetRegistration(component.GetType());
var entityUid = component.Owner.Uid;
foreach (var refType in reg.References)
@@ -428,7 +428,7 @@ namespace Robust.Shared.GameObjects
}
/// <summary>
///
///
/// </summary>
public class ComponentEventArgs : EventArgs
{

View File

@@ -1,4 +1,5 @@
using System.Threading;
using Robust.Shared.Timing;
using Timer = Robust.Shared.Timers.Timer;
namespace Robust.Shared.Interfaces.Timers
@@ -7,6 +8,6 @@ namespace Robust.Shared.Interfaces.Timers
{
void AddTimer(Timer timer, CancellationToken cancellationToken = default);
void UpdateTimers(float frameTime);
void UpdateTimers(FrameEventArgs frameEventArgs);
}
}

View File

@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Threading;
using Robust.Shared.Exceptions;
using Robust.Shared.IoC;
using Robust.Shared.Timing;
namespace Robust.Shared.Timers
{
@@ -20,7 +21,7 @@ namespace Robust.Shared.Timers
_timers.Add((timer, cancellationToken));
}
public void UpdateTimers(float frameTime)
public void UpdateTimers(FrameEventArgs frameEventArgs)
{
// Manual for loop so we can modify the list while enumerating.
// ReSharper disable once ForCanBeConvertedToForeach
@@ -33,7 +34,7 @@ namespace Robust.Shared.Timers
continue;
}
timer.Update(frameTime, _runtimeLog);
timer.Update(frameEventArgs.DeltaSeconds, _runtimeLog);
}
_timers.RemoveAll(timer => !timer.Item1.IsActive || timer.Item2.IsCancellationRequested);

View File

@@ -1,16 +1,14 @@
using System;
namespace Robust.Shared.Timing
namespace Robust.Shared.Timing
{
/// <summary>
/// Arguments of the GameLoop frame event.
/// </summary>
public class FrameEventArgs : EventArgs
public readonly struct FrameEventArgs
{
/// <summary>
/// Seconds passed since this event was last called.
/// </summary>
public float DeltaSeconds { get; protected set; }
public float DeltaSeconds { get; }
/// <summary>
/// Constructs an instance of this object.
@@ -21,25 +19,4 @@ namespace Robust.Shared.Timing
DeltaSeconds = deltaSeconds;
}
}
/// <summary>
/// A mutable version of <see cref="FrameEventArgs"/>.
/// </summary>
internal class MutableFrameEventArgs : FrameEventArgs
{
/// <summary>
/// Constructs an instance of this object.
/// </summary>
/// <param name="deltaSeconds">Seconds passed since this event was last called.</param>
public MutableFrameEventArgs(float deltaSeconds)
: base(deltaSeconds) { }
/// <summary>
/// Sets the seconds passed since this event was last called.
/// </summary>
public void SetDeltaSeconds(float seconds)
{
DeltaSeconds = seconds;
}
}
}

View File

@@ -99,8 +99,8 @@ namespace Robust.Shared.Timing
Running = true;
var realFrameEvent = new MutableFrameEventArgs(0);
var simFrameEvent = new MutableFrameEventArgs(0);
FrameEventArgs realFrameEvent;
FrameEventArgs simFrameEvent;
_timing.ResetRealTime();
@@ -131,7 +131,7 @@ namespace Robust.Shared.Timing
}
_timing.StartFrame();
realFrameEvent.SetDeltaSeconds((float)_timing.RealFrameTime.TotalSeconds);
realFrameEvent = new FrameEventArgs((float)_timing.RealFrameTime.TotalSeconds);
#if RELEASE
try
#endif
@@ -160,7 +160,7 @@ namespace Robust.Shared.Timing
continue;
// update the simulation
simFrameEvent.SetDeltaSeconds((float)_timing.FrameTime.TotalSeconds);
simFrameEvent = new FrameEventArgs((float)_timing.FrameTime.TotalSeconds);
#if RELEASE
try
{
@@ -187,7 +187,8 @@ namespace Robust.Shared.Timing
_timing.InSimulation = false;
// update out of the simulation
simFrameEvent.SetDeltaSeconds((float)_timing.FrameTime.TotalSeconds);
simFrameEvent = new FrameEventArgs((float)_timing.FrameTime.TotalSeconds);
#if RELEASE
try
#endif

View File

@@ -396,7 +396,6 @@ namespace Robust.UnitTesting
Tick += (a, b) => Console.WriteLine("tick: {0}", _gameTiming.CurTick);
var simFrameEvent = new MutableFrameEventArgs(0);
_gameTiming.InSimulation = true;
while (Running)
@@ -407,7 +406,7 @@ namespace Robust.UnitTesting
{
case RunTicksMessage msg:
_gameTiming.InSimulation = true;
simFrameEvent.SetDeltaSeconds(msg.Delta);
var simFrameEvent = new FrameEventArgs(msg.Delta);
for (var i = 0; i < msg.Ticks && Running; i++)
{
_gameTiming.CurTick = new GameTick(_gameTiming.CurTick.Value + 1);

View File

@@ -7,6 +7,7 @@ using Robust.Shared.Interfaces.Log;
using Robust.Shared.Interfaces.Timers;
using Robust.Shared.IoC;
using Robust.Shared.Log;
using Robust.Shared.Timing;
using Timer = Robust.Shared.Timers.Timer;
namespace Robust.UnitTesting.Shared.Timers
@@ -38,10 +39,10 @@ namespace Robust.UnitTesting.Shared.Timers
Assert.That(fired, Is.False);
// Set timers ahead 250 ms
timerManager.UpdateTimers(0.25f);
timerManager.UpdateTimers(new FrameEventArgs(.25f));
Assert.That(fired, Is.False);
// Another 300ms should do it.
timerManager.UpdateTimers(0.30f);
timerManager.UpdateTimers(new FrameEventArgs(.30f));
Assert.That(fired, Is.True);
}
@@ -61,11 +62,11 @@ namespace Robust.UnitTesting.Shared.Timers
Assert.That(ran, Is.False);
// Set timers ahead 250 ms
timerManager.UpdateTimers(0.25f);
timerManager.UpdateTimers(new FrameEventArgs(.25f));
Assert.That(ran, Is.False);
// Another 300ms should do it.
timerManager.UpdateTimers(0.30f);
timerManager.UpdateTimers(new FrameEventArgs(.30f));
Assert.That(ran, Is.True);
}
@@ -79,13 +80,13 @@ namespace Robust.UnitTesting.Shared.Timers
var ran = false;
Timer.Spawn(1000, () => ran = true, cts.Token);
timerManager.UpdateTimers(0.5f);
timerManager.UpdateTimers(new FrameEventArgs(.5f));
Assert.That(ran, Is.False);
cts.Cancel();
timerManager.UpdateTimers(0.6f);
timerManager.UpdateTimers(new FrameEventArgs(.6f));
Assert.That(ran, Is.False);
}