13,873 Commits over 1,552 Days - 0.37cph!
Make sure resources created from native keep their correct path even when using fallback (error.vmdl etc)
Make missing resource references more obvious in inspector
https://files.facepunch.com/solw/2024/September/23_14-27-LawfulPika.png
Move a bunch of shit from GameNetworkSystem.* to Networking.*
Revert that experiment, there is no benefit
HashSetEx actually doesn't need to defer adds
NetworkSpawn() with no arguments will use Connection.Local as the owner (like it used to)
External change detection for scenes and prefabs use the source, should resolve messy external change detection, especially on new projects
Revert "Remove GetAllComponents( Type type )"
This reverts commit 1df4c2e1841f058432fdb446fccd5dcb93e0648f.
Implement GetAllComponents( Type type )
Log files use the process name
Remove GetAllComponents( Type type )
Experiment: Does the boxing to object make any difference here
AnimGraph: Keep track of cycle for updating state machine blend weights instead of calculating from anim time, should fix dodgy blends when playback speed fluctuates
ModelDoc: Fix obj loader not making use of object name, causing bad mesh names
Revert "Fix rigidbody transform change, check change against target local, not the interpolated transform, remove proxy check"
This reverts commit e08435cdc7b5412e81fa752af22c2eb35b48ce4c.
Revert "Experiment: batch transform change callbacks and run in one place, instead of whenever the transform changes"
This reverts commit 858eebcfd1e95eb0cd13cbf32043d39d8a4622b1.
Fix rigidbody transform change, check change against target local, not the interpolated transform, remove proxy check
Fix GameObject.NetworkSpawn(null) spawning as host instead of spawning with no owner. Fixes a few games.
GameTransform.DisableInterpolation is a static, remove AddToInterpolationSystem + RemoveFromInterpolationSystem
Reduce HashSetEx initial size
Experiment: batch transform change callbacks and run in one place, instead of whenever the transform changes
Test HashSetEx with iteration counter and deferred changes
Fix NRE in UndoGameObject
Lets try this "real" ConcurrentHashSet to see if it matches the performance of the old BufferedHashSet. I have a feeling we're going to be better off special casing the collections for our updates to maximize perf
Human: more skinning updates focused on polishing height scale squash & stretch as well as volume preservation on elbows & kneecaps
Fix "path cannot be empty" when opening object menu
Since BufferedHashSet is more expensive now, lets try to avoid it where we don't need the concurrency
Don't repeat NetworkSpawn logic, filter down to one function
Network the GameObject enabled status
Add ISceneLoadingEvents - Allows listening to events related to scene loading and creating loading tasks
Add Game.TakeScreenshot
ComponentFlags.NotSaved is ignored when networking
Move ShouldSave logic to SerializeOptions
Adding OnUpdate etc will refresh directory on hotload - avoiding the need to stop and start the game for them to start working
Change BufferedHashSet to use a ConcurrentDictionary under the hood
This hopefully fixes issues occurring when iterating multiple times, inside itself, and Count not changing until iterating. We should rename this to ConcurrentHashSet at some point.
Make objectindex a BufferedHashSet so Scene.GetAll<T> doesn't suffer from modified while iterating
Add GameObjectSystem<T>
Fix Custom Cursors not being cleared when returning to S&box Main Menu.
GameObjectSystems can implement scene events
* Replace Scene.GetAllComponents<T> with Scene.GetAll<T>
* GameObjectSystems can implement scene events (Scene.RunEvent<T>)
* GameObjectSystems can implement INetworkListener
Fixed joint sets linear angular spring maximum force to float max, this is the default, not zero
Fix prop gibs not making use of placementOrigin attachment when it exists, causing some gibs to be spawning at incorrect origin https://files.facepunch.com/layla/1b2111b1/sbox-dev_LApwRRrbZ8.mp4
Fix NRE caused by "Fix Duplicated Entries in Create GameObject Menu"
Just get rid of F_DISABLE_Z_PREPASS entirely, it's not applicable for users to set it, static overlay uses BoolAttribute( NoZPrepass, true ); directly
Fix action graph target types in resources
Nicer display info for interface types, icon for event methods
Added scene.run node
https://files.facepunch.com/ziks/2024-09-19/devenv_VvsrGGEi2v.png
https://files.facepunch.com/ziks/2024-09-19/sbox-dev_JdyfR5LSEQ.mp4
animation: none clears animation
Clear ragdoll bone initial positions after using them
use default depth_only combo for skin
Remove F_DISABLE_Z_PREPASS from shaders except if you want it explicit, remove it from eyeao until we recompile shaders
Fix Duplicated Entries in Create GameObject Menu
Add sbyte, short, ushort to IntegerControlWidget
Fix model physics positioning physics from render bones without the renderer world transform when scene model doesn't exist yet
Only enable physics system in editor while using physics tool
Auto start simulation on grab https://files.facepunch.com/layla/1b1911b1/sbox-dev_8C4a7S0Nfm.mp4
Block tool switches to object mode after creation
Add space shortcut to toggle simulation
Stop simulation on selection change
Add physics tool to manipulate physics in editor https://files.facepunch.com/layla/1b1911b1/sbox-dev_d719Yy9fe4.mp4
Added Filter Settings to Add Component Popup. Can hide base components. Resolves Facepunch/sbox-issues#6428
https://files.facepunch.com/CarsonKompon/2024/September/19_11-10-TransparentAmethystinepython.mp4
Prefabs marked as `ShowInMenu` will actually show in menu without having to be in `templates/gameobject/` subfolder.
If a Prefab is marked `ShowInMenu` then you can give it `DontBreakAsTemplate` so it maintains the prefab reference when created via the GameObject Menu. Resolves Facepunch/sbox-issues#6035
Show particle count like this so it doesn't show up as a prefab variable
Add GetBoneTransforms and GetBoneVelocities to SkinnedModelRenderer
Doesn't make a difference, but run ApplyStoredParameters here
Add ModelPhysics.CopyBonesFrom( SkinnedModelRenderer )
Add Component.Invoke( seconds, action )
Add Renderer.CopyFrom( Renderer )
GameObject.Network.OwnerConnection becomes GameObject.Network.Owner
Add particle editor tool to debug playback in editor https://files.facepunch.com/layla/1b1911b1/sbox-dev_gymPdlXVD6.mp4