1,298 Commits over 1,371 Days - 0.04cph!
Only do parent rpc if we're network root
Test trying to reduce packet sizes a lot
Branch for experimenting and fucking around with networking w/ diagnostics
Make net_debug work in game
Remove queue system - make minimumState Snapshot instead of Connected for broadcastraw
Initial commit test
Make it not dumb
ToString override
Add name for debug
Output addr
Draw some of the info with gizmos - tho doesn't render in non-editor mode rn
Print network info cmd
net_info includes own connection
Make GetStats internal for now - could be useful public later
Use display name
Make GetStats internal for now - could be useful public later
net_info includes own connection
Draw some of the info with gizmos - tho doesn't render in non-editor mode rn
Initial commit test
Make it not dumb
ToString override
Add name for debug
Output addr
Initial commit test
Make it not dumb
ToString override
Add name for debug
Output addr
Prefab instances must be updated to have at least the tags specified in their prefab (Fixes Facepunch/sbox-issues#5729)
Fixed not being able to edit these advanced networking settings in prefab editor - working around NetworkAccessor ref struct
Let's remove these exceptions - let us try to call RPCs on components that don't have a networked object root, as long as a GO and Component exists on the other end with those ids, we should allow it
Initial commit
Call flush here
Don't set to connected until Activate
Undo that
Flush for source here too
Only queue messages after Snapshot (otherwise ignore) and send when Connected. Add new docs to broadcast
By default queuedUntilState is null
Remove debug logs
Use new ByteStream( data ) instead of create w/ length then write
Optimization to remove queues when no longer required (cheers Ziks)
Optimization to remove queues when no longer required (cheers Ziks)
Use new ByteStream( data ) instead of create w/ length then write
By default queuedUntilState is null
Only queue messages after Snapshot (otherwise ignore) and send when Connected. Add new docs to broadcast
Flush for source here too
Call flush here
Don't set to connected until Activate
Check if sequence contains elements
Remove BytePack.ISerializer from Connection for now - need to solve something first
Initial commit for Network Priority for Network Objects. The idea is that you can mark a networked object as Low, Medium or High (default) network priority, this will dictate how frequency updates are sent out about that object.
BytePack.ISerializer implementation for Connection. Also make sure we clear Connection._mockConnections on ResetEnvironment because I think this dictionary would never clear otherwise. Remove long-time unused net_lerptime ConVar.
Byte Pack Convert - Networked GameObject, Component, GameResource References (#1618)
* Add add IBytePackConvert to a class to specify how it should be serialized/deserialized with BytePack (similar to IJsonConvert). Implement for GameObject.
* Add IBytePackConvert support to Component and GameResource
* We should be able to null these out
* Some comments on ConverterPacker to describe its use
* Let's move it out of Sandbox and call it BytePack.ISerializer - it won't be exposed to public API (for now?)
* Makes sense to rename to SerializerPacker so it matches ISerializer
* Explicit implementations of BytePackRead and BytePackWrite means we can have these non-public
* Add test for BytePack.ISerializer with MySerializedClass
* Some minor doc change
* Tidy
Some comments on ConverterPacker to describe its use
Let's move it out of Sandbox and call it BytePack.ISerializer - it won't be exposed to public API (for now?)
Makes sense to rename to SerializerPacker so it matches ISerializer
Explicit implementations of BytePackRead and BytePackWrite means we can have these non-public
Add test for BytePack.ISerializer with MySerializedClass
We should be able to null these out
Add IBytePackConvert support to Component and GameResource
Add add IBytePackConvert to a class to specify how it should be serialized/deserialized with BytePack (similar to IJsonConvert). Implement for GameObject.
Only serialize NetworkMode, NetworkInterpolation, NetworkOrphaned and OwnerTransfer in GameObject.Serialize if they are not their default values
Fixed static Authority RPC checking permissions against the wrong attribute and messages should be sent to the host and not broadcast
Check index is >= 0 or <= Count when using ObservableCollection<T>.Insert in NetList - otherwise use Add instead
Inspector Advanced Network Settings (#1617)
* Start adding support to edit Network Orphaned and Owner Transfer options in Inspector (visible when Network Mode is set to Object) https://files.facepunch.com/conna/1b0311b1/sbox-dev_I7Fk7tfs6K.png
* Make sure NetworkOrphaned and OwnerTransfer modes get serialized / deserialized
* Move over to setting NetworkOrphaned/OwnerTransfer on the GameObject directly (with multi-select)
* Move out to its own widget - this is gonna be a button that drops down for advanced network settings
* Adv network settings button next to Network Mode in inspector - opens drop down menu to set net orphaned mode / owner transfer mode
* Store current val outside scope
* Modify style
* Add RadioSelect widget for use with advanced network settings as it makes sense ( https://files.facepunch.com/conna/1b0911b1/sbox-dev_Ej9Kk8WU3y.mp4 )
* Disable the option to open the menu if NetworkMode is not Object - no point allowing to change these settings for objects that arent networked