1
1
using System . Text ;
2
2
using Google . ProtocolBuffers ;
3
+ using MHServerEmu . Core . Serialization ;
4
+ using MHServerEmu . Games . Common ;
3
5
using MHServerEmu . Games . GameData ;
4
6
using MHServerEmu . Games . Network ;
5
7
6
8
namespace MHServerEmu . Games . Powers
7
9
{
8
10
public class AddConditionArchive
9
11
{
12
+ private ulong _entityId ;
13
+
10
14
public AOINetworkPolicyValues ReplicationPolicy { get ; set ; }
11
- public ulong EntityId { get ; set ; }
15
+ public ulong EntityId { get => _entityId ; set => _entityId = value ; }
12
16
public Condition Condition { get ; set ; }
13
17
18
+ public AddConditionArchive ( ) { }
19
+
14
20
public AddConditionArchive ( ByteString data )
15
21
{
16
- CodedInputStream stream = CodedInputStream . CreateInstance ( data . ToByteArray ( ) ) ;
17
-
18
- ReplicationPolicy = ( AOINetworkPolicyValues ) stream . ReadRawVarint32 ( ) ;
19
- EntityId = stream . ReadRawVarint64 ( ) ;
20
- Condition = new ( ) ;
21
- Condition . Decode ( stream ) ;
22
+ using ( Archive archive = new ( ArchiveSerializeType . Replication , data . ToByteArray ( ) ) )
23
+ {
24
+ ReplicationPolicy = ( AOINetworkPolicyValues ) archive . ReplicationPolicy ;
25
+ Serializer . Transfer ( archive , ref _entityId ) ;
26
+ Condition = new ( ) ;
27
+ Condition . Serialize ( archive , null ) ;
28
+ }
22
29
}
23
30
24
- public AddConditionArchive ( ) { }
25
-
26
31
public AddConditionArchive ( ulong entityId , ulong id , ConditionSerializationFlags serializationFlags , PrototypeId prototypeId , TimeSpan startTime )
27
32
{
28
33
ReplicationPolicy = AOINetworkPolicyValues . DefaultPolicy ;
@@ -37,27 +42,24 @@ public AddConditionArchive(ulong entityId, ulong id, ConditionSerializationFlags
37
42
} ;
38
43
}
39
44
40
- public ByteString Serialize ( )
45
+ public ByteString SerializeToByteString ( )
41
46
{
42
- using ( MemoryStream ms = new ( ) )
47
+ using ( Archive archive = new ( ArchiveSerializeType . Replication , ( ulong ) ReplicationPolicy ) )
43
48
{
44
- CodedOutputStream cos = CodedOutputStream . CreateInstance ( ms ) ;
45
-
46
- cos . WriteRawVarint32 ( ( uint ) ReplicationPolicy ) ;
47
- cos . WriteRawVarint64 ( EntityId ) ;
48
- Condition . Encode ( cos ) ;
49
+ ulong entityId = EntityId ;
50
+ archive . Transfer ( ref entityId ) ;
51
+ Condition . Serialize ( archive , null ) ;
49
52
50
- cos . Flush ( ) ;
51
- return ByteString . CopyFrom ( ms . ToArray ( ) ) ;
53
+ return ByteString . CopyFrom ( archive . AccessAutoBuffer ( ) . ToArray ( ) ) ;
52
54
}
53
55
}
54
56
55
57
public override string ToString ( )
56
58
{
57
59
StringBuilder sb = new ( ) ;
58
- sb . AppendLine ( $ "ReplicationPolicy: { ReplicationPolicy } ") ;
59
- sb . AppendLine ( $ "EntityId: { EntityId } ") ;
60
- sb . AppendLine ( $ "Condition: { Condition } ") ;
60
+ sb . AppendLine ( $ "{ nameof ( ReplicationPolicy ) } : { ReplicationPolicy } ") ;
61
+ sb . AppendLine ( $ "{ nameof ( EntityId ) } : { EntityId } ") ;
62
+ sb . AppendLine ( $ "{ nameof ( Condition ) } : { Condition } ") ;
61
63
62
64
return sb . ToString ( ) ;
63
65
}
0 commit comments