* 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
* change test to add observer
* perf: NetworkServer.Broadcast O(N) 'remove dirty bits for all spawned entities without observers' loop removed. AddObserver clears them instead if we had no observers before.
* don't need this anymore
* set syncobj.recording
* oops
* not a TODO anymore
* fix test
* fix test
* fix test
* fix tests
* fix test
* fix tests
* feature: SyncObject IsRecording() to prepare for NetworkServer.Update not calling ClearAllComponentsDirtyBits on all spawned entities with no observers.
* fix test
* breaking: Remove Obsoletes
- MIRROR_47_0_OR_NEWER symbol added
- A few obsoletes with Network Visibility remain...not ready to remove just yet.
* fixed test
* Weaver uses NetworkClient.connection instead of NetworkClient.readyConnection for client targetrpcs
* Update weaver tests to not use obsoletes
* Update test to expect SyncList<int> instead of SyncListInt
- Old default variables are for 'worst case connection' types, or fine for casual social game movement.
- It should be set as minimum delay, whilst still containing some smooth buffer data by default.
- Tool tip suggests what users can change it to for non-ideal connections from the new default value.
- First impressions are vital.
* WeaverTypes: make imported ReaderExtensions public
* WeaverTypes: import WriterExtensions too
* process reader/writer extensions
* rebase squashed previous ilpostprocessor branch
* adjust to weaver preparations changes
* fix: show strack trace
* better
* readability
* fix file not found cecilx exception
* fix rocks nto found exception
* syntax
* pass Mirror.dll to Weave()
* ILPostProcessorAssemblyResolver from paul
* comments, ifdef, syntax
* ILPostProcessorAssemblyResolver: add logging
* ILPostProcessorAssemblyResolver: add warnings on why Resolve() failed
* comments
* better warning
* rename
* use the custom resolver
* fix: ILPostProcessorReflectionImporter to fix System.Private.CoreLib not being found in Resolver
* add TODO
* comment
* fix Mirror.dll Resolve() issues in ReaderWriterProcessor when resolving from the passed Mirror.dll.
DefaultAssemblyResolver doesn't work with ILPostProcessor.
* fix comment
* check mirror assembly resolve result
* pass resolver to weaver
* fix Mirror.dll resolving Mirror.dll types NullReferenceException
* comments
* syntax
* comments
* readability
* syntax
* forgot to save
* rebase
* write
* fix self referencing Mirror.dll assembly
* disable log
* make tests work again
* comment
* comment
* fix rebase
* fix rebase
* comment
* fix: WeaverAssembler: only invoke weaver manually on mac. ILPP is invoked on windows automatically.
* this too
* remove comment
* ifdef out CompilationFinishedHook
* CompiledAssemblyFromFile
* comments
* tests assembly renamed to access compilationpipeline
* wip
* comments
* handle logs
* move file
* use WeaverTests error handling functions
* ILPP hook: don't log weaving failed errors for consistency with old method, and so that tests still work
* ILPPLogger: don't log prefix
* disable weaving succeeded log
* remove comment
* WeaverAssembly: save result to file
* move
* Weaver tests: compilationpipeline dependencies moved into Unity.Mirror.Weaver.CodeGen assembly.
so Tests assembly is actually weaved.
* disable self reference warning
* CompiledAssemblyFromFile simplified
* remove unused
* comments; run ILPP in all cases not just on mac
* ignore compilermessages on 2020+.
fixes windows tests not running.
* comment
* fix: ILPostProcessor ignore define added so WeaverAssembler can tell it not to run after being invoked by Unity after AssemblyBuilder.Build(). fixes SyncVarSyncList test failing on windows because ILPP was ran on it twice.
* typo
* comment
* comment
* static
* ifdef for 2019 support
* ifdef for 2019
* Fix - From !isLocalPlayer to !hasAuthority
Changed !isLocalPlayer to !hasAuthority because object might not be player object.
* Update Assets/Mirror/Components/NetworkTransform2k/NetworkTransformBase.cs
* Fix - delayed movement in clients in ClientAuthority mode - NetworkTransformBase.cs
Fixed issue where clients experience delayed movement in client authority mode.
Problem: Clients update the server first, server builds buffer then moves object, and then sends server's current snapshot to all the other clients who then build their buffers first before moving. This results in delayed movement in clients.
Changed the process to pass on the snapshot which the authoritative client updates the server onwards to other clients immediately instead and added checks to ensure server only broadcasts when object is on server authority or on host client authority.
* Update Assets/Mirror/Components/NetworkTransform2k/NetworkTransformBase.cs
* Update Assets/Mirror/Components/NetworkTransform2k/NetworkTransformBase.cs
* Update Assets/Mirror/Components/NetworkTransform2k/NetworkTransformBase.cs
Co-authored-by: vis2k <info@noobtuts.com>
* breaking: Weaver: [InitializeOnLoad] attribute is now added without using Reflection.
(possibly a breaking change according to the comment, although it's not obvious why it would break)
* breaking: Weaver: [RuntimeInitializeOnLoad] attribute is now added without using Reflection.
(possibly a breaking change according to the comment, although it's not obvious why it would break)
* comments
* fix builds
-> all processors can easily access the mirror assembly if necessary
-> CompilationPipeline doesn't have to be referenced anymore, which would break ILPostProcessor
-> Weaver simply weaves given assemblies now, without opening anything