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); }
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())); }