CMapAssetType::CalculateDependencies suppress pointless upconversion of vmaps so we don't spend 30+ seconds doing so on initial load
Early out of CreateToolsTriangleList when there's no runtime buffers but also assert because ideally this should happen
Forward command line between sbox-dev and sbox-launch
Create runtime buffers for dynamically created meshes so they can create trace data, allows them to be scene traced
Launcher only launches a single instance of each project
Forgot to force add this dll
Early error when trying to open an invalid project
Some PredictBestType fixes for operators
Fixed legacy Get Game Object node appearing in node list again
Some local instance node grouping cleanup
https://files.facepunch.com/ziks/2024-02-19/O0b83KRmbo.png
Protect against 0 width/height video modes and assert
CHostedWidget::SizeToParent() don't change the video mode if height() is 0
Context menu text entry cleanup, can edit graph inputs / outputs again
I hate this double launch solution
Rename launcher project
Lock project row button when launching
Add some standard map entity definitions that we have loaders for: prop_physics, prop_animated, env_sky, env_gradient_fog, snd_event_*,
Launcher: creating a new project uses Ident as the folder name instead of Title
Implement calc for CSS, make it so that dynamic units (vw/vh/expressions/etc.) all update correctly
https://files.facepunch.com/alexguthrie/1b1911b1/sbox-dev_ADiqfZ9hI2.png
For sbox/issues/421, sbox-issues/issues/4753, sbox-issues/issues/723
Add isolated CallbackBatch, use it when cloning. Fixes instances when cloning in OnEnabled etc would cause weirdness
Fix component weirdness when cloning disabled objects
Hash view ID to FindOrCreateFrameBufferScratchTexture as well to solve collision when we have multiple views with same resolution, eg with splitscreen
Fix dynamic reflections and AO in viewported views
Add compiled shaders for viewport shading fixes
Texture barriers for SSR in multiple viewports
"Reset to Default" in the editor will look for DefaultValueAttribute, then get proper instance default intead of just bailing
Don't just use ClassName to serialize types in ActionGraph
Fixed Facepunch/sbox-issues#4869
Fix MultiSerializedObject propagating OnPropertyChanged
Facepunch/sbox-issues#4885
Call GameResource.PostReload() after saving to disk
Clears cached scene in PrefabFile
Facepunch/sbox-issues#4885
Add support for CSS `font-smooth`
https://files.facepunch.com/alexguthrie/1b2011b1/sbox-dev_oYg0ytkmSm.png
Set saved gizmo settings way earlier, protect against stomping the settings instance
Fixes sbox-issues/issues/4888
Network Authority / Permissions (#1457)
* Can a connection create objects?
* Send network destroy even if DestroyImmediate is called
* Ownership authority flags
* Let GameObject have [Sync] too (test)
* Reorder enum, add [Expose]
* Change up logic for can create objects - only check if we have a source
* Default CanCreateObjects to true for now (this is current behavior)
* Initial implementatior for ownership authority
* Use NetworkAccessor for changing ownership authority. (Temp? Depending on review) don't use TL for set prop for Sync Vars
* Initial implementation of Rpc authority
* Remove a test log
* CodeGen static array for attributes on a CodeGenerator method/prop now marked as [SkipHotload] and readonly, so they do update when changed
* Make it CanSpawnObjects
* CanSpawnObjects settable only by the host
* Some renaming. Set OwnerTransfer direct on GameObject instead of method on NetworkAccessor
* Make sure CanSpawnObjects is synchronized to clients when set from host via ConnectionInfo
* Default CanSpawnObjects to true for now
* When OwnerTransfer is Request, make actual requests to the host for Drop/Assign/Take ownership and if host approves, then host will send the messages to everyone to take that action. Each message will then validate if was received from host
* Remove this for now, sus is later
* CanSpawnObjects is always true for the host. Early out in NetworkSpawn if local connection can't spawn objects - why bother trying at all?
* NetworkAccessor.SetOwnerTransfer method
* Documentation fixes
* Rename Rpc.HasAuthority to Rpc.HasPermission for consistency
* Owner can always drop ownership
* Allow owner transfer changing from current owner
When adding a collider, update the rigidbody's gameobject transform immediately to avoid offsets
Formalize how Rigidbody attaches colliders, add tests
Deserialize GameObjects as disabled, and enable when all children and components are created
Tweak editor painting to avoid crash
Lauinching
Close context menu on line edit submit
Get rid of legacy code paths in DefaultUpgrader
Don't enable network GameObjects that are not enabled
Don't call Asset.Compile in parallel 🤦
Set GameTransform.LocalScale default so resetting it doesn't set it to zero
SceneTabList: middle mouse destroys scene session
Make shortcuts very obvious by including them in tooltips
Add ability to asset pick a prefab from a GameObjectControlWidget (https://files.facepunch.com/tony/1b2011b1/sbox-dev_o0AQpv1DWV.mp4)
AssetBrowser: Add "Delete Folder" option to Folders
Hotload skip NodeDefinition
Allow deleting parameterless output nodes
AssetBrowser: Can delete assets/directories by hitting delete key with an active selection
Make game resources compile again when saved
Fix NavMeshAgent.SetAgentPosition not working
Add NavMeshAgent.UpdateRotation option, NavMeshAgent.GetLookAhead
ResourceControlWidget allows drag drop cloud assets
Fixed a bunch of navmesh functions not working because I didn't full in ToNav
Test reproducing Facepunch/sbox-issues#4688
Fixed Facepunch/sbox-issues#4688
More property getter / setter fast path tests
Add RenderAttributes.GetMatrix
Save off and restore clipping values before/after drawing box shadows
Should fix sbox/issues/1453
Remove log
When saving a GameResource - reregister it with ResourceLibrary. When Scene/PrefabFile save they create a new GameResource, so the old one needs to be stomped out.
Fix ParticleBoxEmitter not rotating/scaling properly (fixes sbox-issues/issues/4653)
Add ParticleRingEmitter
Change Gizmo.Contol.BoundingBox to new box resize gizmo because this function isn't being used anymore
Splash and Hang Branding
In tools don't demote exclusive fullscreen to cooperative fullscreen, these behave the same way on Nvidia's Vulkan drivers and a game window in a Qt widget acting like it's exclusive fullscreen will make your screen black
Fix NavMeshAgent exception (fixes sbox-issues/issues/4901)
NavMesh.GetRandomPoint does more what you would expect (fixes sbox-issues/issues/4897)
Apply GameTags straight away, instead of deferring
Fix prefab cloning not obeying startenabled, added unit tests (fixes sbox-issues/issues/4871)
Place cursor at the lineedit when not editing (fixes sbox-issues/issues/4898)
Host Sync Vars (#1462)
* NetworkTable.Entry.HasControl test. Separate sending network table changes from main update. Host or Owner can send table changes (only send entries they _control_)
* When using WriteAll always write all regardless of control. Make it so unless YOU control a Sync property you can't physically change its value
* Revert that for now - let people change Sync var value locally as it was before, we can try to find a better way to prevent this later. Complication comes from INetworkCustom
* Remove redundant call
* Let''s have each entry define if it has changes now that each one can be potentially controlled by different clients. Make sure we clear changed flag on entry when reading it. NetworkTable.HasChanges will now return true if any entry we have control over is dirty
* Clarify comment
* Let's call it HostSync
* Prevent actual setting of Sync property, modification of NetList, or NetDictionary if you don't have control over it. Non-owner, non-host can't change the values locally, they _must_ be what the synchronized value is
* We can always set the property if network not initialized
* Default HasControl to true for NetList/NetDictionary in-case not set
Drag references to GameObjects / Components from scene view
https://files.facepunch.com/ziks/2024-02-21/devenv_pNaqhLJEaQ.mp4
Fixed Sync vars on derived component types not working
Basic support for RangedFloat in SerializedObject
SoundEvent's sounds are sounds instead of strings
MinMax to Range, string[] to List<string> in our Resource definitions
Add sound preview button to ResourceControlWidget
GameResource inspector uses new ControlWidgets instead of PropertySheet
SerializedObjects, share type conversion code more
Add SerializedDictionary + unit tests
Add DictionaryControlWidget
Update ClothingEditor to use SerializedObject
Make everything that uses gametags use the same restriction logic
Fix clothing editor sceneobject leaks
Fix broken surface
Tweak GameObject.Clone, so we don't stomp the incoming transform
Lightbinner handle exceeding max envmaps
Fix saving links to the prefab instead of the root object when editing a prefab
Don't destroy particles until they're all dead
Support for tabs in text drawing (#1460)
* Fixes tabs drawing as boxes
* Nicely spaces tabs to line up columns
* Requires `white-space: pre` in razor
https://files.facepunch.com/crayz/1b2111b1/sbox-dev_HbcLhN7N6C.png
Don't update Project.LastOpened when adding it from file
Editor tools can create subtools, move, rotation, scale become subtools
Merge branch 'master' into managed-soundsystem