Пример #1
0
        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);
            }
        }
Пример #2
0
        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);
            }
        }
Пример #3
0
 public static void Unregister([NotNull] ISignalReceiver receiver, SignalSpace direction = SignalSpace.Local)
 {
     if (receiver == null)
     {
         throw new ArgumentNullException("receiver");
     }
     Unregister(receiver.Component, receiver.Id, direction);
 }
Пример #4
0
        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));
        }
Пример #5
0
        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);
            }
        }
Пример #6
0
 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);
 }