public static bool Send(Component sender, int signal, object data = null, SignalSpace direction = SignalSpace.Local) { if (IsQuitting) { return(false); } if (IsQuitting) { return(false); } switch (direction) { case SignalSpace.Local: return(FindHub(sender).Send(sender, signal, data)); case SignalSpace.Parent: return(FindParentHub(sender).Send(sender, signal, data)); case SignalSpace.Global: return(GlobalHub.Send(sender, signal, data)); default: throw new ArgumentOutOfRangeException("direction", direction, null); } }
public static void Unregister(Component receiver, int signal, SignalSpace direction = SignalSpace.Local) { if (IsQuitting) { return; } switch (direction) { case SignalSpace.Local: SignalHub hub = FindHub(receiver); hub.Unregister(receiver, signal); break; case SignalSpace.Parent: SignalHub parentHub = FindParentHub(receiver); parentHub.Unregister(receiver, signal); break; case SignalSpace.Global: GlobalHub.Unregister(receiver, signal); break; default: throw new ArgumentOutOfRangeException("direction", direction, null); } }
public static void Unregister([NotNull] ISignalReceiver receiver, SignalSpace direction = SignalSpace.Local) { if (receiver == null) { throw new ArgumentNullException("receiver"); } Unregister(receiver.Component, receiver.Id, direction); }
public static bool Send([NotNull] ISignalSender sender, object data = null, SignalSpace direction = SignalSpace.Local) { if (sender == null) { throw new ArgumentNullException("sender"); } return(Send(sender.Component, sender.Id, data, direction)); }
public static void Register(Component receiver, int signal, Action <Component, object> callback, SignalSpace direction = SignalSpace.Local) { if (IsQuitting) { return; } switch (direction) { case SignalSpace.Local: FindHub(receiver).Register(receiver, signal, callback); break; case SignalSpace.Parent: FindParentHub(receiver).Register(receiver, signal, callback); break; case SignalSpace.Global: GlobalHub.Register(receiver, signal, callback); break; default: throw new ArgumentOutOfRangeException("direction", direction, null); } }
public static void Register(Component receiver, int signal, [NotNull] Action <Component> callback, SignalSpace direction = SignalSpace.Local) { if (callback == null) { throw new ArgumentNullException("callback"); } Register(receiver, signal, (sender, data) => callback(sender), direction); }