keyboard-input ( world -- movement/f face/f )


Vocabulary
papier

Inputs
worldan object


Outputs
movement/fan object
face/fan object


Definition


:: keyboard-input ( world -- movement/f face/f )
world [ held-keys>> ] [ pending-keys>> ] bi union
:> keys world { } >>pending-keys drop keys
{ "left" "a" } { "right" "d" } key-axis :> x keys
{ "up" "w" } { "down" "s" } key-axis
:> z x zero? z zero? and
[ f f ] [
x 0 z 0 float-4-boa normalize move-rate v*n {
{ [ x 0 < ] [ float-4{ 0.0 0.0 1.0 0.0 } ] }
{ [ x 0 > ] [ float-4{ 1.0 0.0 0.0 0.0 } ] }
[ world slabs-by-name>> "marco" swap at orient>> ]
} cond
] if ;