userLorenz Junglascancel

402 Commits over 92 Days - 0.18cph!

Yesterday
Add JsonPointer (RFC 6901) implementation and tests Add RFC 6902 compliant JSON diffing / patch generation Use JsonNode instad of JsonDocument in pointer Add ApplyPatch functionality Generate roundtrip tests Add Test Generator for GameObject hierarchies Remove Copy & Move operations I can't make it work there are extremely rare edge cases for enormous diffs (thousands of objects and operations). The code to support these edge cases was becoming more and more unhinged and illegible. Can still tackle it later if we really need it. Add tests for LCS Work around .net runtime bug in Json.DeepEquals dotnet/runtime/issues/112769 Clone/Move attempt 2 Move optimization still fails for very large diffs -> disable for now Cleanup some debug code
3 Days Ago
Potential optimization in CreatePrefabObjectLookup This helps a bit when cloning larger prefabs, not sure how much it will reflect in our benchmarks, on my machine the gains were quite small.
3 Days Ago
Revert "Improve player spawn performance" so we can optimize for go clone/creation performance This reverts commit 318474ee16bf9e057c1e8fbc8e2ee7877cf4dcd2.
3 Days Ago
Improve player spawn performance, by enabling/disabling player go instead of destroy/create Before: Function Name: GameManager.SpawnPlayer Number of Functions: 22 Average: 9ms 448µs Median: 8ms 353µs After: Function Name: GameManager.SpawnPlayer Number of Functions: 21 Average: 4ms 945µs Median: 4ms 870µs
4 Days Ago
Copy bone scale from GameObject instead of internal bone Can't use TryGetBoneTransform because it still holds the old transform (before gibbing) Fixes: sbox-deathmatch/issues/129
5 Days Ago
Remove duplicate key to fix resource compilation
5 Days Ago
Fix NRE for gluon gun, happened if player died before RPC was processed. Fixes sbox-deathmatch/issues/121
6 Days Ago
Hide transform gizmos for prefab root in the prefab editor for now.
6 Days Ago
Hide transform widget for prefab root in the prefab editor for now. Related to sbox-issues/issues/7316 sbox-issues/issues/7577 sbox-issues/issues/6785
7 Days Ago
Catch serialization errors when pasting game objects Fixes sbox-issues/issues/7645
7 Days Ago
Fix undo for TagSet ControlWidget
7 Days Ago
Fix regression when cloning List of user defined classes that contain a member called "Prefab" Fixes sbox-issues/issues/7638
7 Days Ago
Fix being able to select prefabinstance child objects when using box selection in scene editor
7 Days Ago
Remove old undo system (#1824) Removes all the private members/method related to the old undo system. Strips functionality from all public methods, but holds on to the public method stubs, so we don't completely break older editor tools. Older tools will still compile but their undo/redo won't do anything anymore.
7 Days Ago
Scene editor, select outermost prefab instance when clicking on a nested prefab instance
7 Days Ago
Fix iterating modified collection when cloning components & gameobjects
7 Days Ago
Fix iterating modified collection when updating prefab instances
8 Days Ago
Don't allow parenting to prefab instances via scenetree Play error sound when drop operation fails. Fixes sbox-issues/issues/7628
10 Days Ago
Move gameobject creation for empty/new prefabs into the correct scene scope Should avoid the GO being created in the wrong scene. Related: sbox-issues/issues/7602
10 Days Ago
Remove old undo system Removes all the private members/method related to the old undo system. Strips functionality from all public methods, but holds on to the public method stubs, so we don't completely break older editor tools. Older tools will still compile but their undo/redo won't do anything anymore.
14 Days Ago
Fix scene hierarchy right click (context menu) delay
14 Days Ago
Always refresh PrefabCacheScenes PostLoad even if the prefab didn't change. Ensures types of older assemblies are refreshed. Should fix issue where TypeLibrary.GetType() would return null when reconnecting to a server. The root of the issue was that typelibrary got refreshed on reconnect while the prefabcachescenes were not.
15 Days Ago
Automatically break prefab instances if part of the instance is reparented to another game object. A warning is emitted when this happens.
15 Days Ago
Fix edge case for nav agent ground trace Properly simulate deceleration for nav agents New logic also tries to decelerate them as fast as possible
15 Days Ago
Gluon Hose Shader https://files.facepunch.com/lolleko/2025/February/07_14-11-LavishTinamou.mp4
15 Days Ago
Use engine spline class
15 Days Ago
Some minor spline tweaks I forgot to backport from scenestaging
15 Days Ago
Spline Class (#1817) General purpose spline class for 3D. Uses a composite 3D cubic Bezier curve under the hood. Shape and behavior of the spline are controlled through points and handles. Two consecutive points and their handles define one segment/curve of the spline. The spline can be turned into a loop (Beziergon), which combined with linear handles can also be used to create a polygon. Splines are useful for animations, camera movements, marking areas, or procedural geometry generation.
15 Days Ago
Added Object property to WrappedMethod<T> (Fixes Facepunch/sbox-issues#7497) Fixed Show Interpolation Debug not being able to be toggled in the UI. If a ConVar value is a boolean, use its integer form. Fixes Facepunch/sbox-issues#7503 ActionGraph: add warning frame for graphs that can't be saved Fix case where empty editor scene is opened Fixes Facepunch/sbox-issues#7026 Added Show Hitbox Debug option in Debugging Menu in the editor. debug_hitbox ConVar. Can debug hitboxes in the editor or in-game similar to Show Interpolation Debug. Fixes Facepunch/sbox-issues#7505 Update mouse capture position if we get new absolute pos while locked (eg when unfocused, tabbed) Keeps cursor position predictable/reliable, stops occasional out of date position being restored and yeeting my mouse across the screen Only SetCursorPosition while engine window's got mouse focus, prevents unwanted movement in editor Add bitmap loader for IES files, treat them as images Do InputRouter::OnWindowActive based on engine window (not app) focus, fixes click-to-focus going thru as an input and shooting or whatever IES should be using RgbaF16 to avoid banding Default WindowedLocalInstances preference to true Remove logic to migrate from old project cookie, editor layout locations Fix default layout raising cloud browser, do asset browser instead Invert Ladder climbing controls when looking down (just like half-life) Fixed previous Show Hitbox Debug displaying BBox hitboxes in the wrong place Standalone: projects that only have the VR control mode enabled should automatically launch in VR, otherwise default to using the `-vr` launch param Moved DirectoryMetadata from Project Cookies to Project Config folder. Metadata is only saved when changes are made instead of saving a bunch of default values that are identical. If folder metadata isn't found, check ProjectCookie for legacy data Make ResourceLibrary work for all Resources - meaning we can network resource references Revert sbox/commit/11b227aac0ff5e756beae0ced2410445b1270c70, it's causing hammer objects to duplicate for remote clients over the network Gpu decals point towards forward and not left 🤦 Fix Gpu Decals normals not transforming to world space New decal component - https://sbox.game/dev/doc/reference/components/decals/ Add missing shader include Build shaders Decal: Update transform when dirty too Fixes Facepunch/sbox-issues#7518 Add thumb to published workshop clothing Fixed issue with calling RPCs from within RPCs when using HostOnly / permissions and Caller not being set correctly. Fixes Facepunch/sbox-issues#7452 Make use of the return type of Scene.Load and return false if SceneLoadOptions has no valid scene set Calling Network.AssignOwnership with a null connection will pass empty guid instead of throwing NRE Standalone: Separate operations up into build steps & sort Standalone: ignore dxcompiler Shader Graph Functions (Sub-Graphs) (#1806) - Adds a new Asset type with `.shdrfunc` extension. - Shader Functions do not have the "Material" node as their final output node. Instead they have a "Result" node which has a variable amount of inputs defined by the user - You can change the preview type of a Function Output so the value can be previewed while working on it - Dragging a `.shdrfunc` file into a Shader Graph (or a subgraph) will create the subgraph node - When "Add To Node Library" is set to `true` on a Shader Function it will be added to the Right Click -> Create menu - Double Clicking on a Shader Function Node will open the Shader Function - GraphCompiler now keeps track of the current Subgraph stack when compiling the preview and the output code, fully supports subgraphs within subgraphs. - Constant nodes now have a "Preview" input when you're in a Shader Function - Can Right Click -> Create Custom Node with a bunch of nodes already selected to instantly create a Shader Function. Will automatically create all the input parameters and result outputs. - Texture Parameters/Attributes are fed the whole way up from each nested subgraph since you cannot define a default texture in the `.shader` file. - Subgraph Nodes are now colour-coded Green and Result nodes are now colour-coded Blue https://files.facepunch.com/CarsonKompon/2025/January/28_18-05-OddAsiantrumpetfish.mp4 Require DropOwnership() to clear owner instead, document exception Remove Parameter.GetDefaultValue() and grab the current value as the default value Fix Default Color Editor in Subgraph Node Properties Subgraph Node ColorEditors are now bound to the defaults properly Add [SkipHotload] to RcSortedQueue comparator Simple AssetPicker displays Cloud Assets in a separate tab by default (with the option to combine them like it used to be). Show Cloud Assets is set to true by default so you can set Cloud Assets for anything called from native (like material/modeldoc) https://files.facepunch.com/CarsonKompon/2025/February/05_16-10-CoarseTasmaniandevil.mp4 We aren't using m_pTransformBufferPrevData and probably won't need to with compute transforms, also remove m_hTransformTexture which has been deprecated for years Allow texture asset type to be dragged into texture image control Default texture generator to empty image file for null texture properties instead of showing vtex resource control Add "list_sound_handles" console command To help investigate Facepunch/sbox-issues#7450 Warn if the mixing thread is choking https://files.facepunch.com/ziks/2025-02-06/sbox-dev_0l4IVOqJgB.mp4 Facepunch/sbox-issues#7450 Example networking test for asserting certain message types Some safety around ResourceLibrary.Unregister Resources get unregistered in their finalizer, so this race condition could have happened: 1. Resources are loaded 2. Resource library gets cleared 3. Resources are loaded again 4. Old resources get GC'd, remove new resources from ResourceIndex Fix warning when using AssetSystem.CreateResource Remove TypeKey from EditorShortcuts and use Type instead of string as key. EditorShortcuts will now resolve shortcuts in parent classes. Resolves Facepunch/sbox-issues#7531 Remove some logs Standalone: we might need this DLL actually 🙈 Dispose SoundStream in VoiceComponent when finished. Facepunch/sbox-issues#7450 First person: move FireModeSelectAnim weightlists into prefabs Decals gradient uv scales off the proper axis (stops mipmapping way too soon) Delete unused (or should be unused) shaders * ui * ui_texture_on_model * visualize_cloth * visualize_nav * visualize_physics * blur * unlit (ui shader) Deleted unused non-compute gaussian blur shader Delete pre SM4/DX10 compatability code Don't try to disable these shader warnings Revert commit a6f4d1d0dcdda5da45be89b9ece67c21f18e9901 for now since that wasn't the correct solution Another potential VoiceComponent fix for Facepunch/sbox-issues#7450 Unused materials using those unused shaders ActionGraph: don't try to set { init; } properties Fixes Facepunch/sbox-issues#7533 ActionGraph: fixed not being able to save expression delegates Merge branch 'master' into spline-class
16 Days Ago
Rename functions (Tangent -> Handle)
16 Days Ago
Sync splines with PR branch
16 Days Ago
Merge In/Out & In/OutRelative into a single property.
16 Days Ago
Fix spline editor to support vector3 scale
16 Days Ago
Bring spline code in sync with engine PR
16 Days Ago
Update test to match changed API
16 Days Ago
More comments, shorten various property names
17 Days Ago
Custom JSON converter for spline points Reduces serialization overhead by omitting certain fields when set to their default value. Also uses shorter property names. Add more summaries more summaries
18 Days Ago
Make SegmentParams struct internal
18 Days Ago
Spline Class Ported from scenestaging
19 Days Ago
Cleanup editor
19 Days Ago
Create separate spline class Cleanup SplineComponent Cleanup test scene
19 Days Ago
Merge roll, up, scale & tangent mode into spline point
19 Days Ago
Fix breaking from prefab not refreshing editor selection Fixes sbox-issues/issues/7502
19 Days Ago
Update spline tests scene
20 Days Ago
Add viewport option to toggle default prefab lighting https://files.facepunch.com/lolleko/2025/February/02_20-07-ConsciousCormorant.mp4 sbox-issues/issues/5527
20 Days Ago
Skip hotload for DtNode, hopefully fixes issue when hotreloading while navmesh query is in progress.
20 Days Ago
Catch type library returning null, event if it really shouldn't return null in the first place. Related: sbox-issues/issues/7496
22 Days Ago
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
22 Days Ago
Move some files Spawn players at the spawn point furthest away from other players
22 Days Ago
Use ReflectionQueryCache in Component Serialization