6
StarHorizon_Public/Content.Shared/_RMC14/Attachable/Systems/AttachablePreventDropSystem.cs
2026-01-24 12:49:55 +03:00

34 lines
1.1 KiB
C#

using Content.Shared._RMC14.Attachable.Components;
using Content.Shared._RMC14.Attachable.Events;
using Content.Shared.Interaction.Components;
namespace Content.Shared._RMC14.Attachable.Systems;
public sealed class AttachablePreventDropSystem : EntitySystem
{
public override void Initialize()
{
SubscribeLocalEvent<AttachablePreventDropToggleableComponent, AttachableAlteredEvent>(OnAttachableAltered);
}
private void OnAttachableAltered(Entity<AttachablePreventDropToggleableComponent> attachable, ref AttachableAlteredEvent args)
{
switch (args.Alteration)
{
case AttachableAlteredType.Activated:
var comp = EnsureComp<UnremoveableComponent>(args.Holder);
comp.DeleteOnDrop = false;
Dirty(args.Holder, comp);
break;
case AttachableAlteredType.Deactivated:
RemCompDeferred<UnremoveableComponent>(args.Holder);
break;
case AttachableAlteredType.DetachedDeactivated:
RemCompDeferred<UnremoveableComponent>(args.Holder);
break;
}
}
}