Add settings button for presets, rearrange button order

This commit is contained in:
Chris Ryan 2025-10-17 22:18:08 +10:00
parent b75b4c8fcb
commit 110213d8db
3 changed files with 44 additions and 19 deletions

View file

@ -25,7 +25,8 @@
}, },
"CONTROLS": { "CONTROLS": {
"inFront": "In Front", "inFront": "In Front",
"Presets": "Preset Measured Templates" "Presets": "Preset Measured Templates",
"PresetsSettings": "Preset Measured Templates Settings"
}, },
"SCENE": { "SCENE": {
"TABS": { "TABS": {

View file

@ -64,9 +64,4 @@ export default class PresetTemplates extends HandlebarsApplicationMixin(Applicat
_onPosition(position) { _onPosition(position) {
game.user.setFlag(CONFIG.DH.id, 'app.presetTemplates.position', position); game.user.setFlag(CONFIG.DH.id, 'app.presetTemplates.position', position);
} }
async close(options = {}) {
if (!options.allowed) return;
else super.close(options);
}
} }

View file

@ -12,15 +12,6 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer
}, },
onToolChange: () => canvas.templates.setAllRenderFlags({ refreshState: true }), onToolChange: () => canvas.templates.setAllRenderFlags({ refreshState: true }),
tools: { tools: {
presets: {
name: 'presets',
order: 1,
title: 'CONTROLS.Presets',
icon: 'fa-regular fa-stamp',
onChange: (event, active) => DhTemplateLayer.handlePreset(event, active),
button: false
},
circle: { circle: {
name: 'circle', name: 'circle',
order: 1, order: 1,
@ -58,7 +49,7 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer
name: 'rect', name: 'rect',
order: 4, order: 4,
title: 'CONTROLS.MeasureRect', title: 'CONTROLS.MeasureRect',
icon: 'fa-regular fa-square', icon: 'fa-solid fa-square',
toolclip: { toolclip: {
src: 'toolclips/tools/measure-rect.webm', src: 'toolclips/tools/measure-rect.webm',
heading: 'CONTROLS.MeasureRect', 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']) 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: { clear: {
name: 'clear', name: 'clear',
order: 6, order: 8,
title: 'CONTROLS.MeasureClear', title: 'CONTROLS.MeasureClear',
icon: 'fa-solid fa-trash', icon: 'fa-solid fa-trash',
visible: game.user.isGM, visible: game.user.isGM,
@ -90,8 +97,8 @@ export default class DhTemplateLayer extends foundry.canvas.layers.TemplateLayer
}; };
} }
static handlePreset(event, active) { static handlePresetSettings(event, active) {
console.log("Preset handling goes here, event, active is: ", event, active); console.log("Preset settings handling goes here, event, active is: ", event, active);
if (active) { if (active) {
ui.presetTemplates.open(); ui.presetTemplates.open();
// if (CONFIG.ux.TemplateManager.getActivePreview()) { // 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) { _onDragLeftStart(event) {
const interaction = event.interactionData; const interaction = event.interactionData;