feat: add gamepad support to escoria-ui-simplemouse (#518)
This commit starts by introducing a new action, `ESC_UI_PRIMARY_ACTION`, that is used to represent a "primary action" from an input device, such as a left-click on a mouse or the press of the primary button on a gamepad. Although this action is not added to `InputMap` by default in `escoria-core`, `_unhandled_input()` in `esc_item.gd` is updated to look for it. The other portion of this commit is an update to `addons/escoria-ui-simplemouse/game.gd` that adds a gamepad mapping to the `InputMap` for both `ESC_UI_PRIMARY_ACTION` as well as another new action `ESC_UI_CHANGE_VERB_ACTION`. These actions are mapped to X and Y on an XBox controller, respectively. Note that `game.gd` is also updated to implement `_process()` such that moving `JOY_AXIS_0` and `JOY_AXIS_1` on "gamepad 0" will move the cursor around on the screen as the mouse would. Overall, this makes the game fairly playable with a gamepad, though admittedly a mouse is still currently required to click the "New game" button on the initial menu because `BaseButton::gui_input()` appears to be hardcoded to check for mouse events exclusively: godotengine/godot@a09814e/scene/gui/base_button.cpp#L55-L81
This commit is contained in:
@@ -21,6 +21,10 @@ const SWITCH_ACTION_VERB = "switch_action_verb"
|
||||
# Input action for use by InputMap
|
||||
const ESC_SHOW_DEBUG_PROMPT = "esc_show_debug_prompt"
|
||||
|
||||
# Input action for use by InputMap that represents a "primary action" from an
|
||||
# input device, such as a left-click on a mouse or the X button on an XBox
|
||||
# controller
|
||||
const ESC_UI_PRIMARY_ACTION = "esc_ui_primary_action"
|
||||
|
||||
# The current input mode
|
||||
var input_mode = INPUT_ALL
|
||||
|
||||
Reference in New Issue
Block a user