using Content.Client.Message; using Content.Client.UserInterface.Controls; using Content.Shared.Salvage.JobBoard; using Robust.Client.AutoGenerated; using Robust.Client.UserInterface.XAML; using Robust.Shared.Prototypes; namespace Content.Client.Salvage.UI; [GenerateTypedNameReferences] public sealed partial class SalvageJobBoardMenu : FancyWindow { [Dependency] private readonly IEntityManager _entityManager = default!; [Dependency] private readonly IPrototypeManager _prototypeManager = default!; public Action? OnLabelButtonPressed; public SalvageJobBoardMenu() { RobustXamlLoader.Load(this); IoCManager.InjectDependencies(this); } public void Update(SalvageJobBoardConsoleState state) { RankLabel.SetMarkup(Loc.GetString(state.Title)); RankProgressBar.Value = state.Progression; CurrentJobContainer.Children.Clear(); foreach (var job in state.AvailableJobs) { var entry = new JobEntry(_prototypeManager.Index(job), _entityManager); entry.OnLabelButtonPressed += () => OnLabelButtonPressed?.Invoke(job); CurrentJobContainer.AddChild(entry); } } }