324 Commits over 92 Days - 0.15cph!
Fix memory leak in navmesh builder
Add GameObject.IsDestroyed - to detect objects that have Destroy() called on them, but haven't been destroyed enough to be IsValid false yet
Don't return components on objects that are IsDestroyed
Humans: skinning updates
VR: init g_pVrSystem before finishing material system setup
VR: check for headset in PreInit() instead of Init()
UI: Expose UI.WorldInput.Hovered inside WorldInput component
Upgrade remaining old vmdl files so I can delete all this legacy model code
Humans: more skinning updates & prefab changes
Merge branch 'master' of sbox
Add Distance and Falloff to Voice Transmitter
izIsSoft changes
VR: more logging, always enable debug callback
VR: add -novr force disable
Update fpxr to 8e70816536da3c657eb9f9a7b815268c5ef7a729, improves headset checks
Fix clothing using the wrong skin
Fix HasUnsavedChanges being sucked into GameResource
GameObject's FindByGuid will find prefabs (allows networking prefabs over RPC)
Change prefab icon color
Add GameObject.GetPrefab( string )
AssetBrowserLocation tracks location type (code, assets etc)
Create asset menu is context-specific to the location type, creates in place and opens rename flyout instead of using system dialog
Unify usage of AssetBrowserLocation and its presentation/directory/hiding logic
Asset Browser: Improve navigation outside of project tree
Path widget only displays what can fit instead of freely growing, hide rest behind flyout
Ignore calls to Scene.Parent.set
Iterate children nicer in PostDeserialize, in case children get added/removed during deserializing
which they do - like when creating attachments
Add GameObject constructor which takes a parent
Expose PerChannel<T>.Get and Set
Print a list of new items in console after check out
Uninstanced prefabs (#1708)
Can retrieve components and child gameobjects from uninstanced Prefabs
Asset Browser: streamline navigation flow
Asset location presentation tweaks, improved path handling
Initial path widget width because it starting off small is so very annoying
Fix NRE in PrefabFile.PostReload
Fix NRE in CloudBrowser
Fix warnings
Fix 'cut component' not being undoable, Facepunch/sbox-issues#6949
Can DrawInstanced a number of instances without uploading data
Remove unused asset browser node type
Fix some Gizmo functions drawing an obsolete vertex object instead of nothing
When provided with an empty Enumerable: Lines(), LineTriangles() & SolidTriangles() would reuse & draw the vertex object of the previous frame instead of nothing.
They now correctly draw nothing if an empty Enumerable passed.
Fix asset browser NRE, default location stomping cookied path
Disable undo/redo menu buttons when there's no active editor session
Optimize allocations in Gizmo Lines(), LineTriangles(), SolidTriangles()
Fix [Button] not showing in asset inspector, resolves Facepunch/sbox-issues#6985
Merge branch 'master' into navmesh-dynamic-obstacles
Optimize allocations in Gizmo Lines(), LineTriangles(), SolidTriangles()
Spread navmesh obstacle updates across multiple frames
Fix some Gizmo functions drawing an obsolete vertex object instead of nothing
When provided with an empty Enumerable: Lines(), LineTriangles() & SolidTriangles() would reuse & draw the vertex object of the previous frame instead of nothing.
They now correctly draw nothing if an empty Enumerable passed.
Progress on tile caching & dynamic obstacles
https://files.facepunch.com/lolleko/1b2111b1/sbox-dev_CQAKEpUbQk.mp4
FOV and distance culling for navmesh debug draw
Split up generation procedure into more functions
Convert obstacles from World to NavSpace
Dispose of navmesh + heightfield generators
Add native obstacle rasterization for box, cylinder and convex shapes
Split generator Into HeightField and NavMesh generator
Initial tile cache skeleton
Add recast/detour tile cache
Optimize navmesh geometry collection by fully utilizing the BVH of a physics mesh
Optimize navmesh generation by pooling generators (#1703)
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Improve navmesh generator cleanip
Reenable AssertNoGraphErrorsInScene test
Temporarily ignoring AssertNoGraphErrorsInScene
Bump verbosity for PR tests
Optimize navmesh generation by pooling generators
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Fixed regressions in CPhysicsShape::GetTriangulation
Yeet the weird pointer iteration that fucked me 3 times by now.
Revert "Optimize navmesh generation by pooling generators 2.0"
This reverts commit 54123afcdceb6e924eb14625985a3501f2d801e4.
Optimize navmesh generation by pooling generators 2.0
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Revert "Optimize navmesh generation by pooling generators"
This reverts commit 263974a602d63b4b817b5561b9a010689859b01f.
Until we can figure out why an unrelated test started failing.
Optimize navmesh generation by pooling generators
This also fixes sbox-issues/issues/6941 by limiting the degree of parallelism for the generation.
Optimize Memory Allocations in CPhysicsShape::GetTriangulation
Improved async behavior of navmesh tile generation
Expose initial API for navmesh tile(re)generation
Expose NavMesh.GenerateTile( PhysicsWorld world, Vector3 worldPosition )
Expose NavMesh.GenerateTiles( PhysicsWorld world, BBox bounds )
Fix potential recast bug leading to stack smashing
We are potentially affected by recastnavigation/recastnavigation/issues/687
To address this, I basically reverted recastnavigation/recastnavigation/commit/adcd4f472e8e08bd7f1db11b39f3394dc82ef869 which seems to be the most likely culprit for the issue. Contrary to the commit message in adcd4f4 which claims that the changes made are an optimization, reverting the changes had no measurable impact on performance.
I am pushing the changes even though I am not certain they fix the issue, because the issue is only reproducible in our steam builds. In case this commit does not fix the issue, I will revert, and we need to keep digging.
Potentially fixed an invalid state during navmesh generation
Also fixed a minor memory leak.
Fix vertex memory allocation for capsule and spheres in PhysiscsShape::Triangulation
Add missing await in Navigation test
Fix potential race condition in NavMesh initialization
NavMesh: Use RealTimeSince/RealtimeUntil for delays
Optimize Navmesh agent ground trace not to run every frame
Fix CPhysicsBody::FindClosestPointOnConvexShapes not working for Spheres and Capsules
Resolves Facepunch/sbox-issues#6909
Initial Tiled Navmesh Generation (#1689)
Goal for this PR is too match current NavMesh functionality, but instead of generating a single large tile, generate multiple smaller tiles instead.
This fixes a couple of NavMesh issues, most of them related to nav generation for large maps.
Pathing should also improve slightly, since the NavMesh now broken up into smaller polygons. This will be particular noticeable in maps with large empty space and only a few obstacles.
The PR does not change the API and should only result in minor behavioral differences, caused by the generated NavMesh being slightly different.
https://files.facepunch.com/lolleko/1b0911b1/sbox-dev_w9mTXjsyWd.jpg
Ignore self in ground trace
Reduce memory allocations in PhysicsShape::GetTriangulation
Runs around 35% faster with the changes in my use case (1100μs avg -> 700μs avg)
Merge pull request #1693 from Facepunch/optimize-physshape-triangulation-allocations
Reduce memory allocations in PhysicsShape::GetTriangulation
Support for @ key razor attribute, Facepunch/sbox-issues#4103
InteropGen: Add IsError to resources
Model.IsError propertly detects when we're error.vmdl
Applying clothing correctly detects invalid models
Fix jeans using the wrong model location
Fix settings apply button not working
Fix storage page
Fix menu missing material
Humans: re-enabled automatic citizen-to-human animation hack for now while proper animations are being worked on
Fix Popup Panels not closing when in game (but worked in menu)
Sausage toggle
Left the wrong model enabled
Body Group Fix
Human Bodygroup adjustments - Clothing fixes
Service update
Save/load avatar to/from the cloud
.Clothing fixes
Some changes to time sync. Seems to fix Facepunch/sbox-issues#6865 locally. Needs re-test.
Fix popup being orphaned when clicked on
Set in_editor ub richpresence when in editor
Popup supports AboveCenter
Stop making the popups red!
Friends in footer, delete friends list
Change notifications to a real popup
Start putting the party system back together
Some additional troublesome Vulkan layer disables
Update documentation for methods in INetworkListener to indicate that they're only called for the host.
Add net_fakelag ConVar. It's working for both Steam Networking Sockets and TCP / local instance. Can also be changed in the editor like this https://files.facepunch.com/conna/1b1211b1/sbox-dev_jpOfxVrwEr.mp4
Also commit this important file
Rework triggers to check contact points instead of ref counted touches. Add ITriggerListener.OnTriggerEnter/Exit for game objects that contain multiple colliders
Hide "available parties"
Update clothing
Add NETSDK1138 no nowarn
Make writing clothing more deterministic
When dressing, if we have a citizen model - but not a human model, make clothing invalid
Switch from net7 to net9
* Update your Visual Studio to 17.12.0!
Make EnableFootstepSounds on PlayerController work
Add Distance/Falloff to music player
Resolve Fixed Update Issues
Resolves issue where Fixed Update would be called more times than it should be. Fixes issues such as in Marble Racer where if you had 500fps you'd move much faster than other players.
Merge branch 'master' into navmesh-tiled
Properly resolve merge conflict
Prefix debug methods and props with debug
NavMeshAgent improve ground detection trace
In case our ground trace has multiple results pick the hit closest to the original navmesh position
Reduce nav agent foot trace radius and max trace height
Reduce memory allocations for navmesh debug draw
Fix CPhysicsShape::GetScale() to return the correct scale for MeshShapes
Fix CPhysicsShape::GetTriangulation() not respecting scale for mesh shapes when calculating triangulation
Add navmesh bodytype override
During edit time (in editor) we change the type of dynamic physics bodys to static.
However, for the navmesh generation we need to ignore this change and use the bodytype that will actually be used at game time.
We can use this override to set the bodytype that should be used during navmesh generation.
Cleanup async code
Properly reinitialize agents after navmesh is completely generated.
Remove some Gizmo.Scopes
Fix deleted tiles being shown in debug draw
Version the native tile data so we can discard outdated tile updates
Use correct lock for initializing navmesh
Update navmesh bounds when world size changes in editor
Get rid of navmesh locks