1,630 Commits over 608 Days - 0.11cph!
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
Setup tropical island 1 and ghostship 1 to use independant navmesh
Make command line debug navmesh tool pick the relevant independant navmesh instead of always the default one
Temp workaround force synchronous builds on moving navmesh, as right now the geometry queries use world space and they won't query the right spot
Remove all duplicated methods used for convenience that were forwarding to the main navmesh, agent now explicitely selects the navmesh they want to query
Reorder samplePosition arguments to be consistent with unity
Further unify APIs, the navmesh class itself is not the only one that cares about native API calls
FIx compile error, further api unification
Make everything go through the same code path instead of each calling the base API, to make it easier to apply changes in one place
Make recast API same as unity compatible API, remove implicit space transforms from recast api (will be in agent)
Add "canMove" field to independant navmesh (tropical islands don't move so don't need the overhead)
Make sure we always go through the agent for navmesh queries, never use the static queries, this allows us to perform the coordinate space change necessary for moving navmeshes
Make all queries check if they are in an independant navmesh volume before querying the main navmesh
Fix FindNavmeshesInBounds not working after movable navmesh moves away
Handle "moving" navmeshes (reprojecting from world space to navmesh space), allow debug visualizing them with the correct current transform not just their static version
Add debug drawing for cell coordinates and build status
First pass on disconnected navmeshes (eg tropical islands)
FIx isStopped incorrectly clearing path, path is cleared on disable instead
Fix potential nullref in SetDestination
Fix updateRotation not being used properly
Use private members instead of getters internally, to avoid unwanted redirection
Fixe Move not using correct navarea for raycast and sample
Better keep state of unity navmesh agent and custom navmesh agent in sync, fix offset being applied twice
Fix set path earlying out incorrectly when called from SetDestination
Use cleaner getter for agent
Fix path follower ticking twice per frame in editor
Prevent path leaking when agent is destroyed
Port tiger, panther, croc and naval scientists
Will need thorough testing
Remove GetCornersNonAlloc helpers and intermediate buffers
Revert recent changes to new NPCs pathfinding component, they don't need it with the new abstraction around NavMeshAgent and NavMeshPath
Port the new wolf as a test, works fine but unlike old NPCs does not support switching at runtime without throwing errors, to investigate
Port old oilrig scientists, just to check that monuments properly support switching navmesh back and forth, will port all other old scientists later
Port polar bear, boar, chicken and stag
Properly take into account "base offset" property use on chicken and stag
Route all references to unity navmesh to class with same API, to easily intercept and route requests to the correct navmesh depending on the convar
Converted bear to be able to switch between unity and custom navmesh at will, has yet to port other old and new animals as well as all humanoids
Budget the main thread part of navmesh building
Fix binary saving overwriting the beginning of the previous save but leaving without truncating the end
Fix incorrect cleanup on load fail
Better logs, fix out of bounds tile index, fix incorrect warning when loading a navmesh from a save
Fix tilesLoaded never being incremented, causing loading to fail
Finish refactor to have individual navmesh instances instead of a singleton, todo fix crash on destroy
Prepare refactor to have multiple navmeshes in same world
* new namespace for all new nav stuff to avoid confusion with old
* separate global methods
* navmesh instance methods
* C++ wrapper methods
* path helper methods
* geometry helper methods
Prepare work on moving navmesh
Update rust native lib for all platforms to contains the new recast code
Cherry pick to compensate scientist dmg lowered by armor buff, should now be on par previous patch (fullmetal is same ttk, hazmat will take less dmg, naked will take more dmg)
Rebalance scientist damage to compensate armor buff, should kill fullmetal when landing every shot in one full mp5 mag