From 12edf6cb9a6cf4bad6a896566350bbb094d80cce Mon Sep 17 00:00:00 2001 From: "Jill \"oatmealine\" Monoids" Date: Sun, 25 Sep 2022 15:00:17 +0300 Subject: [PATCH] 2p support --- stdlib/input.lua | 45 ++++++++++++++++++++++++++++++--------------- 1 file changed, 30 insertions(+), 15 deletions(-) diff --git a/stdlib/input.lua b/stdlib/input.lua index b90a55c..6aa7696 100644 --- a/stdlib/input.lua +++ b/stdlib/input.lua @@ -32,15 +32,19 @@ self.inputType = { Action8 = 27 } ----@type table +---@type table> --- -1 for not pressed, time for time of press self.inputs = {} ----@type table +---@type table> self.rawInputs = {} -for _, v in pairs(self.inputType) do - self.inputs[v] = -1 - self.rawInputs[v] = -1 +for pn = 1, 2 do + self.inputs[pn] = {} + self.rawInputs[pn] = {} + for _, v in pairs(self.inputType) do + self.inputs[pn][v] = -1 + self.rawInputs[pn][v] = -1 + end end self.directions = { @@ -80,15 +84,26 @@ function self.getInputName(i) end ---@param i string +---@param pn number | nil ---@return number -function self.getInput(i) - return self.inputs[self.inputType[i]] +function self.getInput(i, pn) + 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 ---@param i string +---@param pn number | nil ---@return boolean -function self.isDown(i) - return self.getInput(i) ~= -1 +function self.isDown(i, pn) + return self.getInput(i, pn) ~= -1 end function uranium.init() @@ -98,14 +113,14 @@ function uranium.init() local v = v _main:addcommand('StepP' .. pn .. j .. 'PressMessage', function() - self.rawInputs[v] = t - if uranium:call('press', v) then return end - self.inputs[v] = t + self.rawInputs[pn][v] = t + if uranium:call('press', v, pn) then return end + self.inputs[pn][v] = t end) _main:addcommand('StepP' .. pn .. j .. 'LiftMessage', function() - if uranium:call('release', v) then return end - self.inputs[v] = -1 - self.rawInputs[v] = -1 + self.rawInputs[pn][v] = -1 + if uranium:call('release', v, pn) then return end + self.inputs[pn][v] = -1 end) end end