14,461 Commits over 1,614 Days - 0.37cph!
VideoPlayer: Fix repeat not working when user doesn't output sound on a video with sound
Add AudioSystem.Play overloads to play from an entity
Fix reading json color32 string not working
Fix GameLog not printing all aggregate exceptions
Fix transition time parsing
Fix GetSavedGames typo
Fix IPanel.Depth logic
Re-organize the sound classes
Sound doesn't need to keep the hash around
Sound wraps a SoundHandle
Fix video player not playing from filesystem path
Whitelist mp4 and webm to avoid going any further than we have to
Limit input formats to mp4 and webm
VideoPlayer.Play that takes a url checks if it's actually a url
Morph shapes for the Decorated Beard
Modeldoc: Compile skeleton with ALL bones no matter if they're used in skinning or not
Directly write to Logger during hotloads
Include path and member in hotload log messages
Allow nested FormattableStrings in log messages
So that their args can be inspected too
Fix order of operations when rendering drop shadows
Fix func_voxelsurface to the new way of getting the surface face
ShaderGraph: Fix formatting on generated code
Add blendmodes.hlsl until shadergraph just generates these functions
ShaderGraph: Fix NRE when identing generated code
procedural.hlsl isnt in common anymore
ShaderGraph: Only find nodes derived from ShaderNode
ShaderGraph: common/proceedural ->common/procedural
Video player (#1050)
VideoPlayer class that decodes mp4 and webm from paths or urls and provides the texture and audio.
CSS Drop Shadows (#1069)
https://files.facepunch.com/alexguthrie/1b0511b1/drop_shadow.png
Implement IsMatchingType for generic type definitions
Fixed IsMatchingType for required modifier types
Don't warn about attempted fast hotload of generic method
Stop all sounds when leaving game(menu)
Load GameResources from menu filesystem (allows sounds to load)
We don't need to access the soundsystem via interfaces, we can live in the dll
New Beard + Adjustments to the zombie skin
Hitboxes added to zombie skin, plus a new WIP Beard, will have quite a few adjustments in the future, also needs skinning adjustments and morphs, currently is just static on the face.
Failing test reproducing #1063
Fixed #1063
Games can define their own main menus
Shadingmodel Declutter (#1041)
* Start cleaning up material and shadingapi
* Allow using functions inside of HLSL structs
https://i.imgur.com/t1AwQzr.png
* Replace all GatherMaterial bullshit with Material::From()
* Remove Material parameter references to things that aren't implemented yet, put TransformNormal in normals file
* Cut everything from ShadingModel too and let's start from a static class
* Redo light api on shaders, start implementing new dynamic light under this structure, move raytracing shit to it's own folder, add sample shadingmodel
* Allow structs in structs ( HLSL 2021 and forwards )
* Most of static light with the new api
* Fix shadowing on indexed lights on new light api
* Move shadingmodel structures to shadingmodel.hlsl
* Fix light static assignment for lighting api, fix shadowing for them too
* Stub for EnvironmentMapLight
* Implement cubemap light
* ShadingModelValve
* light.envmap.hlsl becomes light.environment.hlsl for better readability, add debug views to material api, CUSTOM_MATERIAL_INPUTS preprocessor
* AmbientLight
* Sane implementation atmospherics and debug vis postprocessing for shadingmodel api
* Finish debug vis, rename ShadingModelValve to ShadingModelStandard
* Start rewriting blendable with new api, port glass to new api
* Rewritten blendable shader
* Refactor remaining shaders to new shadingmodel api, fix shadergraph not working, readd procedural.hlsl for shadergraph but fix typo on title
New Skin Variations for the Muscley body
FPArms: fixed left arm IKchain
Soundscapes always transmit, should fix long initial delay
FPArms: add notes on IKChain nodes
FPArms: explicitly reject weapon_root from existing weightlists
Networkable Component References (#1056)
* add componentid to IComponent
* make component id public - add internal findbyid method, add lookup dict for comp by id
* add/remove components from lookup where appropriate
* Add VarIComponent to support [Net] IComponent types
* Add replicate codegen
* VarIComponent -> VarEntityComponent, make ComponentId internal again, remove from IComponent interface. in Replicate..Component search for derived types from EntityComponent
* FindById should just return an EntityComponent now
Fix skin material not being applied to SceneModel clothes
Muscley Citizen Skin (Work in Progress)
https://files.facepunch.com/daniel/1b0111b1/Photoshop_BTmDLMnH03.jpg
Initial asset for the Muscley Citizen. In need of some general adjustments and fixes. A more defined set of legs and hairy back coming ASAP.
As well as skin colour variations.
Ship game templates from sboxgame/templates manually for now, need to consider about fetching from the repo soon
intruder alarms - metal bins
removed from core as they are now on asset party
Merge branch 'master' of sbox
Zombie Head Variation 02
https://files.facepunch.com/daniel/1b3011b1/sbox-dev_BN7EsqGgcy.mp4
https://files.facepunch.com/daniel/1b3011b1/chrome_uVsnZinHzp.png
https://files.facepunch.com/daniel/1b3011b1/sbox-dev_pgwwUWwijV.jpg
Another zombie variant, slight different head, should be great for creation multiple variations for hordes of zombies, rather than every zombie having the same face.
Razor generics and renderfragments
* Support for creating generic razor components
* RenderFragment support
* RenderFragment<T> support
Fix some more questionable crap I did
Fix texture compiles being dark, typoed SrgbGammaToLinear instead of SrgbLinearToGamma 🤦
Fix threading issue in navgen too
Delete some unused tier0 files
Fix threading issue in raytraceenvironment, be more explicit and capture the lambda parameters earlier when the job is queued not executed
New tier0 threadpool code from Valve
* Functor processors removed in favor of std::function jobs (lambdas)
* QueueJob always returns a SmartPtr now
* JF_PER_FRAME flag added for scheduling jobs to be completed this frame
* Improvements to contention by putting stuff on cachelines
* New simple ParallelFor usage:
```cpp
ParallelFor( 0, 10, []( int n )
{
Msg( "%d\n", n );
} );
```
The fun part: replaced all functor thread jobs with lambdas, and make it work with SmartPtrs
This is just done manually by me and isn't from Valve, so there's likely
a few cock ups - but everything I've tested has been good.
Fix all occurences of WaitForFinishAndRelease() on smart ptrs
Update first_person_arms_adjustments.vsubgrph
Allow area light size to be changed in runtime
Fix crash in particle system when using SetParticleControlComponent with an invalid CP value. If the CP passed is higher than function read limit, log warning and return origin vector in GetControlPointPosition
Let's just limit RpcHistory.Storage to 1024 elements by removing the first element if we go over that. RpcHistory.Purge is called when a net message (rpc) is received, but if one isn't received for a while the rpc history can build up to insane amounts and cause issues with hotloading
Fixed wrong workers count in package.download stat
File download progress is more reliable
SVG support in ui (#1030)
* Adds basic support for drawing pixel perfect SVG 1.2 images in UI
* Sample usage: <svg src="path/to/file.svg" /> (also see SvgTests.razor)