diff --git a/main.lua b/main.lua index 180d860..6699f2e 100644 --- a/main.lua +++ b/main.lua @@ -229,7 +229,7 @@ function love.joystickaxis(joystick, axis, value) config.input.joysticks[joystick:getName()].axes[axis] then if math.abs(value) >= 1 then - input_pressed = config.input.joysticks[joystick:getName()].axes[axis][value >= 0.5 and "positive" or "negative"] + input_pressed = config.input.joysticks[joystick:getName()].axes[axis][value >= 1 and "positive" or "negative"] end positive_released = config.input.joysticks[joystick:getName()].axes[axis].positive negative_released = config.input.joysticks[joystick:getName()].axes[axis].negative diff --git a/scene/input_config_old.lua b/scene/input_config_old.lua deleted file mode 100644 index ebd6bd3..0000000 --- a/scene/input_config_old.lua +++ /dev/null @@ -1,180 +0,0 @@ -local ConfigScene = Scene:extend() - -ConfigScene.title = "Input Config" - -require 'load.save' - -local configurable_inputs = { - "menu_decide", - "menu_back", - "left", - "right", - "up", - "down", - "rotate_left", - "rotate_left2", - "rotate_right", - "rotate_right2", - "rotate_180", - "hold", - "retry", - "pause", -} - -local function newSetInputs() - local set_inputs = {} - for i, input in ipairs(configurable_inputs) do - set_inputs[input] = false - end - return set_inputs -end - -function ConfigScene:new() - self.input_state = 1 - self.key = 1 - self.set_inputs = newSetInputs() - self.new_input = {} - self.axis_timer = 0 - - DiscordRPC:update({ - details = "In menus", - state = "Changing input config", - }) -end - -function ConfigScene:update() -end - -function ConfigScene:render() - love.graphics.setColor(1, 1, 1, 1) - love.graphics.draw( - backgrounds["input_config"], - 0, 0, 0, - 0.5, 0.5 - ) - - love.graphics.setFont(font_3x5_2) - for i, input in ipairs(configurable_inputs) do - love.graphics.printf(input, 40, 50 + i * 20, 200, "left") - if self.set_inputs[input] then - love.graphics.printf(self.set_inputs[input], 210, 50 + i * 20, 400, "left") - end - end - if self.input_state > table.getn(configurable_inputs) then - love.graphics.print("press enter to confirm, delete/backspace to retry" .. (config.input and ", escape to cancel" or "")) - else - love.graphics.print("press " .. (self.key == 2 and "joystick" or "key") .. " input for " .. configurable_inputs[self.input_state] .. ", tab to skip" .. (config.input and ", escape to cancel" or ""), 0, 0) - love.graphics.print("function keys (F1, F2, etc.), escape, and tab can't be changed", 0, 20) - end - - self.axis_timer = self.axis_timer + 1 -end - -local function addJoystick(input, name) - if not input.joysticks then - input.joysticks = {} - end - if not input.joysticks[name] then - input.joysticks[name] = {} - end -end - -function ConfigScene:onInputPress(e) - if e.type == "key" then - -- function keys, escape, and tab are reserved and can't be remapped - if e.scancode == "escape" and config.input then - -- cancel only if there was an input config already - scene = SettingsScene() - elseif self.input_state > table.getn(configurable_inputs) then - if e.scancode == "return" then - -- save new input, then load next scene - config.input = self.new_input - saveConfig() - scene = TitleScene() - elseif e.scancode == "delete" or e.scancode == "backspace" then - -- retry - self.input_state = 1 - self.set_inputs = newSetInputs() - self.new_input = {} - end - elseif e.scancode == "tab" then - self.set_inputs[configurable_inputs[self.input_state]] = - ( - self.set_inputs[configurable_inputs[self.input_state]] == false - and "" or self.set_inputs[configurable_inputs[self.input_state]] - ) .. - (self.key == 2 and " / " or "") .. "skipped" - if self.key == 2 then - self.input_state = self.input_state + 1 - self.key = 1 - else - self.key = 2 - end - elseif e.scancode ~= "escape" and self.key == 1 then - -- all other keys can be configured - if not self.new_input.keys then - self.new_input.keys = {} - end - self.set_inputs[configurable_inputs[self.input_state]] = "key " .. love.keyboard.getKeyFromScancode(e.scancode) .. " (" .. e.scancode .. ")" - self.new_input.keys[e.scancode] = configurable_inputs[self.input_state] - self.key = 2 - end - elseif string.sub(e.type, 1, 3) == "joy" and self.key == 2 then - if self.input_state <= table.getn(configurable_inputs) then - if e.type == "joybutton" then - addJoystick(self.new_input, e.name) - if not self.new_input.joysticks[e.name].buttons then - self.new_input.joysticks[e.name].buttons = {} - end - self.set_inputs[configurable_inputs[self.input_state]] = - self.set_inputs[configurable_inputs[self.input_state]] .. - " / jbtn " .. - e.button .. - " " .. string.sub(e.name, 1, 10) .. (string.len(e.name) > 10 and "..." or "") - self.new_input.joysticks[e.name].buttons[e.button] = configurable_inputs[self.input_state] - self.input_state = self.input_state + 1 - self.key = 1 - elseif e.type == "joyaxis" then - if (e.axis ~= self.last_axis or self.axis_timer > 30) and e.value >= 1 then - addJoystick(self.new_input, e.name) - if not self.new_input.joysticks[e.name].axes then - self.new_input.joysticks[e.name].axes = {} - end - if not self.new_input.joysticks[e.name].axes[e.axis] then - self.new_input.joysticks[e.name].axes[e.axis] = {} - end - self.set_inputs[configurable_inputs[self.input_state]] = - self.set_inputs[configurable_inputs[self.input_state]] .. - " / jaxis " .. - e.axis .. - " " .. string.sub(e.name, 1, 10) .. (string.len(e.name) > 10 and "..." or "") - self.new_input.joysticks[e.name].axes[e.axis][e.value >= 1 and "positive" or "negative"] = configurable_inputs[self.input_state] - self.input_state = self.input_state + 1 - self.key = 1 - self.last_axis = e.axis - self.axis_timer = 0 - end - elseif e.type == "joyhat" then - if e.direction ~= "c" then - addJoystick(self.new_input, e.name) - if not self.new_input.joysticks[e.name].hats then - self.new_input.joysticks[e.name].hats = {} - end - if not self.new_input.joysticks[e.name].hats[e.hat] then - self.new_input.joysticks[e.name].hats[e.hat] = {} - end - self.set_inputs[configurable_inputs[self.input_state]] = - self.set_inputs[configurable_inputs[self.input_state]] .. - " / jhat " .. - e.hat .. " " .. e.direction .. - " " .. string.sub(e.name, 1, 10) .. (string.len(e.name) > 10 and "..." or "") - self.new_input.joysticks[e.name].hats[e.hat][e.direction] = configurable_inputs[self.input_state] - self.input_state = self.input_state + 1 - self.key = 1 - end - end - end - end -end - -return ConfigScene diff --git a/scene/stick_config.lua b/scene/stick_config.lua index 7f36314..b7c420b 100644 --- a/scene/stick_config.lua +++ b/scene/stick_config.lua @@ -109,7 +109,7 @@ function StickConfigScene:onInputPress(e) self.new_input[e.name].buttons[e.button] = configurable_inputs[self.input_state] self.input_state = self.input_state + 1 elseif e.type == "joyaxis" then - if (e.axis ~= self.last_axis or self.axis_timer > 30) and e.value >= 1 then + if (e.axis ~= self.last_axis or self.axis_timer > 30) and math.abs(e.value) >= 1 then addJoystick(self.new_input, e.name) if not self.new_input[e.name].axes then self.new_input[e.name].axes = {} @@ -119,9 +119,9 @@ function StickConfigScene:onInputPress(e) end self.set_inputs[configurable_inputs[self.input_state]] = "jaxis " .. - e.axis .. + (e.value >= 1 and "+" or "-") .. e.axis .. " " .. string.sub(e.name, 1, 10) .. (string.len(e.name) > 10 and "..." or "") - self.new_input[e.name].axes[e.axis]["positive"] = configurable_inputs[self.input_state] + self.new_input[e.name].axes[e.axis][e.value >= 1 and "positive" or "negative"] = configurable_inputs[self.input_state] self.input_state = self.input_state + 1 self.last_axis = e.axis self.axis_timer = 0