public static void Create <T>(GameRuleOpCode opCode)
            where T : GameRuleMessage, new()
        {
            var type = typeof(T);

            OpCodeLookup.Add(type, opCode);
            TypeLookup.Add(opCode, type);
        }
        public static GameRuleMessage GetMessage(GameRuleOpCode opCode, BinaryReader r)
        {
            var type = TypeLookup.GetValueOrDefault(opCode);

            if (type == null)
            {
                throw new NetsphereBadOpCodeException(opCode);
            }

            return((GameRuleMessage)Serializer.Deserialize(r, type));
        }
示例#3
0
 public NetsphereBadOpCodeException(GameRuleOpCode opCode)
     : base($"Bad opCode: {opCode}")
 {
 }