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

@ -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;