20,835 Commits over 1,522 Days - 0.57cph!
Backport more shadowcache code from cs2, start adapting lightbinner for new layout
Fix node graph comment not saving position after resize
GameObjectControlWidget: allow opening prefabs in editor
New Hair + Space Suit LODs
Citizen: convert the remaining 'Walk2X' sequences to source the new WalkFast clips
Citizen/animgraph: added WalkFast_SE & WalkFast_SW + updated animgraph
Use interfaces instead of attributes
Unused GameObject.PreRender
Component.OnStart works on components that don't implement OnUpdate
Don't update scene view camera input if the editor window isn't active (sbox-issues/issues/5383)
Haptics NRE fix
Clamp haptic motor values where appropriate, matching existing behaviour
Basic controller haptics (#1498)
Allows for controller haptics based on haptic events.
```cs
public static void TriggerHaptics( HapticEffect pattern, float lengthScale = 1.0f, float frequencyScale = 1.0f, float amplitudeScale = 1.0f )
```
e.g.
```cs
Input.TriggerHaptics( HapticEffect.HardImpact );
```
Shadergraph: Add OneMinus node
Haptic effect support for VR
Squash history, update for SDL
Docs, cleanup
Apply LengthScale
Update haptics per-controller
Scoped haptics support
Vibrations -> Haptics, wrap patterns inside an event to simplify API
e.g.
```cs
Input.TriggerHaptics( HapticEffect.HardImpact );
```
Docs update
Shadergraph: float2 and float3 can specify ranges
Codegen applies attributes if OnUpdate, OnFixedUpdate or OnPreRender are implemented
Only call OnUpdate, OnFixedUpdate, OnPreRender on components that implement them. Also call them flat instead of recursing every GO 3 times
Fix hlsl antlr grammar 🙄
Fixes Facepunch/sbox-issues#5382
Stop sound handle when stopping or disposing music player
ComponentTypeSelector: don't allow left arrow navigation if trying to name component
Reduce parallel cubemap updates on load, we allocate a new lightbinner for each new parallel view and each of them allocates a lot of new GPU buffers when they should be shared, I'll revisit this after shadowcache
Remove all atlas downsampling bullshit, not even being used
Backport shadowcache from CS2
Use assets folder when collecting files for manifest
Don't add asset browser node for projects without assets
Don't collect assets from projects with no assets folder
Don't save the project list in editor, only save the project list when adding from launcher
Fix ProjectSettings path resolution, rename Project.Path to Project.ConfigFilePath
Error fix
GPU Shadow Culling (#1523)
---------
Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
Remove all atlas downsampling bullshit, not even being used
Was accidentally creating new lightbinner (without light info I needed too) every frame :S CSceneSystem::GetLightBinnerStandard() is "FindOrCreate" while from CSceneView actually gets the actual one
GPU Shadow Culling
POC: Don't render shadows that are not visible by GPU depth bounds
sc_show_rejected_lights
enum support for VFX HLSL
We dropped DX11 support so we can support it without a worry
microsoft/DirectXShaderCompiler/wiki/Language-Versions#hlsl-2017
r_gpu_shadow_culling cvar, parallelize static light visibility tests
Cone intersection for tiled light culling
Bloat cones a wee bit, still do sphere culling for point lights
Move culled lights list for shadow culling to lightbinner rather than shadowcache, lightbinners are guaranteed to be per view (first order, first served though), this lets multiview work for culled lights
https://i.imgur.com/JwxhgOJ.png
Only show the considered lights in the debug view, we don't cull the unconsidered lights so it'd show them as unculled
Cast shadows of non culled lights, not culled lights.. wtf?
Only debug draw actual shadow casters, add spot light debug drawer
Fix debug views for dynamic lights, update comments
Fix debug views for dynamic lights, update comments
Change "build" naming to "export", makes more sense
Wizard cleanup
Share wizard code between publish/standalone
Initial standalone build wizard
Standalone player exe
Export into `data\`
Copy all the stuff we want from core, base, citizen, bin
Application.IsStandalone, don't try to load menu project if standalone
Load from manifest, un-hardcode paths
Fix paths, temporarily copy sbproj
We should be able to get away with not copying these manually, asset system should handle it
We need a few files from core, though
Clean up, slightly improved wizard
Don't hard-code these paths, do all setup inside StandaloneAppSystem
Standalone wizard shows basic ETA
Better ETA
Mount everything we need, gets us as far as at least loading scenes (even if they're missing all content)
Include gamecontrollerdb.txt in standalone build
Build queue before copying (so we get compiled assemblies)
Temp copy video.json (because I'm sick of it launching in fullscreen)
Split out data dir and game data dir
Don't need to save off absolute game data path, just use relative path
Temp copy some more stuff
data/ conflicts with existing path, use export/ instead
Load assembly, filesystem
Copy base UI textures and fonts
Cleanup
Move standalone-specific stuff into StandaloneGameInstance
Test fetching all code manifests
Interop as array
Safe copy
Log copies
Use code resources where we can
Only copy compiled code resources
Don't copy tool dlls
Cleanup
Standalone games that don't use citizen won't copy or mount content (saves 1GB, builds faster)
Clean up, try to get as much of this standalone stuff as contained as possible
Copy all core models too (mainly for box, sphere models)
Wizard UX improvements
Paths cleanup
Rebase fixes
Fix paths for new folder layout
Citizen/animgraph: added WalkFast_NW & WalkFast_W + updated animgraph
Shadergraph: Add depth node
These two clothing icons were missed in the layout change
Update Facepunch.ActionGraphs
Use ActionGraphCache when cloning / instantiating GameObjects
Clamp navmesh heightfield size to sane values to avoid alloc crash
Move editor addon .cs files to Code directories
Update .git-blame-ignore-revs
Wizard UX improvements
Paths cleanup
Copy all core models too (mainly for box, sphere models)
Standalone games that don't use citizen won't copy or mount content (saves 1GB, builds faster)
Clean up, try to get as much of this standalone stuff as contained as possible
Pigtail Hair + Eyelashes Update + Fixes to .clothing files
https://files.facepunch.com/daniel/1b1711b1/sbox-dev_KgSKudxKhV.jpg
Safe copy
Log copies
Use code resources where we can
Only copy compiled code resources
Don't copy tool dlls
Cleanup
Test fetching all code manifests
Scope to active controller when looking for glyph vendor
Can use Alt+F4 to close the game
Force add compiled menu scenes
Yield in RenderThumbnailAsync to avoid Qt errors/crashes
Fix trying to create layout in MixerDetail when a layout already exists
Remove unused args
Create libraries folder
Libraries basics
Editor and UnitTest folders should be in the root of the project
code now needs to be in Code subfolder, assets need to be in Assets subfolder (hard coded and removed option to change)
Move addon asset locations, fix tests
Fix not mounting base/citizen
Include library dll in publish
Clean this code up a bit
When loading assemblies, pre-resolve dependencies and load them in order
This is probably wrong tbh. Should probably just be loading them all at once and letting it take care of it.
Merge branch 'master' into packages
Merge fixes
Update minimal game template with new folder layout
Libraries + new folder layout (read sbox-issues/discussions/5373)
Update minimal game template with new folder layout
Scene reference debug view (Facepunch/sbox-issues#5161) (#1508)
Expose game controller count to public API
Fix crash when drag-dropping .sbproj into launcher
Scene ref gizmo: only use weak references to graph elements
So references from deleted graphs will hide
ActionGraph: clear properties panel when selected node is deleted
Yield in RenderThumbnailAsync to avoid Qt errors/crashes
Fix trying to create layout in MixerDetail when a layout already exists
ActionGraph: Fixed dragging out a signal reroute node
Fix concave shapes not combining friction and restitution
Use a mono mix buffer without volume scale to process lipsync, allows sound with zero volume to still drive lipsync
Fix nav mesh generate trying to add bodies with no shapes
Fix Asset.CompileIfNeededAsync getting stuck
Compile all non-existing and out-of-date assets on project startup
Opening project progress gets reported to splash screen
Bunch of resources that were out-dated
Dead code
ActionGraph editor tabs (Facepunch/sbox-issues#4491)
Fixed left trigger actions never being found
Make AssetInspector an InspectorWidget, fold multiple inspector into it which hadn't worked for a while
Fixes Facepunch/sbox-issues#5372
Add append shadergraph node
Allow node result functions to spit out errors
Make sure worker threads start when calling RunInThreadAsync( Action )
Log a warning if a task runs without yielding for more than 1s
Facepunch/sbox-issues#4608
Add serialized array collection
Fix lists (in structs?) not saving when list is empty, parent property not setting target object
Merge branch 'master' into packages
Add serialized array collection
Fix lists (in structs?) not saving when list is empty, parent property not setting target object
Clean this code up a bit
When loading assemblies, pre-resolve dependencies and load them in order
This is probably wrong tbh. Should probably just be loading them all at once and letting it take care of it.
data/ conflicts with existing path, use export/ instead
Load assembly, filesystem
Copy base UI textures and fonts
Cleanup
Move standalone-specific stuff into StandaloneGameInstance
Make sure worker threads start when calling RunInThreadAsync( Action )
Log a warning if a task runs without yielding for more than 1s
Facepunch/sbox-issues#4608