From 110213d8db19154eac84364edf974c831a0fb6f4 Mon Sep 17 00:00:00 2001 From: Chris Ryan Date: Fri, 17 Oct 2025 22:18:08 +1000 Subject: [PATCH] Add settings button for presets, rearrange button order --- lang/en.json | 3 +- module/applications/ui/presetTemplates.mjs | 5 -- module/canvas/placeables/templateLayer.mjs | 55 +++++++++++++++++----- 3 files changed, 44 insertions(+), 19 deletions(-) diff --git a/lang/en.json b/lang/en.json index a3b58680..026b7492 100755 --- a/lang/en.json +++ b/lang/en.json @@ -25,7 +25,8 @@ }, "CONTROLS": { "inFront": "In Front", - "Presets": "Preset Measured Templates" + "Presets": "Preset Measured Templates", + "PresetsSettings": "Preset Measured Templates Settings" }, "SCENE": { "TABS": { diff --git a/module/applications/ui/presetTemplates.mjs b/module/applications/ui/presetTemplates.mjs index 15a26911..c9b90c6c 100644 --- a/module/applications/ui/presetTemplates.mjs +++ b/module/applications/ui/presetTemplates.mjs @@ -64,9 +64,4 @@ export default class PresetTemplates extends HandlebarsApplicationMixin(Applicat _onPosition(position) { game.user.setFlag(CONFIG.DH.id, 'app.presetTemplates.position', position); } - - async close(options = {}) { - if (!options.allowed) return; - else super.close(options); - } } diff --git a/module/canvas/placeables/templateLayer.mjs b/module/canvas/placeables/templateLayer.mjs index 364308dc..a691c8c0 100644 --- a/module/canvas/placeables/templateLayer.mjs +++ b/module/canvas/placeables/templateLayer.mjs @@ -12,15 +12,6 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer }, onToolChange: () => canvas.templates.setAllRenderFlags({ refreshState: true }), tools: { - presets: { - name: 'presets', - order: 1, - title: 'CONTROLS.Presets', - icon: 'fa-regular fa-stamp', - onChange: (event, active) => DhTemplateLayer.handlePreset(event, active), - button: false - - }, circle: { name: 'circle', order: 1, @@ -58,7 +49,7 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer name: 'rect', order: 4, title: 'CONTROLS.MeasureRect', - icon: 'fa-regular fa-square', + icon: 'fa-solid fa-square', toolclip: { src: 'toolclips/tools/measure-rect.webm', heading: 'CONTROLS.MeasureRect', @@ -76,9 +67,25 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer items: sc.buildToolclipItems(['create', 'move', 'edit', 'hide', 'delete', 'rotate']) } }, + presets: { + name: 'presets', + order: 6, + title: 'CONTROLS.Presets', + icon: 'fa-solid fa-stamp', + onChange: (event, active) => DhTemplateLayer.handlePreset(event, active), + button: false + }, + settings: { + name: 'settings', + order: 7, + title: 'CONTROLS.PresetsSettings', + icon: 'fa-solid fa-gear', + onChange: (event, active) => DhTemplateLayer.handlePresetSettings(event, active), + button: false + }, clear: { name: 'clear', - order: 6, + order: 8, title: 'CONTROLS.MeasureClear', icon: 'fa-solid fa-trash', visible: game.user.isGM, @@ -90,8 +97,8 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer }; } - static handlePreset(event, active) { - console.log("Preset handling goes here, event, active is: ", event, active); + static handlePresetSettings(event, active) { + console.log("Preset settings handling goes here, event, active is: ", event, active); if (active) { ui.presetTemplates.open(); // if (CONFIG.ux.TemplateManager.getActivePreview()) { @@ -113,6 +120,28 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer } } + + static handlePreset(event, active) { + console.log("Preset handling goes here, event, active is: ", event, active); + if (active) { + if (CONFIG.ux.TemplateManager.getActivePreview()) { + return; + } + const { width, height } = game.canvas.scene.dimensions; + const data = { + x: width / 2, + y: height / 2, + t: 'circle', + distance: 30, + fillColor: '#FF0000' + }; + + CONFIG.ux.TemplateManager.createPreview(data); + } else { + CONFIG.ux.TemplateManager.cancelActivePreview(event); + } + } + _onDragLeftStart(event) { const interaction = event.interactionData;