Esempio n. 1
0
    public static void SensorConnectionRemoved(SensorConnection sen)
    {
        SensorConnectionFile file;
        SensorConnector      start = sen.GetStart().GetComponent <SensorConnector>();
        Controller           end   = sen.GetEnd().GetComponent <Controller>();

        file = new SensorConnectionFile(start.table, start.sensor.location, end.GetTableNum(), end.GetSeatNum());

        int endpoint = sensorConnectionsToReset.Count;          //Avoid changing list while iterating.

        for (int i = endpoint - 1; i >= 0; i--)
        {
            if (sensorConnectionsToReset[i].Equals(sen.gameObject))
            {
                sensorConnectionsToReset.Remove(sen.gameObject);
            }
        }

        endpoint = spawnedSensorConnections.Count;
        for (int i = endpoint - 1; i >= 0; i--)
        {
            if (spawnedSensorConnections[i].Equals(file))
            {
                spawnedSensorConnections.Remove(file);
            }
        }
    }
Esempio n. 2
0
 void RpcDeleteSensorConnection(GameObject presynapse, GameObject toDelete)
 {
     if (toDelete != null)
     {
         SensorConnection deleteConnection = toDelete.GetComponent <SensorConnection>();
         //SensorConnector presynapse = deleteConnection.GetStart().GetComponent<SensorConnector>();
         presynapse.GetComponent <SensorConnector>().DetachFromSensor(deleteConnection.GetEnd().GetComponent <Controller>());
     }
 }
Esempio n. 3
0
    void CmdDeleteSensorConnection(GameObject toDelete)
    {
        SensorConnection deleteConnection = toDelete.GetComponent <SensorConnection>();
        SensorConnector  presynapse       = deleteConnection.GetStart().GetComponent <SensorConnector>();

        presynapse.DetachFromSensor(deleteConnection.GetEnd().GetComponent <Controller>());
        RpcDeleteSensorConnection(presynapse.gameObject, toDelete);
        GameSave.SensorConnectionRemoved(deleteConnection);
        deleteConnection.Destroy(false);
    }
Esempio n. 4
0
    public static void SensorConnectionMade(SensorConnection sen)
    {
        SensorConnectionFile file;
        SensorConnector      start = sen.GetStart().GetComponent <SensorConnector>();
        Controller           end   = sen.GetEnd().GetComponent <Controller>();

        file = new SensorConnectionFile(start.table, start.sensor.location, end.GetTableNum(), end.GetSeatNum());
        sensorConnectionsToReset.Add(sen.gameObject);
        if (!spawnedSensorConnections.Contains(file))
        {
            spawnedSensorConnections.Add(file);
        }
    }
Esempio n. 5
0
    // Update is called once per frame
    void Update()
    {
        if (!isLocalPlayer || isInstructor)
        {
            if (!isBeingControlled)               //If instructor isn't currently controlling.
            {
                return;
            }
        }

        //Left click creates connections, deletes connections
        if (Input.GetMouseButtonUp(0))
        {
            if (!UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())
            {
                Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);
                RaycastHit hit;

                if (Physics.Raycast(ray, out hit, 100))
                {
                    //Check if neuron
                    if (canConnect && hit.transform.gameObject.GetComponent <Controller>() != null)
                    {
                        if (hit.transform.gameObject.Equals(cubeInstance.transform.gameObject))
                        {
                            //Same object; bring up own parameter dialogue
                            GetComponent <Controller>().CmdOpenSetNeuronParameters(gameObject, gameObject);
                            //return;
                        }
                        else
                        {
                            //Different object; try to connect
                            CmdAskSpawnConnection(cubeInstance.transform.gameObject, hit.transform.gameObject);
                        }
                    }

                    //Check if connection
                    Connection toDelete = hit.transform.gameObject.GetComponent <Connection>();
                    if (toDelete != null)
                    {
                        //Check if client is connected to said connection
                        if (toDelete.GetStart().Equals(cubeInstance.transform.gameObject) ||
                            toDelete.GetEnd().Equals(cubeInstance.transform.gameObject))
                        {
                            //Send delete request
                            AskDeleteConnection(toDelete.gameObject);
                        }
                    }

                    //Check if sensor connection
                    SensorConnection toDeleteS = hit.transform.gameObject.GetComponent <SensorConnection>();
                    if (toDeleteS != null)
                    {
                        //Check if client is connected to sensor
                        if (toDeleteS.GetEnd().Equals(cubeInstance.transform.gameObject))
                        {
                            //Send delete request
                            AskDeleteSensorConnection(toDeleteS.gameObject);
                        }
                    }

                    //Check if muscle connection
                    MuscleConnection toDeleteM = hit.transform.gameObject.GetComponent <MuscleConnection>();
                    if (toDeleteM != null)
                    {
                        //Check if client is connected to sensor
                        if (toDeleteM.GetStart().Equals(cubeInstance.transform.gameObject))
                        {
                            //Send delete request
                            AskDeleteMuscleConnection(toDeleteM.gameObject);
                        }
                    }

                    //Check if sensor
                    if (canConnect && hit.transform.gameObject.GetComponent <SensorConnector>() != null)
                    {
                        //Connect to sensor
                        CmdSensorConnection(cubeInstance.transform.gameObject, hit.transform.gameObject);
                    }

                    //Check if muscle
                    if (canConnect && hit.transform.gameObject.GetComponent <Muscle>() != null)
                    {
                        //Connect to muscle
                        CmdMuscleConnection(cubeInstance.transform.gameObject, hit.transform.gameObject);
                    }
                }
            }
        }
    }