Files
space-station-14/Content.Client/Thief/ThiefBackpackMenu.xaml.cs
imatsoup 62fbac7a13 Change thief backpack ui name and description with Component fields (#41583)
* Add new name and description fields to the thiefbackpack component and ui

* Change fields to locids, remove Title from menu.xaml, add comments to  thiefbackpackui.cs
2025-11-27 16:28:18 +00:00

55 lines
1.6 KiB
C#

using Content.Client.UserInterface.Controls;
using Content.Shared.Thief;
using Robust.Client.AutoGenerated;
using Robust.Client.GameObjects;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Thief;
[GenerateTypedNameReferences]
public sealed partial class ThiefBackpackMenu : FancyWindow
{
[Dependency] private readonly IEntitySystemManager _sysMan = default!;
private readonly SpriteSystem _spriteSystem;
public event Action? OnApprove;
public event Action<int>? OnSetChange;
public ThiefBackpackMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_spriteSystem = _sysMan.GetEntitySystem<SpriteSystem>();
ApproveButton.OnPressed += args =>
{
OnApprove?.Invoke();
};
}
public void UpdateState(ThiefBackpackBoundUserInterfaceState state)
{
SetsGrid.RemoveAllChildren();
var selectedNumber = 0;
foreach (var (set, info) in state.Sets)
{
var child = new ThiefBackpackSet(info, _spriteSystem);
child.SetButton.OnButtonDown += (args) =>
{
OnSetChange?.Invoke(set);
};
SetsGrid.AddChild(child);
if (info.Selected)
selectedNumber++;
}
Title = Loc.GetString(state.ToolName);
Description.Text = Loc.GetString(state.ToolDesc, ("maxCount", state.MaxSelectedSets));
SelectedSets.Text = Loc.GetString("thief-backpack-window-selected", ("selectedCount", selectedNumber), ("maxCount", state.MaxSelectedSets));
ApproveButton.Disabled = selectedNumber != state.MaxSelectedSets;
}
}