beyond-all-reason / beyond-all-reason/RecoilEngine

Changing how Lua receives Mouse interaction

Open
#910 18 comments 0 reactions 0 assignees View on GitHub
area: Input area: Lua API
Dominant language
C++
Stars
679
Forks
290
Avg merge
3d 1h
Merged PRs (30d)
38

Description

I've been working on some changes to mouse handling - specifically, replacing engine default actions with a binding system similar to how keyboard input is handled.

With this, I'd like to change how MousePress, MouseMove, and MouseRelease are handled - currently, MouseMove and MouseRelease aren't handled per-button.

Issuing MouseRelease for every mouse button released should not impact games using a `mouseOwner` system similar to the current basecontent, as `mouseOwner` is set to nil at the first `MouseRelease` received. (currently, only the first button released will send a `MouseRelease` to Lua.)

`MouseMove` will require new behaviour, however. Prefered solutions are:
- Changing `button` argument to a bitfield of pressed buttons
- Changing `button` argument to a table/array of pressed buttons
Other possible solutions:
- Removing `button` argument, letting game track which buttons are pressed
- Calling `MouseMove` for every button pressed

(Related PR: #893)

Contributor guide

Open the contributing guide

Research direction

Start by reading related PR #893 and the 18-comment discussion to determine whether a MouseMove representation has been selected. Done requires a decided, documented behavior for MousePress, MouseMove, and MouseRelease that matches the chosen Lua interface; no file or test is named in the issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
lua
Domain
game-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.