480 Commits over 273 Days - 0.07cph!
Added GraphView.CreateBackgroundPixmap which you can override. Resolves Facepunch/sbox-issues#7845
TextRendering.Scope now allows for newlines with a multiline text editor. Resolves Facepunch/sbox-issues#7836
Mixer now shows `*` when there are any new or unsaved changes. Can also delete mixers with the DEL key. Mixer will prompt you to save any unsaved changes on close and restore to previous settings if no is pressed. Resolves Facepunch/sbox-issues#7799
Added FeatureAttribute.Description. Feature tooltips now use the XML tooltips that display a description if there is one. Resolves Facepunch/sbox-issues#7893
Added [Feature] descriptions to a few existing components/resources
Input.EnableVirtualCursor also affects Click/MouseWheel simulations
Added Input.EnableVirtualCursor which can be disabled to override Cursor movement when using a Controller
Replace CameraComponent.RenderUI with ScreenPanel.TargetCamera.
Restore previous behaviour of UI only drawing to the Main Camera by default instead of all Cameras by default. Also allows you to specify exactly which Camera a ScreenPanel should be drawn over. So you can easily handle splitscreen, ect.
Added Tooltips to ComponentSheetHeader. Resolves Facepunch/sbox-issues#7859
https://files.facepunch.com/CarsonKompon/2025/March/13_09-32-MediumorchidHartebeest.mp4
Fix build failing, Vector3Int already had entry
Added negative (-) operator to Vector2Int and Vector3Int
TagSetControlWidget properly initializes any custom ITagSet class if they are null instead of throwing warning
Added a bunch of Context Menu options to TagSetControlWidget and TagButton. Resolves Facepunch/sbox-issues#7794
https://files.facepunch.com/CarsonKompon/2025/March/06_09-30-StainedHammerheadbird.mp4
Added Curve.Ease, Curve.EaseIn, Curve.EaseOut and Curve.Linear statics. Also added curve.Reverse() and updated CurvePresets to use the new statics. Resolves Facepunch/sbox-issues#7785
Fix numpad KeyEvents using the incorrect name when binding from the editor. Resolves Facepunch/sbox-issues#7778
Fix TextGradient parsing errors
Put LibraryDetail description in a ScrollArea. Resolves Facepunch/sbox-issues#7749
Update Shadergraph preview automatically when a subgraph is changed. Resolves Facepunch/sbox-issues#7708
Added `asset.changed` EditorEvent which fires whenever an asset is changed, passing the asset as an argument.
Use same priority order for subgraph inputs. Facepunch/sbox-issues#7706
Can now create Folders and JSON Files in the `Localization/` directory from the Asset Browser. Resolves Facepunch/sbox-issues#7492
Possible NRE fix in PackageSelector
Added "Include Path in Search" option in Asset Browser. Resolves Facepunch/sbox-issues#7733
Created GamePackageControlWidget, used for Parent Game/Target Game/Supported Games properties. Resolves Facepunch/sbox-issues#7515
Remove the disabled fog component from sweeper
Implement PlayerController.UseLookControls. Resolves Facepunch/sbox-issues#7715
Make Subgraph node Priority consistent with Material Editor Priority. Resolves Facepunch/sbox-issues#7706
Minor Sweeper project updates, cleans up the hierarchy and makes things more obvious/easy to navigate.
Added CameraComponent.FovAxis, can choose between `Horizontal` or `Vertical`. Field of View properties are hidden when Orthographic is true. Related to #1822
Removed unreachable code, should pass tests now
Improved Asset Browser search, now space delineated and has subtractive filter. Resolves Facepunch/sbox-issues#7696
https://files.facepunch.com/CarsonKompon/2025/February/20_17-02-LinenTermite.mp4
Subgraph outputs can be re-ordered based on the order of the list as well as a "Priority" property to override. Part of Facepunch/sbox-issues#7687
Priority value on IParameterNodes influence the order that inputs are created on Subgraph Nodes. Resolves Facepunch/sbox-issues#7687
Added CodeEditor.CanOpenFile. Don't show "Jump to Code" on internal Components/Assets/Properties. Resolves Facepunch/sbox-issues#7579
Added CursorShape.Finger to DropdownControlWidget. Resolves Facepunch/sbox-issues#7681
Add CursorShape.Finger and hover effects to ControlSheetGroup
Add Right Click -> Jump to Code for ToggleGroups. Resolves Facepunch/sbox-issues#7630
Add NodeResultType and new constructor for NodeResult that takes NodeResultType. Resolves Facepunch/sbox-issues#7684
Added Search Bar to Editor Keybinds, moved Reset to Default outside of the scrollbox, and gave bind FixedWidth to prevent alignment issues. Resolves Facepunch/sbox-issues#7643
Editor Keybinds now have alternating background colors and improved margins
https://files.facepunch.com/CarsonKompon/2025/February/18_17-10-ProbableHarrierhawk.mp4
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