252,753 Commits over 3,990 Days - 2.64cph!
▆▅▋▇▆█▋ ▄▋▆▇ ▊▍▉▅▉▉▆ ▄▉▅▊▄▆██▊▉▌ ▍▋▅▆▉▌▊
▋▌▄▅▋▊ ▆▉▊▍▉▍▆▄█ ▍▅▉▄▅ ▍▇▌▍▇▌ ▌▍
▆▉▇'▍ ▆▋▌▄ █▉▌▅▉▉▋ ▆▋▍▄▌▌▅ ▋▉ ▆▅▍ ▇▆ ▇▍ ▉██▅▉▅▍, ▄▊▇ ▅ ▉▉█▋█▇ ▅▉ ▄▋▅▅/▉▄▌▋ ▊▅▋ █▋▅▉▆▊▅
Optimize ComponentList.GetAll by getting rid of LINQ
The combination of recursion and LINQ allocated a lot of garbage in GetAll, this would result in a heap reallocation during many GetAll calls.
Removing LINQ yielded a nice performance improvement.
Getting rid of the recursion gives another tiny performance improvement, but not big enough to justify the reduction in code readability.
I can not show results directly for ComponentList.GetAll, because the function executes too fast after the optimization and is no longer captured by the sample profiler.
But here are the improvements for PhysiscsWorld.OnIntersection, which makes heavy use of ComponentList.GetAll internally via InvokeListeners<T>().
Before:
Function Name: Sandbox.PhysicsWorld.OnIntersection
Number of Functions: 2907
Total time: 9s 406ms 99µs
Maximum: 11ms 86µs
Top Quartile: 3ms 848µs
Average: 3ms 235µs
Median: 3ms 176µs
Bottom Quartile: 2ms 684µs
Minimum: 20µs
After:
Function Name: Sandbox.PhysicsWorld.OnIntersection
Number of Functions: 2779
Total time: 3s 661ms 358µs
Maximum: 6ms 971µs
Top Quartile: 1ms 552µs
Average: 1ms 317µs
Median: 1ms 220µs
Bottom Quartile: 975µs
Minimum: 19µs
Related to sbox-deathmatch/issues/104
Fixed SelectedBlueprint.UpdateIngredients error, bag merge on high external stone gate
Applied a refactored rotation-agnostic version of the non-blinding arrow flame to the mini crossbow, so that it can do its spinny gymnastics.
▊▅▌▌▄▇▉ ▉▌▋▅▆▅ ▍▆▅▊▌▌▌, ▅▍▌▌ ▋▍▊ ▆▌▆▅▆
Remove unused
New models
Fix news post width
Remove toc from news, everyone hates it
Add Transactions table
Add monetisation tab to dashboard
Move org to own project
Fix exception in device information service
Move dash orgs to sidebar
Home type lists use dashboard sidebar
Jams use dashboard sidebar
Move charts to dashboard
User page cleanup
Platform news has dashboard sidebar
Notifications use dashboard sidebar
Start converting packages
▉▉██▅▊ ▊▉▊▍▊▊ ▋▌▌▍▋▊ ▌▄▍ █▉▅▉▊▍ ▍▇▊▇▋▊▆▋▆ ▇▆ ▌▋▍ ▆▉▋▋▉▄ ▆▉▉▆▊▅▋▅▅ ▄▆ ▌█▊▊ ▅▍▉▍▄█▅
▄▆▋▆▊▋ ▆▄█▊▍▌▄▇▅ ▆▇ ▄▋▋▋▅ ▇▌█▄▄ ▇▄▌ ▄█▆ ▆▇ ▆▉▉▊▅▅ ▍▄▊▆ ▊▋▆██▅▅ ▇▉▍ ▌▌▍'▋ ▊▊▌▍▊▉ █▊ ▌▍▌▋ ▌▇▊▉▌ ▅▊▉▌▇▌▍
Head and hand aligned grabbing system
Trumpet tree prefab setup / updated bounds, colliders and markers
API fixes, remote pickup is default behavior when grabbing (need to add a sensible range to this), fixed hand collider being invalid and breaking everything
ShaderGraph Reroute Nodes now preserve the input type correctly. Resolves Facepunch/sbox-issues#7466
+ Reworked the DebugLine shader, fixing various isses with pixel alignment and perspective.
+ Added '-' character for negative numbers :)
+ Made sure that text size is always divisible by 4 for a clearer appearance. Also raised the default text thickness to 2. (I'm a fan of thin lines, but you really couldn't read these.)
Rotation offset for player hands
Move some files
Spawn players at the spawn point furthest away from other players
Restored "JellyFish" shader
Let's try this again, but this time only this shader, and compiled with tools from this branch
Subtract
109698 - fix client parenting issue with thrown explosives (c4, satchels)
Prevent Reroute Nodes from creating circular reference errors where none existed
Asset Browser no longer deletes a folder when renaming it to the same thing. Also allows you to rename the folder to the same name with different capitalization. Resolves Facepunch/sbox-issues#7464
Trumpet tree custom colliders
Trumpet tree billboard setup
added tactical gloves to v4 loadout
Female metal plate, backpack v4
Revert "Compiled shader files"
This reverts commit 1066b62d90e749ab7731667263022cd35202a2cf.
Revert "Restored "JellyFish" shader"
This reverts commit 024f56cb3eb37f6aa416b1887008d35700630afd.
Revert changes to screenspace_general
Something is up here, Linux is having unexplainable issues on x86-64 only
More motion editor selection tweaks
https://files.facepunch.com/ziks/2025-01-31/sbox-dev_A9sD8bdPAK.mp4
Use ReflectionQueryCache in Component Serialization
Fix spacing in keyframe edit mode toolbar
Add interpolation mode buttons
https://files.facepunch.com/ziks/2025-01-31/sbox-dev_oj0ypWTVsi.mp4
Remove unused function in Connection
Clicking and Dragging a PlugIn will allow you to easily re-plug it instead of trying dragging out another input when it can only have one. Works in ShaderGraph + ActionGraph. Resolves #1525
https://files.facepunch.com/CarsonKompon/2025/January/31_11-34-EachSnowyowl.mp4
Fixed ItemModProjectileRadialDamage (explo ammo) only damaging doors
Improve handling of Spawnmenu category localizations
Preserve alphabetical sorting
Updated localization files
Added 2nd argument to CompileFile - showError
- Huge simplification of bee generation
- Depends on Nucleus now
█▄▅▆▄ ▆▊▍▄▆▇▄▌▋▉ ▌▉ ▊▄▌▄▇▊▄▋▄▄▄▇▇▊ ▄▍▉▉ ▄▇█▌▆▊▅▍ ██▄▆▋▊▋▌▉▄▋▇▅ █▅▉▄▆▊, ▊▋▉▆▄ ▆▆▉█ ▅▋▋▅▌▇▅▉ ▋▌▆▇▉█
Female Roadsign armour v4
GraphCompiler will now detect circular references and present an error instead of hard crashing. Resolves Facepunch/sbox-issues#7470
https://files.facepunch.com/CarsonKompon/2025/January/31_10-42-HurtfulPig.mp4
Show scrubber widget at top and bottom of track list
WIP motion editor envelope selection
https://files.facepunch.com/ziks/2025-01-31/sbox-dev_sdqkof1ogP.mp4
▇▌▇█▆▋▌ ▍▉▌▇▌▄▋▋▇ ▍▅▍ ▇▉▇▍ ▊▇█▉▉▆ ▅▅▄▇█▅▌ ▄▋▆▍▊▄▊▄▇█ ▌▋▆▆█▋▅▍▉, ▄▍▋▄▋ ▆▇▋█▊▇ ▉▊▉▌▆▅▍▍▋█ ▊▍ ▆▌▊ ▌▆▍ ▊█▍▇▍▅▍▆ ▊█▋ ▆▇▆█ ▄▍▆▅█▍▆▋▅▆▄▇▄
Make Draw2DTest use a CommandList, VrForward -> Forward
Constructable info panel tweaks, localization and tooltip
Can now move the handle on grid-aligned wires properly in ShaderGraph. Resolves Facepunch/sbox-issues#7474
Refactor parts of CloneHelpers into a ReflectionQueryCache
Updated Medieval Large Wooden Box Prefab to be Uncraftable to Fix it appearing in the crafting menu
- Changed wording to nucleus rather than nuclei, as it is singluar after all
- Setup proper worldmodel scripts on nuclei and jar of honey
- Created beehive lootpanel