From d05afa9323a0f25f0e825a13dec3e86e0ef3f89e Mon Sep 17 00:00:00 2001 From: arion <53127594+JustArion@users.noreply.github.com> Date: Wed, 14 Jun 2023 22:34:20 +0200 Subject: [PATCH] Item Browser Caching Solution (#1626) * item browser improvements * Updated caching location --- modules/apps/wfrp-browser.js | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/apps/wfrp-browser.js b/modules/apps/wfrp-browser.js index a1dab9f94..cd265ac51 100644 --- a/modules/apps/wfrp-browser.js +++ b/modules/apps/wfrp-browser.js @@ -178,14 +178,30 @@ export default class BrowserWfrp4e extends Application { let packCount = game.packs.size; let packCounter = 0; + game.wfrp4e.DocumentCache = game.wfrp4e.DocumentCache || {}; + + async function cacheDocuments(pack, documents) { + game.wfrp4e.DocumentCache[pack.collection] = documents; + } + + + async function getCachedDocuments(pack) { + if (game.wfrp4e.DocumentCache.hasOwnProperty(pack.collection)) { + return game.wfrp4e.DocumentCache[pack.collection]; + } + + const documents = await pack.getDocuments(); + cacheDocuments(pack, documents); + return documents; + } + for (let p of game.packs) { packCounter++; SceneNavigation.displayProgressBar({label: game.i18n.localize("BROWSER.LoadingBrowser"), pct: Math.round((packCounter / packCount) * 100) }) if (p.metadata.type == "Item" && (game.user.isGM || !p.private)) { - await p.getDocuments().then(content => { - this.addItems(content) - }) + const content = await getCachedDocuments(p); + this.addItems(content); } } this.addItems(game.items.contents.filter(i => i.permission > 1));