From 743eeff59368d98e7fd1ba44a99957897a9bf87d Mon Sep 17 00:00:00 2001 From: Chris Ryan Date: Wed, 20 Aug 2025 20:49:25 +1000 Subject: [PATCH] Hard coded template; no value applied/saved --- daggerheart.mjs | 6 +- module/applications/scene/_module.mjs | 2 +- module/applications/scene/sceneConfig.mjs | 19 ------ .../scene/sceneConfigSettings.mjs | 60 +++++++++++++++++++ module/data/scene/SceneConfig.mjs | 15 +++++ module/data/scene/_module.mjs | 1 + templates/scene/dh-config.hbs | 6 +- 7 files changed, 85 insertions(+), 24 deletions(-) delete mode 100644 module/applications/scene/sceneConfig.mjs create mode 100644 module/applications/scene/sceneConfigSettings.mjs create mode 100644 module/data/scene/SceneConfig.mjs create mode 100644 module/data/scene/_module.mjs diff --git a/daggerheart.mjs b/daggerheart.mjs index d2eb4d80..71e2b667 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -145,10 +145,10 @@ Hooks.once('init', () => { // Make Compendium Dialog resizable foundry.applications.sidebar.apps.Compendium.DEFAULT_OPTIONS.window.resizable = true; - applications.scene.DhSceneConfig.PARTS.dh = {template: "systems/daggerheart/templates/scene/dh-config.hbs"}; - applications.scene.DhSceneConfig.TABS.sheet.tabs.push({id: "dh", icon: "fa-solid"}); + // applications.scene.DhSceneConfigSettings.PARTS.dh = {template: "systems/daggerheart/templates/scene/dh-config.hbs"}; + // applications.scene.DhSceneConfigSettings.TABS.sheet.tabs.push({id: "dh", icon: "fa-solid"}); - DocumentSheetConfig.registerSheet(foundry.documents.Scene, SYSTEM.id, applications.scene.DhSceneConfig , { + DocumentSheetConfig.registerSheet(foundry.documents.Scene, SYSTEM.id, applications.scene.DhSceneConfigSettings , { makeDefault: true, label: "Daggerheart" }); diff --git a/module/applications/scene/_module.mjs b/module/applications/scene/_module.mjs index d312edc8..6dc59081 100644 --- a/module/applications/scene/_module.mjs +++ b/module/applications/scene/_module.mjs @@ -1 +1 @@ -export { default as DhSceneConfig } from './sceneConfig.mjs'; \ No newline at end of file +export { default as DhSceneConfigSettings } from './sceneConfigSettings.mjs'; \ No newline at end of file diff --git a/module/applications/scene/sceneConfig.mjs b/module/applications/scene/sceneConfig.mjs deleted file mode 100644 index 2759563b..00000000 --- a/module/applications/scene/sceneConfig.mjs +++ /dev/null @@ -1,19 +0,0 @@ - -export default class DhSceneConfig extends foundry.applications.sheets.SceneConfig { - - /** @inheritDoc */ - async _preparePartContext(partId, context, options) { - console.log("_preparePartContext", partId, context, options); - context = await super._preparePartContext(partId, context, options); - switch ( partId ) { - case "dh": - context.fields.rangeMeasurementSettingsOverride = "Override Global Range Measurement Settings"; - break; - default: - context = await super._preparePartContext(partId, context, options); - } - if ( partId in context.tabs ) context.tab = context.tabs[partId]; - return context; - } - -} \ No newline at end of file diff --git a/module/applications/scene/sceneConfigSettings.mjs b/module/applications/scene/sceneConfigSettings.mjs new file mode 100644 index 00000000..1ec2ef43 --- /dev/null +++ b/module/applications/scene/sceneConfigSettings.mjs @@ -0,0 +1,60 @@ +import DhSceneConfig from '../../data/scene/SceneConfig.mjs'; + +export default class DhSceneConfigSettings extends foundry.applications.sheets.SceneConfig { + constructor(options, ...args) { + super(options, ...args); + // this.settings = new DhSceneConfig(); + // this.rangeMeasurementSettingsOverrideField = this.settings.initial; + } + + /** @override */ + static PARTS = { + tabs: { template: "templates/generic/tab-navigation.hbs" }, + basics: { template: "templates/scene/config/basics.hbs" }, + grid: { template: "templates/scene/config/grid.hbs" }, + lighting: { template: "templates/scene/config/lighting.hbs", scrollable: [""] }, + ambience: { template: "templates/scene/config/ambience.hbs", scrollable: ["div.tab[data-tab=environment]"] }, + dh: { template: "systems/daggerheart/templates/scene/dh-config.hbs" }, + footer: { template: "templates/generic/form-footer.hbs" } + }; + + /** @override */ + static TABS = { + sheet: { + tabs: [ + { id: "basics", icon: "fa-solid fa-image" }, + { id: "grid", icon: "fa-solid fa-grid" }, + { id: "lighting", icon: "fa-solid fa-lightbulb" }, + { id: "ambience", icon: "fa-solid fa-cloud-sun" }, + { id: "dh", icon: "fa-solid" } + ], + initial: "basics", + labelPrefix: "SCENE.TABS.SHEET" + }, + ambience: { + tabs: [ + { id: "basic", icon: "fa-solid fa-table-list" }, + { id: "environment", icon: "fa-solid fa-cloud-sun" } + ], + initial: "basic", + labelPrefix: "SCENE.TABS.AMBIENCE" + } + }; + + /** @inheritDoc */ + async _preparePartContext(partId, context, options) { + console.log("_preparePartContext", partId, context, options); + context = await super._preparePartContext(partId, context, options); + switch (partId) { + case "dh": + // context.settings = this.settings; + // context.rangeMeasurementSettingsOverrideField = this.rangeMeasurementSettingsOverrideField; + break; + default: + context = await super._preparePartContext(partId, context, options); + } + if (partId in context.tabs) context.tab = context.tabs[partId]; + return context; + } + +} \ No newline at end of file diff --git a/module/data/scene/SceneConfig.mjs b/module/data/scene/SceneConfig.mjs new file mode 100644 index 00000000..5cf4cc95 --- /dev/null +++ b/module/data/scene/SceneConfig.mjs @@ -0,0 +1,15 @@ + + +export default class DhSceneConfig extends foundry.abstract.DataModel { + static defineSchema() { + const fields = foundry.data.fields; + + return { + ...super.defineSchema(), + rangeMeasurementSettingsOverrideField: new fields.BooleanField({ + initial: false, + label: "Override Global Range Measurement Settings" + }) + } + } +} \ No newline at end of file diff --git a/module/data/scene/_module.mjs b/module/data/scene/_module.mjs new file mode 100644 index 00000000..27cbfaff --- /dev/null +++ b/module/data/scene/_module.mjs @@ -0,0 +1 @@ +export { default as DhSceneConfig } from './SceneConfig.mjs'; diff --git a/templates/scene/dh-config.hbs b/templates/scene/dh-config.hbs index 373ba9aa..3a6ad8d4 100644 --- a/templates/scene/dh-config.hbs +++ b/templates/scene/dh-config.hbs @@ -1,7 +1,11 @@
- {{formInput fields.rangeMeasurementSettingsOverride value=source.rangeMeasurementSettingsOverride}} +
\ No newline at end of file