22,418 Commits over 1,614 Days - 0.58cph!
Fix TypeLibrary.Current not working
Materials store the shader version they were compiled against, added Source( ShaderVersion ) for shaders to query what the current material was compiled against for backwards compatability
Blendable: Use hemi octahedron encoded normals same as complex for better quality, remove a redundant texture lookup per layer, remove the 5th unused blend layer because wtf
https://files.facepunch.com/matt/1b1811b1/mspaint_qIv6MYpn8Y.png
Delete ResourceConverterFactory, ResourceJsonConvert
safe to pick to main
Add TypeLibrary.Current
Add TextureGenerator boilerplate
Remove C++ side of Dynamic Reflections, this is becoming a component like SSAO & going to use DepthNormals
Remove FramebufferScratchTexture, it was used to fetch a rendertarget over multiple frames easily and only meant to be used on dynamic reflections in native side, our C# RenderTarget is equivalent to it
Should be continue rather than break, fix undefined identifier if S_MODE_DEPTH_NORMAL is not set
Pass MSAA value from pipeline, make DepthNormals a dynamic combo instead of a mode, conditional
Add Normals.hlsl, with fallback if no depthnormals are available, add Bindless::GetTexture2DMS
Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold
GTAO uses Normals::Sample() instead of recalculating normals from depth
https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4
Use current msaa type when creating a new swapchain for tool widgets instead of using msaa 16X, currently doesn't change when changing settings though
Adjustments, Depth Prepass Depth Only under a convar, do depthnormals without size cull threshold
GTAO uses Normals::Sample() instead of recalculating normals from depth
https://files.facepunch.com/sampavlovic/1b1711b1/sbox-dev_e5dHGELNmU.mp4
Amend MoveMode.IsStandableSurace typo, though I can't Obsolete the old one without an error
Don't "step down" when on a dynamic physics object (let physics work)
Stomp z velocity when stepping down
Stomp z velocity when stepping up
Editor: Launch dedicated server option (we probably want some way to join it from editor?)
Fix NRE when attempting to save with unresolved errors
Guarantee IsSubgraph is set properly from the ShaderGraph window
Only Update FunctionResult.Inputs when necessary instead of when accessed.
Add PlugInfo.GetInput() and serialize PlugInfo.Name as the property name instead of display name
GameObjectInspector Reacts to Start/Finish Edit
Fix Component/GameObjectControl EyeDropper undo
Fix BoolControlWidget Undo
Blur active widget on undo/redo
Rewrite undo for component tool gizmos
Rebuild content
Rebuild shaders
Don't reset the menu environment when you quit a game, so you're on the same page
Allow TryJoinLobby to be called only once at a time
Disable play button when joining a game, so we can't keep pressing it
Fix disconnect message showing "Unknown Player"
Get rid of some obsolete function calls in editor tools
Start/Finish Edit Events for ControlWidgets and SerializedProperties
Does not yet cover all ControlWidgets
Automatically hotload user permissions if users.json is edited while the server is running - can change or add permissions without restarting the server
User perms config
Allow Json comments
Add default users.json file and change structure of config
Don't ignore game/config/users.json because we want to keep the default with comments
Return true in Connection.HasPermission if the connection is the host. We'll check user permissions from the config file for connections to a dedicated server.
Remove some test logs and make HasPermission available
LobbyConfig.HideInServerList would let you hide a lobby from appearing in any server lists in s&box but still queryable with QueryLobbies
Fix IsHidden support
Filter in the query
HideInServerList -> Hidden
HideInServerList -> Hidden
WIP, probably scrapping this
Mark a bunch of stuff as obsolete
- void AddSelectionUndo();
- void OnEditLog( string name, object source );
- void FullUndoSnapshot( string title )
- void PushUndoSelection()
- void RecordChange( SerializedProperty property )
Simplify Component Property Editing undo
Rewrite GameObjectInspector Undos, seems like most of them never worked in the first place?
Also gets rid of all fullundosnapshots calls in editor
Fixed p2p lobby clients not being able to connect to lobbies
Rename "Inputs" -> "Outputs" on FunctionResult since that's technically more accurate
Instantly update the Result node when Outputs are modified
https://files.facepunch.com/CarsonKompon/2025/January/16_16-18-WarmIncatern.mp4
FunctionResult node will produce Errors preventing compilation
https://files.facepunch.com/CarsonKompon/2025/January/16_16-48-VictoriousBrownbutterfly.png
Add ShaderGraph.IsSubgraph and add "Shader Sub-Graph" to the New Asset menu
Shader Sub-Graphs are now saved with the `.shdrfunc` file extension despite being the same asset (just so it can be registered with a different icon and filtered against in the Asset Browser to reduce user confusion)
Give .shader, .shdrgrph, and .shdrfunc assets different colours in the Asset Browser
Don't include BlendMode, ShadingModel or Domain in Subgraphs
Don't include "Material" ShaderNode in the Create Node/Palette menus of Subgraphs. Ensure proper extensions are used when opening the respective file types.
Add PlugInfo and make BaseNode.Inputs and BaseNode.Ouputs virtual.
Added FunctionResult ShaderNode, can only be created in Subgraphs and is created as the default node in newly created Subgraphs
Fix Shader Graph wanting to save/load as sub-graphs
Make sure [Title] attributes are still respected with PlugInfo
FunctionResult can now have a variable amount of inputs of varying types defined by a Dictionary. These are to be used as the outputs of the eventual sub-graph node
Use shader-specific types for FunctionResult Inputs
https://files.facepunch.com/CarsonKompon/2025/January/16_16-02-HumiliatingMorayeel.png
Fix selection after go deletion undo
Simplify Change Game Object Order undo
Simplify Group undo
Simplify Passte Component as New undo
Simplify change component order undo
When publishing an asset with IncludeSourceFiles, seek the asset and its dependencies for input dependencies (should include animgraph animations, texture source files)
Simplify Select All and Paste undos
Remove obsolete interface funcs
Remove ExecuteGameObjectEdit and ExecuteComponentEdit
Better error handling for undo scopes
Disable PathWidget "Copy Relative Path" if the path is not within the Project's Assets folder, just like files/assets.
Fixed connecting/connect rejection messages not using correct Name/SteamId
Fix Asset Browser Forward Button enabling/disabling based on the Back Button instead of itself.
Add Context Menu to Asset Browser Path Segments. Resolves Facepunch/sbox-issues#7391
https://files.facepunch.com/CarsonKompon/2025/January/16_10-33-GreedyQuahog.png
When loading ShaderGraphs and a connected property cannot be found, check for [Alias] attributes. This will resolve issues where loading old ShaderGraphs would look for old variable names. Facepunch/sbox-issues#5822
Added [Alias] to Combine node since its output was renamed at some point
MeshTool selection ops are now undoable
VR: More stuttering-related fixes, don't alloc joint data every frame
VR: Improved main menu scene
VR: Only create debug callback if `-vrdebug` is specified as a launch parameter
Add Undo Scopes for Selection and Gameobjects
Test dynamic properties get cleaned up when object is destroyed
Do the same when setting var
Fix dynamic properties referencing game objects / components
Additional cmd line fix and extra test
Tweak dynamic properties serialization
Failing GameObject dynamic property serialization test
Make IGameObjectDestroy internal for now
Add IGameObjectSerialize scene events (internal)
Dynamic property serialization