From 4f7159512251f99f97725d90e50fd065aee5b00e Mon Sep 17 00:00:00 2001 From: Dominic <100990090+Waves966@users.noreply.github.com> Date: Fri, 14 Oct 2022 17:08:20 -0600 Subject: [PATCH] refactor(keybinds): rename module, tweaks (#127) --- imports/addKeybind/client.lua | 48 +++++++++++++++++++++++++ imports/keybinds/client.lua | 53 ---------------------------- resource/interface/client/textui.lua | 2 +- 3 files changed, 49 insertions(+), 54 deletions(-) create mode 100644 imports/addKeybind/client.lua delete mode 100644 imports/keybinds/client.lua diff --git a/imports/addKeybind/client.lua b/imports/addKeybind/client.lua new file mode 100644 index 0000000..28d7f83 --- /dev/null +++ b/imports/addKeybind/client.lua @@ -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 diff --git a/imports/keybinds/client.lua b/imports/keybinds/client.lua deleted file mode 100644 index b0dd830..0000000 --- a/imports/keybinds/client.lua +++ /dev/null @@ -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 diff --git a/resource/interface/client/textui.lua b/resource/interface/client/textui.lua index 17276b8..a7dd508 100644 --- a/resource/interface/client/textui.lua +++ b/resource/interface/client/textui.lua @@ -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