mirror of
https://github.com/CommunityOx/ox_lib.git
synced 2026-08-17 06:56:03 +01:00
feat(keys): implement a DisableControlAction wrapper
This commit is contained in:
@@ -23,7 +23,7 @@ game 'gta5'
|
|||||||
--[[ Resource Information ]]--
|
--[[ Resource Information ]]--
|
||||||
name 'pe-lualib'
|
name 'pe-lualib'
|
||||||
author 'Linden'
|
author 'Linden'
|
||||||
version '1.0.2'
|
version '1.0.3'
|
||||||
repository 'https://github.com/project-error/pe-lualib'
|
repository 'https://github.com/project-error/pe-lualib'
|
||||||
description 'A library of shared functions to utilise in other resources.'
|
description 'A library of shared functions to utilise in other resources.'
|
||||||
|
|
||||||
|
|||||||
54
imports/controls/client.lua
Normal file
54
imports/controls/client.lua
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
--- Call on frame to disable all stored keys.
|
||||||
|
--- ```
|
||||||
|
--- DisableControlActions()
|
||||||
|
--- ```
|
||||||
|
local DisableControlActions = {}
|
||||||
|
|
||||||
|
---@param ... number
|
||||||
|
function DisableControlActions: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
|
||||||
|
function DisableControlActions: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
|
||||||
|
function DisableControlActions: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
|
||||||
|
|
||||||
|
return setmetatable(DisableControlActions, {
|
||||||
|
__index = Keys,
|
||||||
|
__newindex = Keys,
|
||||||
|
__call = function()
|
||||||
|
for k in pairs(Keys) do
|
||||||
|
DisableControlAction(0, k, true)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
13
init.lua
13
init.lua
@@ -32,16 +32,7 @@ local function loadFile(self, file)
|
|||||||
error(('\n^1Error importing module (%s): %s^0'):format(dir, err), 3)
|
error(('\n^1Error importing module (%s): %s^0'):format(dir, err), 3)
|
||||||
else
|
else
|
||||||
rawset(self, file, chunk())
|
rawset(self, file, chunk())
|
||||||
return setmetatable(self[file], {
|
return self[file]
|
||||||
__index = {
|
|
||||||
name = file,
|
|
||||||
resource = LIBRARY
|
|
||||||
},
|
|
||||||
|
|
||||||
__newindex = function()
|
|
||||||
error('Cannot add indexes to imports')
|
|
||||||
end
|
|
||||||
})
|
|
||||||
end
|
end
|
||||||
else error(('\n^3Unable to import module (%s)^0'):format(dir), 3) end
|
else error(('\n^3Unable to import module (%s)^0'):format(dir), 3) end
|
||||||
end
|
end
|
||||||
@@ -84,7 +75,7 @@ setmetatable(lib, {
|
|||||||
_ENV.lib = lib
|
_ENV.lib = lib
|
||||||
|
|
||||||
--- Dream of a world where this PR gets accepted.
|
--- Dream of a world where this PR gets accepted.
|
||||||
--- ```lua
|
--- ```
|
||||||
--- SetInterval(callback: function, timer: number)
|
--- SetInterval(callback: function, timer: number)
|
||||||
--- ```
|
--- ```
|
||||||
SetInterval = setmetatable({currentId = 0}, {
|
SetInterval = setmetatable({currentId = 0}, {
|
||||||
|
|||||||
Reference in New Issue
Block a user