Commit Graph

4292 Commits

Author SHA1 Message Date
vis2k
c8070a3cac more renaming 2021-09-25 15:56:19 +08:00
vis2k
9b6862fcbe NetworkBehaviourInspector: correct field/method naming 2021-09-25 15:49:12 +08:00
vis2k
3d8ba67d32 xml comments not needed in editor inspector 2021-09-25 15:46:35 +08:00
MrGadget
aa41c5f5e0
Make NetworkConnection.observing public (#2942)
- NetworkIdentity.observers is already public
2021-09-25 11:27:25 +08:00
vis2k
7e546cf799
fix: #2928 - Weaver now recommends 'readonly' keywords for SyncObjects (#2941)
* fix: #2928 - Weaver now recommends 'readonly' keywords for SyncObjects. prepares for SyncField<T> as well.

* fix weaver tests
2021-09-25 11:27:03 +08:00
MrGadget1024
51cf44cde7 Simplified interpolations 2021-09-24 07:21:46 -04:00
MrGadget1024
23f1b2b0a5 Remove unnecesary pragmas 2021-09-24 07:21:02 -04:00
MrGadget
60692f0373
Force Network Manager to scene root if DDOL (#2936) 2021-09-24 12:52:53 +08:00
vis2k
2d2710f60e Weaver: SyncVarProcessor renamed to SyncVarAttributeProcessor 2021-09-24 11:03:51 +08:00
vis2k
a0c3ef1c2c SyncVarTests renamed to SyncVarAttributeTests 2021-09-24 10:57:43 +08:00
MrGadget1024
83c92ce9bf Updated Pong Example
- Applied BallPhysics material to Ball
- Turned off Sync / Interp Rotation on Ball and Racket
2021-09-23 14:03:39 -04:00
MrGadget1024
f1cf841bea Added NI to PlayArea in Game scene of MultipleAdditiveScenes example 2021-09-21 06:29:12 -04:00
vis2k
ad391f2b5f breaking: NetworkBehaviour.SyncVar/GameObject/NetworkIdentity/NetworkBehaviourEqual functions made internal.
-> avoid tests exposed workarounds
-> prepares for SyncField<T>
2021-09-21 16:50:14 +08:00
vis2k
6a1f355a63 Tests: SyncVarNetworkIdentityEqual exposing simplified now that it's static 2021-09-21 16:41:02 +08:00
vis2k
d51fd23175 Weaver: SyncVarprocessor.GenerateSyncVarSetter simplified again now that all equals functions are static 2021-09-21 16:22:26 +08:00
vis2k
4cbf575a2d Weaver: NetworkBehaviour.SyncVarEqual made static (cleaner, reusable from the outside for SyncField<T> later) 2021-09-21 16:22:26 +08:00
vis2k
6ff39bc0a0 Weaver: NetworkBehaviour.SyncVarGameObjectEqual made static (cleaner, reusable from the outside for SyncField<T> later) 2021-09-21 16:22:21 +08:00
vis2k
e18ecf8a01 Weaver: NetworkBehaviour.SyncVarNetworkBehaviourEqual made static (cleaner, reusable from the outside for SyncField<T> later) 2021-09-21 16:22:16 +08:00
vis2k
cbf9987d1a Weaver: NetworkBehaviour.SyncVarNetworkIdentityEqual made static (cleaner, reusable from the outside for SyncField<T> later) 2021-09-21 16:22:10 +08:00
vis2k
fd70b2a6ad Weaver: SyncVarProcessor.GenerateSyncVarSetter: Ldarg_0, Ldarg_1 moved into if branches so that methods like SyncVarNetworkIdentityEqual can be made static
(static functions can't have 'this' as first parameter on stack)
2021-09-21 16:22:01 +08:00
vis2k
74c0f271c9 NetworkBehaviour.HasSyncObjects: internal is enough 2021-09-21 11:30:41 +08:00
vis2k
f1b8aa4fc2 feature: NetworkBehaviour: HasSyncObjects for NetworkBehaviourInspector to avoid Reflection 2021-09-21 11:28:02 +08:00
vis2k
7c28f06c8f NetworkBehaviourInspector: remove unused syncVarNames 2021-09-21 11:22:37 +08:00
vis2k
8c0bd9dca2 syntax & comments cleanup 2021-09-21 11:20:44 +08:00
MrGadget1024
7aebf4cb5a syntax 2021-09-20 13:19:53 -04:00
MrGadget
a38800b443
Refactor match int mgmt (#2935)
* 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
2021-09-20 12:47:08 -04:00
vis2k
d9d84b6bcc explain SyncVar hook guard 2021-09-20 23:57:25 +08:00
MrGadget
f88190b756
fix: Eliminate potential errors in MatchInterestMgmt (#2934)
* 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
2021-09-20 11:56:26 -04:00
vis2k
e0da23e45c add comment 2021-09-20 21:16:06 +08:00
MrGadget
8555048548
feat: Implemented ChangeOwnerMessage (#2924)
* Implemented ChangeOwnerMessage
- Separates ownership change from Spawn message
- NetworkIdentityTests updated

* commented log
2021-09-20 20:43:10 +08:00
MrGadget1024
c8bea97491 String interpolation in SyncVarAccessReplacer 2021-09-20 08:18:32 -04:00
MrGadget1024
4c60de6680 String interpolation in SyncVarAccessReplacer 2021-09-20 08:15:46 -04:00
MrGadget
9cab21921f
String interpolation (#2930)
* 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>
2021-09-20 08:07:07 -04:00
MrGadget
185a6c3815
fix: Obsolete SyncObject Flush method (#2931)
* fix: Obsolete SyncObject Flush method

* fixed test
2021-09-20 19:40:46 +08:00
vis2k
1afed306af comment 2021-09-20 19:19:20 +08:00
vis2k
9f4cf44217 Weaver: GetSyncVarStart simplified 2021-09-20 19:17:08 +08:00
vis2k
e755c2ad9a comment 2021-09-20 19:12:08 +08:00
vis2k
37af48b83e Weaver: WeaverLists renamed to SyncVarAccessLists because that's what it's for 2021-09-20 19:11:20 +08:00
vis2k
3dbab83615 Weaver: PropertySiteProcessor renamed to SyncVarAccessReplacer and updated comments/syntax to make it easier to understand 2021-09-20 19:07:39 +08:00
vis2k
c0db7fce38 syntax 2021-09-20 18:53:12 +08:00
vis2k
411a531eda comment 2021-09-20 18:51:55 +08:00
Gabriel Elkind
052cf6c183
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
2021-09-20 11:42:34 +08:00
MrGadget1024
c120623d7d Proper case in comments 2021-09-19 15:15:16 -04:00
vis2k
af0a67d4f8 comment 2021-09-19 20:12:31 +08:00
vis2k
a848b8bb7c feature: Tanks demo health bars to test [SyncVar]s 2021-09-19 19:51:20 +08:00
vis2k
b537d423a1 use string interpolation everywhere 2021-09-19 17:00:36 +08:00
vis2k
a6d686fae1 NetworkBehaviour.SetDirtyBit renamed to SetSyncVarDirtyBit because that's what it does. avoids misconceptions. 2021-09-19 16:53:08 +08:00
vis2k
bc4224dcb7 syntax 2021-09-19 16:18:00 +08:00
vis2k
0743e73ad8 syntax 2021-09-19 15:51:06 +08:00
vis2k
d573e69e44 NetworkServer.SendToReady(identity, ...) misleading name changed to SendToObservers because it actually sends to the identity's observers, not to all ready connections 2021-09-19 15:50:32 +08:00
Robin Rolf
0828087e70
NetworkLoop needs to be public to expose events (#2925)
See ff34a50fdf and #2826
2021-09-19 15:37:13 +08:00
vis2k
272baceabb
perf: NetworkServer.Broadcast O(N) spawned iteration removed. dirty bits for spawned without observers are now cleared when adding the first observer instead (#2923)
* 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
2021-09-19 11:09:35 +08:00
vis2k
10689d3131
feature: SyncObject IsRecording() to prepare for NetworkServer.Update not calling ClearAllComponentsDirtyBits on all spawned entities with no observers. (#2926)
* feature: SyncObject IsRecording() to prepare for NetworkServer.Update not calling ClearAllComponentsDirtyBits on all spawned entities with no observers.

* fix test
2021-09-19 11:05:40 +08:00
MrGadget
4efb0a64ff
fix: Clear hasAuthority when Unspawning (#2927)
* fix: Clear hasAuthority when Unspawning

* Added UnSpawnAndClearAuthority test
2021-09-19 10:15:42 +08:00
MrGadget1024
113d2b9cf9 fixed comment 2021-09-18 14:06:31 -04:00
vis2k
20daad4806 add TODOs 2021-09-18 23:43:47 +08:00
vis2k
c1a7920076 remove test assert that depends on the current way where changes are actually tracked and only cleared in update 2021-09-18 23:33:24 +08:00
vis2k
2df0975752 Test: SyncList/Set/Dictionary ever growing changes while no observers prevention 2021-09-18 23:23:55 +08:00
vis2k
cb46fd5ce4 SyncList.changes comments 2021-09-18 20:09:39 +08:00
vis2k
81114a498f i dont need to leave comments 2021-09-18 19:47:57 +08:00
vis2k
0ede6b9da9 NetworkIdentity.RemoveObserverInternal renamed to RemoveObserver for consistency with AddObserver (both functions are internal anyway) 2021-09-18 19:05:51 +08:00
vis2k
d2acc707ac NetworkIdentity: group observer add/remove/clear functions together 2021-09-18 19:03:50 +08:00
vis2k
de032d6edb better 2021-09-18 19:01:32 +08:00
vis2k
3a70eeccfd better 2021-09-18 18:58:15 +08:00
vis2k
6a50fd0c7f Tests: NetworkServer dirty bits if no observers clearing test 2021-09-18 18:55:10 +08:00
MrGadget1024
9727e0e7e2 updated comment 2021-09-18 06:19:01 -04:00
Devon Merner
413b612856
Prevent NetworkManager.ServerChangeScene from being called if a scene change is already in progress for that scene. (#2903) 2021-09-18 16:16:47 +08:00
vis2k
20056edc0f NetworkServer.Broadcast: explain ClearSpawnedDirtyBits better 2021-09-18 12:34:52 +08:00
vis2k
acebef0e16 NetworkBehaviour.IsDirty: OR both bitmasks instead of comparing separately. 2021-09-18 12:04:18 +08:00
vis2k
2208b6ce52
perf: breaking: SyncObjects (SyncList/SyncSet/SyncDict) Dirty Searching (O(N)) replaced with bit mask (O(1)) (#2922)
* wip

* internal field

* huh

* more

* use ondirty

* wip

* fix index

* test

* syntax

* restore old TOOD

* xml comment

* fix broken test
2021-09-18 11:56:28 +08:00
vis2k
3d624941a5 fix broken test from rename 2021-09-17 18:44:09 +08:00
MrGadget1024
1bc8232d60 Updated NetworkManager ScriptTemplate 2021-09-17 04:22:52 -04:00
vis2k
76ebb86d6d Tests: don't need to inherit from SyncList<T> anymore 2021-09-17 14:53:02 +08:00
vis2k
ccb901e708 remove strange import 2021-09-17 14:50:39 +08:00
vis2k
1a5fedf9bf Tests simplified 2021-09-17 13:37:49 +08:00
vis2k
a9c0ae014a Tests simplified 2021-09-17 13:36:18 +08:00
vis2k
8adb00bebe Tests simplified 2021-09-17 13:34:46 +08:00
vis2k
1487b2a27c Tests simplified 2021-09-17 13:33:01 +08:00
vis2k
c722f6988c breaking: SyncObject.Flush() renamed to ClearChanges() to make it more obvious.
'Flush' sounds like changes would be sent out over the wire.
When really it only clears changes.
2021-09-17 13:27:05 +08:00
vis2k
53d316bd9f syntax 2021-09-17 13:01:11 +08:00
vis2k
79f492aaf8 TODO 2021-09-17 12:48:55 +08:00
vis2k
19747954a3 fix: Weaver now allows exactly 64 SyncVars too 2021-09-16 21:50:44 +08:00
vis2k
88e1be8965 Tests: rename 2021-09-16 21:48:52 +08:00
vis2k
f01a701779 Tests: Weaver: SyncVarsExactlyMax 2021-09-16 21:48:18 +08:00
vis2k
6ebcbd8311 Tests: Weaver: SyncObjectsExactlyMax 2021-09-16 21:39:39 +08:00
vis2k
42cc181cfa syntax 2021-09-16 21:37:42 +08:00
vis2k
2e0b58c624 rename 2021-09-16 21:36:39 +08:00
vis2k
d1e60a0f62 fix: Weaver now detects and shows an error for >64 SyncObjects instead of silently not syncing them 2021-09-16 21:26:09 +08:00
vis2k
c77a50258d Too many SyncVars message improved with exact amount 2021-09-16 21:16:13 +08:00
vis2k
4daabd2fe4 syntax 2021-09-16 20:58:54 +08:00
vis2k
107e5b9f3b add comments 2021-09-16 15:13:09 +08:00
vis2k
98082c8527 comments 2021-09-16 14:50:06 +08:00
vis2k
3da14d2430 Tests: SetDirtyBit 2021-09-16 14:49:33 +08:00
vis2k
f43a29e712 NetworkBehaviour.AnySyncObjectDirty: reuse DirtyobjectBits 2021-09-16 14:42:44 +08:00
vis2k
0ad7cf7da7 Tests: IsDirty checks sync interval 2021-09-16 14:41:31 +08:00
vis2k
58ef1faaf9 Tests: IsDirty 2021-09-16 14:40:30 +08:00
vis2k
7828f25875 Tests: add SyncVars 2021-09-16 14:38:43 +08:00
vis2k
d9320b72f4 syntax 2021-09-16 14:37:06 +08:00
vis2k
cc22fabe1d syntax 2021-09-16 14:36:38 +08:00
vis2k
b5b3d33704 syntax 2021-09-16 14:35:31 +08:00