using Content.Client._NF.Hands.UI; using Content.Client.Items; using Content.Client.Items.Systems; using Content.Shared._NF.Interaction.Components; using JetBrains.Annotations; using Robust.Client.GameObjects; namespace Content.Client._NF.Interaction.Systems; /// /// Handles interactions with items that spawn HandPlaceholder items. /// [UsedImplicitly] public sealed partial class HandPlaceholderVisualsSystem : EntitySystem { [Dependency] ContainerSystem _container = default!; [Dependency] ItemSystem _item = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnAfterAutoHandleState); SubscribeLocalEvent(PlaceholderRemove); Subs.ItemStatus(_ => new HandPlaceholderStatus()); } private void OnAfterAutoHandleState(Entity ent, ref AfterAutoHandleStateEvent args) { if (!TryComp(ent, out HandPlaceholderVisualsComponent? placeholder)) return; if (placeholder.Dummy != EntityUid.Invalid) QueueDel(placeholder.Dummy); placeholder.Dummy = Spawn(ent.Comp.Prototype); if (_container.IsEntityInContainer(ent)) _item.VisualsChanged(ent); } private void PlaceholderRemove(Entity ent, ref ComponentRemove args) { if (ent.Comp.Dummy != EntityUid.Invalid) QueueDel(ent.Comp.Dummy); } }