341 Commits over 245 Days - 0.06cph!
Added negative (-) operator for Vector3Int. Resolves Facepunch/sbox-issues#7637
Added Vector3Int * Rotation operator. Resolves Facepunch/sbox-issues#7636
Fixed properties with AssetPathAttributes not opening the correct AssetPicker and not always loading the Cloud Browser tab. Resolves Facepunch/sbox-issues#7666
Fix the CloudBrowser infinite scrolling only working in List View.
Added `ClothingContainer.PrefersHuman`. Switching to the human character on the Main Menu will toggle this option and save to your avatar.
GraphCompiler no longer throws error when multiple NodeErrors occur on the same node in Shadergraph
Replace GraphCompiler.NodeStack with GraphCompiler.InputStack to prevent Circular Reference detection when a node is being re-referenced through a different input.
Use `FileWatch.SuppressWatchers` to prevent error spam while downloading library files.
Only download new/changed files when updating a Library, delete any that no longer exist, and download files in parallel.
LibraryDetail version now updates the ComboBox upon downloading a new version of the Library. Resolves Facepunch/sbox-issues#7669
Can now use multiple of the same subgraph with different values without it attempting to cache values from the other node of the same type. Also tracks nested nodes with their own cache so it's still optimized.
Don't serialize NodeInput.Subgraph since the field is only needed during the compilation process.
Fix connections to Result node not always serializing in ShaderGraph
Use correct PropertyInfo when generating Result inputs
Use DisplayName for DisplayInfo in Result node
ShaderGraph result node only shows the inputs that are actually used for the current Shading Model/Domain
https://files.facepunch.com/CarsonKompon/2025/February/10_11-10-LightskyblueRabbit.mp4
Add [JsonIgnore] to anything that would cause recursion during serialization in EditorTool
Fade out Node Graph grid when zoomed out far enough. Resolves Facepunch/sbox-issues#7486
SubgraphNode now instantly hotloads inputs/outputs on recompile of the references subgraph. Resolves Facepunch/sbox-issues#7526
Dragging an image into a ShaderGraph will automatically create a Texture2D node. Resolves Facepunch/sbox-issues#7547
Don't try to apply PositionOffset during PS phase in GraphCompiler
Another potential VoiceComponent fix for Facepunch/sbox-issues#7450
Revert commit a6f4d1d0dcdda5da45be89b9ece67c21f18e9901 for now since that wasn't the correct solution
Dispose SoundStream in VoiceComponent when finished. Facepunch/sbox-issues#7450
Remove TypeKey from EditorShortcuts and use Type instead of string as key.
EditorShortcuts will now resolve shortcuts in parent classes. Resolves Facepunch/sbox-issues#7531
Simple AssetPicker displays Cloud Assets in a separate tab by default (with the option to combine them like it used to be). Show Cloud Assets is set to true by default so you can set Cloud Assets for anything called from native (like material/modeldoc)
https://files.facepunch.com/CarsonKompon/2025/February/05_16-10-CoarseTasmaniandevil.mp4
Remove Parameter.GetDefaultValue() and grab the current value as the default value
Fix Default Color Editor in Subgraph Node Properties
Subgraph Node ColorEditors are now bound to the defaults properly
Shader Graph Functions (Sub-Graphs) (#1806)
- Adds a new Asset type with `.shdrfunc` extension.
- Shader Functions do not have the "Material" node as their final output node. Instead they have a "Result" node which has a variable amount of inputs defined by the user
- You can change the preview type of a Function Output so the value can be previewed while working on it
- Dragging a `.shdrfunc` file into a Shader Graph (or a subgraph) will create the subgraph node
- When "Add To Node Library" is set to `true` on a Shader Function it will be added to the Right Click -> Create menu
- Double Clicking on a Shader Function Node will open the Shader Function
- GraphCompiler now keeps track of the current Subgraph stack when compiling the preview and the output code, fully supports subgraphs within subgraphs.
- Constant nodes now have a "Preview" input when you're in a Shader Function
- Can Right Click -> Create Custom Node with a bunch of nodes already selected to instantly create a Shader Function. Will automatically create all the input parameters and result outputs.
- Texture Parameters/Attributes are fed the whole way up from each nested subgraph since you cannot define a default texture in the `.shader` file.
- Subgraph Nodes are now colour-coded Green and Result nodes are now colour-coded Blue
https://files.facepunch.com/CarsonKompon/2025/January/28_18-05-OddAsiantrumpetfish.mp4
Moved DirectoryMetadata from Project Cookies to Project Config folder. Metadata is only saved when changes are made instead of saving a bunch of default values that are identical.
If folder metadata isn't found, check ProjectCookie for legacy data
Invert Ladder climbing controls when looking down (just like half-life)
Forgot to save last change before commit 🤦
Fix drop-shadow css filter appearing cutoff at 0px blur
Fixed ui_dropshadow shader appearing transparent at 1px blur and drop shadow not rendering at 0px blur. Resolves Facepunch/sbox-issues#7438
ShaderGraph Reroute Nodes now preserve the input type correctly. Resolves Facepunch/sbox-issues#7466
Prevent Reroute Nodes from creating circular reference errors where none existed
Asset Browser no longer deletes a folder when renaming it to the same thing. Also allows you to rename the folder to the same name with different capitalization. Resolves Facepunch/sbox-issues#7464
Remove unused function in Connection
Clicking and Dragging a PlugIn will allow you to easily re-plug it instead of trying dragging out another input when it can only have one. Works in ShaderGraph + ActionGraph. Resolves #1525
https://files.facepunch.com/CarsonKompon/2025/January/31_11-34-EachSnowyowl.mp4
GraphCompiler will now detect circular references and present an error instead of hard crashing. Resolves Facepunch/sbox-issues#7470
https://files.facepunch.com/CarsonKompon/2025/January/31_10-42-HurtfulPig.mp4
Can now move the handle on grid-aligned wires properly in ShaderGraph. Resolves Facepunch/sbox-issues#7474
Can now right click on a Shader to "Create Material" from it.
https://files.facepunch.com/CarsonKompon/2025/January/24_17-29-EmptyPony.png
Fix typo in MaterialMenu
When dragging multiple GameObjects onto a ListControlWidget of Components, get the first component from each GameObject similarly to if we were to drag them each individually.
Added SoundscapeTrigger.Volume so you can control the volume of a Soundscape from the component
Added more property/enum docs to SoundscapeTrigger and gave TriggerType entries [Icon]
Disable PathWidget "Copy Relative Path" if the path is not within the Project's Assets folder, just like files/assets.
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
Unconnected ShaderGraph inputs with a default value will now draw the default directly on the plug. Can specify default properties with BaseNode.InputDefault.
https://files.facepunch.com/CarsonKompon/2025/January/15_12-07-TrustingSeaslug.png
More ShaderNode improvements
- Exposed InputDefault to all nodes that needed it
- Fixed icon drawing on a few Binary nodes
- Added color pickers to Blend node
- Can now specify certain default values without a connecting node for Remap, Lerp, Apply TRS and Smooth Step nodes
- Fix incorrect input types on a few nodes
Make the Step property affect the sliders within ShaderGraph. Resolves Facepunch/sbox-issues#3852
Added [IconName] to EditorActionGraph.Icon
Use proper grid-based background in all GraphViews by default (instead of just ActionGraph)
Add option to toggle Grid-Aligned Wires in ShaderGraph
Added OnPaint method to OneMinus ShaderNode for indicating node at a glance
Added Icons to a few of the Binary nodes in ShaderGraph. Don't display icon in header since it's already drawn on the node itself.
Added Icons to all the Texture, Transform, Noise, and Channel nodes in ShaderGraph
Added OnPaint overrides to a few more common ShaderNodes so they are easier to read/understand
https://files.facepunch.com/CarsonKompon/2025/January/14_15-12-ImmediateMartin.png
Add Icons to the last of the ShaderNodes that have fitting icons
Clicking off from the Color Picker in ShaderGraph will no longer instantly re-open it. Resolves Facepunch/sbox-issues#5897
ShaderGraph will no longer completely error out it can't find a node, and will instead create a "Missing Node" which resolves itself once the node is found. Resolves Facepunch/sbox-issues#5805
https://files.facepunch.com/CarsonKompon/2025/January/14_11-56-FloralwhiteGrackle.png
Don't rebuild the entire ShaderGraph UI when we hotload.
Added Cut, Copy and Delete options when Right Clicking node(s). Resolves Facepunch/sbox-issues#4096
https://files.facepunch.com/CarsonKompon/2025/January/14_10-42-DotingLoon.png
Added Paste Node(s) option when right clicking in ShaderGraph (only visible when nodes in your clipboard)
Added GraphCompiler.RegisterFunction, allows you to create your own custom ShaderGraph nodes without modifying the base addon.
Resolves Facepunch/sbox-issues#4141
Resolves Facepunch/sbox-issues#4389