- No longer passes `NetworkConnection` on Client
- Use `NetworkClient.connection` within your event hanlder
This is only breaking for users that assigned their own events to OnClientAuthenticated in the inspector. Everything else related to an Authenticator works the same with no changes needed because nearly all Authenticator mechanisms are private.
Deprecating would be worse than not in this case, since custom user-made handers would be the far uncommon case as far as I know.
* Obsoletes NetworkConnection param in client callbacks
- Use NetworkClient.connection instead
* fixed comments
* fixed more comments
* fixed more comments
* Restored original calls to virtuals with pragmas
* Call both old and new methods where possible
* added comments
* updated deprecated date
* fix parameters
* fixed examples
* comments
* NetworkTransform Improvements Reeeeesubmission
1: Optional boolean to allow onlySyncOnChange.
2: Checks if pos/rot/scale changed, if not, sends the value as null (1byte)
* NetworkTransform Improvements +defines
1: Optional boolean to allow onlySyncOnChange.
2: Checks if pos/rot/scale changed, if not, sends the value as null (1byte)
Contains the bundle of latest NT adjustments from the squad.
#3013#3021#3019#3018
Along with a fix for applying latest snapshot, if it exists, before applying local data.
#3024
* NetworkTransform smart sync.
Checks if pos/rot/scale changed, if not, sends the value as null (1byte)
So if someone has rotation and position turned on, but just rotates around Y, they save almost an entire pointless Vector3 position being sent.
- Again, majority of credits to Ninja.
* NetworkTransform smart sync. B
Adjusted to default(Vector3?)/Quat as requested.
Checks if pos/rot/scale changed, if not, sends the value as null (1byte)
So if someone has rotation and position turned on, but just rotates around Y, they save almost an entire pointless Vector3 position being sent.
- Again, majority of credits to Ninja.
* NetworkTransform smart sync. C
Line break added at end of file? as requested.
Adjusted to default(Vector3?)/Quat as requested.
Checks if pos/rot/scale changed, if not, sends the value as null (1byte)
So if someone has rotation and position turned on, but just rotates around Y, they save almost an entire pointless Vector3 position being sent.
- Again, majority of credits to Ninja.
Added NetworkTransformChild, set target as Turret
Adjust NTC and NT variables
Dragged ProjectileMount and Spot Light into Turret, so they all move together.
Added RotateTurret code
Updated current CmdFire to use projectileMount.rotation
* onlySendOnMove for new NetworkTransform
Majority of credits to Ninja.
Check comments, tooltips, and messages us if further clarification needed.
* onlySendOnMove for new NetworkTransform B
Majority of credits to Ninja.
Check comments, tooltips, and messages us if further clarification needed.
* onlySendOnMove for new NetworkTransform C
- added defines by request, to easier revert or disable new addition.
Majority of credits to Ninja.
Check comments, tooltips, and messages us if further clarification needed.
* onlySendOnMove for new NetworkTransform D
- added defines by request, to easier revert or disable new addition.
- added cachedSnapshotComparison by request.
- adjusted default variable and buffer check + thoroughly tested.
Majority of credits to Ninja.
Check comments, tooltips, and messages us if further clarification needed.
* onlySendOnMove for new NetworkTransform E
- code style => && adjusted as requested
- added defines by request, to easier revert or disable new addition.
- added cachedSnapshotComparison by request.
- adjusted default variable and buffer check + thoroughly tested.
Majority of credits to Ninja.
Check comments, tooltips, and messages us if further clarification needed.
* Optimised example game textures.
The 6 skyboxes for AdditiveLevels
Lowered from 4k .png (50 mb per image)
to 1k .jpg (70 kb per image)
* Delete .vsconfig
Co-authored-by: MrGadget <9826063+MrGadget1024@users.noreply.github.com>
* feat: Added Reset to Interest Management
- Used in Distance and Spatial to reset `lastRebuildTime`.
* Updated Template
* Update Assets/Mirror/Runtime/NetworkServer.cs
Co-authored-by: vis2k <info@noobtuts.com>
- fix: Send() now throws an exception for messages which require > 255 fragments
- fix: ReliableMaxMessageSize is now limited to messages which require <= 255 fragments
* feat: Support more nullable types
- NetworkWriter was also slightly rearraged to match NetworkReader
* fixed code smells
* fixed WriteVector4Nullable
* Got some of them working
* Couple more
* Couple more
* Added the rest
* reverted accidental change
Calling RemovePlayerForConnection followed by AddPlayerForConnection with the same player object fails to call OnStartLocalPlayer again because previousLocalPlayer was't properly reset to null.
* fix: NT checks NetworkClient.ready
NT should not be calling Cmd's when client isn't ready.
* Update Assets/Mirror/Components/NetworkTransform2k/NetworkTransformBase.cs
Co-authored-by: vis2k <info@noobtuts.com>
* Pass connection when spawning scene objects so that authority is not lost
* Update Assets/Mirror/Runtime/NetworkServer.cs
Co-authored-by: vis2k <info@noobtuts.com>
* feature: SyncVar<T>
* remove unused import
* SyncVarNetworkBehaviour<T> to support explicit hooks of <T> and to prepare for Weaver [SyncVar] internal replacement
* only call hook on client for compatibility with original [SyncVar]
* show SyncVar<T> label to make it obvious what type it is. useful to distinguish weaver replacements later
- Moved `ChangeOwner` down below `OnChangeOwner`
- Added `isLocalPlayer` bool to `ChangeOwnerMessage`
- Added handling for `isLocalPlayer to `ChangeOwner`
- Added call to `SendChangeOwnerMessage` to `ReplacePlayerForConnection` for when `keepAuthority` is true
- Fixes#2968
* fix: Prevent StopClient from running twice
- Fixes#2940
* Added comments
* Fixed stupid mistake
* moved check to OnClientDisconnect
Still need to fire that virtual so it can be overridden.
* Added check to StopClient itself too
* breaking: SyncObject as class instead of interface
* classes inheriting from SyncObject don't all need to implement obsoleted Flush() anymore
* IsRecording default moved to base class
* OnDirty default moved to base class
* comment
* IsRecording simplified now that it's a class
* OnDirty simplified now that it's a class
* fix: Eliminate potential NRE's in MatchInterestMgmt
- Scene objects with no NetworkMatch component
- Key not found in lastObjectMatch Dictionary
* Added comment, combined if's
* Added comments
* refactor Match Int Mgmt
* removed unused parameter
* removed unused parameter
* fix: Eliminate potential NRE's in MatchInterestMgmt
- Scene objects with no NetworkMatch component
- Key not found in lastObjectMatch Dictionary
* Added comment, combined if's
* Added comments
* Use String Interpolation
* Update Assets/Mirror/Editor/Weaver/EntryPointILPostProcessor/ILPostProcessorFromFile.cs
* Proper case in comments
* Add a constructor overload for creating a SyncDictionary from an IDictionary (#2933)
* Add a constructor overload for creating SyncDictionary from Dictionary
* Use IDictionary and directly use the passed in value
* Use passed in value directly
* Nope: SyncDictionary should specifically use a Dictionary under the hood
Reread the docs
* comment
* syntax
* Weaver: PropertySiteProcessor renamed to SyncVarAccessReplacer and updated comments/syntax to make it easier to understand
* Weaver: WeaverLists renamed to SyncVarAccessLists because that's what it's for
* comment
* Weaver: GetSyncVarStart simplified
* comment
* fix: Obsolete SyncObject Flush method (#2931)
* fix: Obsolete SyncObject Flush method
* fixed test
Co-authored-by: vis2k <info@noobtuts.com>
Co-authored-by: Gabriel Elkind <pixelpax@users.noreply.github.com>
* Add a constructor overload for creating SyncDictionary from Dictionary
* Use IDictionary and directly use the passed in value
* Use passed in value directly
* Nope: SyncDictionary should specifically use a Dictionary under the hood
Reread the docs