void Update() { recently_unfocused -= Time.deltaTime; transition_time -= Time.deltaTime; pos = Camera.main.ScreenToWorldPoint(Input.mousePosition); pos.x = Mathf.Round(pos.x); pos.y = Mathf.Round(pos.y); if (selected != "") { interpreter.text = ship.GetComponentToString(selected); interpreter.GetComponent <RectTransform>().sizeDelta = new Vector2(interpreter.GetComponent <RectTransform>().sizeDelta.x, interpreter.text.Split('\n').Length * 26); } else if (focused != "") { interpreter.text = ship.GetComponentToString(focused); interpreter.GetComponent <RectTransform>().sizeDelta = new Vector2(interpreter.GetComponent <RectTransform>().sizeDelta.x, interpreter.text.Split('\n').Length * 26); } else { placement_overlay.transform.position = pos; interpreter.text = ""; interpreter.GetComponent <RectTransform>().sizeDelta = new Vector2(interpreter.GetComponent <RectTransform>().sizeDelta.x, interpreter.text.Split('\n').Length * 26); } if (Input.GetMouseButtonDown(0)) { clicked = true; click_duration = Time.time; } if (Input.GetMouseButtonUp(0) && Time.time - click_duration < .5f) { selected_processor = ship.GetProcessorController(selected); if (selected_processor != null && Input.mousePosition.x > 3 * Screen.width / 4 && Input.mousePosition.y < 9 * Screen.height / 10) { SwitchLeftView(Syntax); toggles[GetActiveToggle()].isOn = false; } if (selected == "" && recently_unfocused < 0 && Input.mousePosition.x > Screen.width / 4 && Input.mousePosition.x < 3 * Screen.width / 4) { if (focused != "") { Select(focused); } else { GameObject object_reference = Prefabs[GetActiveToggle()]; var component_gameObject = Instantiate(object_reference, pos, Quaternion.Euler(new Vector3(0, 0, 0))) as GameObject; //move this logic to structure controller, use IfKeyExists int component_count = 1; while (ship.transform.Find("Rotator").Find(object_reference.name + component_count) != null) { component_count++; } component_gameObject.name = object_reference.name + component_count; component_gameObject.GetComponent <SpriteRenderer>().size = object_reference.GetComponent <ComponentController>().GetMinimumSize(); component_gameObject.transform.SetParent(ship.transform.Find("Rotator")); component_gameObject.transform.localPosition = new Vector2( Mathf.Round(component_gameObject.transform.localPosition.x), Mathf.Round(component_gameObject.transform.localPosition.y) ); component_gameObject.transform.localEulerAngles = new Vector3(0, 0, 0); // Focus(component_gameObject.name); } } } }