refactor(keybinds): rename module, tweaks (#127)

This commit is contained in:
Dominic
2022-10-14 17:08:20 -06:00
committed by GitHub
parent 115bf702c9
commit 4f71595122
3 changed files with 49 additions and 54 deletions

View File

@@ -0,0 +1,48 @@
---@class CKeybind
---@field name string
---@field description string
---@field defaultKey? string
---@field keybind string
---@field disabled? boolean
---@field disable? fun(self: CKeybind, toggle: boolean)
---@field onPressed? fun(self: CKeybind)
---@field onReleased? fun(self: CKeybind)
local keybinds = {}
local function disableKeybind(self, toggle)
keybinds[self.name].disabled = toggle
end
local IsPauseMenuActive = IsPauseMenuActive
---@param data CKeybind
---@return CKeybind
function lib.addKeybind(data)
data.defaultKey = data.defaultKey or ''
data.keybind = GetControlInstructionalButton(0, joaat('+' .. data.name) | 0x80000000, true):sub(3)
data.disabled = data.disabled or false
data.disable = disableKeybind
RegisterCommand('+' .. data.name, function()
if not data.onPressed or data.disabled or IsPauseMenuActive() then return end
data:onPressed()
end)
RegisterCommand('-' .. data.name, function()
if not data.onReleased or data.disabled or IsPauseMenuActive() then return end
data:onReleased()
end)
RegisterKeyMapping('+' .. data.name, data.description, 'keyboard', data.keybind)
SetTimeout(500, function()
TriggerEvent('chat:removeSuggestion', ('/+%s'):format(data.name))
TriggerEvent('chat:removeSuggestion', ('/-%s'):format(data.name))
end)
keybinds[data.name] = data
return data
end
return lib.addKeybind

View File

@@ -1,53 +0,0 @@
---@class CKeybind
---@field name string
---@field description string
---@field keybind string
---@field disabled? boolean
---@field disable? fun(self: CKeybind, toggle: boolean)
---@field onPressed? fun(self: CKeybind)
---@field onReleased? fun(self: CKeybind)
local keybinds = {}
local function disableKeybind(self, toggle)
keybinds[self.name].disabled = toggle
end
local IsPauseMenuActive = IsPauseMenuActive
lib.keybinds = {
---@param data CKeybind
---@return CKeybind
new = function(data)
data.keybind = data.keybind or ''
data.disabled = data.disabled or false
data.disable = disableKeybind
RegisterCommand('+' .. data.name, function()
if not data.onPressed or data.disabled or IsPauseMenuActive() then return end
data:onPressed()
end)
RegisterCommand('-' .. data.name, function()
if not data.onReleased or data.disabled or IsPauseMenuActive() then return end
data:onReleased()
end)
RegisterKeyMapping('+' .. data.name, data.description, 'keyboard', data.keybind)
SetTimeout(500, function()
TriggerEvent('chat:removeSuggestion', ('/+%s'):format(data.name))
TriggerEvent('chat:removeSuggestion', ('/-%s'):format(data.name))
end)
keybinds[data.name] = data
return data
end,
---@return CKeybind?
get = function(name)
return keybinds[name]
end
}
return lib.keybinds

View File

@@ -7,7 +7,7 @@
local isOpen = false
---@param text string
---@param options TextUIOptions
---@param options? TextUIOptions
function lib.showTextUI(text, options)
if not options then options = {} end
options.text = text