2023-12-21 18:23:59 +08:00
|
|
|
|
-- 猫猫虫的 LuaEngine 工具模块:Keypad
|
2023-12-28 22:40:49 +08:00
|
|
|
|
-- @version: 1.0.1
|
2023-12-21 18:23:59 +08:00
|
|
|
|
local Keypad = {}
|
|
|
|
|
|
2023-12-28 22:40:49 +08:00
|
|
|
|
--- 带计时器的按键触发操作
|
|
|
|
|
---@param keypadID number|string|table
|
2023-12-21 18:23:59 +08:00
|
|
|
|
---@param chrono number
|
2023-12-28 22:40:49 +08:00
|
|
|
|
---@param handler fun()
|
2023-12-21 18:23:59 +08:00
|
|
|
|
---@param xbox boolean|nil
|
2023-12-28 22:40:49 +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
|
2023-12-23 00:36:02 +08:00
|
|
|
|
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:40:49 +08:00
|
|
|
|
elseif type(keypadID) == "table" then
|
|
|
|
|
keypadIDStr = table.concat(keypadID, ",")
|
2023-12-21 18:23:59 +08:00
|
|
|
|
end
|
2023-12-28 22:40:49 +08:00
|
|
|
|
local keypadShortcut = "keypad_keyCD_" .. keypadIDStr
|
2023-12-21 18:23:59 +08:00
|
|
|
|
|
2023-12-28 22:40:49 +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:40:49 +08:00
|
|
|
|
handler()
|
2023-12-21 18:23:59 +08:00
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
2023-12-28 22:40:49 +08:00
|
|
|
|
return Keypad
|