8,122 Commits over 1,003 Days - 0.34cph!
Fix sboxgame/issues/issues/3394
Log some more info when #1027 occurs
When uploading a menu whitelist, pull in references of the wildcarded assets and add them to the whitelist too
Pass in video ext from managed so we can check that for input format
Failing test for when lambda signatures change
Warn on lambda signature change, replace with error-throwing delegate
RedirectFileSystem can resolve full filenames properly
Fix Game.Audio not available in menu
Fix videoplayer not playing video files (this isn't the correct fix, we should pass in the relative filename and check the extension on that)
Include member and instance path in hotload error reports
UI textures load as they're going to be used, rather than loading everything in the stylesheet
Fix border-image not drawing if background unset
Support videos as background-image etc
Add Texture.LastUsed - the number of frames since last used
Texture has a ParentObject (so they can keep things like VideoPlayer from being garbage collected)
Add IWeakInteropHandle to interopsystem, so c++ can reference c# objects that can get garbage collected
VideoPlayer implement IWeakInteropHandle
Add Debug/Full Garbage Collection
VideoTextureLoader is weak, will let videos get garbage collected
Remove Styles.TextBackgroundImage (not used)
Avoid threading assert in audio thread
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.