Flickstick Improvements
Flickstick is a nice feature to support, but it feels off when it doesn't allow the usual spinning via spinning the stick, and the camera rotates smoothly (which makes an easier on the eyes, but less responsive feel to the camera control)
Flickstick being a continuous input, stopping when the stick is released, and rotating the camera as the stick rotates at a 1:1 rate would make it feel much more responsive, as well as being able to disable the smooth camera rotation towards the initial flick position, these could be options and would improve feature parity with Steam Input
Thank you! That makes sense.
This is a duplicate issue to #484, though seeing as this issue describes it better, I'd suggest making this the main issue.
As to how to implement it, you would have to save the yaw angle that the camera was in before using the flick stick, ~~and then adding the angle of the flick stick to that (having Up being the original angle).~~ This is wrong since I did not consider player.turn() being additive.
After the flick stick returns to neutral the original angle of the camera can be dropped since it's no longer the angle the camera is in (or it didn't change).
Thinking about it, you would also need the current yaw angle of the camera, for calculating the difference between the original, as player.turn() is an additive function.
It would result in the following:
yawOrigin: The original yaw yawCurrent: The current yaw flickAngle: The angle of the Flick Stick
~~flickAngle - (yawCurrent - yawOrigin)~~
EDIT: This does not work since flickAngle needs an addition of 90 degrees in order to make "Up" actually up on the stick.
Seems like I got the new implementation working, still needs testing though.