1,673 Commits over 639 Days - 0.11cph!
Taking ownership of pooled paths in SetPath is wrong, many callers store and reuse their own path instance between calls, so a path instance could end up having two owners that overwrite each other.
To reduce surface area for bugs paths will not be pooled for now, and SetPath will copy into its own buffer not take ownership.
Display independant navmeshes with recast.draw
Improve null checks (not only check if parent nav is null, but also if it's build, and if the build did not fail)
Rename overrideDirection to overrideDirectionWS to make space clearer
Fix rotation treating navspace as worldspace in move()
*Fix nav sample not respecting parent navmesh transform for fallback physics query
*Start abstracting space transforms so only the agent worries about the spaces, not the fsm, less boilerplate and hopefully less room for mistakes
Prefix all logs so it's clear which one come from unity navmesh and from the new navmesh
Split RustNavMeshAgent class in more files (separate unity API from custom stuff)
Fix nullref when trying to access Terrain.activeTerrain, use TerrainMeta instead
Avoid repeated calls to Terrain.activeTerrain
Rename RebuildAllNavmeshes to RebuildDefaultNavmesh
Fix scientists not shooting most of the time
Fix big blue circle for nav projections being distractived when ai.showpaths convar is set
Fix scientist staying in dogfight forever when there is no cover around that protects them from their target last known position, but their target is nowhere to be seen
Temp fix for scientists not facing their target
Update scientist for new navmesh
Fix croc diving and charging
Remove unecessary double reset of croc swim depth, remove log spam in sense component
Fix animals slowing down to a crawl when fleeing
Fix animals looking behind unnaturally, bring back the fix from previous implementation
* Fix wolf and tiger not jumping on foundations
* Port sample position fix for ghostships to new navmesh agent
* Re-add failed path vddraw
Fix animals looking straight ahead when sprinting (should only be for scientists)
Fix animals path deviation not being reset on path change, causing wolf to charge sideways
Fix tiger prowling and croc intimidation
Centralize all flags in npc networking component
* Fix look at not working properly anymore because it was relying on the target being replicated
* Make sense component server only, add separate component for networking
* Network look direction instead of lkp, don't let the client come up with potentially different look directions (todo fix prowl still depending on target being networked)
Fix tiger getting stuck when fleeing
Update stopping distances
Fix unnatural slowdown in some cases when path following
Add unitask assembly as dependency for tests
Fix some compile errors, delete copy of unitask
Unitask metas appeared only after opening editor, committing that
Use bitwise and for entity flag checks like on main
Refactor path following, fix issues with animals, slow down after root motion anims remain, isReachable inconsistent, swim speed not handled
Start breaking apart LimitedTurnNavAgent and moving its functionnality to the shared rust nav agent
Fix one of the logs not being prefixed correctly
Fix RebuildTilesInBounds not working on independant navmeshes
Postfix all navspace Vector3 variables with "NS" and worldspace with "WS", ideally they'd have different types to prevent user error but that's a first step while we still support the unity navmesh
When updatePosition is true, the nav agent will convert from nav space to world space before applying the position
Fix potential issue if we spawned an npc on a moving navmesh after it started moving