Пример #1
0
 public static void ChangeFrequency(
     int oldFrequency,
     int newFrequency,
     IRFObject obj,
     bool isListener,
     bool isOn = true)
 {
     newFrequency = RFManager.ClampFrequency(newFrequency);
     if (isListener)
     {
         RFManager.RemoveListener(oldFrequency, obj);
         if (!isOn)
         {
             return;
         }
         RFManager.AddListener(newFrequency, obj);
     }
     else
     {
         RFManager.RemoveBroadcaster(oldFrequency, obj);
         if (!isOn)
         {
             return;
         }
         RFManager.AddBroadcaster(newFrequency, obj);
     }
 }
Пример #2
0
    public static void RemoveBroadcaster(int frequency, IRFObject obj)
    {
        frequency = RFManager.ClampFrequency(frequency);
        List <IRFObject> broadcasterList = RFManager.GetBroadcasterList(frequency);

        if (broadcasterList.Contains(obj))
        {
            broadcasterList.Remove(obj);
        }
        RFManager.MarkFrequencyDirty(frequency);
    }
Пример #3
0
    public static void RemoveListener(int frequency, IRFObject obj)
    {
        frequency = RFManager.ClampFrequency(frequency);
        List <IRFObject> listenList = RFManager.GetListenList(frequency);

        if (listenList.Contains(obj))
        {
            listenList.Remove(obj);
        }
        obj.RFSignalUpdate(false);
    }
Пример #4
0
    public static void AddBroadcaster(int frequency, IRFObject obj)
    {
        frequency = RFManager.ClampFrequency(frequency);
        List <IRFObject> broadcasterList = RFManager.GetBroadcasterList(frequency);

        if (broadcasterList.Contains(obj))
        {
            return;
        }
        broadcasterList.Add(obj);
        RFManager.MarkFrequencyDirty(frequency);
    }
Пример #5
0
    public static void AddListener(int frequency, IRFObject obj)
    {
        frequency = RFManager.ClampFrequency(frequency);
        List <IRFObject> listenList = RFManager.GetListenList(frequency);

        if (listenList.Contains(obj))
        {
            Debug.Log("adding same listener twice");
            return;
        }
        listenList.Add(obj);
        RFManager.MarkFrequencyDirty(frequency);
    }
Пример #6
0
        private void OnRfListenerRemoved(IRFObject obj, int frequency)
        {
            var receiver = obj as RFReceiver;

            if (receiver == null)
            {
                return;
            }

            var car = GetReceiverCar(receiver);

            if (car == null || !IsBombTruck(car))
            {
                return;
            }

            _receiverManager.RemoveReceiver(frequency, receiver);
        }
Пример #7
0
        private void OnRfListenerAdded(IRFObject obj, int frequency)
        {
            var receiver = obj as RFReceiver;

            if (receiver == null)
            {
                return;
            }

            // Need to delay checking for the car since the receiver is spawned unparented to mitigate rendering bug.
            NextTick(() =>
            {
                var car = GetReceiverCar(receiver);
                if (car == null || !IsBombTruck(car))
                {
                    return;
                }

                _receiverManager.AddReceiver(frequency, receiver);
            });
        }
Пример #8
0
 private void OnRfBroadcasterAdded(IRFObject obj, int frequency) =>
 _receiverManager.DetonateFrequency(frequency);