Reapply "Remove some BUI boilerplate" (#30214) (#30219)

* Reapply "Remove some BUI boilerplate" (#30214)

This reverts commit cb0ba66be3.

* Fix gas tank

* Fix PA

* Fix microwave

* Comms console underwrap

* Fix rcd

* log wehs
This commit is contained in:
metalgearsloth
2024-07-21 14:48:13 +10:00
committed by GitHub
parent 87e52e50b4
commit edb05e36bb
137 changed files with 1102 additions and 1757 deletions

View File

@@ -1,6 +1,7 @@
using Content.Shared.Thief;
using JetBrains.Annotations;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface;
namespace Content.Client.Thief;
@@ -15,21 +16,9 @@ public sealed class ThiefBackpackBoundUserInterface : BoundUserInterface
{
base.Open();
_window = new ThiefBackpackMenu(this);
_window.OnClose += Close;
_window.OpenCentered();
}
protected override void Dispose(bool disposing)
{
base.Dispose(disposing);
if (!disposing)
return;
if (_window != null)
_window.OnClose -= Close;
_window?.Dispose();
_window = this.CreateWindow<ThiefBackpackMenu>();
_window.OnApprove += SendApprove;
_window.OnSetChange += SendChangeSelected;
}
protected override void UpdateState(BoundUserInterfaceState state)

View File

@@ -12,46 +12,42 @@ public sealed partial class ThiefBackpackMenu : FancyWindow
[Dependency] private readonly IEntitySystemManager _sysMan = default!;
private readonly SpriteSystem _spriteSystem;
private readonly ThiefBackpackBoundUserInterface _owner;
public event Action? OnApprove;
public event Action<int>? OnSetChange;
public ThiefBackpackMenu(ThiefBackpackBoundUserInterface owner)
public ThiefBackpackMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_spriteSystem = _sysMan.GetEntitySystem<SpriteSystem>();
_owner = owner;
ApproveButton.OnButtonDown += (args) =>
ApproveButton.OnPressed += args =>
{
_owner.SendApprove();
OnApprove?.Invoke();
};
}
public void UpdateState(ThiefBackpackBoundUserInterfaceState state)
{
SetsGrid.RemoveAllChildren();
int count = 0;
int selectedNumber = 0;
foreach (var set in state.Sets)
SetsGrid.DisposeAllChildren();
var selectedNumber = 0;
foreach (var (set, info) in state.Sets)
{
var child = new ThiefBackpackSet(set.Value, _spriteSystem);
var child = new ThiefBackpackSet(info, _spriteSystem);
child.SetButton.OnButtonDown += (args) =>
{
_owner.SendChangeSelected(set.Key);
OnSetChange?.Invoke(set);
};
SetsGrid.AddChild(child);
count++;
if (set.Value.Selected)
if (info.Selected)
selectedNumber++;
}
Description.Text = Loc.GetString("thief-backpack-window-description", ("maxCount", state.MaxSelectedSets));
SelectedSets.Text = Loc.GetString("thief-backpack-window-selected", ("selectedCount", selectedNumber), ("maxCount", state.MaxSelectedSets));
ApproveButton.Disabled = selectedNumber == state.MaxSelectedSets ? false : true;
ApproveButton.Disabled = selectedNumber != state.MaxSelectedSets;
}
}