@@ -425,7 +425,7 @@ internal void InitializeVariables()
425
425
sortedFields [ i ] . SetValue ( this , instance ) ;
426
426
}
427
427
428
- instance . NetworkBehaviour = this ;
428
+ instance . Initialize ( this ) ;
429
429
430
430
var instanceNameProperty = fieldType . GetProperty ( nameof ( NetworkVariableBase . Name ) ) ;
431
431
var sanitizedVariableName = sortedFields [ i ] . Name . Replace ( "<" , string . Empty ) . Replace ( ">k__BackingField" , string . Empty ) ;
@@ -624,15 +624,15 @@ private bool CouldHaveDirtyNetworkVariables()
624
624
return false ;
625
625
}
626
626
627
- internal static void HandleNetworkVariableDeltas ( List < NetworkVariableBase > networkVariableList , Stream stream , ulong clientId , NetworkBehaviour logInstance , NetworkManager networkManager )
627
+ internal void HandleNetworkVariableDeltas ( Stream stream , ulong clientId )
628
628
{
629
629
using ( var reader = PooledNetworkReader . Get ( stream ) )
630
630
{
631
- for ( int i = 0 ; i < networkVariableList . Count ; i ++ )
631
+ for ( int i = 0 ; i < NetworkVariableFields . Count ; i ++ )
632
632
{
633
633
ushort varSize = 0 ;
634
634
635
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
635
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
636
636
{
637
637
varSize = reader . ReadUInt16Packed ( ) ;
638
638
@@ -649,15 +649,15 @@ internal static void HandleNetworkVariableDeltas(List<NetworkVariableBase> netwo
649
649
}
650
650
}
651
651
652
- if ( networkManager . IsServer && ! networkVariableList [ i ] . CanClientWrite ( clientId ) )
652
+ if ( NetworkManager . IsServer && ! NetworkVariableFields [ i ] . CanClientWrite ( clientId ) )
653
653
{
654
654
// we are choosing not to fire an exception here, because otherwise a malicious client could use this to crash the server
655
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
655
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
656
656
{
657
657
if ( NetworkLog . CurrentLogLevel <= LogLevel . Normal )
658
658
{
659
- NetworkLog . LogWarning ( $ "Client wrote to { typeof ( NetworkVariable < > ) . Name } without permission. => { ( logInstance != null ? ( $ " { nameof ( NetworkObjectId ) } : { logInstance . NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { logInstance . NetworkObject . GetNetworkBehaviourOrderIndex ( logInstance ) } - VariableIndex: { i } " ) : string . Empty ) } ") ;
660
- NetworkLog . LogError ( $ "[{ networkVariableList [ i ] . GetType ( ) . Name } ]") ;
659
+ NetworkLog . LogWarning ( $ "Client wrote to { typeof ( NetworkVariable < > ) . Name } without permission. => { nameof ( NetworkObjectId ) } : { NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { NetworkObject . GetNetworkBehaviourOrderIndex ( this ) } - VariableIndex: { i } ") ;
660
+ NetworkLog . LogError ( $ "[{ NetworkVariableFields [ i ] . GetType ( ) . Name } ]") ;
661
661
}
662
662
663
663
stream . Position += varSize ;
@@ -673,32 +673,33 @@ internal static void HandleNetworkVariableDeltas(List<NetworkVariableBase> netwo
673
673
// - TwoTen
674
674
if ( NetworkLog . CurrentLogLevel <= LogLevel . Error )
675
675
{
676
- NetworkLog . LogError ( $ "Client wrote to { typeof ( NetworkVariable < > ) . Name } without permission. No more variables can be read. This is critical. => { ( logInstance != null ? ( $ " { nameof ( NetworkObjectId ) } : { logInstance . NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { logInstance . NetworkObject . GetNetworkBehaviourOrderIndex ( logInstance ) } - VariableIndex: { i } " ) : string . Empty ) } ") ;
677
- NetworkLog . LogError ( $ "[{ networkVariableList [ i ] . GetType ( ) . Name } ]") ;
676
+ NetworkLog . LogError ( $ "Client wrote to { typeof ( NetworkVariable < > ) . Name } without permission. No more variables can be read. This is critical. => { nameof ( NetworkObjectId ) } : { NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { NetworkObject . GetNetworkBehaviourOrderIndex ( this ) } - VariableIndex: { i } ") ;
677
+ NetworkLog . LogError ( $ "[{ NetworkVariableFields [ i ] . GetType ( ) . Name } ]") ;
678
678
}
679
679
680
680
return ;
681
681
}
682
682
long readStartPos = stream . Position ;
683
683
684
- networkVariableList [ i ] . ReadDelta ( stream , networkManager . IsServer ) ;
685
- networkManager . NetworkMetrics . TrackNetworkVariableDeltaReceived (
684
+ NetworkVariableFields [ i ] . ReadDelta ( stream , NetworkManager . IsServer ) ;
685
+ NetworkManager . NetworkMetrics . TrackNetworkVariableDeltaReceived (
686
686
clientId ,
687
- logInstance . NetworkObjectId ,
688
- logInstance . name ,
689
- networkVariableList [ i ] . Name ,
690
- logInstance . __getTypeName ( ) ,
687
+ NetworkObjectId ,
688
+ name ,
689
+ NetworkVariableFields [ i ] . Name ,
690
+ __getTypeName ( ) ,
691
691
stream . Length ) ;
692
692
693
693
( stream as NetworkBuffer ) . SkipPadBits ( ) ;
694
694
695
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
695
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
696
696
{
697
697
if ( stream . Position > ( readStartPos + varSize ) )
698
698
{
699
699
if ( NetworkLog . CurrentLogLevel <= LogLevel . Normal )
700
700
{
701
- NetworkLog . LogWarning ( $ "Var delta read too far. { stream . Position - ( readStartPos + varSize ) } bytes. => { ( logInstance != null ? ( $ "{ nameof ( NetworkObjectId ) } : { logInstance . NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { logInstance . NetworkObject . GetNetworkBehaviourOrderIndex ( logInstance ) } - VariableIndex: { i } ") : string . Empty ) } ") ;
701
+ NetworkLog . LogWarning (
702
+ $ "Var delta read too far. { stream . Position - ( readStartPos + varSize ) } bytes. => { nameof ( NetworkObjectId ) } : { NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { NetworkObject . GetNetworkBehaviourOrderIndex ( this ) } - VariableIndex: { i } ") ;
702
703
}
703
704
704
705
stream . Position = readStartPos + varSize ;
@@ -707,7 +708,8 @@ internal static void HandleNetworkVariableDeltas(List<NetworkVariableBase> netwo
707
708
{
708
709
if ( NetworkLog . CurrentLogLevel <= LogLevel . Normal )
709
710
{
710
- NetworkLog . LogWarning ( $ "Var delta read too little. { ( readStartPos + varSize ) - stream . Position } bytes. => { ( logInstance != null ? ( $ "{ nameof ( NetworkObjectId ) } : { logInstance . NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { logInstance . NetworkObject . GetNetworkBehaviourOrderIndex ( logInstance ) } - VariableIndex: { i } ") : string . Empty ) } ") ;
711
+ NetworkLog . LogWarning (
712
+ $ "Var delta read too little. { ( readStartPos + varSize ) - stream . Position } bytes. => { nameof ( NetworkObjectId ) } : { NetworkObjectId } - { nameof ( NetworkObject . GetNetworkBehaviourOrderIndex ) } (): { NetworkObject . GetNetworkBehaviourOrderIndex ( this ) } - VariableIndex: { i } ") ;
711
713
}
712
714
713
715
stream . Position = readStartPos + varSize ;
@@ -717,20 +719,20 @@ internal static void HandleNetworkVariableDeltas(List<NetworkVariableBase> netwo
717
719
}
718
720
}
719
721
720
- internal static void WriteNetworkVariableData ( List < NetworkVariableBase > networkVariableList , Stream stream , ulong clientId , NetworkManager networkManager )
722
+ internal void WriteNetworkVariableData ( Stream stream , ulong clientId )
721
723
{
722
- if ( networkVariableList . Count == 0 )
724
+ if ( NetworkVariableFields . Count == 0 )
723
725
{
724
726
return ;
725
727
}
726
728
727
729
using ( var writer = PooledNetworkWriter . Get ( stream ) )
728
730
{
729
- for ( int j = 0 ; j < networkVariableList . Count ; j ++ )
731
+ for ( int j = 0 ; j < NetworkVariableFields . Count ; j ++ )
730
732
{
731
- bool canClientRead = networkVariableList [ j ] . CanClientRead ( clientId ) ;
733
+ bool canClientRead = NetworkVariableFields [ j ] . CanClientRead ( clientId ) ;
732
734
733
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
735
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
734
736
{
735
737
if ( ! canClientRead )
736
738
{
@@ -744,11 +746,11 @@ internal static void WriteNetworkVariableData(List<NetworkVariableBase> networkV
744
746
745
747
if ( canClientRead )
746
748
{
747
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
749
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
748
750
{
749
751
using ( var varBuffer = PooledNetworkBuffer . Get ( ) )
750
752
{
751
- networkVariableList [ j ] . WriteField ( varBuffer ) ;
753
+ NetworkVariableFields [ j ] . WriteField ( varBuffer ) ;
752
754
varBuffer . PadBuffer ( ) ;
753
755
754
756
writer . WriteUInt16Packed ( ( ushort ) varBuffer . Length ) ;
@@ -757,28 +759,28 @@ internal static void WriteNetworkVariableData(List<NetworkVariableBase> networkV
757
759
}
758
760
else
759
761
{
760
- networkVariableList [ j ] . WriteField ( stream ) ;
762
+ NetworkVariableFields [ j ] . WriteField ( stream ) ;
761
763
writer . WritePadBits ( ) ;
762
764
}
763
765
}
764
766
}
765
767
}
766
768
}
767
769
768
- internal static void SetNetworkVariableData ( List < NetworkVariableBase > networkVariableList , Stream stream , NetworkManager networkManager )
770
+ internal void SetNetworkVariableData ( Stream stream )
769
771
{
770
- if ( networkVariableList . Count == 0 )
772
+ if ( NetworkVariableFields . Count == 0 )
771
773
{
772
774
return ;
773
775
}
774
776
775
777
using ( var reader = PooledNetworkReader . Get ( stream ) )
776
778
{
777
- for ( int j = 0 ; j < networkVariableList . Count ; j ++ )
779
+ for ( int j = 0 ; j < NetworkVariableFields . Count ; j ++ )
778
780
{
779
781
ushort varSize = 0 ;
780
782
781
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
783
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
782
784
{
783
785
varSize = reader . ReadUInt16Packed ( ) ;
784
786
@@ -797,10 +799,10 @@ internal static void SetNetworkVariableData(List<NetworkVariableBase> networkVar
797
799
798
800
long readStartPos = stream . Position ;
799
801
800
- networkVariableList [ j ] . ReadField ( stream ) ;
802
+ NetworkVariableFields [ j ] . ReadField ( stream ) ;
801
803
reader . SkipPadBits ( ) ;
802
804
803
- if ( networkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
805
+ if ( NetworkManager . NetworkConfig . EnsureNetworkVariableLengthSafety )
804
806
{
805
807
if ( stream is NetworkBuffer networkBuffer )
806
808
{
0 commit comments