Files
crystall-punk-14/Content.Client/Replay/UI/ReplaySpectateEntityState.cs

53 lines
1.6 KiB
C#
Raw Permalink Normal View History

2023-06-05 16:44:09 +12:00
using Content.Client.Gameplay;
using Content.Client.UserInterface.Systems.Chat;
using Content.Client.UserInterface.Systems.MenuBar.Widgets;
using Robust.Client.Replays.UI;
using static Robust.Client.UserInterface.Controls.LayoutContainer;
namespace Content.Client.Replay.UI;
/// <summary>
/// Gameplay state when observing/spectating an entity during a replay.
/// </summary>
[Virtual]
public class ReplaySpectateEntityState : GameplayState
{
[Dependency] private readonly ContentReplayPlaybackManager _replayManager = default!;
2023-06-05 16:44:09 +12:00
protected override void Startup()
{
base.Startup();
var screen = UserInterfaceManager.ActiveScreen;
if (screen == null)
return;
screen.ShowWidget<GameTopMenuBar>(false);
var replayWidget = screen.GetOrAddWidget<ReplayControlWidget>();
SetAnchorAndMarginPreset(replayWidget, LayoutPreset.TopLeft, margin: 10);
replayWidget.Visible = !_replayManager.IsScreenshotMode;
2023-06-05 16:44:09 +12:00
foreach (var chatbox in UserInterfaceManager.GetUIController<ChatUIController>().Chats)
{
chatbox.ChatInput.Visible = _replayManager.IsScreenshotMode;
2023-06-05 16:44:09 +12:00
}
}
protected override void Shutdown()
{
var screen = UserInterfaceManager.ActiveScreen;
if (screen != null)
{
screen.RemoveWidget<ReplayControlWidget>();
screen.ShowWidget<GameTopMenuBar>(true);
}
foreach (var chatbox in UserInterfaceManager.GetUIController<ChatUIController>().Chats)
{
chatbox.ChatInput.Visible = true;
}
base.Shutdown();
}
}