public void beginConnection(omniPlug plug) { near = plug; far = plug.otherPlug; if (!outgoing && near.otherPlug.signal != null) { signal = near.otherPlug.signal; } }
void Update() { if (output.near != outputplug) { outputplug = output.near; if (outputplug == null) { signal.freqBuffers.Clear(); System.GC.Collect(); } } if (amp != ampDial.percent) { amp = ampDial.percent; signal.amp = amp * 4; } }
IEnumerator ConnectJacksRoutine(omniJack output, omniJack input) { omniPlug o1 = (Instantiate(output.plugPrefab, output.transform.position, output.transform.rotation) as GameObject).GetComponent <omniPlug>(); o1.outputPlug = false; omniPlug o2 = (Instantiate(output.plugPrefab, output.transform.position, input.transform.rotation) as GameObject).GetComponent <omniPlug>(); o2.outputPlug = true; Vector3[] tempPath = new Vector3[] { output.transform.position, input.transform.position }; Color tempColor = Color.HSVToRGB(0, .8f, .5f); o1.Activate(o2, output, new Vector3[] { }, tempColor); o2.Activate(o1, input, new Vector3[] { output.transform.position, output.transform.position }, tempColor); Vector3 targPos = o2.transform.position; Quaternion targRot = o2.transform.rotation; Quaternion preRot = o1.transform.rotation * Quaternion.Euler(180, 0, 0); float timer = 0; o2.transform.position = output.transform.position; o2.transform.rotation = preRot; o2.connected = o1.connected = null; while (timer < 1) { timer = Mathf.Clamp01(timer + Time.deltaTime * 4); o2.transform.position = Vector3.Lerp(output.transform.position, targPos, timer); o2.transform.rotation = Quaternion.Lerp(preRot, targRot, timer); yield return(null); } o1.connected = output; o2.connected = input; yield return(null); }
void LoadPlugs() { Dictionary <int, omniPlug> temp = new Dictionary <int, omniPlug>(); List <PlugData> ResortedPlugList = new List <PlugData>(); for (int i = 0; i < synthSet.PlugList.Count; i++) { GameObject g = Instantiate(plugPrefab, synthSet.PlugList[i].position, synthSet.PlugList[i].rotation) as GameObject; omniPlug o = g.GetComponent <omniPlug>(); o.ID = synthSet.PlugList[i].ID; o.outputPlug = synthSet.PlugList[i].outputPlug; temp[o.ID] = o; if (!o.outputPlug) { ResortedPlugList.Insert(0, synthSet.PlugList[i]); } else { ResortedPlugList.Add(synthSet.PlugList[i]); } } omniJack[] jacks = FindObjectsOfType(typeof(omniJack)) as omniJack[]; for (int i = 0; i < ResortedPlugList.Count; i++) { omniJack targetJack = null; for (int i2 = 0; i2 < jacks.Length; i2++) { if (jacks[i2].ID == ResortedPlugList[i].connected) { targetJack = jacks[i2]; break; } } if (targetJack == null) { Debug.LogError("NO JACK FOR " + ResortedPlugList[i].connected); } temp[ResortedPlugList[i].ID].Activate(temp[ResortedPlugList[i].otherPlug], targetJack, ResortedPlugList[i].plugPath, ResortedPlugList[i].cordColor); } }
public void Setup(float c, bool outputting, omniPlug other) { Color jackColor = Color.HSVToRGB(c, .8f, .5f); cordColor = Color.HSVToRGB(c, .8f, .2f); mat.SetColor("_TintColor", jackColor); mouseoverFeedback.GetComponent <Renderer>().material.SetColor("_TintColor", jackColor); wireType = masterControl.instance.WireSetting; outputPlug = outputting; otherPlug = other; if (outputPlug) { lr.material.SetColor("_TintColor", cordColor); plugPath.Add(otherPlug.transform.position); updateLineVerts(); lastOtherPlugPos = otherPlug.transform.position; } }
public void Activate(omniPlug siblingPlug, omniJack jackIn, Vector3[] tempPath, Color tempColor) { float h, s, v; Color.RGBToHSV(tempColor, out h, out s, out v); Color c1 = Color.HSVToRGB(h, .8f, .5f); Color c2 = Color.HSVToRGB(h, .8f, .2f); cordColor = tempColor; lr.material.SetColor("_TintColor", c2); mat.SetColor("_TintColor", c1); mouseoverFeedback.GetComponent <Renderer>().material.SetColor("_TintColor", c1); if (outputPlug) { plugPath = tempPath.ToList <Vector3>(); updateLineVerts(); calmTime = 1; } otherPlug = siblingPlug; connected = jackIn; connected.beginConnection(this); signal = connected.homesignal; plugTrans.position = connected.transform.position; plugTrans.rotation = connected.transform.rotation; plugTrans.parent = connected.transform; plugTrans.Rotate(-90, 0, 0); plugTrans.Translate(0, 0, -.02f); transform.parent = plugTrans.parent; transform.position = plugTrans.position; transform.rotation = plugTrans.rotation; plugTrans.parent = transform; lastOtherPlugPos = otherPlug.plugTrans.transform.position; lastPos = transform.position; }
public override void setState(manipState state) { if (curState == state) { return; } curState = state; if (curState == manipState.grabbed) { if (near != null) { manipulatorObj.GetComponent <manipulator>().ForceGrab(near); } else { if (manipulatorObjScript != null) { manipulatorObjScript.hapticPulse(750); } GameObject j = Instantiate(plugPrefab, manipulatorObj.position, manipulatorObj.rotation) as GameObject; near = j.GetComponent <omniPlug>(); near.transform.localScale = transform.localScale; near.transform.parent = transform; near.transform.localPosition = new Vector3(0, -.0175f, 0); near.transform.localRotation = Quaternion.Euler(-90, 0, 0); near.connected = this; near.signal = homesignal; j = Instantiate(plugPrefab, manipulatorObj.position, manipulatorObj.rotation) as GameObject; far = j.GetComponent <omniPlug>(); far.Setup(jackTargetHue, outgoing, near); near.Setup(jackTargetHue, !outgoing, far); manipulatorObj.GetComponent <manipulator>().ForceGrab(far); plugRep.SetActive(false); } } if (curState == manipState.none) { if (near == null) { dimCoroutine = StartCoroutine(dimRoutine()); } else { near.mouseoverEvent(false); } } else if (curState == manipState.selected) { if (dimCoroutine != null) { StopCoroutine(dimCoroutine); } jackColor = Color.HSVToRGB(findHue(), 0.8f, 0.2f); jackRepRend.material.SetFloat("_EmissionGain", .3f); jackRepRend.material.SetColor("_TintColor", jackColor); if (near == null) { plugRep.SetActive(true); } else { near.mouseoverEvent(true); } } }
public void endConnection() { near = null; far = null; }