Ejemplo n.º 1
0
        /// <summary>
        /// This method is used to keep track of enabled CustomEventReceivers automatically. This is called when then CustomEventReceiver prefab is enabled. Only call this if you write classes that inherit from ICgkEventReceiver.
        /// </summary>
        /// <param name="receiver">The receiver object to register.</param>
        /// <param name="receiverTrans">The Transform of the receiver.</param>
        public static void AddCustomEventReceiver(ICgkEventReceiver receiver, Transform receiverTrans)
        {
            if (AppIsShuttingDown) {
                return;
            }

            // ReSharper disable once ForCanBeConvertedToForeach
            for (var i = 0; i < Instance.customEvents.Count; i++) {
                var anEvent = Instance.customEvents[i];
                if (!receiver.SubscribesToEvent(anEvent.EventName)) {
                    continue;
                }

                if (!ReceiversByEventName.ContainsKey(anEvent.EventName)) {
                    ReceiversByEventName.Add(anEvent.EventName, new Dictionary<ICgkEventReceiver, Transform>
                    {
                        {receiver, receiverTrans}
                    });
                } else {
                    var dict = ReceiversByEventName[anEvent.EventName];
                    if (dict.ContainsKey(receiver)) {
                        continue;
                    }

                    dict.Add(receiver, receiverTrans);
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This method is used to keep track of enabled CustomEventReceivers automatically. This is called when then CustomEventReceiver prefab is disabled.
        /// </summary>
        /// <param name="receiver">The receiver to remove from the tracking list.</param>
        public static void RemoveCustomEventReceiver(ICgkEventReceiver receiver)
        {
            if (AppIsShuttingDown) {
                return;
            }

            // ReSharper disable once ForCanBeConvertedToForeach
            for (var i = 0; i < Instance.customEvents.Count; i++) {
                var anEvent = Instance.customEvents[i];
                if (!receiver.SubscribesToEvent(anEvent.EventName)) {
                    continue;
                }

                var dict = ReceiversByEventName[anEvent.EventName];
                dict.Remove(receiver);
            }
        }
Ejemplo n.º 3
0
 public CustomEventCandidate(float distance, ICgkEventReceiver rec, Transform trans, int randomId)
 {
     DistanceAway = distance;
     Receiver = rec;
     Trans = trans;
     RandomId = randomId;
 }