From f0531d3587291e2bfffba8ccdabd7b2435c61d7f Mon Sep 17 00:00:00 2001 From: WBHarry <89362246+WBHarry@users.noreply.github.com> Date: Mon, 22 Dec 2025 17:03:49 +0100 Subject: [PATCH] [Fix] Sheet Labels (#1456) * Added human readable sheet labels to all sheets * Prefixed sheet labels with 'Default DH' * :carpentry_saw: --- daggerheart.mjs | 102 ++++++++++++++++++++++++++++++++++++++---------- lang/en.json | 2 + 2 files changed, 84 insertions(+), 20 deletions(-) diff --git a/daggerheart.mjs b/daggerheart.mjs index 08a1be02..f1d8c67a 100644 --- a/daggerheart.mjs +++ b/daggerheart.mjs @@ -90,34 +90,94 @@ Hooks.once('init', () => { makeDefault: true }); + const sheetLabel = typePath => () => + game.i18n.format('DAGGERHEART.GENERAL.typeSheet', { + type: game.i18n.localize(typePath) + }); + const { Items, Actors } = foundry.documents.collections; Items.unregisterSheet('core', foundry.applications.sheets.ItemSheetV2); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Ancestry, { types: ['ancestry'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Community, { types: ['community'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Class, { types: ['class'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Subclass, { types: ['subclass'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Feature, { types: ['feature'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.DomainCard, { types: ['domainCard'], makeDefault: true }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Ancestry, { + types: ['ancestry'], + makeDefault: true, + label: sheetLabel('TYPES.Item.ancestry') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Community, { + types: ['community'], + makeDefault: true, + label: sheetLabel('TYPES.Item.community') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Class, { + types: ['class'], + makeDefault: true, + label: sheetLabel('TYPES.Item.class') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Subclass, { + types: ['subclass'], + makeDefault: true, + label: sheetLabel('TYPES.Item.subclass') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Feature, { + types: ['feature'], + makeDefault: true, + label: sheetLabel('TYPES.Item.feature') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.DomainCard, { + types: ['domainCard'], + makeDefault: true, + label: sheetLabel('TYPES.Item.domainCard') + }); Items.registerSheet(SYSTEM.id, applications.sheets.items.Loot, { types: ['loot'], - makeDefault: true + makeDefault: true, + label: sheetLabel('TYPES.Item.loot') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Consumable, { + types: ['consumable'], + makeDefault: true, + label: sheetLabel('TYPES.Item.consumable') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Weapon, { + types: ['weapon'], + makeDefault: true, + label: sheetLabel('TYPES.Item.weapon') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Armor, { + types: ['armor'], + makeDefault: true, + label: sheetLabel('TYPES.Item.armor') + }); + Items.registerSheet(SYSTEM.id, applications.sheets.items.Beastform, { + types: ['beastform'], + makeDefault: true, + label: sheetLabel('TYPES.Item.beastform') }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Consumable, { types: ['consumable'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Weapon, { types: ['weapon'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Armor, { types: ['armor'], makeDefault: true }); - Items.registerSheet(SYSTEM.id, applications.sheets.items.Beastform, { types: ['beastform'], makeDefault: true }); Actors.unregisterSheet('core', foundry.applications.sheets.ActorSheetV2); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Character, { types: ['character'], makeDefault: true }); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Companion, { types: ['companion'], makeDefault: true }); - Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Adversary, { types: ['adversary'], makeDefault: true }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Character, { + types: ['character'], + makeDefault: true, + label: sheetLabel('TYPES.Actor.character') + }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Companion, { + types: ['companion'], + makeDefault: true, + label: sheetLabel('TYPES.Actor.companion') + }); + Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Adversary, { + types: ['adversary'], + makeDefault: true, + label: sheetLabel('TYPES.Actor.adversary') + }); Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Environment, { types: ['environment'], - makeDefault: true + makeDefault: true, + label: sheetLabel('TYPES.Actor.environment') }); Actors.registerSheet(SYSTEM.id, applications.sheets.actors.Party, { types: ['party'], - makeDefault: true + makeDefault: true, + label: sheetLabel('TYPES.Actor.party') }); DocumentSheetConfig.unregisterSheet( @@ -130,7 +190,8 @@ Hooks.once('init', () => { SYSTEM.id, applications.sheetConfigs.ActiveEffectConfig, { - makeDefault: true + makeDefault: true, + label: sheetLabel('DOCUMENT.ActiveEffect') } ); @@ -139,9 +200,10 @@ Hooks.once('init', () => { // Make Compendium Dialog resizable foundry.applications.sidebar.apps.Compendium.DEFAULT_OPTIONS.window.resizable = true; + DocumentSheetConfig.unregisterSheet(foundry.documents.Scene, 'core', foundry.applications.sheets.SceneConfig); DocumentSheetConfig.registerSheet(foundry.documents.Scene, SYSTEM.id, applications.scene.DhSceneConfigSettings, { makeDefault: true, - label: 'Daggerheart' + label: sheetLabel('DOCUMENT.Scene') }); settingsRegistration.registerDHSettings(); @@ -248,7 +310,7 @@ Hooks.on('chatMessage', (_, message) => { } }); -const updateActorsRangeDependentEffects = async (token) => { +const updateActorsRangeDependentEffects = async token => { const rangeMeasurement = game.settings.get( CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.variantRules @@ -283,7 +345,7 @@ const updateActorsRangeDependentEffects = async (token) => { await effect.update({ disabled: !enabledEffect }); } -} +}; const updateAllRangeDependentEffects = async () => { const effectsAutomation = game.settings.get(CONFIG.DH.id, CONFIG.DH.SETTINGS.gameSettings.Automation).effects; diff --git a/lang/en.json b/lang/en.json index 498a45cb..6e9a2489 100755 --- a/lang/en.json +++ b/lang/en.json @@ -36,6 +36,7 @@ }, "DAGGERHEART": { + "CharacterSheet": "Character Sheet", "ACTIONS": { "TYPES": { "attack": { @@ -2184,6 +2185,7 @@ "traitModifier": "Trait Modifier", "true": "True", "type": "Type", + "typeSheet": "System {type} Sheet", "unarmed": "Unarmed", "unarmedAttack": "Unarmed Attack", "unarmored": "Unarmored",