From c5b487d65a624f8212b1443a41f7f9ad02df6538 Mon Sep 17 00:00:00 2001 From: YaraaraY <158123176+YaraaraY@users.noreply.github.com> Date: Sun, 2 Aug 2026 14:45:40 -0300 Subject: [PATCH] catering digiboard --- .../CateringDigiboardBoundUserInterface.cs | 37 ++ .../UI/CateringDigiboardMenu.xaml | 42 +++ .../UI/CateringDigiboardMenu.xaml.cs | 315 ++++++++++++++++++ .../CateringDigiboardSystem.cs | 216 ++++++++++++ .../CateringDigiboardUiKey.cs | 63 ++++ .../Components/CateringDigiboardComponent.cs | 81 +++++ .../catering/catering-digiboard.ftl | 32 ++ .../Objects/Devices/catering_digiboard.yml | 59 ++++ .../Objects/Devices/paper_catering_menu.yml | 23 ++ .../paper_heading_todays_menu.svg.96dpi.png | Bin 0 -> 4028 bytes .../catering_digiboard.rsi/equipped-BELT.png | Bin 0 -> 728 bytes .../Misc/catering_digiboard.rsi/icon.png | Bin 0 -> 975 bytes .../Misc/catering_digiboard.rsi/icon_over.png | Bin 0 -> 547 bytes .../catering_digiboard.rsi/inhand-left.png | Bin 0 -> 830 bytes .../catering_digiboard.rsi/inhand-right.png | Bin 0 -> 828 bytes .../Misc/catering_digiboard.rsi/meta.json | 43 +++ .../Misc/catering_digiboard.rsi/paper.png | Bin 0 -> 634 bytes .../Misc/catering_digiboard.rsi/pen.png | Bin 0 -> 547 bytes 18 files changed, 911 insertions(+) create mode 100644 Content.Client/_Funkystation/CateringDigiboard/CateringDigiboardBoundUserInterface.cs create mode 100644 Content.Client/_Funkystation/CateringDigiboard/UI/CateringDigiboardMenu.xaml create mode 100644 Content.Client/_Funkystation/CateringDigiboard/UI/CateringDigiboardMenu.xaml.cs create mode 100644 Content.Server/_Funkystation/CateringDigiboard/CateringDigiboardSystem.cs create mode 100644 Content.Shared/_Funkystation/CateringDigiboard/CateringDigiboardUiKey.cs create mode 100644 Content.Shared/_Funkystation/CateringDigiboard/Components/CateringDigiboardComponent.cs create mode 100644 Resources/Locale/en-US/_Funkystation/catering/catering-digiboard.ftl create mode 100644 Resources/Prototypes/_Funkystation/Entities/Objects/Devices/catering_digiboard.yml create mode 100644 Resources/Prototypes/_Funkystation/Entities/Objects/Devices/paper_catering_menu.yml create mode 100644 Resources/Textures/_Funkystation/Interface/Paper/paper_heading_todays_menu.svg.96dpi.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/equipped-BELT.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/icon.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/icon_over.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/inhand-left.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/inhand-right.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/meta.json create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/paper.png create mode 100644 Resources/Textures/_Funkystation/Objects/Misc/catering_digiboard.rsi/pen.png diff --git a/Content.Client/_Funkystation/CateringDigiboard/CateringDigiboardBoundUserInterface.cs b/Content.Client/_Funkystation/CateringDigiboard/CateringDigiboardBoundUserInterface.cs new file mode 100644 index 00000000000..6aa75741900 --- /dev/null +++ b/Content.Client/_Funkystation/CateringDigiboard/CateringDigiboardBoundUserInterface.cs @@ -0,0 +1,37 @@ +using Content.Client._Funkystation.CateringDigiboard.UI; +using Content.Shared._Funkystation.CateringDigiboard; +using JetBrains.Annotations; +using Robust.Client.UserInterface; + +namespace Content.Client._Funkystation.CateringDigiboard; + +[UsedImplicitly] +public sealed class CateringDigiboardBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) +{ + [ViewVariables] + private CateringDigiboardMenu? _menu; + + protected override void Open() + { + base.Open(); + + _menu = this.CreateWindow(); + _menu.OnAddItem += () => SendMessage(new CateringDigiboardAddItemMessage()); + _menu.OnAddCategory += () => SendMessage(new CateringDigiboardAddCategoryMessage()); + _menu.OnEditItem += (id, name, description, cost) => + SendMessage(new CateringDigiboardEditItemMessage(id, name, description, cost)); + _menu.OnRemoveItem += id => SendMessage(new CateringDigiboardRemoveItemMessage(id)); + _menu.OnReorderItem += (id, index) => SendMessage(new CateringDigiboardReorderMessage(id, index)); + _menu.OnPrint += count => SendMessage(new CateringDigiboardPrintMessage(count)); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + + if (state is not CateringDigiboardBoundUserInterfaceState msg) + return; + + _menu?.UpdateState(msg); + } +} diff --git a/Content.Client/_Funkystation/CateringDigiboard/UI/CateringDigiboardMenu.xaml b/Content.Client/_Funkystation/CateringDigiboard/UI/CateringDigiboardMenu.xaml new file mode 100644 index 00000000000..d849c2a163c --- /dev/null +++ b/Content.Client/_Funkystation/CateringDigiboard/UI/CateringDigiboardMenu.xaml @@ -0,0 +1,42 @@ + + + + + + + +