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
 | 
