From 84ea3a6ea9da014aa234e77e53967438c5745107 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Sun, 10 Mar 2024 00:47:50 +0100 Subject: [PATCH] Fix: TMR qui ne s'affichent pas MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Après un certain temps (changements de scènes?), les TMR ne s'affichaient plus correctement. Tentative de forcer le chargement des textures manquantes lors de l'ouverture de la fenêtre de TMR. --- module/rdd-tmr-dialog.js | 5 ++--- module/tmr/pixi-tmr.js | 10 +++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/module/rdd-tmr-dialog.js b/module/rdd-tmr-dialog.js index 9a12ebd2..4e497720 100644 --- a/module/rdd-tmr-dialog.js +++ b/module/rdd-tmr-dialog.js @@ -44,16 +44,15 @@ export class RdDTMRDialog extends Dialog { type: Number, range: TMR_DISPLAY_SIZE.range }) - await PixiTMR.init() } static async create(actor, tmrData) { + await PixiTMR.init() let html = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/dialog-tmr.html', tmrData); - if (tmrData.mode != 'visu' && !game.user.isGM) { ChatMessage.create({ content: actor.name + " est monté dans les TMR en mode : " + tmrData.mode, whisper: ChatMessage.getWhisperRecipients("GM") }); } - return new RdDTMRDialog(html, actor, tmrData); + return new RdDTMRDialog(html, actor, tmrData) } /* -------------------------------------------- */ diff --git a/module/tmr/pixi-tmr.js b/module/tmr/pixi-tmr.js index ce0f32de..781e138b 100644 --- a/module/tmr/pixi-tmr.js +++ b/module/tmr/pixi-tmr.js @@ -1,4 +1,3 @@ -import { SYSTEM_RDD } from "../constants.js"; import { Misc } from "../misc.js"; import { TMRConstants, tmrTokenZIndex } from "../tmr-constants.js"; import { TMRUtility } from "../tmr-utility.js"; @@ -14,12 +13,12 @@ export class PixiTMR { static register(name, img) { PixiTMR.textures[name] = img; } + static async init() { await Promise.all( Object.values(PixiTMR.textures) - .filter(img => img != undefined) - .map(async img => PIXI.Sprite.from(await PIXI.Assets.load(img))) - ) + .filter(img => img != undefined && !PIXI.utils.TextureCache[img]) + .map(async img => PIXI.Sprite.from(await PIXI.Assets.load(img)))) } constructor(tmrDialog, displaySize) { @@ -106,8 +105,9 @@ export class PixiTMR { sprite(code, options = {}) { let img = PixiTMR.getImgFromCode(code) - const texture = PIXI.utils.TextureCache[img] + let texture = PIXI.utils.TextureCache[img] if (!texture) { + // TODO: charger la texture console.error("Texture manquante", code, PIXI.utils.TextureCache) return; }