From ab138a86e97814bdcacccadfb574d8319290033f Mon Sep 17 00:00:00 2001 From: theg33ka Date: Wed, 15 Jul 2026 20:20:23 +0700 Subject: [PATCH 01/13] massive ai features rework --- ...tationAiCustomizationBoundUserInterface.cs | 23 ++ .../StationAiCustomizationWindow.xaml | 14 + .../StationAiCustomizationWindow.xaml.cs | 68 ++++ .../StationAi/StationAiScreenSystem.cs | 60 ++++ Content.Server/Chat/Systems/ChatSystem.cs | 20 +- .../StationAi/StationAiCameraSystem.cs | 115 +++++++ .../StationAiPersonalityComponent.cs | 21 ++ .../StationAi/StationAiPersonalitySystem.cs | 311 ++++++++++++++++++ .../StationAi/StationAiCustomization.cs | 64 ++++ .../_Forge/station-ai/station-ai-camera.ftl | 1 + .../station-ai/station-ai-customization.ftl | 20 ++ .../_Forge/station-ai/station-ai-camera.ftl | 1 + .../station-ai/station-ai-customization.ftl | 20 ++ .../Entities/Mobs/Player/silicon.yml | 17 +- .../Entities/Objects/Tools/tools.yml | 1 + .../Wallmounts/surveillance_camera.yml | 8 +- .../Prototypes/_Forge/Actions/station_ai.yml | 14 + .../_Forge/Entities/Mobs/Player/silicon.yml | 3 + .../Prototypes/_Forge/RCD/station_ai.yml | 15 + .../_Forge/Silicons/station_ai_screens.yml | 29 ++ .../_Mono/Entities/Mobs/Player/silicon.yml | 3 + 21 files changed, 812 insertions(+), 16 deletions(-) create mode 100644 Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationBoundUserInterface.cs create mode 100644 Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationWindow.xaml create mode 100644 Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationWindow.xaml.cs create mode 100644 Content.Client/_Forge/Silicons/StationAi/StationAiScreenSystem.cs create mode 100644 Content.Server/_Forge/Silicons/StationAi/StationAiCameraSystem.cs create mode 100644 Content.Server/_Forge/Silicons/StationAi/StationAiPersonalityComponent.cs create mode 100644 Content.Server/_Forge/Silicons/StationAi/StationAiPersonalitySystem.cs create mode 100644 Content.Shared/_Forge/Silicons/StationAi/StationAiCustomization.cs create mode 100644 Resources/Locale/en-US/_Forge/station-ai/station-ai-camera.ftl create mode 100644 Resources/Locale/en-US/_Forge/station-ai/station-ai-customization.ftl create mode 100644 Resources/Locale/ru-RU/_Forge/station-ai/station-ai-camera.ftl create mode 100644 Resources/Locale/ru-RU/_Forge/station-ai/station-ai-customization.ftl create mode 100644 Resources/Prototypes/_Forge/Actions/station_ai.yml create mode 100644 Resources/Prototypes/_Forge/RCD/station_ai.yml create mode 100644 Resources/Prototypes/_Forge/Silicons/station_ai_screens.yml diff --git a/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationBoundUserInterface.cs b/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationBoundUserInterface.cs new file mode 100644 index 00000000000..e1ce2474aaa --- /dev/null +++ b/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationBoundUserInterface.cs @@ -0,0 +1,23 @@ +using Content.Shared._Forge.Silicons.StationAi; +using Robust.Client.UserInterface; + +namespace Content.Client._Forge.Silicons.StationAi; + +public sealed class StationAiCustomizationBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey) +{ + private StationAiCustomizationWindow? _window; + + protected override void Open() + { + base.Open(); + _window = this.CreateWindow(); + _window.OnApply += (name, screen) => SendMessage(new StationAiCustomizationApplyMessage(name, screen)); + } + + protected override void UpdateState(BoundUserInterfaceState state) + { + base.UpdateState(state); + if (state is StationAiCustomizationState customization) + _window?.UpdateState(customization); + } +} diff --git a/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationWindow.xaml b/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationWindow.xaml new file mode 100644 index 00000000000..497ae4b9e2b --- /dev/null +++ b/Content.Client/_Forge/Silicons/StationAi/StationAiCustomizationWindow.xaml @@ -0,0 +1,14 @@ + + +