obos-iso/.vscode/figura/keybind.lua
2023-08-08 00:07:25 -06:00

250 lines
6.3 KiB
Lua

--================================================================================================--
--===== CLASSES ================================================================================--
--================================================================================================--
---A button on the keyboard or mouse.
---@alias Key
---| "0"
---| "1"
---| "2"
---| "3"
---| "4"
---| "5"
---| "6"
---| "7"
---| "8"
---| "9"
---| "A"
---| "B"
---| "C"
---| "D"
---| "E"
---| "F"
---| "G"
---| "H"
---| "I"
---| "J"
---| "K"
---| "L"
---| "M"
---| "N"
---| "O"
---| "P"
---| "Q"
---| "R"
---| "S"
---| "T"
---| "U"
---| "V"
---| "W"
---| "X"
---| "Y"
---| "Z"
---| "RIGHT"
---| "LEFT"
---| "DOWN"
---| "UP"
---| "F1"
---| "F2"
---| "F3"
---| "F4"
---| "F5"
---| "F6"
---| "F7"
---| "F8"
---| "F9"
---| "F10"
---| "F11"
---| "F12"
---| "F13"
---| "F14"
---| "F15"
---| "F16"
---| "F17"
---| "F18"
---| "F19"
---| "F20"
---| "F21"
---| "F22"
---| "F23"
---| "F24"
---| "F25"
---| "KP_0"
---| "KP_1"
---| "KP_2"
---| "KP_3"
---| "KP_4"
---| "KP_5"
---| "KP_6"
---| "KP_7"
---| "KP_8"
---| "KP_9"
---| "KP_MULTIPLY"
---| "KP_DIVIDE"
---| "KP_SUBTRACT"
---| "KP_ADD"
---| "KP_DECIMAL"
---| "KP_ENTER"
---| "KP_EQUAL"
---| "MOUSE_BUTTON_1"
---| "MOUSE_BUTTON_2"
---| "MOUSE_BUTTON_3"
---| "MOUSE_BUTTON_4"
---| "MOUSE_BUTTON_5"
---| "MOUSE_BUTTON_6"
---| "MOUSE_BUTTON_7"
---| "MOUSE_BUTTON_8"
---| "SPACE"
---| "APOSTROPHE"
---| "GRAVE_ACCENT"
---| "_"
---| "COMMA"
---| "MINUS"
---| "PERIOD"
---| "SLASH"
---| "SEMICOLON"
---| "EQUAL"
---| "BACKSLASH"
---| "LEFT_BRACKET"
---| "RIGHT_BRACKET"
---| "UNKNOWN"
---| "PAGE_UP"
---| "PAGE_DOWN"
---| "END"
---| "CAPS_LOCK"
---| "SCROLL_LOCK"
---| "NUM_LOCK"
---| "PAUSE"
---| "WORLD_1"
---| "WORLD_2"
---| "ESCAPE"
---| "ENTER"
---| "TAB"
---| "BACKSPACE"
---| "PRINT_SCREEN"
---| "LEFT_SHIFT"
---| "LEFT_CONTROL"
---| "LEFT_ALT"
---| "LEFT_SUPER"
---| "RIGHT_SHIFT"
---| "RIGHT_CONTROL"
---| "RIGHT_ALT"
---| "RIGHT_SUPER"
---| "MENU"
---| "INSERT"
---| "DELETE"
---| "HOME"
---A keybind registered by Minecraft or a mod.
---This value is not limited to keybinds registered by Minecraft, any keybind registered by a mod
---will also work (but will not be auto-completed here.)
---@alias MinecraftKeybind
---| "key.jump" #Movement: Jump
---| "key.sneak" #Movement: Sneak
---| "key.sprint" #Movement: Sprint
---| "key.left" #Movement: Strafe Left
---| "key.right" #Movement: Strafe Right
---| "key.back" #Movement: Walk Backwards
---| "key.forward" #Movement: Walk Forwards
---| "key.attack" #Gameplay: Attack/Destroy
---| "key.pickItem" #Gameplay: Pick Block
---| "key.use" #Gameplay: Use Item/Place Block
---| "key.drop" #Inventory: Drop Selected Item
---| "key.hotbar.1" #Inventory: Hotbar Slot 1
---| "key.hotbar.2" #Inventory: Hotbar Slot 2
---| "key.hotbar.3" #Inventory: Hotbar Slot 3
---| "key.hotbar.4" #Inventory: Hotbar Slot 4
---| "key.hotbar.5" #Inventory: Hotbar Slot 5
---| "key.hotbar.6" #Inventory: Hotbar Slot 6
---| "key.hotbar.7" #Inventory: Hotbar Slot 7
---| "key.hotbar.8" #Inventory: Hotbar Slot 8
---| "key.hotbat.9" #Inventory: Hotbar Slot 9
---| "key.inventory" #Inventory: Open/Close Inventory
---| "key.swapOffHand" #Inventory: Swap Item With Offhand
---| "key.loadToolbarActivator" #Creative Mode: Load Hotbar Activator
---| "key.saveToolbarActivator" #Creative Mode: Save Hotbar Activator
---| "key.playerlist" #Multiplayer: List Players
---| "key.chat" #Multiplayer: Open Chat
---| "key.command" #Multiplayer: Open Command
---| "key.socialInteractions" #Multiplayer: Social Interactions Screen
---| "key.advancements" #Miscellaneous: advancements
---| "key.spectatorOutlines" #Miscellaneous: Highlight Players (Spectators)
---| "key.screenshot" #Miscellaneous: Take Screenshot
---| "key.smoothCamera" #Miscellaneous: Toggle Cinematic Camera
---| "key.fullscreen" #Miscellaneous: Toggle Fullscreen
---| "key.togglePerspective" #Miscellaneous: Toggle Perspective
---A keybind that is bound to a key.
---You can use this to determine when you are pressing a key or registered control.
---@class Keybind
local Keybind = {}
---Returns if the key was pressed. Handled as if the key was being typed into a text box.
---
---When holding, `.wasPressed()` returns `true` for 1 tick, then returns `false` for 9 ticks, then
---returns `true` until the button is released (plus some undefined extra ticks based on how long
---the key was held.)
---@return boolean
function Keybind.wasPressed() end
---Returns if the key is being pressed this tick.
---@return boolean
function Keybind.isPressed() end
---Returns the current key bound to this keybind.
---@return Key
function Keybind.getKey() end
---Returns the name of the keybind.
---@return string
function Keybind.getName() end
---FiguraKeybind ⇐ Keybind
---***
---A custom keybind created by the script.
---These binds can be changed by the player later in Figura's keybind menu.
---@class FiguraKeybind : Keybind
local FiguraKeybind = {}
---Rebinds the keybind to the given key.
---@param key Key
function FiguraKeybind.setKey(key) end
---Resets the half-second delay from wasPressed()
function FiguraKeybind.reset() end
---RegisteredKeybind ⇐ Keybind
---***
---A keybind registered by Minecraft or another mod.
---These binds are changed Minecraft's controls menu.
---@class RegisteredKeybind : Keybind
--================================================================================================--
--===== FUNCTIONS ==============================================================================--
--================================================================================================--
---Contains functions for working with keybinds.
keybind = {}
---Returns a list of all valid keys.
---@return Key[]
function keybind.getKeyList() end
---Returns a list of all keybinds.
---@return Keybind[]
function keybind.getRegisteredKeyList() end
---Returns a value that represents a registered keybind.
---
---Any registered keybind by both Minecraft and mods can be used.
---@param bind MinecraftKeybind
---@return RegisteredKeybind
function keybind.getRegisteredKeybind(bind) end
---Returns a new named keybind that can be tracked.
---@param name string
---@param key Key
---@param persistent? boolean If set to true, keybind will be detected even if a gui is open such as chat/inventory.
---@return FiguraKeybind
function keybind.newKey(name, key, persistent) end