983 Commits over 1,218 Days - 0.03cph!
Add single Connection overloads
Same logic for static Rpcs
Update documentation
Add recipient filter struct, type, and Rpc.FilterOnly and Rpc.AllExcept methods
Update documentation
Change filtertype options
Move to Connection.Filter. Can pass optional filter to Broadcast. Use this for Rpcs with current filter.
More docs
Ensure can't use different RPC attributes together, doesn't make sense
Add some more documentation to the other RPC attributes
Implement MethodArguments attribute, use it for UnicastAttribute ensure that first parameter is Connection
Cull after, ensure move direct to last tx if query out of time but entries remaining
Restore backward compat LerpTo
Some extra docs + let's call it Query to match the other class
Test
Clean up - use TransformInterpolate class
Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
Fix to allow interp property to be set by GameObjectHeader
Serialize the interpolation bool with GameObject
Combination of fixed update interpolator and networked interpolation buffer. Working nicely
Combination of fixed update interpolator and networked interpolation buffer. Working nicely
Serialize and Deserialize Scene properties such as Time Scale, Fixed Update Frequency, Threaded Animation... joining clients will now have correct values for the Scene. These don't replicate when changed after that though. Fixes Facepunch/sbox-issues#4483
When creating networked object from remote (networked), wrap Deserialize and NetworkSpawnRemote in CallbackBatch so that _net is initialized before OnAwake is called. Fixes Facepunch/sbox-issues#4950
Use StringTable.Remove instead of StringTable.Entries.Remove when removing Connection from ConnectionInfoManager. Fixes Facepunch/sbox-issues#4983
Test
Clean up - use TransformInterpolate class
Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
Fix to allow interp property to be set by GameObjectHeader
Serialize the interpolation bool with GameObject
Specify in documentation that NetPermission.OwnerOnly works the same as NetPermission.HostOnly for static actions.
Fixed reading String Table snapshot that has an entry with 0 elements throwing an exception. Instead, ByteStream.ReadArray should return null (empty span) if it has a length of 0. Added a test to prove the bug. Fixes Facepunch/sbox-issues#5357
Serialize Component FullName instead of ClassName. Fixes cases where two components with the same name exist in different namespaces, sometimes the wrong one will be serialized. Fully backwards compatible. Fixes Facepunch/sbox-issues#5331
Test
Clean up - use TransformInterpolate class
Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
Fix to allow interp property to be set by GameObjectHeader
Serialize the interpolation bool with GameObject
Serialize the interpolation bool with GameObject
Fix to allow interp property to be set by GameObjectHeader
Hook up Interpolation enable/disable from Inspector. When Owner calls ClearInterpolation, set a bit on the update msg to have other clients do so as well. Hook up Network.Interpolation and Enable/DisableInterpolation() on the accessor.
Can't modify transform if we're a network object root and a proxy - we must stay true to network transform target
Test
Clean up - use TransformInterpolate class
Clean up - use TransformInterpolate class
Fixed NetPermission not working for static Rpcs (Fixes Facepunch/sbox-issues#5188)
Fix failing test, use float.PositiveInfinity not -1
NetList implements IList, IList<T>
NetDictionary implements IDictionary, IDictionary<TKey,TValue>
Avoid collection modified error in NetworkPrune (Fixes Facepunch/sbox-issues#5280)
Temp comment out this line to fix tests
Object Snapshot Refresh (#1500)
* Initial commit
* Component id + prune those for refresh as well
* Serialize id properly
* OnRefresh
* Fix refresh for bones
* Revert comp ids on this branch
* Use Id not __id as that is what was settled with for Component Ids
* When a component is added to a GameObject after it has been network spawned, and it has Sync vars we should register them with the network table
* Don't do on the root though save that for the multi-comp PR
* Include latest table snapshot with full refresh. Update to support __guid
* Undo this bit
* Added Connection.CanRefreshObjects permission (def: true)
* Add checks for CanRefreshObjects to Network.Refresh() and when OnObjectRefresh is called
* Register properties recursively when sending network refresh or receiving one
* Test to re-register Sync props after Network.Refresh
* Make docs clearer
* If a Component isn't valid then just set the property anyway for a Sync var
* By default, clients (except host) can NOT refresh network objects. Host can change this with Connection.CanRefreshObjects
* Some additional validation checks
* Better logic
* Fix issue with nested types not having correct identity hash for wrapped property codegen
Fix NRE in GraphInputNodeType.GetPath
Inflate heightfield query cell bounds by 0.5, fixes terrain collision
Fix terrain collider not updating on heightmap import
Terrain collision is per triangle again instead of per cell, should be 100% accurate https://files.facepunch.com/layla/1b1911b1/sbox-dev_bZpdwNGM3P.mp4
Vulkan: Fix validation errors with MSAA disabled, this should fix a lot of crashing problems for people playing without MSAA
Actually set D_MSAA combo on depth_downsample
Fix hair blue line
Scene.Load ShowLoadingScreen actually works
Update avatar scene
Open avatar scene when you click the avatar button
Rework terrain casting and sweeping
Only clear contacts on tag change if the contacts should have no interaction
Use faster _aligned_malloc in physics system
Tweak citizen eye ao
add compilled avatar scene (!)
PanelComponent uses internal enable, disable, update
Temporary fix for drag executing multiple times in one frame
Expose render settings to tools
https://files.facepunch.com/garry/0c9677be-c880-4ac5-8976-3c69143c9f5b.png
Compile fix
Max 8x msaa
Fix deserializing ActionGraphs in Menu context (#1506)
Nicer test for if nodes are operators
OnDestroyInternal calls OnDisabledInternal instead of OnDisabled
Reset panel parent before deleting it
Include panel parent in hash, fixes panel not rendering when parent is disabled and enabled
Don't flag SceneObject and SceneModel as ESceneObjectFlags.IS_OPAQUE, the materials should dictate it, fixes translucent materials drawing in opaque passes (& drawing twice)
Messed with input action panel dialogs, fix Facepunch/sbox-issues#5232
Fixed delete prompt having no content
Fixed editing input action group not showing visible changes until re-opening project settings menu. Fixes Facepunch/sbox-issues#5235
Better warning if we can't find ITagset
Fixed ManualHitbox.HitboxTags being uneditable in the inspector (fixes Facepunch/sbox-issues#5231)
Don't give gizmo mouse focus when it orbit mode
Check if aaquality is a valid enum, users are likely to have outdated settings
ModelCollider uses mass and damping properties from model physics parts
Change Json.PushNodeLibrary() to NodeLibrary.Push()
Call NodeLibrary.Push() instead of Scene.Push() if HostScene is null
Fixes Facepunch/sbox-issues#5244
Remove unused
Remove buttons
Show icon if item has alternates
Clothing container stores height
SkinnedModelRenderer stores animgraph params, applies them OnEnabled
CitizenAnimationHelper - make Height nullable
Height option on avatar, can mess with and annoy citizen
Normalize clothing before applying
Reset input config in menu
Remove unused
UI system gets game buttons when no game is loaded
VSync menu option
Can switch between variants
Merge branch 'master' into snapshot-refresh
Fix issue with nested types not having correct identity hash for wrapped property codegen
Some additional validation checks
By default, clients (except host) can NOT refresh network objects. Host can change this with Connection.CanRefreshObjects