From cb5df2473e4fbc5f9c9e54926c3479662ee0da3c Mon Sep 17 00:00:00 2001 From: "Thomas (DJ1TJOO)" <44841260+DJ1TJOO@users.noreply.github.com> Date: Tue, 1 Feb 2022 17:33:18 +0100 Subject: [PATCH] Fixed different resolutions (#1362) * Fixed different resolutions * Fixed replacing shapezio vanilla sprites --- src/js/mods/mod_interface.js | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/src/js/mods/mod_interface.js b/src/js/mods/mod_interface.js index ff96d592..13bdb9d2 100644 --- a/src/js/mods/mod_interface.js +++ b/src/js/mods/mod_interface.js @@ -127,8 +127,13 @@ export class ModInterface { for (const spriteName in sourceData) { const { frame, sourceSize, spriteSourceSize } = sourceData[spriteName]; - const sprite = new AtlasSprite(spriteName); - Loader.sprites.set(spriteName, sprite); + let sprite = /** @type {AtlasSprite} */ (Loader.sprites.get(spriteName)); + + if (!sprite) { + sprite = new AtlasSprite(spriteName); + Loader.sprites.set(spriteName, sprite); + } + sprite.frozen = true; const link = new SpriteAtlasLink({ @@ -142,9 +147,14 @@ export class ModInterface { w: sourceSize.w, h: sourceSize.h, }); - sprite.linksByResolution["0.25"] = link; - sprite.linksByResolution["0.5"] = link; - sprite.linksByResolution["0.75"] = link; + + if (atlasData.meta && atlasData.meta.scale) { + sprite.linksByResolution[atlasData.meta.scale] = link; + } else { + sprite.linksByResolution["0.25"] = link; + sprite.linksByResolution["0.5"] = link; + sprite.linksByResolution["0.75"] = link; + } } }