@@ -21,11 +21,21 @@ public class Maidata : Dictionary<string, string>
2121 */
2222 public IReadOnlyDictionary < string , string > Infos => _splitLevels ( ) . Item2 ;
2323
24- public void AddLevel ( int levelId , MaidataChart maidataChart )
24+ /**
25+ * 向Maidata中添加"&ChartConvertTool=MuConvert"的信息。
26+ */
27+ public void AddToolData ( )
28+ {
29+ this [ "ChartConvertTool" ] = "MuConvert" ;
30+ this [ "ChartConvertToolVersion" ] = Utils . AppVersion ;
31+ }
32+
33+ public void AddLevel ( int levelId , MaidataChart maidataChart , bool addToolData = true )
2534 {
2635 this [ $ "inote_{ levelId } "] = maidataChart . Inote ;
2736 if ( maidataChart . Level != null ) this [ $ "lv_{ levelId } "] = maidataChart . Level ;
2837 if ( maidataChart . NoteDesigner != null ) this [ $ "des_{ levelId } "] = maidataChart . NoteDesigner ;
38+ if ( addToolData ) AddToolData ( ) ;
2939 }
3040
3141 public Maidata ( ) { }
@@ -147,21 +157,23 @@ public int ClockCount
147157 public override string ToString ( )
148158 {
149159 var result = new StringBuilder ( ) ;
160+ var ( levels , infos ) = _splitLevels ( ) ;
150161
151- string [ ] fixedKeys = [ "title" , "artist" , "first" , "des" , "wholebpm" ] ; // 对这些键,优先、按这里指定的顺序输出。
152- foreach ( var k in fixedKeys )
162+ string [ ] firstKeys = [ "title" , "artist" , "first" , "des" , "wholebpm" ] ; // 对这些键,优先、按这里指定的顺序输出。
163+ string [ ] lastKeys = [ "ChartConvertTool" , "ChartConvertToolVersion" ] ; // 对这些键,最后、按这里指定的顺序输出。
164+ foreach ( var k in firstKeys )
153165 {
154166 if ( TryGetValue ( k , out var v ) ) result . AppendLine ( $ "&{ k } ={ v } ") ;
155167 }
156-
157- var ( levels , infos ) = _splitLevels ( ) ;
158168 foreach ( var ( k , v ) in infos )
159169 {
160- if ( fixedKeys . Contains ( k ) ) continue ; // 刚刚已经输出过了
170+ if ( firstKeys . Contains ( k ) || lastKeys . Contains ( k ) ) continue ; // 刚刚已经输出过了,或者应该最后输出
161171 result . AppendLine ( $ "&{ k } ={ v } ") ;
162172 }
163- result . AppendLine ( "&ChartConvertTool=MuConvert" ) ;
164- result . AppendLine ( $ "&ChartConvertToolVersion={ Utils . AppVersion } ") ;
173+ foreach ( var k in lastKeys )
174+ {
175+ if ( TryGetValue ( k , out var v ) ) result . AppendLine ( $ "&{ k } ={ v } ") ;
176+ }
165177 result . AppendLine ( ) ;
166178
167179 var levelIds = levels . Keys . ToList ( ) ;
0 commit comments