public void SendSignal(string name) { Signal.Config signal = signals.FirstOrDefault(x => x.Name == name); if (signal != null) { SendSignal(signals.IndexOf(signal)); } }
/// <summary> /// Returns the signals index with given "name". /// </summary> public int GetSignalIndex(string name, string objectName) { Signal.Config signal = GetSignal(name, objectName); if (signal == null) { return(-1); } return(signals.IndexOf(signal)); }
//Process incoming signal private void ProcessSignal(Signal.Config signal, Vector3 pos) { if (!recording || pause || !signal.Record) { return; } if (DontRecordInBuild) { return; } if (signal.LookUpObject == null) { Debug.LogError(string.Format("Look up object of the signal {0} not found!", signal.Name)); return; } if (runtimeSignals.ContainsKey(signal.LookUpObject.name)) { Signal.Runtime targetSignal = runtimeSignals[signal.LookUpObject.name].FirstOrDefault(x => x.name == signal.Name); if (targetSignal == null) { targetSignal = new Signal.Runtime(signal.Name, signal.LookUpObject.name, signal.CountThreshold, signal.GizmoColor, signal.GizmoSize, signal.GizmoType); runtimeSignals[signal.LookUpObject.name].Add(targetSignal); } float minDist = 10000; Signal.Data targetData = null; foreach (Signal.Data data in targetSignal.Data) { float dist = Vector3.Distance(pos, data.pos); if (dist < minDist) { minDist = dist; targetData = data; } } if (minDist <= signal.DistanceThreshold) { targetData.count++; } else { targetSignal.Add(new Signal.Data(pos, 1, Time.timeSinceLevelLoad)); } } else { runtimeSignals.Add(signal.LookUpObject.name, new List <Signal.Runtime>() { { new Signal.Runtime(signal.Name, signal.LookUpObject.name, signal.CountThreshold, signal.GizmoColor, signal.GizmoSize, signal.GizmoType) } }); } }
/// <summary> /// Add new signal config. /// </summary> /// <returns>Index of the new signal config. Return -1 if failed to add.</returns> public int AddSignal(Signal.Config config) { if (config.LookUpObject == null) { Debug.LogError("Signal doesnt have the look up object!"); return(-1); } config.Init(); Signal.Config signal = signals.FirstOrDefault(x => x.ObjectName == config.ObjectName && x.Name == config.Name); if (signal != null) { int index = signals.IndexOf(signal); signals[index] = config; return(index); } else { signals.Add(config); return(signals.Count - 1); } }