From 0f3edc0b3948c21e8c4dd76b450e8f3b2b73c996 Mon Sep 17 00:00:00 2001 From: deltanedas <39013340+deltanedas@users.noreply.github.com> Date: Tue, 4 Mar 2025 12:10:32 +0000 Subject: [PATCH] port better borgs from frontier (#3110) * BetterBorgs: droppable, swappable cyborg item interactions (#2766) * WIP: droppable, swappable, insertable cyborg items * Half-baked borg HandPlaceholderComponent * cyborg: sprite representation for empty slots * nullable prototype --------- Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com> * BorgSystem: check droppable items for duped mods (#2887) * BorgSystem: check droppable items for duped mods * Cache item comparer * BorgSystem: Unremoveable after equip (#2854) * raise interaction events to add fibers to things --------- Co-authored-by: Whatstone <166147148+whatston3@users.noreply.github.com> Co-authored-by: Dvir <39403717+dvir001@users.noreply.github.com> Co-authored-by: deltanedas <@deltanedas:kde.org> --- .../Systems/Hands/HandsUIController.cs | 15 +++ .../_NF/Hands/UI/HandPlaceholderStatus.cs | 13 ++ .../_NF/Hands/UI/HandPlaceholderStatus.xaml | 3 + .../HandPlaceholderVisualsComponent.cs | 10 ++ .../Systems/HandPlaceholderVisualsSystem.cs | 47 +++++++ .../Tests/Sprite/ItemSpriteTest.cs | 3 +- .../Silicons/Borgs/BorgSystem.Modules.cs | 110 +++++++++++++++- Content.Server/Silicons/Borgs/BorgSystem.cs | 1 + .../Components/NFBookBagComponent.cs | 7 + .../Components/NFLighterComponent.cs | 7 + .../Whitelist/Components/NFOreBagComponent.cs | 7 + .../Components/NFPlantBagComponent.cs | 7 + .../Whitelist/Components/NFShakerComponent.cs | 7 + .../Components/UnremoveableComponent.cs | 1 - .../Components/ItemBorgModuleComponent.cs | 27 +++- .../Components/HandPlaceholderComponent.cs | 22 ++++ .../HandPlaceholderRemoveableComponent.cs | 17 +++ .../Systems/SharedHandPlaceholderSystem.cs | 120 ++++++++++++++++++ .../Locale/en-US/_NF/hands/hands-system.ftl | 1 + .../Consumable/Drinks/drinks_special.yml | 1 + .../Objects/Specific/Hydroponics/tools.yml | 1 + .../Objects/Specific/Librarian/books_bag.yml | 1 + .../Specific/Robotics/borg_modules.yml | 81 ++++++++++-- .../Objects/Specific/Salvage/ore_bag.yml | 5 +- .../Entities/Objects/Tools/lighters.yml | 1 + .../Robotics/borg_hand_placeholder.yml | 10 ++ 26 files changed, 507 insertions(+), 18 deletions(-) create mode 100644 Content.Client/_NF/Hands/UI/HandPlaceholderStatus.cs create mode 100644 Content.Client/_NF/Hands/UI/HandPlaceholderStatus.xaml create mode 100644 Content.Client/_NF/Interaction/Components/HandPlaceholderVisualsComponent.cs create mode 100644 Content.Client/_NF/Interaction/Systems/HandPlaceholderVisualsSystem.cs create mode 100644 Content.Server/_NF/Whitelist/Components/NFBookBagComponent.cs create mode 100644 Content.Server/_NF/Whitelist/Components/NFLighterComponent.cs create mode 100644 Content.Server/_NF/Whitelist/Components/NFOreBagComponent.cs create mode 100644 Content.Server/_NF/Whitelist/Components/NFPlantBagComponent.cs create mode 100644 Content.Server/_NF/Whitelist/Components/NFShakerComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Components/HandPlaceholderComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Components/HandPlaceholderRemoveableComponent.cs create mode 100644 Content.Shared/_NF/Interaction/Systems/SharedHandPlaceholderSystem.cs create mode 100644 Resources/Locale/en-US/_NF/hands/hands-system.ftl create mode 100644 Resources/Prototypes/_NF/Entities/Objects/Specific/Robotics/borg_hand_placeholder.yml diff --git a/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs b/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs index edc0260061..67a30c61f8 100644 --- a/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs +++ b/Content.Client/UserInterface/Systems/Hands/HandsUIController.cs @@ -13,6 +13,7 @@ using Robust.Client.UserInterface.Controllers; using Robust.Shared.Input; using Robust.Shared.Timing; using Robust.Shared.Utility; +using Content.Shared._NF.Interaction.Components; namespace Content.Client.UserInterface.Systems.Hands; @@ -138,6 +139,13 @@ public sealed class HandsUIController : UIController, IOnStateEntered +