void OnGetTotalCountResult(RemoteStorageEnumerateWorkshopFilesResult_t pCallback, bool bIOFailure) { try { if (pCallback.m_eResult == EResult.k_EResultOK) { for (int i = 0; i < _getAmount; i++) { int randIdx = Random.Range(1, pCallback.m_nTotalResultCount); GetFileInfoResult.Add(CallResult <RemoteStorageEnumerateWorkshopFilesResult_t> .Create(OnGetFileInfoResult)); SteamAPICall_t handle = SteamRemoteStorage.EnumeratePublishedWorkshopFiles(EWorkshopEnumerationType.k_EWorkshopEnumerationTypeRecent, (uint)randIdx, 1, 0, _tags, null); GetFileInfoResult[i].Set(handle); } } else { Finish(_fileIDs, _publishIDs, false); } } catch (System.Exception e) { Finish(_fileIDs, _publishIDs, false); Debug.LogError(e.ToString()); } }
void OnRemoteStorageEnumerateWorkshopFilesResult(RemoteStorageEnumerateWorkshopFilesResult_t pCallback, bool bIOFailure) { Debug.Log("[" + RemoteStorageEnumerateWorkshopFilesResult_t.k_iCallback + " - RemoteStorageEnumerateWorkshopFilesResult] - " + pCallback.m_eResult + " -- " + pCallback.m_nResultsReturned + " -- " + pCallback.m_nTotalResultCount + " -- " + pCallback.m_rgPublishedFileId + " -- " + pCallback.m_rgScore + " -- " + pCallback.m_nAppId + " -- " + pCallback.m_unStartIndex); for (int i = 0; i < pCallback.m_nResultsReturned; ++i) { print(i + ": " + pCallback.m_rgPublishedFileId[i]); } if (pCallback.m_nResultsReturned >= 1) { m_PublishedFileId = pCallback.m_rgPublishedFileId[0]; } }
// SteamAPICall_t // using: Detect_StringArray public CallbackHandle EnumeratePublishedWorkshopFiles(WorkshopEnumerationType eEnumerationType /*EWorkshopEnumerationType*/, uint unStartIndex /*uint32*/, uint unCount /*uint32*/, uint unDays /*uint32*/, string[] pTags /*struct SteamParamStringArray_t **/, ref SteamParamStringArray_t pUserTags /*struct SteamParamStringArray_t **/, Action <RemoteStorageEnumerateWorkshopFilesResult_t, bool> CallbackFunction = null /*Action<RemoteStorageEnumerateWorkshopFilesResult_t, bool>*/) { SteamAPICall_t callback = 0; // Create strings var nativeStrings = new IntPtr[pTags.Length]; for (int i = 0; i < pTags.Length; i++) { nativeStrings[i] = Marshal.StringToHGlobalAnsi(pTags[i]); } try { // Create string array var size = Marshal.SizeOf(typeof(IntPtr)) * nativeStrings.Length; var nativeArray = Marshal.AllocHGlobal(size); Marshal.Copy(nativeStrings, 0, nativeArray, nativeStrings.Length); // Create SteamParamStringArray_t var tags = new SteamParamStringArray_t(); tags.Strings = nativeArray; tags.NumStrings = pTags.Length; callback = platform.ISteamRemoteStorage_EnumeratePublishedWorkshopFiles(eEnumerationType, unStartIndex, unCount, unDays, ref tags, ref pUserTags); } finally { foreach (var x in nativeStrings) { Marshal.FreeHGlobal(x); } } if (CallbackFunction == null) { return(null); } if (callback == 0) { return(null); } return(RemoteStorageEnumerateWorkshopFilesResult_t.CallResult(steamworks, callback, CallbackFunction)); }
void OnGetFileInfoResult(RemoteStorageEnumerateWorkshopFilesResult_t pCallback, bool bIOFailure) { try { if (pCallback.m_eResult == EResult.k_EResultOK) { GetFileDetailsResult.Add(CallResult <RemoteStorageGetPublishedFileDetailsResult_t> .Create(OnGetFinalInfo)); SteamAPICall_t handle = SteamRemoteStorage.GetPublishedFileDetails(pCallback.m_rgPublishedFileId[0], 0); GetFileDetailsResult[GetFileDetailsResult.Count - 1].Set(handle); } else { Finish(_fileIDs, _publishIDs, false); } } catch (System.Exception e) { Finish(_fileIDs, _publishIDs, false); Debug.LogError(e.ToString()); } }
void OnRemoteStorageEnumerateWorkshopFilesResultAllUser(RemoteStorageEnumerateWorkshopFilesResult_t pCallback, bool bIOFailure) { //GetPreFileList step 2 //Debug.Log ("[" + RemoteStorageEnumerateWorkshopFilesResult_t.k_iCallback + " - RemoteStorageEnumerateWorkshopFilesResult] - " + pCallback.m_eResult + " -- " + pCallback.m_nResultsReturned + " -- " + pCallback.m_nTotalResultCount + " -- " + pCallback.m_rgPublishedFileId + " -- " + pCallback.m_rgScore + " -- " + pCallback.m_nAppId + " -- " + pCallback.m_unStartIndex); if (pCallback.m_eResult == EResult.k_EResultOK) { for (int i = 0; i < pCallback.m_nResultsReturned; i++) { _FileIDLsit.Add(pCallback.m_rgPublishedFileId[i]); //for test //SteamProcessMgr.Instance.GetPreFileDetail(null,pCallback.m_rgPublishedFileId[i]); } Finish(_FileIDLsit, pCallback.m_nTotalResultCount, _StartIndex, true); //for (int i = 0; i < pCallback.m_nResultsReturned; ++i) { // Debug.Log (i + ": " + pCallback.m_rgPublishedFileId [i]); //} } else { Finish(_FileIDLsit, 0, _StartIndex, false); } }