16,846 Commits over 1,277 Days - 0.55cph!
Add EditorUtility.OpenPropertySheet
https://files.facepunch.com/garry/c9f2b5cb-f6bb-4895-a401-346d1dbf939c.png
Set qt darkmode=2 so windows will follow system theme (I think)
Add ControlObjectWidget
Add [KeyProperty]
Add KeyProperty to TextureSequence.Source
ControlWidget will create an editor for unknown types (this will likely need locking down)
Support joint breaking on prismatic, revolute, rigid, spherical
Implement joint breaking, break callbacks called on post step, breaking a joint disables the component
Use gizmos for physics debug draw lines for when I need it
Comment out early out in capsule vs hull deep penetration until I get the proper fix
Add [ImageAssetPath]
fix SerializedCollection NRE
Fix MemberDescription.HasAttribute not finding base attributes
Convert TextureEditor to use Sequences
SequenceControlWidget has popup instead of doing it all horribly inline
Fix SerializedObject changes not propagating upwards
ResourceStringControlWidget cleanup
Use new Sequences json for amalgamated texture
Expose some sheet access on texture
Simplify amalgamatedtexture packing, less likely to infinite loop, loads from json
Add TextureFile sequence `IsLooping `
Can use particle SequenceTime easier
Remove parse_mks.cpp
Delete mks importers (everything should use our way now)
Default rendersystem to Vulkan ;)
In ByteStream.Read/WriteValueArray, use Enum.GetUnderlyingType when using Marshal.SizeOf if the type is an Enum type. This is because Marshal.SizeOf will error when used with Enum types directly. Fixes Facepunch/sbox-issues#4579
Citizen/animgraph: added Swim_Up
Native resource Load methods should only be called from main thread, the resourcesystem has no idea what to do with a blocking load on a thread and will just crash
Fix multiple box-shadow parsing (oops)
UI box / shadow / filter shader recompile
CSS box-shadow inset implementation
https://files.facepunch.com/alexguthrie/1b2311b1/sbox_QVsBt34bNx.png
sbox-issues/issues/3649
Basic support for custom C# nodes
Each SceneMap has a unique SpawnGroupHandle, fixes crashes with multiple map instances (including 3d skyboxes) in scenes
Fix Graphics.MipmapGen trying to generate one out of bounds mip
SubContext support on RenderContext (#1441)
* Add IRenderContext::GetSubContext() to get or create a sub context for a new thread, use it in managedsceneobject
Render contexts can never be passed between threads; they can only be used on the thread that created them. The thread index will be set in the constructor and can't change after that.
This causes a problem in our current implementation of SceneCustomObject that reuses the threaded render context on the main thread and expects we can add things,modify and render it from there, for D3D11 it is not a problem since the implementation or driver seems to have a mutex for command lists, but on Vulkan that gives validation errors and causes crashes.
This implements the concept of SubThreads to RenderContext, a very simple way to pass the render context around and consume it in a timely manner, it creates a new render context with the same characteristics as the parent one in a new thread and submits it when the parent context is released
Facepunch.ActionGraph API changes
Fixed race condition in Tools/CodeGen
Updated Facepunch.ActionGraphs
Don't list GameObjectActionComponent in action graph menus
Animation helper applies root motion to the root in treadmill mode, fixes treadmill movement not working in animgraph
Remove deferred rendering meshes from scenelight
We no longer have a hardcoded path for rendering viewmodel shadows, that will be handled with a special component in managed
Fix depth normalization on GetWorldPosition, since we are using 3D Skyboxes again we are splicing a bit of the depth range, fixes feathering on sprites again
GameObjects only save their own tags - not inherited tags!
Add group support into ControlSheet
TextureCompileSettings uses ControlSheet
Fix warning when dragging model into scene
Add EditorUtility.LoadBitmap
Don't store flipbook shit on the image
AssetSystem.CreateResource - create empty json not kv3 since I removed the legacy kv3 path
TerrainEditorTool use EditorTypeLibrary for paint tools
Citizen/animgraph: updated Swim_Idle
Citizen/animgraph: change threshold for movement reset from 5 to 2 u/s
Correctly preserve worldpanel combo when popping UI layers
Almost fixes worldpanel filters, but there's still some issues with depth
HideInEditor becomes Hide
Component.Destroy should always work in the editor
Hide components with ComponentFlags.Hidden, re-use ComponentSheet if possible
When calling a CallbackBatch, create a new CallbackBatch to catch callbacks inside
Init SkinnedModelRenderer to bind pose in editor
Set so transform on model create
Serialize component references as an object (for future usage)
Fix NRE when copying component to clipboard
Move BodyGroups, MaterialGroup control widgets out of engine until they don't look like shit
Add ShowIf to Model.BodyGroups + MaterialGroup
ComponentSheet obeys + watches ShowIf
Fix component sheet not having 4px space before groups
Update default QComboBox colors
Fix a `ERROR: Reentrant call to CResourceSystem::FrameUpdate()` caused by some resource compilers using g_pRenderDevice->Present() to clean up resources, this was cascading into swapchain updates when the window was resized (which always happens at startup) - which then make another call to the resource system to free previous swapchain resources.
Worldpanel backdrop filters correctly sample from the framebuffer
https://files.facepunch.com/alexguthrie/1b2211b1/sbox_SEP7KjTrRh.png
For sbox-issues/issues/3520
Make current FieldInfo avaiable to instance upgraders
Field.HasAttribute<T>() extension method that checks for property
SuppressNullKeyWarningAttribute
Rebuild ComponentListWidget rather than ComponentSheet on hotload
Fixes NullReferenceException when a component type is renamed / removed
Fix infinite loop compiling games, sorry!
Check typedef before we try and use it
PackageLoader: Don't add a package to loaded until we know the assemblies aren't going to throw
Graphics.Draw (RenderTools::DrawSceneObject) passes non-uniform scale to shader
Input action keybinds accept Tab
Input actions setup MOUSE buttons correctly, also uppercase everything so it's consistent
Fix not finding primary connection when not p2p
Add Networking.HostConnection
Fix map 3d skyboxes lifecycle by making them map components
Offset 3d skybox camera by skybox_reference position
Add Networking.Connections (list of connections)
Add Networking.IsHost
Assert that the connection isn't host when calling OnJoined during handshake
Cancel loading button leaves the game (fixes sbox-issues/issues/4523)
Add Rigidbody.ApplyTorque (fixes sbox-issues/issues/4544)
git-blame-ignore dotnet format commit
LineEdit: Enter key blurs the widget
Bounding box editor tool
Add ITerrainPaintTool for easily extensible terrain painting tools
Set the light transform on creation
Be able to get object from CodeGen wrapped prop/method
Setup attachments for bind pose animated objects, fixes incorrect attachment transforms on models not using animgraph
Simplify particle mode selection - with most likely presets
https://files.facepunch.com/garry/2a502906-36a8-42dc-a536-0fdb6d8c089f.png
Make mode change button less obtrusive on ParticleFloatControlWidget
https://files.facepunch.com/garry/2bf2ff16-38ac-478f-89f3-3fa89a7ffbcb.png
Draw indicator lines through range
Curve editor supports ranges
https://files.facepunch.com/garry/bd829663-f1a0-4db3-8aed-4ad8b3ec4388.png
Allow editing of multiple rects
Make handle resize less sucky
Allow rects to be loaded from json
Cleanup + Rect gizmo testing
Fix motion blur not working, simplify it, make it use the same reconstruction technique as in dynamic reflections, I still don't like it but this gives correctness to it
https://i.imgur.com/YkSiZXY.png