407 Commits over 153 Days - 0.11cph!
Fix water collision jobs in buoyancy throwing exceptions due to temp allocator use.
Further optimize GetBuoyancyWaterInfoBatched, let topology queries run in burst(no batch yet), batch water ignores.
Batched Buoyancy is now functional, but still missing some code and needs more optimization:
- Move buoyancy data into persistent arrays and reuse them.
- Add convar for switching between batched/old buoyancy.
- Add 3D positions for water info step.
- Add Ocean Simulation.GetHeights span overloads for interop with native arrays. (they still need a XZ3D step, otherwise we'd use the native arrays directly - TODO later.)
- Add GetBuoyancyWaterInfoBatched. (wip, missing entity fast paths for inside terrain/above water)
- Shim Ocean simulation into WaterSystem.GetHeightArray_Native, it's already batched, works for now.
Fix world model outlines not displaying when using skip domain reload.
Still heavily wip, run the watermap jobs from burst.
Start tracking buoyancy components to track them, split batches into deepsea/mainland.
merge from main to fix playmode
Fix playmode being broken due to outdated protobuf serializer or merge conflict.
Make grid constructor parameters optional to support static field codegen.
merge boat perf optimizations to main
Use child entity count for MotionToggle cache invalidation.
Add parameterless constructor to Grid<T> to make it compatible with reset static fields code gen.
WIP, it's getting annoying to drag these changes across branches:
- Move a good chunk of buoyancy into burst.
- Add burst methods for filling buoyancy point data arrays.
- Introduce methods for running buoyancy in a batch rather than on every component separately.
Make terrain height and shore vector methods readonly to indicate that they're pure.
Add indexer to pooled array, add extension for copying managed arrays into native arrays. (intended for smaller collections)
Replace broadcast motion with a cached version (staggered update every 60f), reduces Client.Update from 4.5ms~ back to 1ms~ with 15 boats.
Fix leg animator causing the player model to clip through the camera in first person mode.
Fix `-nosteam` no longer working in editor. (Preferences -> Facepunch -> Disable platform services editor pref)
Add modified script for generating a list of Job Safe Unity APIs.
Fix odd cannonball loaded position, move it to the back of the barrel.
Stop reload sounds when dismounting the cannon, fix cannon barrel impact sounds.
Show toast for only being able to place cannons on player boats, Fix reload animation error spam on cannons from invalid playables.
Cherry pick fix for low fps cannon reloads on other players
Update ghostship parent volumes to be more accurate, which should fix players getting stuck when approaching ghostships on playerboats
Fix tropical1 having the wrong mesh collider assigned
Re-bake navmesh for all ghost ships to include hackable crate navmesh modifiers
Fix s2p failing on tropical4 when trying to pop terrains from an empty buffer list.
Rebake tropical4 mesh + s2p
Rebake tropical3 mesh + s2p
Rebake tropical2 mesh + s2p
Clean up mesh chunk folders + remove old versions
Rebake tropical1 mesh + s2p, set chunks/collider to terrain layer.
Add warning for missing spawn groups instead of just silencing them
Fix dwelling NRE causing deep sea islands to not spawn fully.
Null check reloaded sound for cannons
Add a tool to convert navmesh obstacles to modifier volumes, rebake all ghostship nav using volumes
Parent entities before initializing them
Update all ship trigger parent shapes to match the ship
Fix compile errors, re-enable navmesh obstacles on ships, disable navmesh surfaces on all the other ships
Regen tropical 1 mesh chunks
Add a check for cannon update parameters errors if the playable graph isn't ready.
Add validation between lighting the fuse and firing the cannon.
merge from islands to naval