public void Deserialize(BinaryReader reader)
        {
            Type = (VMCommandType)reader.ReadByte();
            Type cmdType = CmdMap[Type];

            Command = (VMNetCommandBodyAbstract)Activator.CreateInstance(cmdType);
            Command.Deserialize(reader);
        }
Пример #2
0
        public bool TryDeserialize(BinaryReader reader, bool isClient)
        {
            Type = (VMCommandType)reader.ReadByte();
            Type cmdType = CmdMap[Type];

            Command = (VMNetCommandBodyAbstract)Activator.CreateInstance(cmdType);
            if (Command.AcceptFromClient || isClient)
            {
                Command.Deserialize(reader);
                return(true);
            }
            return(false);
        }
Пример #3
0
 public override void SendCommand(VMNetCommandBodyAbstract cmd)
 {
     Commands.Enqueue(cmd);
 }
Пример #4
0
 private void SendToServer(VMNetCommandBodyAbstract cmd)
 {
     byte[] data;
     using (var stream = new MemoryStream())
     {
         var cmd2 = new VMNetCommand(cmd);
         using (var writer = new BinaryWriter(stream))
         {
             cmd2.SerializeInto(writer);
         }
         data = stream.ToArray();
     }
     using (var stream = new PacketStream((byte)PacketType.VM_PACKET, 0))
     {
         stream.WriteHeader();
         stream.WriteInt32(data.Length + (int)PacketHeaders.UNENCRYPTED);
         stream.WriteBytes(data);
         Client.Send(stream.ToArray());
     }
 }
Пример #5
0
 public void SetCommand(VMNetCommandBodyAbstract cmd)
 {
     Type    = ReverseMap[cmd.GetType()];
     Command = cmd;
 }
Пример #6
0
 public VMNetCommand(VMNetCommandBodyAbstract cmd)
 {
     SetCommand(cmd);
 }
Пример #7
0
 public void SetCommand(VMNetCommandBodyAbstract cmd)
 {
     Type = ReverseMap[cmd.GetType()];
     Command = cmd;
 }
Пример #8
0
 public abstract void SendCommand(VMNetCommandBodyAbstract cmd);
Пример #9
0
 public void Deserialize(BinaryReader reader)
 {
     Type = (VMCommandType)reader.ReadByte();
     Type cmdType = CmdMap[Type];
     Command = (VMNetCommandBodyAbstract)Activator.CreateInstance(cmdType);
     Command.Deserialize(reader);
 }
Пример #10
0
 public VMNetCommand(VMNetCommandBodyAbstract cmd)
 {
     SetCommand(cmd);
 }
Пример #11
0
 public void SendCommand(VMNetCommandBodyAbstract cmd)
 {
     cmd.ActorUID = MyUID;
     Driver.SendCommand(cmd);
 }
Пример #12
0
 public void ForwardCommand(VMNetCommandBodyAbstract cmd)
 {
     Driver.SendCommand(cmd);
 }
Пример #13
0
 public override void SendCommand(VMNetCommandBodyAbstract cmd)
 {
     lock (QueuedCmds)
     {
         QueuedCmds.Add(new VMNetCommand(cmd));
     }
 }