Exemple #1
0
        public void Add <T>(ushort messageType, Action <NetworkMessageInfo, T> handler) where T : NetworkMessage
        {
            // Pour ne pas avoir à constamment gérer les casts vers les types de message enfants, on fait la conversion ici en
            // encapsulant le handler donné (qui peut avoir n'importe quel type de message comme paramètre) avec une méthode anonyme
            // qui elle prend un NetworkMessage en deuxième paramètre et se contente de le convertir en le type voulu puis appel le "vrai" handler.

            Action <NetworkMessageInfo, NetworkMessage> wrapper = (NetworkMessageInfo info, NetworkMessage m) => {
                if (m is T)
                {
                    handler(info, (T)m);
                }
                else
                {
                    Debugger.Log("ERREUR - MAUVAIS TYPE DE MESSAGE ! TYPE : " + m.Type, Color.red);
                }
            };

            if (Handlers.ContainsKey(messageType))
            {
                Handlers[messageType] += wrapper;
            }
            else
            {
                Handlers.Add(messageType, wrapper);
            }

            MessageReader.AddHandler(messageType, wrapper);
        }
Exemple #2
0
        public static void Initialize()
        {
            InputManager.AddHandler("NetCommand", NetworkCommandHandler);
            MessageReader.AddHandler(60002, NetworkCommandReceiver);
            SetEntityPositionSecurityLayer positionLayer = new SetEntityPositionSecurityLayer();

            AddSecurityLayer(positionLayer);
        }