14,032 Commits over 1,583 Days - 0.37cph!
Swap asset browser button order to annoy everyone
Fix SceneView not using scene maincamera settings
Fix SceneView mouse input
Add basic detection for external scene changes (such as from version control), make a dialog asking the user if they want to load or discard those changes (if they have the scene open) https://files.facepunch.com/tony/1b2911b1/parsecd_Tq3qDQ74Ki.mp4
Update all shaders for good measure
Add nodes for playing / manipulating sounds
Default rendersystem to Vulkan ;) (#1429)
Make Widget.ConstrainToScreen more reliable
ComponentControlWidget: Support dragging in components where there might be multiple of them in a GameObject
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
Move ModelEditor.Nodes to game
Add Prop component to engine (health, breakable, gibs)
Fix infinite recursion crash with prefabs when the root object has bone proxies
Fix m_bForceEnableDebugUtils running always even when we dont have renderdoc or validation layers enabled, triples your perfomance on vulkan
Hook up ModelPhysics renderer for prop_physics
Do a better job at keeping mass override applied
Fix trailing backslash escaping quoted search paths
Dead auto mount vpk code
-outroot has to be specified before
Only need to pass user project search paths & maintain mod names
Some physics interface clean up
Auto-open the node creation menu if no other menu options exist
Rebuild input / output node when editing parameter names
Reapply mass override when setting local mass center
Add mass test
Fix downloading cloud assets
Pass search paths to external spawned processes resourcecompiler and vfxcompile
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
Scene.OnEdited, OnSaved don't need to be exposed
Add SceneLoadOptions
Add GameObjectFlags.NotNetworked
Update Facepunch.ActionGraphs
Fixed node creation menu path list when filtering
Model.LoadAsync and Material.LoadAsync should kind of be async
Add Material.Flags (IsSky, IsDecal, IsTransparent, IsAlphaTest)
Changed how material thumbs render
UI: optimal gradient width prefers background size if specified
UI: improve gradients by calculating an optimal width for gradient textures
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
Pulse labelled links too
https://files.facepunch.com/ziks/2024-01-26/sbox-dev_PV4PZ5cpSp.mp4
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
This is making physics debug draw super slow
I should probably initialize this!
Get rid of EnableLinearConstraint and EnableAngularConstraint, not supported and dumb
Support joint deactivation in izabu, this allows ragdolls to break joints, not just joint components
Joint IsActive setter so any breakage can be reset
Remove max impulse from jointdesc, it's never used
Don't load map if map instance is not active
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
Put SpeakerVolume in Sandbox namespace
Don't add inactive projects to filesystem
Don't get fucked by removed projects
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
Fix sphere trace hitposition without fucking it up for capsules
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 hitposition when sphere tracing against meshes