feat(keys): implement a DisableControlAction wrapper

This commit is contained in:
Linden
2021-12-06 08:39:08 +11:00
parent d25cac3be4
commit ec1a98b83a
3 changed files with 57 additions and 12 deletions

View File

@@ -23,7 +23,7 @@ game 'gta5'
--[[ Resource Information ]]--
name 'pe-lualib'
author 'Linden'
version '1.0.2'
version '1.0.3'
repository 'https://github.com/project-error/pe-lualib'
description 'A library of shared functions to utilise in other resources.'

View 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
})

View File

@@ -32,16 +32,7 @@ local function loadFile(self, file)
error(('\n^1Error importing module (%s): %s^0'):format(dir, err), 3)
else
rawset(self, file, chunk())
return setmetatable(self[file], {
__index = {
name = file,
resource = LIBRARY
},
__newindex = function()
error('Cannot add indexes to imports')
end
})
return self[file]
end
else error(('\n^3Unable to import module (%s)^0'):format(dir), 3) end
end
@@ -84,7 +75,7 @@ setmetatable(lib, {
_ENV.lib = lib
--- Dream of a world where this PR gets accepted.
--- ```lua
--- ```
--- SetInterval(callback: function, timer: number)
--- ```
SetInterval = setmetatable({currentId = 0}, {