diff --git a/module/applications/sheets-configs/token-config.mjs b/module/applications/sheets-configs/token-config.mjs index 886c17ab..afa7c830 100644 --- a/module/applications/sheets-configs/token-config.mjs +++ b/module/applications/sheets-configs/token-config.mjs @@ -53,6 +53,28 @@ export default class DhTokenConfig extends foundry.applications.sheets.TokenConf } } + /** @inheritDoc */ + _previewChanges(changes) { + if (!changes || !this._preview) return; + + const tokenSizeSelect = this.element?.querySelector('#dhTokenSize'); + if (this.token.actor && tokenSizeSelect && tokenSizeSelect.value !== 'custom') { + const tokenSizes = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Homebrew).tokenSizes; + const tokenSize = tokenSizes[tokenSizeSelect.value]; + changes.width = tokenSize; + changes.height = tokenSize; + } + + const deletions = { '-=actorId': null, '-=actorLink': null }; + const mergeOptions = { inplace: false, performDeletions: true }; + this._preview.updateSource(mergeObject(changes, deletions, mergeOptions)); + + if (this._preview?.object?.destroyed === false) { + this._preview.object.initializeSources(); + this._preview.object.renderFlags.set({ refresh: true }); + } + } + async onTokenSizeChange(event) { const value = event.target.value; const tokenSizeDimensions = this.element.querySelector('#tokenSizeDimensions'); diff --git a/templates/sheets-settings/token-config/appearance.hbs b/templates/sheets-settings/token-config/appearance.hbs index 73aa2872..7ded174a 100644 --- a/templates/sheets-settings/token-config/appearance.hbs +++ b/templates/sheets-settings/token-config/appearance.hbs @@ -17,7 +17,7 @@
- {{selectOptions tokenSizes selected=document.actor.system.size valueAttr="id" labelAttr="label" localize=true}}