Added setdestination_navmesh_failsafe convar, npcs will attempt to place themselves on a navmesh when setdestination is called and they're not currently bound to navmesh.
Added a warning when warping to a valid navmesh location but still not binding to it (mismatching agent type) to make it more obvious what's going wrong.
Pulled HumanBrain / CH47Brain states out into partials instead of the main brain files, to make it clearer what's common and not.
Removed some calculations on variables that never get used, distance checks, inverseloops etc.
Some basic state cleanup.
Added AIThinkMode to base brain, all brains can set their think mode: interval or fixed update, as well as individual tick rates.
Moved a bunch of ShouldThink/DoThink logic to base brain so it can be used by all brains instead of each having its own delta implementation, age tracking etc.
Added "time in current state" to debug display.
Moved brain states to a new shared enum, AIState. State constructors set type.
AddState no longer requires a type parameter.
States are now automatically maintained, in a dictionary.
Reworked current state handling to be a state ref, not using array indexes.
Hooked up gizmo drawing to brain, calls it on any active state for debugging.
Added basic debug rendering info to base brain (current state name for now).