forked from Simnation/Main
64 lines
1.3 KiB
Lua
64 lines
1.3 KiB
Lua
--[[
|
|
https://github.com/overextended/ox_lib
|
|
|
|
This file is licensed under LGPL-3.0 or higher <https://www.gnu.org/licenses/lgpl-3.0.en.html>
|
|
|
|
Copyright © 2025 Linden <https://github.com/thelindat>
|
|
]]
|
|
|
|
--- Call on frame to disable all stored keys.
|
|
--- ```
|
|
--- disableControls()
|
|
--- ```
|
|
local disableControls = {}
|
|
|
|
---@param ... number | table
|
|
function disableControls:Add(...)
|
|
local keys = type(...) == 'table' and ... or {...}
|
|
for i=1, #keys do
|
|
local key = keys[i]
|
|
if self[key] then
|
|
self[key] += 1
|
|
else
|
|
self[key] = 1
|
|
end
|
|
end
|
|
end
|
|
|
|
---@param ... number | table
|
|
function disableControls:Remove(...)
|
|
local keys = type(...) == 'table' and ... or {...}
|
|
for i=1, #keys do
|
|
local key = keys[i]
|
|
local exists = self[key]
|
|
if exists and exists > 1 then
|
|
self[key] -= 1
|
|
else
|
|
self[key] = nil
|
|
end
|
|
end
|
|
end
|
|
|
|
---@param ... number | table
|
|
function disableControls:Clear(...)
|
|
local keys = type(...) == 'table' and ... or {...}
|
|
for i=1, #keys do
|
|
self[keys[i]] = nil
|
|
end
|
|
end
|
|
|
|
local keys = {}
|
|
local DisableControlAction = DisableControlAction
|
|
local pairs = pairs
|
|
|
|
lib.disableControls = setmetatable(disableControls, {
|
|
__index = keys,
|
|
__newindex = keys,
|
|
__call = function()
|
|
for k in pairs(keys) do
|
|
DisableControlAction(0, k, true)
|
|
end
|
|
end
|
|
})
|
|
|
|
return lib.disableControls
|