1,495 Commits over 1,157 Days - 0.05cph!
Don't draw editor gizmos if "show game objects only"
Whitelist some System.Buffer methods
* System.Buffer.BlockCopy( System.Array, System.Int32, System.Array, System.Int32, System.Int32 )
* System.Buffer.ByteLength( System.Array )
* System.Buffer.GetByte( System.Array, System.Int32 )
* System.Buffer.SetByte( System.Array, System.Int32, System.Byte )
interopgen: don't needlessly overwrite subfiles as this would cause c++ rebuilds everytime
Whitelist System.Lazy
Whitelist System.Runtime.CompilerServices.ConditionalWeakTable
Revert "Never recompile symlinked assets, e.g compiled asset from asset.party that you have the source file for"
This was causing more problems then it was solving, need to rethink a better way to do this.
Whitelist System.Collections.Concurrent.ConcurrentDictionary & System.Collections.Concurrent.BlockingCollection
Whitelist System.Buffers.Binary.BinaryPrimitives
Whitelist System.Environment.StackTrace
Shader Graph: Clean up recent files code; make clear recent files show again, only show max 10, re-opening a file moves it to the top of recent files
Fix build failing models, these probably need the same lodding setup as simple_dress too @DanduwFP
PropertySheet { init; } properties are read-only
Fix choppy Input.Pressed outside of Simulate (e.g FrameSimulate or UI Tick) when FPS was lower than tick rate
Wrap map entity in a static EditorEntity class, expose if it's selected, transform, etc. usable within game code.
Hammer: managed traces add their trace info within list of native Hammer traces, can order themselves alongside native traces so we don't cock block others
Managed gizmos suppress native Hammer manipulators.. doesn't work in some cases, probably need to do a different way
SerializedEntity: right now it's just an accessor for MapEntity keyvalues
ui_text shader works in Hammer now (why do we need ToolsVis mode for this?)
Move rest of HammerGizmos to Sandbox.Tools, call static DrawGizmo on entities
Hammer gizmos using the ISceneView now
Iterate map entities, find their matching type and call static method DrawGizmo within a Gizmo.Scope
Move Hammer Gizmo instance to be owned by MapView
Whitelist System.Net.Primitives assembly, and HttpStatusCode type
Fix User-Agent typo so none would ever be set
Let you define Content-Type and stuff through the standard headers field
Fix these typos in the HttpHeaders whitelist, but probably will unwhitelist these
Can specify HttpContentHeaders specifically for Content related headers, non-content would still use standard way
Http.CreateJsonContent specifies application/json as default content type
Static Http API (#604)
Add Sandbox.Http static REST methods that run off an allow list in your project settings. Obsoletes Sandbox.Internal.Http.
---------
Co-authored-by: Rohan Singh <rohan-singh@hotmail.com>
Co-authored-by: Garry Newman <garrynewman@users.noreply.github.com>
Swap order of parameters so method is first even though you should be using named optional parameters. Minor documentation fixes.
Set output color to adjusted atoc opacity, recompile foliage shader for this
Recompile citizen animgraph from editor, from contentbuilder cmd line it produces a 9kb file instead of 47kb?
Silly nob left debug msg in
Never recompile symlinked assets, e.g compiled asset from asset.party that you have the source file for
Rebuild content - mainly for removing obsolete shader attributes from materials using blendable/glass/foliage
ServerContent -> ServerContext
Get rid of blend mask from non blend material api
Quick play around to see if a static API for HTTP is good
Add some methods for easily handling JSON requests
Move access checks over
Add optional params for headers and cancelaition tokens
Obsolete Sandbox.Internal.Http
Update WebSocket header handling
Move Http into Sandbox.Game to align with the public WebSocket class
Tests fix
More tests
Access list changes to allow HttpResponseMessage and HttpContent classes
Have to specify what http uris you want to use in project settings, menu ignores this
Quick doc pass
Test some additional uris, fix equal uris not being permitted
Delete ShadingModelStandard, it never really worked but if you were using it for some reason use ShadingModelValveStandard instead as that'll stay backwards compatible.
This probably shouldn't be a break, it's gonna stop remapping normal/rma on old glass materials otherwise
Don't define standard material inputs if S_MULTIBLEND is set, this is the best way I can think of to reduce samplers on blendable without breaking backwards compatability.
I don't see much reason for this stuff to even be in common, it's pretty hyper specific to the blendable shader.
Also will get rid of the bullshit first input from an artist workflow: https://files.facepunch.com/yourname/1b2111b1/sbox-dev_kGyz4UAlhq.png
Cleanup material API
Fix tintmask and cleanup multiblend further, reduce number of samples
Add back these helper funcs we're using in shadergraph, should be moved or something in the future though, kinda overly specific
ShaderGraph: fix includes, just use the standard one
Fix metalness input texture
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.
Remove defunct code about using cecil as the DMDType, not needed since we fix the references ourselves
Record event when we ILHotload, matches naming of existing hotloads so we can derive % easily
Whitelist UnreachableException constructors too
Failing test for static references
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
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
Undo hack inverting green channel, should be fixed on authored assets
Iterate, sort of done.. Need to derive wind params from game
Remove vr foliage animation from common vs code
Material API shouldn't need to double sample for opacity.. have a look at this @Sam
Update foliage to have basic artist defined animation based on vertex colors
Update tree materials with foliage animation params
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[temp] don't mount any asset.party shaders
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
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
Latest compiled shaders
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
Hammer: Max lightmap resolution 8k as 16k is impractical and never worked
Hammer: Fix entities from remote packages by using new PackageManager API
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)
ILHotload should never run with a debugger attached
Clean up dead code
Detour using a generated dynamic method copy from the replacing method
Scenes rendered from Sandbox.Tools apply an SVF_TOOL_VIEW flag, primarily this will stop stereo rendering on it
Fix error happening when using MET or recompiling assets due to null metadata in LoadTags
Fix static event exceptions throwing an error instead of showing the real exception
0ms hotload fast path poc when only method bodies change using MonoMod
Biggest flaw of this is detecting the changes, Ziks has some good ideas with comparing the AST
https://files.facepunch.com/matt/1b2611b1/sbox-dev_My23jH4uYG.mp4
New rendersystemvulkan & vfx_vulkan
[hack] don't deal with instancing on SboxVertex for now, need some additional code around input layouts
[temp] don't mount any asset.party shaders
GetShaderFullPath: remove shader replacements and legacy prefix substitutes
Shader fixes where DXC is slightly less forgiving on bad syntax (has a bad hack for material api in it)
Rip up Material API to get it compiling
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
Latest compiled shaders
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