17,091 Commits over 1,308 Days - 0.54cph!
Fix assembly loading, mount assemblies in their own filesystem on packages
Resolve circular dependency on base csproj
Remove ConsiderLight and LightEntry, they're bullshit now and overcomplicated, used to figure out which lights had priority but not needed anymore, data flow is leaner now
Initial standalone build wizard
Standalone player exe
Export into `data\`, copy everything we want
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 dependencies
Clean up, slightly improved wizard
Don't hard-code these paths, do all setup inside StandaloneAppSystem
Standalone wizard shows basic ETA
Mount everything we need, gets us as far as at least loading scenes (even if they're missing all content)
Load assembly, filesystem
Copy base UI textures and fonts
Move standalone-specific stuff into StandaloneGameInstance
Use code resources from code manifests
Only copy compiled code resources, don't copy tool DLLs
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
Fix paths for new folder layout
Change "build" naming to "export", makes more sense
Wizard cleanup, share wizard code between publish/standalone
Rebase fixes
Fix menu not loading 🙈🙈🙈🙈🙈
Make internal addons.. addons - because it matters now
Fix NRE in DockManager
Make Project creation internal
Add LibraryManagerDock
Project constructor can't be internal, ya dummy
Library publishing
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)