-
Notifications
You must be signed in to change notification settings - Fork 119
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add gamepad support to escoria-ui-simplemouse #518
Conversation
0413244
to
0f204fd
Compare
5e66361
to
2c16685
Compare
OK, rebased everything on |
I don't have a gamepad so I'm afraid I can't review this properly. Code looks good so far. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some conversations still to be resolved
@StraToN I looked through, but I'm unclear on which conversations still need to be resolved? |
2c16685
to
6cd148b
Compare
FYI, I just rebased on develop and updated this PR again, for good measure, though there were no merge conflicts. |
d2e8cc1
to
fd73dfa
Compare
fd73dfa
to
f9226a0
Compare
2a11e4a
to
15c999e
Compare
Tested after rebase onto develop branch (to benefit fix from cb538ed). Keyboard plugin works fine. Gamepad in simple mouse works fine as well. All good to me, thanks a lot! |
15c999e
to
ce212ac
Compare
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: https://github.com/godotengine/godot/blob/a09814e4f86861948615fcd83139de6ed9a34434/scene/gui/base_button.cpp#L55-L81
ce212ac
to
54b116c
Compare
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
Review stack (3/3) Prev
Updates escoria-ui-simplemouse to demonstrate basic gamepad support.
Addresses godot-escoria/escoria-issues#101.