diff --git a/Content.Client/RCD/RCDConstructionGhostSystem.cs b/Content.Client/RCD/RCDConstructionGhostSystem.cs index fcbe3aece70..d0af28da8aa 100644 --- a/Content.Client/RCD/RCDConstructionGhostSystem.cs +++ b/Content.Client/RCD/RCDConstructionGhostSystem.cs @@ -20,7 +20,7 @@ public sealed class RCDConstructionGhostSystem : EntitySystem [Dependency] private readonly IPlacementManager _placementManager = default!; [Dependency] private readonly IPrototypeManager _protoManager = default!; [Dependency] private readonly HandsSystem _hands = default!; - + private Direction _placementDirection = default; public override void Update(float frameTime) @@ -42,6 +42,11 @@ public sealed class RCDConstructionGhostSystem : EntitySystem var heldEntity = _hands.GetActiveItem(player); + // Don't open the placement overlay for client-side RCDs. + // This may happen when predictively spawning one in your hands. + if (heldEntity != null && IsClientSide(heldEntity.Value)) + return; + if (!TryComp(heldEntity, out var rcd)) { // If the player was holding an RCD, but is no longer, cancel placement @@ -69,7 +74,7 @@ public sealed class RCDConstructionGhostSystem : EntitySystem MobUid = heldEntity.Value, PlacementOption = PlacementMode, EntityType = prototype.Prototype, - Range = (int) Math.Ceiling(SharedInteractionSystem.InteractionRange), + Range = (int)Math.Ceiling(SharedInteractionSystem.InteractionRange), IsTile = (prototype.Mode == RcdMode.ConstructTile), UseEditorContext = false, };