Exemplo n.º 1
0
 private void Broadcast(IBitBufferSerializable serializable)
 {
     foreach (IPEndPoint endPoint in clientEndPoints)
     {
         Debug.Log("Sending broadcast (broadcast) " + endPoint);
         Send(serializable, endPoint);
     }
 }
Exemplo n.º 2
0
    public byte[] Serialize(IBitBufferSerializable obj)
    {
        BitBuffer bitBuffer = new BitBuffer();

        if (ConfigProperties.Instance.isServer)
        {
            bitBuffer.EnqueueEnum(MessageType.SERVER, MessageType.TOTAL);
            if (obj is PlayerJoinedMessage)
            {
                bitBuffer.EnqueueEnum(ServerMessageType.PLAYER_JOINED, ServerMessageType.TOTAL);
            }
            else if (obj is PlayerLeftMessage)
            {
                bitBuffer.EnqueueEnum(ServerMessageType.PLAYER_LEFT, ServerMessageType.TOTAL);
            }
            else if (obj is SnapshotMessage)
            {
                bitBuffer.EnqueueEnum(ServerMessageType.SNAPSHOT, ServerMessageType.TOTAL);
            }
        }
        else
        {
            bitBuffer.EnqueueEnum(MessageType.CLIENT, MessageType.TOTAL);
            if (obj is JoinMessage)
            {
                bitBuffer.EnqueueEnum(ClientMessageType.JOIN, ClientMessageType.TOTAL);
            }
            else if (obj is LeaveMessage)
            {
                bitBuffer.EnqueueEnum(ClientMessageType.LEAVE, ClientMessageType.TOTAL);
            }
            else if (obj is GameMessage)
            {
                bitBuffer.EnqueueEnum(ClientMessageType.GAME, ClientMessageType.TOTAL);
                if (obj is MovementMessage)
                {
                    bitBuffer.EnqueueEnum(GameMessageType.MOVEMENT, GameMessageType.TOTAL);
                }
            }
        }
        obj.Serialize(bitBuffer);
        return(bitBuffer.Bytes);
    }
Exemplo n.º 3
0
 public void Send(IBitBufferSerializable obj, IPEndPoint endPoint)
 {
     Debug.Log("Sending: " + obj);
     channel.Send(buildDatagram(serializer.Serialize(obj), endPoint));
 }
Exemplo n.º 4
0
 public void Send(IBitBufferSerializable obj)
 {
     Send(obj, new IPEndPoint(IPAddress.Parse("192.168.0.14"), serverPort));
 }
Exemplo n.º 5
0
 public void EnqueueSerializable(IBitBufferSerializable serializable)
 {
     serializable.Serialize(this);
 }