Example #1
0
        public void Update()
        {
            if (Game.AddPiece == null || StatMaster.isSimulating)
            {
                return;
            }

            if (toggleKey.Pressed())
            {
                button.Value = !button.Value;
            }

            if (!active)
            {
                return;
            }

            if (modifiyingGroup != null)
            {
                editInterface.BuildingUpdate();
            }
            else if (currentGroupToMap != null)
            {
                var keyToSet = KeyCode.None;

                if (Input.inputString.Length > 0 && !Input.inputString.Contains('\u0008' + ""))
                {
                    var key = KeyCode.None;
                    try
                    {
                        key = (KeyCode)Enum.Parse(typeof(KeyCode),
                                                  (Input.inputString[0] + "").ToUpper());
                    }
                    catch (Exception e) { }

                    keyToSet = key;
                }

                var keyCode = KeyCode.None;
                foreach (var key in SpecialKeys)
                {
                    if (Input.GetKeyDown(key))
                    {
                        keyCode = key;
                        break;
                    }
                }
                if (keyCode != KeyCode.None)
                {
                    keyToSet = keyCode;
                }

                if (keyToSet != KeyCode.None)
                {
                    if (currentKeyToMap < currentGroupToMap.Keybindings.Keys.Count)
                    {
                        var previousKey = currentGroupToMap.Keybindings.Keys.ElementAt(currentKeyToMap);
                        currentGroupToMap.ChangeKey(previousKey, keyToSet);
                    }
                    else
                    {
                        currentGroupToMap.AddKey(keyToSet);
                    }
                }
            }
        }