2p support

This commit is contained in:
Jill 2022-09-25 15:00:17 +03:00
parent 97f91fb298
commit 12edf6cb9a
1 changed files with 30 additions and 15 deletions

View File

@ -32,15 +32,19 @@ self.inputType = {
Action8 = 27 Action8 = 27
} }
---@type table<inputType, number> ---@type table<integer, table<inputType, number>>
--- -1 for not pressed, time for time of press --- -1 for not pressed, time for time of press
self.inputs = {} self.inputs = {}
---@type table<inputType, number> ---@type table<integer, table<inputType, number>>
self.rawInputs = {} self.rawInputs = {}
for _, v in pairs(self.inputType) do for pn = 1, 2 do
self.inputs[v] = -1 self.inputs[pn] = {}
self.rawInputs[v] = -1 self.rawInputs[pn] = {}
for _, v in pairs(self.inputType) do
self.inputs[pn][v] = -1
self.rawInputs[pn][v] = -1
end
end end
self.directions = { self.directions = {
@ -80,15 +84,26 @@ function self.getInputName(i)
end end
---@param i string ---@param i string
---@param pn number | nil
---@return number ---@return number
function self.getInput(i) function self.getInput(i, pn)
return self.inputs[self.inputType[i]] if not pn then
for plr = 1, 2 do
if self.inputs[plr][self.inputType[i]] ~= -1 then
return self.inputs[plr][self.inputType[i]]
end
end
return -1
else
return self.inputs[pn][self.inputType[i]]
end
end end
---@param i string ---@param i string
---@param pn number | nil
---@return boolean ---@return boolean
function self.isDown(i) function self.isDown(i, pn)
return self.getInput(i) ~= -1 return self.getInput(i, pn) ~= -1
end end
function uranium.init() function uranium.init()
@ -98,14 +113,14 @@ function uranium.init()
local v = v local v = v
_main:addcommand('StepP' .. pn .. j .. 'PressMessage', function() _main:addcommand('StepP' .. pn .. j .. 'PressMessage', function()
self.rawInputs[v] = t self.rawInputs[pn][v] = t
if uranium:call('press', v) then return end if uranium:call('press', v, pn) then return end
self.inputs[v] = t self.inputs[pn][v] = t
end) end)
_main:addcommand('StepP' .. pn .. j .. 'LiftMessage', function() _main:addcommand('StepP' .. pn .. j .. 'LiftMessage', function()
if uranium:call('release', v) then return end self.rawInputs[pn][v] = -1
self.inputs[v] = -1 if uranium:call('release', v, pn) then return end
self.rawInputs[v] = -1 self.inputs[pn][v] = -1
end) end)
end end
end end