1,734 Commits over 730 Days - 0.10cph!
Also fix allocs and stack overflow in navmesh load, fix potential leak, remove debug.break
Fix stack overflow and alloc in navmesh load / save
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
Double the speed of navmesh generation, fix some loading saves not working, fix some navmesh tiles missing, add logs to troubleshoot OOM issue
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 rustnav spam " Trying to use new navmesh despite -useNewNavmesh not being set on server boot."
Fix log spam " Trying to use new navmesh despite -useNewNavmesh not being set on server boot."
Fix new navmesh taking long time to build (regression where it use monument high resolution navmesh on whole map, instead of using low resolution properly)
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 player is unreachable
Fix old AIs not fleeing when the player is unreachable
Fix scientists not moving or spawning in multiple locations when new navmesh is enabled, also fix old AIs moving slower
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 scientists not spawning in deep sea
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 Scientist2 not spawning on deep sea islands
Fix deep sea islands having no navmesh if ai.move is false when deep sea opens
Fix big alloc during nav save/load
Reduce allocations in navmesh save/load
Only validate on load, no need to validate repeatedly