CatStation/Content.Shared/Trigger/Systems/TriggerOnEmbedSystem.cs
DrSmugleaf 65f5f67cd5
Make every EntitySystem partial (#45220)
* Make every EntitySystem partial

* Oobs thats for a diff PR

* Also oops on that one

* Test systems

* git are we fr

* Update file templates

* cleanup empty classes while we are here

* forgor

---------

Co-authored-by: AJCM-git <ajcm_mail@disroot.org>
2026-08-14 18:24:47 +00:00

31 lines
1 KiB
C#

using Content.Shared.Projectiles;
using Content.Shared.Trigger.Components.Triggers;
namespace Content.Shared.Trigger.Systems;
/// <summary>
/// This handles <see cref="TriggerOnEmbedComponent"/> subscriptions.
/// </summary>
public sealed partial class TriggerOnEmbedSystem : TriggerOnXSystem
{
/// <inheritdoc/>
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<TriggerOnEmbedComponent, EmbedEvent>(OnEmbed);
SubscribeLocalEvent<TriggerOnUnembedComponent, EmbedDetachEvent>(OnStopEmbed);
}
private void OnEmbed(Entity<TriggerOnEmbedComponent> ent, ref EmbedEvent args)
{
var user = ent.Comp.UserIsEmbeddedInto ? args.Embedded : args.Shooter;
Trigger.Trigger(ent, user, ent.Comp.KeyOut);
}
private void OnStopEmbed(Entity<TriggerOnUnembedComponent> ent, ref EmbedDetachEvent args)
{
var user = ent.Comp.UserIsEmbeddedInto ? args.Embedded : args.Detacher;
Trigger.Trigger(ent, user, ent.Comp.KeyOut);
}
}