* add health lives and score to Tank
* add damage and a source object to projectile
* update prefabs to use new vars
* add gamecontroller to manage state and UI
* update scene to use new gamecontroller and ui
* retag as player
* code cleanup
* replaced GameController with a custom NetMan
* removed lives and respawning. added state management
* scene and prefab updates
* fix billboarding for player names
* fix: cant win game when alone
* darker menu colors
* Added SyncList.RemoveAll and unit test.
* Added RemoveAllNone unit test for SyncList
* SyncList.RemoveAll cleanup
* RemoveAll no longer calls collections .Add
Unit tests for SyncList.RemoveAll now check clientSyncList.
* 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>
* 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
* 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>
* 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>
* test for RegisterPrefab with handler
* comments
* finishing tests and ignore some cases
* updating checks and log messages
* more tests
* removing test cases
* 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
* 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
* 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>
* 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>
* 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>
* 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>
* 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>
* 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
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
* 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
* 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>
* 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>
* 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
* 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>
* 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>
* 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>
* 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
* 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
* 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>
* 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>