示例#1
0
 //call in fader after map loading
 public static void OnPostLoadReconstruction()
 {
     for (int i = 0; i < instance.messageWaitingList.Count; i++)
     {
         NetDataReader       tempReader  = instance.messageWaitingList[i];
         NetworkMessage.Type messageType = (NetworkMessage.Type)tempReader.GetByte();
         Game.AddThreadAction(() => NetworkMessageResolve.Resolve(messageType, tempReader));
     }
     instance.messageWaitingList.Clear();
 }
示例#2
0
    public static void OnCreatedEntity(Entity entity)
    {
        if (!instance.entityMessageWaitingList.ContainsKey(entity.GetId()))
        {
            return;
        }

        for (int i = 0; i < instance.entityMessageWaitingList[entity.GetId()].Count; i++)
        {
            NetDataReader       data        = instance.entityMessageWaitingList[entity.GetId()][i];
            NetworkMessage.Type messageType = (NetworkMessage.Type)data.GetByte();
            Game.AddThreadAction(() => NetworkMessageResolve.Resolve(messageType, data));
        }
        instance.entityMessageWaitingList.Remove(entity.GetId());
    }
示例#3
0
    private void OnNetworkReceiveEvent(NetPeer peer, NetDataReader reader)
    {
        Debug.Assert(reader != null && reader.Data != null, "There is null as reader or reader data!");
        NetDataReader data = new NetDataReader(reader.Data);

        if (data == null || data.Data == null || data.Data.Length == 0)
        {
            return;
        }

        NetworkMessage.Type messageType = (NetworkMessage.Type)data.GetByte();
        if (CanProcessMessage(messageType))
        {
            Game.AddThreadAction(() => NetworkMessageResolve.Resolve(messageType, data));
        }
        else
        {
            messageWaitingList.Add(new NetDataReader(data.Data));
        }
    }