mirror of
https://github.com/SashLilac/cambridge.git
synced 2024-11-22 13:09:02 -06:00
Changed reserved keys (arrows are no longer reserved) and now F2 always gets to the input config except when in-game.
This commit is contained in:
parent
e1dc01d0d0
commit
fd739dcfdf
26
main.lua
26
main.lua
@ -114,14 +114,15 @@ function love.keypressed(key, scancode)
|
|||||||
if scancode == "f4" then
|
if scancode == "f4" then
|
||||||
config["fullscreen"] = not config["fullscreen"]
|
config["fullscreen"] = not config["fullscreen"]
|
||||||
love.window.setFullscreen(config["fullscreen"])
|
love.window.setFullscreen(config["fullscreen"])
|
||||||
-- reserved keys, so the user can always get back to configure input
|
elseif scancode == "f2" and scene.title ~= "Input Config" and scene.title ~= "Game" then
|
||||||
elseif scancode == "return" then
|
scene = InputConfigScene()
|
||||||
scene:onInputPress({input="menu_decide", type="key", key=key, scancode=scancode})
|
-- function keys are reserved
|
||||||
|
elseif string.match(scancode, "^f[1-9]$") or string.match(scancode, "^f[1-9][0-9]+$") then
|
||||||
|
return
|
||||||
|
-- escape is reserved for menu_back
|
||||||
elseif scancode == "escape" then
|
elseif scancode == "escape" then
|
||||||
scene:onInputPress({input="menu_back", type="key", key=key, scancode=scancode})
|
scene:onInputPress({input="menu_back", type="key", key=key, scancode=scancode})
|
||||||
elseif scancode == "left" or scancode == "right" or scancode == "up" or scancode == "down" then
|
-- pass any other key to the scene, with its configured mapping
|
||||||
scene:onInputPress({input=scancode, type="key", key=key, scancode=scancode})
|
|
||||||
-- other keys can be configured
|
|
||||||
else
|
else
|
||||||
local input_pressed = nil
|
local input_pressed = nil
|
||||||
if config.input and config.input.keys then
|
if config.input and config.input.keys then
|
||||||
@ -132,14 +133,13 @@ function love.keypressed(key, scancode)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function love.keyreleased(key, scancode)
|
function love.keyreleased(key, scancode)
|
||||||
-- reserved keys, so the user can always get back to configure input
|
-- escape is reserved for menu_back
|
||||||
if scancode == "return" then
|
if scancode == "escape" then
|
||||||
scene:onInputRelease({input="menu_decide", type="key", key=key, scancode=scancode})
|
|
||||||
elseif scancode == "escape" then
|
|
||||||
scene:onInputRelease({input="menu_back", type="key", key=key, scancode=scancode})
|
scene:onInputRelease({input="menu_back", type="key", key=key, scancode=scancode})
|
||||||
elseif scancode == "left" or scancode == "right" or scancode == "up" or scancode == "down" then
|
-- function keys are reserved
|
||||||
scene:onInputRelease({input=scancode, type="key", key=key, scancode=scancode})
|
elseif string.match(scancode, "^f[1-9]$") or string.match(scancode, "^f[1-9][0-9]+$") then
|
||||||
-- other keys can be configured
|
return
|
||||||
|
-- handle all other keys; tab is reserved, but the input config scene keeps it from getting configured as a game input, so pass tab to the scene here
|
||||||
else
|
else
|
||||||
local input_released = nil
|
local input_released = nil
|
||||||
if config.input and config.input.keys then
|
if config.input and config.input.keys then
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
local GameScene = Scene:extend()
|
local GameScene = Scene:extend()
|
||||||
|
|
||||||
|
GameScene.title = "Game"
|
||||||
|
|
||||||
require 'load.save'
|
require 'load.save'
|
||||||
|
|
||||||
function GameScene:new(game_mode, ruleset)
|
function GameScene:new(game_mode, ruleset)
|
||||||
|
@ -61,7 +61,7 @@ function ConfigScene:render()
|
|||||||
love.graphics.print("press enter to confirm, delete/backspace to retry" .. (config.input and ", escape to cancel" or ""))
|
love.graphics.print("press enter to confirm, delete/backspace to retry" .. (config.input and ", escape to cancel" or ""))
|
||||||
else
|
else
|
||||||
love.graphics.print("press key or joystick input for " .. configurable_inputs[self.input_state] .. ", tab to skip" .. (config.input and ", escape to cancel" or ""), 0, 0)
|
love.graphics.print("press key or joystick input for " .. configurable_inputs[self.input_state] .. ", tab to skip" .. (config.input and ", escape to cancel" or ""), 0, 0)
|
||||||
love.graphics.print("enter, delete, backspace, tab, arrows, and escape can't be changed", 0, 20)
|
love.graphics.print("function keys (F1, F2, etc.), escape, and tab can't be changed", 0, 20)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -76,8 +76,9 @@ end
|
|||||||
|
|
||||||
function ConfigScene:onInputPress(e)
|
function ConfigScene:onInputPress(e)
|
||||||
if e.type == "key" then
|
if e.type == "key" then
|
||||||
-- enter, delete, backspace, tab, arrows, and escape are reserved and can't be remapped
|
-- function keys, escape, and tab are reserved and can't be remapped
|
||||||
if e.scancode == "escape" and config.input then
|
if e.scancode == "escape" and config.input then
|
||||||
|
-- cancel only if there was an input config already
|
||||||
scene = TitleScene()
|
scene = TitleScene()
|
||||||
elseif self.input_state > table.getn(configurable_inputs) then
|
elseif self.input_state > table.getn(configurable_inputs) then
|
||||||
if e.scancode == "return" then
|
if e.scancode == "return" then
|
||||||
@ -90,30 +91,18 @@ function ConfigScene:onInputPress(e)
|
|||||||
self.input_state = 1
|
self.input_state = 1
|
||||||
self.set_inputs = newSetInputs()
|
self.set_inputs = newSetInputs()
|
||||||
self.new_input = {}
|
self.new_input = {}
|
||||||
elseif e.scancode == "escape" and config.input then
|
|
||||||
-- cancel only if there was an input config already
|
|
||||||
scene = TitleScene()
|
|
||||||
end
|
end
|
||||||
elseif
|
elseif e.scancode == "tab" then
|
||||||
e.scancode ~= "delete" and
|
self.set_inputs[configurable_inputs[self.input_state]] = "skipped"
|
||||||
e.scancode ~= "backspace" and
|
self.input_state = self.input_state + 1
|
||||||
e.scancode ~= "return" and
|
elseif e.scancode ~= "escape" then
|
||||||
e.scancode ~= "left" and
|
-- all other keys can be configured
|
||||||
e.scancode ~= "right" and
|
if not self.new_input.keys then
|
||||||
e.scancode ~= "up" and
|
self.new_input.keys = {}
|
||||||
e.scancode ~= "down"
|
|
||||||
then
|
|
||||||
if e.scancode == "tab" then
|
|
||||||
self.set_inputs[configurable_inputs[self.input_state]] = "skipped"
|
|
||||||
self.input_state = self.input_state + 1
|
|
||||||
else
|
|
||||||
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.input_state = self.input_state + 1
|
|
||||||
end
|
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.input_state = self.input_state + 1
|
||||||
end
|
end
|
||||||
elseif string.sub(e.type, 1, 3) == "joy" then
|
elseif string.sub(e.type, 1, 3) == "joy" then
|
||||||
if self.input_state <= table.getn(configurable_inputs) then
|
if self.input_state <= table.getn(configurable_inputs) then
|
||||||
|
Loading…
Reference in New Issue
Block a user