Commit Graph

2475 Commits

Author SHA1 Message Date
uwee
381adaa8f2
add logger to all classes that have logging but no logger (#1861)
* add logger to all classes that have logging but no logger

have not updated all of the debugs in the classes yet as the logger implementation has still not been decided.

* add logger to all classes that were missed

* update logger refs in BasicAuthenticator

* update logger refs in TimeoutAuthenticator

* update logger refs in NetworkAnimator

* update logger refs in NetworkRoomManager

* update logger refs in NetworkRoomPlayer

* update logger refs in NetworkSceneChecker

* update logger refs in AdditiveNetworkManager

* update logger refs in ZoneHandler

* update logger refs in ChatWindow

* update logger refs in ListServer

* update logger refs in Reward

* update logger refs in Reward

* update logger refs in NetworkRoomPlayerExt

* update logger refs in LocalConnections

* update logger refs in MessagePacker

* update logger refs in NetworkBehaviour

* update logger refs in NetworkManager

* update logger refs in NetworkReader

* update logger refs in NetworkReaderPool

* update logger refs in NetworkServer

* update logger refs in NetworkTime

* update logger refs in NetworkWriter

* update logger refs in NetworkWriterPool

* update to use logger log enabled

* remove if logfilter debug as log is not concatenated

* add if logger enabled check to concatenated strings

* Update Assets/Mirror/Authenticators/BasicAuthenticator.cs

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>

* suggested fixes

* remove unused logger

* changed to warning

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-05-10 23:00:37 +01:00
James Frowen
a264583944
adding try catch to DestroyAllClientObjects (#1862) 2020-05-10 10:17:42 +02:00
James Frowen
1fbaf1ba23
Moving CleanupNetworkIdentities to NetworkServer (#1867)
* moving CleanupNetworkIdentities to NetworkServer

NetworkClient already cleans up spawned dictionary

* using GameObject.Destroy

* adding null check

* tests for NetworkServer.Shutdown
2020-05-10 10:14:18 +02:00
James Frowen
1cd31663a5
Creating LocalConnectionId constant (#1869)
Avoid using magic numbers
2020-05-10 10:13:43 +02:00
James Frowen
f5d02906c0
Removing host setup from networkserver test (#1868)
* Removing host setup

Only set up the minimum in order to test a feature

* moving to new file

* inverting if

* removing extra  line

* fixing test for headless
2020-05-09 21:53:29 +01:00
James Frowen
b069a6ce27
clearing dictionary in test teardown (#1871) 2020-05-09 17:18:22 +01:00
James Frowen
11ed61aa61
adding namespace (#1870) 2020-05-09 17:18:14 +01:00
James Frowen
4c25122958
fix: Cleaning up network objects when server stops (#1864)
* destroying or disabling network objects when server stops

* adding clear after loop

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-authored-by: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-authored-by: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-authored-by: MrGadget <chris@clevertech.net>
2020-05-09 10:42:06 +01:00
Chris Langsenkamp
b4511a0637 fix: Prevent host client redundantly changing to offline scene 2020-05-09 01:28:30 -04:00
uwee
2108456021
Fix comments (#1860)
* fix ref to NetMan in Authenticator

* does not return

* added basic description of return conditions

* comment is 2 years old from HLAPI 2017.4 and no longer relevant

* remove empty whitespace

* Update Assets/Mirror/Runtime/NetworkConnection.cs

* Update Assets/Mirror/Runtime/NetworkServer.cs

* Update Assets/Mirror/Runtime/NetworkAuthenticator.cs

* Update Assets/Mirror/Runtime/NetworkServer.cs

* Update Assets/Mirror/Runtime/NetworkServer.cs

Co-authored-by: MrGadget <chris@clevertech.net>
2020-05-08 21:41:57 -04:00
James Frowen
ad782a59a7
adding assert extension method (#1804) 2020-05-09 00:24:05 +01:00
James Frowen
fd4357cd26
feat: LogSettings that can be saved and included in a build (#1863)
* Moving code that draws the log levels to its own class

this allows other scripts to use the same code to draw the log levels

* adding LogSettings to store the log levels

* adding GUI method to create LogSettings

* Creating Editor for LogSettings that uses LogLevelsGUI

* adding helper to find Existing LogSettings

* Adding field to LogLevelWindow to use LogSettings

* Adding LogSettings to drawer and save on changed check

* fixing field default value of null so that c# compiler doesnt complain

* loading existing settings into LogFactory when the editor starts

* component to load log settings in a build

* changing namespace

* Moving logging scripts to subfolder

* NetworkLogSettings editor

Makes the component use the same gui as the Window and ScriptableObject

* Making NetworkLogSettings find existing settings on Reset

reset is called when component is added

* adding attributes

* adding docs

* adding icon

* doc.

* documentation and images

* fixing image extension

* Update Assets/Mirror/Runtime/Logging/EditorLogSettingsLoader.cs

Co-authored-by: vis2k <info@noobtuts.com>

Co-authored-by: vis2k <info@noobtuts.com>
2020-05-08 23:51:21 +01:00
James Frowen
eed1ddc090
renaming player to ownerPlayer (#1859) 2020-05-08 00:04:57 +01:00
MrGadget
2c40c71557
Simplify 2K Example (#1857) 2020-05-07 13:29:33 +02:00
Chris Langsenkamp
b2f52d7892 fix: Removed unnecessary registration of player prefab in NetworkRoomManager 2020-05-07 04:45:03 -04:00
Chris Langsenkamp
38c8bb4dda Removed stray leftover comment 2020-05-07 03:56:09 -04:00
Chris Langsenkamp
0be4e5b999 Fixed 2 typos 2020-05-07 03:41:15 -04:00
Chris Langsenkamp
3179f08e3d fix: NetworkRoomManager.minPlayers is now protected so it's available for derived classes. 2020-05-07 02:41:58 -04:00
Chris Langsenkamp
fb927f8141 fix: Added ClientOnly check 2020-05-06 14:07:44 -04:00
James Frowen
53512cab35
Cleaning up some code (#1854)
* rename to validPrefabNetworkIdentity

* typo

* moving code to base class

* removing protected
2020-05-05 15:59:02 +01:00
vis2k
2d89f059af
perf: NetworkProximityChecker checks Server.connections instead of doing 10k sphere casts for 10k monsters. 2k NetworkTransforms demo is significantly faster. Stable 80fps instead of 500ms freezes in between. (#1852) 2020-05-05 09:54:11 +02:00
Chris Langsenkamp
201411d7f4 Fixed Observer Template 2020-05-05 00:37:21 -04:00
James Frowen
bd49fe4d9d
adding ignoreFailingMessages around error logging (#1803) 2020-05-04 18:14:42 +01:00
James Frowen
a88d2e6be1
tests for ClientScene.DestroyAllClientObjects (#1850)
* tests for ClientScene.DestroyAllClientObjects

* adding test for list being clear

* removing extra line
2020-05-04 17:15:56 +01:00
James Frowen
8b0958e24c
adding namespace (#1851) 2020-05-04 17:11:47 +01:00
vis2k
ecb10eb965
2k NetworkTransforms (#1849) 2020-05-04 17:52:00 +02:00
James Frowen
bb7765e0c1
Test cleanup (#1847)
* cleaning up objects after test

* test clean up
2020-05-04 13:10:22 +01:00
James Frowen
2c11cc8393
tests for ClientScene.PrepareToSpawnSceneObjects (#1846)
* tests for ClientScene.PrepareToSpawnSceneObjects

* removing line
2020-05-04 12:54:43 +01:00
James Frowen
64e52bf31e
Moving classes to their own files (#1845) 2020-05-04 10:59:38 +01:00
James Frowen
c9db7e3754
Moving Client scene tests to their own class per method (#1843)
* fixing comments

* adding extra lines

* moving tests to their own class per method
2020-05-04 10:33:32 +01:00
James Frowen
ca6fd99242
Clean up after breaking (#1844)
* adding new define to project settings

* Marking test for RemovePlayerMessage as Obsolete
2020-05-04 10:17:13 +01:00
James Frowen
54071da3af
fix: Improved error checking for ClientScene.RegisterPrefab with handler (#1841)
* test for RegisterPrefab with handler

* comments

* finishing tests and ignore some cases

* updating checks and log messages

* more tests

* removing test cases
2020-05-04 10:55:36 +02:00
Chris Langsenkamp
ed27578f91 Fixed comment 2020-05-03 12:29:14 -04:00
Chris Langsenkamp
477de07003 Updated ReadMe 2020-05-03 12:11:27 -04:00
Chris Langsenkamp
0cf92e9064 Reset Instances to default (3) 2020-05-03 12:11:08 -04:00
MrGadget
75f3975041
breaking: Eliminates RemovePlayerMessage As Security Risk (#1835)
* fix: Deprecate RemovePlayerMessage As Security Risk

* Updated PreprocessorDefine

* Updating for changes in master

* Updating for changes in master

* Removed the error flag so tests could still pass
2020-05-03 16:45:53 +02:00
MrGadget
2a08aac7cb
fix: Don't call RegisterClientMessages twice (#1842) 2020-05-03 16:43:00 +02:00
MrGadget
87c6ebc5dd
feat: Multiple Concurrent Additive Physics Scenes Example (#1686)
* Stop using sceneIds at runtime

* Multiple Additive Physics Scenes Example

* Remove Commented code

* Remove boilerplate code

* breaking: Network Visibility Component

* Revert changes to NetworkIdentity

* Updated scene lighting

* Don't rename spawned objects

* Simplified Physics Simulator

* Updated PhysicsSimulator

* Fixed camera restore

* moved subScenes.Clear up

* Updated Prefabs

* Updated Scenes

* Updated PhysicsSimulator

* Updated PlayerController

* Updated scoring to server authoritative

* Updated Main scene

* Updated Example to master

* Made subScenes readonly

* Restored old jump code

* Revert "Restored old jump code"

This reverts commit 6a986fb088.

* Restored old jump code

* localized point variable

* Removed oldColor

* Removed test code

* Removed commented code

* Added comment about flags enum

* Removed unnecsssary code

* Finalize scoring and setup

* Added ReadMe

* renamed Collision parameter

* Changes per @vis2k

* Added UnloadClientSubScenes
2020-05-03 16:42:28 +02:00
James Frowen
f4e2e1c153
Allowing tests cases to better call overloads (#1838)
* allowing tests cases to better call overloads

* fixing warning test cases

* adding comment
2020-05-03 14:32:09 +01:00
MrGadget
e3790c51eb
feat: Add NetworkServer.RemovePlayerForConnection (#1772)
* feat: Add NetworkServer.RemovePlayerForConnection

* Fixed Obsolete tag

* Added bool destroyServerObject and comments

* Making this a breaking change

* No longer a breaking change

* Added RemovePlayerForConnectionTest

* Debrecation with pragmas

* Splitting the PR

* Splitting PR's

* Updated tests

* splitting PR's
2020-05-03 15:22:32 +02:00
James Frowen
71ebcdc006
making fields readonly (#1840)
adding more comments to PrepareToSpawnSceneObjects
2020-05-03 15:13:57 +02:00
James Frowen
7de3c74614
adding enabled check to loops (#1836)
Message can disable transport so we need to check if it is still enabled
 before checking the next message
2020-05-03 15:12:32 +02:00
James Frowen
ff4a576b13
Fixing code smell in clientscene (#1839)
* moving overloads next to each other

* moving function so that RegisterPrefab are together

* making if statment more readable
2020-05-03 11:29:42 +01:00
James Frowen
eeb4c4b5b4
making test case match others (#1837) 2020-05-03 10:55:39 +01:00
Chris Langsenkamp
d0e15b1378 Setting older obsoletes to errors for next release 2020-05-02 18:48:12 -04:00
James Frowen
a700d7afc3
Fixing runtime tests (#1833)
* adding assetId to prefab

* making sure NetworkManager is shutdown

* removing host set up for test that doesn't need it

* using OneTimeTearDown

* fixing performance test
2020-05-02 16:14:38 +01:00
James Frowen
2b5ad08260
adding ignore (#1832)
see ignore message
2020-05-02 15:26:21 +01:00
vis2k
d3dccd7a25
fix: #1659 Telepathy LateUpdate processes a limited amount of messages per tick to avoid deadlocks (#1830)
* fix: #1659 Telepathy LateUpdate processes a limited amount of messages per tick to avoid deadlocks

* Update Assets/Mirror/Runtime/Transport/TelepathyTransport.cs

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>

* Update Assets/Mirror/Runtime/Transport/TelepathyTransport.cs

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-05-02 15:24:42 +02:00
MrGadget
a6ab3527ac
fix: clear all message handlers on Shutdown (#1829) 2020-05-02 11:40:49 +02:00
James Frowen
d6a4d8fbf6
fixing showDebugMessages with new logger (#1824) 2020-05-02 11:25:50 +02:00
Chris Langsenkamp
ab3f353b33 fix: Wrong method names in ClientSceneTests 2020-05-02 00:02:37 -04:00
James Frowen
9f59e0c439
fix: Adding warning when adding prefab with RegisterPrefab if assetid already exists (#1828) 2020-05-02 01:36:59 +01:00
James Frowen
7f26329e2d
fix: Adding warning when adding handler with RegisterSpawnHandler if assetid already exists (#1819)
* adding test for warning for existing handler

* adding warning for existing handler

* adding error for prefab existing with assetId
2020-05-02 01:35:45 +01:00
James Frowen
a0aa4f9c14
fix: Improved error checking for ClientScene.RegisterPrefab (#1823)
* Tests for ClientScene.RegisterPrefab
* Improved error messages for ClientScene.RegisterPrefab
2020-05-02 01:29:55 +01:00
Chris Langsenkamp
5fddcc8525 Added braces 2020-05-01 14:06:17 -04:00
James Frowen
096ce20fbd
Tests client scene 5 (#1818)
* tests for ClientScene.UnregisterSpawnHandler

* splitting errors for handlers

* adding error for empty guid

* adding check to stop null handler inside lambda
2020-05-01 09:48:58 +02:00
Chris Langsenkamp
ffc276cb79 fix: Use ReplaceHandler instead of RegisterHandler in NetworkManager 2020-04-30 22:07:00 -04:00
James Frowen
fd929e2b6d
fixing syncmode not showing up in Inspector (#1820)
syncMode and syncInterval now show up in Inspector when only sync vars are used
2020-04-30 19:43:33 -04:00
James Frowen
63e61bcbf4
fixing error message (#1805)
LogError was incorrectly adding tag to message
2020-04-30 21:49:44 +01:00
James Frowen
8e7dec319a
adding method overloads for seting newAssetId (#1806)
RegisterPrefab(GameObject prefab) has the option to add new AssetId but
the versions that add custom spawn handlers did not have this option
2020-04-30 10:57:51 +02:00
James Frowen
9270765beb
fix: Fixing ClientScene UnregisterPrefab (#1815)
* adding error if prefab is null

* fixing prefab not being removed
2020-04-30 10:55:48 +02:00
James Frowen
66728cdeef
tests for ClientScene.UnregisterSpawnHandler (#1816) 2020-04-29 23:29:00 +01:00
James Frowen
4b2162f6a0
tests for ClientScene.ClearSpawners (#1813) 2020-04-29 17:10:25 +01:00
James Frowen
67df03cb8f
tests for ClientScene.UnregisterPrefab (#1812)
* making ClientScene dictionaries internal

* tests for ClientScene.UnregisterPrefab

* adding OneTimeSetUp for loading prefabs
2020-04-29 16:48:34 +01:00
James Frowen
bf59c6f32b
tests for ClientScene.GetPrefab (#1811) 2020-04-29 16:00:07 +01:00
James Frowen
877f4e9c72
feat: Adding ReplaceHandler functions to NetworkServer and NetworkClient (#1775)
* Replacing debug log with warning

Replacing a handler by mistake will lead to code not running when it is
expected to.

* adding ReplaceHandler methods

* improving warning messages

* using ReplaceHandler in networkManager

* fixing doc comments for RegisterHandler

* fixing doc comments for ReplaceHandler

* Update Assets/Mirror/Runtime/NetworkManager.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* improving doc comments

* improving doc comments for new code

* Update Assets/Mirror/Runtime/NetworkServer.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

* Update Assets/Mirror/Runtime/NetworkClient.cs

Co-Authored-By: MrGadget <chris@clevertech.net>

Co-authored-by: MrGadget <chris@clevertech.net>
2020-04-29 11:27:28 +01:00
James Frowen
0844c495a1
renaming test assembly (#1808) 2020-04-28 19:21:50 +01:00
Justin Vitale
5295075e78
Fix summary mistake for connectionToServer (#1807) 2020-04-28 12:38:06 -04:00
Chris Langsenkamp
06bd1f87c4 Updated Example Scene Files 2020-04-28 01:41:57 -04:00
James Frowen
e32a9b6f0b
feat: Allowing Multiple Concurrent Additive Scenes (#1697)
* There's no need for handling scene ids at runtime.

* Adding tests for Instantiate On Scene object

* removing ExecuteInEditMode

none of our function do anything at edit time so removing this tag

* adding check to awake to stop Instantiate

* code style and comments

* using logger for new error

Co-authored-by: Chris Langsenkamp <chris@clevertech.net>
2020-04-27 18:50:41 -04:00
Chris Langsenkamp
e0d8c918cd Added DisallowMultipleComponent where appropriate 2020-04-27 11:28:50 -04:00
Chris Langsenkamp
7f8476b2e9 Room Example Server Auth Scoring 2020-04-27 01:21:53 -04:00
James Frowen
6065afd9f6
adding counter since we might send less than connections.Count (#1782) 2020-04-27 00:23:06 -04:00
Chris Langsenkamp
267827b15a remove privates 2020-04-26 16:28:38 -04:00
Chris Langsenkamp
0187b2082f removed privates 2020-04-26 16:21:10 -04:00
Paul Pacheco
b3656a9edc feat: ClientScene uses log window 2020-04-26 14:11:55 -05:00
Paul Pacheco
2e39e13c01 feat: NetworkIdentity use logger framework 2020-04-26 14:06:40 -05:00
Paul Pacheco
72154f1dad feat: NetworkConnection to client and server use logger framework 2020-04-26 13:56:42 -05:00
Paul Pacheco
ec319a165d feat: NetworkConnection uses logging framework 2020-04-26 13:53:55 -05:00
Paul Pacheco
8b4f1051f2 feat: NetworkServer uses new logging framework 2020-04-26 13:45:30 -05:00
Paul Pacheco
aea8db25c1
Each test file in a separate namespace (#1785)
* Each test file in a separate namespace

* Fix tests
2020-04-26 11:49:47 -05:00
James Frowen
0383df95ef
making mono cecil editor only (#1783) 2020-04-26 11:33:40 -05:00
MrGadget
f6545d4871
feat: NetworkServer.SendToReady (#1773)
* feat: NetworkServer.SendToReady

* Added ready check and default channel

* Changed to optional parameter

* Added shorthand overload SendToReady

* Added comment
2020-04-26 10:59:06 +02:00
MrGadget
34a76a2834
feat: Allow Multiple Network Animator (#1778) 2020-04-26 10:57:42 +02:00
Paul Pacheco
b3cbd5c2a1 Remove redundant check, can be done once in setup 2020-04-25 20:19:18 -05:00
Paul Pacheco
462a311fff
Remove redundant check, can be done once in setup (#1781)
* Remove redundant check,  can be done once in setup

* Update Assets/Mirror/Tests/Editor/Weaver/WeaverNetworkBehaviourTests.cs

* Update Assets/Mirror/Tests/Editor/Weaver/WeaverTests.cs

Co-Authored-By: James Frowen <jamesfrowendev@gmail.com>

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-04-25 19:53:29 -05:00
Paul Pacheco
bcd76c5bdc
feat: Improve weaver error messages (#1779)
feat: Improve weaver error messages

Weaver error messages are easier to read and always display
location of error
2020-04-25 19:06:08 -05:00
Chris Langsenkamp
d6d702a918 updated comment 2020-04-25 13:45:39 -04:00
Chris Langsenkamp
345da764b9 fixed comments 2020-04-25 13:32:02 -04:00
James Frowen
d6441e8772
Tests for enums (#1774)
* weaver test to make sure enums compile

* test for weaver generated and custom readwrite
2020-04-25 10:41:16 +02:00
Chris Langsenkamp
096a23217e Updated comments 2020-04-24 13:39:58 -04:00
Chris Langsenkamp
9d36815271 fixed comments 2020-04-24 12:58:24 -04:00
Chris Langsenkamp
38ec9b7082 Renamed serverIdleTimeout to disconnectInactiveTimeout 2020-04-24 06:25:02 -04:00
James Frowen
e346885ff5
adding namespace to runtime tests (#1769) 2020-04-24 09:58:27 +01:00
James Frowen
1af5b4ed2f
fix: weaver syncLists now checks for SerializeItem in base class (#1768)
* tests for override in base class

* fixing overrides in base class

* moving check up so that typedef cant be null for the check
2020-04-24 09:30:18 +02:00
James Frowen
d4f834ac08
test for sync list using interface (#1767) 2020-04-23 21:51:33 +02:00
MrGadget
a2eb666f15
feat: Disconnect Dead Clients (#1724)
* feat: Disconnect Dead Clients

* Moved code to NetworkConnectionToClient

* Fixed type

* WIP

* Trying to solve the mystery of the Host

* Updated Example

* fixed comment whitespace

* Final Cleanup and Unit Test

* Removed extra warning

* Reverted change to scene file

* Changed to Play test, still not working

* Added NetworkServer.Update time loop

* Removed commented code

* fixed comment

* Filled in ServerDisconnect so it behaves as expected.

* fixed comment

* Renamed to bool IsClientAlive

* Should be greater than

* Added override that shouldn't be necessary.

* changed asserts per Paul

* Flipped < back

* Shortened test time

* Corrected comment

* Lost the 1

* Updated NetworkServerTest

* Update Assets/Mirror/Tests/Runtime/NetworkServerTest.cs

* Added bool checkInactiveConnections

* Tests for sync dictionary and sync set (#1753)

* sync dictionary tests

* rename

* changing error message

* sync set tests

* silence unused method warning

* test class name matches file name

* test class name matches file name

* test class name matches file name

* test class name matches file name

* test class name matches file name

* test class name matches file name

* test class name matches file name

* Scope syncdict tests to their classes

* Scope synclists tests to their classes

* Scope syncset tests to their classes

* test class name matches file name

* Scope sample classes

* test class name matches file name

* fix: call the virtual OnRoomServerDisconnect before the base

* fixed name

* doc: Updated docs

* Moved serverIdleTimeout to NetworkManager

* fixed test to enable disconnectInactiveConnections

* Copied disconnectInactiveConnections & serverIdleTimeout to NetworkServer

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
Co-authored-by: Paul Pacheco <paulpach@gmail.com>
2020-04-23 21:50:35 +02:00
James Frowen
c1bacc345c
using MemoryTransport to make test more stable (#1770) 2020-04-23 17:41:15 +01:00
James Frowen
7f8733ce6a
feat: Exclude fields from weaver's automatic Read/Write using System.NonSerialized attribute (#1727)
* adding test class for NonSerialized

* checking for IsNotSerialized
2020-04-23 16:38:45 +02:00
Chris Langsenkamp
e6881ef007 fix: call the virtual OnRoomServerDisconnect before the base 2020-04-23 02:02:21 -04:00
Paul Pacheco
fb489c67e8 test class name matches file name 2020-04-22 20:58:22 -05:00
Paul Pacheco
2ad16332f3 Scope sample classes 2020-04-22 20:54:08 -05:00
Paul Pacheco
d0df3e8b90 test class name matches file name 2020-04-22 20:51:49 -05:00
Paul Pacheco
d8e5f0d023 Scope syncset tests to their classes 2020-04-22 20:45:45 -05:00
Paul Pacheco
a0689cd357 Scope synclists tests to their classes 2020-04-22 20:38:45 -05:00
Paul Pacheco
f218259be8 Scope syncdict tests to their classes 2020-04-22 20:11:21 -05:00
Paul Pacheco
6066ca2aa0 test class name matches file name 2020-04-22 19:50:55 -05:00
Paul Pacheco
c704bc123f test class name matches file name 2020-04-22 17:56:41 -05:00
Paul Pacheco
94603d175a test class name matches file name 2020-04-22 17:47:45 -05:00
Paul Pacheco
12ea5f25e0 test class name matches file name 2020-04-22 17:43:59 -05:00
Paul Pacheco
a2b6fb08f3 test class name matches file name 2020-04-22 17:42:25 -05:00
Paul Pacheco
dfffe26390 test class name matches file name 2020-04-22 17:40:32 -05:00
Paul Pacheco
5214b57db5 test class name matches file name 2020-04-22 17:35:39 -05:00
Paul Pacheco
95bb9cb0e3 silence unused method warning 2020-04-22 12:21:32 -05:00
James Frowen
1614c68629
Tests for sync dictionary and sync set (#1753)
* sync dictionary tests

* rename

* changing error message

* sync set tests
2020-04-22 18:54:09 +02:00
Chris Langsenkamp
cf6823acb5 fix: Removed NetworkServer.Listen because HostSetup does that 2020-04-22 06:39:46 -04:00
Chris Langsenkamp
984945e482 fix: Removed NetworkClient.Update because NetworkManager does it in LateUpdate 2020-04-22 06:34:34 -04:00
Chris Langsenkamp
bdec276282 fix: Add the transport first so NetworkManager doesn't add Telepathy in OnValidate 2020-04-22 06:32:26 -04:00
James Frowen
9bf816a014
feat: Allowing extra base types to be used for SyncLists and other SyncObjects (#1729)
* Tests for most uses of sync list

renaming classes for existing test files

* improving error message for Paramless constructor

* More tests for SyncLists

* updating error message

* ignore abstract classes

we dont need to process abstract classes because classes that
inherit from them will be processed instead

* check and error for syncList item being genric

* allowing extra base types for synclist

* checking for nested types in abstract classes

* test for nested types inside structs
2020-04-22 09:40:40 +02:00
uwee
ddd4b0b1fc
use HostSetup in tests (#1761) 2020-04-22 09:38:07 +02:00
uwee
262c1129dc
add test for NS Reset (#1758)
* add test for NS Reset

this code is depreciated but it should have a test as long as its in the code base

* typo
2020-04-21 23:49:46 +02:00
uwee
d996079042
remove empty if statement (#1757)
the current state is an untestable if statement. the if (!dont) is not pretty but the same logic is used later in the same file under Listen()
2020-04-21 23:49:11 +02:00
uwee
2f7053c6be
return bool to allow testing (#1756) 2020-04-21 23:48:42 +02:00
uwee
c2c1f86fe8
add HostSetup for tests (#1755) 2020-04-21 23:48:06 +02:00
uwee
c4bfb9d037
remove unused using (#1754) 2020-04-21 23:47:20 +02:00
James Frowen
2cf0fc71a7
Clean up sync object tests (#1750)
* cleaning up tests

* clearing dirty before test
2020-04-21 08:29:46 -05:00
uwee
3cf686f3b8
add base OnSetHostVisibility test (#1749)
* add base OnSetHostVisibility test

* fix code smells
2020-04-21 09:58:14 +02:00
MrGadget
2d006fe730
fix: Remove leftover AddPlayer methods now that extraData is gone (#1751) 2020-04-21 09:56:14 +02:00
James Frowen
58c89a3d32
fix: Allow sync objects to be re-used (#1744)
fixes #1714
2020-04-20 19:20:25 -05:00
Chris Langsenkamp
8798cd18ce Updated NetworkManage template 2020-04-20 18:49:21 -04:00
Paul Pacheco
3dd709ac35
Remove MarkForReset (#1747)
* Remove MarkForReset

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

* Update Assets/Mirror/Tests/Editor/NetworkServerTest.cs
2020-04-20 20:07:22 +02:00
Chris Langsenkamp
5d4bc47d46 fix: Use path instead of name in Room Example 2020-04-20 11:04:18 -04:00
Chris Langsenkamp
2a2f76c263 fix: Remove RoomPlayer from roomSlots on Disconnect 2020-04-20 11:02:45 -04:00
James Frowen
055a264660
adding return so that exception isnt throw after error (#1746) 2020-04-20 08:51:40 -05:00
Chris Langsenkamp
8e7bb44c3a Updated docs, comments, template pursuant to renaming of OnNetworkDestroy 2020-04-20 09:42:16 -04:00
Paul Pacheco
d1695dd16f
feat: new virtual OnStopServer called when object is unspawned (#1743) 2020-04-20 10:36:03 +02:00
Paul Pacheco
86ac5ad40b
Rename OnNetworkDestroy to OnStopClient (#1742)
OnNetworkDestroy is not a good name,  is it server? is it client?
you can't tell by the name.

Moreover,  we have OnStartClient,  API should be symetric so we should
have a corresponding OnStopClient.

Note this keeps backwards compatibility with an Obsolete for now
2020-04-20 10:35:34 +02:00
Chris Langsenkamp
e03c2a0ee1 restored 1bitpack_kenny metas 2020-04-19 17:32:51 -04:00
James Frowen
f17cea771e
using IsDerivedFrom instead of while loop (#1739) 2020-04-19 14:12:37 -05:00
James Frowen
a86d1cdfff
Adding error to network behaviour when generic sync object is used (#1741)
* test for using Generic SyncList

* adding error to network behaviour when generic sync object is used

* ignore generic classes

we can not process generic classes
we give error if a generic syncObject is used in NetworkBehaviour
2020-04-19 19:34:05 +02:00
James Frowen
a523d5f521
using if instead of try catch (#1740) 2020-04-19 19:33:30 +02:00
James Frowen
c25b1c6043
removing old test files (#1738) 2020-04-19 12:57:58 +01:00
James Frowen
f83093893e
Weaver error messages and tests for using interfaces (#1737)
* more tests for readwriters

* updating error message

* fixing error messages
2020-04-18 22:55:17 -05:00
Chris Langsenkamp
a6258d2d70 Remove and Ignore 1bitpack_kenney png.meta files. 2020-04-18 23:33:13 -04:00
James Frowen
f6e4068ebe
removing ignored test (#1736) 2020-04-19 00:53:39 +01:00
James Frowen
24469859e5
adding error to reader (#1726)
these checks are already in writer
2020-04-18 10:52:22 +02:00
James Frowen
5c56adc1dc
feat: default log level option (#1728)
Each class can specify default log levels when requesting the logger.
2020-04-17 18:11:44 -05:00
MrGadget
21acf66190
feat: NetworkMatchChecker Component (#1688)
* feat: NetworkMatchChecker Component

* Added docs

* feat: Use logger framework for NetworkClient (#1685)

* Use logger framework for NetworkClient

* Update Assets/Mirror/Runtime/NetworkClient.cs

Co-authored-by: vis2k <info@noobtuts.com>

* breaking: NetworkVisbility component (#1681)

* backup

* breaking: NetworkProximityCheck abstract class. Simplifies code, reduces complexity, improves performance because if 10k identities have 10 components each, we don't have to iterate 100k components each time we rebuild observers.

* update tests and checkers

* DisallowMultipleComponents

* fix tests

* split OnCheckObserver check

* fix tests

* syntax

* update comment

* renamed to NetworkVisibility

* forgot to remove comment

* breaking: Network Visibility Component

* changing namespaces of performance tests (#1689)

* Updated to use NetworkVisibility

* Updated comments

* Updated OnCheckObserver and removed OnSetHostVisibility

* tests for OnCheckObserver

* adding check for empty guid

* tests for changing matchId

* RebuildObservers if player left a match

* Refactored to make it simpler

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
Co-authored-by: vis2k <info@noobtuts.com>
Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-04-17 10:35:08 +02:00
MrGadget
cbc2a47729
fix: Don't destroy the player twice (#1709)
* fix: Don't destroy the player twice

* adding test

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-04-17 10:34:17 +02:00
MrGadget
e5b728fed5
fix: Eliminate NetworkAnimator SetTrigger double firing on Host (#1723) 2020-04-17 00:53:46 +02:00
James Frowen
df7c671604
using MemoryTransport for ULocalConnectionPerformance (#1720) 2020-04-16 19:33:13 +02:00
James Frowen
db87c961b0
fixing TearDown and removing extra calls to shutdown (#1722) 2020-04-16 19:32:51 +02:00
James Frowen
3368026b2c
adding extra performance test for NetworkIdentity (#1721) 2020-04-16 10:52:24 +02:00
James Frowen
b1644ae481
feat: Weaver can now automatically create Reader/Writer for types in a different assembly (#1708)
* fix: serialize structs in other assemblies

fixes #1570

* removing check for type in another assembly

* fixing call to default constructor

* removing old tests that not longer apply

* fixing typo

* adding error when creating writer for unity base classes

* Test for Generating Reader and Writer functions

* removing old function

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
2020-04-16 10:50:49 +02:00
James Frowen
58219c8f72
perf: Adding dirty check before update sync var (#1702)
* adding dirty check before update sync var

* Moving creating spawn payload to its own function

* updating tests

* adding tests for behaviour mask

* adding comment

* removing un-needed cast
2020-04-16 10:49:33 +02:00
James Frowen
17f8e9721a
re adding caching for OutputDirectory (#1719) 2020-04-15 14:06:18 -05:00
Paul Pacheco
93f7028e0d split weaver test files by test class 2020-04-15 12:14:25 -05:00
Paul Pacheco
2b1aefab39 use logger framework instead of preprocessor 2020-04-15 11:33:48 -05:00
Paul Pacheco
e109ce3e87 paths should be combined, not added 2020-04-15 09:57:45 -05:00
Paul Pacheco
c483047486 Remove unused option 2020-04-15 09:14:44 -05:00
Devon Merner
d8c121695c
networkSceneName sets to empty on StopClient and StopServer. (#1715) 2020-04-15 11:31:27 +02:00
Devon Merner
0fe6328800
feat: Added SyncList.Find and SyncList.FindAll (#1716)
fixes #1710
2020-04-14 20:51:14 -05:00
James Frowen
6383e9884f
Moving weaver tests 2 (#1706)
* adding WeaverTestsBuildFromTestName

* removing event handlers on TearDown
2020-04-14 20:04:07 -05:00
James-Frowen Laptop2
239b7b762a removing extra lines 2020-04-14 19:54:09 -05:00
James Frowen
c4d373984d Moving weaver tests into their own classes 2020-04-14 19:53:45 -05:00
uwee
af2e732adb
docs: remove mention of networkPort from NetworkManager (#1712)
fixes #1711
2020-04-14 17:37:49 +02:00
James Frowen
6e081f3d40
NetworkIdentity ServerUpdate Performance test (#1703) 2020-04-14 11:13:21 +02:00
James Frowen
c66c5a6dcc
fix: Fixing SyncVars not serializing when OnSerialize is overridden (#1671)
* Adding SyncVar methods

this will allow SyncVars to still work if user overrides
OnSerialize as long as they call base.OnSerialize

* Adding tests for NetworkBehaviour OnSerialize

These tests make sure that weaver correctly create code for syncvar

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* Update Assets/Mirror/Runtime/NetworkBehaviour.cs

* adding extra test

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
Co-authored-by: vis2k <info@noobtuts.com>
2020-04-14 11:11:15 +02:00
Chris Langsenkamp
0e1aa1b305 Updated Netowork Observer template 2020-04-13 21:08:14 -04:00
MrGadget
4994193668
Make OnSetHostVisibility virtual with default functionality (#1707) 2020-04-13 20:05:08 -05:00
Chris Langsenkamp
cbe499e052 NetworkVisibility: Put methods in correct order 2020-04-13 20:17:07 -04:00
Chris Langsenkamp
6fec901a80 Updated Network Observer Template 2020-04-13 20:05:00 -04:00
James Frowen
eec45ff8fe
Adding changed check to PreprocessorDefine (#1698)
* Adding changed check to PreprocessorDefine

this stops ProjectSettings being marked as dirty each time the editor is opened

* Update PreprocessorDefine.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-04-13 10:14:04 +02:00
Chris Langsenkamp
8aabb54929 Don't rename spawned objects 2020-04-12 21:48:41 -04:00
Paul Pacheco
003597bc11 Remove commented out code 2020-04-12 11:06:13 -05:00
Paul Pacheco
b7cef180d4 Rename local variable for clarity 2020-04-12 11:06:13 -05:00
Paul Pacheco
61cf445395 Rename method for clarity 2020-04-12 11:06:13 -05:00
Paul Pacheco
78ff826684 Fix smells 2020-04-12 11:06:13 -05:00
Paul Pacheco
2a456a0161 Reduce cognitive complexity of Weave 2020-04-12 11:06:13 -05:00
Paul Pacheco
1a2af279ca Remove unused method 2020-04-12 11:06:13 -05:00
Paul Pacheco
91920e0a6e fix code smells 2020-04-12 11:06:13 -05:00
uwee
0e84e9dd4e
smell: reduce OnGUI complexity (#1696) 2020-04-12 16:48:25 +02:00
James Frowen
f8f939fd9c
Making ULocalConnectionPerformance test clean up new objects (#1700)
stops testPlayerPrefab was causing problems with OnPostProcessScene in other runtime tests
2020-04-12 13:44:45 +01:00
James Frowen
83d1648913
changing test namespace (#1699) 2020-04-12 13:18:05 +01:00
Chris Langsenkamp
9c3f5710eb Updated docs and comments re: Network Visibility 2020-04-12 07:54:28 -04:00
James Frowen
18bd792a0b
Improving Performance Benchmark (#1695)
Taking measurements for frames and LateUpdate at same time.
2020-04-12 00:52:48 +01:00
James Frowen
9d24d45987
Adding defines to performance tests (#1690)
* adding defines

* adding versionDefines
2020-04-11 20:59:42 +02:00
James Frowen
24e2af098f
changing namespaces of performance tests (#1689) 2020-04-11 17:30:18 +01:00
Chris Langsenkamp
25ee8540f9 breaking: Network Visibility Component 2020-04-11 11:56:21 -04:00
vis2k
70ddf92a5c
breaking: NetworkVisbility component (#1681)
* backup

* breaking: NetworkProximityCheck abstract class. Simplifies code, reduces complexity, improves performance because if 10k identities have 10 components each, we don't have to iterate 100k components each time we rebuild observers.

* update tests and checkers

* DisallowMultipleComponents

* fix tests

* split OnCheckObserver check

* fix tests

* syntax

* update comment

* renamed to NetworkVisibility

* forgot to remove comment
2020-04-11 15:37:35 +02:00
Paul Pacheco
6e92bf5616
feat: Use logger framework for NetworkClient (#1685)
* Use logger framework for NetworkClient

* Update Assets/Mirror/Runtime/NetworkClient.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-04-11 13:21:14 +02:00
James Frowen
c0a82a86ea
Logger editor (#1613)
* window for mirror log levels

* applying suggestions
2020-04-10 13:20:05 -05:00
MrGadget
e7cfd5a498
fix: Check SceneManager GetSceneByName and GetSceneByPath (#1684)
* fix: Check SceneManager GetSceneByName and GetSceneByPath

* Fix example too.
2020-04-10 11:26:37 -05:00
Paul Pacheco
55e075c872 fix: stack overflow getting logger 2020-04-10 11:14:20 -05:00
Paul Pacheco
de87634ec5 Some extension methods for convenient migration 2020-04-10 11:11:51 -05:00
Paul Pacheco
f9328c771c feat: logger factory works for static classes by passing the type 2020-04-10 10:51:42 -05:00
MrGadget
bc37497ac9
fix: Re-enable transport if aborting additive load/unload (#1683)
* fix: Re-enable transports if aborting additive load/unload

* Restore debug if's
2020-04-10 11:42:38 -04:00
James Frowen
95705a1545
Moving error check to when cache is created (#1682)
* Moving error check to when cache is created

* updating tests for new code behaviour

* Update Assets/Mirror/Runtime/NetworkIdentity.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-04-10 17:15:24 +02:00
vis2k
0b44ccee99 syntax 2020-04-10 10:06:37 +02:00
James Frowen
f0579835ca
perf: Increasing Network Writer performance (#1674)
* Increasing performance of network writer

* Using Array.Clear

renaming value to newLength

* Update Assets/Mirror/Tests/Editor/NetworkWriterTest.cs

Co-Authored-By: Paul Pacheco <paulpach@gmail.com>

* adding braces

* extracting EnsureCapacity method

* Update NetworkWriter.cs

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
Co-authored-by: vis2k <info@noobtuts.com>
2020-04-10 09:45:09 +02:00
Chris Langsenkamp
c1fe2124d8 Removed SpawnWithClientAuthority from comments and docs 2020-04-09 16:51:41 -04:00
James Frowen
8ce65045c8
Benchmark performance test 2 - Idle benchmark (#1662)
* adding bool to stop health updating

* idle benchmark

* using FindObjectsOfType instead of static field
2020-04-09 09:40:37 +02:00
James Frowen
7e7ffcd892
Adding report to performance test readme 2020-04-08 16:24:39 +01:00
James Frowen
7a06815d75
adding static check before adding this arg (#1668) 2020-04-07 19:50:48 +02:00
James Frowen
60678d9bc7
adding readme (#1672) 2020-04-07 12:30:57 -05:00
James Frowen
4fc58be148
making network behaviour abstract (#1669) 2020-04-07 10:23:09 +02:00
James Frowen
17885a0da2
Adding comments to NetworkBehaviour (#1670) 2020-04-07 00:33:15 +01:00
James Frowen
f8dee1f1a1
removing unnecessary using (#1667) 2020-04-06 09:56:26 -05:00
James Frowen
75dc0af65f
Pipeline fix for performance tests (#1666)
* updating coverage manifest

* removing version tag
2020-04-06 09:42:47 -05:00
James Frowen
52e91e7d1e
Benchmark performance test (#1661)
* benchmark performance test

* adding hooks for performance test

* using hooks to measure time of Lateupdate

moving code to setup and teardown
2020-04-06 09:49:46 +02:00
Chris Langsenkamp
532555bbea Put methods in call order 2020-04-04 12:03:08 -04:00
James Frowen
34415fe876
performance test for ULocalConnection (#1655) 2020-04-04 15:03:05 +02:00
James Frowen
3219fd4b51
performance test for NetworkWriter (#1654) 2020-04-04 15:02:48 +02:00
James Frowen
0157f9d909
adding performance test asmdef (#1653)
* adding performance test asmdef

* adding performance tests to packages

* fixing asmdef to work with 2018 and 2019
2020-04-04 14:21:53 +02:00
Paul Pacheco
84b2c8cf26
perf: Use continuewith to queue up ssl messages (#1640)
get rid of the complicated queue. Use Task.continuewith 

also,  apparently we have to flush or latency is really bad.
2020-04-03 07:24:07 -05:00
James Frowen
2ef8404f82
adding Category to weaver and Telepathy tests (#1643) 2020-04-02 18:50:42 +02:00
James Frowen
456fde07bc
removing cahced field (#1641) 2020-04-02 18:49:38 +02:00
James Frowen
4d5cee893d
perf: Adding buffer for local connection (#1621)
* Using writer for local connection

LocalConnectionBuffer

* removing assert

* fixing error and cleaning up code

* removing old queue

* tests for LocalConnectionBuffer

* removing field

* removing extra lines

* Update LocalConnections.cs

removing empty line

* adding comment for packet count
2020-04-02 18:49:09 +02:00
Chris Langsenkamp
caccebaa17 Updated example prefabs 2020-04-02 01:11:11 -04:00
Chris Langsenkamp
a6f98b09cf Updated NetworkManager Script Template 2020-04-01 23:49:47 -04:00
Paul Pacheco
6591539c31 Remove unused local variable 2020-04-01 12:02:44 -05:00
Chris Langsenkamp
e420dcb6b6 Fixed comment in template 2020-04-01 05:33:16 -04:00
MrGadget
d2a58a4c25
fix: Destroyed NetMan due to singleton collision must not continue. (#1636)
* fix: Destroyed NetMan due to singleton collision must not continue.

* Added comment

* Added Comment
2020-04-01 11:29:35 +02:00
Paul Pacheco
f2ccb59ae6
feat: logging api (#1611)
* feat: logging api

Provide a ILogger (from unity framework) per class
it can track loggers per class and use  Debug.unityLogger by default

* Logger field should never change

* Support loggers for static classes

Unfortunately we can't have generics with static classes.
Thus we can keep the loggers in a Dictionary instead indexed by name

if you need a logger for a static class,  you can just do:

private static readonly ILogger logger = LogFactory.GetLogger(nameof(MyClass));

* Remove unused using

* Better tests by providing a mock handler
2020-04-01 11:27:51 +02:00
James Frowen
4fea1ee9b3
making singleton private set (#1635) 2020-04-01 01:11:45 +02:00
James Frowen
8087d3da7d
explicit type preference (#1634) 2020-03-31 22:57:47 +02:00
James Frowen
2617d65ad1
removing unnecessary this (#1633) 2020-03-31 22:57:27 +02:00
James Frowen
1e326ce6fe
removing unnecessary casts (#1632) 2020-03-31 22:56:54 +02:00
James Frowen
7dde2f80fe
removing and sort using (#1631) 2020-03-31 22:56:30 +02:00
James Frowen
f19e2d3aac
more formatting (#1630) 2020-03-31 22:55:58 +02:00
James Frowen
c6501aab06
formatting (#1629) 2020-03-31 12:15:30 -05:00
Chris Langsenkamp
7f208ffba9 Updated Comments 2020-03-30 22:28:59 -04:00
James Frowen
1ae038172a
perf: faster NetworkReader pooling (#1623)
* replacing stack with array for NetworkReaderPool

* Reader tests
2020-03-30 17:08:21 +02:00
James Frowen
f9335bb5f3
Finding WeaverAssembler path before running tests (#1608)
* Finding WeaverAssembler path before running tests

* using nameof
2020-03-30 14:45:36 +02:00
James Frowen
dcb618bfd6
fixing MissingReferenceException (#1624) 2020-03-29 21:39:18 -04:00
Paul Pacheco
deb286f0c2 refactor: simplify getting hook method 2020-03-29 14:25:07 -05:00
Paul Pacheco
518233cd7e This is always true 2020-03-29 14:11:54 -05:00
Paul Pacheco
69fdbea892 Unused using 2020-03-29 14:11:54 -05:00
James Frowen
da2e61b30a
doc comments (#1622) 2020-03-29 11:41:21 -05:00
vis2k
254a49496f NetworkWriterPool: add performance comment 2020-03-29 17:33:03 +02:00
vis2k
d865dddb4e 10k demo: deterministic health updates 2020-03-29 17:29:11 +02:00
James Frowen
4fa43a9471
perf: faster NetworkWriter pooling (#1620)
* using array in NetworkWriterPool instead of stack

* Using property

adding debug warning if pool is full

* adding tests for  NetworkWriterPool

* Update NetworkWriterPool.cs

* Update NetworkWriterPoolTest.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-03-29 17:16:16 +02:00
Paul Pacheco
e96b687563 Revert "perf: faster NetworkWriter pooling (#1616)"
This reverts commit 5128b122fe.
2020-03-28 19:04:06 -05:00
Paul Pacheco
96e690ef9c Revert "Explain why 10"
This reverts commit e8cdb7569d.
2020-03-28 19:03:53 -05:00
Paul Pacheco
e8cdb7569d Explain why 10 2020-03-28 18:14:48 -05:00
James Frowen
e12f33d306
fixing MissingReferenceException (#1619) 2020-03-28 15:00:48 -04:00
James Frowen
5128b122fe
perf: faster NetworkWriter pooling (#1616)
Stack turned out to be slow way to pool NetworkWriters.
Replace them with an array

see #1614
2020-03-28 12:58:00 -05:00
Paul Pacheco
61163cacb4
perf: replace isValueType with faster alternative (#1617)
According to vis benchmark here https://github.com/vis2k/Mirror/issues/1614#issuecomment-605443808
isValueType is an expensive operation.

This microoptimization replaces isValueType for a faster (not so readable) alternative
2020-03-28 12:27:42 -05:00
Paul Pacheco
166b8c9467
perf: use byte[] directly instead of MemoryStream (#1618)
* perf: use byte[] directly instead of MemoryStream

* Optimize writing int32 and int64

* Update Assets/Mirror/Runtime/NetworkWriter.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/NetworkWriter.cs

Co-Authored-By: vis2k <info@noobtuts.com>

* Update Assets/Mirror/Runtime/NetworkWriter.cs

* Start with bigger buffer

* Woops,  should have double checked suggestion

* Removed invalid Test

We should not require NetworkWriter to behave in certain way when Position
is set to out of bounds.

That is an invalid use of NetworkWriter, so NW should be free to do any behavior

* smells

* Update NetworkWriter.cs

Co-authored-by: vis2k <info@noobtuts.com>
2020-03-28 18:17:53 +01:00
vis2k
a4bd6e7e66
Examples: added 10k monsters benchmark (#1615)
* scene and 1bit from kenney

* tilemap

* slice sprites

* name some

* create empty tile

* 2d cam

* monster prefab

* 100 monsters

* monster netid

* rename

* zoom cam, 10k monsters

* resave scene for sceneids

* Monster script

* add transparent textures for monsters

* replace monster sprite with transparent

* scripts

* mvoed into benchmarks folder

* player sprite

* tilemap background

* player prefab

* health update
2020-03-28 13:03:19 +01:00
Paul Pacheco
3fb7559561 remove redundant code block 2020-03-27 17:25:33 -05:00
Paul Pacheco
f56471085f Fix typos in tests 2020-03-27 17:21:24 -05:00
Paul Pacheco
10813cb9eb Reduce cognitive complexity of GenerateClassOrStructReadFunction 2020-03-27 17:14:39 -05:00
Paul Pacheco
ef80575787 Remove redundant code block 2020-03-27 17:06:59 -05:00
Paul Pacheco
6587c1f7b9 Better comment 2020-03-27 17:03:40 -05:00
Paul Pacheco
1f8b27e927 Remove unused using 2020-03-27 17:02:59 -05:00
Lymdun
5d76afbe29
perf: Remove redundant mask (#1604) 2020-03-27 11:34:56 +01:00
Paul Pacheco
dbe1365329 fix naming convention 2020-03-26 23:15:09 -05:00
Paul Pacheco
1d4eed77ed Simplify getting methods 2020-03-26 19:28:17 -05:00
James Frowen
c6023c8275
unit test for IsActiveScene (#1597) 2020-03-27 00:22:46 +01:00
Paul Pacheco
c1cfc42181 perf: simplify and speed up getting methods in weaver 2020-03-26 17:35:15 -05:00
Paul Pacheco
ebc817028b reduce cognitive complexity of CheckForHookFunction 2020-03-26 17:35:15 -05:00
Paul Pacheco
c6e8717909 simplify getting attribute fields 2020-03-26 17:35:15 -05:00
Chris Langsenkamp
5146e95fe0 Udpated scene file 2020-03-26 18:15:44 -04:00
vis2k
6151edc730 rename test 2020-03-26 21:27:47 +01:00
vis2k
e059b23a7f
NetworkManager.StopHost stops client, then server. Seems more consistent this way. (#1602) 2020-03-26 21:10:16 +01:00
vis2k
678ac68b58
fix: #1515 - StopHost now invokes OnServerDisconnected for the host client too (#1601)
* fix: #1515 - StopHost now invokes OnServerDisconnected for the host client too

* avoid NullReferenceException when calling StopHost without StartHost

* test WIP

* test
2020-03-26 20:54:53 +01:00
Paul Pacheco
c8a1a5e56f
feat: now you can assign scenes even if not in Editor (#1576)
* feat: now you can assign scenes even if not in Editor

Instead of using scene name, scenes are now identified by path.
This fixes a couple problems:

1) In the room example, now you can assign the scenes even if they have
not been added to the editor.  This was a constant pain because if you
open the offlinescene, all the scenes got wiped.  You had to add the
scenes to the editor and reassign them all again.   With this PR you
will still need to add them to the editor, but they will remain
assigned.

2) It is possible for multiple scenes to have the same name,  but it is
not possible for multiple scenes to have the same path. So this is
a more robust way to identify scenes

This also greatly simplifies the scene SceneDrawer

BREAKING CHANGE: You will need to reassign your scenes after upgrade

* Automatically fix properties that were using name

If you open a NetworkManager or other gameobject that uses a scene name
it now gets converted to scene path by the SceneDrawer

* Use get scene by name

* Scene can never be null

* Update Assets/Mirror/Examples/AdditiveScenes/Scenes/MainScene.unity

* Issue warning if we drop the scene

* Issue error if scene is lost

* Add suggestion on how to fix the error

* Keep backwards compatibility, check for scene name

* cache the active scene

* Update Assets/Mirror/Editor/SceneDrawer.cs

Co-Authored-By: James Frowen <jamesfrowendev@gmail.com>

* GetSceneByName only works if scene is loaded

* Remove unused using

Co-authored-by: James Frowen <jamesfrowendev@gmail.com>
2020-03-26 17:49:47 +01:00
vis2k
8c6ae0f8b4
fix: #1599 - NetworkManager HUD calls StopHost/Server/Client depending on state. It does not call StopHost in all cases. (#1600) 2020-03-26 17:34:16 +01:00
Paul Pacheco
7a6b854179 Simplify finding custom attributes 2020-03-26 09:52:39 -05:00
Paul Pacheco
d530d7a1e4 Lists are not needed anymore 2020-03-26 07:50:16 -05:00
Paul Pacheco
97fe7a0a01 Simplify adding substitute methods 2020-03-26 07:46:15 -05:00
Paul Pacheco
9c4d172664 reduce Cognitive complexity 2020-03-26 00:36:15 -05:00
Paul Pacheco
486b094b22 reduce Cognitive complexity 2020-03-26 00:33:04 -05:00
Paul Pacheco
559cf80755 parameter name matches base class 2020-03-26 00:25:35 -05:00
Paul Pacheco
910aeab4eb fix smells 2020-03-26 00:24:20 -05:00
Paul Pacheco
3029467709 fix flaky test 2020-03-26 00:17:22 -05:00
Paul Pacheco
de768d142f Remove redundant if 2020-03-25 05:02:04 -05:00
Paul Pacheco
62525a9b4b Use List instead of yield return 2020-03-25 04:53:20 -05:00
Paul Pacheco
307807d68c Use List instead of yield return 2020-03-25 04:53:20 -05:00
vis2k
ad39ddc92f
NetworkTransform rotation compression removed. Gets rid of endless discussions, optimizations and issues. Sending a quaternion is never going to fail. (#1595)
* NetworkTransform rotation compression removed. Gets rid of endless discussions, optimizations and issues. Sending a quaternion is never going to fail.

* keep empty file

* keep empty file
2020-03-25 10:18:07 +01:00
Chris Langsenkamp
ef2f6b45bc Removed noisy warning and added reason in comments 2020-03-24 23:56:52 -04:00
Chris Langsenkamp
111ae51102 Room Example shows how to get Network Manager out of DontDestroyOnLoad 2020-03-24 22:04:54 -04:00
Chris Langsenkamp
d034ef616f feat: Added Virtual OnRoomStopServer to NetworkRoomManager and Script Template 2020-03-24 22:02:01 -04:00
Paul Pacheco
8026f6dcac unnest ifs 2020-03-24 20:17:03 -05:00
Paul Pacheco
0541b339ed Merge ifs, fix smells 2020-03-24 20:14:43 -05:00
Paul Pacheco
9c917c582e Remove unused using 2020-03-24 20:09:05 -05:00
Paul Pacheco
2a3470dfb4 Helpers should not be instantiated 2020-03-24 20:08:42 -05:00
Paul Pacheco
b740b2487b this is not code 2020-03-24 20:07:30 -05:00
Paul Pacheco
260e37cbb2 Reduce cognitive complexity of OnCompilationFinished 2020-03-24 20:04:34 -05:00
Paul Pacheco
6f04ff77d7 Remove commented out code 2020-03-24 20:02:49 -05:00
Paul Pacheco
48cf45b8ce Remove unused method 2020-03-24 20:01:55 -05:00
Paul Pacheco
f4bc7ca691 use same parameter name in override 2020-03-24 20:01:00 -05:00
Paul Pacheco
433818b440 Remove cognitive complexity of NetworkInformation
Split up large method,
Use static variables instead of fields
2020-03-24 19:58:39 -05:00
Chris Langsenkamp
85c4f1bcf1 Remove unused variable 2020-03-24 17:58:04 -04:00
vis2k
347cb5374d
fix: #1593 - NetworkRoomManager.ServerChangeScene doesn't destroy the world player before replacing the connection. otherwise ReplacePlayerForConnection removes authority form a destroyed object, causing all kidns of errors. The call wasn't actually needed. (#1594)
* fix: #1593 - NetworkRoomManager.ServerChangeScene destroys the world player after replacing the connection, not before. previously ReplacePlayerForConnection would operate on dead data.

* remove it entirely
2020-03-24 22:28:04 +01:00
Paul Pacheco
9a50fbd507 Remove redundant initialization 2020-03-24 15:59:17 -05:00
Paul Pacheco
9fe718e8d5 playerName -> PlayerName 2020-03-24 15:59:17 -05:00
Paul Pacheco
72de733a62 remove redundant initialization 2020-03-24 15:59:17 -05:00
Paul Pacheco
1be3333905 Move ResolveMethod together 2020-03-24 15:59:17 -05:00
Paul Pacheco
25b13f83c2 CheckDLLPath -> CheckDllPath 2020-03-24 15:59:17 -05:00
Paul Pacheco
f74abc8f86 UnityEngineDLLDirectoryName -> UnityEngineDllDirectoryName 2020-03-24 15:59:17 -05:00
Paul Pacheco
e83daa8c5c drawSyncList -> DrawSyncList 2020-03-24 15:59:17 -05:00
MrGadget
c796116758
Remove Usage of LAN in HUD and Docs (#1592)
* Remove usage of LAN in HUD and docs

* Server + Client

* Host (Server + Client)

* HUD Image
2020-03-24 21:55:18 +01:00
Paul Pacheco
4c15fcf771 fix naming conventions 2020-03-24 15:25:54 -05:00
Paul Pacheco
6968234689 Reduce cognitive complexity of OnPostProcessScene
Fixes smell found by sonar qube
No code changes, just split into 2 functions
2020-03-24 15:20:42 -05:00
Paul Pacheco
e841aa9bf7 merge ifs 2020-03-24 15:10:32 -05:00
Paul Pacheco
9cc67938c3 remove redundant cast 2020-03-24 15:08:29 -05:00
Paul Pacheco
2d554d446e Reduce cognitive complexity of RebuildObservers
Identified as a smell by sonar qube
No logic changes, just refactor the code into a separate functions
2020-03-24 14:52:19 -05:00
Chris Langsenkamp
f084706bdf Scene meta update 2020-03-24 15:28:34 -04:00
Paul Pacheco
c69ae75d6a simplify parameter change 2020-03-24 13:47:10 -05:00
Paul Pacheco
aba028e74b Reduce cognitive complexity of NetworkRoomPlayer.OnGUI
fixes code smell in SQ, no behavior change,  just split the method into
smaller methods
2020-03-24 12:52:02 -05:00
Paul Pacheco
102a8822b0 fix smell discard unused parameter 2020-03-24 12:52:02 -05:00
Paul Pacheco
e8c9d7951d test that we cannot unpack the wrong message 2020-03-24 10:37:54 -05:00
Paul Pacheco
a7ab26fa7d Simplify tests 2020-03-24 08:31:19 -05:00
Paul Pacheco
4a9dca3c1c Simplify tests 2020-03-24 08:16:19 -05:00
Paul Pacheco
1362b80eb4 A test should only test one thing 2020-03-24 08:11:42 -05:00
Paul Pacheco
f6bb3a9f06 use Assert.Throws 2020-03-24 08:09:41 -05:00
Paul Pacheco
2714be3869 Remove unused using 2020-03-24 08:04:42 -05:00
Paul Pacheco
3321dd8a95 Move NSubstitute to common folder, It will be used in play mode tests 2020-03-24 08:03:22 -05:00
Paul Pacheco
19a17c15b9 MemoryTransport is only for tests 2020-03-24 08:01:39 -05:00
vis2k
9e26b26689
NetworkIdentity.isServer simplified via one flag instead of helper variable + netId check. When isServer is set in OnStartServer, netId is set to != 0 in any case, so the previous check was unnecessary. (#1590)
* NetworkIdentity.isServer simplified via one flag instead of helper variable + netId check

* simplify teardowns

* NetworkIdentityTests can set isServer directly now

* networkbehaviourtests simplified

* NetworkServerTests can set isServer directly now

* remove comment
2020-03-24 11:25:04 +01:00
vis2k
9d088bc942
fix #1484: isServer state in NetworkIdentity is not dependent on NetworkServer.active anymore. Fixes a bug where isServer was already false in OnDestroy, but we sometimes still need it there to save a player etc. Also added a test to prevent it in the future. (#1585)
* fix #1484: revert isServer simplifiy. Fixes a bug where isServer was already false in OnDestroy, but we need sometimes still need it there to save skillbars etc.

* update comment
2020-03-24 11:07:40 +01:00
vis2k
2f87f3cca7 Runtime tests setup 2020-03-24 10:52:14 +01:00
Paul Pacheco
613356a6d0 fix smell, call parameter the same as base method 2020-03-23 10:29:45 -05:00
Paul Pacheco
0beba4dd2b fix smell, call parameter the same as base method 2020-03-23 10:28:49 -05:00
Paul Pacheco
f4a8692873 fix smell, keep parameter name in override 2020-03-23 10:27:51 -05:00
Paul Pacheco
bb655de71b fix smell keep overloaded methods together 2020-03-23 10:26:25 -05:00
Paul Pacheco
3a73a11a55 fix smell, use pascal case 2020-03-23 10:22:06 -05:00
Paul Pacheco
effb05e732 fix smells 2020-03-23 10:21:45 -05:00
James Frowen
cf55333a07
fix: overriden hooks are invoked (fixes #1581) (#1584)
* failing tests for virutal methods used by syncvar hook

* replacing Assert.fail to stop OnDeserialize failed error

* adding tests to make sure classes are set up correctly

* fix: call overriden hooks

Use a virtual call for hooks.  fixes #1581

Co-authored-by: Paul Pacheco <paulpach@gmail.com>
2020-03-23 14:06:24 +01:00
James Frowen
c7c3ee4ab9
Tests for SyncLists that use structs (#1583) 2020-03-22 17:05:50 -05:00
Paul Pacheco
addf847675
Move comments to previous line (#1579)
* Move comments to the previous Lines

We have a mix of comments at on the previous line and at the end of
the line. We need to "pick one way and stick with it".

Per the C# code guidelines, comments go on the previous line. See here:
https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions

This also makes pull requests more readable since comments are less
likely to wrap

There are no code changes here, just a search and replace for all comments

This also makes cloc counts more accurate as it can better determine
how many lines of comments vs code we have

* Update Assets/Mirror/Components/NetworkTransformBase.cs

* Update Assets/Mirror/Examples/ListServer/ListServer.cs

* Update Assets/Mirror/Tests/Editor/WeaverTests~/TestingScriptableObjectArraySerialization.cs

* Update Assets/Mirror/Tests/Editor/WeaverTests~/TestingScriptableObjectArraySerialization.cs
2020-03-21 19:31:10 +01:00
MrGadget
b627779acd
fix: Make SendToReady non-ambiguous (#1578) 2020-03-21 11:33:35 -05:00
James Frowen
ad10ca115e
Weaver test for adding guard code (#1574)
* Adding check to make sure weaver adds code

* tests for network behaviour

* marking methods as static

* adding comment to method body

* making Weaver internal

* replacing string
2020-03-21 16:03:48 +01:00
James Frowen
0eb180555d
Fixing exceptions (#1569)
* removing another use of serializedObject

breaks when target is null

* adding check if target is NetworkBehaviour

* moving check from OnInspectorGUI
2020-03-21 14:46:02 +01:00
MrGadget
3156504270
fix: Added LogFilter.Debug check in a few places (#1575) 2020-03-21 14:42:33 +01:00
Chris Langsenkamp
4d827cd9f6 fix: comment punctuation 2020-03-20 20:30:35 -04:00
Chris Langsenkamp
cedbd8fb7a Make roomPlayerPrefab protected so it can be referenced in derived classes 2020-03-20 20:23:16 -04:00
Chris Langsenkamp
a8c4d6682e Fixed Template 2020-03-20 19:22:38 -04:00
James Frowen
d9cc73eabe
moving code to its own class (#1573)
* moving code to its own class

* using code suggestions
2020-03-20 22:21:01 +01:00
Paul Pacheco
59687675c9 Fix sonarqube null warning
Once upon a time, connections could be null here.  This is no longer
the case, connections always have something,

Even if they were null,  this method would not work at all because
the conn.Send call at the bottom would throw NRE.

Therefore the null checks here are unnecesary
2020-03-20 08:01:33 -05:00
FirstGearGames
57eff86e3f
Change LogError to Log. Added more details. (#1545)
Since messages behave similar to events and given the process is not technically breaking, using LogError seems incorrect. Using Log, maybe LogWarning would be more appropriate. Added additional text to clarify why the user may be seeing that log entry.
2020-03-20 10:56:02 +01:00
James Frowen
e040e6dc85
Removing use of serialized object (#1568)
using serializedObject causes AgumentException if target is null
2020-03-19 21:56:34 -05:00
James Frowen
c7c3ea8e0f
Moving draw synclist to class (#1566)
creating SyncListDrawer
2020-03-19 21:32:00 -05:00
James Frowen
a520c0e41d
Simplifying get type (#1567)
* adding IsParameterControlledByCurve check

* Simplifying GetType

Adding Warning because target is only null is something has gone wrong

* removing serializedObject.update

we dont use any values from serializedObject so we dont need to call update
2020-03-19 21:31:08 -05:00
James Frowen
421832f650
Cleaning up network behaviour inspector (#1565)
split large method into smaller ones
2020-03-19 20:46:53 -05:00
James Frowen
cc4032e236
Adding header before sync list (#1564)
matches untiy's Header style
2020-03-19 20:04:48 -05:00
James Frowen
55107115c6
feat: SyncSet and SyncDictionary now show in inspector (#1561)
SyncSet and SyncDictionary now show in inspector
2020-03-19 20:02:51 -05:00
Paul Pacheco
6b0fa18e0f Remove unused HideScriptField 2020-03-19 19:28:47 -05:00