1,239 Commits over 1,341 Days - 0.04cph!
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
Ensure we properly network ownership changes during network orphaned actions
Keep project loading stuff together and make sure we load initial collision rules after project settings file system is mounted (Fixes Facepunch/sbox-issues#5739)
Closes Facepunch/sbox-issues#5566
Throw exception when sending RPC on non-networked Game Objects (Closes Facepunch/sbox-issues#5504)
Fixed potential NRE in AudioListener component when scene camera isn't valid (yet)
Fix overlapping Reset to Default on ControlSheet with Reset Transform context menu. Add individual reset Position/Scale/Rotation on Transform context menu (Fixes Facepunch/sbox-issues#4867)
Fix issue with new local instance on "local" package to do with small network files
Fixed logic for motion enabled and root only networking
Network body type as well
CustomEditorAttribute now orders by number of parent classes so most relevant editor is always found. Resolves Facepunch/sbox-issues#5647
Merge branch 'master' into net-model-phys
Reapply changes from old branch
Remove from interpolation system on GameObject destroy
Call TransformChanged() once again in InterpolateFixedUpdate
Clear pending updates in SceneNetworkUpdate too
Make sure we use TargetLocal in any transform changed callbacks called from within interpolation phase to fix physics bodies using wrong values. Add internal InterpolationWorld getter in GameTransform and use that in ModelRenderer OnTransformChanged for updating scene object position (fixes broken interp.)
PhysicsWorld.CollisionRules Refactor - Project Settings Small Network Files Support (#1604)
* Add PhysicsWorld.CollisionRules getter. Delete ServerConfig. Update collision rules json on world if hash changes before physics step. Project Settings (.config) are networked via Small Network Files - can react to changes
* Do GetHashCode this way
* Initialize CollisionRules
* Handle small network files from different file systems this way?
* Fix
* Fix documentation
* Reset config files
* Kind of genericize SmallNetworkFiles - push / add / remove files from it externally - mount its MemoryFileSystem externally as well to desired file system
* Fix - but obviously it can't be done this way it's absolutely awful
* Add all files from network when mounting on client side
* Method name update
* Remove some duplication
* Cleanup
* Fix inverted condition
* Unnecessary arg
* ToHashCode
* ReadWithFallback will return new T() if package is null too
* Store CollisionRules from Project Settings in ProjectSettings static class - update it when project settings change. Physics worlds using this reference should update automatically
* Call ProjectSettings.Reset in ResetEnvironment
* Clean up
* Swap these
Call ProjectSettings.Reset in ResetEnvironment
Store CollisionRules from Project Settings in ProjectSettings static class - update it when project settings change. Physics worlds using this reference should update automatically
ReadWithFallback will return new T() if package is null too
Add all files from network when mounting on client side
Fix - but obviously it can't be done this way it's absolutely awful
Kind of genericize SmallNetworkFiles - push / add / remove files from it externally - mount its MemoryFileSystem externally as well to desired file system
Do GetHashCode this way
Initialize CollisionRules
Handle small network files from different file systems this way?
When deserializing a GameObject create components in a try/catch and log an error if it fails. If no component could be created, add a missing component. Fixes not being able to open a prefab if there's an error in the constructor of a component. Closes Facepunch/sbox-issues#4397
Add Package.FileSize (MB) ( Closes Facepunch/sbox-issues#4908 )
Add PhysicsWorld.CollisionRules getter. Delete ServerConfig. Update collision rules json on world if hash changes before physics step. Project Settings (.config) are networked via Small Network Files - can react to changes
Ignore packets from non-host until we're fully connected ( Fixes Facepunch/sbox-issues#1595 )
When calling NetworkSpawn we break from prefabs in all of our ancestors ( Fixes Facepunch/sbox-issues#5046 )
Add Priority to CodeGeneratorAttribute - allows you to specify priority. Higher priority means the target method/property is wrapped first.
Check valid scene in SceneNetworkSystem message handlers
Don't interpolate when setting local transform within fixed update if the GameObject isn't enabled. Fixes trying to interpolate to initial position when cloning GameObjects in fixed update, but really we need a way to say "was the game object created this frame" and if it was then don't interpolate.
Clear interpolation properly and don't apply new interpolation if transform update received over network with clear interpolation flag
Another minor fix
Flush network updates before send RPCs (#1594)
* Flush network updates before send RPCs
* Keep track of potential pending network updates to flush for RPCs
* Make sure to unregister for update after sending
* Add some documentation
Make sure to unregister for update after sending
Keep track of potential pending network updates to flush for RPCs
Flush network updates before send RPCs
Simplify InterpolationBuffer a little bit (internal API)
Disable interpolation during certain initialization callbacks for components