522 Commits over 1,461 Days - 0.01cph!
Instead of silently failing throw arg exceptions - fix internal events not having correct params (#1003)
Add GameEvent.Server.ClientJoined and GameEvent.Server.ClientDisconnect events
Merge branch 'master' of github.com:Facepunch/sbox
Error when compiling if event listener method has incorrect params based on MethodArguments attribute (#992)
* Initial commit
* Nicer error
* Use an error id thats not used
* Use full name when getting attribute so dont process this for some other random attribute with the same name
* Apply to any attr
* Change error title
* Remove unused using statements
Move game specific events to GameEvents, keep Event.Hotload and Event.Debug.Overlay, mark others obsolete (#993)
Fix System.Collections.Concurrent not being supported
Fix mimic bots not copying player's action inputs
Merge branch 'master' of github.com:Facepunch/sbox
Compile shaders for a project after importing it
Merge branch 'master' of github.com:Facepunch/sbox
Add Sandbox.Internal.GlobalGameNamespace to global namespaces for csproj for libraries
Merge branch 'master' of github.com:Facepunch/sbox
Library minimal project sets HasAssets to true by default + expose these options during project creation for libraries (let libs contain assets)
Merge branch 'master' of github.com:Facepunch/sbox
Throw error when [ClientRpc] is added to invalid methods (not an Entity type, or EntityComponent type, or static method)
Merge branch 'master' of github.com:Facepunch/sbox
Allow any Entity type to be a [ClientInput]
Merge branch 'master' of sbox
WIP: ShaderGraph Comments (#907)
* WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4
* Add select color choices for comments
* Add description field too for tooltips
* Jiggle position and reset each update to force a redraw and update hitbox (temp)
* Snap to grid on resize
* Let static RPCs be nested in other static classes
* WIP Shader Graph Comments (some funky QT stuff going on though with GraphicsItem?) https://files.facepunch.com/conna/1b2211b1/sbox-dev_hfZT4FhruD.mp4
* Add select color choices for comments
* Add description field too for tooltips
* Jiggle position and reset each update to force a redraw and update hitbox (temp)
* Snap to grid on resize
* Call PrepareGeometryChange when resizing
* Hide Comment Node, add seperate Add Comment option always on top
* Update colors + add new one
* Show description inside the box
* Selecting a comment normally will automatically select any nodes inside of its bounds
* Better selection handling for nodes inside
* Added layla's resize stuff + KISS approach to selecting children. click the box selects whats inside.
* Comments take priority for Property display
* Deselect current nodes when pressing on comment if not already selected
* Use LeftMouseButton instead coz it exists and it's nicer
* Always keep inner nodes selected (check last mouse down)
* Remove drag indicator from comment as not needed now
* Comment UI tooltip updates when title/desc changed
* When dragging a comment node on top of another comment node, alter its z index so its on top of that one
* Greatly increase the max comment node size
* Fix layering
* Better layer system + normalize layers
* Can just drag a comment node to select and drag its contents too. Double click a comment node to select only the node itself
Fix predicted network and predicted local swap. Only store and restore predicted child networkables if we should based on network / variables flags
Restore functionality to remember ConVar values between hotloads. Don't remember values if the ConVar isn't our host type
Move ConVar generators to ConVar folder. Add ConVar.Engine file to generate backing field + set underlying ConVar value for tool ConVars. Don't do any generation for engine ConVars if we aren't a tools package. Similarly, don't do any generation for other ConVar types if we _are_ a tools package.
Merge branch 'master' of github.com:Facepunch/sbox
Remove ConsoleSystem.HasSwitch. Make CommandLine internals visible to Sandbox.Server
Add ConVar.Server + ConVar.Client generators so setting these properties from their respective realms will update underlying ConVar
Update ConvarReplicated to match ConVar.Menu/ConVar.ClientData naming for consistency
Update generator class names for consistency
Add ConVarClient/ConVarServer visit property calls to worker
Don't set ConVar value from game setting default if we have a command line switch
Fix commented out logs so we can use them in future
Remember values from hotloads again (for now)
Comment out RememberValue again for now until I have a solution
Merge branch 'master' of github.com:Facepunch/sbox
ThreadStatic tag builder in Trace.From. Todo: look into thread safety for traces(?)
Merge branch 'master' of github.com:Facepunch/sbox
Let static RPCs be nested in other static classes (correct branch this time)
Comment explaining what's going on - note to self
Seemingly fixes odd lag compensation rewind tick offset. Seems to have perfect lag compensation results even with 300 fake ping - I need to test this in a real environment though
Merge branch 'master' of github.com:Facepunch/sbox
Use Entity.FindByIndex instead of Entity.All.FirstOrDefault in OnNetMessage when finding entity
Fully purge any RPC history with tick less than current tick when receiving new net message
When an RPC is called within a predicted context with a To target, if the local client is a recipient call the base function and remember for Prediction (fixes sboxgame/issues/issues/2935)
Supporting INetworkSerializer types as RPC parameters
[Predicted] Support for BaseNetworkable and Components (#794)
* Initial commit
* Iterate through BaseNetworkable properties too
Fixed Screen.GetOrthoRay and fixed SceneCamera.GetRay (when the camera is ortho)
Merge branch 'master' of github.com:Facepunch/sbox
This should fix an issue where switching pawns could sometimes break inputs
Skip input data if we encounter a component that no longer exists (should fix issues where client sends input for a component that the server has since deleted)
Fix read past stream error when using [ClientInput] on properties with unsupported types and instead log a warning
Add Saved Game styling for new lobby
Merge branch 'master' of github.com:Facepunch/sbox
Render Tags (#758)
* Initial commit / backup
* Copy entity tags to scene object on initial/change, and ensure light entity's sceneobject is actually the right one
* remove unused HasTag overload
* Support "world" tag to render only or exclude static objects and hammer geometry
* Typo
* Include/exclude sunlight and other lights according to set tags
* Copy tags to sceneobject on create, and update when tags added/removed from entity. support lights
* Let's respect the camera's exclude / render tags in HighlightRenderer
* Add tag checks in DrawSceneObject too
* Remove unused GetTags overload
* Remove unused
* ITagSet, SimpleTagSet. Have camera use SimpleTagSet, have sceneobjects use SceneObjectTags
* GetAll ->TryGetAll. Use HasExclude/HasRenderTag when adding tag
* Only ITagSet is a public interface, hide everything else away
* Fix sillyness
* Tags property
Client Input Components (#747)
* Initial commit
* Documentation for ClientInput hints that it can also be used on ClientInputComponent
* Allow any component, remove ClientInputComponent
* Copy component values best we can in MimicBot
Component RPC Support (#744)
* Component rpc initial test
* Reset current component id on shutdown. Move net ident write to RpcWriteIdent. UpdateComponentId -> AllocateComponentId
* Backwards compat
* Use temp StartRpc2/SendRpc2 names until next pain day
Duplicate asset option in context menu for assets in asset list
Add DamageInfo.WithDamage
Merge branch 'master' of github.com:Facepunch/sbox
Merge branch 'master' of github.com:Facepunch/sbox
Set Game.WorldEntity on client too
Merge branch 'master' of github.com:Facepunch/sbox
Check if package is null before creating the PackageCard
Keep current map if it's valid for MapSelect.Hidden
Don't render packages that aren't valid
Lobby.ValidateMap will ensure the map is set to one that is valid for that game package
Validate map before starting game and when loading new game info
Try map list if no valid tagged map
Merge branch 'master' of github.com:Facepunch/sbox
Saves Games MVP (#722)
* Initial commit
* Add support for SavedGames package meta using SavedGameSettings class
* Start trying to show saved games in lobbies. Add simple project settings page
* Add Metadata class (extend dictionary, add some methods so don't have to deal with JsonElement bs).
* Add SavedGameCard, SavedGameRow and update SavedGames. Display them all. Move GetSavedGames to package(?)
* Fixed paths
* Simply page in project settings. Add map dependent option.
* Automatically clear current saved game if selecting a different map
* Update current map to one dictated by the current saved game
* Add CachedSavedGame and GetSavedGame( string title )
* Invalidate cached saved games for a package when a game is saved
* Some cleanup - don't cache (for now)
* Use a file watcher and only update saved game file cache when a new one is added or removed
* Remove unnecessary selection border
* Clear current saved game selection when changing target gamemode
* Auto update map lobby to saved game map if map dependent - alter SavedGames buildhash to rebuild if any saved game metadata changes
* Rename
* Early out of metadata is null (dont render)
* Add MapPackage to condition
* Auto update map when selecting Saved Game card regardless of if project is map dependent
* Set correct map dependency value in saved games page at start
* Automatically clear selected saved game if it is now invalid (version difference, doesnt exist)
* Casing consistency
* Some refactoring and allow lobby owner to specify a Target Saved Game Name in the Server Settings. Games can choose to use this hint when saving to decide on a save name
* Fixed name
* Auto format saved game file names
* Use StringComparer.OrdinalIgnoreCase for Metadata class
* Further refactor
* Fix casing
* SavedGame class. Merge .meta & .save. Remove option to set name of saved game in lobby. Other stuff.
* Internal deserialize
* Rename some methods to avoid confusion with the byte[] data
* SetData methods that make sense
* Throw an exception if trying to save a game with no data
* Added SavedGame.Read and SavedGame.Write utility methods
* Added SavedGame.GetFileName
* Added SavedGame.Time (returns DateTime when it was last saved)
* Remove unused using statements
* Some PR changes
Comment out unknown command or convar log
Merge branch 'master' of github.com:Facepunch/sbox
If switches are defined in command line, respect them when creating a ConVar
Fixed writing null strings
Merge branch 'master' of github.com:Facepunch/sbox
Clear buttons and AnalogMove for DevCamera
Make Input.Clear internal as it's confusing (and server-side only). Update ThirdPersonCamera to use ClearButtons
Merge branch 'master' of github.com:Facepunch/sbox
Add OriginalViewAngles to Player
Merge branch 'master' of github.com:Facepunch/sbox
Use TryGetMeta instead of being a nob
Merge branch 'master' of github.com:Facepunch/sbox
Ensure custom selector properties are reset when new project is selected + fix for QWidget error if Update is called at end of async FetchPackages method but widget is no longer valid
Updated the Project Page to use game selectors for Game Support, Parent Game and Target Game instead of having to manually enter semi-colon separated values
When OnTagAdded or OnTagRemoved is called, the passed tag is always lowercase. Documentation for these methods updated to explain that for clarity.