usermattcancel

1,548 Commits over 1,096 Days - 0.06cph!

3 Days Ago
Don't need these Hammer prefab templates anymore Add "Create Game Object" button to Hammer outliner
3 Days Ago
When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically
3 Days Ago
Add jsoncpp so we can read/write json properly without fucking around with kv3 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 * 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 * MapGameObjects can be tied to MapMesh and generate model geometry Add MapSourceLocation for editing action graphs in .vmap files * Open source map when inspecting graph from .vmap * Parent action graph editor to hammer window if editing map graph Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority), clean up MapView loop 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 QOutliner: Remove hidden entity list QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away [~] ModelRenderer don't default to box if Model is null InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject ) Hammer Scene is serialized entirely in MapWorld & written into VPK as world.scene_c MapInstance: Load from SceneFile from inside the VPK (A little more logic because we don't normally read managed from VPKs)
3 Days Ago
Remove baked cubemaps code from Hammer Fix Hammer default layout. Also add Cloud Browser by default Fixes Facepunch/sbox-issues#6708
4 Days Ago
Add jsoncpp so we can read/write json properly without fucking around with kv3 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 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) Tie Meshes to GameObject button Implement CMapGameObject::Copy CMapGameObject overrides child selection Sync native transforms to managed 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 CMapGameObject's that generate model geometry are ignored by physicsbuilder 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 Replace manual scene serialization with jsoncpp, can map guids to map meshes better and it's cleaner 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 Fix action graphs from maps not caching correctly Only OpenContainingResource if not already open Several assumptions of SceneEditorSession.Active.Scene should be GameObject.Scene Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority), clean up MapView loop 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 QOutliner: Remove hidden entity list QOutliner: Defer selection until mouse release so it acts like our managed treeview, allowing dragging without switching the inspector away [~] ModelRenderer don't default to box if Model is null InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject ) Hammer Scene is serialized entirely in MapWorld & written into VPK as world.scene_c MapInstance: Load from SceneFile from inside the VPK (A little more logic because we don't normally read managed from VPKs)
8 Days Ago
Cleanup Use GameObject name explicitly in description instead of setting DMX name
8 Days Ago
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
8 Days Ago
Batch map gameobjects, start disabled
8 Days Ago
Initial assets commit (LFS)
8 Days Ago
Initial commit Set up .gitattributes and .gitignore for LFS Initial code commit
8 Days Ago
Initial commit Set up .gitattributes and .gitignore for LFS
8 Days Ago
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
9 Days Ago
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
9 Days Ago
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
9 Days Ago
CMapGameObject's that generate model geometry are ignored by physicsbuilder
10 Days Ago
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
10 Days Ago
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)
12 Days Ago
Clean up Entity tool as you can no longer add/target games this way Kill Hammer EntityIO buttons (unusable) CMapGameObject overrides child selection
12 Days Ago
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
19 Days Ago
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
19 Days Ago
Fix crash in CDMXLoader::LoadMesh when there's no position attribute.. unsure why, the offending models need to be looked at
21 Days Ago
And the managed side Serialize/deserialize CMapGameObject
22 Days Ago
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
23 Days Ago
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
24 Days Ago
Update type/labels
27 Days Ago
▅▇▇▋▅▅ ▊▍▄█▍▊ ▆▉▉ ▉▌▌▅▇▋█▅▊ ▉▇▌█▊█▅▊▍██ ▊▅██
27 Days Ago
Clamp dirty regions within terrain bounds Explicit updates for Terrain material buffers since we're not uploading this every frame like a mad man now TerrainMaterial.Metalness range 0.0f - 1.0f
28 Days Ago
Terrain: Make texture paint & holes also work with new undo
28 Days Ago
RectInt: your favourite Rect struct but with integers Texture.GetPixels: Able to specify dstRect fully Terrain optimizations, better undo/redo, clean up * Implement new undo/redo system, track delta changes instead of full snapshots (faster, more reliable) * Don't upload buffers every frame in OnPreRender * Stop using MakeDirty, each property only updates what it needs to * Only create SceneObject when we can actually use it * Don't over expose public methods & properties, remove dead methods Optimize TerrainStorage.GetDominantControlMapIndices 400ms -> 1ms Pass in a buffer we get from ArrayPool instead of allocating and returning, also preresolve some getters Vector3: Aggressive inlining on aggressively inlined System.Numerics.Vector3 methods TerrainClipmap mesh gen optimize 266ms -> 26ms
30 Days Ago
Don't recreate Edit menu, just update the undo options - fixes Facepunch/sbox-issues#6539
30 Days Ago
steamApiDll wasn't being populated properly, so it'd never free Dynamic edit menu, show top undo/redo entry name, disable if nothing on stack https://files.facepunch.com/matt/1b0111b1/0jX7JegPIJ.png
31 Days Ago
Revert "If Graphics.RenderTarget is not overriden, let it return the actual output rendertarget so you can fetch MSAA textures without copy ( you're going to shoot your own balls using this if you dont know what you're doing )" This reverts commit 3d84d6b56d8d948c5212e13e69ab82a2fc4af264.
35 Days Ago
Let's not have 2 KeyBind razor components, use same styling as settings for BindModal, fixes not being able to bind properly Fixes Facepunch/sbox-issues#6421
35 Days Ago
Use PackageManager to LoadAllGameResource from active packages instead of explicitly calling it everytime we need to after Package.MountAsync() Fixes Facepunch/sbox-issues#6206
36 Days Ago
RenderTarget.From throws an exception if the passed textures were not created as render targets. This then fixes crashes when you're trying to use these invalid RenderTargets. Fixes Facepunch/sbox-issues#6463
36 Days Ago
Avoid cyclic library references when publishing libraries Fixes Facepunch/sbox-issues#6414 Fixes Facepunch/sbox-issues#6410
36 Days Ago
MeshComponent updates meshsystem & sceneobject flags when setting a new model, this is usually automatic but it's a semi-procedural workflow
36 Days Ago
TreeView nodes do not call OnItemActivate when double clicking the expand/collapse button Fixes Facepunch/sbox-issues#6487
36 Days Ago
Use EditorTypeLibrary for Hammer PrimitiveBuilders (bonus: you can define these in your own editor libraries too) Fixes Facepunch/sbox-issues#6499
52 Days Ago
-allowlocalhttp works for WebSurface in editor only. Also limit Http local http to editor and headless (dedicated server), players should never be able to accidentally opt in Facepunch/sbox-issues#5774
53 Days Ago
Handle WebSurface.Url null, remove duplicate private url check Fixes Facepunch/sbox-issues#6380
59 Days Ago
Optimize TextureBuilder creations with no initial data * Use vkCmdClearColorImage instead of allocating a big empty buffer in managed * Texture.CreateInternal also passes a nullptr if the span is empty, so we don't do additional unnecessary setdata It's weird all of this stuff has an API of Span<T> & int length, but hard to fix without API breaking changes DrawIndirectArguments should be LayoutKind.Sequential
3 Months Ago
Backport some more gpu profiling for scenesystem
3 Months Ago
Backport scenesystem GPU profiling
3 Months Ago
Restore these deleted attributes to Valve core shaders, where we ended up only including them accidentally only in reflection mode in complex..... (fixes missing world mapping and other features in complex & more) sbox/pull/736/commits/bca14ecb2bba7d5410a2b971ab1f9a9c406a41d3 We should not be removing core stuff from core shaders because we're accidentally including our material api. The material api should depend on core, not the other way around compiled complex
3 Months Ago
ComputeBuffer.GetData - 0 count is illegal Add Model.GetIndexCount( int ) Model.GetIndexStart( int ) Model.GetBaseVertex( int ) Shadow map layers set proper ELayerEnum::Shadow, fixes SceneCustomObject not casting shadows
3 Months Ago
git blame ignore "Copy over changes for shader resources"
3 Months Ago
3 Months Ago
ComputeBuffer methods use the current render context if applicable, otherwise stuff is in weird shit orders Match upstream m_bIsReadOnlyDepthStencil Don't bind ShadowDepthBuffer as an input whilst we're writing to it as a render target (drawing shadows)... 🤯
3 Months Ago
Add ComputeBuffer.SetCounterValue( uint ) for Append buffers