Files
RobustToolbox/Robust.Client/UserInterface/CustomControls/DebugTimePanel.cs
T
Pieter-Jan Briers afb0624a2b Fix DebugTimePanel to report prediction size correctly.
It was not taking into the account that CurTick increments after the mainloop runs tick meaning that it was offset by one.
2020-06-12 12:42:05 +02:00

66 lines
2.2 KiB
C#

using Robust.Client.Graphics.Drawing;
using Robust.Client.Interfaces.GameStates;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Interfaces.Timing;
using Robust.Shared.Maths;
using Robust.Shared.Timing;
namespace Robust.Client.UserInterface.CustomControls
{
public class DebugTimePanel : PanelContainer
{
private readonly IGameTiming _gameTiming;
private readonly IClientGameStateManager _gameState;
private Label _contents;
public DebugTimePanel(IGameTiming gameTiming, IClientGameStateManager gameState)
{
_gameTiming = gameTiming;
_gameState = gameState;
_contents = new Label
{
FontColorShadowOverride = Color.Black,
};
AddChild(_contents);
PanelOverride = new StyleBoxFlat
{
BackgroundColor = new Color(35, 134, 37, 138),
ContentMarginLeftOverride = 5,
ContentMarginTopOverride = 5
};
MouseFilter = _contents.MouseFilter = MouseFilterMode.Ignore;
SizeFlagsHorizontal = SizeFlags.None;
}
protected override void Update(FrameEventArgs args)
{
base.Update(args);
if (!VisibleInTree)
{
return;
}
// NOTE: CurTick gets incremented by the main loop AFTER Tick runs, not before.
// This means that CurTick reports the NEXT tick to be ran, NOT the last tick that was ran.
// This is why there's a -1 on Pred:.
_contents.Text = $@"Paused: {_gameTiming.Paused}, CurTick: {_gameTiming.CurTick}/{_gameTiming.CurTick-1}, CurServerTick: {_gameState.CurServerTick}, Pred: {_gameTiming.CurTick.Value - _gameState.CurServerTick.Value-1}
CurTime: {_gameTiming.CurTime:hh\:mm\:ss\.ff}, RealTime: {_gameTiming.RealTime:hh\:mm\:ss\.ff}, CurFrame: {_gameTiming.CurFrame}
TickTimingAdjustment: {_gameTiming.TickTimingAdjustment}";
MinimumSizeChanged();
}
protected override Vector2 CalculateMinimumSize()
{
return new Vector2(_contents.CombinedMinimumSize.X + 10, _contents.CombinedMinimumSize.Y + 10);
}
}
}