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; /// /// Gameplay state when observing/spectating an entity during a replay. /// [Virtual] public class ReplaySpectateEntityState : GameplayState { [Dependency] private readonly ContentReplayPlaybackManager _replayManager = default!; protected override void Startup() { base.Startup(); var screen = UserInterfaceManager.ActiveScreen; if (screen == null) return; screen.ShowWidget(false); var replayWidget = screen.GetOrAddWidget(); SetAnchorAndMarginPreset(replayWidget, LayoutPreset.TopLeft, margin: 10); replayWidget.Visible = !_replayManager.IsScreenshotMode; foreach (var chatbox in UserInterfaceManager.GetUIController().Chats) { chatbox.ChatInput.Visible = _replayManager.IsScreenshotMode; } } protected override void Shutdown() { var screen = UserInterfaceManager.ActiveScreen; if (screen != null) { screen.RemoveWidget(); screen.ShowWidget(true); } foreach (var chatbox in UserInterfaceManager.GetUIController().Chats) { chatbox.ChatInput.Visible = true; } base.Shutdown(); } }