mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2024-12-29 12:20:41 +00:00
432 lines
15 KiB
Lua
432 lines
15 KiB
Lua
---
|
|
-- `openmw.input` can be used only in menu scripts and scripts attached to a player.
|
|
-- @module input
|
|
-- @usage local input = require('openmw.input')
|
|
|
|
|
|
|
|
---
|
|
-- Is player idle.
|
|
-- @function [parent=#input] isIdle
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- (DEPRECATED, use getBooleanActionValue) Input bindings can be changed ingame using Options/Controls menu.
|
|
-- @function [parent=#input] isActionPressed
|
|
-- @param #number actionId One of @{openmw.input#ACTION}
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is a keyboard button currently pressed.
|
|
-- @function [parent=#input] isKeyPressed
|
|
-- @param #KeyCode keyCode Key code (see @{openmw.input#KEY})
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is a controller button currently pressed.
|
|
-- @function [parent=#input] isControllerButtonPressed
|
|
-- @param #number buttonId Button index (see @{openmw.input#CONTROLLER_BUTTON})
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is `Shift` key pressed.
|
|
-- @function [parent=#input] isShiftPressed
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is `Ctrl` key pressed.
|
|
-- @function [parent=#input] isCtrlPressed
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is `Alt` key pressed.
|
|
-- @function [parent=#input] isAltPressed
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is `Super`/`Win` key pressed.
|
|
-- @function [parent=#input] isSuperPressed
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Is a mouse button currently pressed.
|
|
-- @function [parent=#input] isMouseButtonPressed
|
|
-- @param #number buttonId Button index (1 - left, 2 - middle, 3 - right, 4 - X1, 5 - X2)
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Horizontal mouse movement during the last frame.
|
|
-- @function [parent=#input] getMouseMoveX
|
|
-- @return #number
|
|
|
|
---
|
|
-- Vertical mouse movement during the last frame.
|
|
-- @function [parent=#input] getMouseMoveY
|
|
-- @return #number
|
|
|
|
---
|
|
-- Get value of an axis of a game controller.
|
|
-- @function [parent=#input] getAxisValue
|
|
-- @param #number axisId Index of a controller axis, one of @{openmw.input#CONTROLLER_AXIS}.
|
|
-- @return #number Value in range [-1, 1].
|
|
|
|
---
|
|
-- Returns a human readable name for the given key code
|
|
-- @function [parent=#input] getKeyName
|
|
-- @param #KeyCode code A key code (see @{openmw.input#KEY})
|
|
-- @return #string
|
|
|
|
---
|
|
-- [Deprecated, moved to types.Player] Get state of a control switch. I.e. is player able to move/fight/jump/etc.
|
|
-- @function [parent=#input] getControlSwitch
|
|
-- @param #ControlSwitch key Control type (see @{openmw.input#CONTROL_SWITCH})
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- [Deprecated, moved to types.Player] Set state of a control switch. I.e. forbid or allow player to move/fight/jump/etc.
|
|
-- @function [parent=#input] setControlSwitch
|
|
-- @param #ControlSwitch key Control type (see @{openmw.input#CONTROL_SWITCH})
|
|
-- @param #boolean value
|
|
|
|
---
|
|
-- String id of a @{#CONTROL_SWITCH}
|
|
-- @type ControlSwitch
|
|
|
|
---
|
|
-- @type CONTROL_SWITCH
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch Controls Ability to move
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch Fighting Ability to attack
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch Jumping Ability to jump
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch Looking Ability to change view direction
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch Magic Ability to use magic
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch ViewMode Ability to toggle 1st/3rd person view
|
|
-- @field [parent=#CONTROL_SWITCH] #ControlSwitch VanityMode Vanity view if player doesn't touch controls for a long time
|
|
|
|
---
|
|
-- [Deprecated, moved to types.Player] Values that can be used with getControlSwitch/setControlSwitch.
|
|
-- @field [parent=#input] #CONTROL_SWITCH CONTROL_SWITCH
|
|
|
|
---
|
|
-- (DEPRECATED, use actions with matching keys)
|
|
-- @type ACTION
|
|
-- @field [parent=#ACTION] #number GameMenu
|
|
-- @field [parent=#ACTION] #number Screenshot
|
|
-- @field [parent=#ACTION] #number Inventory
|
|
-- @field [parent=#ACTION] #number Console
|
|
-- @field [parent=#ACTION] #number MoveLeft
|
|
-- @field [parent=#ACTION] #number MoveRight
|
|
-- @field [parent=#ACTION] #number MoveForward
|
|
-- @field [parent=#ACTION] #number MoveBackward
|
|
-- @field [parent=#ACTION] #number Activate
|
|
-- @field [parent=#ACTION] #number Use
|
|
-- @field [parent=#ACTION] #number Jump
|
|
-- @field [parent=#ACTION] #number AutoMove
|
|
-- @field [parent=#ACTION] #number Journal
|
|
-- @field [parent=#ACTION] #number Run
|
|
-- @field [parent=#ACTION] #number CycleSpellLeft
|
|
-- @field [parent=#ACTION] #number CycleSpellRight
|
|
-- @field [parent=#ACTION] #number CycleWeaponLeft
|
|
-- @field [parent=#ACTION] #number CycleWeaponRight
|
|
-- @field [parent=#ACTION] #number AlwaysRun
|
|
-- @field [parent=#ACTION] #number Sneak
|
|
-- @field [parent=#ACTION] #number QuickSave
|
|
-- @field [parent=#ACTION] #number QuickLoad
|
|
-- @field [parent=#ACTION] #number QuickMenu
|
|
-- @field [parent=#ACTION] #number ToggleWeapon
|
|
-- @field [parent=#ACTION] #number ToggleSpell
|
|
-- @field [parent=#ACTION] #number TogglePOV
|
|
-- @field [parent=#ACTION] #number QuickKey1
|
|
-- @field [parent=#ACTION] #number QuickKey2
|
|
-- @field [parent=#ACTION] #number QuickKey3
|
|
-- @field [parent=#ACTION] #number QuickKey4
|
|
-- @field [parent=#ACTION] #number QuickKey5
|
|
-- @field [parent=#ACTION] #number QuickKey6
|
|
-- @field [parent=#ACTION] #number QuickKey7
|
|
-- @field [parent=#ACTION] #number QuickKey8
|
|
-- @field [parent=#ACTION] #number QuickKey9
|
|
-- @field [parent=#ACTION] #number QuickKey10
|
|
-- @field [parent=#ACTION] #number QuickKeysMenu
|
|
-- @field [parent=#ACTION] #number ToggleHUD
|
|
-- @field [parent=#ACTION] #number ToggleDebug
|
|
-- @field [parent=#ACTION] #number ZoomIn
|
|
-- @field [parent=#ACTION] #number ZoomOut
|
|
-- @field [parent=#ACTION] #number TogglePostProcessorHUD
|
|
|
|
---
|
|
-- (DEPRECATED, use getBooleanActionValue) Values that can be used with isActionPressed.
|
|
-- @field [parent=#input] #ACTION ACTION
|
|
|
|
---
|
|
-- @type CONTROLLER_BUTTON
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number A
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number B
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number X
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number Y
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number Back
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number Guide
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number Start
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number LeftStick
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number RightStick
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number LeftShoulder
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number RightShoulder
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number DPadUp
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number DPadDown
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number DPadLeft
|
|
-- @field [parent=#CONTROLLER_BUTTON] #number DPadRight
|
|
|
|
---
|
|
-- Values that can be passed to onControllerButtonPress/onControllerButtonRelease engine handlers.
|
|
-- @field [parent=#input] #CONTROLLER_BUTTON CONTROLLER_BUTTON
|
|
|
|
---
|
|
-- Ids of game controller axises. Used as an argument in getAxisValue.
|
|
-- @type CONTROLLER_AXIS
|
|
-- @field [parent=#CONTROLLER_AXIS] #number LeftX Left stick horizontal axis (from -1 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number LeftY Left stick vertical axis (from -1 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number RightX Right stick horizontal axis (from -1 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number RightY Right stick vertical axis (from -1 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number TriggerLeft Left trigger (from 0 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number TriggerRight Right trigger (from 0 to 1)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number LookUpDown (DEPRECATED, use the LookUpDown action) View direction vertical axis (RightY by default, can be mapped to another axis in Options/Controls menu)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number LookLeftRight (DEPRECATED, use the LookLeftRight action) View direction horizontal axis (RightX by default, can be mapped to another axis in Options/Controls menu)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number MoveForwardBackward (DEPRECATED, use the MoveForwardBackward action) Movement forward/backward (LeftY by default, can be mapped to another axis in Options/Controls menu)
|
|
-- @field [parent=#CONTROLLER_AXIS] #number MoveLeftRight (DEPRECATED, use the MoveLeftRight action) Side movement (LeftX by default, can be mapped to another axis in Options/Controls menu)
|
|
|
|
---
|
|
-- Values that can be used with getAxisValue.
|
|
-- @field [parent=#input] #CONTROLLER_AXIS CONTROLLER_AXIS
|
|
|
|
---
|
|
-- Numeric id of a @{#KEY}
|
|
-- @type KeyCode
|
|
|
|
---
|
|
-- @type KEY
|
|
-- @field #KeyCode _0
|
|
-- @field #KeyCode _1
|
|
-- @field #KeyCode _2
|
|
-- @field #KeyCode _3
|
|
-- @field #KeyCode _4
|
|
-- @field #KeyCode _5
|
|
-- @field #KeyCode _6
|
|
-- @field #KeyCode _7
|
|
-- @field #KeyCode _8
|
|
-- @field #KeyCode _9
|
|
-- @field #KeyCode NP_0
|
|
-- @field #KeyCode NP_1
|
|
-- @field #KeyCode NP_2
|
|
-- @field #KeyCode NP_3
|
|
-- @field #KeyCode NP_4
|
|
-- @field #KeyCode NP_5
|
|
-- @field #KeyCode NP_6
|
|
-- @field #KeyCode NP_7
|
|
-- @field #KeyCode NP_8
|
|
-- @field #KeyCode NP_9
|
|
-- @field #KeyCode NP_Divide
|
|
-- @field #KeyCode NP_Enter
|
|
-- @field #KeyCode NP_Minus
|
|
-- @field #KeyCode NP_Multiply
|
|
-- @field #KeyCode NP_Delete
|
|
-- @field #KeyCode NP_Plus
|
|
-- @field #KeyCode F1
|
|
-- @field #KeyCode F2
|
|
-- @field #KeyCode F3
|
|
-- @field #KeyCode F4
|
|
-- @field #KeyCode F5
|
|
-- @field #KeyCode F6
|
|
-- @field #KeyCode F7
|
|
-- @field #KeyCode F8
|
|
-- @field #KeyCode F9
|
|
-- @field #KeyCode F10
|
|
-- @field #KeyCode F11
|
|
-- @field #KeyCode F12
|
|
-- @field #KeyCode A
|
|
-- @field #KeyCode B
|
|
-- @field #KeyCode C
|
|
-- @field #KeyCode D
|
|
-- @field #KeyCode E
|
|
-- @field #KeyCode F
|
|
-- @field #KeyCode G
|
|
-- @field #KeyCode H
|
|
-- @field #KeyCode I
|
|
-- @field #KeyCode J
|
|
-- @field #KeyCode K
|
|
-- @field #KeyCode L
|
|
-- @field #KeyCode M
|
|
-- @field #KeyCode N
|
|
-- @field #KeyCode O
|
|
-- @field #KeyCode P
|
|
-- @field #KeyCode Q
|
|
-- @field #KeyCode R
|
|
-- @field #KeyCode S
|
|
-- @field #KeyCode T
|
|
-- @field #KeyCode U
|
|
-- @field #KeyCode V
|
|
-- @field #KeyCode W
|
|
-- @field #KeyCode X
|
|
-- @field #KeyCode Y
|
|
-- @field #KeyCode Z
|
|
-- @field #KeyCode LeftArrow
|
|
-- @field #KeyCode RightArrow
|
|
-- @field #KeyCode UpArrow
|
|
-- @field #KeyCode DownArrow
|
|
-- @field #KeyCode LeftAlt
|
|
-- @field #KeyCode LeftCtrl
|
|
-- @field #KeyCode LeftBracket
|
|
-- @field #KeyCode LeftSuper
|
|
-- @field #KeyCode LeftShift
|
|
-- @field #KeyCode RightAlt
|
|
-- @field #KeyCode RightCtrl
|
|
-- @field #KeyCode RightBracket
|
|
-- @field #KeyCode RightSuper
|
|
-- @field #KeyCode RightShift
|
|
-- @field #KeyCode Apostrophe
|
|
-- @field #KeyCode BackSlash
|
|
-- @field #KeyCode Backspace
|
|
-- @field #KeyCode CapsLock
|
|
-- @field #KeyCode Comma
|
|
-- @field #KeyCode Delete
|
|
-- @field #KeyCode End
|
|
-- @field #KeyCode Enter
|
|
-- @field #KeyCode Equals
|
|
-- @field #KeyCode Escape
|
|
-- @field #KeyCode Home
|
|
-- @field #KeyCode Insert
|
|
-- @field #KeyCode Minus
|
|
-- @field #KeyCode NumLock
|
|
-- @field #KeyCode PageDown
|
|
-- @field #KeyCode PageUp
|
|
-- @field #KeyCode Pause
|
|
-- @field #KeyCode Period
|
|
-- @field #KeyCode PrintScreen
|
|
-- @field #KeyCode ScrollLock
|
|
-- @field #KeyCode Semicolon
|
|
-- @field #KeyCode Slash
|
|
-- @field #KeyCode Space
|
|
-- @field #KeyCode Tab
|
|
|
|
---
|
|
-- Key codes.
|
|
-- @field [parent=#input] #KEY KEY
|
|
|
|
---
|
|
-- The argument of `onKeyPress`/`onKeyRelease` engine handlers.
|
|
-- @type KeyboardEvent
|
|
-- @field [parent=#KeyboardEvent] #string symbol The pressed symbol (1-symbol string if can be represented or an empty string otherwise).
|
|
-- @field [parent=#KeyboardEvent] #KeyCode code Key code.
|
|
-- @field [parent=#KeyboardEvent] #boolean withShift Is `Shift` key pressed.
|
|
-- @field [parent=#KeyboardEvent] #boolean withCtrl Is `Control` key pressed.
|
|
-- @field [parent=#KeyboardEvent] #boolean withAlt Is `Alt` key pressed.
|
|
-- @field [parent=#KeyboardEvent] #boolean withSuper Is `Super`/`Win` key pressed.
|
|
|
|
---
|
|
-- The argument of onTouchPress/onTouchRelease/onTouchMove engine handlers.
|
|
-- @type TouchEvent
|
|
-- @field [parent=#TouchEvent] #number device Device id (there might be multiple touch devices connected). Note: the specific device ids are not guaranteed. Always use previous user input (onTouch... handlers) to get a valid device id (e. g. in your script's settings page).
|
|
-- @field [parent=#TouchEvent] #number finger Finger id (the device might support multitouch).
|
|
-- @field [parent=#TouchEvent] openmw.util#Vector2 position Relative position on the touch device (0 to 1 from top left corner),
|
|
-- @field [parent=#TouchEvent] #number pressure Pressure of the finger.
|
|
|
|
---
|
|
-- @type ActionType
|
|
|
|
---
|
|
-- @type ACTION_TYPE
|
|
-- @field #ActionType Boolean Input action with value of true or false
|
|
-- @field #ActionType Number Input action with a numeric value
|
|
-- @field #ActionType Range Input action with a numeric value between 0 and 1 (inclusive)
|
|
|
|
---
|
|
-- Values that can be used in registerAction
|
|
-- @field [parent=#input] #ACTION_TYPE ACTION_TYPE
|
|
|
|
---
|
|
-- @type ActionInfo
|
|
-- @field [parent=#Actioninfo] #string key
|
|
-- @field [parent=#Actioninfo] #ActionType type
|
|
-- @field [parent=#Actioninfo] #string l10n Localization context containing the name and description keys
|
|
-- @field [parent=#Actioninfo] #string name Localization key of the action's name
|
|
-- @field [parent=#Actioninfo] #string description Localization key of the action's description
|
|
-- @field [parent=#Actioninfo] defaultValue initial value of the action
|
|
|
|
---
|
|
-- Map of all currently registered actions
|
|
-- @field [parent=#input] #map<#string,#ActionInfo> actions
|
|
|
|
---
|
|
-- Registers a new input action. The key must be unique
|
|
-- @function [parent=#input] registerAction
|
|
-- @param #ActionInfo info
|
|
|
|
---
|
|
-- Provides a function computing the value of given input action.
|
|
-- The callback is called once a frame, after the values of dependency actions are resolved.
|
|
-- Throws an error if a cyclic action dependency is detected.
|
|
-- @function [parent=#input] bindAction
|
|
-- @param #string key
|
|
-- @param openmw.async#Callback callback returning the new value of the action, and taking as arguments:
|
|
-- frame time in seconds,
|
|
-- value of the function,
|
|
-- value of the first dependency action,
|
|
-- ...
|
|
-- @param #list<#string> dependencies
|
|
-- @usage
|
|
-- input.bindAction('Activate', async:callback(function(dt, use, sneak, run)
|
|
-- -- while sneaking, only activate things while holding the run binding
|
|
-- return use and (run or not sneak)
|
|
-- end), { 'Sneak', 'Run' })
|
|
|
|
---
|
|
-- Registers a function to be called whenever the action's value changes
|
|
-- @function [parent=#input] registerActionHandler
|
|
-- @param #string key
|
|
-- @param openmw.async#Callback callback takes the new action value as the only argument
|
|
|
|
---
|
|
-- Returns the value of a Boolean action
|
|
-- @function [parent=#input] getBooleanActionValue
|
|
-- @param #string key
|
|
-- @return #boolean
|
|
|
|
---
|
|
-- Returns the value of a Number action
|
|
-- @function [parent=#input] getNumberActionValue
|
|
-- @param #string key
|
|
-- @return #number
|
|
|
|
---
|
|
-- Returns the value of a Range action
|
|
-- @function [parent=#input] getRangeActionValue
|
|
-- @param #string key
|
|
-- @return #number
|
|
|
|
---
|
|
-- @type TriggerInfo
|
|
-- @field [parent=#TriggerInfo] #string key
|
|
-- @field [parent=#TriggerInfo] #string l10n Localization context containing the name and description keys
|
|
-- @field [parent=#TriggerInfo] #string name Localization key of the trigger's name
|
|
-- @field [parent=#TriggerInfo] #string description Localization key of the trigger's description
|
|
|
|
---
|
|
-- Map of all currently registered triggers
|
|
-- @field [parent=#input] #map<#string,#TriggerInfo> triggers
|
|
|
|
---
|
|
-- Registers a new input trigger. The key must be unique
|
|
-- @function [parent=#input] registerTrigger
|
|
-- @param #TriggerInfo info
|
|
|
|
---
|
|
-- Registers a function to be called whenever the trigger activates
|
|
-- @function [parent=#input] registerTriggerHandler
|
|
-- @param #string key
|
|
-- @param openmw.async#Callback callback takes the new action value as the only argument
|
|
|
|
---
|
|
-- Activates the trigger with the given key
|
|
-- @function [parent=#input] activateTrigger
|
|
-- @param #string key
|
|
|
|
|
|
return nil
|