12,997 Commits over 2,376 Days - 0.23cph!
More accurate shootable collision on small ramp
▋▆▅▄▄▍ ▄█▍▋ ▊█▇▋▅▍▍▍▅▋▆▆▋▉
▆▍█▌▊▄▊▍▌█▌ ▋▊▆█▆█▇▄▇ ▅▍▉ ▆▋█▄▄█ ▆▊▌▋▉▊ ▄▆▌ ▌▉ ▅▌▇▇▉▍ ▍▇▌▇▇▉▋▄ ▌▆█▆▄▅▍▉ ▉▉▋▄▍▄ ▉▇▄▊▉▉ ▆▆▊▅▊▋▉ ▋▅▅▍▄▅▋ ▊▇▊▍▌ ▋▊▉▇▋▉▉
▊▄▇▅▆█▆█ █▇▊▇ ▉▊ ▇█▆▉▄▅ ▋▆▄▅█ ▉█▅▊▌▉▄ ▉█▊▍▋▋▇▌ ▌▄▊▄▍▇
Merge from sprinkler_vis_refactor
SceneToPrefabTag can now be used on LOD components that are are part of a CuillingVolume to ensure they are part of the final generated HLOD mesh
Fixed an order of execution issue with CullingVolumes and LODMasterMesh when an entity with these components was spawned as part of map load (likely only an editor only issue), resulting in LODComponents getting toggled before they are initialised, which would cause the LOD to fall back to default bounds and consider itself small
Fixed a couple of curtain prefabs in the casino that were broken
The exterior curtain now appears in the HLOD mesh
S2P all floating cities
Fixed sprinklers not applying water to planters on their first tick, would have worked as normal on subsequent ticks
Tests now pass
Added a couple of tests for sprinkler behaviour - checking if water container drains liquid, splashing a planter, splashing multiple planters and getting blocked by line of sight to planter
Added a cached list of dynamic objects in range of the sprinkler, only check line of sight if they move 1m away from their last position
Will remove any cost for splashing dynamic, non-moving objects (sleepers, dud explosives, idle players, etc)
Possible refactor of how we handle finding Splashable entities for the sprinkler
Uses a new SplashableStaticGrid that supports updating grid positions of deployables that are parented to moving objects (like boats)
Use a new trigger attached to the sprinkler for dynamic entities (players, explosives, bees, etc), this actually results in much more responsive behaviour
This removes the expensive Vis.Entities but has unfortunately introduced a raycast on the dynamic entites for every splash, still needs some thought
Fixed small ramp colliders not on wood layer
Increased resolution of auto generated collider mesh to fix some hioles that should be shootable
Map marker edit UI now appears above fog of war
Inventory null check in Mailbox
Fixed not being able to switch to softcore on craggy island
Don't drop softcore corpses if the deployable is on a player boat
Only calculate position and scale once in ImpostorBatching
Hooked up missing Impostor component and fixed incorrect LOD4 material on:
palm_tree_tropical_small_a
palm_tree_tropical_med_b
palm_tree_small_a
palm_tree_small_b
S2P all tropical islands
Small engine now switches to a non shadow casting static mesh at LOD 3+4
Added a boat building player inventory loadout
Fixed being able to place engines and small ramps in prevent building volumes
Removed some client allocations in RepairCostIndicator
Fixed tutorial islands getting the wrong ID when loading a save
Fix player collider not being the right size when waking up for a frame, caused incorrect triggers to be picked up by ForceUpdateTriggers
This resulted in the player being affected by the TriggerPlayerForce attached to boat blocks when waking up, which happens when entering/exiting the deep sea
Merge from boat_water_fx_optim
Even more fx optimisations, move the blocks into a work queue and support breaking out mid processing if we take too long to avoid queue overruns
Also added early returns for disabling fx (so fully occluded blocks are now effectively free) and bypassed the Angle calculation if a block is fully occluded
Fixed a tarp on the elevator shaft that had LOD1 at a different position
Fixed delay when first opening a ramp after entering network range if that ramp was in it's closed state
Improved the island appearance on the map, just gradient from sand to grass based on terrain height
Better than greyscale, not quite as good as the mainland
Possible fix for all boat blocks showing splash fx in builds (should only show when their edge is unobstructed and in the water)
Fixed GrowableGenetics and UpdateResourcePings pool leaks
Fixed boogie board LOD not marked as dynamic
Fixed every impact fx in the deep sea being sand
Make cooking tests editor only for now
Update tests to better reflect new update flow
Cache HasAttachedStorageAdaptor
Don't mark items as dirty every update, only when they pass a 5s increment
Eliminates most of the MarkDirty calls and brings the 1000 oven test case under the 0.25ms budget some of the time
Convert ovens to a persistent work queue, budgeted to 0.25ms by default
In the 1000 oven test case this caps out at processing around 40-50 ovens a frame