public async Task <AbstractDownloadState> GetDownloaderState(dynamic archiveINI) { var id = archiveINI?.General?.itemID; var steamID = archiveINI?.General?.steamID; var size = archiveINI?.General?.itemSize; _item = new SteamWorkshopItem { ItemID = id != null?int.Parse(id) : 0, Size = size != null?int.Parse(size) : 0, Game = steamID != null?GameRegistry.GetBySteamID(int.Parse(steamID)) : null }; return(new State { Item = _item }); }
public async Task <AbstractDownloadState?> GetDownloaderState(dynamic archiveINI, bool quickMode) { var id = archiveINI?.General?.itemID; var steamID = archiveINI?.General?.steamID; var size = archiveINI?.General?.itemSize; if (steamID == null) { throw new ArgumentException("Steam workshop item had no steam ID."); } var item = new SteamWorkshopItem(GameRegistry.GetBySteamID(int.Parse(steamID))) { ItemID = id != null?int.Parse(id) : 0, Size = size != null?int.Parse(size) : 0, }; return(new State(item)); }
public override async ValueTask <Directive> Run(RawSourceFile source) { if (!_regex.IsMatch(source.Path)) { return(null); } try { var lines = File.ReadAllLines(source.AbsolutePath); var id = 0; lines.Where(l => l.StartsWith("itemID=")).Do(l => int.TryParse(l.Replace("itemID=", ""), out id)); if (id == 0) { return(null); } SteamWorkshopItem item = null; _game.WorkshopItems.Where(i => i.ItemID == id).Do(i => item = i); if (item == null) { return(null); } var fromSteam = source.EvolveTo <SteamMeta>(); fromSteam.SourceDataID = _compiler.IncludeFile(source.AbsolutePath); fromSteam.ItemID = item.ItemID; fromSteam.Size = item.Size; return(fromSteam); } catch (Exception e) { Utils.Error(e, $"Exception while trying to evolve source to FromSteam"); return(null); } }
public State(SteamWorkshopItem item) { Item = item; }