20,863 Commits over 1,522 Days - 0.57cph!
InteropGen change params to @params
Access dtCrowdAgentParams
Cleanup
https://files.facepunch.com/garry/19a3dacf-466b-4d0e-8e9a-5710131c5b7a.mp4
WIP GameObject.Properties
Proof of concept Dynamic Properties sheet
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_5ewZW6QaZ5.png
Nicer integration of dynamic properties with the Action Graph editor
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_JBs2cwHbhM.mp4
Expose setting properties on arbitrary GameObjects
Nicer dynamic property serialization
Fixed build errors
Rename GameObject.Properties to GameObject.UserData, document
Make TaskSource.MainThread() / TaskSource.WorkerThread() public again
Standardize SceneMap.MapName same way native does, fix world physics when using local world name
Start drafting out UI navigation with controller, by traversing panels
Refactor so we can switch between panel traversal and virtual cursor based on input
Don't revert back to PanelTraversalSystem if analog is empty
Add basic working virtual cursor using PanelInput.UpdateMouse
Fixed calculation of virtual cursor position
Use stylesheet to style virtual cursor, add ScrollSpeed
Refactor, virtual cursor as its own rootpanel so we don't add a panel to every root panel we access
Disable system if mouse is moving at all
Make VirtualCursorOverlay a razor panel
Update SteamInput manifest to include joystick inputs for Menu action set
Hide mouse cursor while we have controller input active
Support processing any number of root panels, make it work in GameMenu
Scale ControllerInput.GetAnalog by Input.ControllerLookYaw(Pitch)Speed
Scale virtual cursor position movement by delta time, no wonder it felt different on GameMenu
Process inputs in MenuDll
Remove some direct controller access, use Input.AnalogMove/AnalogLook instead
VCS: only tick for panels that want mouse input
VCS: fix is-pressed style
Refactor, add ControllerOverlay, so we can add another overlay for panel traversal selection
Add PanelTraversalOverlay (for lack of a better name)
Work on finding panels from delta, fixed not finding an initial focused panel
Give eligible panels a score and give it some data to score by, focus the lowest scoring panel, also hook up selection and scrolling
Decrease block increment size, can get finer selections (i.e PackageCard modal button)
Fix FindPanelsAt never finding more than 1 panel
Remove PanelTraversalOverlay, it looked shit
When enabling VCS, use the mouse's current position
Traverse blocks relative to the screen size, instead of set pixels
Add IControllerInputSystem.Destroy
Store last mouse position, don't run in multiple contexts (sort this out in a better way next) - fixes VCS overlay lingering around
Minor cleanup
Run Input.SetFocus( null ) on IControllerInputSystem.Destroy
Scope UI simulation
Remove context hacks
Pass DoAnyPanelsWantMouseVisible() to ControllerInput, don't call if we don't need input
Only use pointer-events on elements we want to click on for SocialBar
Remove unused code, documentation pass
When looking for an initial panel for traversal, use the mouse position (works w/ virtual cursor)
Remove InputManifestTemplate/GamepadManifestTemplate groups from Sandbox.Game csproj since they don't exist
Don't run ControllerInput.Tick at all if we don't have a controller
Docs for IVirtualCursor
Kill controller input system if we run out of gamepads to use
General cleanup, remove unused ControllerOverlay panel
Add adjustable analog sensitivity for UI
Post-merge fix
Support Alex's scrolling
Fixed action set flip-flopping between Menu and InGame twice a frame :S
Give components an ID, add ComponentList.Get( guid ), serialize and deserialize component references properly
Add backwards compatibility when deserializing component references (find type)
Fix non animated ragdolls not applying physics bones properly
PathSimple unit test
Cleanup
Agents
https://files.facepunch.com/garry/da414070-bc1a-49ec-b39c-974d3b7fa33a.mp4
SceneTabButton: Add "Close to the Right" option, don't hide other buttons, just make them disabled
Fix "could not find ConVar attribute" spam - should just silently set the backing value
Warning -> Trace Unable to determine package
Demote a bunch of vulkan debug logs to verbose only
Holding shift/ctrl disables clearing selection by clicking nothing
Fixed prefab node tree not hiding hidden GameObjects
Temporary gameobjects have a different icon in the hierarchy
Hidden GameObjects don't draw their gizmos
A prefab might not have any light sources, if that's the case, make a dummy object so we can see stuff
Nicer dynamic property serialization
Revert shadow submition refactor, I'll revisit this in a bit
Fix inverse multiselect logic
Add GetPathSimple
https://files.facepunch.com/garry/e369c9d6-54b1-4648-a023-6217ab866cc8.mp4
WIP GameObject.Properties
Proof of concept Dynamic Properties sheet
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_5ewZW6QaZ5.png
Nicer integration of dynamic properties with the Action Graph editor
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_JBs2cwHbhM.mp4
Expose setting properties on arbitrary GameObjects
Add GetClosestEdge
https://files.facepunch.com/garry/7e693949-ffe2-4bb5-8a04-d24469a3b406.mp4
Fix typo in Map.CreateAsync?
Fix NRE in AssetPreviewWidget
Add RootMotion to skinned model to get the calculated motion from animgraph since last frame https://files.facepunch.com/layla/1b0111b1/sbox-dev_WlG9GCnJcc.mp4
Cache off the triangles on generate
RandomPoint, CloestPoint
https://files.facepunch.com/garry/e07dbdff-ba17-4bb9-96bc-62edf81b2031.mp4
Don't actually flag a decal as translucent, makes them render twice since we have a specialized decal layer, on top of that when rendering as translucent it wants a MSAA depth buffer that's missing, so we bind a non-msaa error texture that makes vulkan shit itself
Remove atlas resizing, feels overengineered, way we have adaptive shadow render size makes it feel pointless
Let shadow frusta be calculated entirely on shadowcache, removes redundant calculations and makes the data flow saner, remove bullshit from LightEntry
Add support for clearing rects from shadow atlases properly, queue them, fixes shadows on multicam views and childrens, note that shadow caching will still only happen on children views for now
Gizmo.Select: allow unselect of object selections
Shift allows multi select too but without deselecting
SceneViewWidget.UpdateHovered: Just because we're already selected doesn't mean we can't be hovered, otherwise how will you deselect me
Deselect game object when nothing is clicked
Tidy up AfterUI render stage and use that for after-UI post-processing effects, rename to `AddHookAfterUI`
SceneCamera viewport caps size properly
Bail out of CameraRenderer if no valid viewport
Unused resource glue
Log_Detailed these rendersystemvulkan messages
Fix crash with symlink resident resource reloading
Add `CameraComponent.AddHookAfterOverlay`, supports running post-processing effects after UI is drawn
Foliage: Fix depth alpha tests
Foliage: fmod phase to avoid jittering imprecision at high time/world offsets
Nicer integration of dynamic properties with the Action Graph editor
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_JBs2cwHbhM.mp4
Show mouse cursors inside scene view, wrap them to canvas rather than locking to center, panning follows same direction as other engines
If you preferred the previous panning behaviour there's an option for inverting it
https://files.facepunch.com/alexguthrie/1b3111b1/sbox_MUEzCxyWs7.mp4
Scene view orbit camera: account for mouse X axis, add invert options to editor preferences
sbox-issues/issues/4663
WIP GameObject.Properties
Proof of concept Dynamic Properties sheet
https://files.facepunch.com/ziks/1b3111b1/sbox-dev_5ewZW6QaZ5.png
Fix live unit tests
unit test allow native debug
Add BBox.Grow
Add Triangle.ToString
PhysicsWorld.GetPolySoup
Use recast from c# without navlib
Add convar for toggling version overlay
ComponentSheet: Default to showing actions if no non-actions exist
Fix tests from non fully init engine
PackageManager Mount/Unmount reloads symlinked resident resources
Expose some basic stuff in PhysicsWorld / PhysicsBody etc to ActionGraph
Remove InputActionName struct, InputNodes, decorate original methods with [InputAction], use for InputActionControlWidget
Whine about very old nvidia drivers to the user
Vulkan: Always allow mutable swapchain format
Vulkan: Update swapchain texture spec if overridden swapchain format
videorecorder: convert image format if not RGBA
Add Scene -> Close All, Close All But This (https://files.facepunch.com/devultj/1b3111b1/D9bLtLtQpY.png)
Citizen: small adjustments to WalkFast_N + remade WalkFast_NE
DoF doesn't need to grab depth buffer, we can use the depth prepass (thanks Matt)
Don't need to grab depth for any other post processing effects either (because they don't use them)
Compile shaders
Undo changes to Graphics.GrabDepthTexture to avoid problems
Correctly resolve textures fetched from Graphics.GrabDepthTexture
DOF uses DepthBuffer texture again + clean up a bit
Update DOF post-processing to use new Depth::GetNormalized() instead of accessing non-existent texture
Forgot we're not using #nullable