public MyScriptItemInfo(MyBlueprintTypeEnum type, string scriptName, ulong?id = null, string description = null, MySteamWorkshop.SubscribedItem item = null) : base(type, id) { ScriptName = scriptName; Description = description; SteamItem = item; }
public static MySteamWorkshop.SubscribedItem GetSubscribedItem(ulong modid) { MySteamWorkshop.SubscribedItem item = new MySteamWorkshop.SubscribedItem(); if (MySteam.API == null) { return(item); } using (var mrEvent = new ManualResetEvent(false)) { MySteam.API.RemoteStorage.GetPublishedFileDetails(modid, 0, (ioFailure, result) => { if (!ioFailure && result.Result == SteamSDK.Result.OK) { item.Description = result.Description; item.Title = result.Title; item.UGCHandle = result.FileHandle; item.Tags = result.Tags.Split(','); item.SteamIDOwner = result.SteamIDOwner; item.TimeUpdated = result.TimeUpdated; item.PublishedFileId = result.PublishedFileId; } mrEvent.Set(); }); mrEvent.WaitOne(); mrEvent.Reset(); } return(item); }
//loads next mission, SP only //id can be workshop ID or save name (in that case official scenarios are searched first, if not found, then user's saves) public void LoadNextScenario(string id) { ulong workshopID; if (ulong.TryParse(id, out workshopID)) { MySteamWorkshop.SubscribedItem item = new MySteamWorkshop.SubscribedItem(); item.PublishedFileId = workshopID; MySteamWorkshop.CreateWorldInstanceAsync(item, MySteamWorkshop.MyWorkshopPathInfo.CreateScenarioInfo(), true, delegate(bool success, string sessionPath) { if (success) { LoadMission(sessionPath, false, MyOnlineModeEnum.OFFLINE, 1); } else { MyGuiSandbox.AddScreen(MyGuiSandbox.CreateMessageBox( messageText: MyTexts.Get(MySpaceTexts.MessageBoxTextWorkshopDownloadFailed), messageCaption: MyTexts.Get(MySpaceTexts.ScreenCaptionWorkshop))); } }); } //else // LoadMission(save.Item1, false, MyOnlineModeEnum.OFFLINE, 1); }
public static MySteamWorkshop.SubscribedItem GetItemInfo(ulong itemId) { MySteamWorkshop.SubscribedItem item = null; using (var mre = new ManualResetEvent(false)) { SteamAPI.Instance.RemoteStorage.GetPublishedFileDetails(itemId, 0, (ioFail, result) => { if (!ioFail && result.Result == Result.OK) { item = new MySteamWorkshop.SubscribedItem { Title = result.Title, Description = result.Description, PublishedFileId = result.PublishedFileId, SteamIDOwner = result.SteamIDOwner, Tags = result.Tags.Split(' '), TimeUpdated = result.TimeUpdated, UGCHandle = result.FileHandle }; } else { _log.Error($"Failed to get item info for {itemId}"); } mre.Set(); }); mre.WaitOne(); mre.Reset(); return(item); } }