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); } }
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); }
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); }
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); }
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); }
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); }
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); }); }
private void OnRfBroadcasterAdded(IRFObject obj, int frequency) => _receiverManager.DetonateFrequency(frequency);