835 Commits over 670 Days - 0.05cph!
Give eligible panels a score and give it some data to score by, focus the lowest scoring panel, also hook up selection and scrolling
Work on finding panels from delta, fixed not finding an initial focused panel
Add PanelTraversalOverlay (for lack of a better name)
Refactor, add ControllerOverlay, so we can add another overlay for panel traversal selection
VCS: only tick for panels that want mouse input
VCS: fix is-pressed style
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
Don't moan about missing voice input
Process inputs in MenuDll
Remove some direct controller access, use Input.AnalogMove/AnalogLook instead
Scale ControllerInput.GetAnalog by Input.ControllerLookYaw(Pitch)Speed
Scale virtual cursor position movement by delta time, no wonder it felt different on GameMenu
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
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
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
Use stylesheet to style virtual cursor, add ScrollSpeed
Fixed calculation of virtual cursor position
Add basic working virtual cursor using PanelInput.UpdateMouse
Don't revert back to PanelTraversalSystem if analog is empty
Refactor so we can switch between panel traversal and virtual cursor based on input
Start drafting out UI navigation with controller, by traversing panels
Add SteamInput manifest file for deck
At the moment, all it does is make the right trackpad work
Run RichPresenceSystem.Tick in GameMenuDll instead, fixes presence being incorrect while in a game's menu
Run ServerConfig.UpdateFromPackage after ServerInformation gets set, fixes bind collection failing to load in GameMenu
Remove unneeded rich presence setter
Fixed invalid grouping of members in rich presence, need to find out why the server's SteamID can become this
Make gamepad input poll properly in GameMenu
Game.AssertClientOrMenu includes GameMenu, fix Input.GetGlyph not working in GameMenu
Update BaseFileSystem.ReadJson<T> docs
SteamInput: fixed left trigger action being bound to right trigger
Input: fixed AnalogInput being incorrect for right trigger
Would be good if I reflected all use of RequestAsync and not break everything, thank god for unit tests
Http.RequestAsync( string method, string requestUri ) changed to Http.RequestAsync( string requestUri, string method = "GET" ) to match all other methods
This is a breaking change, please update your code (I assume not many people are using this)
Gamepad Support Refactor (#1218)
- No manifest codegen
- Gamepads work again (including Steam Deck)
- Goes against what SteamInput is all about 😢
Rip out manifest codegen entirely
Remove Sandbox.Gamepad
Add Sandbox.GamepadCode
Add InputAction.DigitalAction which maps GamepadCode to something SteamInput can parse immediately
Refactor Input to grab action.DigitalAction
Fix up GetButtonOrigin and glyphs
Update manifest.vdf to use new actions
Only process input actions with a valid gamepad code
Remove Input.ActionSetName, Controller.GetDigitalActionOriginName( string, InputActionSetHandle_t )
Update default manifest again
Fixed controller actions not being reflected serverside
Add rich presence system class which is polled every so often, instead of updating presence from 7 different classes
Fix NRE in ServerDll.UpdateServerDetails if playing locally, my bad
Pass gamemode version tag to ServerList so games can decide what to do with servers that are out of date
GameMenu: load FileSystem.Data/OrganizationData immediately, not just server join
Remove use of CancelWebAuthTicket in WebSocket.Connect, was crashing dedicated servers
Subtract m_nMaxPlayers by m_nBotPlayers so servers show that they're full if they're occupied by bots + players
Editor: If "show start screen" is off, load last opened project automatically
Remove duplicate gamepad codes in common actions
Docs pass / MenuDll typo fix
Fix initial menu presence, as well as presence when disconnecting from a server
Implement ModalSystem.CloseAll, close all modals when killing game menu instance
Make rich presence say playing a game while in its game menu (update to say Menu later?)
When connecting to a server, open its gamemenu and immediately open the loading screen
Cache GameLobby.Data to prevent issues with grabbing lobby info after setting it. Invalidate on lobby data refresh
Probably a better way to do this :anguished:
Update default manifest again
Fixed controller actions not being reflected serverside
Rip out manifest codegen entirely
Remove Sandbox.Gamepad
Add Sandbox.GamepadCode
Add InputAction.DigitalAction which maps GamepadCode to something SteamInput can parse immediately
Refactor Input to grab action.DigitalAction
Fix up GetButtonOrigin and glyphs
Update manifest.vdf to use new actions
Only process input actions with a valid gamepad code
Remove Input.ActionSetName, Controller.GetDigitalActionOriginName( string, InputActionSetHandle_t )
Docs pass for GameLobby, importantly Lobby.ConVars, and inherit docs where possible
Org Info Modal https://files.facepunch.com/tony/1b0711b1/sbox_g2OtLOLYzn.mp4
Revert "Compiled complex with parallax fixes"
This reverts commit 02e13ee057b7394fe7831e732d6eff6f4621b7a5.
Use margin for package selector modal so you can click out of it
FriendCount only counts people playing the game
Obsolete Game.Menu.Friends, add Game.Menu.FriendCount
Add friends list modal w/ Game.Overlay.ShowFriendsList( options )