256,534 Commits over 4,018 Days - 2.66cph!
ResourceCompiler,. ResourceCompilerContext are in Engine
Add transient filesystem
Add Texture.IsError
Compile embedded textures to transient folder
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
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
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
Fixed NRE when FunctionResult name is left null
Subgraphs no longer attempt to generate a .shader file, and will run error checks in the graph on Save
FunctionResult Inputs now maintain connections upon being regenerated
FunctionResult node generates inputs before creating connections to ensure connections are always deserialized correctly
PlugInfo correctly uses property name if no [Title] attribute
Refactor Result node into an abstract BaseResult class which Result and now FunctionResult can both inherit
You can now specify the preview type for certain Output variables on a Subgraph so changes can be reflected in the Preview window.
https://files.facepunch.com/CarsonKompon/2025/January/21_12-51-DifferentAmericanbulldog.mp4
Can change Preview Blend Mode/Shading Model/Domain in Subgraphs
Implemented all other preview types for FunctionResult
Fix GraphCompiler failing when using Unlit in Subgraphs
Subgraphs have Title, Description, Category, Icon and Add To Node Library properties. To be used for the created node
Added SubgraphNode which references a .shdrfunc. Results in graph errors if the references graph cannot be found or the references graph has errors
Dragging a .shdrfunc asset into a ShaderGraph will create a Subgraph Node referencing the dragged asset
Fix error when deserializing SubgraphNodes
SubgraphNode now uses the Title, Description, and Icon from the referenced Subgraph
SubgraphNode now generates inputs from any Parameter nodes in the subgraph, with default names for any without.
SubgraphNodes now generate output plugs from the FunctionResult node in the references Subgraph
https://files.facepunch.com/CarsonKompon/2025/January/21_16-23-CoordinatedEastsiberianlaika.png
Subgraph "Add To Node Library" adds the subgraph to the Create Node menu so they can be easily accessed.
https://files.facepunch.com/CarsonKompon/2025/January/21_16-51-HardVampirebat.mp4
Double Clicking a Subgraph Node instantly opens the Subgraph
Implemented the file history forward and back buttons when navigating through multiple ShaderGraphs in the same window
https://files.facepunch.com/CarsonKompon/2025/January/21_18-29-MidnightblueSandbarshark.mp4
Add [Hide] to TextureCoord.Title override
Minor MainWindow refactor so .shdrgrph files arent recognized as Sub-Graphs mistakenly
Prompt to save current graph (if dirty) when pressing the Forward/Back/Home buttons
Created ITextureParameterNode and started custom inpsector editor for when texture samplers are present
Expand "Map %s is missing" disconnect in the other place too
It wasn't displaying the info about cl_downloadfilter.
Display HTTP error when FastDL fails and its not a 404
Fixed the game not downloading maps if bz2 version exists locally
Unify how ITex/IMat:GetColor pushes color to Lua
Merged Pull Requests
* Do not display effect rings with Gravity Gun equipped
* Update jQuery and reduce reliance on it in main menu, as well as lazy load images
* Added math.IsNearlyZero and math.IsNearlyEqual
Initial pass for primitive travelling vendor trades since 6/10 items were removed due to item restrictions (plan to do another pass later once seige equipment has final crafting costs)
- wood
- stone
- metal frags
- hqm
- sewing kits
- gears
- large backpack (max 2)
- salvaged axe (max 5)
- salvage pickaxe (max 5)
Update: ServerDemoPlayer - add debug option to log packets
Trying to figure out why some construction events are not being palyed back properly
Tests: played back a demo where I'm building multiple chained staircases
Fixed ballista SiegeWeaponVehicleAudio.StartReloadSounds NRE
Unpacked catapult mesh prefab, see if it fixes the unpooled bone names
Tweaked battering ram door max angles
Add support for alternative vending machine trades per era
Add TextureBuilder.WithMips() - auto mip count
Bitmap.ToTexture supports mipmaps
ResourceCompiler.Compile is async (but we have to run it syncronously)
New battering ram dismount pos
Fix nested prefab edge cases
Fix edge case when prefab with a variable referencing the prefab root was cloned
Tweak pickups so that grenade/tripmine pickup notices show correctly
Bugfix: ServerDemoPlayer - synthesize initial tick after loadign a player
Avoids server's perception of teleport, as ticks are delta serialized and after load of save have default values.
Tests: played back a demo on craggy where I stayed stationary the first 10 seconds. No longer generating errors.
Disabled the new terrain collision proxy collider added on horses, need a better solution
Added net_fakepacketloss ConVar for testing (0-100%). Fixed an issue where if a delta snapshot was received before an object was created on the client-side, it would remember the state wrongly. Fixed an issue with Network Refresh messages where, if arriving late, could overwrite Sync Vars with the wrong values
█▍▇ ▇▌ ▇▆▊ ▇██▄ ▄▊█▋▉▋▄ █▋▉▌▍▍▍ ▍▄▄▌ ▍▊ ▍▄▌▇▄▄▄ ▍▄▆-▍▉▉▍▊ █▉▍▅▅▊▌
▆▌▅▇ █▍█▅▊ █▉▌▄▍▋▅▊█▋▄█ █▊ ▇▇
Packet loss test command - send invalid snapshot ids back in ack, dont process them
More progress rework table
Add Bitmap.ToFormat( ImageFormat format )
gas cylinder mesh and model doc cleanup.
Removed the 30s repair delay on the battering ram head
Added more jungle scaffolding blockouts
Shorten tiger leap and growl anims for better blending, custom flee to go back into hiding then circle back
Use RPC for health/armour pickups
merge from primitive -> aux2
Bugfix: FullServerDemos - ensure initial save always happens if demo thread was toggled
Tests: recorded 2 demos in 2 recording sessions on one server session - both had saves created
Ensure AssetDatabase.SaveAssets() is called after manifest is generated
- seemed to work fine on build server without this but didn't save manifest locally until manually using Ctrl + S
KeyframeCurve, IInterpolator
AnimationClip / AnimationTrack
AnimationProperty
AnimationEdit
Don't draw effect rings w/gravgun (#2083)
Add math.IsNearlyZero() and math.IsNearlyEqual() (#2172)
* Add math.IsNearlyZero() and math.IsNearlyEqual().
* Rename `smallNumber` to `epsilon`
* Use 1e-8 for epsilon instead of max.exp(-8)
* Fix comments to match function arguments
* Remove epsilon variable, code style fixes.
Fixed ballista not repairable when hammering its subentity
Frontend Speedup (#2183)
* Update jQuery to the latest version
* Optimize images by adding lazy loading
* Remove unnecessary jQuery calls
* Speed up the loading of the mainmenu
* Optimize loading screen: use DOMContentLoaded and defer jQuery
* Replace jQuery to JavaScript
* Fix the screen resolution glitch when game start up
* Fix the code style to the current code base
* Returning the js script binding to the head block
* Remove unnecessary changes
---------
Co-authored-by: Rubat <3299036+robotboy655@users.noreply.github.com>
Removed unused from InputContext
Bugfix: ServerDemoPlayer - wake up all recognized players
Players that are loaded from a save arrive sleeping, which prevents tick processing.
Tests: Played back a couple short demos where I didn't jump at the start - saw player move.
Add per-convar profiling when changing quality presets
Prompt to save current graph (if dirty) when pressing the Forward/Back/Home buttons
adobe wall and gate gibs and collision
Fixed Cloud Browser @installed tag not being filterable by query
Add [Hide] to TextureCoord.Title override
Minor MainWindow refactor so .shdrgrph files arent recognized as Sub-Graphs mistakenly