4,027 Commits over 853 Days - 0.20cph!
Editor.Animate promoted to public
Cleanup, docs, fixed search targeting the current selection - instead reset selection entirely
Rewrite component type selector to support selection categories, animated traversal
https://files.facepunch.com/tony/1b1511b1/sbox_86bKULbb2X.mp4
Show component header icon fallback
Add icon for sound listener
BoolControlWidget: don't propagate mouse press to parent widgets
Can expand/shrink component sheets
https://files.facepunch.com/tony/1b1511b1/sbox_IZ529lK3ch.png
Added path for updating audio listener outside of client gameloop
Add SoundListenerComponent, test sound on Turret
Add DecalComponent.TintColor
https://files.facepunch.com/tony/1b1311b1/sbox_jQtrA8ls2t.mp4
Add DecalComponent - but needs a better way to translate decal, setting its transform doesn't work as expected
https://files.facepunch.com/tony/1b1311b1/sbox_ocEkCIQAYv.png
Add Decal.Place( SceneWorld, ... )
Testing method for creating a decal in scene worlds
Add BaseComponent.GetComponent(s) accessors
Enable MultiSelect on SceneTree TreeView
Testing method for creating a decal in scene worlds
When SceneTree changes scene, cache the selection and try to select those objects again
Fix not being able to drag in prefabs to scene (prioritize local files first)
Don't use file scoped classes for input action cells, ends up codegenning a really shit name for them and makes stack traces worse to read
Editor: Add inline text editing for input action name and group
https://files.facepunch.com/tony/1b0911b1/sbox_Pa9V155XnL.mp4
Editor: Add "keybind" editor widget, instead of manually finding inputs, just press the button you want to use - would be good to have proper trapping in tools soon (?)
Ensure Account.Memberships is not null, cleans up having to validate it everywhere
Groundwork for starting the game without connection to steam servers / our API
AssetBrowser: Only show cloud tab if we're connected
Add a hint to editor window title to dictate if we're in offline mode
UI: Replace content on Home/GameList with a hint if we're not connected to the Api
AssetBrowser: Handle case where we don't get any account memberships (offline mode prep)
Small JumpList refactor, update JumpList when activating game project
- Removed JumpListManager
- Moved all JumpList stuff into Sandbox.Engine
Editor: Cleanup logic for opening last loaded project - remove unused code, and lastprojectopened cookie
Add adjustable analog sensitivity for UI
Kill controller input system if we run out of gamepads to use
General cleanup, remove unused ControllerOverlay panel
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
When looking for an initial panel for traversal, use the mouse position (works w/ virtual cursor)
Remove unused code, documentation pass
Only use pointer-events on elements we want to click on for SocialBar
Pass DoAnyPanelsWantMouseVisible() to ControllerInput, don't call if we don't need input
Scope UI simulation
Remove context hacks
Run Input.SetFocus( null ) on IControllerInputSystem.Destroy
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
Traverse blocks relative to the screen size, instead of set pixels
When enabling VCS, use the mouse's current position
Remove PanelTraversalOverlay, it looked shit
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
Check to see if an asset gets deleted from explorer - and mark it as deleted in the asset system
Update asset browser list on content.changed
Fix tooltips not being visible in the main menu, removed unused main menu style
Look for .sbproj in DownloadCloudProjectAsync instead of .addon
Check for valid cref attributes
Play around with inertia easing
Add ViewModelSetup.InertiaDampening property
Remove debug log :flushed:
Part of inertia w/ dampening (aim_yaw_inertia, aim_pitch_inertia)
Merge branch 'main' of sbox-gunfight
Editor: set gamemode to CurrentGame, loading map manually / from hammer should use active game
Editor: Add Min/MaxLength to ProjectConfig.Title to match asset manifest spec
Editor: Add Project.Config.Title to review wizard
Editor: check for validation attributes on review wizard page, can't continue if it fails