Example #1
0
    public void Updater(Vector2 mousePos)
    {
        if (wireRenderer == null)
        {
            wireRenderer = GetComponent <LineRenderer>();
        }

        if (clickableArea == null)
        {
            clickableArea = GetComponent <EdgeCollider2D>();
        }

        if (connectedPins == 1)
        {
            int i = connections[0] == null?1:0;
            wireRenderer.SetPosition(0, new Vector3(connections[i].transform.position.x, connections[i].transform.position.y, transform.position.z));
            wireRenderer.SetPosition(1, new Vector3(mousePos.x, mousePos.y, transform.position.z));

            if (Input.GetKeyDown(KeyCode.Escape))
            {
                connections[i].wire = null;
                Destroy(gameObject);
                connectedPins--;
            }

            if (ToolController.SelectedTool != ToolController.ToolType.WIRE)
            {
                connections[i].wire = null;
                Destroy(gameObject);
                connectedPins--;
            }
        }
        else if (connectedPins == 2)
        {
            Vector3 pos1 = new Vector3(connections[0].transform.position.x, connections[0].transform.position.y, transform.position.z);
            Vector3 pos2 = new Vector3(connections[1].transform.position.x, connections[1].transform.position.y, transform.position.z);
            wireRenderer.SetPosition(0, pos1);
            wireRenderer.SetPosition(1, pos2);
            clickableArea.points = new Vector2[] { pos1, pos2 };

            foreach (var pin in connections)
            {
                if (pin.input)
                {
                    pin.SetState(state);
                }
                else
                {
                    state = pin.GetState();
                }
            }

            if (Input.GetMouseButtonDown(0) && (ToolController.SelectedTool == ToolController.ToolType.WIRE_CUTTER) && Application.isPlaying)
            {
                if (clickableArea.OverlapPoint(mousePosition))
                {
                    foreach (var pin in connections)
                    {
                        pin.wire = null;
                    }
                    Destroy(gameObject);
                }
            }
        }
    }