void Awake() { InputSpriteController.initializeSpriteDictionaries(); InputSpriteController.setInputIconSprites(KeyboardMap.SpriteCodes, KeyboardMap.Sprites, InputType.KEYBOARD_WIN); InputSpriteController.setInputIconSprites(PSMap.SpriteCodes, PSMap.Sprites, InputType.CONTROLLER_PS); InputSpriteController.setInputIconSprites(XboxMap.SpriteCodes, XboxMap.Sprites, InputType.CONTROLLER_XBOX); InputSpriteController.SetEmptySprite(EmptyInputSprite); }
// Start is called before the first frame update void Start() { InitializeData(); InitializeStateMachine(); if (InputSpriteController.getInputSprite(out spriteOut, c_controllerData.k, this.InputType)) { SpriteDisplay.sprite = spriteOut; } }
public void InputUnbind() { c_controllerData.k = KeyCode.None; GlobalInputController.UpdateAction(InputAction, c_controllerData.k, this.InputType); GlobalGameData.SetActionSetting(InputAction, c_controllerData.k, this.InputType); if (InputSpriteController.getInputSprite(out spriteOut, c_controllerData.k, this.InputType)) { SpriteDisplay.sprite = spriteOut; } }
// TODO: swapping a key with pause will not also update the "other mutex" buttons, allowing for a multiple mapping edge case public void InputSwap(KeyCode keyIn) { c_controllerData.k = keyIn; GlobalInputController.UpdateAction(InputAction, c_controllerData.k, this.InputType); GlobalGameData.SetActionSetting(InputAction, c_controllerData.k, this.InputType); if (InputSpriteController.getInputSprite(out spriteOut, c_controllerData.k, this.InputType)) { SpriteDisplay.sprite = spriteOut; } MessageServer.SendMessage(MessageID.EDIT_DISPLAY_UPDATE, new Message((int)c_controllerData.k, (uint)InputAction).withInputType(this.InputType)); }
// Update is called once per frame public override void UpdateEditor() { if (c_controllerData.b_editorActive == false) { return; } if (GlobalInputController.GetInputAction(ControlAction.CONFIRM, KeyValue.IDLE)) { GlobalInputController.StartWatchForAnyInput(); SpriteDisplay.sprite = InputSpriteController.EmptySprite(); } KeyCode keyIn = GlobalInputController.GetAnyKey(); if (keyIn == KeyCode.Escape) { GlobalInputController.StopWatchForAnyInput(); CancelDataEdit(); if (InputSpriteController.getInputSprite(out spriteOut, c_controllerData.k, this.InputType)) { SpriteDisplay.sprite = spriteOut; } } else if (keyIn != KeyCode.None) { GlobalInputController.StopWatchForAnyInput(); VerifyAndUpdateMutex(keyIn); if (InputSpriteController.getInputSprite(out spriteOut, keyIn, this.InputType)) { SpriteDisplay.sprite = spriteOut; } c_controllerData.k = keyIn; ConfirmDataEdit(CurrentTarget); } // no state machine needed, handled by isActive EnginePush(); }