Amethyst control crate.
To add an arc ball behaviour, add this to a camera which already has the FlyControlTag added.
The system that manages the arc ball movement; In essence, the system will allign the camera with its target while keeping the distance to it and while keeping the orientation of the camera. To modify the orientation of the camera in accordance with the mouse input, please use the FreeRotationSystem.
The bundle that creates a flying movement system. Note: Will not actually create a moving entity. It will only register the needed resources and systems. The generic parameters A and B are the ones used in InputHandler<A,B>. You might want to add "fly_movement" and "free_rotation" as dependencies of the TransformSystem. Adding this bundle will grab the mouse, hide it and keep it centered.
Add this to a camera if you want it to be a fly camera. You need to add the FlyControlBundle or the required systems for it to work.
The system that manages the fly movement. Generic parameters are the parameters for the InputHandler.
The system that manages the view rotation. Controlled by the mouse.
The system that locks the mouse to the center of the screen. Useful for first person camera.
A system which reads Events and saves if a window has lost focus in a WindowFocus resource
Struct which holds information about whether the window is focused. Written to by MouseFocusUpdateSystem