This is a major refactor that splits user inputs into three kinds: buttonlike, axislike and dualaxislike.
This change ends up rippling through the whole stack: from Actionlike to UserInput to InputMap to ActionState.
Despite that, I'm really happy with this change! It really clarifies the semantics of the different input types, in a way that I think will be easier to learn, more natural to maintain and harder to mess up.
There are a number of items that need to be done before this is mergeable still:
[x] rename with_dualaxis to with_dual_axis
[x] generate ActionDiffs correctly
[x] sanity-check clashing inputs
[x] actually update axislike and dualaxislike data in ActionState::update's call stack
[ ] store 0-1 values in Buttonlike inputs to properly handle triggers
[x] go over ActionState to double-check that all APIs have been updated correctly
Fixes #535.
This is a major refactor that splits user inputs into three kinds: buttonlike, axislike and dualaxislike. This change ends up rippling through the whole stack: from
Actionlike
toUserInput
toInputMap
toActionState
.Despite that, I'm really happy with this change! It really clarifies the semantics of the different input types, in a way that I think will be easier to learn, more natural to maintain and harder to mess up.
There are a number of items that need to be done before this is mergeable still:
ActionDiff
s correctlyActionState::update
's call stackstore 0-1 values in Buttonlike inputs to properly handle triggersActionState
to double-check that all APIs have been updated correctly