PlayerMovePredicateTime evaluates to true every 100ms
PlayerMoveDecider uses PlayerMovePredicateTime
PlayerMoveDecider is given predicates to evaulate
PlayerMovePredicateTime implements PlayerMovePredicate
integrated new PlayerMoveDecider
PlayerMovePredicateScreenEdges prevents player movement if player goes beyond screen bounds
integrated PlayerMovePredicateScreenEdges
pass current velocity to PlayerMoveDecider and subsequently to PlayerMovePredicates
fixed edge checks so we can still move after reaching a screen boundary
if velocity is zero, we can always move, and subsequent moves will also work