1,061 Commits over 976 Days - 0.05cph!
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 )
Can access friends list from IGameMenu (Game.Menu.Friends)
Throw an exception when Package.Download gets cancelled, fixes #1184 and sboxgame/issues#3677
Tentative fix for rich presence setting steam_player_group to invalid SteamIDs, grouping players incorrectly
Add method to convert Qt::Key to ButtonCode as string
Tools: Add KeyBind widget, intercepts key presses and sets value to last key pressed
Tools: Test using keybind editor for InputAction.KeyboardCode
ServerListPanel: Add Create Game button if we don't find any servers
Update templates
- Use package selector modal instead of replacing pages w/ a map selector
- Use pointer cursor on buttons in main menu
Having a separate repo for templates is starting to annoy me
Don't use Trace.WorldAndEntities in MoveHelper
Use Sound.Listener as a priority in SoundscapeFrame
Give ProjectCreator "Create" button an icon
Update templates (shooter game menu, template descriptions)
Launcher: minor content mode cleanup
Launcher: make a new empty-ish config when opening a config editor
Set the same expandgroup margin in StartScreenHome too
Remove ProjectList ExpandGroup top margin
Set cursor type for IconButton
Add some tooltips to welcome screen
Make Voice.Decode internal
Revert zipball change, doesn't work with LFS / submodules :pensive:
Editor: Use zipball to get rid of git dependency when cloning a project that has a source directory
Convert to entity space if worldspace = false for SBox_GetBoneTransform, make it work serverside
Add support for CBaseModelEntity::GetBoneTransform( bone, worldspace )
Set hostname when creating a game from menu
Get rid of "avataranimated" reference in Avatar.IsAppropriate
Per-Project Launch Configs
Refactor LaunchConfigEditor to be a widget which can target a local project and read/write to its metadata
Launcher: When going through active local projects, check their LaunchConfigs metadata and add them
Add per-project launch config editor to project settings
Show launcher settings on game and map projects, not just game
Update map/game ident to match project when writing new launch configs, don't show useless sheet properties
Add title / body to launch configs page
Add title / body to launch configs page