* Added Dynamic Gravity Toggle
Added an editor toggle for dynamic gravity so users don't need to uncomment code in character.gd.
* Refactor controls export variables
Changed controls export variables to be a single dictionary so they can be edited completely in the editor without having to open the script. I also refactored the controller support section to allow similar functionality for controller specific controls and removed the need to uncomment/comment out lines of code to turn on/off controller support.
* Add more editor descriptions and implement camera axis inversion options
Added/tweaked export variable descriptions so everything has one. Also slightly refactored the camera input inversion code and added the ability to invert the camera x axis.
* Added direction based landing animations
Added some logic to determine which landing animation to play so it's not random anymore. Also added a land_center animation for the case of neutral landings. This can be expanded if desired, but it's pretty convincing as is and is ulitmately a small detail.
* Correct various grammar and spelling errors
A final pass to clean up any grammatical or spelling errors in the comments
* Re-organized Character.gd
Hope I'm not overstepping here, but I re-organized Character.gd to make it a bit easier to read and work with. Added editor bookmarks and collapsible code regions. It's hard to parse in the diff so I recommend you look at it in Godot proper.
* Commented out debug print statement
I assume this was left uncommented by mistake. I was wondering what was printing that to my console.
* Fixed Landing Animation Logic
I guess I was up too late on my first attempt because it straight up didn't work. This new version works as far as my testing can tell.
* Removed some unused variables
base_speed is assigned to speed before the default is updated to what is set in the export variable causing it to be the incorrect value. Calling enter_normal_state() on ready sets speed to the correct value before the player gains control. From my testing, this has no side effects.
Removed the hard coded lines that were causing the sprint and crouch variables to initialize to lowercase "crouch" and "sprint" instead of user specified values in the script.