// Token: 0x060004A0 RID: 1184 RVA: 0x00014EEC File Offset: 0x000130EC
        public LuaProtobufExtensionTypeInfo(string typeName, LuaTable typeDef, LuaProtoBufExtensionHandler handler)
        {
            this.m_typeName = typeName;
            this.m_typeDef  = typeDef;
            this.m_handler  = handler;
            this.m_typeCode = LuaProtobufExtensionTypeInfo.GetTypeCode(typeName);
            if (LuaProtobufExtensionTypeInfo.IsSystemType(this.m_typeCode))
            {
                return;
            }
            this.m_isExtension             = typeDef.RawGet <bool>("IsExtension");
            this.m_isEnum                  = typeDef.RawGet <bool>("IsEnum");
            this.m_hasExtension            = typeDef.RawGet <bool>("HasExtension");
            this.m_hasExtensionInHierarchy = typeDef.RawGet <bool>("HasExtensionInHierarchy");
            LuaTable luaTable = typeDef.RawGet("MemberList") as LuaTable;

            if (luaTable == null)
            {
                throw new ApplicationException("LuaProtobufExtensionTypeInfo() MemberList miss " + typeName);
            }
            foreach (LuaTable.TablePair tablePair in luaTable)
            {
                string   text         = tablePair.key as string;
                LuaTable memberDefine = tablePair.value as LuaTable;
                LuaProtobufExtensionTypeMemberInfo value = new LuaProtobufExtensionTypeMemberInfo(text, memberDefine, handler);
                this.m_memberDict.Add(text, value);
            }
        }
        // Token: 0x06000495 RID: 1173 RVA: 0x000149A0 File Offset: 0x00012BA0
        public IProtobufExtensionTypeInfo GetExtTypeInfo(int msgId)
        {
            LuaProtobufExtensionTypeInfo luaProtobufExtensionTypeInfo;

            if (this.m_typeInfoDictById.TryGetValue(msgId, out luaProtobufExtensionTypeInfo))
            {
                return(luaProtobufExtensionTypeInfo);
            }
            LuaTable luaTypeDefineByMsgId = this.GetLuaTypeDefineByMsgId(msgId);

            if (luaTypeDefineByMsgId == null)
            {
                return(null);
            }
            luaProtobufExtensionTypeInfo = new LuaProtobufExtensionTypeInfo(luaTypeDefineByMsgId.RawGet <string>("TypeName"), luaTypeDefineByMsgId, this);
            this.m_typeInfoDictById.Add(msgId, luaProtobufExtensionTypeInfo);
            return(luaProtobufExtensionTypeInfo);
        }
        // Token: 0x06000496 RID: 1174 RVA: 0x000149FC File Offset: 0x00012BFC
        public List <IProtobufExtensionTypeInfo> GetExtTypeInfoList()
        {
            List <IProtobufExtensionTypeInfo> list = new List <IProtobufExtensionTypeInfo>();

            foreach (LuaTable.TablePair tablePair in this.m_configDataLuaDefine)
            {
                LuaTable typeDef  = tablePair.value as LuaTable;
                string   typeName = tablePair.key as string;
                IProtobufExtensionTypeInfo item = new LuaProtobufExtensionTypeInfo(typeName, typeDef, this);
                list.Add(item);
            }
            foreach (LuaTable.TablePair tablePair2 in this.m_protocolLuaDefine)
            {
                LuaTable typeDef2  = tablePair2.value as LuaTable;
                string   typeName2 = tablePair2.key as string;
                IProtobufExtensionTypeInfo item2 = new LuaProtobufExtensionTypeInfo(typeName2, typeDef2, this);
                list.Add(item2);
            }
            return(list);
        }
        // Token: 0x06000494 RID: 1172 RVA: 0x00014938 File Offset: 0x00012B38
        public IProtobufExtensionTypeInfo GetExtTypeInfo(string typeName)
        {
            LuaProtobufExtensionTypeInfo luaProtobufExtensionTypeInfo;

            if (this.m_typeInfoDict.TryGetValue(typeName, out luaProtobufExtensionTypeInfo))
            {
                return(luaProtobufExtensionTypeInfo);
            }
            if (LuaProtoBufExtensionHandler.IsSystemType(typeName))
            {
                luaProtobufExtensionTypeInfo = new LuaProtobufExtensionTypeInfo(typeName, null, this);
            }
            else
            {
                LuaTable luaTypeDefine = this.GetLuaTypeDefine(typeName);
                if (luaTypeDefine == null)
                {
                    return(null);
                }
                luaProtobufExtensionTypeInfo = new LuaProtobufExtensionTypeInfo(typeName, luaTypeDefine, this);
            }
            this.m_typeInfoDict.Add(typeName, luaProtobufExtensionTypeInfo);
            return(luaProtobufExtensionTypeInfo);
        }