21,418 Commits over 1,552 Days - 0.58cph!
Initial
Assets have colors
Preview tweaks
Search widget
Asset popup, will turn this into something more tooltip-oriented later
Split left / split right
Chips from tags
Tweak styling, move current project to top of asset locations list
Implement chip tag filtering
Initial cloud browser, separate from asset browser
Initial tabbed asset picker w/ both local and cloud assets
Asset type picker
Renames, deletes, duplicates handled by IAssetListEntry
Clean up
Implement `t:vmdl`/`t:vmat`/etc. and filters
Implement Everything & Recents
Cloud browser uses facets to select type - hide picker on search bar
Fix warnings
Fix FindItemsThatStartWith
Sort recents properly
Display "Everything" / "Recents" in address bar when those are active
Show asset name if only deleting one asset
https://files.facepunch.com/alexguthrie/1b2111b1/sbox-dev_aNrz89mgvo.png
Show file name + extension
Use project root path as root for asset browser stuff
Hide hidden files & folders
Icons for assets, code, libraries, exports, localization, projectsettings folders
https://files.facepunch.com/alexguthrie/1b2211b1/sbox-dev_vj4aOCIDDr.png
Hide .sbox folder
Open non-asset files (e.g. .cs files) when double clicked too
New generic file context menu (for any non-asset type - .cs, .scss, .razor, etc.)
Implement OnContextMenu in FolderNode
Navigate to code files using selected code editor
should prefer an active / open solution
Hide obj/ folder in code directories
Add support for drag-dropping assets / folders / etc.
Top of asset locations list shows favorites again
Favorites -> pins, hide node if it hasn't got any entries, hide obj/ folder in tree view
Doesn't refresh properly when going from no entries to some entries yet
Docs
Fixed searching through everything/recents
Show pins in tree when there are some added
Favorites -> pins, hide node if it hasn't got any entries, hide obj/ folder in tree view
Doesn't refresh properly when going from no entries to some entries yet
Docs
Fixed searching through everything/recents
Show pins in tree when there are some added
Fix adding new cloud asset ServerPackages sometimes causing silly hang
Added GetFrustum to CameraComponent
Rename "Available" to "sbox.game" in Library Manager + a different icon.
https://files.facepunch.com/CarsonKompon/2024/October/24_10-08-LavenderAnemonecrab.png
Adding/Removing a Component with a corresponding EditorTool will instantly create/destroy it. Resolves Facepunch/sbox-issues#6643
Add GameObject.DebugOverlay, Component.DebugOverlay
Adding a Camera Component to a GameObject no longer throws an error when it shouldn't. Resolves Facepunch/sbox-issues#6641
Disable new cloud packages stuff while I work out why that breaks shit sometimes
Add ulong constructor to Friend class. Resolves Facepunch/sbox-issues#6644
Properly get when disconnected
Test boot back to main menu
Sprite shader has a pivot position
This bit isn't needed actually
Don't call INetworkListener.OnActive for dedicated server, similarly don't call OnDisconnected. OnConnected will never get called anyway because it doesn't go through the handshake.
Start fixing up dof https://files.facepunch.com/sam/1b2211b1/ombChoX97P.png
Iterate DoF
Smooth fade DoF from composite shader
Iterate dof, needs cleanup, almost perfect
Wave intrinsics to do early out for far dof
DoF2 Downsample with bias based on depth, cleanup
https://files.facepunch.com/sam/1b0211b1/sbox-dev_rXaN2wxsmC.mp4
Front blur, tweaks
Final tweaks, add depth gap for adding an area where u might want more focus
https://files.facepunch.com/sam/1b0211b1/sbox-dev_VBIoPeaBWP.mp4
Depth Resolve writes to both channels correctly
Final cleanups for dof2
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
Add Dedicated Server page to Project Config with its own option for a Startup Scene. When loading a game, if we're headless, use that if its set instead of the usual one.
Add "new" cloud asset refs to ServerPackages table when hosting a game from editor
Adding cloud assets will now work in clients without having to publish/upload your project (Facepunch/sbox-issues#6598)
Reset local connection state to Unconnected when closing network system - some debug log for other machine
Include file in delete asset dialog for single asset selection
Physics debug render uses OverlayWithDepth so it's after post process https://files.facepunch.com/layla/1b2411b1/sbox_PvU3Pt0GJf.png
Protect against processing the same physics intersection event multiple times
Apply particle rotation to object alignment mode https://files.facepunch.com/layla/1b2411b1/sbox-dev_Sgw55NzeQF.mp4
Ensure positive zero when doing ValueToString on float controls
Add BillboardAlignment.Object to ParticleSpriteRenderer to align particles to game object rotation https://files.facepunch.com/layla/1b2411b1/sbox-dev_wPXQU0YbTa.mp4
Add transform widget back to prefab object inspector
AddHookAfterTranslucent > AddHookAfterDepthPrepass
Don't remove sensor contacts when changing body type, fixes triggers entering without leaving when toggling motion type while inside a trigger
Composite AO to pipeline rather than blitting, cleanup
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
SampleScreenSsMSAA to composite non-MSAA screen effects ( SSR, AO, etc ) into an MSAA buffer
https://files.facepunch.com/sampavlovic/1b1711b1/05csVIYZJM.png
Fix AO compositing for custom shaders
https://files.facepunch.com/sampavlovic/1b2111b1/CRqx99maFj.png
Add compiled shaders for AO including for Material 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
Remove sdf.hlsl (until we meet again 🫡 )
Add Motion.hlsl for motion vectors
Add generic TAA filter to Motion.hlsl
Shadergraph: Get rid of DynamicComboRule( Allow0( D_COMPRESSED_NORMALS_AND_TANGENTS ) )
Cleanup
Use GameObject name explicitly in description instead of setting DMX name
New generic file context menu (for any non-asset type - .cs, .scss, .razor, etc.)
Implement OnContextMenu in FolderNode
Navigate to code files using selected code editor
should prefer an active / open solution
Hide obj/ folder in code directories
Add support for drag-dropping assets / folders / etc.
Top of asset locations list shows favorites again
Revert "ModelRenderer don't default to box if Model is null"
This reverts commit 507bf43671ecc159012fc46ffe726dcf1128bdd9.
This works better, needs a cleanup that also removes [MakeDirty] crap
Batch map gameobjects, start disabled
Remove 2nd hidden entity list
QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away
Managed can set DragData of map nodes in Hammer outliner, MapGameObject sets its GameObject
DragData uses QObject.FindOrCreate so it persists when going native -> managed -> native for DragData.Object to work correctly
Add SerializedProperty IsPublic, IsField, IsProperty
Only show properties in GameResource inspector that'll actually be serialised, Facepunch/sbox-issues#6656
Node menu: list all scene refs
https://files.facepunch.com/ziks/2024-10-23/sbox-dev_qisG1bsjT4.mp4
Remove mock GameObject/Prefab code from managed MapEntity
Add CMapGameObject map node with managed counter part that wraps a GameObject
Hammer world's Scene uses HammerSceneEditorSession
Add HammerManagedInspector that can take over if it likes the MapNode. We only like MapGameObject for now
Run Scene.EditorDraw() on MapView for gizmos, remove old Entity.DrawGizmos
Hammer: Create GameObject Test option
More explicit HammerEvents
Managed map node callback interface, a little convoluted because of mapdoclib <-> hammer <-> managed. But this is easier to do callbacks and can return values
And the managed side
Serialize/deserialize CMapGameObject
CMapGameObject::GeneratesEntityModelGeometry()
Expose CMapGameObject JSON to MapBuilder via IHammerMapLoader
Collect CMapGameObjects, compile them into scene.json inside the vpk and let MapInstance load them (Very hacky code needs cleaning up)
MapWorld.Scene sets a Scene.Source in an attempt to make AG happy
Tie Meshes to GameObject button
Add def for CMapNode.GetRootDocument()
ActionGraph source location refactor
Add MapSourceLocation, fix editing action graphs in .vmap files
Check for MapSourceLocation in ActionGraphView
Open source map when inspecting graph from .vmap
Parent action graph editor to hammer window if editing map graph
Push AG serialization options when saving map game object
Makes sure we replace any cached versions of graphs
Implement setting HammerSceneEditorSession.HasUnsavedChanges
Fix action graphs from maps not caching correctly
Only OpenContainingResource if not already open
Fix action graphs in unsaved hammer maps
Associate graphs with a HammerSceneEditorSession if open in hammer,
which is resilient to renaming etc
Normalize map path name
Can tie map meshes to GameObjects, these get built into models and any components on the GameObject with a Model property get populated by it
Trim world builder
Implement CMapGameObject::Copy
Sync native transforms to managed
Scene changes (new component, prop edits, etc.) mark Hammer map as having unsaved changes (otherwise it refuses to save)
Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene
Clean up Entity tool as you can no longer add/target games this way
Kill Hammer EntityIO buttons (unusable)
CMapGameObject overrides child selection
Hammer GizmoInstance.Input.IsHovered is controlled by native MapView IsActive()
Add jsoncpp so we can read/write json properly without fucking around with kv3
Replace manual scene serialization with jsoncpp, can map guids to map meshes better and it's cleaner
Clean up MapView tick and scene render list
Hammer sync managed gizmo selections with native selection set (authoritative)
Fix warning
CMapGameObject's that generate model geometry are ignored by physicsbuilder
ModelRenderer don't default to box if Model is null
remove nav markup volumes from fgd
TieToGameObject takes TieToEntity keybind (Ctrl+T), remove button for entity as there's no entities to tie them to anymore, if you really need it the command is still accessible through F1
bakky icon
Fix undoing dragging connection handles
Fix updating connection positions
Correctly scope to current scene when pressing [Button]
Fix gizmos being unavailable during editor tick
Add "Set to None" option to InputActionControlWidget
https://files.facepunch.com/tony/1b2211b1/0WMKcWO3Z1.png
Scene.Title, Scene.Description are obsolete
Fix JsonObject.GetPropertyValue not always returning defaultvalue
Add SceneInformation component, replaces Scene.Title, Scene.Description - can create your own meta providers, works in prefabs
Add SceneFile.GetMetadata( name )
Add PrefabFile.GetMetadata( name )
Add ability to close tool window tabs, scoped to scene/prefab tabs only - resolves Facepunch/sbox-issues#6653
https://files.facepunch.com/tony/1b2211b1/sbox-dev_3TNYa6UlBY.mp4
Add IsDeleted checks to loading startup scenes. Facepunch/sbox-issues#6594
Focus last selected SceneViewport when leaving Play Mode. Resolves Facepunch/sbox-issues#6605
AssetInspector now hotloads when changes to the asset have been made. No longer have to click into something else and click back in.
https://files.facepunch.com/CarsonKompon/2024/October/22_09-47-StaleImperialeagle.mp4
Grid-aligned wires option
https://files.facepunch.com/ziks/2024-10-22/sbox-dev_bUe9p89nrF.mp4
SceneViewportWidget now refocuses last non-game viewport instead of last selected. Resolves play mode sometimes starting on an Empty Scene
MapInstance explicitly fails when trying to load scenemaps, fallback to configured map when map arg isn't valid
- Fixes case where an uploaded scenemap containing a MapInstance (mis?)configured to pull from launch args, would try to load itself and fall apart, Facepunch/sbox-issues#6620
Scroll the transform with all the other components
Change inspector theme
Fix exec command not working with spaces in dir for these csproj files
Add ComponentFlags.NotCloned to opt out of component serialize when cloning in editor
Rework component serialize bail logic
Fixed not being able to remove cookies, because it kept loading them before saving. I don't know why this code existed
Merge branch 'master' into asset-browser-2
Fixed not being able to remove cookies, because it kept loading them before saving. I don't know why this code existed