1,208 Commits over 245 Days - 0.21cph!
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
Fix PaintTileTool being offset by a few tiles for non 1:1 spritesheets. Resolves #30
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
Remove debug logs
Fix repeated connect/disconnect messages.
Load human character if player avatar has `PrefersHuman`
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.
TilesetComponent now properly updates SceneObjects after an undo. Resolves part of #31
Undoing/Redoing no longer attempts to reference the component from the previous undo snapshot. Inspector also updates accordingly instead of resetting to object mode. Resolves #31
Added [Property] to TilesetComponent.Layers so it serializes
Updated TilesetLayerControl so it acts more as a ReadOnly list in the context of the component inspector
Fixed incomplete tooltip on TilesetLayerControl
Added more stats + Added achievements
Different points for different word difficulties, show drawing player at top of list, tweak some default values, prevent gameloop getting stuck on one word when player leaves while drawing
Canvas is sent to late-joiners properly and will live-update without having to wait for the next round
Show ✏️ for currently drawing
Automatically end round if last player who had to guess leaves the game
Don't show "Waiting for players..." for late joins, show the proper header
More playtesting feedback, leaderboard order, camera height,
Update host frame
Set org
Networking config + more words
Reveal a letter to people who haven't guessed every few seconds
Realtime networked drawing (instead of only when a stroke is finished)
Multiple rounds, results state, leaderboard upon ending
Panels and Players reset properly between rounds
Initial commit
- Game UI + all required panel components
Update header on game start, Start Game button, chat fixes, logo update
Player Cameras, Facecams included in player UI
Toolbar for changing brush size + color
Added character animations, win/lose positions, a few face morphs
Tie up loose networking ends and update ui properly
Added Voice Chat, PlayerEntry animated with voice, added mute/unmute button to chat, other chat tweaks
Added basic game loop, turn order, drawing, and sfx
Finished the rest of the game loop, players do their emotes based on win/loss, finished game UI, word list
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
Update undo code to use the new undo system
Don't throw an error when creating first layer from the TilesetTool UI
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
Inventory UI is slightly larger so it's easier to see and weapon names are displayed in the active InventorySlot
Added GameSettings class for local convars. Added `sbdm.viewbob` and `sbdm.screenshake`. Reduced default screenshake values, but can be restored by setting screenshake to 1. #109
Added BaseNode.OnFrame, moved hashcode check in FunctionResult out of OnPaint
Ammo display turns red while clip is empty/reloading
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)