protected override bool VariationalSerialize(StringBuilder sb, int indent)
        {
            bool bSerializeSuc = false;

            if (bSkipCurNest)
            {
                for (int i = 0, len = nodeContainer.Count; i < len; ++i)
                {
                    if (nodeContainer.Count == 1)
                    {
                        nodeContainer[i].SkipCurNest();
                    }

                    if (nodeContainer[i].Serialize(sb, indent))
                    {
                        bSerializeSuc = true;
                        if (nodeContainer[i] is CellInfo)
                        {
                            sb.Append("\n");
                        }
                    }
                }
            }
            else if (ToLuaText.TransferList(nodeContainer, sb, indent))
            {
                bSerializeSuc = true;
            }

            return(bSerializeSuc);
        }
        public override bool Serialize(StringBuilder sb, int indent)
        {
            bool bSerializeSuc = false;
            bool bShowKeyName  = ShowKeyName();

            if (bShowKeyName)
            {
                ToLuaText.AppendIndent(sb, indent);
                sb.Append(strKeyNameInNestedTable);
                sb.Append(" = \n");
            }

            indent = bShowKeyName ? indent + 1 : indent;

            if (VariationalSerialize(sb, indent))
            {
                bSerializeSuc = true;
            }
            else if (bNestInArray)
            {
                ToLuaText.AppendIndent(sb, indent);
                sb.Append("{}");
                bSerializeSuc = true;
            }

            return(bSerializeSuc);
        }
        public bool Serialize(StringBuilder sb, int indent)
        {
            bool bSerializeSec = false;

            try
            {
                sb.Append("return ");
                var nodeList = tableColumnNodeList.NodeContainer;
                if (nodeList.Count == 1)
                {
                    /// 处理的是整张表只有一个“|”标志的情况,即lua配置只有“一张”表。
                    /// "|"标志主要用来只用一个lua配置表,存储多种格式的lua配置表
                    nodeList[0].NestInArray();
                    bSerializeSec = nodeList[0].Serialize(sb, indent);
                }
                else
                {
                    bSerializeSec = ToLuaText.TransferList(nodeList, sb, indent);
                }

                /// 去掉最后一个","字符
                sb.Remove(sb.Length - 1, 1);
                return(bSerializeSec);
            }
            catch (Exception e)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(string.Format("序列化表 {0} 发生错误\n{1}", tableName, e.ToString()));
                return(false);
            }
        }
        protected override bool VariationalSerialize(StringBuilder sb, int indent)
        {
            bool bSerializeSuc = false;

            ToLuaText.AppendIndent(sb, indent);
            sb.AppendFormat("--Key代表{0}\n", Desc);

            if (ToLuaText.TransferDic(nodeContainer, sb, indent))
            {
                bSerializeSuc = true;
            }

            return(bSerializeSuc);
        }
Example #5
0
    static void ExportInjectionPublishInfo(SortedDictionary <string, List <InjectedMethodInfo> > data)
    {
        var temp = data.ToDictionary(
            typeInfo => typeInfo.Key,
            typeinfo =>
        {
            return(typeinfo.Value
                   .OrderBy(methodInfo => methodInfo.methodPublishedName)
                   .ToDictionary(
                       methodInfo => methodInfo.methodPublishedName,
                       methodInfo => methodInfo.methodIndex
                       ));
        }
            );

        StringBuilder sb = StringBuilderCache.Acquire();

        sb.Append("return ");
        ToLuaText.TransferDic(temp, sb);
        sb.Remove(sb.Length - 1, 1);
        File.WriteAllText(CustomSettings.baseLuaDir + "System/Injection/InjectionBridgeInfo.lua", StringBuilderCache.GetStringAndRelease(sb));
    }
        public override bool Serialize(StringBuilder sb, int indent)
        {
            bool bSerializeSuc   = false;
            bool bInvalidKeyName = string.IsNullOrEmpty(strKeyNameInNestedTable);
            bool bCellInValid    = bInvalidData || (bInvalidKeyName && (cellType == null || !bNestInArray));
            bool bShowKeyName    = ((bNestInTable && !bNestInArray) || bColumnHead) && !bInvalidKeyName && !bSkipCurNest;

            if (bCellInValid && !bColumnHead)
            {
                return(bSerializeSuc);
            }

            ToLuaText.AppendIndent(sb, indent);
            if (bShowKeyName)
            {
                sb.Append(strKeyNameInNestedTable);
                sb.Append(" = ");
            }

            if (bContainsArray)
            {
                var tempStringArray = originalData.Split(cellArrayTag[0]);
                var convertMethod   = convertArrayDataGenericMethod.MakeGenericMethod(new Type[] { cellType });
                var transferMethod  = ToLuaText.MakeGenericArrayTransferMethod(cellType);

                try
                {
                    var dataArray = convertMethod.Invoke(this, new object[] { tempStringArray });
                    transferMethod.Invoke(dataArray, new object[] { dataArray, sb, 0 });
                    bSerializeSuc = true;
                }
                catch (System.Exception e)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("ConvertStringFillToArray ::src =" + originalData + "  " + e.Message);
                }
            }
            else
            {
                ToLuaText.AppendValue(cellType, originalData, sb);
                bSerializeSuc = true;
            }

            string descFormatStr = "--{0}";

            if (bColumnHead && bInvalidData)
            {
                sb.Remove(sb.Length - 2, 2);
            }
            else if (bInvalidData)
            {
                bSerializeSuc = false;
            }

            /// 加上bColumnHead判断是避免没写Desc和有效数据(originalData为空)导致序列化出错
            if (!string.IsNullOrEmpty(Desc) || bColumnHead)
            {
                sb.AppendFormat(descFormatStr, Desc);
            }

            return(bSerializeSuc);
        }