Example #1
0
    public void beginConnection(omniPlug plug)
    {
        near = plug;
        far  = plug.otherPlug;

        if (!outgoing && near.otherPlug.signal != null)
        {
            signal = near.otherPlug.signal;
        }
    }
Example #2
0
    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;
        }
    }
Example #3
0
    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);
        }
    }
Example #5
0
    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;
        }
    }
Example #6
0
    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;
    }
Example #7
0
    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);
            }
        }
    }
Example #8
0
 public void endConnection()
 {
     near = null;
     far  = null;
 }