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;
 }
Пример #2
0
        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);
        }
Пример #3
0
        //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);
        }
Пример #4
0
        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);
            }
        }