256,406 Commits over 4,018 Days - 2.66cph!
Leaderboard backup, run #
17117
Add TextureGenerator boilerplate
TextureControlWidget poc
Fix NRE in SpriteRenderer when texture is null
TextureControlWidget creates a child ResourceControlWidget instead of trying to be one
Draw texture preview
Standardize internal way to async replace placeholder textures
Add Sandbox.Utility.ForAsync
TextureGenerators are async
Add IPopupEditor<T>, EditorUtility.OpenControlSheet looks for this interface when creating a popup
Rename ControlSheetPopup to PopupEditor, make more modular so we can override important bits
Add TextureEditorPopup
Clean up TextureControlWidget
Add Color.Rgba16 (half based color)
Add Bitmap class
More bitmap stuff
Bitmap draw and bitmap pen
Bitmap drawing fixes
Bitmap clone, IDisposable, IValid
Wrap IResourceCompilerContext
Find "$compiler" in resource json and launch compiler
Add more ResourceCompiler functionality
Managed can override compiling of any resource
Add Texture.GetBitmap
Simple texture compiling from managed
Add Bitmap.ToFormat( ImageFormat format )
Add TextureBuilder.WithMips() - auto mip count
Bitmap.ToTexture supports mipmaps
ResourceCompiler.Compile is async (but we have to run it syncronously)
ResourceCompiler,. ResourceCompilerContext are in Engine
Add transient filesystem
Add Texture.IsError
Compile embedded textures to transient folder
Double height texturcontrolwidget
Remove debug
Add Bitmap.DrawText
Clean up
Lock FontManager cache when accessing
Refactor
Generated resources get weak cached in memory for re-use
Cleanup floatbitmap, add LoadFromInMemoryTGA
Load Bitmap.CreateFromBytes supports tga
Better tooltips on TextureControlWidget
Don't support mipmaps if npot (until we figure out how/why)
Create Bitmap.Filters.cs
Bitmap supports psd loading
Fix a bunch of bitmap filters
Add Margin.IsNearlyZero
Fix blur/sharpen thinking the edge of the bitmap is the end
Control widget tweaks
Pass ResourceCompiler in ResourceGenerator options, allowing us to add references
Fix asset picker ignoring AdditionalTypes
Move ColorTextureGenerator
Move RandomTextureGenerator to engine, allow normals creation
Add Widget.GetDescendants<T>
Expose OpenColorPopup on ColorControlWidget
Add [TextureImagePath] - allows selecting an image or a texture
Don't cache resource if hash changed while generating
Expose CreateEmbeddedResource on TextureResource
Bitmap.Rotate resizes the texture
TextureControlWidget has shortcut buttons for selecting a file, or color
Add bitmap SVG loader
Return white for default colors, instead of transparent
Add MainThread.Wait()
Add EngineFileSystem.Mounted (!)
Create TextTextureGenerator.cs
Create RadialGradientTextureGenerator.cs
Create LinearGradientTextureGenerator.cs
Create ImageFileTextureGenerator.cs
Expose Svg texture generator
Expose TypeDescription.Order
TextTextureGenerator tweaks
Fix warnings and errors
Use classname when setting ResourceGenerator
Fix bitmap.clear not using floating point color
Fix NRE in ImageFileTextureGenerator
Mark used resources in buffered descriptor set a few frames in advance, they're being deleted while still used
Shield cannot be raised if the player has less than 1s of time in the progress bar
Hammer is no longer usable with shield (was a bit of a downgrade since you had to unequip the shield to access upgrade options)
Hopefully fixed recurring issue where the player would be stuck in blocking state if their shield breaks while it is raised
Disable compute skinning temporarily while descriptor set crash is being debugged
Recoil when a player sucessfully blocks a hit is now applied to the attacker, not the defender, only applied for melee
Left in the screenshake for local player on blocking a hit as it looks good
Applied a new collider to all shields to increase the amount of coverage the legs and head receive, particularly while blocking
DepthNormalPrepassLayer stub, DepthNormal shader class consumes from S_MODE_DEPTH
DepthNormals mode, uses values directly instead of Material, attach it to ShadingModels
Ignore and don't compile combo if it's not referenced by a mode or feature instead of erroring out, e.g. We want to reference DepthNormal.hlsl everywhere in Class.hlsl, but we want to only have combos for it if we're using a DepthNormal mode without complicating the codebase, this way when adding a new mode that references that combo, it's added to the shader without convoluting the source, argue with me if you think this is shit behavior
Temp bind FindOrCreateRenderTarget and use managed rendertarget for depthnormalprepasslayer
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
Make shaders compile with Vulkan 1.2, allows for wave ops instructions used in new SSR, etc
Microsoft/DirectXShaderCompiler/wiki/Wave-Intrinsics
Bitch when variables are uninitialized in HLSL, can cause all sorts of weird undefined behavior in certain drivers
Fix warnings on all shaders, remove D_EYE_WHITE (bullshit?)
Avoid sampling diffuse cubemap for fog at lod0 to not have fireflies like in Eagle One Rain Demo
Catapult firebomb fire spread/lifetime/damage matches the incendiary rocket
Slower ballista hammerhead bolt
Minor build cost indicator color fix
Stop leading when horse starts ragdolling
Can't lead a ragdolled horse
Forward+ Decals (#1606)
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Fixed repair cost UI not showing as red (caused by 111605)
Tweaked mounted ballista colliders
▋▊▋▆▋▆▋▇▉ ▇▍▄▅▆▆▇ ▋▊▅▇█▇ ▄▉ ▉█▉▋
Static ballista rig setup
Updated icon
Clean up, remove unused properties, destroy buffer, 64 decals per screen tile
merge from primitive/deployable_ballista
Mounted ballista detailed colliders
Reverted
111575 (restored mounted ballista rig)
Constructable entities now require the correct amount of resources
Added UI showing the required resources when aiming at a constructable entity
Forward+ Decals
GPU driven tile culled decals that modify their surfaces PBR properties.
No additional draw calls for any decals.
* PBR modification: Albedo, Normal, Roughness, Metal, AO
* Works with transparent surfaces as it's not projecting based on depth
* Color Tinting + Opacity
* Angle attenuation
* Automatic sort order + override
* Future compataibility with extra data flags to add 100 more things
* Decal::Apply( ... ) API
Make sure to reset leading flag when leader player dies
add octohedral_encoding.fxc include
▄█▄ ▌ ▋▊▌▋▆▇▌ █▉▉▉ █▅ ▌▌▄ ▍▊▆▋▉█▄ ▍▆▅▍
▆▍▅▊▄▋█▆▅ ▋▅▊▊▍▊ ▅▅▄▍▇▋█ ▋▍ █▆▆▇▇▉▍▉▄ █▊▉▇▌█▋▊▊ ▋▇▌▍ ▉▋▍ ▆▌▍▇▌▅▋ ▆▆▆▌
█▄▌▉ ▌▉▊ ▆▇▄▌ ▆▉▆▊▅▊█ ▄█▊▉█▅ ▊▍▅ ▅▆▌▇ ▄▊▊▆▊▋▆ █▆▇▇█▌█ ▉▇ ▄▆▄▅▋▆▋▅▍ ▊▋▌▌ ▇█▍▉▋▋▊ ▍▍ ▍▇█ ▍▌▄
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
GraphCompiler will now resolve inputs for parameters within subgraphs
Make sure DefaultEditor draws the correct Default Value
GraphCompiler now pulls the Default Value set on a SubgraphNode if input has no connection
Fix infinite loop when saving some graph configurations
Cleanup GraphCompiler.Result() and remove debug logs
Fix DefaultEditor NRE
Label default properties as "Default {x}"
Fix Subgraph preview not compiling properly after new changes to GraphCompiler
WIP refactor
* Allow MovieClip to be a resource, so doesn't reference GameObjects directly
* Make MovieTrack more general, to support action blocks in the future etc
* MovieTrack stores compiled version of curves / constants, so fast to read and doesn't assume anything about how the data is created in the editor
Simple movie maker test scene
Getting things working again
Test with QuadraticInOut easing
merge from primitive -> aux2
Use classname when setting ResourceGenerator
Fix bitmap.clear not using floating point color
Fix NRE in ImageFileTextureGenerator
Use `==` instead of `?` for completeness sake (should handle missing prefab reference either way)
Fix an NRE inside GameObjectRef itself (when GameObjectRef lost it's reference to the gameobject but you call GetEntity() on it)
merge from primitive_gm -> primitive
Fix tech tree not allowing to unlock if there were restricted items inbetween
med ak skin WIP
- model skinned & exported
- initial prefabs setup
merge from primitive -> primitive_gm
Fixed T3 workbench missing the primitive version of the T2 tech tree
Merge from train_tunnel_altitude_2
Fixed issues on world sizes that, when divided by 216 and rounded down, resulted in an even number
merge from primitive/gameplay
Resolved tech tree pathing issues