EigeenLoader/utils/Keypad.lua

38 lines
991 B
Lua
Raw Normal View History

2023-12-21 18:23:59 +08:00
-- 猫猫虫的 LuaEngine 工具模块Keypad
2023-12-28 22:42:34 +08:00
-- @version: 1.0.1
2023-12-21 18:23:59 +08:00
local Keypad = {}
2023-12-28 22:42:34 +08:00
--- 带计时器的按键触发操作
---@param keypadID number|string|table
2023-12-21 18:23:59 +08:00
---@param chrono number
2023-12-28 22:42:34 +08:00
---@param handler fun()
2023-12-21 18:23:59 +08:00
---@param xbox boolean|nil
2023-12-28 22:42:34 +08:00
function Keypad.UseChronoscope(keypadID, chrono, handler, xbox)
if not keypadID or not chrono or not handler then
2023-12-21 18:23:59 +08:00
return
end
if chrono < 0 then
return
end
if type(xbox) ~= "boolean" then
2023-12-21 18:23:59 +08:00
xbox = nil
end
local keypadIDStr = keypadID
if type(keypadID) == "number" then
keypadIDStr = tostring(keypadID)
2023-12-28 22:42:34 +08:00
elseif type(keypadID) == "table" then
keypadIDStr = table.concat(keypadID, ",")
2023-12-21 18:23:59 +08:00
end
2023-12-28 22:42:34 +08:00
local keypadShortcut = "keypad_keyCD_" .. keypadIDStr
2023-12-21 18:23:59 +08:00
2023-12-28 22:42:34 +08:00
if engine.keypad(keypadID, xbox) and
(CheckChronoscope(keypadShortcut) or not CheckPresenceChronoscope(keypadShortcut)) then
2023-12-21 18:23:59 +08:00
AddChronoscope(chrono, keypadShortcut)
2023-12-28 22:42:34 +08:00
handler()
2023-12-21 18:23:59 +08:00
end
end
2023-12-28 22:42:34 +08:00
return Keypad