diff --git a/Content.Client/RCD/RCDConstructionGhostSystem.cs b/Content.Client/RCD/RCDConstructionGhostSystem.cs index 8ec980268b..fcbe3aece7 100644 --- a/Content.Client/RCD/RCDConstructionGhostSystem.cs +++ b/Content.Client/RCD/RCDConstructionGhostSystem.cs @@ -1,9 +1,7 @@ using Content.Client.Hands.Systems; -using Content.Shared.Hands.Components; using Content.Shared.Interaction; using Content.Shared.RCD; using Content.Shared.RCD.Components; -using Content.Shared.RCD.Systems; using Robust.Client.Placement; using Robust.Client.Player; using Robust.Shared.Enums; @@ -11,14 +9,18 @@ using Robust.Shared.Prototypes; namespace Content.Client.RCD; +/// +/// System for handling structure ghost placement in places where RCD can create objects. +/// public sealed class RCDConstructionGhostSystem : EntitySystem { + private const string PlacementMode = nameof(AlignRCDConstruction); + [Dependency] private readonly IPlayerManager _playerManager = default!; [Dependency] private readonly IPlacementManager _placementManager = default!; [Dependency] private readonly IPrototypeManager _protoManager = default!; [Dependency] private readonly HandsSystem _hands = default!; - - private string _placementMode = typeof(AlignRCDConstruction).Name; + private Direction _placementDirection = default; public override void Update(float frameTime) @@ -38,8 +40,7 @@ public sealed class RCDConstructionGhostSystem : EntitySystem if (_playerManager.LocalSession?.AttachedEntity is not { } player) return; - if (!_hands.TryGetActiveItem(player, out var heldEntity)) - return; + var heldEntity = _hands.GetActiveItem(player); if (!TryComp(heldEntity, out var rcd)) { @@ -66,7 +67,7 @@ public sealed class RCDConstructionGhostSystem : EntitySystem var newObjInfo = new PlacementInformation { MobUid = heldEntity.Value, - PlacementOption = _placementMode, + PlacementOption = PlacementMode, EntityType = prototype.Prototype, Range = (int) Math.Ceiling(SharedInteractionSystem.InteractionRange), IsTile = (prototype.Mode == RcdMode.ConstructTile),