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)
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
Implement joint breaking, break callbacks called on post step, breaking a joint disables the component
Support joint breaking on prismatic, revolute, rigid, spherical
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)
Assume test mode will want rendersystemempty
Right now our tests machine doesn't have a GPU attached, for d3d11 it's fine since this runs over D3D11 Warp renderer, but not on Vulkan.
Change this if we ever do graphics tests on CI.
Running locally our tests pass fine without it
Fix QPainter was null when calling setPen errors
CompileProgress tests (doesn't work)
Fix asset browser file type size
Fix NRE in GenericControlWidget
Add BaseLayout.AddLayout<T>
Add ControlSheet.AddProperty
SerializedCollection elements return attributes of parent
SoundFileCollection doesn't use PropertySheet
VR: Fix vulkan submit, submit depth texture to compositor
VR: Update overlays from the render thread, because SetOverlayTexture might touch vulkan queue
Forward InputData and VROverlay through to Sandbox.Game to preserve compatibility
VR: Minor VROverlay cleanup
VR: Fix VROverlay xml comment
Citizen/animgraph: change the swimming 2D Blendspace from Z/X to Y/X, it was an interesting idea that unfortunately didn't pan out
Re-compile ui backdrop filter shader w/ SPIR-V block
VR: fix LOD rendering, remove bVr from CFrustum::ComputeScreenSize
Citizen/animgraph: made vertical swimming work, it's janky as hell, but at least it's reflected visually; becoming increasingly clear that this state will need custom code on the controller side
https://files.facepunch.com/maxlebled/1b2411b1/2024-01-24%2018-50-19.mp4
Fix izQueryFaceDirections using the max instead of the min distance for face separation
Fix HitPosition for Trace.Sphere https://files.facepunch.com/layla/1b2511b1/sbox-dev_CvSjg1QMpX.mp4
This should probably just be the radius of the input shape, not both
Add Skybox support to Render Tags - good for View Model Camera where we don't wanna render the skybox, or usually anything but things with a viewmodel tag
Do the same for 2D skybox
Can publish textures
Update pull.yml
Fix out of range exception in voice (visemes should probably be put in its own component)
Fix hitposition when sphere tracing against meshes
Rename AssetView to AssetPreview
Rename internal AssetPreview to AssetThumbnail
Delete broken legacy particles
New unified asset preview/thumbnail/video system (cleanup)
Size in OnPreRender isn't optional
Add Pixmap.GetPixel
Texture preview
Add Texture.GetSequenceFrameCount, HasAnimatedSequences
Asset thumbnail render is async
NativeRenderingWidget events
Allow preview to tell the renderer whether it's animated (opt out of video)
AssetPreview can be pixmap based
Consolidate
Paint.Target to Paint.ToPixmap, scoped
Fix crash when accessing sound samples
Add timeout to thumbnail rendering
Add timeout when loading SoundFile
Fix warnings
Draw a line if we can't get sound samples
AssetPreviewWidget async wait nicely
Size renderWidget properly
Fix sphere trace hitposition without fucking it up for capsules
Use new Asset url schema
Native doesn't automatically mount everything from config/addons.json
Menu shouldn't care about local packages/projects - non-editor doesn't load any of that
Remove JumpList - we can try this again when we have a concrete idea of project workflow
Remove "Content Mode", remove skip start screen - all content should be in a project, so why wouldn't you create/open a project
New Game Project -> New Project - these are workspaces for any content really
AssetSystem: Defer scanning new projects until they've all been added, and fix the counter
Remove Change Project - there's not much sanity in trying to reset the entire engine state when we could simply restart the process
-project command line is part of editor bootstrap not engine
Hacky mark all games as inactive on bootstrap
Consolidate project filesystem logic, call native directly instead of saving json and relying on it reading it
File -> Quit prompts unsaved changes
Dirty editor window title when scene modified, add renderer
Move editor only code out of engine Project class
Make sure we still mount content projects on startup
Support opening non-game projects
Batch rebuild content path / update assetsystem on bootstrap
Don't get fucked by removed projects
Don't add inactive projects to filesystem
Put SpeakerVolume in Sandbox namespace
Fix download errors
ActionGraph update, add more geometry-based nodes
Use Either<> type for object inputs
EitherControlWidget
Added a bunch of node types
Some ActionGraph value editing fixes
Update Facepunch.ActionGraphs
Don't load map if map instance is not active
Remove max impulse from jointdesc, it's never used
Support joint deactivation in izabu, this allows ragdolls to break joints, not just joint components
Joint IsActive setter so any breakage can be reset
Get rid of EnableLinearConstraint and EnableAngularConstraint, not supported and dumb
I should probably initialize this!
This is making physics debug draw super slow
Remove shape before checking collision events, removing a shape can generate contact reports so they need to be removed
Delete body after checking collision events
Pulse labelled links too
https://files.facepunch.com/ziks/2024-01-26/sbox-dev_PV4PZ5cpSp.mp4
Catch EditorTool update errors instead of breaking the whole editor
Add Angles.SnapToGrid
Add Gizmo.GetMouseDrag
Add Gizmo.Snap( angles ), CameraTransform, LocalCameraTransform
Just ignore when trying to set nan position
Add Gizmo.Settings.SnapToAngles
Gizmo.Controls.Rotate outputs Angle delta, RotateSingle outputs only a float angle delta
Add rotation snapping
UI: improve gradients by calculating an optimal width for gradient textures
UI: optimal gradient width prefers background size if specified
Add Material.Flags (IsSky, IsDecal, IsTransparent, IsAlphaTest)
Changed how material thumbs render
Model.LoadAsync and Material.LoadAsync should kind of be async
Update Facepunch.ActionGraphs
Fixed node creation menu path list when filtering
Add GameObjectFlags.NotNetworked
Scene.OnEdited, OnSaved don't need to be exposed
Add SceneLoadOptions
Remove multiple editor instance nag
Prefer -editor to -tools
Remove native "Startup Tools"
Don't create native splashscreen pixmap that we don't use
Remove bs "Starting Asset Browser" line
Unused -tool -asset command line
ToolsDll remove dead gameloop code
Pass search paths to external spawned processes resourcecompiler and vfxcompile
Fix downloading cloud assets
Reapply mass override when setting local mass center
Add mass test
Auto-open the node creation menu if no other menu options exist
Rebuild input / output node when editing parameter names
Some physics interface clean up
Dead auto mount vpk code
-outroot has to be specified before
Only need to pass user project search paths & maintain mod names
Fix trailing backslash escaping quoted search paths
Do a better job at keeping mass override applied
Hook up ModelPhysics renderer for prop_physics
Fix m_bForceEnableDebugUtils running always even when we dont have renderdoc or validation layers enabled, triples your perfomance on vulkan
Fix infinite recursion crash with prefabs when the root object has bone proxies
Move ModelEditor.Nodes to game
Add Prop component to engine (health, breakable, gibs)
Read back the window size from the main window the OS created, Windows will clip the size to the desktop if it's too big and we will have unmatching resolution between what we specify in the swapchain and the actual hwnd
ComponentControlWidget: Support dragging in components where there might be multiple of them in a GameObject
Make Widget.ConstrainToScreen more reliable
Merge branch 'master' into vulkan-staging