1
0
Fork 0
forked from Simnation/Main
Main/resources/[standalone]/ox_lib/imports/disableControls/client.lua
2025-06-07 08:51:21 +02:00

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