19,775 Commits over 1,491 Days - 0.55cph!
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"
Improve search performance
List view shows time & modified date
Those folders should have been blue
Show file sizes in list view
https://files.facepunch.com/alexguthrie/1b2011b1/sbox-dev_fjHVEp2Awp.png
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
Remove aoproxies ambient occlusion, it never looked too right and it's stupid to have artists authoring them manually, almost no one did
I still think SDF AO works better than SSAO in most cases, but they should live as a renderhook and artists don't need to touch anything, the way it is now is very hard to maintain, it could be 10x simpler
VrMonitor goes long unused since we removed SceneMonitor & VR Multiview
Replace AO on shader with a single, non-directional AO but that composites properly, older shaders wont have incompatibility problems, also makes Dynamic Reflection work without ao
AO on lighting pass
GTAO stub, remove sdf.hlsl (until we meet again 🫡 )
Iterate gtao
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
Editor support for scene.run nodes
https://files.facepunch.com/ziks/2024-09-19/devenv_VvsrGGEi2v.png
https://files.facepunch.com/ziks/2024-09-19/sbox-dev_JdyfR5LSEQ.mp4
Nicer display info for interfaces, default icon for event methods
Implement chip tag filtering
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_0quPxgWO64.mp4
Reverse recent locations & limit to 10 to match Windows Explorer functionality
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
Recent locations button
Tweak styling, move current project to top of asset locations list
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_cY35ptbOcb.png
Show particle count like this so it doesn't show up as a prefab variable
Catch possible NRE
This isn't needed anymore
Add .source2/ to gitignore template
If package is on disk just use asset directly when dragging into scene
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
Fill up _renderTarget on Graphics Scope so that we can fetch the immediate color/depth textures also without a copy
Fetch depth and color directly for DoF so that we can do pixel perfect fetches, start making near dof not shit
Human: removed Rust animations