From e4dcdc0c6e48641dec59735d6e1af563ff669896 Mon Sep 17 00:00:00 2001 From: MishaUnity <81403616+MishaUnity@users.noreply.github.com> Date: Fri, 28 Jul 2023 22:59:03 +0300 Subject: [PATCH] convert News read tab to PDA Cartridge (#18368) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add Console, PDA news tab, and ringstone popup * Add English localization * Add mass-media console board to Advanced Entertainment resrarch * Fix misprint * Deleting unused libraries * Fix round restart problem * Fixing restart problem * Just another fix * Сode optimization * Code optimization * Convert News read tab to cartridge Convert the News read tab into a cartridge, and fix a couple of bugs * Just another fix * Some updates * More fixing!! Fix cooldown, add author label to read menu * Again, fix cooldown bug * Some minor changes * Revert "Some minor changes" This reverts commit 470c8d727629ac79994f70e56162adae8659e944. * Some minor updates --- .../CartridgeLoader/Cartridges/NewsReadUi.cs | 50 ++++++ .../Cartridges/NewsReadUiFragment.xaml | 54 ++++++ .../Cartridges/NewsReadUiFragment.xaml.cs | 60 +++++++ .../Cartridges/NotekeeperUiFragment.xaml | 2 +- .../Ui/NewsReadBoundUserInterface.cs | 58 ------ Content.Client/MassMedia/Ui/NewsReadMenu.xaml | 52 ------ .../MassMedia/Ui/NewsReadMenu.xaml.cs | 50 ------ .../Ui/NewsWriteBoundUserInterface.cs | 9 +- .../MassMedia/Ui/NewsWriteMenu.xaml.cs | 4 +- Content.Client/PDA/PdaBoundUserInterface.cs | 6 - Content.Client/PDA/PdaMenu.xaml | 4 - .../Cartridges/NewsReadCartridgeComponent.cs | 11 ++ .../NotekeeperCartridgeComponent.cs | 2 +- .../Cartridges/NotekeeperCartridgeSystem.cs | 2 +- .../MassMedia/Components/NewsReadComponent.cs | 9 - .../Components/NewsWriteComponent.cs | 9 + .../MassMedia/Systems/NewsSystem.cs | 166 +++++++++--------- Content.Server/PDA/PdaSystem.cs | 15 -- .../Cartridges/NewsReadUiMessageEvent.cs | 22 +++ .../Cartridges/NewsReadUiState.cs | 32 ++++ .../Cartridges/NotekeeperUiMessageEvent.cs | 2 +- .../Components/SharedNewsReadComponent.cs | 57 ------ .../Components/SharedNewsWriteComponent.cs | 4 +- Content.Shared/PDA/PdaMessagesUi.cs | 6 - Content.Shared/PDA/PdaUpdateState.cs | 13 +- .../en-US/cartridge-loader/cartridges.ftl | 1 + Resources/Locale/en-US/mass-media/news-ui.ftl | 5 +- .../Devices/Circuitboards/computer.yml | 2 +- .../Entities/Objects/Devices/cartridges.yml | 21 +++ .../Entities/Objects/Devices/pda.yml | 16 +- .../Misc/program_icons.rsi/meta.json | 14 ++ .../Misc/program_icons.rsi/news_read.png | Bin 0 -> 417 bytes 32 files changed, 395 insertions(+), 363 deletions(-) create mode 100644 Content.Client/CartridgeLoader/Cartridges/NewsReadUi.cs create mode 100644 Content.Client/CartridgeLoader/Cartridges/NewsReadUiFragment.xaml create mode 100644 Content.Client/CartridgeLoader/Cartridges/NewsReadUiFragment.xaml.cs delete mode 100644 Content.Client/MassMedia/Ui/NewsReadBoundUserInterface.cs delete mode 100644 Content.Client/MassMedia/Ui/NewsReadMenu.xaml delete mode 100644 Content.Client/MassMedia/Ui/NewsReadMenu.xaml.cs create mode 100644 Content.Server/CartridgeLoader/Cartridges/NewsReadCartridgeComponent.cs delete mode 100644 Content.Server/MassMedia/Components/NewsReadComponent.cs create mode 100644 Content.Shared/CartridgeLoader/Cartridges/NewsReadUiMessageEvent.cs create mode 100644 Content.Shared/CartridgeLoader/Cartridges/NewsReadUiState.cs delete mode 100644 Content.Shared/MassMedia/Components/SharedNewsReadComponent.cs create mode 100644 Resources/Textures/Interface/Misc/program_icons.rsi/meta.json create mode 100644 Resources/Textures/Interface/Misc/program_icons.rsi/news_read.png diff --git a/Content.Client/CartridgeLoader/Cartridges/NewsReadUi.cs b/Content.Client/CartridgeLoader/Cartridges/NewsReadUi.cs new file mode 100644 index 0000000000..ce240e53a0 --- /dev/null +++ b/Content.Client/CartridgeLoader/Cartridges/NewsReadUi.cs @@ -0,0 +1,50 @@ +using Content.Client.UserInterface.Fragments; +using Content.Shared.CartridgeLoader.Cartridges; +using Content.Shared.CartridgeLoader; +using Robust.Client.GameObjects; +using Robust.Client.UserInterface; + +namespace Content.Client.CartridgeLoader.Cartridges; + +public sealed class NewsReadUi : UIFragment +{ + private NewsReadUiFragment? _fragment; + + public override Control GetUIFragmentRoot() + { + return _fragment!; + } + + public override void Setup(BoundUserInterface userInterface, EntityUid? fragmentOwner) + { + _fragment = new NewsReadUiFragment(); + + _fragment.OnNextButtonPressed += () => + { + SendNewsReadMessage(NewsReadUiAction.Next, userInterface); + }; + _fragment.OnPrevButtonPressed += () => + { + SendNewsReadMessage(NewsReadUiAction.Prev, userInterface); + }; + _fragment.OnNotificationSwithPressed += () => + { + SendNewsReadMessage(NewsReadUiAction.NotificationSwith, userInterface); + }; + } + + public override void UpdateState(BoundUserInterfaceState state) + { + if (state is NewsReadBoundUserInterfaceState cast) + _fragment?.UpdateState(cast.Article, cast.TargetNum, cast.TotalNum, cast.NotificationOn); + else if (state is NewsReadEmptyBoundUserInterfaceState empty) + _fragment?.UpdateEmptyState(empty.NotificationOn); + } + + private void SendNewsReadMessage(NewsReadUiAction action, BoundUserInterface userInterface) + { + var newsMessage = new NewsReadUiMessageEvent(action); + var message = new CartridgeUiMessage(newsMessage); + userInterface.SendMessage(message); + } +} diff --git a/Content.Client/CartridgeLoader/Cartridges/NewsReadUiFragment.xaml b/Content.Client/CartridgeLoader/Cartridges/NewsReadUiFragment.xaml new file mode 100644 index 0000000000..7431713ea8 --- /dev/null +++ b/Content.Client/CartridgeLoader/Cartridges/NewsReadUiFragment.xaml @@ -0,0 +1,54 @@ + + + +