1,836 Commits over 852 Days - 0.09cph!
merge from triangle_block_isvisible_fix
- stops splash damage being applied to triangle floors and frames through walls in some cases
▌ ▇▉▍▊▍▊▍▅ ▌▆▍█ ▅▉ ██▊ ▆▍▅▍▆▊▍▍ █▇▊█▋▄▅▅▉▉█ ▆▊▋▋ ▍▆▋▅ ▅▊▆▋▉▋▇▉▇ ▍▍▄ ▌▍▊█▆▆▊▄▅▌▇ ▊▄ ▄▆▄▉▅▅▋▉ ▉▋▇▆▊▅▋██▌ ▅▉█ ▊▆ ▍▆█▊▉▊ ▍▇▆ ▉▊██▇▄▆▋▆█ ▆▆▇▅ ▊▅▌▊
enable for triangle frames and foundations as well
simplified 3-triangle closest point test to a single triangle for XZ and then clamping Y to the prismatic extents, more accurate and cheaper
stronger recursion checks
aliases show in console autocomplete results
added `alias` command that works the same as input.bind but with a custom command name instead
corrected simulation space not being handled by held items
don't gather colliders if collision is disabled
various BC improvements
- collision as proper capsules again
- colliders interpolate for sub-steps
- fixed accumulator issue that would appear after a big spike frame
- fixed issue with simulation space not actually being a simulation space
▊ ▇▋▄▇▌▆▉▄▅█▊ ▍▇▌▊▌ ▍▋▄▉▌▍▅ ▉▊▌
▋ █▅▄▌ ▉▍▍█▊▉▄▄▊▅▉ ▆▅▄██ ▌▊▌▉▇
▉ ▍▋██▄▉▌▍▆▊▊▋▇▋▄▅▋▋▌ ▌▍▉▊▇ ▊▅▆▅▋▇▇ ▍▋▋ ▄▊▍ ▆▊▉▅▅▉▋▆▊▉ ▌▊▆▋▌▆ ▄▊▇▅ ▄▋▍▆▋▆▍▇ ▊▄ ▊▊█ ▆█▄▆▊▋▄▌▄ ▄▊▇ █ █▉█▋▋▅ ▊▉▌▉▋ ▆█▌▊█▊
short test to force the extremes of DecorComponents to ensure the bounds is correct with future changes
- if this broke silently rocks would just fail to spawn or spawn where they shouldn't
use expanded decor component bounds to early out terrain filters cheaply in decor placement - saves 12s in coastal rocks, barely saves elsewhere
- can only do this because we have a cheaper hierarchal query for topology of an area now
Process cliff uniform placement validity in parallel - takes another 29s off, still matching results before optims
- pivot filters are tested in large batches of all candidates and re-tested if dirtied
- per-candidate orientation checks are done in parallel for passing candidates
made costal cliffs take 2s instead of 34s by adding caching to the recursive search (maxed around 400KB memory at max)
- falls back to recursive if the cache misses
improved monument placement - 13s faster
- split tier check out to early exit as a first check and water check to run at the end
- let distance checks exit early on the first monument it finds that's too close, reject behaviour is the same
replaced topology query job with direct call into burst compiled code via blittable UnsafeList<T>, the tiny job runbyref overhead adds up with the amount of queries we make
- shaves another 22s off, which is ridiculous
merge from erosion_optim - ~22s faster on a 4000 map, overall savings now ~67s or ~18%
removed repeated check of 0 orientation on cliff placement where we'd check it on both sign flips across X and Z - cuts an additional 19.1s with matching results
hierarchal topology map - saved ~19.5s locally on a 4k procgen, identical results
▉ ▉▌▉▋▉▊▊▍▋ ▄▌▍▅▌▉▊▇ ▇▋▆█▆ ▊▊▍▊▄▇▍ █▉ ▇▉▇▌▆ ▊▍▅▇▇▄█▋▋ ▅▊▄ ▆▋▉▇ ▉▇▅ ▆▆▍▌ ▌▉▆ ▍▆ ▉█▇▌ ▍▇▍▇▅▇▍█ ▌▌▍▋▄▄▄▆▍▅ ▋▆▆ ▊▄▋▅▇▌▄ ▄▅ ▆▆▋▌ ▄▍▋ ▅ ▅▅▇▋▇ ▇▄ ▄▌▉ ▅▋▇█▋▅▊▇ ▇▅▆▌▉▌▇▊▊▊ ▄▆▍▅█▋▍ ▉▌ ▉ ▆▊▋ ▄█▇▍▆▌ ▋█▊▅ ▋▊▉▍▇▊ ▉▇▋▋▇▍▊▉ ▄▇▊█▅ ▇▅▄▋█▅▇ ▆▍▄▋▌▅█▄▅ ▉▌▌ ▊▍▆ ▅█▍█▅▌▋ ▌▍▆▆ ▇▇▄▊▌ ▅▋▍ █▊▆▍▌▅ ▉▉█▉█ ▋▌▆▄ ▍▉▋▍▄▉▉▅ ▅▉▊▌ ▅▍█▊▊▅▊ ▉▊ ▌█▄▇▉▆▇▆ ███▄▆▄ ▄▅▆▊ █▌▉▅█
handling deformation with building
- deployables have configurable tolerance of error between current deformation and original height
- foundations can cover small, but always place casted against the original height of the terrain, disallowed over deep carves
merge from sprint_shoot_anim_fix
sprint modifier subsystem uses networked attack signals to disable sprint anim instead of local-only data
big gross protection overlay debug renderfeature in RRP, signifantly nicer than running around with ddraw
protection setup on rocks and foundations
deformation protection
- pre-baked static protection from topology and spawned rocks
- entity-provided protection from foundations
pefab explosive setup on some weapons
explosive crater definition support, reworked shapes to apply in 3D space with respect to blocking objects
merge from hazmat_trophy_fixes
added missing BC component to froniter and pilot hazmats, lost when they were rerigged
foliage deformation experimental modes
0: invalidate cell and re-place foliage
1: acts as foliage displacement with convar for displacement/depth mod
2: acts as a mask to remove foliage from deformed areas
client handling terrain deformations in the clipmap render
- writes a mask for deformed terrain and uses it to switch between procedural normals and pre-baked
- culling bounds also extends down to cover max deformation on each cell
- foliage grid invalidates per-cell for deformation, probably should mask it out or act as displacement though
baseline of terrain deformation, tile-based serialization (only for areas with active changes) some concept of protection and healing over time
manually reverted
161177 and tied it to a poolable.cachestatesoninit convar for further testing, stops the jungle fps drop
cleaned up test scene and meshes
support for burstcloth chains to be fixed at any arbitrary bone, allowing connections at either end
inlined the work of some jobs to stress the job system less, takes another 5s off the time
- water evap/accumulate inlined
- slope calculation inlined
reworked largest erosion job to use an inlined SoA view
- reinterpret float array as a float4 in the loop, this lets you to get fully laned SIMD auto-vectorization without needing intrinsics
original 47s erosion down to 29s with matching results