137,025 Commits over 4,474 Days - 1.28cph!
Fix for very long strings moving alongside the caret when moving it to the left, making it seem like the characters are being erased
Only drag the string along if the caret is reaching the left or right edges of the console window
Merge from analytics_apartment_events
Merge: from mt_snapshot_saving
- Bugfix for ExactArrayPool not being thread-safe
Tests: TestMTSave
Bugfix: rewrite ExactArrayPool to be a ConcurrentDictionary
Was not MT safe for Jobs 4 parallel serialization as it could lazy initialize
Tests: TestMTSave
merge from water_treatment_plant_maintainables
add grass displacement to pipes
merge from water_treatment_plant_maintainables
Update(tests): make SendEntityUpdates perf test spawn as many recievers as threads available
Allows to fully saturate the CPU in a test, giving a bit fairer comparison between Jobs 3 and 4
Tests: ran new test
merge from ragdoll_selfcollision_fix
re-enabled ragdoll<->ragdoll collision
merge from PlayerMaintainedMonuments
Merge: from mt_snapshot_saving
- Optim: in UsePlayerUpdateJobs 4 entitiy saving for network is done in parallel. Use server.ParallelNetworkQueueBatchSize to tweak number of tasks
Tests: 2k procgen, built a base and a boat, rode vehicle, heli, zipline, boat, horse, fly across the world. ran all TestMTSave unit tests
merge from demo_browser_search
Clean: fixed whitespacing
Tests: none, trivial change
Added a search bar to the demo browser window
merge from siegeweapon_firedamage
Buildfix: add missing server guard
Tests: compile sim
Different approach so it doesnt impact incendiary ammo damage on vehicles:
- FireBall can only damage vehicles of type BaseSiegeWeapon
- Revert the vehicles heat protection changes
Update: add an default TransformHandle check to TransformEx.Unsafe.ExtractTranformAccess
Better we lose a smidge of perf than have a native crash
Tests: ran all TestMTSave
Update: add GetPosMT and GetRotMT to TransformEx
- bugfix Elevator Save accessing transform
chcked internals, should be safe
Tests: fly across all of 2.5k procgen, no errors triggered
dartboard
- updated icon (made icon a bit brighter)
- updated prefab
Bugfix: avoid resolving transformHandle on an optional BatteringRam.doorPhysicsHinge
Checked other cases I've modified, rest are required
Tests: none, trivial change
Bugfix: resolve game controlelr at init of BaseCardGameEntity
- use cached controller instead of trying to lazy create it in Save
Avoids invoking non MT-safe APIs in save
Tests: visited bandit camp on procgen, no errors. Ran TestMTSave tests
Bugfix: avoid NRE if bike doesn't have a sidecar
Tests: spawned a motorbike
spawning baseplate properly in sculpt ui
▍█▍▄▋▆█▄▇▄▉ ▍▄▄▌▉▋▉▄ ▊█▉▉▇ ▅▉▊▋▇▋ ▄▍▌▉▄▆▍ ▍▇▍▅ ▇▉▋▆ ▌▆▌██▋▊
Nest egg hat T1 workbench (To match wolf headdress as it has the same stats)
Update(tests): TestServer now also creates a dummy BiomeMap
Not sure why pre-merge TestMTSave(GrowableEntity) didn't trip over, but sorted now
Tests: all TestMTSave
Boat vendor now sells an actual Kayak and Paddle, not a blueprint
adjusted msg length limit
sanity limits on sculpt update rpc msg
Clean: add comments for new perf test
Tests: none, trivial change
New(tests): SendEntityUpdates perf test, creates a bunch(100, 1000, 10000) of players that get sent to 10 players
Runs Jobs 3(parallelize dependency chains) vs Jobs 4(parallelize queues) serialization modes and whether to use network cache. Doesn't create any entity hierarchy (best case for Jobs 3). With network cache, Jobs 4 beats by ~2x (10k: 16ms vs 9ms), without cache Jobs 4 scales much better, up to 3x faster (10k: 62ms vs 14ms).
Tests: ran SendEntityUpdates
Update(tests): assign prefabIDs to entities created in TestServer
Avoids tests derping out trying to save global managers/players
Tests: SendEntityUpdates perf test passes
Bugfix: fix double-free on a pooled buffer
This was causing a buffer to be shared between 2 tasks when it was fetched from the pool, leading to chaos
Tests: ran SendEntityUpdates perf test (gonna submit in a bit)
Flare animator and animation updates
Field rename for the OnClanUpdate event
Wolf headdress (And lunar mask skins) require T1 workbench to craft
check for buffer failure in sculpture update
cleaned up semi-useless chunk prefab
merge from siegeweapon_firedamage