324 Commits over 92 Days - 0.15cph!
Remove unintended file change
Clear clone type cache on HotReload & GameShutdown
Documentation
Automatically detect if a type can be copied for cloning.
Cleaneup clone reflection code
Remove clone interface and attribute
Add another test
Add another test
Format
Possible fix for fragile tests
Restore old TypeLibrary at end of SerializeTest
Move VR scene switcher logic into OnStart
Add support for custom specialised asset pickers per-resource type via AssetPickerAttribute
Add SimplePicker, use for shaders until we get something better so that's not awful to use
https://files.facepunch.com/solw/2025/January/20_13-12-GentlePinkriverdolphin.png
Merge branch 'master' into jsonfree-clone
Fix cloning types that do not have public parameter less constructors
Simplify clone. Implement DeepClone for built-in types, for custom types fallback to JSON
Add [CopyToClone] attribute to allow fast path clone of structs that don't hold any references (ParticleFloat, Curve, Vector...)
Humans/animgraph: added Sprint_N (+ temp derived NE/NW)
Humans: small tweak to Sprint_N + export the copy of the graph assigned to Humans
Refactor GameObject serialization tests a little
A couple of object cloning edge case tests
CloneActionGraphProperty test
Add CloneActionGraphSceneReference test
Pull tests from master
DeppClone all reference types
Removed too much in prev commit
Removed actiongraph scope from component postclone
JSON free GameObject.Clone
Wrap scoped undos in a nicer API
Still need to rewrite existing usages
GameObjectInspector Reacts to Start/Finish Edit
Fix Component/GameObjectControl EyeDropper undo
Fix BoolControlWidget Undo
Blur active widget on undo/redo
Rewrite undo for component tool gizmos
Get rid of some obsolete function calls in editor tools
Start/Finish Edit Events for ControlWidgets and SerializedProperties
Does not yet cover all ControlWidgets
Mark a bunch of stuff as obsolete
- void AddSelectionUndo();
- void OnEditLog( string name, object source );
- void FullUndoSnapshot( string title )
- void PushUndoSelection()
- void RecordChange( SerializedProperty property )
Simplify Component Property Editing undo
Rewrite GameObjectInspector Undos, seems like most of them never worked in the first place?
Also gets rid of all fullundosnapshots calls in editor
Fix selection after go deletion undo
Simplify Change Game Object Order undo
Simplify Group undo
Simplify Passte Component as New undo
Simplify change component order undo
Simplify Select All and Paste undos
Remove obsolete interface funcs
Remove ExecuteGameObjectEdit and ExecuteComponentEdit
Better error handling for undo scopes
MeshTool selection ops are now undoable
Add Undo Scopes for Selection and Gameobjects
Some cleanup
Retire more editlogs
Rewrite undo for Mutli Edit
Use ComponentUndoScope for pasting values it's slower but more readable
Rewrite all meshtool undos
Fix a couple of NREs in resize gizmos
Rewrite inspector undos for component list
Simplify terrain drop undo
Initial attempt at new property change undo
PropertyChange undo now only undos the changed prop and not the whole component.
Rewrite undo in position tool
Rewrite undo for all scene tree actions
Fix gameobjects not resolving correctly for undo actions
Move undo logic to editor only code
Rewrite undo for all drop objects
Remove some unused imports
Start moving away from snapshots and edit log by adding action based undos/redos
For cuts we have to use snapshots
Remove attempt at reference collector
Format
Aggregate actions now complete on mouse release
Expose Parallel.For by wrapping it in Sandbox.Utility
Explicitly serialize & deserialize null values (#1759)
Fix missing standalone files
sbox-issues/issues/7241
Hook up IPressable.Release
Fix CI menu build for PRs
Analogue to 80a508a419578851e644fce2fa43da3debd48d9c
Merge branch 'master' into serialize-null-fields-and-props
Fix CI menu build for PRs
Analogue to 80a508a419578851e644fce2fa43da3debd48d9c
Explicitly serialize & deserialize null values
Port c++ navlink implementation to c#
Make agents aware of when they are traversing a link
Allows users to handle link traversal (e.g. by playing an animation)
Add undo for changing parent or siblings via scene tree
Fixes sbox-issues/issues/7320
Add missing conversion formy-up to z-up for navmesh
Added to GetClosestPoint & GetRandomPoint
Forgot to make some enums internal whoops
Move navigation from C++ to C# (#1752)
Replace C++ version of detour & detour crowd with a C# version.
Managed version should behave exactly the same as the native version.
If not, please yell at me.
Achieved by using dotrecast as base
- Refactored the shit out of it
- Optimised it, so the managed performance comes close to the native version.
Navmesh generation (recast) is still in C++.
Add Facepunch Copyright to comply with zlib license