using Content.Shared.Interaction; using Content.Shared.Movement.Pulling.Events; using Content.Shared.Weapons.Melee.Events; using Content.Shared.Xenoarchaeology.Artifact.Components; using Content.Shared.Xenoarchaeology.Artifact.XAT.Components; namespace Content.Shared.Xenoarchaeology.Artifact.XAT; /// /// System for xeno artifact trigger that requires some way of 'using' (with default action) an artifact entity. /// public sealed class XATInteractionSystem : BaseXATSystem { /// public override void Initialize() { base.Initialize(); XATSubscribeDirectEvent(OnPullStart); XATSubscribeDirectEvent(OnAttacked); XATSubscribeDirectEvent(OnInteractHand); } private void OnPullStart(Entity artifact, Entity node, ref PullStartedMessage args) { Trigger(artifact, node); } private void OnAttacked(Entity artifact, Entity node, ref AttackedEvent args) { Trigger(artifact, node); } private void OnInteractHand(Entity artifact, Entity node, ref InteractHandEvent args) { if (args.Handled) return; args.Handled = true; Trigger(artifact, node); } }