branchrust_reboot/main/new_navmesh_fixescancel
71 Commits over 30 Days - 0.10cph!
Do not calculate remaining distance twice
Optimize fsm wait for navmesh
Disambiguate rust nav mesh helpers
Fix sample radius being insufficient to check if player is on navmesh
Fix leftover comment and stale dll
Also fix allocs and stack overflow in navmesh load, fix potential leak, remove debug.break
Fix stack overflow in navmesh save, stackallow is not scoped to for loop but actually methods, also use writer.BaseStream.Write instear of writer.Write because the latter copies and allocates in Unity... Also fix potential bug in the way we check for null tiles
Add build artefacts for all platforms
Remove debug.break left by accident
Fix tile seams not being perfectly aligned because of quantization
Fix bad merge for vine tree fix
FIx missing tiles because of too much height and too little cellHeight, causing spans to not have enough range
Change min region size to meters, include oom logs
Fix old tile remaining after failed tile rebuild, which will cause it to exist in native but not in managed, and be ignored by saves
FIx borders not being right now that we rely on only one physics query to decide if we build normal or hires
Fix tile bounds height being too larged when passed to create heightfield
Fix navmesh load failing because of invalid tile count, just because it has more than
10000 tiles which is possible
Cleanup unused variables and redundant comments
Speed up new navmesh gen by x1.6
- optimize height and alpha terrain sampling to avoid redundant bounds check / deep sea / wrapping / dispatches, have terrain meshing work inplace on the buffers instead of using pooled vertex and index pooled lists
- avoid using rust native list, it's not really pooled it just reallocates the internal native array everytime it's unpooled, use custom one (may be overkill, will check later if native array is good enough), bypass pooling these by using [ThreadStatic] buffers
- replace cancellation tokens with lightweight tileCancellation classes just wrrapping volatile bool, we just need the object reference to act as a build version to avoid locks and stale results, tokens are massive if allocated per tile and add complexity, and a lot of features go unused
Do monument/player build collision check required for hires navmesh, as part as normal geometry collection not another pass
Fix log spam " Trying to use new navmesh despite -useNewNavmesh not being set on server boot."
Fix navmesh building using hiRes (monument) resolution for whole world, regression introduced in
145214
Optimize "isBuilt" navmesh checks, log time it took to build navmesh async
Fix old AIs not fleeing when the player is unreachable
Fix old AIs being slower when new navmesh is enabled
Fix scientists not spawning in some areas
Fix waiting for navmesh check on island being inverted (only trying to spawn scientists when no navmesh is there)
Prevent ghostships from checking mainland navmesh
Fix double navmesh on tropical island 1
Fix oilrigs and tutorial islands navmesh not working with new system
Fix code files affected by the asset subtract
Subtract changes to scenes and prefab, as it caused an error in deep sea creation
Attempt at also converting DungeonNavmesh, may need more work as it relies on massive bounds and passes the root objects to make the cost not balloon
Make "IsBuilding" property behave correctly for MonumentNavmesh wrapping a new navmesh, allowing spawners to delay activating until the navmesh finishes building
Remove independant navmesh component from oilrigs, tutorial island, and tropical islands.
The old monument navmesh component will dynamically switch to building disconnected new navmesh when off the mainland.
Fix incorrect spawn navmesh sampling on tropical islands when using new navmesh
Fix deep sea islands having no navmesh if ai.move is false when deep sea opens
Reduce allocations in navmesh save/load
Only validate on load, no need to validate repeatedly