57 lines
1.1 KiB
Lua
57 lines
1.1 KiB
Lua
--- 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
|