1,584 Commits over 1,127 Days - 0.06cph!
Disable some commonly bad third party overlays in editor mode - we can finally disable Steam overlay too in editor
Fix infinite recursion crash with prefabs when the root object has bone proxies
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
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
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
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
Each SceneMap has a unique SpawnGroupHandle, fixes crashes with multiple map instances (including 3d skyboxes) in scenes
AssetSystem.CreateResource - create empty json not kv3 since I removed the legacy kv3 path
TerrainEditorTool use EditorTypeLibrary for paint tools
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.
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 map 3d skyboxes lifecycle by making them map components
Offset 3d skybox camera by skybox_reference position
git-blame-ignore dotnet format commit
LineEdit: Enter key blurs the widget
Bounding box editor tool
Add ITerrainPaintTool for easily extensible terrain painting tools
Fix imprecise degrees <-> radians which was causing bad quat <-> euler
Rotation.Angles(): at singularities pitch should always be +-(π/2)
A few more tests around euler angles at singularities
Time out if we can't connect to a host when joining a lobby
Delete all vmat_c except a few required ones - should build correctly on CI since contentbuilder fixes
Registering textures here shouldn't be needed anymore
Less spaghetti on project initialization: only load user projects in editor mode, add & compile built-in first and only error then, remove dead code paths
EditorSplashScreen remove StaysOnTopHint - intrusive to all other OS windows and hides exception dialogs
Bail starting tools if our base projects fail to compile because nothing will work and it's impossible to recover
Actually use the sky_camera offset/angle/scale in native
Delete unused 2d skybox tracking CSceneWorld::m_skyboxes
Restore deleted 3d skybox view layers
Delete SceneCamera.Skybox - this was a stupid way to do it
Add internal SceneSkybox3D, create this from skybox_reference in SceneMapLoader using its own MapLoader
SkyboxMapLoader loads 2d skybox
Sessions aren't bound by IP address
Fix expiration time on session cookies
New project wizard creates a directory in your selected location instead of you explicitly selecting the location
Change EditorWindow.StateCookie so everyone on main gets a sane default layout reset on them when staging is flipped
Unused networking engine events
Delete some unused VR specific stuff from scenesystem
Remove GameResources able to load from keyvalues
Fix asserts/trying to make 0 width&height render targets on startup
TryLoadGameResource catches exceptions as expected, doesn't brick your game if you have a malformed gameresource now
Terrain: Move mode selection to EditorTool overlay, component inspector is settings only
dotnet format
Terrain: Import heightmaps PNG 8bit :( or RAW 8 or 16 bit
Terrain.RayIntersects transforms ray into local space
Move brush list out of component editor, popup menu on brush preview
Terrain: transform local normal by terrain world transform
Editor tools can use SkiaSharp
Add wireframe button to scene toolbar
MapComponentMapLoader: prop_static is never in entity lump
SceneMapLoader: don't create disabled lights
MapComponentMapLoader: Static prop_physics are static
SceneSunLight -> SceneDirectionalLight - consistent with component and native name
Terrain: Brush strength/invert to compute shader
Revert "Imply console apps want rendersystemempty, maybe revisit this in the future if we want them to do any kind of GPU compute"
This reverts commit e9ddbb31c58de3596aeecacae6f1b77d45c2c338.
CI or whatever should opt out of this, Hammer running resourcecompiler
and probably other stuff needs a valid one.
Null check model in AssetVideo
Hammer entity definitions can live on life support in Sandbox.Tools
Terrain size is stored on TerrainData, specify the total world size instead of confusing units per texel
Fix grid axis colors being the wrong way
Use Gizmo colors for grid axis & add SrgbGammaToLinear so the colors aren't fucked
Document ComputeShader, remove obsolete, Dispatch throws exception for bad parameters instead of silently failing
Terrain shader write to depth
Brush preview works again
Use compute shader to modify terrain heightmap instead of shitty interpolations on CPU
Terrain: Use ShadowRenderType
Lighter terrain grid
Implement attributes on ReflectionSerializedObject.SerializedProperty
Move Terrain editor into an EditorTool
ReflectionSerializedObject property SetValue<T> will convert value, catch exceptions
TypeSerializedObject SerializedProperty.TryGetAsObject don't throw if null
Brush settings widget window
FloatControlWidget blurs entry on range slider drag
Only modify terrain on mouse drag
Change brush order, circle first
SceneOverlayWidget updates position when window is moved too
Fixes sbox-issues/#4378
Gizmo shaders display in ToolsVis mode
█▅▆▆▍▍/█▍▆█▌▅ ▅▉█▆▋ ▆▅▇▌ ▄▆▉▄▄ ▋-▍▊-▆_
Fix and tidy up terrain data serialization
Clear QPixmap on create so it's not full of uninitialized data
Compress TerrainData heightmap/controlmap data with deflate, simple rle is probably best
Shadergraph: Transform Normal can output in tangent or world space (default is tangent to match material output)
Don't save the file 9 times everytime in Asset.SaveToDisk
Store TerrainData in a versioned gameresource with custom serialization, so we can reuse it in multiple scenes and not have absurd file sizes