Esempio n. 1
0
        private static IFieldValueTable ReadFixedFieldTableValue(string luaText, ref int index, IFieldValueTable table)
        {
            int endIndex = FindLuaTableEndIndex(luaText, index);

            FieldValueTableInfo[] array = table.GetFieldValueTableInfo();
            foreach (FieldValueTableInfo keyValue in array)
            {
                int valueIndex = luaText.IndexOf(keyValue.key, index);
                if (valueIndex == Config.ErrorIndex || valueIndex >= endIndex || !IsRangeInSameLayer(luaText, index, valueIndex))
                {
                    continue;
                }
                valueIndex += keyValue.KeyLength;
                FilterSpaceSymbol(luaText, ref valueIndex);
                if (luaText[valueIndex] != LuaFormat.EqualSymbol)
                {
                    PrintErrorWhithLayer("关键帧配置表关键帧 Lua table 配置错误", valueIndex);
                    break;
                }
                valueIndex++;
                FilterSpaceSymbol(luaText, ref valueIndex);
                SetFixedFieldTableValue(luaText, ref valueIndex, keyValue, ref table);
            }
            index = --endIndex;
            return(table);
        }
Esempio n. 2
0
        public static string GetFieldKeyTableText(StringBuilder builder, IFieldValueTable table)
        {
            if (table.IsNullTable())
            {
                return(string.Empty);
            }
            builder.Clear();
            ushort layer     = (ushort)(table.GetLayer() + 1);
            string tabString = GetTabString(layer);

            FieldValueTableInfo[] array = table.GetFieldValueTableInfo();
            for (int index = 0; index < array.Length; index++)
            {
                FieldValueTableInfo keyValue = array[index];
                object value = table.GetFieldValueTableValue(keyValue.key);
                if (keyValue.type != ValueType.Table)
                {
                    if (value != null)
                    {
                        SetBaseValueTableString(builder, keyValue, tabString, value);
                    }
                    continue;
                }
                ITable valueTable = value as ITable;
                if (!valueTable.IsNullTable())
                {
                    builder.Append(valueTable.ToString());
                }
            }
            return(GetTableText(table, builder.ToString()));
        }