370 Commits over 1,280 Days - 0.01cph!
Cleaned up some game setting code. Added MoveSetting. Added options for moving a setting up or down in the list. Ensure that when the list is rebuilt the previously selected page stays selected.
Added functionality for setting a description per Game Setting that will show during lobby creation
Ensure description is updated properly from TextEdit
Fixed NRE in GameLobbySettings that occurs when a Choice setting has an empty value (Gunfight)
Clear remembered ConVars (from hotloading) when game loop shuts down. Fixes Facepunch/sbox-issues#2281
Have Bot implement IValid. Catch an exception for max players reached in bot_add and fail silently.
Add opacity support for keyframes
Fixed saved ConVars not being applied on startup as they should be
Merge branch 'master' of github.com:Facepunch/sbox
Add EndGameAsync and improve some documentation
Add global:: to EnsureSufficientExecutionStack statement
Fix Client.FetchGameRankAsync by passing an int into TaskSource, it seems like this int is never used although it may have once been, re-evaluate that later
Merge branch 'master' of github.com:Facepunch/sbox
Ensure that the max players slider in the lobby settings is correctly positioned when initialized
Defer setting values for replicated ConVars received from server info (#464)
* Defer setting values for replicated ConVars received from server info until the ConVars are added from the game client-side. This fixes connecting clients not having replicated ConVar values set correctly (because the ConVar doesn't exist at the time they receive them.)
* Set replicated ConVar values after AddConVar to avoid parent/child ConVar default value mis-match and ensure value is set client-side
* Simplify by just sending the initial replicated ConVar values message after the game assembly will have been loaded
* Fix case where value would be overriden by an old one
Validate valid game setting before loading from cookie
Game Settings now support choices with a Value and a Name so that the actual ConVar value can be separated from how it is displayed in the dropdown box
Merge branch 'master' of github.com:Facepunch/sbox
Hide the entire map field in the lobby settings when Map Select mode is set to Hidden for a game. This fixes it just showing "Map" with nothing underneath in this mode.
Remove HasActive guard for value property on Slider as it prevents value change events when dragging the slider
Set game settings to their default if no override found (for dedicated servers, launcher) in the future we can make it so you can specify game setting values in launcher configs
Use SetProperty to update game settings for other players in the lobby
Use Switch instead of Checkbox in lobby UI for game settings
Make it clearer that ConVars are not automatically created for you
Silent fail handling for game settings deserialization if the game is started by dedicated server or via the console
Lobby Settings (#432)
* Add LobbySettingsPage stub
* Initial version of adding lobby settings (I don't love it, still learning this Qt stuff, v0.0.1)
* Add first iteration of UI for changing settings in a lobby and applying them as lobby data / should auto update for clients to view
* Some cleanup. Don't put lobby settings into seperate tab. Add GameSettingType.Choice (not implemented yet.) Run game setting convars immediately (this seems to set server-side but isn't being replicated??)
* Added support for choices in the settings page
* Some cleanup. Add support for choice setting types in the lobby settings
* Only create all settings if the Game property (package) is set (BaseGamePanel sets it async)
* Improved styling a little for GameSettingsPage
* Add GameSettings dictionary as a property, ensure a blank default and clean up cookie values if the settings have been removed
* Bind GameSettings in GameLobby.html
* Added a button to delete a setting
* Fix typo
* Left-hand scroll pane and add button for settings and tidy up
* Updated to use NavigationView and add EditConVarPage
* Style tweak
* Remove unused code
* Some tidy up and add info explaining how they work and a warning that ConVar.Replicated is preferred
* Change wording
* Change ConVarName description
* Automatically update page names when the Display Name is changed
* Automatically show a default new setting page if there's none existing. Update the page icon automatically based on display type and if it's a new setting
* Remove the big shit delete button and add a context menu on the page item
* Default -> Default Value
* Fixed documentation on FloatSliderProperty/IntSliderProperty and added Step and Format support
* Added GameSettingType.Integer and GameSettingType.Float
* Fixed lobby data for game setting convars being stomped by cookies
* Added GameSettingType.Float and GameSettingType.Integer support to settings page and lobby
* Have the game settings scroll with a max height so they don't end up being overlapped by start game button etc
* Update step and format value for game lobby slider control to match the one in project settings
* Use gamesettings convar for lobbies and various other feedback fixes
* Throw deserialization into try/catch and use ConVar.Server instead of ConVar.Replicated
* Hide away "convar." string prefixes from addon code into Set/GetConVar methods for Lobby so the API is nicer
* Added documentation to GameSetting
* Added some extra doc
Add BindingFlags.NonPublic to SetPropertyObject
Update FloatSliderProperty Minimum and Maximum to be better coupled with the underlying FloatSlider's Minimum and Maximum
PhysicsShape Add/Remove/HasTag methods take strings instead of uint
Merge branch 'physicshape-tag-strings'
Add right click on asset header to give option for copying asset name
Allow [Change] callbacks for ConVars to be non-public
Only call callback for embed lists when they are cleared if it did previously have one value
Added changed callbacks for VarEmbedList (changed callbacks now work on lists of BaseNetworkable types)
Fix NRE in WaterController if PhysicsGroup is not valid
Make TypeLibrary.Create<T>( int ident ) public so we can create types from their (int) ident again
Merge branch 'master' of github.com:Facepunch/sbox
Store old value / new value lists as members to save allocations and only process these lists if the networked list has a callback
Merge branch 'master' of github.com:Facepunch/sbox
Ensure callbacks for networked lists pass a list containing its old values, and a list containing its new
Added GameTask.Yield
Merge branch 'master' of github.com:Facepunch/sbox
Add generic return type to GameTask.FromResult
GameTask.CompletedTask and GameTask.FromResult<T>
Add TaskCanceledException to whitelist
GameTask.RunInThreadAsync (#162)
* GameTask.RunInThreadAsync
* Whitelist System.ThreadStaticAttribute
Audio Device Selector (#151)
* Added audio device selector to then settings menu
Accommodate FOV when calculating camera position / angles for model thumbnails (#147)
* Perfect fit for provided FOV
Remove redundant overload and add extra documentation
Simple Speech API (Limited) (#144)
* Very simple listen method purely with dictation or listen method with a set of possible choices
Co-authored-by: Chloe Marcec <dmarcecguzman@gmail.com>
Ensure caret sanity after setting text on a Label to avoid exceptions in TextEntry after clearing existing text
Merge branch 'master' of github.com:Facepunch/sbox
Manual scoping for lag compensation (#130)
* Manual control of starting and stopping lag compensation
* Change to start lag compensation automatically only before AttackPrimary and AttackSecondary on BaseWeapon (this is when we're most likely to want it if you're using base weapon)
* Have StartLagCompensation return IDisposable so it can optionally be used in a using block and finish automatically
* Entity.LagCompensation static IDisposable. Rename LagCompensation (bool) to EnableLagCompensation and update BaseWeapon + base Player
Fixed typo in bindings_knuckles.json that causes right hand trigger to not function
Trace.Box + Trace.Sphere + Trace.Capsule (#107)
Revert "PhysicsBody.Inertia"
This reverts commit 6f4421fc3f00dd2867c82284b9aa6377eefdcedc.
Restored lag compensation by default for base Player and BaseWeapon