Exemplo n.º 1
0
    private void Update()
    {
        switch (currentMode)
        {
        case InputMode.Idle:
            if (UpdateInIdle != null)
            {
                UpdateInIdle();
            }
            break;

        case InputMode.Properties:
            if (UpdateInProperties != null)
            {
                UpdateInProperties();
            }
            break;

        case InputMode.Connect:
            if (UpdateInConnect != null)
            {
                UpdateInConnect();
            }
            break;

        case InputMode.Drag:
            if (UpdateInDrag != null)
            {
                UpdateInDrag();
            }
            break;
        }
        if (currentMode == InputMode.Idle)
        {
            return;
        }
        if ((Input.GetKeyUp(KeyCode.X) || Input.GetKeyUp(KeyCode.Delete)))
        {
            NodeDrawableBase.allDrawableBases.RemoveAll(x => x.ToString() == CurrentElement.ElementName);
            ElectricalCircuit.Instance.realElements.Remove(CurrentElement);
            Destroy(CurrentElement.transform.parent.gameObject);
            SetMode(InputMode.Idle);
            ElectricalCircuit.Instance.ApplyPhysics();
            ElectricalCircuit.Instance.UpdatePointsOfConnections();
        }
        else if (Input.GetKeyUp(KeyCode.Plus) || Input.GetKeyUp(KeyCode.KeypadPlus))
        {
            CurrentElement.transform.parent.localScale *= 1.5f;
            ElectricalCircuit.Instance.UpdatePointsOfConnections();
        }
        else if (Input.GetKeyUp(KeyCode.Minus) || Input.GetKeyUp(KeyCode.KeypadMinus))
        {
            CurrentElement.transform.parent.localScale /= 1.5f;
            ElectricalCircuit.Instance.UpdatePointsOfConnections();
        }
        else if (Input.GetKeyUp(KeyCode.E))
        {
            ElectricalCircuit.Instance.AddBranchEnd();
        }
        else if (Input.GetKeyUp(KeyCode.K) && ElectricalCircuit.Instance.GetElementByController(CurrentElement) is Key)
        {
            var temp = (Key)(ElectricalCircuit.Instance.GetElementByController(CurrentElement));
            temp.On = !temp.On;
            CurrentElement.GetComponent <Renderer>().material = temp.On ? ResourcesManager.Instance.keyOnMaterial : ResourcesManager.Instance.keyOffMaterial;
            ElectricalCircuit.Instance.ApplyPhysics();
        }
        else if (ElectricalCircuit.Instance.GetElementByController(CurrentElement) is Branch)
        {
            if (Input.GetKeyUp(KeyCode.B))
            {
                addingBranch = true;
                SetMode(InputMode.Connect);
            }
        }
    }