refactor(keybinds): formatting and tweaks

This commit is contained in:
Linden
2022-10-14 11:01:57 +11:00
parent de23afa7f8
commit 7355d9ef25

View File

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