private void OnUGCDetailsComplete(SteamUGCQueryCompleted_t callback, bool ioError) { var result = callback.m_eResult; var handle = callback.m_handle; PublishedFileId_t id; if (!ioError && result == EResult.k_EResultOK) { var allResults = ListPool <SteamUGCDetails_t, SteamUGCServiceFixed> .Allocate(); for (uint i = 0U; i < callback.m_unNumResultsReturned; i++) { if (SteamUGC.GetQueryUGCResult(handle, i, out SteamUGCDetails_t details) && allMods.TryGetValue(id = details.m_nPublishedFileId, out ModInfo mod)) { #if false PUtil.LogDebug("Updated mod {0:D} ({1})".F(id.m_PublishedFileId, details.m_rgchTitle)); #endif mod.Populate(details); // Queue up the preview image download.Queue(id); preview.Queue(id); allResults.Add(details); } } ModUpdateDetails.OnInstalledUpdate(allResults); allResults.Recycle(); } SteamUGC.ReleaseQueryUGCRequest(handle); onQueryComplete?.Dispose(); onQueryComplete = null; }
/// <summary> /// Applied after OnSteamUGCQueryDetailsCompleted runs. /// </summary> internal static void Postfix(HashSet <SteamUGCDetails_t> ___publishes) { if (___publishes != null) { ModUpdateDetails.OnInstalledUpdate(___publishes); } }