]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Remove hands component reference (#15197)
authorDrSmugleaf <DrSmugleaf@users.noreply.github.com>
Fri, 7 Apr 2023 18:21:12 +0000 (11:21 -0700)
committerGitHub <noreply@github.com>
Fri, 7 Apr 2023 18:21:12 +0000 (11:21 -0700)
73 files changed:
Content.Client/DoAfter/DoAfterSystem.cs
Content.Client/Hands/HandsComponent.cs [deleted file]
Content.Client/Hands/Systems/HandsSystem.cs
Content.Client/Inventory/ClientInventorySystem.cs
Content.Client/Inventory/StrippableBoundUserInterface.cs
Content.Client/UserInterface/Systems/Hands/HandsUIController.cs
Content.Client/UserInterface/Systems/Inventory/InventoryUIController.cs
Content.Client/Weapons/Melee/MeleeWeaponSystem.cs
Content.IntegrationTests/Tests/Buckle/BuckleTest.cs
Content.IntegrationTests/Tests/GameObjects/Components/ActionBlocking/HandCuffTest.cs
Content.IntegrationTests/Tests/Interaction/Click/InteractionSystemTests.cs
Content.Server/AME/AMESystem.cs
Content.Server/Administration/Commands/SetOutfitCommand.cs
Content.Server/Administration/Systems/AdminVerbSystem.Tools.cs
Content.Server/Botany/Systems/PlantHolderSystem.cs
Content.Server/Buckle/Systems/BuckleSystem.Buckle.cs
Content.Server/Chat/SuicideSystem.cs
Content.Server/Construction/Completions/EmptyAllContainers.cs
Content.Server/Construction/Completions/EmptyContainer.cs
Content.Server/Construction/ConstructionSystem.Initial.cs
Content.Server/Disease/DiseaseDiagnosisSystem.cs
Content.Server/Disposal/Tube/DisposalTubeSystem.cs
Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs
Content.Server/Emoting/Systems/BodyEmotesSystem.cs
Content.Server/GameTicking/Rules/TraitorDeathMatchRuleSystem.cs
Content.Server/Hands/Components/HandsComponent.cs [deleted file]
Content.Server/Hands/Systems/HandsSystem.cs
Content.Server/Nutrition/EntitySystems/FoodSystem.cs
Content.Server/Nutrition/EntitySystems/SliceableFoodSystem.cs
Content.Server/Power/EntitySystems/PowerReceiverSystem.cs
Content.Server/Sandbox/SandboxSystem.cs
Content.Server/Standing/StandingStateSystem.cs
Content.Server/Station/Systems/StationSpawningSystem.cs
Content.Server/Storage/EntitySystems/SecretStashSystem.cs
Content.Server/Storage/EntitySystems/StorageSystem.cs
Content.Server/Strip/StrippableSystem.cs
Content.Server/Tools/Innate/InnateToolSystem.cs
Content.Server/UserInterface/ActivatableUISystem.cs
Content.Server/Verbs/VerbSystem.cs
Content.Server/Weapons/Melee/MeleeWeaponSystem.cs
Content.Server/Wieldable/WieldableSystem.cs
Content.Server/Wires/WiresSystem.cs
Content.Server/Zombies/ZombifyOnDeathSystem.cs
Content.Shared/Access/Systems/SharedIdCardSystem.cs
Content.Shared/Blocking/BlockingSystem.cs
Content.Shared/Containers/ItemSlot/ItemSlotsSystem.cs
Content.Shared/Cuffs/SharedCuffableSystem.cs
Content.Shared/DoAfter/SharedDoAfterSystem.Update.cs
Content.Shared/DoAfter/SharedDoAfterSystem.cs
Content.Shared/Doors/Systems/SharedDoorSystem.cs
Content.Shared/Hands/Components/HandHelpers.cs
Content.Shared/Hands/Components/HandsComponent.cs [moved from Content.Shared/Hands/Components/SharedHandsComponent.cs with 78% similarity]
Content.Shared/Hands/EntitySystems/SharedHandsSystem.AI.cs
Content.Shared/Hands/EntitySystems/SharedHandsSystem.Drop.cs
Content.Shared/Hands/EntitySystems/SharedHandsSystem.Interactions.cs
Content.Shared/Hands/EntitySystems/SharedHandsSystem.Pickup.cs
Content.Shared/Hands/EntitySystems/SharedHandsSystem.cs
Content.Shared/Interaction/SharedInteractionSystem.cs
Content.Shared/Inventory/InventorySystem.Equip.cs
Content.Shared/Item/SharedMultiHandedItemSystem.cs
Content.Shared/Lock/LockSystem.cs
Content.Shared/Mech/EntitySystems/SharedMechSystem.cs
Content.Shared/Stacks/SharedStackSystem.cs
Content.Shared/Standing/StandingStateSystem.cs
Content.Shared/Storage/EntitySystems/SharedEntityStorageSystem.cs
Content.Shared/Strip/SharedStrippableSystem.cs
Content.Shared/Tabletop/SharedTabletopSystem.cs
Content.Shared/Throwing/ThrownItemSystem.cs
Content.Shared/Verbs/SharedVerbSystem.cs
Content.Shared/Verbs/VerbEvents.cs
Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.cs
Content.Shared/Weapons/Reflect/SharedReflectSystem.cs

index ecabaa20e87a5fb94e65dd0f8fcb95c52f0d4601..761747b8e99a3bae7a29e4452cf5466487e12596 100644 (file)
@@ -48,7 +48,7 @@ public sealed class DoAfterSystem : SharedDoAfterSystem
         var time = GameTiming.CurTime;
         var comp = Comp<DoAfterComponent>(playerEntity.Value);
         var xformQuery = GetEntityQuery<TransformComponent>();
-        var handsQuery = GetEntityQuery<SharedHandsComponent>();
+        var handsQuery = GetEntityQuery<HandsComponent>();
         Update(playerEntity.Value, active, comp, time, xformQuery, handsQuery);
     }
 }
diff --git a/Content.Client/Hands/HandsComponent.cs b/Content.Client/Hands/HandsComponent.cs
deleted file mode 100644 (file)
index aa38598..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-using Content.Client.Hands.Systems;
-using Content.Client.Hands.UI;
-using Content.Shared.Hands.Components;
-
-namespace Content.Client.Hands
-{
-    [RegisterComponent]
-    [ComponentReference(typeof(SharedHandsComponent))]
-    [Access(typeof(HandsSystem))]
-    public sealed class HandsComponent : SharedHandsComponent
-    {
-        /// <summary>
-        ///     Whether or not to add in-hand sprites for held items. Some entities (e.g., drones) don't want these.
-        /// </summary>
-        [DataField("showInHands")]
-        public bool ShowInHands = true;
-
-        /// <summary>
-        ///     Data about the current sprite layers that the hand is contributing to the owner entity. Used for sprite in-hands.
-        /// </summary>
-        public readonly Dictionary<HandLocation, HashSet<string>> RevealedLayers = new();
-    }
-}
index 08bf64843b13e490b904946de0156936d7f6e081..f42de01c8191ccdc82f65c459df4fe6391c667a4 100644 (file)
@@ -1,7 +1,8 @@
+using System.Diagnostics.CodeAnalysis;
 using Content.Client.Animations;
 using Content.Client.Examine;
 using Content.Client.Strip;
-using Content.Client.Verbs;
+using Content.Client.Verbs.UI;
 using Content.Shared.Hands;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
@@ -9,13 +10,11 @@ using Content.Shared.Item;
 using JetBrains.Annotations;
 using Robust.Client.GameObjects;
 using Robust.Client.Player;
+using Robust.Client.UserInterface;
 using Robust.Shared.Containers;
 using Robust.Shared.GameStates;
 using Robust.Shared.Map;
 using Robust.Shared.Timing;
-using System.Diagnostics.CodeAnalysis;
-using Content.Client.Verbs.UI;
-using Robust.Client.UserInterface;
 
 namespace Content.Client.Hands.Systems
 {
@@ -44,8 +43,8 @@ namespace Content.Client.Hands.Systems
         {
             base.Initialize();
 
-            SubscribeLocalEvent<SharedHandsComponent, EntRemovedFromContainerMessage>(HandleItemRemoved);
-            SubscribeLocalEvent<SharedHandsComponent, EntInsertedIntoContainerMessage>(HandleItemAdded);
+            SubscribeLocalEvent<HandsComponent, EntRemovedFromContainerMessage>(HandleItemRemoved);
+            SubscribeLocalEvent<HandsComponent, EntInsertedIntoContainerMessage>(HandleItemAdded);
 
             SubscribeLocalEvent<HandsComponent, PlayerAttachedEvent>(HandlePlayerAttached);
             SubscribeLocalEvent<HandsComponent, PlayerDetachedEvent>(HandlePlayerDetached);
@@ -142,7 +141,7 @@ namespace Content.Client.Hands.Systems
             OnPlayerHandsAdded?.Invoke(hands);
         }
 
-        public override void DoDrop(EntityUid uid, Hand hand, bool doDropInteraction = true, SharedHandsComponent? hands = null)
+        public override void DoDrop(EntityUid uid, Hand hand, bool doDropInteraction = true, HandsComponent? hands = null)
         {
             base.DoDrop(uid, hand, doDropInteraction, hands);
 
@@ -252,7 +251,7 @@ namespace Content.Client.Hands.Systems
 
         #region visuals
 
-        private void HandleItemAdded(EntityUid uid, SharedHandsComponent handComp, ContainerModifiedMessage args)
+        private void HandleItemAdded(EntityUid uid, HandsComponent handComp, ContainerModifiedMessage args)
         {
             if (!handComp.Hands.TryGetValue(args.Container.ID, out var hand))
                 return;
@@ -268,7 +267,7 @@ namespace Content.Client.Hands.Systems
                 OnPlayerHandBlocked?.Invoke(hand.Name);
         }
 
-        private void HandleItemRemoved(EntityUid uid, SharedHandsComponent handComp, ContainerModifiedMessage args)
+        private void HandleItemRemoved(EntityUid uid, HandsComponent handComp, ContainerModifiedMessage args)
         {
             if (!handComp.Hands.TryGetValue(args.Container.ID, out var hand))
                 return;
@@ -393,12 +392,12 @@ namespace Content.Client.Hands.Systems
         }
         #endregion
 
-        private void AddHand(EntityUid uid, Hand newHand, SharedHandsComponent? handsComp = null)
+        private void AddHand(EntityUid uid, Hand newHand, HandsComponent? handsComp = null)
         {
             AddHand(uid, newHand.Name, newHand.Location, handsComp);
         }
 
-        public override void AddHand(EntityUid uid, string handName, HandLocation handLocation, SharedHandsComponent? handsComp = null)
+        public override void AddHand(EntityUid uid, string handName, HandLocation handLocation, HandsComponent? handsComp = null)
         {
             base.AddHand(uid, handName, handLocation, handsComp);
 
@@ -411,7 +410,7 @@ namespace Content.Client.Hands.Systems
             if (handsComp.ActiveHand == null)
                 SetActiveHand(uid, handsComp.Hands[handName], handsComp);
         }
-        public override void RemoveHand(EntityUid uid, string handName, SharedHandsComponent? handsComp = null)
+        public override void RemoveHand(EntityUid uid, string handName, HandsComponent? handsComp = null)
         {
             if (uid == _playerManager.LocalPlayer?.ControlledEntity && handsComp != null &&
                 handsComp.Hands.ContainsKey(handName) && uid ==
@@ -423,7 +422,7 @@ namespace Content.Client.Hands.Systems
             base.RemoveHand(uid, handName, handsComp);
         }
 
-        private void OnHandActivated(SharedHandsComponent? handsComponent)
+        private void OnHandActivated(HandsComponent? handsComponent)
         {
             if (handsComponent == null)
                 return;
index 799f6cf83512e18d39671faa7d761d967429257c..37d3c6f42dd7e5f60437904fb93010850ad5ae6d 100644 (file)
@@ -2,7 +2,6 @@ using Content.Client.Clothing;
 using Content.Client.Examine;
 using Content.Client.Storage;
 using Content.Client.UserInterface.Controls;
-using Content.Client.Verbs;
 using Content.Client.Verbs.UI;
 using Content.Shared.Clothing.Components;
 using Content.Shared.Hands.Components;
@@ -234,7 +233,7 @@ namespace Content.Client.Inventory
 
         // TODO hud refactor This should also live in a UI Controller
         private void HoverInSlotButton(EntityUid uid, string slot, SlotControl control,
-            InventoryComponent? inventoryComponent = null, SharedHandsComponent? hands = null)
+            InventoryComponent? inventoryComponent = null, HandsComponent? hands = null)
         {
             if (!Resolve(uid, ref inventoryComponent))
                 return;
index ae6899ee0a7b2175ea014ea34fa00da64e48b34b..efca4b0a975ee21109ac7a0a427148b1f119b61b 100644 (file)
@@ -1,12 +1,9 @@
 using System.Linq;
-using Content.Client.Cuffs;
 using Content.Client.Examine;
-using Content.Client.Hands;
 using Content.Client.Strip;
 using Content.Client.Stylesheets;
 using Content.Client.UserInterface.Controls;
 using Content.Client.UserInterface.Systems.Hands.Controls;
-using Content.Client.Verbs;
 using Content.Client.Verbs.UI;
 using Content.Shared.Cuffs;
 using Content.Shared.Cuffs.Components;
@@ -16,7 +13,6 @@ using Content.Shared.IdentityManagement;
 using Content.Shared.Input;
 using Content.Shared.Inventory;
 using Content.Shared.Strip.Components;
-using Content.Shared.Verbs;
 using JetBrains.Annotations;
 using Robust.Client.GameObjects;
 using Robust.Client.UserInterface;
@@ -24,7 +20,6 @@ using Robust.Client.UserInterface.Controls;
 using Robust.Shared.Input;
 using Robust.Shared.Map;
 using Robust.Shared.Prototypes;
-using Robust.Shared.Utility;
 using static Content.Client.Inventory.ClientInventorySystem;
 using static Robust.Client.UserInterface.Control;
 
index 55a3aa9f5bdb985da00c96faae152f20f9b46078..1601f041899c315002bf1c339431d8a2b035abbc 100644 (file)
@@ -1,5 +1,4 @@
 using Content.Client.Gameplay;
-using Content.Client.Hands;
 using Content.Client.Hands.Systems;
 using Content.Client.UserInterface.Controls;
 using Content.Client.UserInterface.Systems.Hands.Controls;
@@ -8,6 +7,7 @@ using Content.Shared.Cooldown;
 using Content.Shared.Hands.Components;
 using Content.Shared.Input;
 using Robust.Client.GameObjects;
+using Robust.Client.Player;
 using Robust.Client.UserInterface;
 using Robust.Client.UserInterface.Controllers;
 using Robust.Shared.Input;
@@ -19,6 +19,7 @@ namespace Content.Client.UserInterface.Systems.Hands;
 public sealed class HandsUIController : UIController, IOnStateEntered<GameplayState>, IOnSystemChanged<HandsSystem>
 {
     [Dependency] private readonly IEntityManager _entities = default!;
+    [Dependency] private readonly IPlayerManager _player = default!;
 
     [UISystemDependency] private readonly HandsSystem _handsSystem = default!;
 
@@ -246,7 +247,8 @@ public sealed class HandsUIController : UIController, IOnStateEntered<GameplaySt
 
         if (HandsGui != null &&
             _playerHandsComponent != null &&
-            _playerHandsComponent.Hands.TryGetValue(handName, out var hand))
+            _player.LocalPlayer?.ControlledEntity is { } playerEntity &&
+            _handsSystem.TryGetHand(playerEntity, handName, out var hand, _playerHandsComponent))
         {
             HandsGui.UpdatePanelEntity(hand.HeldEntity);
         }
index 60c52ec3542d382edb90381934d3b0cc5589a0b3..8f4ace97d11998976830ff3e0bc29e33f46f8a49 100644 (file)
@@ -1,11 +1,11 @@
 using Content.Client.Gameplay;
-using Content.Client.Hands;
 using Content.Client.Hands.Systems;
 using Content.Client.Inventory;
 using Content.Client.Storage;
 using Content.Client.UserInterface.Controls;
 using Content.Client.UserInterface.Systems.Inventory.Controls;
 using Content.Client.UserInterface.Systems.Inventory.Windows;
+using Content.Shared.Hands.Components;
 using Content.Shared.Input;
 using Robust.Client.GameObjects;
 using Robust.Client.UserInterface;
index 05b487719119c9e229207311549c2107a4054c42..52e6386bbababf524a8475288a15f4d2e273b513 100644 (file)
@@ -1,19 +1,17 @@
 using Content.Client.CombatMode;
 using Content.Client.Gameplay;
-using Content.Client.Hands;
+using Content.Shared.Hands.Components;
 using Content.Shared.Mobs.Components;
+using Content.Shared.StatusEffect;
 using Content.Shared.Weapons.Melee;
 using Content.Shared.Weapons.Melee.Events;
-using Content.Shared.StatusEffect;
 using Robust.Client.GameObjects;
 using Robust.Client.Graphics;
 using Robust.Client.Input;
 using Robust.Client.Player;
-using Robust.Client.ResourceManagement;
 using Robust.Client.State;
 using Robust.Shared.Input;
 using Robust.Shared.Map;
-using Robust.Shared.Player;
 using Robust.Shared.Players;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Timing;
index 28d15580d190e884dd2bf624c8341d07a958d57c..848be3a448118fd710a6ed6fe15755c95b2068cc 100644 (file)
@@ -1,11 +1,11 @@
 using System.Threading.Tasks;
 using Content.Server.Body.Systems;
 using Content.Server.Buckle.Systems;
-using Content.Server.Hands.Components;
 using Content.Shared.ActionBlocker;
 using Content.Shared.Body.Components;
 using Content.Shared.Body.Part;
 using Content.Shared.Buckle.Components;
+using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.Standing;
 using NUnit.Framework;
index b1135e1f6202a9e47512c1ad7d9ec87993d1aa5a..df660c77619edd7a6e261fd81da94712d7c38fd3 100644 (file)
@@ -1,9 +1,9 @@
 #nullable enable
 using System.Threading.Tasks;
 using Content.Server.Cuffs;
-using Content.Server.Hands.Components;
 using Content.Shared.Body.Components;
 using Content.Shared.Cuffs.Components;
+using Content.Shared.Hands.Components;
 using NUnit.Framework;
 using Robust.Server.Console;
 using Robust.Shared.GameObjects;
index d6618105c1b5573320e26e274306b24b5441fca0..8bca0071aded192de1c269dbf45490f6f87f545f 100644 (file)
@@ -1,6 +1,5 @@
 #nullable enable annotations
 using System.Threading.Tasks;
-using Content.Server.Hands.Components;
 using Content.Server.Interaction;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
index f2853863a1954aa3431e841b2bbfa60e4101e375..3bc9956d60df117f6a9de6a057e734c7c39ef676 100644 (file)
@@ -1,17 +1,17 @@
 using System.Linq;
 using Content.Server.Administration.Logs;
 using Content.Server.AME.Components;
-using Content.Server.Power.Components;
-using Content.Server.Hands.Components;
 using Content.Server.Popups;
+using Content.Server.Power.Components;
 using Content.Server.Tools;
 using Content.Shared.Database;
+using Content.Shared.Hands.Components;
 using Content.Shared.Interaction;
 using Content.Shared.Popups;
+using JetBrains.Annotations;
+using Robust.Shared.Audio;
 using Robust.Shared.Map;
 using Robust.Shared.Player;
-using Robust.Shared.Audio;
-using JetBrains.Annotations;
 
 namespace Content.Server.AME
 {
index b27cb7fb99de4d41c5b9a47731ac799e452339bb..d5dd99605fd44110121707ddc2218f7a2631fc63 100644 (file)
@@ -1,9 +1,9 @@
 using Content.Server.Administration.UI;
 using Content.Server.EUI;
-using Content.Server.Hands.Components;
 using Content.Server.Hands.Systems;
 using Content.Server.Preferences.Managers;
 using Content.Shared.Administration;
+using Content.Shared.Hands.Components;
 using Content.Shared.Inventory;
 using Content.Shared.PDA;
 using Content.Shared.Preferences;
@@ -12,7 +12,6 @@ using Robust.Server.GameObjects;
 using Robust.Server.Player;
 using Robust.Shared.Console;
 using Robust.Shared.Prototypes;
-using InventoryComponent = Content.Shared.Inventory.InventoryComponent;
 
 namespace Content.Server.Administration.Commands
 {
index e0774fb16fcb770c21017e7012af52ac7f6c4a18..1d8305787fc2ff85e322153ab7872051d7460a9e 100644 (file)
@@ -5,11 +5,8 @@ using Content.Server.Administration.Components;
 using Content.Server.Atmos;
 using Content.Server.Atmos.Components;
 using Content.Server.Cargo.Components;
-using Content.Server.Cargo.Systems;
 using Content.Server.Damage.Components;
-using Content.Server.Doors.Components;
 using Content.Server.Doors.Systems;
-using Content.Server.Hands.Components;
 using Content.Server.Hands.Systems;
 using Content.Server.Power.Components;
 using Content.Server.Stack;
@@ -21,10 +18,10 @@ using Content.Shared.Access.Systems;
 using Content.Shared.Administration;
 using Content.Shared.Atmos;
 using Content.Shared.Construction.Components;
-using Content.Shared.Containers.ItemSlots;
 using Content.Shared.Damage;
 using Content.Shared.Database;
 using Content.Shared.Doors.Components;
+using Content.Shared.Hands.Components;
 using Content.Shared.Inventory;
 using Content.Shared.PDA;
 using Content.Shared.Stacks;
@@ -36,7 +33,6 @@ using Robust.Shared.Map;
 using Robust.Shared.Map.Components;
 using Robust.Shared.Physics;
 using Robust.Shared.Physics.Components;
-using Robust.Shared.Prototypes;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Administration.Systems;
index da634bba8a4bb0d76c3fd39e36916da7c4eb8ec4..29c2d964d3f99a3b8d08068b3f7867b81841b3cd 100644 (file)
@@ -1,29 +1,29 @@
 using Content.Server.Atmos;
 using Content.Server.Atmos.EntitySystems;
 using Content.Server.Botany.Components;
-using Content.Server.Popups;
 using Content.Server.Chemistry.EntitySystems;
+using Content.Server.Coordinates.Helpers;
 using Content.Server.Fluids.Components;
 using Content.Server.Ghost.Roles.Components;
-using Content.Server.Hands.Components;
 using Content.Server.Kitchen.Components;
-using Content.Shared.Interaction;
-using Content.Shared.Examine;
-using Content.Shared.Tag;
-using Content.Shared.FixedPoint;
+using Content.Server.Popups;
 using Content.Shared.Botany;
 using Content.Shared.Chemistry.Components;
 using Content.Shared.Chemistry.Reagent;
+using Content.Shared.Examine;
+using Content.Shared.FixedPoint;
+using Content.Shared.Hands.Components;
 using Content.Shared.IdentityManagement;
+using Content.Shared.Interaction;
 using Content.Shared.Popups;
 using Content.Shared.Random.Helpers;
+using Content.Shared.Tag;
 using Robust.Server.GameObjects;
-using Robust.Shared.Player;
-using Robust.Shared.Timing;
 using Robust.Shared.Audio;
+using Robust.Shared.Player;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
-using Content.Server.Coordinates.Helpers;
+using Robust.Shared.Timing;
 
 namespace Content.Server.Botany.Systems
 {
index 798c83e362ab01c247aa277d0c2d878d4e60f7e8..28002c0ffaffb56cc8160b4429ea52d1aad45e60 100644 (file)
@@ -189,7 +189,7 @@ public sealed partial class BuckleSystem
             }
         }
 
-        if (!HasComp<SharedHandsComponent>(user))
+        if (!HasComp<HandsComponent>(user))
         {
             _popups.PopupEntity(Loc.GetString("buckle-component-no-hands-message"), user, user);
             return false;
index 5d2df81584b93042b8ef8cf448438b24e3e829d1..e5f3d3b5c351117304e93b34bfb5e49cc4e2318b 100644 (file)
@@ -1,9 +1,9 @@
 using Content.Server.Administration.Logs;
-using Content.Server.Hands.Components;
 using Content.Server.Popups;
 using Content.Shared.Damage;
 using Content.Shared.Damage.Prototypes;
 using Content.Shared.Database;
+using Content.Shared.Hands.Components;
 using Content.Shared.Interaction.Events;
 using Content.Shared.Item;
 using Content.Shared.Mobs.Components;
index 8d3b4f90ecaf6bad48ccb6e9aabb587d0017f8c5..ab71c8beddb0d6f30c92c89ae9ea498d6c3866a2 100644 (file)
@@ -1,6 +1,6 @@
-using Content.Server.Hands.Components;
 using Content.Server.Hands.Systems;
 using Content.Shared.Construction;
+using Content.Shared.Hands.Components;
 using JetBrains.Annotations;
 using Robust.Server.Containers;
 using Robust.Shared.Containers;
index 2a319a7fa81c192b91b01ade4b09e91538efac3e..063ed883c805ba8e502422425de8ee1878f5d628 100644 (file)
@@ -1,6 +1,6 @@
-using Content.Server.Hands.Components;
 using Content.Server.Hands.Systems;
 using Content.Shared.Construction;
+using Content.Shared.Hands.Components;
 using JetBrains.Annotations;
 using Robust.Server.Containers;
 using Robust.Shared.Containers;
index c9e2f147fa8a2b25cff8f27b458ad5f65bf13ef1..c5481edfcf4e943cc01698d92fe57e0f9c7d7f0e 100644 (file)
@@ -2,8 +2,6 @@ using System.IO;
 using System.Linq;
 using System.Threading.Tasks;
 using Content.Server.Construction.Components;
-using Content.Server.DoAfter;
-using Content.Server.Hands.Components;
 using Content.Server.Storage.Components;
 using Content.Shared.ActionBlocker;
 using Content.Shared.Construction;
@@ -12,11 +10,11 @@ using Content.Shared.Construction.Steps;
 using Content.Shared.Coordinates;
 using Content.Shared.Database;
 using Content.Shared.DoAfter;
+using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.Interaction;
 using Content.Shared.Inventory;
 using Robust.Shared.Containers;
-using Robust.Shared.Player;
 using Robust.Shared.Players;
 using Robust.Shared.Timing;
 
index 37136435a46f2a71478f4f7ecf6ee31a102dbc0e..b671b097b347ed087a248b82240d8dd76118c92e 100644 (file)
@@ -1,23 +1,23 @@
 using Content.Server.Disease.Components;
-using Content.Shared.Disease;
-using Content.Shared.Interaction;
-using Content.Shared.Inventory;
-using Content.Shared.Examine;
-using Content.Server.Popups;
-using Content.Server.Hands.Components;
 using Content.Server.Nutrition.EntitySystems;
 using Content.Server.Paper;
+using Content.Server.Popups;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
-using Robust.Shared.Random;
-using Robust.Shared.Player;
-using Robust.Shared.Audio;
-using Robust.Shared.Utility;
-using Content.Shared.Tools.Components;
 using Content.Server.Station.Systems;
+using Content.Shared.Disease;
 using Content.Shared.DoAfter;
+using Content.Shared.Examine;
+using Content.Shared.Hands.Components;
 using Content.Shared.IdentityManagement;
+using Content.Shared.Interaction;
+using Content.Shared.Inventory;
 using Content.Shared.Swab;
+using Content.Shared.Tools.Components;
+using Robust.Shared.Audio;
+using Robust.Shared.Player;
+using Robust.Shared.Random;
+using Robust.Shared.Utility;
 
 namespace Content.Server.Disease
 {
index 52200e49e3cc2696b0df3687499fe367cab0e3f9..aea901ee1fc1a8f42ef7485c4891ef97d522ea5b 100644 (file)
@@ -2,11 +2,11 @@ using System.Linq;
 using System.Text;
 using Content.Server.Construction.Completions;
 using Content.Server.Disposal.Tube.Components;
-using Content.Server.Hands.Components;
 using Content.Server.Popups;
 using Content.Server.UserInterface;
 using Content.Shared.Destructible;
 using Content.Shared.Disposal.Components;
+using Content.Shared.Hands.Components;
 using Content.Shared.Movement.Events;
 using Content.Shared.Popups;
 using Robust.Shared.Audio;
index e64f40a48831e06df8d089ce207ddd229f2e3074..99c57378c1f2f15839ffbc95af9f8cf1fbe9433d 100644 (file)
@@ -4,7 +4,6 @@ using Content.Server.Administration.Logs;
 using Content.Server.Atmos.EntitySystems;
 using Content.Server.Disposal.Tube.Components;
 using Content.Server.Disposal.Unit.Components;
-using Content.Server.Hands.Components;
 using Content.Server.Popups;
 using Content.Server.Power.Components;
 using Content.Server.Power.EntitySystems;
@@ -27,9 +26,9 @@ using Content.Shared.Throwing;
 using Content.Shared.Verbs;
 using Robust.Server.GameObjects;
 using Robust.Shared.Containers;
+using Robust.Shared.Map.Components;
 using Robust.Shared.Physics.Components;
 using Robust.Shared.Random;
-using Robust.Shared.Map.Components;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Disposal.Unit.EntitySystems
@@ -469,7 +468,7 @@ namespace Content.Server.Disposal.Unit.EntitySystems
             if (!Resolve(unitId, ref unit))
                 return false;
 
-            if (userId.HasValue && !HasComp<SharedHandsComponent>(userId) && toInsertId != userId) // Mobs like mouse can Jump inside even with no hands
+            if (userId.HasValue && !HasComp<HandsComponent>(userId) && toInsertId != userId) // Mobs like mouse can Jump inside even with no hands
             {
                 _popupSystem.PopupEntity(Loc.GetString("disposal-unit-no-hands"), userId.Value, userId.Value, PopupType.SmallCaution);
                 return false;
index f2c44b94fa202bda461723d612329b99858ee5b1..594eb0ec6d396e0559848ae6d3697092e56f696a 100644 (file)
@@ -1,7 +1,7 @@
 using Content.Server.Chat.Systems;
 using Content.Server.Emoting.Components;
-using Content.Server.Hands.Components;
 using Content.Shared.Chat.Prototypes;
+using Content.Shared.Hands.Components;
 using Robust.Shared.Prototypes;
 
 namespace Content.Server.Emoting.Systems;
index f1bb0c1ee74dfbf0dcf7191cbb7fb920af8d4679..a634bb34c64f71149e471de30d5a4a378acfb5c6 100644 (file)
@@ -1,8 +1,6 @@
 using System.Linq;
 using Content.Server.Atmos.EntitySystems;
 using Content.Server.Chat.Managers;
-using Content.Server.GameTicking.Rules.Configurations;
-using Content.Server.Hands.Components;
 using Content.Server.PDA;
 using Content.Server.Players;
 using Content.Server.Spawners.Components;
@@ -13,7 +11,7 @@ using Content.Server.TraitorDeathMatch.Components;
 using Content.Shared.CCVar;
 using Content.Shared.Damage;
 using Content.Shared.Damage.Prototypes;
-using Content.Shared.FixedPoint;
+using Content.Shared.Hands.Components;
 using Content.Shared.Inventory;
 using Content.Shared.Mobs.Components;
 using Content.Shared.Mobs.Systems;
diff --git a/Content.Server/Hands/Components/HandsComponent.cs b/Content.Server/Hands/Components/HandsComponent.cs
deleted file mode 100644 (file)
index 4e06a6b..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-using Content.Shared.Hands.Components;
-
-namespace Content.Server.Hands.Components;
-
-[RegisterComponent]
-[ComponentReference(typeof(SharedHandsComponent))]
-public sealed class HandsComponent : SharedHandsComponent
-{
-}
index 3848b00dfd08310d47fa6d3d9f75b22f74f3b91b..92b91ab75fd448cbcd27c619130e791c404f9777 100644 (file)
@@ -1,4 +1,3 @@
-using Content.Server.Hands.Components;
 using Content.Server.Popups;
 using Content.Server.Pulling;
 using Content.Server.Stack;
@@ -110,7 +109,7 @@ namespace Content.Server.Hands.Systems
             RaiseNetworkEvent(new PickupAnimationEvent(item, initialPosition, finalPosition), filter);
         }
 
-        private void HandleEntityRemoved(EntityUid uid, SharedHandsComponent component, EntRemovedFromContainerMessage args)
+        private void HandleEntityRemoved(EntityUid uid, HandsComponent component, EntRemovedFromContainerMessage args)
         {
             if (!Deleted(args.Entity) && TryComp(args.Entity, out HandVirtualItemComponent? @virtual))
                 _virtualSystem.Delete(@virtual, uid);
@@ -186,7 +185,7 @@ namespace Content.Server.Hands.Systems
             if (playerSession.AttachedEntity is not {Valid: true} player ||
                 !Exists(player) ||
                 player.IsInContainer() ||
-                !TryComp(player, out SharedHandsComponent? hands) ||
+                !TryComp(player, out HandsComponent? hands) ||
                 hands.ActiveHandEntity is not EntityUid throwEnt ||
                 !_actionBlockerSystem.CanThrow(player, throwEnt))
                 return false;
@@ -248,7 +247,7 @@ namespace Content.Server.Hands.Systems
             if (!_actionBlockerSystem.CanInteract(plyEnt, null))
                 return;
 
-            if (!TryComp<SharedHandsComponent>(plyEnt, out var hands) ||  hands.ActiveHand == null)
+            if (!TryComp<HandsComponent>(plyEnt, out var hands) ||  hands.ActiveHand == null)
                 return;
 
             if (!_inventorySystem.TryGetSlotEntity(plyEnt, equipmentSlot, out var slotEntity) ||
index d0e89ea9f0e2fd6fc7ca2774db6038d0b69ec134..5383384b4aebe1ff670d0d4db7eab2cc4b50ac52 100644 (file)
@@ -1,7 +1,6 @@
 using Content.Server.Body.Components;
 using Content.Server.Body.Systems;
 using Content.Server.Chemistry.EntitySystems;
-using Content.Server.Hands.Components;
 using Content.Server.Nutrition.Components;
 using Content.Server.Popups;
 using Content.Shared.Administration.Logs;
@@ -11,6 +10,7 @@ using Content.Shared.Chemistry.Reagent;
 using Content.Shared.Database;
 using Content.Shared.DoAfter;
 using Content.Shared.FixedPoint;
+using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.IdentityManagement;
 using Content.Shared.Interaction;
index ef2e84ca6aecb054cfea731387cae055822b66b6..2e7b037d335c190cc5f248c9fd31345e36c2cd36 100644 (file)
@@ -1,6 +1,5 @@
 using Content.Server.Chemistry.Components.SolutionManager;
 using Content.Server.Chemistry.EntitySystems;
-using Content.Server.Hands.Components;
 using Content.Server.Nutrition.Components;
 using Content.Shared.Chemistry.Components;
 using Content.Shared.Examine;
index aa223fb674d68d17221861195a8500cc0b0e75de..9accaed63e3819b475f8089260a3e237777f55f9 100644 (file)
@@ -1,14 +1,14 @@
-using Content.Server.Power.Components;
-using Content.Server.Hands.Components;
 using Content.Server.Administration.Logs;
+using Content.Server.Administration.Managers;
+using Content.Server.Power.Components;
+using Content.Shared.Administration;
+using Content.Shared.Database;
 using Content.Shared.Examine;
+using Content.Shared.Hands.Components;
 using Content.Shared.Power;
 using Content.Shared.Verbs;
-using Content.Shared.Database;
 using Robust.Server.GameObjects;
 using Robust.Shared.Audio;
-using Content.Server.Administration.Managers;
-using Content.Shared.Administration;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Power.EntitySystems
index 7f7f3eac0ff00af05180759f7862430f8783d8bb..23da6f4ef70c9f571fa7618ec36756056284e86e 100644 (file)
@@ -1,16 +1,15 @@
 using System.Linq;
 using Content.Server.GameTicking;
-using Content.Server.Hands.Components;
 using Content.Shared.Access;
 using Content.Shared.Access.Components;
 using Content.Shared.Access.Systems;
 using Content.Shared.Containers.ItemSlots;
+using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.Inventory;
 using Content.Shared.PDA;
 using Content.Shared.Sandbox;
 using Robust.Server.Console;
-using Robust.Server.GameObjects;
 using Robust.Server.Placement;
 using Robust.Server.Player;
 using Robust.Shared.Enums;
index d4a68cb26e0907aa4a29472a8c35fa739e443a24..775df13d36505413bd92a2c5ef3216c27a099b1c 100644 (file)
@@ -21,7 +21,7 @@ public sealed class StandingStateSystem : EntitySystem
         var fellEvent = new FellDownEvent(uid);
         RaiseLocalEvent(uid, fellEvent, false);
 
-        if (!TryComp(uid, out SharedHandsComponent? handsComp))
+        if (!TryComp(uid, out HandsComponent? handsComp))
             return;
 
         var worldRotation = EntityManager.GetComponent<TransformComponent>(uid).WorldRotation.ToVec();
index 641c801d50736dff28c823b8ed2b57c3e0614fd5..d8fece6575be777830cc3332a83987ba0331c885 100644 (file)
@@ -1,15 +1,15 @@
 using Content.Server.Access.Systems;
 using Content.Server.DetailExaminable;
-using Content.Server.Hands.Components;
 using Content.Server.Hands.Systems;
 using Content.Server.Humanoid;
 using Content.Server.IdentityManagement;
+using Content.Server.Mind.Commands;
 using Content.Server.PDA;
 using Content.Server.Roles;
 using Content.Server.Station.Components;
-using Content.Server.Mind.Commands;
 using Content.Shared.Access.Systems;
 using Content.Shared.CCVar;
+using Content.Shared.Hands.Components;
 using Content.Shared.Humanoid;
 using Content.Shared.Humanoid.Prototypes;
 using Content.Shared.Inventory;
@@ -25,7 +25,6 @@ using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
 using Robust.Shared.Utility;
 
-
 namespace Content.Server.Station.Systems;
 
 /// <summary>
index 2237527c35267b94f9f8f7246abc659ff0857f28..dee1d0ffb32ee772559d901a1d4ab5813c9db8d5 100644 (file)
@@ -47,7 +47,7 @@ namespace Content.Server.Storage.EntitySystems
         /// <returns>True if item was hidden inside stash</returns>
         public bool TryHideItem(EntityUid uid, EntityUid userUid, EntityUid itemToHideUid,
             SecretStashComponent? component = null, ItemComponent? item = null,
-            MetaDataComponent? itemMeta = null, SharedHandsComponent? hands = null)
+            MetaDataComponent? itemMeta = null, HandsComponent? hands = null)
         {
             if (!Resolve(uid, ref component))
                 return false;
@@ -94,7 +94,7 @@ namespace Content.Server.Storage.EntitySystems
         /// </summary>
         /// <returns>True if user received item</returns>
         public bool TryGetItem(EntityUid uid, EntityUid userUid, SecretStashComponent? component = null,
-            SharedHandsComponent? hands = null)
+            HandsComponent? hands = null)
         {
             if (!Resolve(uid, ref component))
                 return false;
index b09e436dc19185767858d035c964100df08348b3..5373c46e4948b9a170ba50a14a7eb8727c9f1ab9 100644 (file)
@@ -1,39 +1,39 @@
 using System.Linq;
-using Content.Server.Hands.Components;
+using Content.Server.Administration.Managers;
+using Content.Server.Ghost.Components;
+using Content.Server.Interaction;
+using Content.Server.Popups;
 using Content.Server.Storage.Components;
+using Content.Shared.ActionBlocker;
+using Content.Shared.Administration;
+using Content.Shared.CombatMode;
+using Content.Shared.Containers.ItemSlots;
+using Content.Shared.Destructible;
+using Content.Shared.DoAfter;
+using Content.Shared.Hands.Components;
+using Content.Shared.Hands.EntitySystems;
+using Content.Shared.Implants.Components;
 using Content.Shared.Interaction;
+using Content.Shared.Item;
+using Content.Shared.Lock;
+using Content.Shared.Placeable;
+using Content.Shared.Stacks;
 using Content.Shared.Storage;
+using Content.Shared.Storage.Components;
 using Content.Shared.Timing;
 using Content.Shared.Verbs;
 using JetBrains.Annotations;
+using Robust.Server.Containers;
 using Robust.Server.GameObjects;
 using Robust.Server.Player;
+using Robust.Shared.Audio;
 using Robust.Shared.Containers;
+using Robust.Shared.Map;
+using Robust.Shared.Player;
 using Robust.Shared.Random;
 using Robust.Shared.Timing;
 using Robust.Shared.Utility;
-using Content.Server.Interaction;
-using Content.Shared.Hands.EntitySystems;
-using Content.Shared.Item;
-using Content.Shared.Placeable;
-using Content.Shared.Stacks;
-using Content.Shared.Storage.Components;
-using Robust.Shared.Audio;
-using Robust.Shared.Map;
-using Robust.Shared.Player;
-using Robust.Server.Containers;
-using Content.Server.Popups;
-using Content.Shared.Destructible;
 using static Content.Shared.Storage.SharedStorageComponent;
-using Content.Shared.ActionBlocker;
-using Content.Shared.CombatMode;
-using Content.Shared.Containers.ItemSlots;
-using Content.Shared.DoAfter;
-using Content.Shared.Implants.Components;
-using Content.Shared.Lock;
-using Content.Server.Ghost.Components;
-using Content.Server.Administration.Managers;
-using Content.Shared.Administration;
 
 namespace Content.Server.Storage.EntitySystems
 {
index b0c9322ba7ba7004abfa82c85f27b3283891c1a3..86271b0b0c0af321a48a6e72964dcc6569fb862e 100644 (file)
@@ -1,24 +1,23 @@
 using System.Linq;
+using Content.Server.Administration.Logs;
 using Content.Server.Ensnaring;
-using Content.Server.Hands.Components;
 using Content.Shared.CombatMode;
+using Content.Shared.Cuffs;
+using Content.Shared.Cuffs.Components;
+using Content.Shared.Database;
+using Content.Shared.DoAfter;
+using Content.Shared.Ensnaring.Components;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.IdentityManagement;
+using Content.Shared.Interaction;
 using Content.Shared.Interaction.Events;
 using Content.Shared.Inventory;
 using Content.Shared.Popups;
+using Content.Shared.Strip;
 using Content.Shared.Strip.Components;
 using Content.Shared.Verbs;
 using Robust.Server.GameObjects;
-using Content.Server.Administration.Logs;
-using Content.Shared.Cuffs;
-using Content.Shared.Cuffs.Components;
-using Content.Shared.Database;
-using Content.Shared.DoAfter;
-using Content.Shared.Ensnaring.Components;
-using Content.Shared.Interaction;
-using Content.Shared.Strip;
 using Robust.Shared.Utility;
 
 namespace Content.Server.Strip
@@ -89,8 +88,7 @@ namespace Content.Server.Strip
 
         private void StripHand(EntityUid target, EntityUid user, string handId, StrippableComponent component, HandsComponent userHands)
         {
-            if (!TryComp<HandsComponent>(target, out var targetHands)
-                || !targetHands.Hands.TryGetValue(handId, out var hand))
+            if (!_handsSystem.TryGetHand(target, handId, out var hand))
                 return;
 
             // is the target a handcuff?
@@ -274,7 +272,7 @@ namespace Content.Server.Strip
                     return false;
                 }
 
-                if (!hands.Hands.TryGetValue(handName, out var hand)
+                if (!_handsSystem.TryGetHand(target, handName, out var hand, hands)
                     || !_handsSystem.CanPickupToHand(target, userHands.ActiveHandEntity.Value, hand, checkActionBlocker: false, hands))
                 {
                     _popup.PopupCursor(Loc.GetString("strippable-component-cannot-put-message",("owner", target)), user);
@@ -397,7 +395,7 @@ namespace Content.Server.Strip
 
             bool Check()
             {
-                if (!hands.Hands.TryGetValue(handName, out var hand) || hand.HeldEntity != item)
+                if (!_handsSystem.TryGetHand(target, handName, out var hand, hands) || hand.HeldEntity != item)
                 {
                     _popup.PopupCursor(Loc.GetString("strippable-component-item-slot-free-message",("owner", target)), user);
                     return false;
@@ -432,7 +430,7 @@ namespace Content.Server.Strip
                 DuplicateCondition = DuplicateConditions.SameTool
             };
 
-            if (Check() && hands.Hands.TryGetValue(handName, out var handSlot) && handSlot.HeldEntity != null)
+            if (Check() && _handsSystem.TryGetHand(target, handName, out var handSlot, hands) && handSlot.HeldEntity != null)
             {
                 _popup.PopupEntity(
                     Loc.GetString("strippable-component-alert-owner",
index 21292393495df83accae680d0485c6a66e701dfb..d0109138ad319e851f322abdec24832263e22225 100644 (file)
@@ -1,10 +1,9 @@
-
-using Content.Shared.Interaction.Components;
-using Content.Server.Hands.Components;
+using Content.Shared.Destructible;
+using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
+using Content.Shared.Interaction.Components;
 using Content.Shared.Storage;
 using Content.Shared.Tag;
-using Content.Shared.Destructible;
 using Robust.Shared.Random;
 
 namespace Content.Server.Tools.Innate
index 2bd60ac3ec7196377c9c39b80ca263ec678cfe77..e9bdce6c2c61239a790e4ab5b5bd4662f0b0e638 100644 (file)
@@ -45,7 +45,7 @@ namespace Content.Server.UserInterface
             if (!comp.RequireHands)
                 return;
 
-            if (!TryComp(ev.Sender.AttachedEntity, out SharedHandsComponent? hands) || hands.Hands.Count == 0)
+            if (!TryComp(ev.Sender.AttachedEntity, out HandsComponent? hands) || hands.Hands.Count == 0)
                 ev.Cancel();
         }
 
@@ -111,7 +111,7 @@ namespace Content.Server.UserInterface
             if (!_blockerSystem.CanInteract(user, aui.Owner) && (!aui.AllowSpectator || !HasComp<GhostComponent>(user)))
                 return false;
 
-            if (aui.RequireHands && !HasComp<SharedHandsComponent>(user))
+            if (aui.RequireHands && !HasComp<HandsComponent>(user))
                 return false;
 
             if (!EntityManager.TryGetComponent(user, out ActorComponent? actor)) return false;
index ae7fd11e73e20543e093b259997db342c130bb5b..28d300ade5948eb3ab0eb562bd10ec10219bdebb 100644 (file)
@@ -1,3 +1,4 @@
+using System.Linq;
 using Content.Server.Administration.Managers;
 using Content.Server.Popups;
 using Content.Shared.Administration;
@@ -6,8 +7,6 @@ using Content.Shared.Database;
 using Content.Shared.Hands.Components;
 using Content.Shared.Verbs;
 using Robust.Server.Player;
-using Robust.Shared.Player;
-using System.Linq;
 
 namespace Content.Server.Verbs
 {
@@ -91,7 +90,7 @@ namespace Content.Server.Verbs
         {
             // first get the held item. again.
             EntityUid? holding = null;
-            if (TryComp(user, out SharedHandsComponent? hands) &&
+            if (TryComp(user, out HandsComponent? hands) &&
                 hands.ActiveHandEntity is EntityUid heldEntity)
             {
                 holding = heldEntity;
index ffb361b2f0ad7ada3b58509ff7013646b7fc4444..234e7958618a00b727ee65e781f0d080e235b213 100644 (file)
@@ -1,6 +1,5 @@
 using System.Linq;
 using Content.Server.Actions.Events;
-using Content.Server.Administration.Components;
 using Content.Server.Body.Components;
 using Content.Server.Body.Systems;
 using Content.Server.Chemistry.Components;
@@ -9,18 +8,18 @@ using Content.Server.CombatMode;
 using Content.Server.CombatMode.Disarm;
 using Content.Server.Contests;
 using Content.Server.Examine;
-using Content.Server.Hands.Components;
 using Content.Server.Movement.Systems;
 using Content.Shared.Administration.Components;
 using Content.Shared.CombatMode;
 using Content.Shared.Damage;
 using Content.Shared.Database;
 using Content.Shared.FixedPoint;
+using Content.Shared.Hands.Components;
 using Content.Shared.IdentityManagement;
+using Content.Shared.StatusEffect;
 using Content.Shared.Verbs;
 using Content.Shared.Weapons.Melee;
 using Content.Shared.Weapons.Melee.Events;
-using Content.Shared.StatusEffect;
 using Robust.Server.Player;
 using Robust.Shared.Audio;
 using Robust.Shared.Map;
index affda62f214c81ecb6d1cc8fd48c8705ef01b2a6..f158655e471ea704946820fce83f5346b4fe7786 100644 (file)
@@ -1,6 +1,7 @@
-using Content.Server.Hands.Components;
+using Content.Server.Actions.Events;
 using Content.Server.Hands.Systems;
 using Content.Server.Wieldable.Components;
+using Content.Shared.DoAfter;
 using Content.Shared.Hands;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
@@ -8,12 +9,9 @@ using Content.Shared.Interaction.Events;
 using Content.Shared.Item;
 using Content.Shared.Popups;
 using Content.Shared.Verbs;
-using Robust.Shared.Player;
-using Content.Server.Actions.Events;
-using Content.Shared.DoAfter;
 using Content.Shared.Weapons.Melee.Events;
 using Content.Shared.Wieldable;
-
+using Robust.Shared.Player;
 
 namespace Content.Server.Wieldable
 {
index 304a63b049cb3bb19558407362db0fbf3ca7fd53..4fcf1f03a223b9aaf05fced5719b7379653e0c8e 100644 (file)
@@ -2,11 +2,11 @@ using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using System.Threading;
 using Content.Server.Administration.Logs;
-using Content.Server.Hands.Components;
 using Content.Server.Power.Components;
-using Content.Shared.DoAfter;
 using Content.Shared.Database;
+using Content.Shared.DoAfter;
 using Content.Shared.GameTicking;
+using Content.Shared.Hands.Components;
 using Content.Shared.Interaction;
 using Content.Shared.Popups;
 using Content.Shared.Tools;
index b040b0ae7717cbc0a85fc207b387710c98fcc104..5c3c262bff494eced4b99dc9cee5f36e065dfeb4 100644 (file)
@@ -1,37 +1,37 @@
-using Content.Shared.Damage;
-using Content.Shared.Hands.EntitySystems;
-using Content.Server.Disease.Components;
-using Content.Server.Body.Components;
 using Content.Server.Atmos.Components;
-using Content.Server.Nutrition.Components;
-using Content.Server.Popups;
-using Content.Server.Speech.Components;
+using Content.Server.Atmos.Miasma;
+using Content.Server.Body.Components;
 using Content.Server.Body.Systems;
-using Content.Server.CombatMode;
-using Content.Server.Inventory;
-using Content.Server.Mind.Components;
+using Content.Server.Chat;
 using Content.Server.Chat.Managers;
+using Content.Server.Chat.Systems;
+using Content.Server.CombatMode;
+using Content.Server.Disease.Components;
 using Content.Server.Ghost.Roles.Components;
-using Content.Server.Hands.Components;
+using Content.Server.Humanoid;
+using Content.Server.IdentityManagement;
+using Content.Server.Inventory;
 using Content.Server.Mind.Commands;
+using Content.Server.Mind.Components;
+using Content.Server.Nutrition.Components;
+using Content.Server.Popups;
+using Content.Server.Speech.Components;
 using Content.Server.Temperature.Components;
-using Content.Shared.Movement.Components;
-using Robust.Shared.Prototypes;
-using Content.Shared.Roles;
 using Content.Server.Traitor;
-using Content.Shared.Zombies;
-using Content.Shared.Popups;
-using Content.Server.Atmos.Miasma;
-using Content.Server.Humanoid;
-using Content.Server.IdentityManagement;
+using Content.Shared.Damage;
+using Content.Shared.Hands.Components;
+using Content.Shared.Hands.EntitySystems;
 using Content.Shared.Humanoid;
 using Content.Shared.Mobs;
 using Content.Shared.Mobs.Components;
+using Content.Shared.Movement.Components;
 using Content.Shared.Movement.Systems;
-using Content.Shared.Weapons.Melee;
-using Content.Server.Chat;
-using Content.Server.Chat.Systems;
 using Content.Shared.Nutrition.Components;
+using Content.Shared.Popups;
+using Content.Shared.Roles;
+using Content.Shared.Weapons.Melee;
+using Content.Shared.Zombies;
+using Robust.Shared.Prototypes;
 
 namespace Content.Server.Zombies
 {
index dcc5af8bc7b19d94277f740eaf5de8c041eda994..9d8fa64f3e5410e7786452a56c901b3e8df14a67 100644 (file)
@@ -3,7 +3,6 @@ using Content.Shared.Access.Components;
 using Content.Shared.Hands.Components;
 using Content.Shared.Inventory;
 using Content.Shared.PDA;
-using Robust.Shared.GameStates;
 
 namespace Content.Shared.Access.Systems;
 
@@ -18,7 +17,7 @@ public abstract class SharedIdCardSystem : EntitySystem
     public bool TryFindIdCard(EntityUid uid, [NotNullWhen(true)] out IdCardComponent? idCard)
     {
         // check held item?
-        if (EntityManager.TryGetComponent(uid, out SharedHandsComponent? hands) &&
+        if (EntityManager.TryGetComponent(uid, out HandsComponent? hands) &&
             hands.ActiveHandEntity is EntityUid heldItem &&
             TryGetIdCard(heldItem, out idCard))
         {
index 5d4f9cc1898b19aca2af2910c7f8216ffcd5acb1..8b1f9b38b7e8b3f4759a992b005732765ef4f219 100644 (file)
@@ -14,7 +14,6 @@ using Content.Shared.Popups;
 using Content.Shared.Toggleable;
 using Robust.Shared.Physics;
 using Robust.Shared.Physics.Components;
-using Robust.Shared.Physics.Dynamics;
 using Robust.Shared.Physics.Systems;
 using Robust.Shared.Player;
 using Robust.Shared.Prototypes;
@@ -85,7 +84,7 @@ public sealed partial class BlockingSystem : EntitySystem
             return;
 
         var blockQuery = GetEntityQuery<BlockingComponent>();
-        var handQuery = GetEntityQuery<SharedHandsComponent>();
+        var handQuery = GetEntityQuery<HandsComponent>();
 
         if (!handQuery.TryGetComponent(args.Performer, out var hands))
             return;
@@ -265,7 +264,7 @@ public sealed partial class BlockingSystem : EntitySystem
             StopBlocking(uid, component, user);
 
         var userQuery = GetEntityQuery<BlockingUserComponent>();
-        var handQuery = GetEntityQuery<SharedHandsComponent>();
+        var handQuery = GetEntityQuery<HandsComponent>();
 
         if (!handQuery.TryGetComponent(user, out var hands))
             return;
index f04c4f4b8455e2a9b307676e1fc2d7187ac027b2..4dc4beec3983e6d3d05925f20574f81cdaa8c5b2 100644 (file)
@@ -1,4 +1,7 @@
+using System.Diagnostics.CodeAnalysis;
 using Content.Shared.ActionBlocker;
+using Content.Shared.Administration.Logs;
+using Content.Shared.Database;
 using Content.Shared.Destructible;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
@@ -8,13 +11,9 @@ using Content.Shared.Popups;
 using Content.Shared.Verbs;
 using Robust.Shared.Containers;
 using Robust.Shared.GameStates;
-using Robust.Shared.Player;
-using Robust.Shared.Utility;
-using System.Diagnostics.CodeAnalysis;
-using Content.Shared.Administration.Logs;
-using Content.Shared.Database;
 using Robust.Shared.Network;
 using Robust.Shared.Timing;
+using Robust.Shared.Utility;
 
 namespace Content.Shared.Containers.ItemSlots
 {
@@ -193,7 +192,7 @@ namespace Content.Shared.Containers.ItemSlots
             if (args.Handled)
                 return;
 
-            if (!EntityManager.TryGetComponent(args.User, out SharedHandsComponent? hands))
+            if (!EntityManager.TryGetComponent(args.User, out HandsComponent? hands))
                 return;
 
             foreach (var slot in itemSlots.Slots.Values)
@@ -296,7 +295,7 @@ namespace Content.Shared.Containers.ItemSlots
         ///     Does not check action blockers.
         /// </summary>
         /// <returns>False if failed to insert item</returns>
-        public bool TryInsertFromHand(EntityUid uid, ItemSlot slot, EntityUid user, SharedHandsComponent? hands = null)
+        public bool TryInsertFromHand(EntityUid uid, ItemSlot slot, EntityUid user, HandsComponent? hands = null)
         {
             if (!Resolve(user, ref hands, false))
                 return false;
index c972dac70195925cc34b6930868bfa16d591e0a7..35898addb347c123a70876ceea4fba93e7843f4a 100644 (file)
@@ -151,7 +151,7 @@ namespace Content.Shared.Cuffs
 
         public void UpdateCuffState(EntityUid uid, CuffableComponent component)
         {
-            var canInteract = TryComp(uid, out SharedHandsComponent? hands) && hands.Hands.Count > component.CuffedHandCount;
+            var canInteract = TryComp(uid, out HandsComponent? hands) && hands.Hands.Count > component.CuffedHandCount;
 
             if (canInteract == component.CanStillInteract)
                 return;
@@ -344,7 +344,7 @@ namespace Content.Shared.Cuffs
             }
 
             var dirty = false;
-            var handCount = CompOrNull<SharedHandsComponent>(owner)?.Count ?? 0;
+            var handCount = CompOrNull<HandsComponent>(owner)?.Count ?? 0;
 
             while (cuffable.CuffedHandCount > handCount && cuffable.CuffedHandCount > 0)
             {
@@ -374,7 +374,7 @@ namespace Content.Shared.Cuffs
             // TODO we probably don't just want to use the generic virtual-item entity, and instead
             // want to add our own item, so that use-in-hand triggers an uncuff attempt and the like.
 
-            if (!TryComp<SharedHandsComponent>(uid, out var handsComponent))
+            if (!TryComp<HandsComponent>(uid, out var handsComponent))
                 return;
 
             var freeHands = 0;
@@ -427,7 +427,7 @@ namespace Content.Shared.Cuffs
             if (!Resolve(handcuff, ref handcuffComponent) || !Resolve(target, ref cuffable, false))
                 return;
 
-            if (!TryComp<SharedHandsComponent?>(target, out var hands))
+            if (!TryComp<HandsComponent?>(target, out var hands))
             {
                 if (_net.IsServer)
                 {
index a630662765d341f38407bc18be44d48b89a44a5a..71a09c700a89900f6cb937a8926c56cd9e1033cd 100644 (file)
@@ -13,7 +13,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem
 
         var time = GameTiming.CurTime;
         var xformQuery = GetEntityQuery<TransformComponent>();
-        var handsQuery = GetEntityQuery<SharedHandsComponent>();
+        var handsQuery = GetEntityQuery<HandsComponent>();
 
         var enumerator = EntityQueryEnumerator<ActiveDoAfterComponent, DoAfterComponent>();
         while (enumerator.MoveNext(out var uid, out var active, out var comp))
@@ -28,7 +28,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem
         DoAfterComponent comp,
         TimeSpan time,
         EntityQuery<TransformComponent> xformQuery,
-        EntityQuery<SharedHandsComponent> handsQuery)
+        EntityQuery<HandsComponent> handsQuery)
     {
         var dirty = false;
 
@@ -122,7 +122,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem
 
     private bool ShouldCancel(DoAfter doAfter,
         EntityQuery<TransformComponent> xformQuery,
-        EntityQuery<SharedHandsComponent> handsQuery)
+        EntityQuery<HandsComponent> handsQuery)
     {
         var args = doAfter.Args;
 
index 2a666d6d965f66220c6b72b6e7003fae863e3be0..fab1ece9e7925a289e55799ed2f75b26a5359478 100644 (file)
@@ -203,7 +203,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem
         // (or if there is no item there we need to keep it free).
         if (args.NeedHand && args.BreakOnHandChange)
         {
-            if (!TryComp(args.User, out SharedHandsComponent? handsComponent))
+            if (!TryComp(args.User, out HandsComponent? handsComponent))
                 return false;
 
             doAfter.InitialHand = handsComponent.ActiveHand?.Name;
@@ -211,7 +211,7 @@ public abstract partial class SharedDoAfterSystem : EntitySystem
         }
 
         // Inital checks
-        if (ShouldCancel(doAfter, GetEntityQuery<TransformComponent>(), GetEntityQuery<SharedHandsComponent>()))
+        if (ShouldCancel(doAfter, GetEntityQuery<TransformComponent>(), GetEntityQuery<HandsComponent>()))
             return false;
 
         if (args.AttemptFrequency == AttemptFrequency.StartAndEnd && !TryAttemptEvent(doAfter))
index b7ad3a799b3edec71ae1280591435ca2f14c97dd..4a773a73812130cab6be30e30337988e1e7f841a 100644 (file)
@@ -1,23 +1,20 @@
+using System.Linq;
 using Content.Shared.Access.Components;
 using Content.Shared.Damage;
+using Content.Shared.DoAfter;
 using Content.Shared.Doors.Components;
 using Content.Shared.Hands.Components;
 using Content.Shared.Interaction;
 using Content.Shared.Stunnable;
+using Content.Shared.Tag;
 using Robust.Shared.Audio;
 using Robust.Shared.GameStates;
 using Robust.Shared.Physics;
-using Robust.Shared.Physics.Dynamics;
-using Robust.Shared.Timing;
-using System.Linq;
-using Content.Shared.DoAfter;
-using Content.Shared.Tag;
-using Content.Shared.Tools.Components;
-using Content.Shared.Verbs;
 using Robust.Shared.Physics.Components;
 using Robust.Shared.Physics.Events;
 using Robust.Shared.Physics.Systems;
 using Robust.Shared.Serialization;
+using Robust.Shared.Timing;
 
 namespace Content.Shared.Doors.Systems;
 
@@ -285,7 +282,7 @@ public abstract class SharedDoorSystem : EntitySystem
         // component, but no actual hands!? What!? Is this the sound of them head-butting the door to get it to open??
         // I'm 99% sure something is wrong here, but I kind of want to keep it this way.
 
-        if (user != null && TryComp(user.Value, out SharedHandsComponent? hands) && hands.Hands.Count == 0)
+        if (user != null && TryComp(user.Value, out HandsComponent? hands) && hands.Hands.Count == 0)
             PlaySound(uid, door.TryOpenDoorSound, AudioParams.Default.WithVolume(-2), user, predicted);
     }
 
index 1cf337cc4cdc3a4cad86914e184f721f36b44f27..11fff6d9c8a9926512efaf64b6e71715dcfea67b 100644 (file)
@@ -12,23 +12,23 @@ public static class HandHelpers
     ///     Returns true if any hand is free. This is a LinQ method, not a property, so
     ///     cache it instead of accessing this multiple times.
     /// </summary>
-    public static bool IsAnyHandFree(this SharedHandsComponent component) => component.Hands.Values.Any(hand => hand.IsEmpty);
+    public static bool IsAnyHandFree(this HandsComponent component) => component.Hands.Values.Any(hand => hand.IsEmpty);
 
     /// <summary>
     ///     Get the number of hands that are not currently holding anything. This is a LinQ method, not a property, so
     ///     cache it instead of accessing this multiple times.
     /// </summary>
-    public static int CountFreeHands(this SharedHandsComponent component) => component.Hands.Values.Count(hand => hand.IsEmpty);
+    public static int CountFreeHands(this HandsComponent component) => component.Hands.Values.Count(hand => hand.IsEmpty);
 
     /// <summary>
     ///     Get a list of hands that are currently holding nothing. This is a LinQ method, not a property, so cache
     ///     it instead of accessing this multiple times.
     /// </summary>
-    public static IEnumerable<Hand> GetFreeHands(this SharedHandsComponent component) => component.Hands.Values.Where(hand => !hand.IsEmpty);
+    public static IEnumerable<Hand> GetFreeHands(this HandsComponent component) => component.Hands.Values.Where(hand => !hand.IsEmpty);
 
     /// <summary>
     ///     Get a list of hands that are currently holding nothing. This is a LinQ method, not a property, so cache
     ///     it instead of accessing this multiple times.
     /// </summary>
-    public static IEnumerable<string> GetFreeHandNames(this SharedHandsComponent component) => GetFreeHands(component).Select(hand => hand.Name);
+    public static IEnumerable<string> GetFreeHandNames(this HandsComponent component) => GetFreeHands(component).Select(hand => hand.Name);
 }
similarity index 78%
rename from Content.Shared/Hands/Components/SharedHandsComponent.cs
rename to Content.Shared/Hands/Components/HandsComponent.cs
index 5d3a771002944c5aa461420425d0e32920776d17..c40d29b895db96cfb0093f77d50c2cf9a602194c 100644 (file)
@@ -1,11 +1,13 @@
+using Content.Shared.Hands.EntitySystems;
 using Robust.Shared.Containers;
 using Robust.Shared.GameStates;
 using Robust.Shared.Serialization;
 
 namespace Content.Shared.Hands.Components;
 
-[NetworkedComponent]
-public abstract class SharedHandsComponent : Component
+[RegisterComponent, NetworkedComponent]
+[Access(typeof(SharedHandsSystem))]
+public sealed class HandsComponent : Component
 {
     /// <summary>
     ///     The currently active hand.
@@ -42,6 +44,19 @@ public abstract class SharedHandsComponent : Component
     [DataField("throwRange")]
     [ViewVariables(VVAccess.ReadWrite)]
     public float ThrowRange { get; set; } = 8f;
+
+    /// <summary>
+    ///     Whether or not to add in-hand sprites for held items. Some entities (e.g., drones) don't want these.
+    ///     Used by the client.
+    /// </summary>
+    [DataField("showInHands")]
+    public bool ShowInHands = true;
+
+    /// <summary>
+    ///     Data about the current sprite layers that the hand is contributing to the owner entity. Used for sprite in-hands.
+    ///     Used by the client.
+    /// </summary>
+    public readonly Dictionary<HandLocation, HashSet<string>> RevealedLayers = new();
 }
 
 [Serializable, NetSerializable]
@@ -80,7 +95,7 @@ public sealed class HandsComponentState : ComponentState
     public readonly List<string> HandNames;
     public readonly string? ActiveHand;
 
-    public HandsComponentState(SharedHandsComponent handComp)
+    public HandsComponentState(HandsComponent handComp)
     {
         Hands = new(handComp.Hands.Values);
         HandNames = handComp.SortedHands;
index ad2b2b9bdac5bc2d8feb6e9230c2680e6e0364ac..1eac3a226393bdff74141f82072406b36890c899 100644 (file)
@@ -1,5 +1,5 @@
-using Content.Shared.Hands.Components;
 using System.Diagnostics.CodeAnalysis;
+using Content.Shared.Hands.Components;
 
 namespace Content.Shared.Hands.EntitySystems;
 
@@ -8,7 +8,7 @@ namespace Content.Shared.Hands.EntitySystems;
 
 public abstract partial class SharedHandsSystem : EntitySystem
 {
-    public bool TrySelect(EntityUid uid, EntityUid? entity, SharedHandsComponent? handsComp = null)
+    public bool TrySelect(EntityUid uid, EntityUid? entity, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -20,7 +20,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return true;
     }
 
-    public bool TrySelect<TComponent>(EntityUid uid, [NotNullWhen(true)] out TComponent? component, SharedHandsComponent? handsComp = null) where TComponent : Component
+    public bool TrySelect<TComponent>(EntityUid uid, [NotNullWhen(true)] out TComponent? component, HandsComponent? handsComp = null) where TComponent : Component
     {
         component = null;
         if (!Resolve(uid, ref handsComp, false))
@@ -35,5 +35,5 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return false;
     }
 
-    public bool TrySelectEmptyHand(EntityUid uid, SharedHandsComponent? handsComp = null) => TrySelect(uid, null, handsComp);
+    public bool TrySelectEmptyHand(EntityUid uid, HandsComponent? handsComp = null) => TrySelect(uid, null, handsComp);
 }
index 91a986f3725b73ff946a874dc2b6ed2980f8d115..4d4d8ef085c553bb7f54d3a768c7a73d1db128d4 100644 (file)
@@ -27,7 +27,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Attempts to drop the item in the currently active hand.
     /// </summary>
-    public bool TryDrop(EntityUid uid, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, SharedHandsComponent? handsComp = null)
+    public bool TryDrop(EntityUid uid, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return false;
@@ -41,7 +41,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Drops an item at the target location.
     /// </summary>
-    public bool TryDrop(EntityUid uid, EntityUid entity, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, SharedHandsComponent? handsComp = null)
+    public bool TryDrop(EntityUid uid, EntityUid entity, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return false;
@@ -55,7 +55,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Drops a hands contents at the target location.
     /// </summary>
-    public bool TryDrop(EntityUid uid, Hand hand, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, SharedHandsComponent? handsComp = null)
+    public bool TryDrop(EntityUid uid, Hand hand, EntityCoordinates? targetDropLocation = null, bool checkActionBlocker = true, bool doDropInteraction = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return false;
@@ -90,7 +90,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Attempts to move a held item from a hand into a container that is not another hand, without dropping it on the floor in-between.
     /// </summary>
-    public bool TryDropIntoContainer(EntityUid uid, EntityUid entity, IContainer targetContainer, bool checkActionBlocker = true, SharedHandsComponent? handsComp = null)
+    public bool TryDropIntoContainer(EntityUid uid, EntityUid entity, IContainer targetContainer, bool checkActionBlocker = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return false;
@@ -133,7 +133,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Removes the contents of a hand from its container. Assumes that the removal is allowed. In general, you should not be calling this directly.
     /// </summary>
-    public virtual void DoDrop(EntityUid uid, Hand hand, bool doDropInteraction = true, SharedHandsComponent? handsComp = null)
+    public virtual void DoDrop(EntityUid uid, Hand hand, bool doDropInteraction = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return;
index 21205656660a19b91d78294432af1be0a4efa36d..439ce3d2db4b0e84b69b122eea31579817e4f223 100644 (file)
@@ -19,7 +19,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         SubscribeAllEvent<RequestMoveHandItemEvent>(HandleMoveItemFromHand);
         SubscribeAllEvent<RequestHandAltInteractEvent>(HandleHandAltInteract);
 
-        SubscribeLocalEvent<SharedHandsComponent, ExaminedEvent>(HandleExamined);
+        SubscribeLocalEvent<HandsComponent, ExaminedEvent>(HandleExamined);
 
         CommandBinds.Builder
             .Bind(ContentKeyFunctions.UseItemInHand, InputCmdHandler.FromDelegate(HandleUseItem, handle: false, outsidePrediction: false))
@@ -74,7 +74,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
 
     private void SwapHandsPressed(ICommonSession? session)
     {
-        if (!TryComp(session?.AttachedEntity, out SharedHandsComponent? component))
+        if (!TryComp(session?.AttachedEntity, out HandsComponent? component))
             return;
 
         if (!_actionBlocker.CanInteract(session.AttachedEntity.Value, null))
@@ -91,7 +91,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
 
     private bool DropPressed(ICommonSession? session, EntityCoordinates coords, EntityUid uid)
     {
-        if (TryComp(session?.AttachedEntity, out SharedHandsComponent? hands) && hands.ActiveHand != null)
+        if (TryComp(session?.AttachedEntity, out HandsComponent? hands) && hands.ActiveHand != null)
             TryDrop(session.AttachedEntity!.Value, hands.ActiveHand, coords, handsComp: hands);
 
         // always send to server.
@@ -99,7 +99,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     }
     #endregion
 
-    public bool TryActivateItemInHand(EntityUid uid, SharedHandsComponent? handsComp = null, string? handName = null)
+    public bool TryActivateItemInHand(EntityUid uid, HandsComponent? handsComp = null, string? handName = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -114,7 +114,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return _interactionSystem.InteractionActivate(uid, held);
     }
 
-    public bool TryInteractHandWithActiveHand(EntityUid uid, string handName, SharedHandsComponent? handsComp = null)
+    public bool TryInteractHandWithActiveHand(EntityUid uid, string handName, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -132,7 +132,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return true;
     }
 
-    public bool TryUseItemInHand(EntityUid uid, bool altInteract = false, SharedHandsComponent? handsComp = null, string? handName = null)
+    public bool TryUseItemInHand(EntityUid uid, bool altInteract = false, HandsComponent? handsComp = null, string? handName = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -153,7 +153,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Moves an entity from one hand to the active hand.
     /// </summary>
-    public bool TryMoveHeldEntityToActiveHand(EntityUid uid, string handName, bool checkActionBlocker = true, SharedHandsComponent? handsComp = null)
+    public bool TryMoveHeldEntityToActiveHand(EntityUid uid, string handName, bool checkActionBlocker = true, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp))
             return false;
@@ -178,7 +178,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     }
 
     //TODO: Actually shows all items/clothing/etc.
-    private void HandleExamined(EntityUid uid, SharedHandsComponent handsComp, ExaminedEvent args)
+    private void HandleExamined(EntityUid uid, HandsComponent handsComp, ExaminedEvent args)
     {
         foreach (var inhand in EnumerateHeld(uid, handsComp))
         {
index 00bbe11f63f2ebbad5316045dcf95aea9ded2ceb..9732d3c215a061425db33ad39856f60ca68daf2f 100644 (file)
@@ -25,7 +25,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         bool checkActionBlocker = true,
         bool animateUser = false,
         bool animate = true,
-        SharedHandsComponent? handsComp = null,
+        HandsComponent? handsComp = null,
         ItemComponent? item = null)
     {
         if (!Resolve(uid, ref handsComp, false))
@@ -54,7 +54,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         bool checkActionBlocker = true,
         bool animateUser = false,
         bool animate = true,
-        SharedHandsComponent? handsComp = null,
+        HandsComponent? handsComp = null,
         ItemComponent? item = null)
     {
         if (!Resolve(uid, ref handsComp, false))
@@ -73,7 +73,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         bool checkActionBlocker = true,
         bool animateUser = false,
         bool animate = true,
-        SharedHandsComponent? handsComp = null,
+        HandsComponent? handsComp = null,
         ItemComponent? item = null)
     {
         if (!Resolve(uid, ref handsComp, false))
@@ -104,7 +104,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return true;
     }
 
-    public bool CanPickupAnyHand(EntityUid uid, EntityUid entity, bool checkActionBlocker = true, SharedHandsComponent? handsComp = null, ItemComponent? item = null)
+    public bool CanPickupAnyHand(EntityUid uid, EntityUid entity, bool checkActionBlocker = true, HandsComponent? handsComp = null, ItemComponent? item = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -118,7 +118,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Checks whether a given item will fit into a specific user's hand. Unless otherwise specified, this will also check the general CanPickup action blocker.
     /// </summary>
-    public bool CanPickupToHand(EntityUid uid, EntityUid entity, Hand hand, bool checkActionBlocker = true, SharedHandsComponent? handsComp = null, ItemComponent? item = null)
+    public bool CanPickupToHand(EntityUid uid, EntityUid entity, Hand hand, bool checkActionBlocker = true, HandsComponent? handsComp = null, ItemComponent? item = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return false;
@@ -149,7 +149,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         bool checkActionBlocker = true,
         bool animateUser = false,
         bool animate = true,
-        SharedHandsComponent? handsComp = null,
+        HandsComponent? handsComp = null,
         ItemComponent? item = null)
     {
         if (uid == null
@@ -166,7 +166,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Puts an entity into the player's hand, assumes that the insertion is allowed. In general, you should not be calling this function directly.
     /// </summary>
-    public virtual void DoPickup(EntityUid uid, Hand hand, EntityUid entity, SharedHandsComponent? hands = null)
+    public virtual void DoPickup(EntityUid uid, Hand hand, EntityUid entity, HandsComponent? hands = null)
     {
         if (!Resolve(uid, ref hands))
             return;
index a826008890964b89d609ced9bc6adb75b171835c..2af4cb456f332bbc0d23153b1e0794512d697569 100644 (file)
@@ -16,7 +16,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     [Dependency] private readonly ActionBlockerSystem _actionBlocker = default!;
     [Dependency] private readonly SharedContainerSystem _containerSystem = default!;
 
-    protected event Action<SharedHandsComponent?>? OnHandSetActive;
+    protected event Action<HandsComponent?>? OnHandSetActive;
 
     public override void Initialize()
     {
@@ -31,7 +31,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         CommandBinds.Unregister<SharedHandsSystem>();
     }
 
-    public virtual void AddHand(EntityUid uid, string handName, HandLocation handLocation, SharedHandsComponent? handsComp = null)
+    public virtual void AddHand(EntityUid uid, string handName, HandLocation handLocation, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return;
@@ -53,7 +53,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         Dirty(handsComp);
     }
 
-    public virtual void RemoveHand(EntityUid uid, string handName, SharedHandsComponent? handsComp = null)
+    public virtual void RemoveHand(EntityUid uid, string handName, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             return;
@@ -83,7 +83,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Get any empty hand. Prioritizes the currently active hand.
     /// </summary>
-    public bool TryGetEmptyHand(EntityUid uid, [NotNullWhen(true)] out Hand? emptyHand, SharedHandsComponent? handComp = null)
+    public bool TryGetEmptyHand(EntityUid uid, [NotNullWhen(true)] out Hand? emptyHand, HandsComponent? handComp = null)
     {
         emptyHand = null;
         if (!Resolve(uid, ref handComp, false))
@@ -104,7 +104,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Enumerate over hands, starting with the currently active hand.
     /// </summary>
-    public IEnumerable<Hand> EnumerateHands(EntityUid uid, SharedHandsComponent? handsComp = null)
+    public IEnumerable<Hand> EnumerateHands(EntityUid uid, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             yield break;
@@ -122,7 +122,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// <summary>
     ///     Enumerate over held items, starting with the item in the currently active hand (if there is one).
     /// </summary>
-    public IEnumerable<EntityUid> EnumerateHeld(EntityUid uid, SharedHandsComponent? handsComp = null)
+    public IEnumerable<EntityUid> EnumerateHeld(EntityUid uid, HandsComponent? handsComp = null)
     {
         if (!Resolve(uid, ref handsComp, false))
             yield break;
@@ -145,7 +145,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// </summary>
     /// <returns>True if the active hand was set to a NEW value. Setting it to the same value returns false and does
     /// not trigger interactions.</returns>
-    public virtual bool TrySetActiveHand(EntityUid uid, string? name, SharedHandsComponent? handComp = null)
+    public virtual bool TrySetActiveHand(EntityUid uid, string? name, HandsComponent? handComp = null)
     {
         if (!Resolve(uid, ref handComp))
             return false;
@@ -164,7 +164,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
     /// </summary>
     /// <returns>True if the active hand was set to a NEW value. Setting it to the same value returns false and does
     /// not trigger interactions.</returns>
-    public bool SetActiveHand(EntityUid uid, Hand? hand, SharedHandsComponent? handComp = null)
+    public bool SetActiveHand(EntityUid uid, Hand? hand, HandsComponent? handComp = null)
     {
         if (!Resolve(uid, ref handComp))
             return false;
@@ -190,7 +190,7 @@ public abstract partial class SharedHandsSystem : EntitySystem
         return true;
     }
 
-    public bool IsHolding(EntityUid uid, EntityUid? entity, [NotNullWhen(true)] out Hand? inHand, SharedHandsComponent? handsComp = null)
+    public bool IsHolding(EntityUid uid, EntityUid? entity, [NotNullWhen(true)] out Hand? inHand, HandsComponent? handsComp = null)
     {
         inHand = null;
         if (!Resolve(uid, ref handsComp, false))
@@ -207,4 +207,15 @@ public abstract partial class SharedHandsSystem : EntitySystem
 
         return false;
     }
+
+    public bool TryGetHand(EntityUid handsUid, string handId, [NotNullWhen(true)] out Hand? hand,
+        HandsComponent? hands = null)
+    {
+        hand = null;
+
+        if (!Resolve(handsUid, ref hands))
+            return false;
+
+        return hands.Hands.TryGetValue(handId, out hand);
+    }
 }
index b9ae32cf5d2c48800202bc1eabe8b7669ab8c74c..aaee8de7196f56ff0d3643be232f280a8aebff5a 100644 (file)
@@ -30,7 +30,6 @@ using Robust.Shared.Map;
 using Robust.Shared.Physics;
 using Robust.Shared.Physics.Components;
 using Robust.Shared.Physics.Systems;
-using Robust.Shared.Player;
 using Robust.Shared.Players;
 using Robust.Shared.Random;
 using Robust.Shared.Serialization;
@@ -284,7 +283,7 @@ namespace Content.Shared.Interaction
                 : !checkAccess || InRangeUnobstructed(user, target.Value); // permits interactions with wall mounted entities
 
             // Does the user have hands?
-            if (!TryComp(user, out SharedHandsComponent? hands) || hands.ActiveHand == null)
+            if (!TryComp(user, out HandsComponent? hands) || hands.ActiveHand == null)
             {
                 var ev = new InteractNoHandEvent(user, target, coordinates);
                 RaiseLocalEvent(user, ev);
@@ -877,7 +876,7 @@ namespace Content.Shared.Interaction
                 return false;
 
             // Does the user have hands?
-            if (!HasComp<SharedHandsComponent>(user))
+            if (!HasComp<HandsComponent>(user))
                 return false;
 
             var activateMsg = new ActivateInWorldEvent(user, used);
index cd305bbf968864874ebab303db33e9fe655764c9..0baa270cad02776fbf206f561fbdddf81a553b9e 100644 (file)
@@ -1,5 +1,4 @@
 using System.Diagnostics.CodeAnalysis;
-using Content.Shared.ActionBlocker;
 using Content.Shared.Clothing.Components;
 using Content.Shared.Hands;
 using Content.Shared.Hands.Components;
@@ -41,7 +40,7 @@ public abstract partial class InventorySystem
     protected void QuickEquip(EntityUid uid, ClothingComponent component, UseInHandEvent args)
     {
         if (!TryComp(args.User, out InventoryComponent? inv)
-            || !TryComp(args.User, out SharedHandsComponent? hands)
+            || !TryComp(args.User, out HandsComponent? hands)
             || !_prototypeManager.TryIndex<InventoryTemplatePrototype>(inv.TemplateId, out var prototype))
             return;
 
@@ -108,7 +107,7 @@ public abstract partial class InventorySystem
         if (eventArgs.SenderSession.AttachedEntity is not { Valid: true } actor)
             return;
 
-        if (!TryComp(actor, out InventoryComponent? inventory) || !TryComp<SharedHandsComponent>(actor, out var hands))
+        if (!TryComp(actor, out InventoryComponent? inventory) || !TryComp<HandsComponent>(actor, out var hands))
             return;
 
         var held = hands.ActiveHandEntity;
@@ -245,7 +244,7 @@ public abstract partial class InventorySystem
         return actor != target &&
             HasComp<StrippableComponent>(target) &&
             HasComp<StrippingComponent>(actor) &&
-            HasComp<SharedHandsComponent>(actor);
+            HasComp<HandsComponent>(actor);
     }
 
     public bool CanEquip(EntityUid uid, EntityUid itemUid, string slot, [NotNullWhen(false)] out string? reason,
index 98c88feb2a1f83be5a946e8acf89a8c7bec97205..0259b361b59d079563064d7cd2569df4117b60fb 100644 (file)
@@ -2,7 +2,6 @@ using Content.Shared.Hands;
 using Content.Shared.Hands.Components;
 using Content.Shared.Hands.EntitySystems;
 using Content.Shared.Popups;
-using Robust.Shared.Player;
 using Robust.Shared.Timing;
 
 namespace Content.Shared.Item;
@@ -27,7 +26,7 @@ public abstract class SharedMultiHandedItemSystem : EntitySystem
 
     private void OnAttemptPickup(EntityUid uid, MultiHandedItemComponent component, GettingPickedUpAttemptEvent args)
     {
-        if (TryComp<SharedHandsComponent>(args.User, out var hands) && hands.CountFreeHands() >= component.HandsNeeded)
+        if (TryComp<HandsComponent>(args.User, out var hands) && hands.CountFreeHands() >= component.HandsNeeded)
             return;
 
         args.Cancel();
index 5c01ae0702d8053eb3ce6f144cd0fdabfb92b5cb..c80fbee965e523fe1556616c7ea93befe104beeb 100644 (file)
@@ -1,6 +1,6 @@
-using Content.Shared.Emag.Systems;
 using Content.Shared.Access.Components;
 using Content.Shared.Access.Systems;
+using Content.Shared.Emag.Systems;
 using Content.Shared.Examine;
 using Content.Shared.Hands.Components;
 using Content.Shared.IdentityManagement;
@@ -192,7 +192,7 @@ public sealed class LockSystem : EntitySystem
     /// </summary>
     public bool CanToggleLock(EntityUid uid, EntityUid user, bool quiet = true)
     {
-        if (!HasComp<SharedHandsComponent>(user))
+        if (!HasComp<HandsComponent>(user))
             return false;
 
         var ev = new LockToggleAttemptEvent(user, quiet);
index a41ec7ab618075888913fc9ef922036c3673aaf9..6f506b77c58ef0bdef12d7ce95e01ef4fb32b36a 100644 (file)
@@ -387,7 +387,7 @@ public abstract class SharedMechSystem : EntitySystem
         if (!Resolve(uid, ref component))
             return false;
 
-        return IsEmpty(component) && _actionBlocker.CanMove(toInsert) && HasComp<SharedHandsComponent>(toInsert);
+        return IsEmpty(component) && _actionBlocker.CanMove(toInsert) && HasComp<HandsComponent>(toInsert);
     }
 
     /// <summary>
index 29e5947ae9209de824edc491ab8ae7ed87ab5ac9..b34498677c9a2521ff9ba0a2a1804a44e6a69530 100644 (file)
@@ -125,7 +125,7 @@ namespace Content.Shared.Stacks
             EntityUid item,
             EntityUid user,
             StackComponent? itemStack = null,
-            SharedHandsComponent? hands = null)
+            HandsComponent? hands = null)
         {
             if (!Resolve(user, ref hands, false))
                 return;
index 7d10036fb028e2df745c3ceaa2ce9756f580c19c..b09be24aba1ef40a959a933078a7c538270476f8 100644 (file)
@@ -1,15 +1,11 @@
-using Content.Shared.Audio;
 using Content.Shared.Hands.Components;
+using Content.Shared.Physics;
 using Content.Shared.Rotation;
 using Robust.Shared.Audio;
-using Robust.Shared.Player;
-using Robust.Shared.Timing;
-using Robust.Shared.Physics;
-using Content.Shared.Physics;
 using Robust.Shared.GameStates;
-using Robust.Shared.Serialization;
-using Robust.Shared.Network;
+using Robust.Shared.Physics;
 using Robust.Shared.Physics.Systems;
+using Robust.Shared.Serialization;
 
 namespace Content.Shared.Standing
 {
@@ -53,7 +49,7 @@ namespace Content.Shared.Standing
         public bool Down(EntityUid uid, bool playSound = true, bool dropHeldItems = true,
             StandingStateComponent? standingState = null,
             AppearanceComponent? appearance = null,
-            SharedHandsComponent? hands = null)
+            HandsComponent? hands = null)
         {
             // TODO: This should actually log missing comps...
             if (!Resolve(uid, ref standingState, false))
index cc2a627141b4ef419c03f532858abb533ec31ea8..9abcc1a380222014534315ff251c6911faa68719 100644 (file)
@@ -121,7 +121,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem
 
     private void OnRelayMovement(EntityUid uid, SharedEntityStorageComponent component, ref ContainerRelayMovementEntityEvent args)
     {
-        if (!HasComp<SharedHandsComponent>(args.Entity))
+        if (!HasComp<HandsComponent>(args.Entity))
             return;
 
         if (_timing.CurTime < component.LastInternalOpenAttempt + SharedEntityStorageComponent.InternalOpenAttemptDelay)
@@ -311,7 +311,7 @@ public abstract class SharedEntityStorageSystem : EntitySystem
         if (!Resolve(target, ref component))
             return false;
 
-        if (!HasComp<SharedHandsComponent>(user))
+        if (!HasComp<HandsComponent>(user))
             return false;
 
         if (component.IsWeldedShut)
index 55aa1febfa859988e501a40ef8a0aabd2af401bf..47e1f02ad8faaa0e291fc3092b1db7a62c44de4b 100644 (file)
@@ -43,14 +43,14 @@ public abstract class SharedStrippableSystem : EntitySystem
         args.Handled = true;
         args.CanDrop |= uid == args.User &&
                         HasComp<StrippableComponent>(args.Dragged) &&
-                        HasComp<SharedHandsComponent>(args.User);
+                        HasComp<HandsComponent>(args.User);
     }
 
     private void OnCanDrop(EntityUid uid, StrippableComponent component, ref CanDropDraggedEvent args)
     {
         args.CanDrop |= args.Target == args.User &&
                         HasComp<StrippingComponent>(args.User) &&
-                        HasComp<SharedHandsComponent>(args.User);
+                        HasComp<HandsComponent>(args.User);
 
         if (args.CanDrop)
             args.Handled = true;
index d314ff361cce3cba4d7a2a52281882c868a6e1bc..9cb683a918077266aaa73bc3e7b2248783f5b2f3 100644 (file)
@@ -1,3 +1,4 @@
+using System.Diagnostics.CodeAnalysis;
 using Content.Shared.ActionBlocker;
 using Content.Shared.Hands.Components;
 using Content.Shared.Interaction;
@@ -6,9 +7,7 @@ using Content.Shared.Tabletop.Events;
 using Robust.Shared.GameStates;
 using Robust.Shared.Map;
 using Robust.Shared.Network;
-using Robust.Shared.Players;
 using Robust.Shared.Serialization;
-using System.Diagnostics.CodeAnalysis;
 
 namespace Content.Shared.Tabletop
 {
@@ -114,7 +113,7 @@ namespace Content.Shared.Tabletop
             // CanSeeTable checks interaction action blockers. So no need to check them here.
             // If this ever changes, so that ghosts can spectate games, then the check needs to be moved here.
 
-            return TryComp(playerEntity, out SharedHandsComponent? hands) && hands.Hands.Count > 0;
+            return TryComp(playerEntity, out HandsComponent? hands) && hands.Hands.Count > 0;
         }
         #endregion
     }
index d2b4d2dd467c6e5f59adcc1aac8cc90151f36602..62ae7883a72c4a57847d14113db8db4892da9f5f 100644 (file)
@@ -1,3 +1,4 @@
+using System.Linq;
 using Content.Shared.Administration.Logs;
 using Content.Shared.Database;
 using Content.Shared.Hands.Components;
@@ -6,9 +7,6 @@ using Content.Shared.Physics.Pull;
 using Robust.Shared.Containers;
 using Robust.Shared.GameStates;
 using Robust.Shared.Physics;
-using Robust.Shared.Physics.Dynamics;
-using System.Linq;
-using Content.Shared.Sound.Components;
 using Robust.Shared.Physics.Components;
 using Robust.Shared.Physics.Events;
 using Robust.Shared.Physics.Systems;
@@ -129,7 +127,7 @@ namespace Content.Shared.Throwing
 
             // Unfortunately we can't check for hands containers as they have specific names.
             if (uid.TryGetContainerMan(out var containerManager) &&
-                EntityManager.HasComponent<SharedHandsComponent>(containerManager.Owner))
+                EntityManager.HasComponent<HandsComponent>(containerManager.Owner))
             {
                 EntityManager.RemoveComponent(landing, thrownItem);
                 return;
index 2c38afcb03b50b6148347a5cf1ab5755d3792b6c..a50a377d43071955541d0cb284481073047c0fdc 100644 (file)
@@ -79,7 +79,7 @@ namespace Content.Shared.Verbs
             var canInteract = force || _actionBlockerSystem.CanInteract(user, target);
 
             EntityUid? @using = null;
-            if (TryComp(user, out SharedHandsComponent? hands) && (force || _actionBlockerSystem.CanUseHeldEntity(user)))
+            if (TryComp(user, out HandsComponent? hands) && (force || _actionBlockerSystem.CanUseHeldEntity(user)))
             {
                 @using = hands.ActiveHandEntity;
 
index 256b401592e94544e5aff40f0de42152f2f7fc5d..64b92385c58c636c18983fcf7616f0f4a5b7ca00 100644 (file)
@@ -112,7 +112,7 @@ namespace Content.Shared.Verbs
         /// <remarks>
         ///     This may be null if the user has no hands.
         /// </remarks>
-        public readonly SharedHandsComponent? Hands;
+        public readonly HandsComponent? Hands;
 
         /// <summary>
         ///     The entity currently being held by the active hand.
@@ -123,7 +123,7 @@ namespace Content.Shared.Verbs
         /// </remarks>
         public readonly EntityUid? Using;
 
-        public GetVerbsEvent(EntityUid user, EntityUid target, EntityUid? @using, SharedHandsComponent? hands, bool canInteract, bool canAccess)
+        public GetVerbsEvent(EntityUid user, EntityUid target, EntityUid? @using, HandsComponent? hands, bool canInteract, bool canAccess)
         {
             User = user;
             Target = target;
index 39721a6c3edab67e43389b4c3cfd02ddbd6f417c..e5aa4177c274b901cc21389f11ef9d3be45e988c 100644 (file)
@@ -262,7 +262,7 @@ public abstract class SharedMeleeWeaponSystem : EntitySystem
         }
 
         // Use inhands entity if we got one.
-        if (EntityManager.TryGetComponent(entity, out SharedHandsComponent? hands) &&
+        if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) &&
             hands.ActiveHandEntity is { } held)
         {
             if (EntityManager.TryGetComponent(held, out melee))
index 34ba12c7cd32450bd0c46997c152e3c901f92619..13179a24d21e0fa9a1418f0577e64a8d02e3cf4a 100644 (file)
@@ -10,18 +10,18 @@ using Content.Shared.Hands.Components;
 using Content.Shared.Interaction.Events;
 using Content.Shared.Popups;
 using Content.Shared.Projectiles;
+using Content.Shared.Tag;
 using Content.Shared.Throwing;
 using Content.Shared.Verbs;
 using Content.Shared.Weapons.Ranged.Components;
 using Content.Shared.Weapons.Ranged.Events;
-using Content.Shared.Tag;
 using Robust.Shared.Audio;
 using Robust.Shared.Containers;
 using Robust.Shared.GameStates;
 using Robust.Shared.Map;
 using Robust.Shared.Network;
-using Robust.Shared.Physics.Systems;
 using Robust.Shared.Physics.Components;
+using Robust.Shared.Physics.Systems;
 using Robust.Shared.Prototypes;
 using Robust.Shared.Random;
 using Robust.Shared.Serialization;
@@ -191,7 +191,7 @@ public abstract partial class SharedGunSystem : EntitySystem
         if (!_combatMode.IsInCombatMode(entity))
             return false;
 
-        if (EntityManager.TryGetComponent(entity, out SharedHandsComponent? hands) &&
+        if (EntityManager.TryGetComponent(entity, out HandsComponent? hands) &&
             hands.ActiveHandEntity is { } held &&
             TryComp(held, out GunComponent? gun))
         {
index 972841f1b9959908a0cdb45d534a370396903d24..c5801477a30e0b1a45e3b9d41f02331fdf8a6859 100644 (file)
@@ -1,12 +1,12 @@
+using System.Diagnostics.CodeAnalysis;
 using Content.Shared.Audio;
-using Content.Shared.Popups;
-using Robust.Shared.Random;
-using Robust.Shared.Physics.Systems;
 using Content.Shared.Hands.Components;
-using Robust.Shared.GameStates;
-using Content.Shared.Weapons.Ranged.Events;
-using System.Diagnostics.CodeAnalysis;
+using Content.Shared.Popups;
 using Content.Shared.Projectiles;
+using Content.Shared.Weapons.Ranged.Events;
+using Robust.Shared.GameStates;
+using Robust.Shared.Physics.Systems;
+using Robust.Shared.Random;
 
 namespace Content.Shared.Weapons.Reflect;
 
@@ -24,8 +24,8 @@ public abstract class SharedReflectSystem : EntitySystem
     public override void Initialize()
     {
         base.Initialize();
-        SubscribeLocalEvent<SharedHandsComponent, ProjectileReflectAttemptEvent>(OnHandReflectProjectile);
-        SubscribeLocalEvent<SharedHandsComponent, HitScanReflectAttemptEvent>(OnHandsReflectHitscan);
+        SubscribeLocalEvent<HandsComponent, ProjectileReflectAttemptEvent>(OnHandReflectProjectile);
+        SubscribeLocalEvent<HandsComponent, HitScanReflectAttemptEvent>(OnHandsReflectHitscan);
 
         SubscribeLocalEvent<ReflectComponent, ComponentHandleState>(OnHandleState);
         SubscribeLocalEvent<ReflectComponent, ComponentGetState>(OnGetState);
@@ -45,7 +45,7 @@ public abstract class SharedReflectSystem : EntitySystem
         args.State = new ReflectComponentState(component.Enabled, component.EnergeticChance, component.KineticChance, component.Spread);
     }
 
-    private void OnHandReflectProjectile(EntityUid uid, SharedHandsComponent hands, ref ProjectileReflectAttemptEvent args)
+    private void OnHandReflectProjectile(EntityUid uid, HandsComponent hands, ref ProjectileReflectAttemptEvent args)
     {
         if (args.Cancelled)
             return;
@@ -78,7 +78,7 @@ public abstract class SharedReflectSystem : EntitySystem
         return false;
     }
 
-    private void OnHandsReflectHitscan(EntityUid uid, SharedHandsComponent hands, ref HitScanReflectAttemptEvent args)
+    private void OnHandsReflectHitscan(EntityUid uid, HandsComponent hands, ref HitScanReflectAttemptEvent args)
     {
         if (args.Reflected)
             return;