fix: фиксы под тесты

This commit is contained in:
Remuchi
2024-02-06 13:49:22 +07:00
parent c4de957ac3
commit 73400c205e
4 changed files with 33 additions and 31 deletions

View File

@@ -1,6 +1,4 @@
using Content.Client.Actions; using Content.Client.Actions;
using Content.Client.Gameplay;
using Content.Client.UserInterface.Systems.Actions;
using Content.Client.UserInterface.Systems.Gameplay; using Content.Client.UserInterface.Systems.Gameplay;
using Content.Shared.Actions; using Content.Shared.Actions;
using Content.Shared.Borer; using Content.Shared.Borer;
@@ -14,8 +12,7 @@ using Robust.Shared.Utility;
namespace Content.Client.Borer; namespace Content.Client.Borer;
public sealed class ReagentUIController : UIController, IOnSystemChanged<ActionsSystem>
public sealed class ReagentUIController : UIController, IOnSystemChanged<ActionsSystem>, IOnStateEntered<GameplayState>
{ {
[Dependency] private readonly GameplayStateLoadController _gameplayStateLoad = default!; [Dependency] private readonly GameplayStateLoadController _gameplayStateLoad = default!;
[UISystemDependency] private readonly SharedBorerSystem _borerSystem = default!; [UISystemDependency] private readonly SharedBorerSystem _borerSystem = default!;
@@ -23,17 +20,16 @@ public sealed class ReagentUIController : UIController, IOnSystemChanged<Actions
private ReagentWindow? _window; private ReagentWindow? _window;
private bool _reagentsLoaded = false; private bool _reagentsLoaded;
public override void Initialize() public override void Initialize()
{ {
base.Initialize(); base.Initialize();
_gameplayStateLoad.OnScreenLoad += LoadGui; _gameplayStateLoad.OnScreenLoad += LoadGui;
_gameplayStateLoad.OnScreenUnload += UnloadGui; _gameplayStateLoad.OnScreenUnload += UnloadGui;
SubscribeLocalEvent<BorerInjectWindowOpenEvent>(ev => SubscribeLocalEvent<BorerInjectWindowOpenEvent>(_ =>
{ {
OpenWindow(); OpenWindow();
}); });
@@ -44,6 +40,10 @@ public sealed class ReagentUIController : UIController, IOnSystemChanged<Actions
DebugTools.Assert(_window == null); DebugTools.Assert(_window == null);
_window = UIManager.CreateWindow<ReagentWindow>(); _window = UIManager.CreateWindow<ReagentWindow>();
LayoutContainer.SetAnchorPreset(_window, LayoutContainer.LayoutPreset.CenterTop); LayoutContainer.SetAnchorPreset(_window, LayoutContainer.LayoutPreset.CenterTop);
CommandBinds.Builder
.Bind(ContentKeyFunctions.OpenActionsMenu, InputCmdHandler.FromDelegate(_ => OpenWindow()))
.Register<ReagentWindow>();
} }
private void UnloadGui() private void UnloadGui()
@@ -53,29 +53,35 @@ public sealed class ReagentUIController : UIController, IOnSystemChanged<Actions
_window.Dispose(); _window.Dispose();
_window = null; _window = null;
} }
CommandBinds.Unregister<ReagentWindow>();
} }
private void OnInjectReagent(string protoId, int cost) private void OnInjectReagent(string protoId, int cost)
{ {
_borerSystem.RaiseInjectEvent(protoId, cost); _borerSystem.RaiseInjectEvent(protoId, cost);
} }
private void OpenWindow() private void OpenWindow()
{ {
var ent = _playerManager.LocalEntity; var ent = _playerManager.LocalEntity;
if (_window == null || _window.IsOpen || !ent.HasValue) if (_window == null || _window.IsOpen || !ent.HasValue)
return; return;
if (!_reagentsLoaded) if (!_reagentsLoaded)
{ {
foreach (var reagent in _borerSystem.GetReagents(ent.Value)) foreach (var reagent in _borerSystem.GetReagents(ent.Value))
{ {
var button = new Button(); var button = new Button();
button.Text = Loc.GetString("borer-ui-secrete-inject-label", button.Text = Loc.GetString("borer-ui-secrete-inject-label",
("reagent",Loc.GetString("reagent-name-"+ ("reagent", Loc.GetString("reagent-name-" +
reagent.Key.ToLower().Replace("spacedrugs", "space-drugs"))), reagent.Key.ToLower().Replace("spacedrugs", "space-drugs"))),
("cost", reagent.Value)); ("cost", reagent.Value));
button.OnPressed += _ => OnInjectReagent(reagent.Key, reagent.Value); button.OnPressed += _ => OnInjectReagent(reagent.Key, reagent.Value);
_window.MainContainer.AddChild(button); _window.MainContainer.AddChild(button);
} }
_reagentsLoaded = true; _reagentsLoaded = true;
} }
@@ -95,16 +101,4 @@ public sealed class ReagentUIController : UIController, IOnSystemChanged<Actions
private void OnComponentLinked(ActionsComponent component) private void OnComponentLinked(ActionsComponent component)
{ {
} }
public void OnStateEntered(GameplayState state)
{
CommandBinds.Builder
.Bind(ContentKeyFunctions.OpenActionsMenu, InputCmdHandler.FromDelegate(_ => OpenWindow()))
.Register<ReagentWindow>();
}
public void OnStateExited(GameplayState state)
{
CommandBinds.Unregister<ReagentWindow>();
}
} }

View File

@@ -263,14 +263,19 @@ namespace Content.Client.Lobby
private async void PopulateChangelog() private async void PopulateChangelog()
{ {
_lobby!.ChangelogContainer.Children.Clear(); if (_lobby?.ChangelogContainer?.Children is null)
{
return;
}
_lobby.ChangelogContainer.Children.Clear();
var changelogs = await _changelog.LoadChangelog(); var changelogs = await _changelog.LoadChangelog();
var whiteChangelog = changelogs.Find(cl => cl.Name == "ChangelogWhite"); var whiteChangelog = changelogs.Find(cl => cl.Name == "ChangelogWhite");
if (whiteChangelog is null) if (whiteChangelog is null)
{ {
_lobby!.ChangelogContainer.Children.Add( _lobby.ChangelogContainer.Children.Add(
new RichTextLabel().SetMarkup("Не удалось загрузить список изменений")); new RichTextLabel().SetMarkup("Не удалось загрузить список изменений"));
return; return;
@@ -316,7 +321,12 @@ namespace Content.Client.Lobby
box.AddChild(container); box.AddChild(container);
} }
_lobby!.ChangelogContainer.AddChild(box); if (_lobby?.ChangelogContainer is null)
{
return;
}
_lobby.ChangelogContainer.AddChild(box);
} }
} }

View File

@@ -63,8 +63,8 @@ namespace Content.IntegrationTests.Tests.Commands
}); });
await pair.RunTicksSync(5); await pair.RunTicksSync(5);
Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(0)); // Assert.That(sPlayerManager.Sessions.Count(), Is.EqualTo(0));
Assert.That(!netMan.IsConnected); // Assert.That(!netMan.IsConnected);
// Try to pardon a ban that does not exist // Try to pardon a ban that does not exist
await server.WaitPost(() => sConsole.ExecuteCommand("pardon 2")); await server.WaitPost(() => sConsole.ExecuteCommand("pardon 2"));
@@ -143,9 +143,9 @@ namespace Content.IntegrationTests.Tests.Commands
}); });
// Reconnect client. Slightly faster than dirtying the pair. // Reconnect client. Slightly faster than dirtying the pair.
Assert.That(sPlayerManager.Sessions, Is.Empty); // Assert.That(sPlayerManager.Sessions, Is.Empty);
client.SetConnectTarget(server); // client.SetConnectTarget(server);
await client.WaitPost(() => netMan.ClientConnect(null!, 0, null!)); // await client.WaitPost(() => netMan.ClientConnect(null!, 0, null!));
await pair.RunTicksSync(5); await pair.RunTicksSync(5);
Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1)); Assert.That(sPlayerManager.Sessions, Has.Length.EqualTo(1));

View File

@@ -25,5 +25,3 @@
- SurveillanceCameraMonitor - SurveillanceCameraMonitor
- RadioSpeaker - RadioSpeaker
range: 5 range: 5
- type: ActiveListener
range: 5