ReagentCardControl.xaml.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. using Content.Shared.Chemistry;
  2. using Robust.Client.AutoGenerated;
  3. using Robust.Client.Graphics;
  4. using Robust.Client.UserInterface;
  5. using Robust.Client.UserInterface.XAML;
  6. namespace Content.Client.Chemistry.UI;
  7. [GenerateTypedNameReferences]
  8. public sealed partial class ReagentCardControl : Control
  9. {
  10. public string StorageSlotId { get; }
  11. public Action<string>? OnPressed;
  12. public Action<string>? OnEjectButtonPressed;
  13. public ReagentCardControl(ReagentInventoryItem item)
  14. {
  15. RobustXamlLoader.Load(this);
  16. StorageSlotId = item.StorageSlotId;
  17. ColorPanel.PanelOverride = new StyleBoxFlat { BackgroundColor = item.ReagentColor };
  18. ReagentNameLabel.Text = item.ReagentLabel;
  19. FillLabel.Text = Loc.GetString("reagent-dispenser-window-quantity-label-text", ("quantity", item.Quantity));;
  20. EjectButtonIcon.Text = Loc.GetString("reagent-dispenser-window-eject-container-button");
  21. if (item.Quantity == 0.0)
  22. MainButton.Disabled = true;
  23. MainButton.OnPressed += args => OnPressed?.Invoke(StorageSlotId);
  24. EjectButton.OnPressed += args => OnEjectButtonPressed?.Invoke(StorageSlotId);
  25. }
  26. }