Placeholder icons for local projects
Addresses sboxgame/issues/issues/2468
Vis3: Use large bit vec for grid set storage and restore log warning about accessing bit out of range (this should never happen now)
Disable detailed hotload diagnostics unless hotload_log >= 2
Fixed game resource editor completely rebuilding when editing values
Fixes drag-editing floats for example not really working for sound scapes, etc
Increase default size of GameResource editor
So that soundscape editor is not squished and basically unusable without editing width every time
Fix WebPanelTest throwing NRE in debugger
.editorconfig changes to match Valve coding style better
Delete IVfx::GetAllShaderVariables was only used for dynamic shader compiles
Non Pow2 textures are allowed so make sure the tex coord scale gets set
Auto upgrade "shader" kv in vmat source instead of just compiled, e.g "vr_complex.vfx" -> "shaders/complex.shader_c"
Recompile all assets - mainly upgrading legacy shader names
Make PlatformEntity.StartMoveBackwards/Forwards actually start moving, not just set direction
Prefabs: Add Scale control to Root Entity and don't reset it back to 1 when opening editor https://files.facepunch.com/devultj/1b2611b1/sbox_IEHx2r0LU0.mp4
Remove large_crate assets
Hair_Longbrown Test files
Don't compile shader if they exceed our VFX_MAX_SAMPLERS
Fix typo VFX_REGISTER_INPUT_TEXTURE > VFX_REGISTER_TEXTURE
Fix static event exceptions throwing an error instead of showing the real exception
Fix error happening when using MET or recompiling assets due to null metadata in LoadTags
Recompile all materials again
Apparently they had old CRCs?
Scenes rendered from Sandbox.Tools apply an SVF_TOOL_VIEW flag, primarily this will stop stereo rendering on it
material/prefab updates
Package cleanup (#887)
Added singleton PackageManager which handles all package downloading, installing. LocalProjects are self compiling and their assemblies are used to mock a Package.
beer bottle
changed from mesh phys to capsule and cylinder
Merge branch 'master' of sbox
Fix download speed
Fix startup error when no ContentPath
Wrap initial package loading in a try get and noisily ignore load errors instead of bootstrap init false
When loading a tool package, load toolbase too
Fix swapchain assert when closing editor window
Fix typo in material compiler where it'd keep upgrading materials, provide some feedback too
MET standardize shader to shader_c
Recompile the rest of the materials that were using legacy paths before (hopefully this is all of them now)
Hammer: Max lightmap resolution 8k as 16k is impractical and never worked
Hammer: Fix entities from remote packages by using new PackageManager API
Fix crashes/weirdness when extruding subdivided faces in Hammer
sboxgame/issues/issues/2987
Report and skip when failed to install a local package
Fix exception when reporting exception in event.run
Give a warning when hotloading asset but couldn't load json
adding concrete hotspot mat/texture, updating bricks texture for tiling continuity
Merge branch 'master' of sbox
When finding dependant assets always search the same path first before any other
Fixes a case where the assetsystem would get confused and infinitely recompile an asset if it had a dependancy across 2 addons, e.g:
dm98's dm_crowbar.vmdl depends on crowbar01.fbx which exists in:
1. addons/citizen/models/citizen_props/crowbar01.fbx
2. addons/dm98/models/citizen_props/crowbar01.fbx
Now it'll always favour 2 because it's in the same addon
Group Proxy preview updates when editing Transforms in the property sheet
sboxgame/issues/issues/2990
Include assembly name in type identity calculation
Fixes a rare issue when there are multiple types with same full name.
sboxgame/issues/issues/2939
New Hair! - Big Scruffy Beard
https://files.facepunch.com/daniel/1b2911b1/sbox-dev_MvCKICBk1H.jpg
Quick fix to Monobrow grey .clothing file profile picture
Fixed game window drag'n'drop being an error with multiple files
sboxgame/issues/issues/3017
Mark some of our base libraries without HasAssets, hide them in asset browser - I'm not too sure about including base just yet
Fixed project templates listview getting cut off https://files.facepunch.com/devultj/1b3011b1/HVoY9GSNkU.png
Give menu addon an asset path again
Fix loading addons in tools registering their events + cleanup Hammer package integration
USP Match Pistol
art pass for the USP pistol
includes viewmodel and worldmodel meshes
https://files.facepunch.com/rickgreeve/Vs3XVgXn2y.jpg
USP fixes
normal error fixed
bodygroup setup improvements
Tools always load local packages on active
Rubikon: Ray cast optimizations against meshes from Dirk
Make asset browser custom asset types refresh on tool compiles again
EditorModelAttribute: strip _c from path
Remove SFM/Dota/Etc stuff from rendering pipeline (#904)
* Initialize lightShades so we don't get undefined behaviour when summing them, should still be mostly stubbed out by the compiler anyway if shadingmodel doesn't use it
* Delete all code, shaders and dependencies from other rendering pipelines
* Rewrite visualize_physics without deferred and deprecated stuff, also fix a bug with depth sorting
* Fix references to old pipelines on remainder of shaders
* Fix debug_sunshadow, update all_shaders list and delete compiled shaders for stuff we don't use anymore
* Remove HSL Grain and old Volumetrics from SFM, note that SFM lights already cast volumetrics in our pipeline without that
* Fix crash on moviedoc on maps with volumetrics
* Revert deletion of debug_sunshadow_vis.vmat
* Put RecoverWorldPosFromProjectedDepthAndRay on shared code
Remove Panel.SetNeedsFinalLayout
Remove PanelStyle.sortedRules, no need to reverse AllStyleSheets
Build style rules in parallel (prevent ui hitching)
HashSet benchmarks
Unit test fixes
Fix not updating layout on screen scale changes
Adjust VS project names for built-in editor addons
Move tools.package.loaded event to ToolsDll
Fixed obsolete warning
adding concrete material variation
Merge branch 'master' of sbox
Prevent game crashes when overflowing string tables
Add tooltips to sound preview buttons
Added failing test reproducing #929
Stricter test for #929
Fixed #929
Fixed IServerDll hotload not being able to resolve package assemblies
Fixed ReflectionExtensions.ResolveType
Used to not respect the assembly load context of the target module
Merge branch 'master' of sbox
Sandbox.UI.Panel documentation
Rubikon: Use growable stack for dynamic tree query and casting, fixes crashing with many overlapping object and is generally safer
WIP: ShaderGraph Comments (#907)
* WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4
* Add select color choices for comments
* Add description field too for tooltips
* Jiggle position and reset each update to force a redraw and update hitbox (temp)
* Snap to grid on resize
* Let static RPCs be nested in other static classes
* WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4
* Add select color choices for comments
* Add description field too for tooltips
* Jiggle position and reset each update to force a redraw and update hitbox (temp)
* Snap to grid on resize
* Call PrepareGeometryChange when resizing
* Hide Comment Node, add seperate Add Comment option always on top
* Update colors + add new one
* Show description inside the box
* Selecting a comment normally will automatically select any nodes inside of its bounds
* Better selection handling for nodes inside
* Added layla's resize stuff + KISS approach to selecting children. click the box selects whats inside.
* Comments take priority for Property display
* Deselect current nodes when pressing on comment if not already selected
* Use LeftMouseButton instead coz it exists and it's nicer
* Always keep inner nodes selected (check last mouse down)
* Remove drag indicator from comment as not needed now
* Comment UI tooltip updates when title/desc changed
* When dragging a comment node on top of another comment node, alter its z index so its on top of that one
* Greatly increase the max comment node size
* Fix layering
* Better layer system + normalize layers
* Can just drag a comment node to select and drag its contents too. Double click a comment node to select only the node itself
Fixed a regression with assets not loading from base tools addon
Fixes Hammer/ModelDoc tree view styling
Update these 2 mats that still keep recompiling
ShaderGraph: Add vertex color node
Don't use tools vis shading mode if we're not using a vis mode, fixes shader graph preview
Warn rather than throw if a dictionary key becomes null
Failing test reproducing #933
Warn when unable to find a scope method, instead of error
Fixed error delegates causing an error themselves on upgrade
Fixes #933
More helpful error message when trying to get default value of new field
Crack down on warnings in Sandbox-Engine
Rubikon: Add some error checking in broadphase update
Rubikon: Use uint32 storage for touching ent pairs, fixes this hashtable from reaching max capacity when many objects are colliding
When breaking a prop, play breaksound from the root physics body if we have one https://files.facepunch.com/devultj/1b0511b1/sbox_N8dwUF251P.mp4
Rubikon: Null check shape owner in a few places, should fix some crashes but remember to find out why this is happening, because it shouldn't be possible
Added toilet_a
Added toilet_a vmdl + physics prefab
Added ceramic.surface property + hooked up ceramic/porcelain soundscape files
Merge branch 'master' of sbox
Don't purge shapes when removing body
More null checking in broadphase update
Fixed up Hammer ImagePlane
Use real file extensions for Asset List drag'n'drop
This helps with Hammer's ImagePlane to get the correct file extension, and also just makes sense.
Drag'n'drop is able to find compiled assets
Remove unused PrepareDeletion from physics body
Handle encountering MethodBase operands in GetStackDelta
Documentation pass on Sandbox.UI and other stuff
Obsolete more HTML template methods
Fixed UI.DropDown (<select>) not working from Razor
Remove a camera's RenderHooks when it's destroyed - fixes effects lingering in other games
Fix two lobe speculars not normalizing it's brightness (Skin glowing on dark)
https://i.imgur.com/pua5PV8.png
Fix specifc shaders github action job referencing from the shader yml
Documentation pass on Sandbox.UI
Fix documentation updates for base/editorbase dlls
Documentation pass
Allow Sky.Skyname and Sky.TintColor to be changed after spawn
Apply environment light ambient color when light isn't baked
Remove collision group from particle collision via traces, this will need to be replaced with tags
Fix skybox tint, skybox expects color to be converted from srgb to linear
Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
Update compiled skin shader with glow-in-dark fixes
Tools: Internalize WidgetGallery static methods
Do not copy gigabytes of .tga files for Sandbox.Test
Documentation pass
Editor: When adding a project from file, open editor preferences addon location
Add support for declaring BindComponent properties that include disabled components w/ `[BindComponent( IncludeDisabled = true )]`
Foliage shader: Add standard vertex color based procedural animation based on http://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch16.html
Some additional changes here to Material API so we don't need to double sample for opacity & removal of dead code.
Documentation: https://wiki.facepunch.com/sbox/Foliage_Shader
https://files.facepunch.com/matt/1b1111b1/sbox-dev_3qi13Ck52s.mp4
Documentation pass
Minor cleanups
Add Editor.Application.SetStyles for consistency with Widget.SetStyles
Editor.Application.SetStyle is now obsolete
Citizen/animgraph: added faster walk ring + added "move_style" enum. (See commit comments.)
The faster walk ring helps achieve a better blend between walking & running (the in-between strides are faster and look somewhat less awkward). The "move_style" enum lets you force walking only, or running only. Variations on upright movement could be hooked up there in the future.
When client joining server - prioritize remote packages
Add System.Diagnostics.UnreachableException to whitelist
Add CitizenAnimationHelper.MoveStyle
Don't include local packages in server required content
Fix not removing local packages when disabled
Ignore some other folders in NetworkAssetList
Allow any Entity type to be a [ClientInput]
Merge branch 'master' of sbox
New Outfit Piece! - Waistcoat and Shirt
https://files.facepunch.com/daniel/1b1211b1/sbox-dev_cF6L7g7l2e.png
LODs and skinning adjustments coming ASAP
Lock call to SetNeedsPreLayout in thread to see if this is what's causing amd stuff
Re-organize boostrap to init editor addons before showing the window
Glass2 (#936)
* Start recoding the glass shader from scratch
* Apply FrameBufferCopyTexture to entire layer rather than batch, fixes some batches returning a null texture
* Let Material API handle translucency opacity properly and accounting for specular, still need to account for tint opacity
* Iterate on new glass
* Randomize shatterglass normals
https://i.imgur.com/8EKzZZ8.mp4
* Add overlay layer and cheap rough refraction
* Downsample framebuffercopytexture to be used when needed
* Translucent shadows for glass
https://i.imgur.com/6KYigbg.png
* Redo downsample shader to work properly without flickering, right now with just gaussian since we don't use any others right now
* Pass downsample method before ComputeRenderablePassesForContext
* Cleanup glass shader, fix VR and Tools preview
* glass.shader_c
* Update glass materials and glass blur range
* Don't dispose of temp rendertarget when trying to resolve it again, GetTemporary gets from dict, fixes multiple ui blur fetches, this solution was causing issues before but seems fine now we're hashing every parameter
* Do 1px feathering on CopyFrameBufferCached to avoid sampling without real intersection
* Remove hacks from GenerateMips, rewrite downsample_cs to support other mip generation methods
* Fix FBCopies showing incorrectly on tools
https://i.imgur.com/1MnEiWe.png
* Fix comment that slipped through experimentation, add more explaination to Cheap Glass and Overlay Layer
Documentation pass
Remap parameters from deprecated shaders still referenced in cloud materials
Whitelist UnreachableException constructors too
Citizen/animgraph: misc. small fixes
Fixed handling of some special movement transitions, move_style keeps cycle when switching modes, & some comment stuff
Fix framebuffer copies taking wrong dimensions
Revert "Don't dispose of temp rendertarget when trying to resolve it again", This needs more thought and was causing problems
This reverts commit 6ee43b38e629221c8b8faa2c43d6eb3fa81f6afb.
Scene culling box (#889)
Scene culling boxes lets users control scene visibility, either everything inside the box is culled or everything outside the box is culled.
Fast method body hotload (#931)
* 0ms hotload fast path poc when only method bodies change using MonoMod
* Print individual changes during compile, show node paths
* WIP check if all changes are in method bodies
* Add attributes to package assemblies describing changed methods
* SupportsILHotloadAttribute is added if only method bodies change
* MethodBodyChangeAttribute is added for each changed method
* ILHotload looks for SupportsILHotload and MethodBodyChange attributes
* Fixed methods with identical IL not being replaced by ILHotload
* ILHotload should never run with a debugger attached
* Clean up dead code
* Detour using a generated dynamic method copy from the replacing method
* Documentation for Compiler.SyntaxTree.cs
* Added CompilerSettings.SourcePathFilter predicate
* Boilerplate for writing ILHotload tests
* Fixed how file changes are emulated in FastPathTest
* A bit more flexibility in fast path test case code preprocessing
* Added failing fast path hotload test for changing method signatures
* ILHotload: changes must be specifically within a BlockSyntax of a method
* Added Compiler.UpdateParseOptions() for tests to use
* Don't use ILHotload if a preprocessor define changed
* Incremental syntax tree parsing
* Throw when trying to debug an ILHotload swap during a test
* Basic incremental compilation
* Make generated code more deterministic, nicer for incremental compile
* Keep track of which assembly types are actually loaded from
* Re-use compiler options where possible
* Changed fast hotload log to a trace
* Make OnlyMethodBodiesChanged multithreaded, fixed multiple changes in one file
* Failing test for property body changes
* Cleanup ILHotload tests, failing test for overloaded method
* Refactor AST processing for ILHotload
* Fixes after refactor, a bit ugly at the moment
* Support fast hotload for property accessors
* NoticeWidget shows ms if duration < 1s
* Call UISystem.OnHotload after an ILHotload
* ILHotload test for nested blocks
* Fixed ILHotload change detection for nested blocks
* Added hotload_fast engine convar to enable / disable IL hotload
* Added failing test of typeof(T) in method body hotloads
* Failing test for static references
* Fix references to members / types in fast-hotloaded method bodies
* Allow debugging ILHotload in Sandbox.Test
* Test for fast-hotloaded methods with parameter / return types defined in the changed module
* Added failing fast hotload test for compiler-generated type changes
* Don't attempt fast hotload if any compiler-generated type definitions change
* Record event when we ILHotload, matches naming of existing hotloads so we can derive % easily
* Remove defunct code about using cecil as the DMDType, not needed since we fix the references ourselves
---------
Co-authored-by: Matt Stevens <matt@mattstevens.co.uk>
Fall back to normal hotload if exception is thrown during FixReferences
TV
TV prop
Merge branch 'master' of sbox
Add TargetFramework attribute to compiles
Add ref dlls for compile
Compiler uses ref dlls
Skip auto-referencing base addon if referencing a gamemode
Rebase fixes
Documentation + typo pass
Fix hardcoded refs path 🤦♂️
Fix unit tests
tv wood skin
Fixed access control unable to resolve System.Threading, System.Memory
Razor directive errors report the file + location properly in visual studio instead of showing CSC
TV
fixed missing face
Merge branch 'master' of sbox
TV
Fixed tiny edge gap
Compilers can reference packages
Add Project/AddGameWithPackageBase unit test
Use well known SCENE_RTSIZE_FRAMEBUFFER instead of manually fetching dimensions that seem to give us a 12k x 2k render target... This was flooding vram and causing errors
I'm not sure what we were trying to fix when changing this, but if SCENE_RTSIZE_FRAMEBUFFER is returning the wrong dimensions for a framebuffer copy, we should fix that instead.
Added failing test for changing the body of a lambda
Fixed not being able to resolve private nested types
Fixed #947
Failing test for async methods
#947
Fixed #947 for state machine types
Some safety if ILHotload AST processing throws during Parallel.ForEach
Only run ILHotload AST processing when hotload_fast >= 1
Show compile errors when publishing and there are compile errors (!)
When we have multiple gamemanager classes, prioritize the one from the current game package
When publishing don't include package.base if we're referencing another game
When an API deserialization fails, provide some context in the error message
Allow projects to reference any package type
Keep more log files
NeedsLocalBasePackage return false if we're not a game or are referencing a game
Add Package.EditorReferences
Documentation pass
Update some packages
Code cleanups
Citizen/animgraph: improved sit_offset_height
The feet now pivot up and detach from the ground beyond +3 units, and the arms also follow correctly.
https://files.facepunch.com/maxlebled/1b1411b1/sbox_2023-04-14_21-11-48.mp4
Let decals do software-based culling, avoids slow copy of the depth buffer just to do redundant culling, that was also causing problems
Get the dimension of the biggest used axis for calculating swapchain dimensions, fixes FB copies having wrong dimensions on tools, allow texture downsamples to only downsample a region
Fix glass depth being fetched incorrectly in MSAA levels
Fix glass not showing properly on tools view
Just set the max swapchain dimension to be the largest monitor dimension again, causes less problems while in tools mode, guarantees we won't have edge problems
Pass to shader pipeline if we're rendering on skybox, fix glass reprojection being fucked up on skybox
Merge branch 'master' into scenemap