public byte[] SerializeMessage(IUdpMessage message)
    {
        var writer = new DataWriter();

        writer.Write(HEADER_VERIFICATION, false);
        var cmdName = message.GetType().Name;

        cmdName = cmdName.Substring(0, cmdName.Length - "Message".Length);
        writer.Write(cmdName);
        message.Serialize(writer);
        var bytes = writer.Finalize();

        return(bytes);
    }
Ejemplo n.º 2
0
    public byte[] SerializeMessage(IUdpMessage message)
    {
        var writer = new DataWriter();

        writer.Write(HEADER_VERIFICATION, false);
        var cmdName = message.GetType().Name;

        writer.Write(cmdName);
        writer.Write(_loop.TickIndex);
        message.Serialize(writer);
        var bytes = writer.Finalize();

        return(bytes);
    }
    public void Simulate(uint tickIndex)
    {
        if (_messages.Count == 0)
        {
            return;
        }

        _messagesCopy.Clear();
        _messagesCopy.AddRange(_messages);
        _messages.Clear();

        for (int i = 0; i < _messagesCopy.Count; i++)
        {
            IUdpMessage message = _messagesCopy[i];

            if (message != null && _handlers.TryGetValue(message.GetType(), out List <IMessageHandler> handlers))
            {
                foreach (var r in handlers)
                {
                    r.Handle(message);
                }
            }
        }
    }