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); } } }
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>()); } }
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); }
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); } }
// 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); } } } } }