Пример #1
0
        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;
        }
Пример #2
0
 /// <summary>
 /// Applied after OnSteamUGCQueryDetailsCompleted runs.
 /// </summary>
 internal static void Postfix(HashSet <SteamUGCDetails_t> ___publishes)
 {
     if (___publishes != null)
     {
         ModUpdateDetails.OnInstalledUpdate(___publishes);
     }
 }