662 Commits over 245 Days - 0.11cph!
reduced amount rigidbody pos/rot is accessed when determining if a ModularCar is stationary, it was causing multiple unecessary transform syncs
use HasDriver flag instead of always searching for a driver seat for vehicles (reduces a lot of overhead from unoccupied vehicles, especially modular cars)
reconfigure vehicle substeps again when re-enabling wheels as the internal physx vehicle may have been destroyed from disabling them
merge from triggerbase_exclude_layers
automatically clear/set exclude layers for all TriggerBase when toggled on/off
defaulting triggerbase exclude layers optim to off
disabling/enabling wheel colliders with sleep state to reduce overhead
▇▆█▌▍▄ ▅▄-▊█▍▇▉▍ █▇▄▌▋▊▋▍ ▋▅▉▍▋▋█▊█
▍▇▉▉▌ ▉▅▄▅▄ ▅▋▋ ▉█▌▊█▆▍▄ ▄▇▅▉▄
- ▉▇-▍▉▄▋▉▉▅▉ ▅▄▊▊ ▋▉▍▋▆▉ ▉▄▇▆▍▉ ▄▅▅ (▌▄▇▍ ▌▄▌▅▊▄█▅ ▆▇ ▌▋▊▋▉▆█▄▉▍▄ █▉ ▍▊▉█▊█) █▆▉ ▋▄'▌ ▊▍█▇▊▋ ▇▇ ▊▉ ▉▇▌ ▉▍▊▋█ ▇▌ ▇█▌█▄▊▌ ▋▌ ▅▆▍▉ ▍▌▇▄▊
▄▊▉▍▌▊▆▍▆▇▋▉▆ ▊█▌▌▊▅█▋▆▉▅▊▇▅▊▌▇▆▅▉▉▅▌▍▋▌▍▄ █▅ ▆▅▆ ▍▇ █ ▍▇▉▄▄ ▅▋▄▇▇██▊ ▄▌▄
- ▉▄▋▉▉▌ ▄▌▅ █▆▅▇ ▄▇▇▋▅ ▍▄▋▅█
- █▇▋▊ █▇▉▇▇ ▆▅▊▆▆ ▌▍ ▄▆▋▌
- ▉▌▊▋▆ ▍▅▊▉▅ ▌▇▇▉ ▆▅▋▆▊█▊ ▄▍▍ ▆█▅▄▍▅ ▌▋▍▇▌▉▋▄
merge from triggerbase_exclude_layers
merge from triggerbase_exclude_layers
small correction on trigger static list initializing wrong with excludelayers optim disabled
cherrypick
114515 - CoarseQueryGrid causing crash on server disconnect
merge from tugboat_sinking_parenting_fix
setup parenting volumes on tugboat that allow swimmers, gives better behaviour when the boat is sinking
merge from vehicle_build_privilege_fix
fixed vehicle building privilege cache reading as false negative
separated client/server convars for trigger excludelayer behaviour
merge from terrain_ignore_grid
made CoarseQueryGrid structure safe to interact with after disposal
- logs errors if you somehow add trigger bounds to it after disposal, not happened yet
- silently ignores attempts to remove bounds
- any checks pass as if further physics checks are required, as a fallback
convar usage of excludelayers with triggerbase (default true)
merge from garage_door_fixes_2
use a transform parameter to define the local bounds for clamping the wire position to, avoids issues with bounds being initialized differently with different door states
setting excludelayers on child trigger colliders to match inverted interestlayers in Awake
- convars to clear and setup all TriggerBase excludelayers for profiling purposes
fixed two instances of TriggerBase subclasses not calling base and ignoring InterestLayers
tool for checking if other components are consuming trigger events for any TriggerBase in prefabs
merge from terrain_ignore_grid
just split the coarse query grid to have a Check and CheckJob function to call from burst and managed contexts respectively
(not as cool as the previous solution, but doesn't rely on compiler shenanigans)
merge from garage_door_fixes_2
fixed parenting issue with door controllers on ClosedCollider io parent
re-calcing clamped io line bounds when a line is added, not OnEnable as it can't be relied on for positioning
tool for checking trigger exclude layers for TriggerBase across assets
merge from coarse_grid_bounds_fix
pad CoarseQueryGrid bounds to handle offshore monuments properly
- world size is not inclusive of these, just terrain
experimentally routing calls to queries from a non-burst context to run a burst compiled job on the main thread and calls from burst contexts to directly run the code
- uses a mixture of BurstDiscard and compiler hints to avoid compiling any branching into burst-compiled code
- twice as fast than just burst compiling the function calls and calling it directly from managed/non-managed contexts
- at least 10x faster for larger queries in worst cases (empty grid) and negligable difference for small queries
merge from terrain_ignore_grid
coarse query grid split into upper and lower slices, avoiding tunnels flooding the map
- trigger bounds that cross theshold are represented in both
- only queries that cross theshold query both grids
- using initial caves network visibility threshold to separate as eliminating tunnels from the main above-ground usage is the main goal here and this works well for that
- increased cell size again, more granularity isn't needed now
use world size for coarse grid sizes rather than arbitrary upper limit, reduced cell size for more precision
added editor tool to dump CoarseQueryGrid as an image (normalized R8)
- highlighted how much the train tunnels screw this optim