usermattcancel
reposboxcancel

1,460 Commits over 1,157 Days - 0.05cph!

4 Hours Ago
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView (Don't merge this, hacky temp allocation) CSceneObject::GetCTransformUnaligned() Forward+ Decals * Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too) * Tiled culling checks decals within each tiles frustum * Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
Today
Add missing XeGTAO headers
Yesterday
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView (Don't merge this, hacky temp allocation) Forward+ Decals * Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too) * Tiled culling checks decals within each tiles frustum * Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
6 Days Ago
blendable: vertex paint tint masks apply per layer https://files.facepunch.com/matt/1b2711b1/sbox-dev_GItra2hhLI.png https://files.facepunch.com/matt/1b2711b1/sbox-dev_hO2CNKhDzx.png
7 Days Ago
Partial backport of ISceneObjectDesc::OnSceneObjectVisibleInView Forward+ Decals * Decals get binned by the lightbinner from OnSceneObjectVisibleInView (all lights should start using this callback too) * Tiled culling checks decals within each tiles frustum * Decal::Apply( ... ) is used to mix decal's albedo, normal, etc. into surface
8 Days Ago
fix nre, cleanup unused, order, CommandList.Release -> CommandList.ReleaseRenderTarget
11 Days Ago
Add Graphics.ResourceBarrierTransition supports transitioning Textures and ComputeBuffers states currently, e.g if you wanted to signal a resource should be readable in fragment after a compute write to it
11 Days Ago
Add Graphics.DrawModelInstanced with count for procedural instancing, document other instanced methods Add DrawModelInstanced methods to CommandList Add CommandList.Set for ComputeBuffer<T>
12 Days Ago
Can DrawInstanced a number of instances without uploading data
16 Days Ago
Need to download cloud asset references after we've imported resources not before
16 Days Ago
Fix GameResource assets not registering before loading startup scenes (and also compile assets), remove stupid Task.Delay hack? Fixes Facepunch/sbox-issues#6942
19 Days Ago
Prebuild the menu package
19 Days Ago
a
19 Days Ago
ci adjustment
19 Days Ago
Fuck off
19 Days Ago
Prebuilding menu project halves startup time
19 Days Ago
Load fonts in parallel Open the game window in SourceEnginePreInit instead so there's not that awkward 1-2 second of nothing
20 Days Ago
Prebuilding menu project halves startup time
20 Days Ago
Fix hotloading test
20 Days Ago
EventRecord uses correct Version sha
20 Days Ago
Json warmup can be a background task. (-500ms) Make logging initialization more predictable to avoid double configuration waste Menu doesn't need access control (-100ms) Only initialize ILHotload in editor as that's the only context it's useful in (-100ms) We can await on account information until after menu is loaded, otherwise we're usually hanging here for a second or more doing fuck all ResourceLoader.LoadAllGameResource: FindFile `*` more optimized than `*.*` (150ms -> 75ms) Update Superluminal PerformanceAPI (Stop nagging) Update AMSI patch for .net9 so we're not wasting 100ms+ every full hotload / package load
21 Days Ago
Some additional troublesome Vulkan layer disables
22 Days Ago
Hotload ignore Refit Fixes Facepunch/sbox-issues#6843
26 Days Ago
Update Refit
26 Days Ago
Categorize Create Asset menu, can create code files, add templates for compute, material, unlit shaders Use GameResource.Category in New Asset menu Give built in resources categories too, merge with gameresources Create templates for c# empty, component, razor code files and compute, material, unlit shaders
26 Days Ago
Create assets/folders from sidebar folder nodes
27 Days Ago
EntityTreeModel::mimeData calls base again so native interactions still work Hammer GameObjects can have children https://files.facepunch.com/matt/1b0611b1/sbox-dev_icF9jl1PDP.png
28 Days Ago
Suppress native transform change callbacks too which were causing angles & scale changes to not execute Transform changes on managed execute EventPropertyEditorCoreAttributeChange_t so gizmos follow properly
28 Days Ago
Ensure GUID is saved all the time. And some validation: delete CMapGameObjects that have no GUIDs on load & create CMapGameObjects for scene gameobjects that don't have a match
28 Days Ago
Hammer: Can hover and select managed scene render meshes (ModelRenderer) as well as gizmo render bounds, whilst working alongside native traces
29 Days Ago
Hammer can paste gameobjects copied from scene editor Resolves Facepunch/sbox-issues#6762
29 Days Ago
Copying, shift transforms & undoing all work on hammer game objects. Only had to change all the callbacks to a new system again
30 Days Ago
If no [Inspector] found keep falling back on [CanEdit] Fixes Facepunch/sbox-issues#6784
30 Days Ago
Can drag scene prefabs into Hammer map view
30 Days Ago
mapbuilder: don't try to parse empty scene json fixes Facepunch/sbox-issues#6777
32 Days Ago
Hammer GameObjects (#1675) * Hammer Scene is serialized in MapWorld and gets written into VPK as world.scene_c * MapInstance additive loads the SceneFile from inside the VPK Tie Meshes to GameObject: * Replaces Entity * GameObjects with meshes tied have a HammerMesh component which procedurally creates a ModelRenderer and ModelCollider * HammerMesh is setup at map compile time with generated models. Editor: * Add HammerManagedInspector which can take over native inspector if it likes the MapNode type * Add HammerSceneEditorSession for handling saving properly * Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority) * Clean up MapView loop: run Scene.EditorDraw() for gizmos, remove old Entity.DrawGizmos Hammer Outliner: * Managed sets DragData of map nodes in Hammer outliner * Defer selection until mouse release so it acts like our managed treeview, allows dragging without selecting instantly * Removed duplicate entity list * Add "Create Game Object" button ActionGraph: * 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 --------- Co-authored-by: James King <james.king@facepunchstudios.com>
32 Days Ago
Cleanup Set native modified flag using SerializedObject callback, also emit EventMapNodeDescriptionChanged_t for the outliner
32 Days Ago
Set HelpUrl
32 Days Ago
Can rotate and scale map game objects
32 Days Ago
Tint default Color.White
32 Days Ago
Hammer Game Objects * Hammer Scene is serialized in MapWorld and gets written into VPK as world.scene_c * MapInstance additively loads the SceneFile from inside the VPK Tie Meshes to GameObject: * Replaces Entity * GameObjects with meshes tied have a HammerMesh component which procedurally creates a ModelRenderer and ModelCollider * HammerMesh is setup at map compile time with generated models. Editor: * Add HammerManagedInspector which can take over native inspector if it likes the MapNode type * Add HammerSceneEditorSession for handling saving properly * Gizmo interactions work in MapView, Hammer gizmo selectionset syncs with native selection set (native has authority) * Clean up MapView loop: run Scene.EditorDraw() for gizmos, remove old Entity.DrawGizmos Hammer Outliner: * Managed sets DragData of map nodes in Hammer outliner * Defer selection until mouse release so it acts like our managed treeview, allows dragging without selecting instantly * Removed duplicate entity list * Add "Create Game Object" button ActionGraph: * 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 Co-authored-by: James King <james.king@facepunchstudios.com>
32 Days Ago
Properties with [Hide] don't contribute to features tabs Don't need these Hammer prefab templates anymore InspectorWidgets are explicitly marked with [Inspector( Type )] instead of [CanEdit( Type )], created with InspectorWidget.Create( SerializedObject )
33 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) When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically Don't need these Hammer prefab templates anymore Add "Create Game Object" button to Hammer outliner HammerMesh component, explicitly set on GameObjects that have a map mesh attached
36 Days Ago
Don't need these Hammer prefab templates anymore Add "Create Game Object" button to Hammer outliner
36 Days Ago
When tying a MapMesh to a MapGameObject add ModelRenderer and ModelCollider automatically
36 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)
36 Days Ago
Remove baked cubemaps code from Hammer Fix Hammer default layout. Also add Cloud Browser by default Fixes Facepunch/sbox-issues#6708
36 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)
41 Days Ago
Cleanup Use GameObject name explicitly in description instead of setting DMX name
41 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