9 Months Ago
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