13,867 Commits over 1,552 Days - 0.37cph!
Expose MeshComponent.Model
Don't invoke ISceneCollisionEvents for trigger intersections
Update skinned renderers if they have physics bones
Improve handling of empty navmesh tiles
Also improve editor auto update when world bounds change.
deserialize absolute game object flag, flags are deserialized selectively
Joints execute in editor, physics tool can manipulate physics in editor so joints should also work
Colliders without rigidbody are static in editor
Ao proxies removal (#1678)
* 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
* Remove sdf.hlsl (until we meet again 🫡 )
Navmesh only run heightfield generator cleanup in task
Navmesh generator cleanup is sub 10 microseconds, so not worth it to dispatch a task, since task dispatch overhead would be higher than actual compute.
TextEntry: Prevent brief caret selection of placeholder text, fixes Facepunch/sbox-issues#7087
Tweak TextEntry selection behaviour to match modern browsers
Update Facepunch.ActionGraphs
* Fix display info of constructor node result output
Sort filtered node query by relevance
https://files.facepunch.com/ziks/2024-12-02/sbox-dev_02cGbJAziV.png
Make it easier to find constructors for Vector3 etc
Applies to constructors that were already [ActionGraphNode]s
Facepunch/sbox-issues#5624
Make node queries less strict
https://files.facepunch.com/ziks/2024-12-02/sbox-dev_jj1QWkPK4U.mp4
Fixes Facepunch/sbox-issues#7024
Fix potential infinite loop in navmesh generation
Fix navmesh geometry collection physicsworld NRE
Fix NavmeshGeneration performance regression caused by 51c5e14
Navmesh generator cleanup now runs in parallel
Heightfield span pools are no longer freed after a completed generator run, instead they are returned to the freelist and reused.
Disposing of the generators now waits for all active generator tasks to terminate.
Support SoundHandle.Stop fade time, add Fadeout curve to control fading
Fixed backward compat for Authority attribute when specifying NetPermission. Ensure networking is cleaned up after game leave so any last-chance RPCs can be sent.
Actually include stats from direct connection / dedicated server with net_debug on
Added Connection.GetStats support / implementation for non-lobby Steam connections. Can view net stats for connection to dedicated server or clients connected to dedicated server as well
Fix physics triangulation occasionally overwriting the vertex buffer
Spheres & Capsules were always written at the beginning of the buffer
Fix NRE when scene was unloaded while navmesh generation was running
Cluster Delta Snapshots - Improvements to Bandwidth, Max Snapshot Size (#1717)
Resolves issues with Steam networking choking.
Some safety in Connection.All (don't add any null values to output list)
Fix Owner/Host mode RPCs not sending to target. Fix issue w/ Rider intellinse when typing Rpc. in attribute
Smooth move rigidbodies with position tool so moving them doesn't fight with physics https://files.facepunch.com/layla/1b2911b1/sbox-dev_ondqw8nnTP.mp4
New RPC api + code upgrader foundation
Show PanelComponent source location in UI Panels heirarchy
UI Panels: fix deselection not clearing selected panel
UI Panels: fix element nodes not updating when changed
Optimise comically slow processing logic when pasting into TextEntry (several seconds -> low ms), Facepunch/sbox-issues#6938
Move PlayerController.Animation behaviour to MoveMode (#1716)
Fix hull navmesh area bounds using z up instead of y up.
UI: Set Button.Active inside TabContainer rather than setting active class directly (consistent with ButtonGroup)
UI: Fix worldpanel filters, save off default viewport Z range when setting a render target (solves depth issues after pushing/popping worldpanel filters)
https://files.facepunch.com/alexguthrie/1b2911b1/sbox-dev_Nl7AwCZeb5.mp4
Published packages don't include dlls
Update PlayerController animator params
PlayerController copy clothes better
PlayerController increase skin slightly, prevents sliding down slopes
PlayerController creates collision on a child GameObject, so it can have different tags set etc
PlayerController - delete existing BoxCollider, CapsuleCollider if they exist
PlayerController - don't recreate Colliders GameObject if we have a child named that already
PlayerController: Fix ducking slightly when standing on small shit
Dynamic NavMesh Obstacles (#1706)
Allows to block of certain areas of the navmesh both in editor and at runtime.
For this we introduce and expose the concept of **navmesh areas**. Areas can affect navmesh generation and agent behavior/pathing.
### Details
- Accomplished by implementing a tile cache that stores an intermediate representation of the navmesh
- The intermediate representation can be used to modify & remove areas of the navmesh.
- Modifying the intermediate state is magnitudes cheaper than rebuilding the navmesh from scratch.
- Static areas are basically free.
- Moving areas are a bit more expensive, but you should be able to have at least a couple of dozens of them
- The area's shape is defined by a (trigger) collider that can be linked to a nav area component
https://files.facepunch.com/lolleko/1b2911b1/sbox-dev_JTOOu8AAeA.png
https://files.facepunch.com/lolleko/1b2911b1/sbox-dev_3XdDSxj7Ly.mp4
https://files.facepunch.com/lolleko/1b2511b1/sbox-dev_XBNEUDAPfh.mp4
https://files.facepunch.com/lolleko/1b2111b1/sbox-dev_CQAKEpUbQk.mp4
### Summary
Allows to create a navmesh area, link it to a (trigger) collider & set it to blocking to create an obstacle. In the future we can expand on area functionality: custom tags, local navmesh generation parameters...
Fix NRE on editor shutdown
GameObject serializing survives when a child is somehow added during serialization
Fix NRE in color picker when there's no parent
Hide, JsonIgnore on GameResource
Create directory when saving clothing render icon (should these be put in temp filesystem/game resource data block)
Revert "Use IClimbingMode interface in PlayerController"
This reverts commit 5fc097414bfb1ef7da5e2f75b35c11c358641200.
Use IClimbingMode interface in PlayerController
Instead of hard-coded checks for MoveModeLadder
Do TextEntry placeholder without a separate label, simplifies and makes placeholders/prefix/suffix all play nicely together
also fixes Facepunch/sbox-issues#7060
Add support for caret-color css property, default to text color
Tweak caret appearance, avoid nasty subpixel blur
Support animation on bone merged skinned renderers, bones not included in the merge will be animated https://files.facepunch.com/layla/1b2811b1/sbox-dev_YF71imyY7R.mp4
Compiled shaders with ao viewporting changes
CommandLists SetConstantBuffer and be able to specify mip
Motion::TemporalFilter is converting from Pixel Coordinates to UV not the other way around
Fix Right Click -> Create Sound Event creating sound events with empty sounds instead of using the selected sounds
Don't need to update editor compiler if not running in the editor. Dedicated Server won't try to compile editor stuff