public string GetFileNameAndSize(int index, out int file_size)
 {
     return(SteamRemoteStorage.GetFileNameAndSize(index, out file_size));
 }
Exemple #2
0
 private void DeleteFromSteamStorage(string remotePath)
 {
     SteamRemoteStorage.FileDelete(remotePath);
 }
        private static CallResult <RemoteStorageGetPublishedFileDetailsResult_t> DownloadLevel(PublishedFileId_t file)
        {
            var publishedCall = SteamRemoteStorage.GetPublishedFileDetails(file, 0);

            string tempDirectory      = SteamWorker.WSTempDirectory;
            string completedDirectory = SteamWorker.WSFilesDirectory;

            if (!Directory.Exists(tempDirectory))
            {
                Directory.CreateDirectory(tempDirectory);
            }
            if (!Directory.Exists(completedDirectory))
            {
                Directory.CreateDirectory(completedDirectory);
            }

            string tempDirectoryNew      = Path.Combine(tempDirectory, file.m_PublishedFileId.ToString());
            string completedDirectoryNew = Path.Combine(completedDirectory, file.m_PublishedFileId.ToString());

            if (!Directory.Exists(tempDirectoryNew))
            {
                Directory.CreateDirectory(tempDirectoryNew);
            }
            if (!Directory.Exists(completedDirectoryNew))
            {
                Directory.CreateDirectory(completedDirectoryNew);
            }

            string metadataPath          = Path.Combine(completedDirectoryNew, "meta.json");
            WorkshopMapMetadata metadata = null;

            try
            {
                metadata = JsonConvert.DeserializeObject <WorkshopMapMetadata>(File.ReadAllText(metadataPath));
            }
            catch (Exception)
            {
            }

            var callResult = new CallResult <RemoteStorageGetPublishedFileDetailsResult_t>((t, failure) =>
            {
                if (!failure && t.m_eResult == EResult.k_EResultOK)
                {
                    if (metadata == null || metadata.PchFileName != t.m_pchFileName)
                    {
                        Downloading.Value++;

                        string mapFileTemp   = Path.Combine(tempDirectoryNew, file.m_PublishedFileId.ToString() + IO.MapLoader.MapExtension);
                        string imageFileTemp = Path.Combine(tempDirectoryNew, file.m_PublishedFileId.ToString() + ".png");
                        var downloadMapCall  = SteamRemoteStorage.UGCDownloadToLocation(t.m_hFile, mapFileTemp, 1);
                        downloadResult       = new CallResult <RemoteStorageDownloadUGCResult_t>((resultT, ioFailure) =>
                        {
                            if (ioFailure)
                            {
                                Downloading.Value = Math.Max(0, Downloading - 1);
                            }
                            else
                            {
                                Action <RemoteStorageDownloadUGCResult_t, bool> onImgDownloaded = (resultT2, ioFailure2) =>
                                {
                                    Downloading.Value = Math.Max(0, Downloading - 1);
                                    if (!ioFailure2)
                                    {
                                        string mapFileNew = mapFileTemp.Replace(tempDirectoryNew, completedDirectoryNew);
                                        if (File.Exists(mapFileNew))
                                        {
                                            File.Delete(mapFileNew);
                                        }
                                        File.Move(mapFileTemp, mapFileNew);
                                        string imageFileNew = imageFileTemp.Replace(tempDirectoryNew, completedDirectoryNew);
                                        if (File.Exists(imageFileNew))
                                        {
                                            File.Delete(imageFileNew);
                                        }
                                        File.Move(imageFileTemp, imageFileNew);
                                        File.WriteAllText(metadataPath, JsonConvert.SerializeObject(new WorkshopMapMetadata {
                                            PchFileName = t.m_pchFileName, Title = t.m_rgchTitle
                                        }));
                                        OnLevelDownloaded.Execute();
                                    }
                                };
                                var downloadImageCall = SteamRemoteStorage.UGCDownloadToLocation(t.m_hPreviewFile, imageFileTemp, 1);
                                downloadResult        = new CallResult <RemoteStorageDownloadUGCResult_t>(
                                    (ugcResultT, bIoFailure) => onImgDownloaded(ugcResultT, bIoFailure));
                                downloadResult.Set(downloadImageCall);
                            }
                        });
                        downloadResult.Set(downloadMapCall);
                    }
                    else if (metadata.Title != t.m_rgchTitle)
                    {
                        metadata.Title = t.m_rgchTitle;
                        File.WriteAllText(metadataPath, JsonConvert.SerializeObject(metadata));
                    }
                }
            });

            callResult.Set(publishedCall);
            return(callResult);
        }
 private void WriteProgress()
 {
     byte[] array = customLevelsProgressData.ToBytes();
     SteamRemoteStorage.FileWrite("Progress.bin", array, array.Length);
 }
    public void RenderOnGUI()
    {
        GUILayout.BeginArea(new Rect(Screen.width - 200, 0, 200, Screen.height));
        GUILayout.Label("Variables:");
        GUILayout.Label("m_Message:");
        m_Message = GUILayout.TextField(m_Message, 40);
        GUILayout.Label("m_FileCount: " + m_FileCount);
        GUILayout.Label("m_FileSize: " + m_FileSize);
        GUILayout.Label("m_TotalBytes: " + m_TotalBytes);
        GUILayout.Label("m_FileSizeInBytes: " + m_FileSizeInBytes);
        GUILayout.Label("m_CloudEnabled: " + m_CloudEnabled);
        GUILayout.Label("m_FileStream: " + m_FileStream);
        GUILayout.Label("m_UGCHandle: " + m_UGCHandle);
        GUILayout.Label("m_PublishedFileId: " + m_PublishedFileId);
        GUILayout.Label("m_PublishedFileUpdateHandle: " + m_PublishedFileUpdateHandle);
        GUILayout.Label("m_FileReadAsyncHandle: " + m_FileReadAsyncHandle);
        GUILayout.EndArea();

        GUILayout.BeginVertical("box");
        m_ScrollPos = GUILayout.BeginScrollView(m_ScrollPos, GUILayout.Width(Screen.width - 215), GUILayout.Height(Screen.height - 33));

        if (GUILayout.Button("FileWrite(MESSAGE_FILE_NAME, Data, Data.Length)"))
        {
            if ((ulong)System.Text.Encoding.UTF8.GetByteCount(m_Message) > m_TotalBytes)
            {
                print("Remote Storage: Quota Exceeded! - Bytes: " + System.Text.Encoding.UTF8.GetByteCount(m_Message) + " - Max: " + m_TotalBytes);
            }
            else
            {
                byte[] Data = new byte[System.Text.Encoding.UTF8.GetByteCount(m_Message)];
                System.Text.Encoding.UTF8.GetBytes(m_Message, 0, m_Message.Length, Data, 0);

                bool ret = SteamRemoteStorage.FileWrite(MESSAGE_FILE_NAME, Data, Data.Length);
                print("FileWrite(" + MESSAGE_FILE_NAME + ", Data, " + Data.Length + ") - " + ret);
            }
        }

        if (GUILayout.Button("FileRead(MESSAGE_FILE_NAME, Data, Data.Length)"))
        {
            if (m_FileSize > 40)
            {
                byte[] c = { 0 };
                Debug.Log("RemoteStorage: File was larger than expected. . .");
                SteamRemoteStorage.FileWrite(MESSAGE_FILE_NAME, c, 1);
            }
            else
            {
                byte[] Data = new byte[40];
                int    ret  = SteamRemoteStorage.FileRead(MESSAGE_FILE_NAME, Data, Data.Length);
                m_Message = System.Text.Encoding.UTF8.GetString(Data, 0, ret);
                print("FileRead(" + MESSAGE_FILE_NAME + ", Data, " + Data.Length + ") - " + ret);
            }
        }

        if (GUILayout.Button("FileWriteAsync(MESSAGE_FILE_NAME, Data, (uint)Data.Length)"))
        {
            byte[] Data = new byte[System.Text.Encoding.UTF8.GetByteCount(m_Message)];
            System.Text.Encoding.UTF8.GetBytes(m_Message, 0, m_Message.Length, Data, 0);
            SteamAPICall_t handle = SteamRemoteStorage.FileWriteAsync(MESSAGE_FILE_NAME, Data, (uint)Data.Length);
            OnRemoteStorageFileWriteAsyncCompleteCallResult.Set(handle);
            print("SteamRemoteStorage.FileWriteAsync(" + MESSAGE_FILE_NAME + ", " + Data + ", " + (uint)Data.Length + ") : " + handle);
        }

        if (GUILayout.Button("FileReadAsync(MESSAGE_FILE_NAME, Data, (uint)Data.Length)"))
        {
            if (m_FileSize > 40)
            {
                Debug.Log("RemoteStorage: File was larger than expected. . .");
            }
            else
            {
                m_FileReadAsyncHandle = SteamRemoteStorage.FileReadAsync(MESSAGE_FILE_NAME, 0, (uint)m_FileSize);
                OnRemoteStorageFileReadAsyncCompleteCallResult.Set(m_FileReadAsyncHandle);
                print("FileReadAsync(" + MESSAGE_FILE_NAME + ", 0, " + (uint)m_FileSize + ") - " + m_FileReadAsyncHandle);
            }
        }

        //SteamRemoteStorage.FileReadAsyncComplete() // Must be called from the RemoteStorageFileReadAsyncComplete_t CallResult.

        if (GUILayout.Button("FileForget(MESSAGE_FILE_NAME)"))
        {
            bool ret = SteamRemoteStorage.FileForget(MESSAGE_FILE_NAME);
            print("SteamRemoteStorage.FileForget(" + MESSAGE_FILE_NAME + ") : " + ret);
        }

        if (GUILayout.Button("FileDelete(MESSAGE_FILE_NAME)"))
        {
            bool ret = SteamRemoteStorage.FileDelete(MESSAGE_FILE_NAME);
            print("SteamRemoteStorage.FileDelete(" + MESSAGE_FILE_NAME + ") : " + ret);
        }

        if (GUILayout.Button("FileShare(MESSAGE_FILE_NAME)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.FileShare(MESSAGE_FILE_NAME);
            OnRemoteStorageFileShareResultCallResult.Set(handle);
            print("SteamRemoteStorage.FileShare(" + MESSAGE_FILE_NAME + ") : " + handle);
        }

        if (GUILayout.Button("SetSyncPlatforms(MESSAGE_FILE_NAME, ERemoteStoragePlatform.k_ERemoteStoragePlatformAll)"))
        {
            bool ret = SteamRemoteStorage.SetSyncPlatforms(MESSAGE_FILE_NAME, ERemoteStoragePlatform.k_ERemoteStoragePlatformAll);
            print("SteamRemoteStorage.SetSyncPlatforms(" + MESSAGE_FILE_NAME + ", " + ERemoteStoragePlatform.k_ERemoteStoragePlatformAll + ") : " + ret);
        }

        if (GUILayout.Button("FileWriteStreamOpen(MESSAGE_FILE_NAME)"))
        {
            m_FileStream = SteamRemoteStorage.FileWriteStreamOpen(MESSAGE_FILE_NAME);
            print("SteamRemoteStorage.FileWriteStreamOpen(" + MESSAGE_FILE_NAME + ") : " + m_FileStream);
        }

        if (GUILayout.Button("FileWriteStreamWriteChunk(m_FileStream, Data, Data.Length)"))
        {
            if ((ulong)System.Text.Encoding.UTF8.GetByteCount(m_Message) > m_TotalBytes)
            {
                print("Remote Storage: Quota Exceeded! - Bytes: " + System.Text.Encoding.UTF8.GetByteCount(m_Message) + " - Max: " + m_TotalBytes);
            }
            else
            {
                byte[] Data = new byte[System.Text.Encoding.UTF8.GetByteCount(m_Message)];
                System.Text.Encoding.UTF8.GetBytes(m_Message, 0, m_Message.Length, Data, 0);

                bool ret = SteamRemoteStorage.FileWriteStreamWriteChunk(m_FileStream, Data, Data.Length);
                print("FileWriteStreamWriteChunk(" + m_FileStream + ", Data, " + Data.Length + ") - " + ret);
            }
        }

        if (GUILayout.Button("FileWriteStreamClose(m_FileStream)"))
        {
            bool ret = SteamRemoteStorage.FileWriteStreamClose(m_FileStream);
            print("SteamRemoteStorage.FileWriteStreamClose(" + m_FileStream + ") : " + ret);
        }

        if (GUILayout.Button("FileWriteStreamCancel(m_FileStream)"))
        {
            bool ret = SteamRemoteStorage.FileWriteStreamCancel(m_FileStream);
            print("SteamRemoteStorage.FileWriteStreamCancel(" + m_FileStream + ") : " + ret);
        }

        GUILayout.Label("FileExists(MESSAGE_FILE_NAME) : " + SteamRemoteStorage.FileExists(MESSAGE_FILE_NAME));

        GUILayout.Label("FilePersisted(MESSAGE_FILE_NAME) : " + SteamRemoteStorage.FilePersisted(MESSAGE_FILE_NAME));

        GUILayout.Label("GetFileSize(MESSAGE_FILE_NAME) : " + SteamRemoteStorage.GetFileSize(MESSAGE_FILE_NAME));

        GUILayout.Label("GetFileTimestamp(MESSAGE_FILE_NAME) : " + SteamRemoteStorage.GetFileTimestamp(MESSAGE_FILE_NAME));

        GUILayout.Label("GetSyncPlatforms(MESSAGE_FILE_NAME) : " + SteamRemoteStorage.GetSyncPlatforms(MESSAGE_FILE_NAME));

        {
            m_FileCount = SteamRemoteStorage.GetFileCount();
            GUILayout.Label("GetFileCount() : " + m_FileCount);
        }

        for (int i = 0; i < m_FileCount; ++i)
        {
            int    FileSize = 0;
            string FileName = SteamRemoteStorage.GetFileNameAndSize(i, out FileSize);
            GUILayout.Label("GetFileNameAndSize(i, out FileSize) : " + FileName + " -- " + FileSize);

            if (FileName == MESSAGE_FILE_NAME)
            {
                m_FileSize = FileSize;
            }
        }

        {
            ulong AvailableBytes;
            bool  ret = SteamRemoteStorage.GetQuota(out m_TotalBytes, out AvailableBytes);
            GUILayout.Label("GetQuota(out m_TotalBytes, out AvailableBytes) : " + ret + " -- " + m_TotalBytes + " -- " + AvailableBytes);
        }

        GUILayout.Label("IsCloudEnabledForAccount() : " + SteamRemoteStorage.IsCloudEnabledForAccount());

        {
            m_CloudEnabled = SteamRemoteStorage.IsCloudEnabledForApp();
            GUILayout.Label("IsCloudEnabledForApp() : " + m_CloudEnabled);
        }

        if (GUILayout.Button("SetCloudEnabledForApp(!m_CloudEnabled)"))
        {
            SteamRemoteStorage.SetCloudEnabledForApp(!m_CloudEnabled);
            print("SteamRemoteStorage.SetCloudEnabledForApp(" + !m_CloudEnabled + ")");
        }

        if (GUILayout.Button("UGCDownload(m_UGCHandle, 0)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.UGCDownload(m_UGCHandle, 0);
            OnRemoteStorageDownloadUGCResultCallResult.Set(handle);
            print("SteamRemoteStorage.UGCDownload(" + m_UGCHandle + ", " + 0 + ") : " + handle);
        }

        {
            int  BytesDownloaded;
            int  BytesExpected;
            bool ret = SteamRemoteStorage.GetUGCDownloadProgress(m_UGCHandle, out BytesDownloaded, out BytesExpected);
            GUILayout.Label("GetUGCDownloadProgress(m_UGCHandle, out BytesDownloaded, out BytesExpected) : " + ret + " -- " + BytesDownloaded + " -- " + BytesExpected);
        }

        // Spams warnings if called with an empty handle
        if (m_UGCHandle != (UGCHandle_t)0)
        {
            AppId_t  AppID;
            string   Name;
            CSteamID SteamIDOwner;
            bool     ret = SteamRemoteStorage.GetUGCDetails(m_UGCHandle, out AppID, out Name, out m_FileSizeInBytes, out SteamIDOwner);
            GUILayout.Label("GetUGCDetails(m_UGCHandle, out AppID, Name, out FileSizeInBytes, out SteamIDOwner) : " + ret + " -- " + AppID + " -- " + Name + " -- " + m_FileSizeInBytes + " -- " + SteamIDOwner);
        }
        else
        {
            GUILayout.Label("GetUGCDetails(m_UGCHandle, out AppID, Name, out FileSizeInBytes, out SteamIDOwner) : ");
        }

        if (GUILayout.Button("UGCRead(m_UGCHandle, Data, m_FileSizeInBytes, 0, EUGCReadAction.k_EUGCRead_Close)"))
        {
            byte[] Data = new byte[m_FileSizeInBytes];
            int    ret  = SteamRemoteStorage.UGCRead(m_UGCHandle, Data, m_FileSizeInBytes, 0, EUGCReadAction.k_EUGCRead_Close);
            print("SteamRemoteStorage.UGCRead(" + m_UGCHandle + ", " + Data + ", " + m_FileSizeInBytes + ", " + 0 + ", " + EUGCReadAction.k_EUGCRead_Close + ") : " + ret);
        }

        GUILayout.Label("GetCachedUGCCount() : " + SteamRemoteStorage.GetCachedUGCCount());

        GUILayout.Label("GetCachedUGCHandle(0) : " + SteamRemoteStorage.GetCachedUGCHandle(0));

        //SteamRemoteStorage.GetFileListFromServer() // PS3 Only.

        //SteamRemoteStorage.FileFetch() // PS3 Only.

        //SteamRemoteStorage.FilePersist() // PS3 Only.

        //SteamRemoteStorage.SynchronizeToClient() // PS3 Only.

        //SteamRemoteStorage.SynchronizeToServer() // PS3 Only.

        //SteamRemoteStorage.ResetFileRequestState() // PS3 Only.

        if (GUILayout.Button("PublishWorkshopFile(MESSAGE_FILE_NAME, null, SteamUtils.GetAppID(), \"Title!\", \"Description!\", ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic, Tags, EWorkshopFileType.k_EWorkshopFileTypeCommunity)"))
        {
            string[]       Tags   = { "Test1", "Test2", "Test3" };
            SteamAPICall_t handle = SteamRemoteStorage.PublishWorkshopFile(MESSAGE_FILE_NAME, null, SteamUtils.GetAppID(), "Title!", "Description!", ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic, Tags, EWorkshopFileType.k_EWorkshopFileTypeCommunity);
            OnRemoteStoragePublishFileProgressCallResult.Set(handle);
            print("SteamRemoteStorage.PublishWorkshopFile(" + MESSAGE_FILE_NAME + ", " + null + ", " + SteamUtils.GetAppID() + ", " + "\"Title!\"" + ", " + "\"Description!\"" + ", " + ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic + ", " + Tags + ", " + EWorkshopFileType.k_EWorkshopFileTypeCommunity + ") : " + handle);
        }

        if (GUILayout.Button("CreatePublishedFileUpdateRequest(m_PublishedFileId)"))
        {
            m_PublishedFileUpdateHandle = SteamRemoteStorage.CreatePublishedFileUpdateRequest(m_PublishedFileId);
            print("SteamRemoteStorage.CreatePublishedFileUpdateRequest(" + m_PublishedFileId + ") : " + m_PublishedFileUpdateHandle);
        }

        if (GUILayout.Button("UpdatePublishedFileFile(m_PublishedFileUpdateHandle, MESSAGE_FILE_NAME)"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileFile(m_PublishedFileUpdateHandle, MESSAGE_FILE_NAME);
            print("SteamRemoteStorage.UpdatePublishedFileFile(" + m_PublishedFileUpdateHandle + ", " + MESSAGE_FILE_NAME + ") : " + ret);
        }

        if (GUILayout.Button("UpdatePublishedFilePreviewFile(m_PublishedFileUpdateHandle, null)"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFilePreviewFile(m_PublishedFileUpdateHandle, null);
            print("SteamRemoteStorage.UpdatePublishedFilePreviewFile(" + m_PublishedFileUpdateHandle + ", " + null + ") : " + ret);
        }

        if (GUILayout.Button("UpdatePublishedFileTitle(m_PublishedFileUpdateHandle, \"New Title\")"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileTitle(m_PublishedFileUpdateHandle, "New Title");
            print("SteamRemoteStorage.UpdatePublishedFileTitle(" + m_PublishedFileUpdateHandle + ", " + "\"New Title\"" + ") : " + ret);
        }

        if (GUILayout.Button("UpdatePublishedFileDescription(m_PublishedFileUpdateHandle, \"New Description\")"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileDescription(m_PublishedFileUpdateHandle, "New Description");
            print("SteamRemoteStorage.UpdatePublishedFileDescription(" + m_PublishedFileUpdateHandle + ", " + "\"New Description\"" + ") : " + ret);
        }

        if (GUILayout.Button("UpdatePublishedFileVisibility(m_PublishedFileUpdateHandle, ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic)"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileVisibility(m_PublishedFileUpdateHandle, ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic);
            print("SteamRemoteStorage.UpdatePublishedFileVisibility(" + m_PublishedFileUpdateHandle + ", " + ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic + ") : " + ret);
        }

        if (GUILayout.Button("UpdatePublishedFileTags(m_PublishedFileUpdateHandle, new string[] {\"First\", \"Second\", \"Third\"})"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileTags(m_PublishedFileUpdateHandle, new string[] { "First", "Second", "Third" });
            print("SteamRemoteStorage.UpdatePublishedFileTags(" + m_PublishedFileUpdateHandle + ", " + new string[] { "First", "Second", "Third" } +") : " + ret);
        }

        if (GUILayout.Button("CommitPublishedFileUpdate(m_PublishedFileUpdateHandle)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.CommitPublishedFileUpdate(m_PublishedFileUpdateHandle);
            OnRemoteStorageUpdatePublishedFileResultCallResult.Set(handle);
            print("SteamRemoteStorage.CommitPublishedFileUpdate(" + m_PublishedFileUpdateHandle + ") : " + handle);
        }

        if (GUILayout.Button("GetPublishedFileDetails(m_PublishedFileId, 0)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.GetPublishedFileDetails(m_PublishedFileId, 0);
            OnRemoteStorageGetPublishedFileDetailsResultCallResult.Set(handle);
            print("SteamRemoteStorage.GetPublishedFileDetails(" + m_PublishedFileId + ", " + 0 + ") : " + handle);
        }

        if (GUILayout.Button("DeletePublishedFile(m_PublishedFileId)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.DeletePublishedFile(m_PublishedFileId);
            OnRemoteStorageDeletePublishedFileResultCallResult.Set(handle);
            print("SteamRemoteStorage.DeletePublishedFile(" + m_PublishedFileId + ") : " + handle);
        }

        if (GUILayout.Button("EnumerateUserPublishedFiles(0)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.EnumerateUserPublishedFiles(0);
            OnRemoteStorageEnumerateUserPublishedFilesResultCallResult.Set(handle);
            print("SteamRemoteStorage.EnumerateUserPublishedFiles(" + 0 + ") : " + handle);
        }

        if (GUILayout.Button("SubscribePublishedFile(m_PublishedFileId)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.SubscribePublishedFile(m_PublishedFileId);
            OnRemoteStorageSubscribePublishedFileResultCallResult.Set(handle);
            print("SteamRemoteStorage.SubscribePublishedFile(" + m_PublishedFileId + ") : " + handle);
        }

        if (GUILayout.Button("EnumerateUserSubscribedFiles(0)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.EnumerateUserSubscribedFiles(0);
            OnRemoteStorageEnumerateUserSubscribedFilesResultCallResult.Set(handle);
            print("SteamRemoteStorage.EnumerateUserSubscribedFiles(" + 0 + ") : " + handle);
        }

        if (GUILayout.Button("UnsubscribePublishedFile(m_PublishedFileId)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.UnsubscribePublishedFile(m_PublishedFileId);
            OnRemoteStorageUnsubscribePublishedFileResultCallResult.Set(handle);
            print("SteamRemoteStorage.UnsubscribePublishedFile(" + m_PublishedFileId + ") : " + handle);
        }

        if (GUILayout.Button("UpdatePublishedFileSetChangeDescription(m_PublishedFileUpdateHandle, \"Changelog!\")"))
        {
            bool ret = SteamRemoteStorage.UpdatePublishedFileSetChangeDescription(m_PublishedFileUpdateHandle, "Changelog!");
            print("SteamRemoteStorage.UpdatePublishedFileSetChangeDescription(" + m_PublishedFileUpdateHandle + ", " + "\"Changelog!\"" + ") : " + ret);
        }

        if (GUILayout.Button("GetPublishedItemVoteDetails(m_PublishedFileId)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.GetPublishedItemVoteDetails(m_PublishedFileId);
            OnRemoteStorageGetPublishedItemVoteDetailsResultCallResult.Set(handle);
            print("SteamRemoteStorage.GetPublishedItemVoteDetails(" + m_PublishedFileId + ") : " + handle);
        }

        if (GUILayout.Button("UpdateUserPublishedItemVote(m_PublishedFileId, true)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.UpdateUserPublishedItemVote(m_PublishedFileId, true);
            OnRemoteStorageUpdateUserPublishedItemVoteResultCallResult.Set(handle);
            print("SteamRemoteStorage.UpdateUserPublishedItemVote(" + m_PublishedFileId + ", " + true + ") : " + handle);
        }

        if (GUILayout.Button("GetUserPublishedItemVoteDetails(m_PublishedFileId)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.GetUserPublishedItemVoteDetails(m_PublishedFileId);
            OnRemoteStorageGetPublishedItemVoteDetailsResultCallResult.Set(handle);
            print("SteamRemoteStorage.GetUserPublishedItemVoteDetails(" + m_PublishedFileId + ") : " + handle);
        }

        if (GUILayout.Button("EnumerateUserSharedWorkshopFiles(SteamUser.GetSteamID(), 0, null, null)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.EnumerateUserSharedWorkshopFiles(SteamUser.GetSteamID(), 0, null, null);
            OnRemoteStorageEnumerateUserPublishedFilesResultCallResult.Set(handle);
            print("SteamRemoteStorage.EnumerateUserSharedWorkshopFiles(" + SteamUser.GetSteamID() + ", " + 0 + ", " + null + ", " + null + ") : " + handle);
        }

        if (GUILayout.Button("PublishVideo(EWorkshopVideoProvider.k_EWorkshopVideoProviderYoutube, \"William Hunter\", \"Rmvb4Hktv7U\", null, SteamUtils.GetAppID(), \"Test Video\", \"Desc\", ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic, null)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.PublishVideo(EWorkshopVideoProvider.k_EWorkshopVideoProviderYoutube, "William Hunter", "Rmvb4Hktv7U", null, SteamUtils.GetAppID(), "Test Video", "Desc", ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic, null);
            OnRemoteStoragePublishFileProgressCallResult.Set(handle);
            print("SteamRemoteStorage.PublishVideo(" + EWorkshopVideoProvider.k_EWorkshopVideoProviderYoutube + ", " + "\"William Hunter\"" + ", " + "\"Rmvb4Hktv7U\"" + ", " + null + ", " + SteamUtils.GetAppID() + ", " + "\"Test Video\"" + ", " + "\"Desc\"" + ", " + ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic + ", " + null + ") : " + handle);
        }

        if (GUILayout.Button("SetUserPublishedFileAction(m_PublishedFileId, EWorkshopFileAction.k_EWorkshopFileActionPlayed)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.SetUserPublishedFileAction(m_PublishedFileId, EWorkshopFileAction.k_EWorkshopFileActionPlayed);
            OnRemoteStorageSetUserPublishedFileActionResultCallResult.Set(handle);
            print("SteamRemoteStorage.SetUserPublishedFileAction(" + m_PublishedFileId + ", " + EWorkshopFileAction.k_EWorkshopFileActionPlayed + ") : " + handle);
        }

        if (GUILayout.Button("EnumeratePublishedFilesByUserAction(EWorkshopFileAction.k_EWorkshopFileActionPlayed, 0)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.EnumeratePublishedFilesByUserAction(EWorkshopFileAction.k_EWorkshopFileActionPlayed, 0);
            OnRemoteStorageEnumeratePublishedFilesByUserActionResultCallResult.Set(handle);
            print("SteamRemoteStorage.EnumeratePublishedFilesByUserAction(" + EWorkshopFileAction.k_EWorkshopFileActionPlayed + ", " + 0 + ") : " + handle);
        }

        if (GUILayout.Button("EnumeratePublishedWorkshopFiles(EWorkshopEnumerationType.k_EWorkshopEnumerationTypeRankedByVote, 0, 3, 0, null, null)"))
        {
            SteamAPICall_t handle = SteamRemoteStorage.EnumeratePublishedWorkshopFiles(EWorkshopEnumerationType.k_EWorkshopEnumerationTypeRankedByVote, 0, 3, 0, null, null);
            OnRemoteStorageEnumerateWorkshopFilesResultCallResult.Set(handle);
            print("SteamRemoteStorage.EnumeratePublishedWorkshopFiles(" + EWorkshopEnumerationType.k_EWorkshopEnumerationTypeRankedByVote + ", " + 0 + ", " + 3 + ", " + 0 + ", " + null + ", " + null + ") : " + handle);
        }

        //SteamRemoteStorage.UGCDownloadToLocation() // There is absolutely no documentation on how to use this function

        GUILayout.EndScrollView();
        GUILayout.EndVertical();
    }
 public override void Read(string path, byte[] buffer, int size)
 {
     lock (this.ioLock)
         SteamRemoteStorage.FileRead(path, buffer, size);
 }
 public override bool Delete(string path)
 {
     lock (this.ioLock)
         return(SteamRemoteStorage.FileDelete(path));
 }
Exemple #8
0
 public static int GetRemoteStorageFileCount(this IMyGameService service)
 {
     return(SteamRemoteStorage.GetFileCount());
 }
Exemple #9
0
 public static string GetRemoteStorageFileNameAndSize(this IMyGameService service, int fileIndex, out int fileSizeInBytes)
 {
     return(SteamRemoteStorage.GetFileNameAndSize(fileIndex, out fileSizeInBytes));
 }
Exemple #10
0
 public bool GetUserQuota(out int total, out int available)
 {
     total     = 0;
     available = 0;
     return(SteamRemoteStorage.GetQuota(out total, out available));
 }
Exemple #11
0
 public static bool GetRemoteStorageQuota(this IMyGameService service, out ulong totalBytes, out ulong availableBytes)
 {
     return(SteamRemoteStorage.GetQuota(out totalBytes, out availableBytes));
 }
 public bool FileWrite(string file_name, byte[] data)
 {
     return(SteamRemoteStorage.FileWrite(file_name, data, data.Length));
 }
 public bool FileForget(string file_name)
 {
     return(SteamRemoteStorage.FileForget(file_name));
 }
 public bool FileDelete(string file_name)
 {
     return(SteamRemoteStorage.FileDelete(file_name));
 }
Exemple #15
0
 public override bool Write(string path, byte[] data, int length)
 {
     return(SteamRemoteStorage.FileWrite(path, data, length));
 }
Exemple #16
0
 public static bool IsRemoteStorageFilePersisted(this IMyGameService service, string file)
 {
     return(SteamRemoteStorage.FilePersisted(file));
 }
 public bool GetQuota(out int totalBytes, out int availableBytes)
 {
     checkDisposed();
     return(SteamRemoteStorage.GetQuota(out totalBytes, out availableBytes));
 }
Exemple #18
0
 public static bool RemoteStorageFileForget(this IMyGameService service, string file)
 {
     return(SteamRemoteStorage.FileForget(file));
 }
 public override bool HasFile(string path)
 {
     lock (this.ioLock)
         return(SteamRemoteStorage.FileExists(path));
 }
Exemple #20
0
 public static bool DeleteFromCloud(this IMyGameService service, string fileName)
 {
     return(SteamRemoteStorage.FileDelete(fileName));
 }
Exemple #21
0
        private void upload()
        {
            if (NameView.Text.Trim().Length == 0 || DescriptionView.Text.Trim().Length == 0)
            {
                return;
            }

            CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = false;

            string filePath    = this.main.GetFullMapPath();
            string imagePath   = string.Format("{0}.png", filePath.Substring(0, filePath.LastIndexOf('.')));
            string description = DescriptionView.Text;
            string name        = NameView.Text;

            string steamFilePath  = string.Format("workshop/maps/{0}.map", MD5(filePath));
            string steamImagePath = string.Format("workshop/maps/{0}.png", MD5(imagePath));

            StatusString.Value = "Storing map...";
            if (SteamWorker.WriteFileUGC(filePath, steamFilePath))
            {
                StatusString.Value = "Storing image...";
                if (!SteamWorker.WriteFileUGC(imagePath, steamImagePath))
                {
                    StatusString.Value = "Failed to store image.";
                    CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                    return;
                }
            }
            else
            {
                CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                StatusString.Value = "Failed to store map.";
                return;
            }

            StatusString.Value   = "Uploading map...";
            this.fileShareResult = SteamWorker.ShareFileUGC(steamFilePath, (b, t) =>
            {
                if (b)
                {
                    StatusString.Value   = "Uploading image...";
                    this.fileShareResult = SteamWorker.ShareFileUGC(steamImagePath, (b1, handleT) =>
                    {
                        if (b1)
                        {
                            StatusString.Value = "Finalizing Entry...";
                            if (string.IsNullOrEmpty(this.currentPublishedFile.m_pchFileName))
                            {
                                // Upload new
                                this.filePublishResult = SteamWorker.UploadWorkShop(steamFilePath, steamImagePath, name, description, (publishSuccess, needsAcceptEULA, publishedFile) =>
                                {
                                    if (publishSuccess)
                                    {
                                        StatusString.Value = "Entry created!";
                                        DescriptionView.ClearText();
                                        NameView.ClearText();
                                        CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                                        SteamWorker.SetAchievement("cheevo_level_editor");
                                    }
                                    else
                                    {
                                        StatusString.Value = "Publish failed.";
                                        CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                                    }
                                });
                            }
                            else
                            {
                                // Update existing
                                this.fileUpdateResult = SteamWorker.UpdateWorkshopMap(currentPublishedFile.m_nPublishedFileId, steamFilePath, steamImagePath, name, description, publishSuccess =>
                                {
                                    if (publishSuccess)
                                    {
                                        StatusString.Value = "Entry updated!";
                                        CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                                        SteamRemoteStorage.FileDelete(this.currentPublishedFile.m_pchFileName);
                                    }
                                    else
                                    {
                                        StatusString.Value = "Update failed.";
                                        CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                                    }
                                });
                            }
                        }
                        else
                        {
                            StatusString.Value = "Failed to upload image.";
                            CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                        }
                    });
                }
                else
                {
                    StatusString.Value = "Failed to upload map.";
                    CloseButton.AllowMouseEvents.Value = UploadButton.AllowMouseEvents.Value = true;
                }
            });
        }
Exemple #22
0
 public bool DeleteFile(SaveFile file)
 {
     checkDisposed();
     return(SteamRemoteStorage.FileDelete(file.Name));
 }
Exemple #23
0
        public static void UpdateStorageMethodsFromSourcesToLatest()
        {
            var num = -1;

            for (var index = 0; index < StorageMethods.Count; ++index)
            {
                if (StorageMethods[index].DidDeserialize)
                {
                    num = index;
                    break;
                }
            }
            if (num == -1)
            {
                var saveFileManifest1 = ReadOldSysemSteamCloudSaveManifest();
                var saveFileManifest2 = ReadOldSysemLocalSaveManifest();
                if (saveFileManifest1 == null && saveFileManifest2 == null)
                {
                    Console.WriteLine("New Game Detected!");
                }
                else
                {
                    var manifest = new SaveFileManifest();
                    var utcNow   = DateTime.UtcNow;
                    var flag     = false;
                    if (saveFileManifest2 != null)
                    {
                        for (var index = 0; index < saveFileManifest2.Accounts.Count; ++index)
                        {
                            var str = RemoteSaveStorage.Standalone_FolderPath + RemoteSaveStorage.BASE_SAVE_FILE_NAME +
                                      saveFileManifest2.Accounts[index].FileUsername + RemoteSaveStorage.SAVE_FILE_EXT;
                            if (File.Exists(str))
                            {
                                var fileInfo = new FileInfo(str);
                                if (fileInfo.Length > 100L)
                                {
                                    manifest.AddUser(saveFileManifest2.Accounts[index].Username,
                                                     saveFileManifest2.Accounts[index].Password, fileInfo.LastWriteTimeUtc, str);
                                }
                            }
                        }
                        for (var index = 0; index < manifest.Accounts.Count; ++index)
                        {
                            if (saveFileManifest2.LastLoggedInUser.Username == manifest.Accounts[index].Username)
                            {
                                manifest.LastLoggedInUser = manifest.Accounts[index];
                            }
                        }
                        if (manifest.LastLoggedInUser.Username == null)
                        {
                            var index = manifest.Accounts.Count - 1;
                            if (index >= 0)
                            {
                                manifest.LastLoggedInUser = manifest.Accounts[index];
                                flag = true;
                            }
                        }
                    }
                    if (saveFileManifest1 != null)
                    {
                        for (var index1 = 0; index1 < saveFileManifest1.Accounts.Count; ++index1)
                        {
                            try
                            {
                                var str = RemoteSaveStorage.BASE_SAVE_FILE_NAME +
                                          saveFileManifest1.Accounts[index1].FileUsername +
                                          RemoteSaveStorage.SAVE_FILE_EXT;
                                if (SteamRemoteStorage.FileExists(str))
                                {
                                    if (SteamRemoteStorage.GetFileSize(str) > 100)
                                    {
                                        var index2 = -1;
                                        for (var index3 = 0; index3 < manifest.Accounts.Count; ++index3)
                                        {
                                            if (manifest.Accounts[index3].Username ==
                                                saveFileManifest1.Accounts[index1].Username)
                                            {
                                                index2 = index3;
                                                break;
                                            }
                                        }
                                        if (index2 >= 0)
                                        {
                                            if (new DateTime(1970, 1, 1, 0, 0, 0) +
                                                TimeSpan.FromSeconds(SteamRemoteStorage.GetFileTimestamp(str)) >
                                                manifest.Accounts[index2].LastWriteTime)
                                            {
                                                var saveReadStream = RemoteSaveStorage.GetSaveReadStream(str, false);
                                                if (saveReadStream != null)
                                                {
                                                    var saveData = new StreamReader(saveReadStream).ReadToEnd();
                                                    saveReadStream.Close();
                                                    saveReadStream.Dispose();
                                                    RemoteSaveStorage.WriteSaveData(saveData, str, true);
                                                }
                                                else
                                                {
                                                    MainMenu.AccumErrors = MainMenu.AccumErrors +
                                                                           "WARNING: Cloud account " +
                                                                           saveFileManifest1.Accounts[index1].Username +
                                                                           " failed to convert over to new secure account system.\nRestarting your computer and Hacknet may resolve this issue.";
                                                }
                                            }
                                        }
                                        else
                                        {
                                            var filepath = RemoteSaveStorage.Standalone_FolderPath +
                                                           RemoteSaveStorage.BASE_SAVE_FILE_NAME +
                                                           saveFileManifest1.Accounts[index1].Username +
                                                           RemoteSaveStorage.SAVE_FILE_EXT;
                                            var saveReadStream =
                                                RemoteSaveStorage.GetSaveReadStream(
                                                    saveFileManifest1.Accounts[index1].Username, false);
                                            if (saveReadStream != null)
                                            {
                                                RemoteSaveStorage.WriteSaveData(
                                                    Utils.ReadEntireContentsOfStream(saveReadStream),
                                                    saveFileManifest1.Accounts[index1].Username, true);
                                                manifest.AddUser(saveFileManifest1.Accounts[index1].Username,
                                                                 saveFileManifest1.Accounts[index1].Password, utcNow, filepath);
                                            }
                                            else
                                            {
                                                MainMenu.AccumErrors = MainMenu.AccumErrors + "WARNING: Cloud account " +
                                                                       saveFileManifest1.Accounts[index1].Username +
                                                                       " failed to convert over to new secure account system.\nRestarting your computer and Hacknet may resolve this issue.";
                                            }
                                        }
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                MainMenu.AccumErrors = MainMenu.AccumErrors +
                                                       "WARNING: Error upgrading account #" + (index1 + 1) +
                                                       ":\r\n" + Utils.GenerateReportFromException(ex);
                                if (!HasSentErrorReport)
                                {
                                    var extraData = "cloudAccounts: " +
                                                    (saveFileManifest1 == null
                                                        ? "NULL"
                                                        : string.Concat(saveFileManifest1.Accounts.Count)) +
                                                    " vs localAccounts " +
                                                    (saveFileManifest2 == null
                                                        ? "NULL"
                                                        : string.Concat(saveFileManifest2.Accounts.Count));
                                    Utils.SendThreadedErrorReport(ex, "AccountUpgrade_Error", extraData);
                                    HasSentErrorReport = true;
                                }
                            }
                        }
                        if (flag)
                        {
                            for (var index = 0; index < manifest.Accounts.Count; ++index)
                            {
                                if (saveFileManifest2.LastLoggedInUser.Username == manifest.Accounts[index].Username)
                                {
                                    manifest.LastLoggedInUser = manifest.Accounts[index];
                                }
                            }
                        }
                    }
                    var systemStorageMethod = new OldSystemStorageMethod(manifest);
                    for (var index = 0; index < StorageMethods.Count; ++index)
                    {
                        StorageMethods[index].UpdateDataFromOtherManager(systemStorageMethod);
                    }
                }
            }
            else
            {
                for (var index = 1; index < StorageMethods.Count; ++index)
                {
                    StorageMethods[0].UpdateDataFromOtherManager(StorageMethods[index]);
                }
            }
        }
Exemple #24
0
 public override bool Delete(string path)
 {
     return(SteamRemoteStorage.FileDelete(path));
 }
 public override void Close()
 {
     SteamRemoteStorage.FileWrite(file, data.ToArray());
     data.Clear();
 }
Exemple #26
0
 public override int GetFileSize(string path)
 {
     return(SteamRemoteStorage.GetFileSize(path));
 }
Exemple #27
0
 public void StartModify()
 {
     if (!updateHandle.Equals(PublishedFileUpdateHandle_t.Invalid))
     {
         throw new InvalidOperationException("Upload already started");
     }
     // Legacy Workshop item
     updateHandle = SteamRemoteStorage.CreatePublishedFileUpdateRequest(details.
                                                                        m_nPublishedFileId);
     if (updateHandle.Equals(PublishedFileUpdateHandle_t.Invalid))
     {
         OnModifyFailed?.Invoke();
     }
     else
     {
         PUtil.LogDebug("MODIFYING MOD: " + Mod.label.title);
         string desc = Description?.Trim(), title = Title?.Trim();
         if (!desc.IsNullOrWhiteSpace() && desc != details.m_rgchDescription)
         {
             PUtil.LogDebug("DESCRIPTION: " + desc);
             if (!SteamRemoteStorage.UpdatePublishedFileDescription(updateHandle, desc))
             {
                 PUtil.LogWarning("Failed to set item description!");
             }
         }
         if (!title.IsNullOrWhiteSpace() && title != details.m_rgchTitle)
         {
             PUtil.LogDebug("TITLE: " + title);
             if (!SteamRemoteStorage.UpdatePublishedFileTitle(updateHandle, title))
             {
                 PUtil.LogWarning("Failed to set item title!");
             }
         }
         if (!PatchInfo.IsNullOrWhiteSpace())
         {
             PUtil.LogDebug("PATCH INFO: " + PatchInfo);
             if (!SteamRemoteStorage.UpdatePublishedFileSetChangeDescription(
                     updateHandle, PatchInfo))
             {
                 PUtil.LogWarning("Failed to set change notes!");
             }
         }
         if (UpdateData && !DataPath.IsNullOrWhiteSpace())
         {
             byte[] zipData = ZipModFolder(DataPath);
             if (zipData != null)
             {
                 PUtil.LogDebug("DATA: " + DataPath + " => " + REMOTE_MOD_DATA);
                 if (!WriteToSteamStorage(zipData, REMOTE_MOD_DATA, OnDataUploaded))
                 {
                     OnModifyFailed?.Invoke();
                 }
             }
             else
             {
                 OnModifyFailed?.Invoke();
             }
         }
         else
         {
             StartPreviewUpload();
         }
     }
 }
Exemple #28
0
 public override bool HasFile(string path)
 {
     return(SteamRemoteStorage.FileExists(path));
 }
 public override int GetFileSize(string path)
 {
     lock (this.ioLock)
         return(SteamRemoteStorage.GetFileSize(path));
 }
 public int GetFileCount()
 {
     return(SteamRemoteStorage.GetFileCount());
 }