SprayPainterBoundUserInterface.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using Content.Shared.SprayPainter;
  2. using Content.Shared.SprayPainter.Components;
  3. using Robust.Client.UserInterface;
  4. using Robust.Client.UserInterface.Controls;
  5. namespace Content.Client.SprayPainter.UI;
  6. public sealed class SprayPainterBoundUserInterface : BoundUserInterface
  7. {
  8. [ViewVariables]
  9. private SprayPainterWindow? _window;
  10. public SprayPainterBoundUserInterface(EntityUid owner, Enum uiKey) : base(owner, uiKey)
  11. {
  12. }
  13. protected override void Open()
  14. {
  15. base.Open();
  16. _window = this.CreateWindow<SprayPainterWindow>();
  17. _window.OnSpritePicked = OnSpritePicked;
  18. _window.OnColorPicked = OnColorPicked;
  19. if (EntMan.TryGetComponent(Owner, out SprayPainterComponent? comp))
  20. {
  21. _window.Populate(EntMan.System<SprayPainterSystem>().Entries, comp.Index, comp.PickedColor, comp.ColorPalette);
  22. }
  23. }
  24. private void OnSpritePicked(ItemList.ItemListSelectedEventArgs args)
  25. {
  26. SendMessage(new SprayPainterSpritePickedMessage(args.ItemIndex));
  27. }
  28. private void OnColorPicked(ItemList.ItemListSelectedEventArgs args)
  29. {
  30. var key = _window?.IndexToColorKey(args.ItemIndex);
  31. SendMessage(new SprayPainterColorPickedMessage(key));
  32. }
  33. }