using Content.Shared._White.Xenomorphs; using Content.Shared.Actions; using Content.Shared.Actions.Components; namespace Content.Shared._White.Actions; public sealed class ActionRelaySystem : EntitySystem { [Dependency] private readonly SharedActionsSystem _actions = default!; public override void Initialize() { SubscribeLocalEvent(RelayEvent); } public void RelayEvent(EntityUid uid, ActionsComponent component, T args) where T : EntityEventArgs { var ev = new ActionRelayedEvent(args); var actions = _actions.GetActions(uid, component); foreach (var action in actions) { RaiseLocalEvent(action.Owner, ev); } } } public sealed class ActionRelayedEvent(TEvent args) : EntityEventArgs { public TEvent Args = args; }