@@ -146,13 +146,13 @@ public string? SortAs
146146 // get
147147 // {
148148 // return _properties?.GetPropertyValue<string>(null, NodeAppInfo,
149- // NodeCommon ,
149+ // NodeExtended ,
150150 // NodeDeveloper);
151151 // }
152152 // set
153153 // {
154154 // _properties?.SetPropertyValue(SteamAppPropertyType.String, value, NodeAppInfo,
155- // NodeCommon ,
155+ // NodeExtended ,
156156 // NodeDeveloper);
157157 // }
158158 //}
@@ -162,13 +162,13 @@ public string? SortAs
162162 // get
163163 // {
164164 // return _properties?.GetPropertyValue<string>(null, NodeAppInfo,
165- // NodeCommon ,
165+ // NodeExtended ,
166166 // NodePublisher);
167167 // }
168168 // set
169169 // {
170170 // _properties?.SetPropertyValue(SteamAppPropertyType.String, value, NodeAppInfo,
171- // NodeCommon ,
171+ // NodeExtended ,
172172 // NodePublisher);
173173 // }
174174 //}
@@ -191,18 +191,28 @@ public bool SetEditProperty(SteamApp appInfo)
191191 NodeExtended ,
192192 NodeDeveloper ) ;
193193
194+ _properties . SetPropertyValue ( SteamAppPropertyType . String , appInfo . Developer , NodeAppInfo ,
195+ NodeCommon ,
196+ "associations" , "0" , "name" ) ;
197+
194198 _properties . SetPropertyValue ( SteamAppPropertyType . String , appInfo . Publisher , NodeAppInfo ,
195199 NodeExtended ,
196200 NodePublisher ) ;
197201
202+ _properties . SetPropertyValue ( SteamAppPropertyType . String , appInfo . Publisher , NodeAppInfo ,
203+ NodeCommon ,
204+ "associations" , "1" , "name" ) ;
205+
198206 if ( appInfo . LaunchItems . Any_Nullable ( ) )
199207 {
200- var launchTable = _properties . GetPropertyValue < SteamAppPropertyTable > ( null , NodeAppInfo , NodeConfig , NodeLaunch ) ;
208+ // var launchTable = _properties.GetPropertyValue<SteamAppPropertyTable>(null, NodeAppInfo, NodeConfig, NodeLaunch);
201209
202- if ( launchTable == null )
203- {
204- launchTable = new SteamAppPropertyTable ( ) ;
205- }
210+ //if (launchTable == null)
211+ //{
212+ //launchTable = new SteamAppPropertyTable();
213+ //}
214+
215+ var launchTable = new SteamAppPropertyTable ( ) ;
206216
207217 foreach ( var item in appInfo . LaunchItems )
208218 {
@@ -222,7 +232,10 @@ public bool SetEditProperty(SteamApp appInfo)
222232 {
223233 propertyTable . SetPropertyValue ( "workingdir" , SteamAppPropertyType . String , item . WorkingDir ) ;
224234 }
225-
235+ if ( ! string . IsNullOrEmpty ( item . Platform ) )
236+ {
237+ propertyTable . SetPropertyValue ( SteamAppPropertyType . String , item . Platform , NodeConfig , NodePlatforms ) ;
238+ }
226239 launchTable . SetPropertyValue ( launchTable . Count . ToString ( ) , SteamAppPropertyType . Table , propertyTable ) ;
227240 }
228241
@@ -280,6 +293,21 @@ public string? CurrentDLSSVersion
280293
281294 public uint ParentId { get ; set ; }
282295
296+ /// <summary>
297+ /// 是否支持Steam云存档
298+ /// </summary>
299+ public bool IsCloudArchive => CloudQuota > 0 ;
300+
301+ /// <summary>
302+ /// 云存档字节大小
303+ /// </summary>
304+ public long CloudQuota { get ; set ; }
305+
306+ /// <summary>
307+ /// 云存档文件数量上限
308+ /// </summary>
309+ public int CloudMaxnumFiles { get ; set ; }
310+
283311 /// <summary>
284312 /// 最后运行用户SteamId64
285313 /// </summary>
@@ -293,7 +321,7 @@ public string? CurrentDLSSVersion
293321 private long _SizeOnDi ;
294322 /// <summary>
295323 /// 占用硬盘字节大小
296- /// </summary>sk;
324+ /// </summary>
297325 public long SizeOnDisk
298326 {
299327 get => _SizeOnDi ;
@@ -331,6 +359,13 @@ public ObservableCollection<SteamAppLaunchItem>? LaunchItems
331359 set => this . RaiseAndSetIfChanged ( ref _LaunchItems , value ) ;
332360 }
333361
362+ private ObservableCollection < SteamAppSaveFile > ? _SaveFiles ;
363+ public ObservableCollection < SteamAppSaveFile > ? SaveFiles
364+ {
365+ get => _SaveFiles ;
366+ set => this . RaiseAndSetIfChanged ( ref _SaveFiles , value ) ;
367+ }
368+
334369 public string ? LogoUrl => string . IsNullOrEmpty ( Logo ) ? null :
335370 string . Format ( STEAMAPP_LOGO_URL , AppId , Logo ) ;
336371
@@ -629,7 +664,7 @@ internal bool UpdateDll(LocalDlssDll localDll)
629664 app . Type == SteamAppType . Tool ||
630665 app . Type == SteamAppType . Demo ) )
631666 {
632- var launchTable = properties . GetPropertyValue < SteamAppPropertyTable > ( null , NodeAppInfo , NodeConfig , NodeLaunch ) ;
667+ var launchTable = properties . GetPropertyValue < SteamAppPropertyTable ? > ( null , NodeAppInfo , NodeConfig , NodeLaunch ) ;
633668
634669 if ( launchTable != null )
635670 {
@@ -651,6 +686,31 @@ select prop.GetValue<SteamAppPropertyTable>())
651686 }
652687 }
653688
689+ app . CloudQuota = properties . GetPropertyValue < int > ( 0 , NodeAppInfo , "ufs" , "quota" ) ;
690+ app . CloudMaxnumFiles = properties . GetPropertyValue < int > ( 0 , NodeAppInfo , "ufs" , "maxnumfiles" ) ;
691+
692+ var savefilesTable = properties . GetPropertyValue < SteamAppPropertyTable ? > ( null , NodeAppInfo , "ufs" , "savefiles" ) ;
693+
694+ if ( savefilesTable != null )
695+ {
696+ var savefiles = from table in ( from prop in ( from prop in savefilesTable . Properties
697+ where prop . PropertyType == SteamAppPropertyType . Table
698+ select prop ) . OrderBy ( ( SteamAppProperty prop ) => prop . Name , StringComparer . OrdinalIgnoreCase )
699+ select prop . GetValue < SteamAppPropertyTable > ( ) )
700+ select new SteamAppSaveFile
701+ (
702+ app . AppId ,
703+ table . GetPropertyValue < string ? > ( "root" ) ,
704+ table . GetPropertyValue < string ? > ( "path" ) ,
705+ table . GetPropertyValue < string ? > ( "pattern" )
706+ )
707+ {
708+ Recursive = table . GetPropertyValue < bool > ( false , "recursive" ) ,
709+ } ;
710+
711+ app . SaveFiles = new ObservableCollection < SteamAppSaveFile > ( savefiles . ToList ( ) ) ;
712+ }
713+
654714 //var propertyValue = app._properties.GetPropertyValue<string>("", new string[]
655715 //{
656716 // "appinfo",
0 commit comments