* weaver tests for list read write
* generated tests for list read write
* adding method to check for list type
* temp
* weaver functions for creating read write for list
* generating tests for lists
* adding generated tests for collection writers
tests for read+write for array and array segment
* changing menu path
* adding tests for collections of classes
* swapping order in class name
* tests for Server attribute on virtual methods
test for virtual, abstract and override methods
* adding test for client attribute
* adding error when attribute is put on abstract method
* improving error message
* updating error mesages in tests
* updating to use WeaverTypes
* adding check before error
* class to create test functions
* generated test folder
* generated attribute tests
* adding out function and long type
* generated test file
* using OneTimeSetUp to make tests run faster
* Added Layer Weight to NetworkAnimator
Now NetworkAnimator is aware of each layer weight on it's references
Animator and will sync layer weights across the network.
* NetworkAnimator layers Float equality fix
* Update Assets/Mirror/Components/NetworkAnimator.cs
Co-authored-by: James Frowen <jamesfrowen5@gmail.com>
* Update Assets/Mirror/Components/NetworkAnimator.cs
Co-authored-by: James Frowen <jamesfrowen5@gmail.com>
* Remove GetLayerWeight check every incoming packet as is extern call
Co-authored-by: James Frowen <jamesfrowen5@gmail.com>
* Adding asmdef to telepathy
mirror has to reference telepathy as it is the default transport
this also means that TelepathyTransport has to be in the mirror asmdef
* references telepathy in tests
* formatting asmdef
Note this method is being called in 3 places:
one in MessageClassProcessor and 2 in NetworkBehaviorProcessor.
The NetworkBehaviorProcess is really a don't care, this condition cannot happen since it would not be invoked unless the class extends from NetworkBehavior. In this case, it will always resolve.
but even if it does not resolve, they handle the null case gracefully by not calling the base method.
MessageClassProcessor also calls this method, and if it is null it does not call the base method. That is precisely the behavior we want to resolve#2117
so all 3 places are perfectly fine receiving null.
The only way to trigger the error was #2117
I renamed the method to make it clearer that this may not find the method in the parent class.
Instead of doing
```cs
[SyncEvent]
public event MySyncEventDelegate EventOnly;
```
You can now do
```cs
[SyncEvent]
public event MySyncEventDelegate Only;
```
We actually tried to remove them a while ago. The way the weaver worked
back then caused an infinite recursion.
Since the Command rewrite that allows virtuals, this is no longer
a problem. So we can drop this requirement.
Co-authored-by: Paul Pacheco <paul.pacheco@aa.com>
Instead of doing
```cs
[ClientRpc]
public void RpcPepe() {}
```
You can now do
```cs
[ClientRpc]
public void Pepe() {}
```
We actually tried to remove them a while ago. The way the weaver worked
back then caused an infinite recursion.
Since the Command rewrite that allows virtuals, this is no longer
a problem. So we can drop this requirement.
Co-authored-by: Paul Pacheco <paul.pacheco@aa.com>
Instead of doing
```cs
[TargetRpc]
public void TargetPepe() {}
```
You can now do
```cs
[TargetRpc]
public void Pepe() {}
```
We actually tried to remove them a while ago. The way the weaver worked
back then caused an infinite recursion.
Since the Command rewrite that allows virtuals, this is no longer
a problem. So we can drop this requirement.
Co-authored-by: Paul Pacheco <paul.pacheco@aa.com>
Instead of doing
```cs
[Command]
public void CmdPepe() {}
```
You can now do
```cs
[Command]
public void Pepe() {}
```
We actually tried to remove them a while ago. The way the weaver worked
back then caused an infinite recursion.
Since the Command rewrite that allows virtuals, this is no longer
a problem. So we can drop this requirement.
Co-authored-by: Paul Pacheco <paul.pacheco@aa.com>
* finding all fields
* adding test for message with base
* undoing FindAllPublicFields
* adding tests for Inheritance with define order
* making sure that messages are processed in order
do not need to check if message has already been processed becuase
OnSerialize is only added/changed if it is missing or empty
* removing un-needed comments
* using recursion instead of loops
* remove white space
* perf: Use invokeRepeating instead of Update
If you have low frequency calls, InvokeRepeating is a lot faster than
Update(). Use InvokeRepeating for NetworkProximityChecker
* Fix indentation
Co-authored-by: Paul Pacheco <paul.pacheco@aa.com>
* weaver test for mutlitple events
* tests for multiple sync events in 1 class
* removing break so that multiple events will be proccessed
It seems like this break was here because unet used foreach CustomAttributes
but mirror uses GetCustomAttribute
* test to check if fallbacks disables other transport
* using ondisable to disable other transport
* fixing teardown
* adding test for Multiplex
* using ondisable to disable other transport
* fixing NSubstitute for 2019
* fixing pong spawn points
* renaming files and asmdef
* More Cloud examples
* Moving pong example to cloud folder
* Moving shared code to GUI folder
* Adding readme for examples
* Adding tank example
* adding mirror list services
* fixing code smells
* removing runtime example folders
* removing matchmaking code till feature is ready
* fixing scene path
* updating readme to say where example is