diff --git a/package.json b/package.json index bd320f8b..e5ab5a24 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "postinstall": "husky install" }, "devDependencies": { - "@league-of-foundry-developers/foundry-vtt-types": "^0.8.8-0", + "@league-of-foundry-developers/foundry-vtt-types": "^0.8.8-1", "@rollup/plugin-node-resolve": "^13.0.0", "@types/fs-extra": "^9.0.12", "@types/jest": "^26.0.24", diff --git a/src/module/actor/sheets/actor-sheet.ts b/src/module/actor/sheets/actor-sheet.ts index 8f4a5f0e..012d621d 100644 --- a/src/module/actor/sheets/actor-sheet.ts +++ b/src/module/actor/sheets/actor-sheet.ts @@ -175,7 +175,7 @@ export class DS4ActorSheet extends ActorSheet; + load(): Promise; +} + +interface FontFaceSet { + readonly status: FontFaceSetStatus; + readonly ready: Promise; + check(font: string, text?: string): boolean; + load(font: string, text?: string): Promise; +} + +declare global { + interface Document { + fonts: FontFaceSet; + } +} + +const fonts = ["Lora", "Wood Stamp"]; + +export async function preloadFonts() { + return Promise.all(fonts.map((font) => document.fonts.load(`1rem ${font}`))); +} diff --git a/src/module/hooks/init.ts b/src/module/hooks/init.ts index c7b1edcd..8db11fe2 100644 --- a/src/module/hooks/init.ts +++ b/src/module/hooks/init.ts @@ -8,6 +8,7 @@ import { DS4Actor } from "../actor/actor"; import { DS4CharacterActorSheet } from "../actor/sheets/character-sheet"; import { DS4CreatureActorSheet } from "../actor/sheets/creature-sheet"; import { DS4 } from "../config"; +import { preloadFonts as preloadFonts } from "../fonts"; import registerHandlebarsHelpers from "../handlebars/handlebars-helpers"; import registerHandlebarsPartials from "../handlebars/handlebars-partials"; import { getGame } from "../helpers"; @@ -61,6 +62,7 @@ async function init() { Items.unregisterSheet("core", ItemSheet); Items.registerSheet("ds4", DS4ItemSheet, { makeDefault: true }); + preloadFonts(); await registerHandlebarsPartials(); registerHandlebarsHelpers(); } diff --git a/src/module/item/item-sheet.ts b/src/module/item/item-sheet.ts index 485490f2..d604df7f 100644 --- a/src/module/item/item-sheet.ts +++ b/src/module/item/item-sheet.ts @@ -103,7 +103,7 @@ export class DS4ItemSheet extends ItemSheet icon: "icons/svg/aura.svg", }; - return ActiveEffect.create({ ...createData }, { parent: this.item }); + return ActiveEffect.create(createData, { parent: this.item }); } } diff --git a/yarn.lock b/yarn.lock index fc3277da..c371ecb2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -689,9 +689,9 @@ __metadata: languageName: node linkType: hard -"@league-of-foundry-developers/foundry-vtt-types@npm:^0.8.8-0": - version: 0.8.8-0 - resolution: "@league-of-foundry-developers/foundry-vtt-types@npm:0.8.8-0" +"@league-of-foundry-developers/foundry-vtt-types@npm:^0.8.8-1": + version: 0.8.8-1 + resolution: "@league-of-foundry-developers/foundry-vtt-types@npm:0.8.8-1" dependencies: "@types/jquery": ~3.5.5 "@types/simple-peer": ~9.11.0 @@ -701,7 +701,7 @@ __metadata: socket.io-client: 4.1.2 tinymce: 5.8.1 typescript: ^4.1.6 - checksum: cec288979cf341a28e8335fe5c538190df94925dad1a552a755d18cf2d5b557453a73dd1c17882c8576dd5226c86b89fe7ace1b51d1c5c3266613108e704a1bc + checksum: 40721e3f50f99606ab33b9db46c58eb2fdeb259c3e0c5fb5b856086bd11151406ffb8356bad51a516e2253dde507b7fc98c62ecd6002864c75a3f49e2baf2c83 languageName: node linkType: hard @@ -2949,7 +2949,7 @@ __metadata: version: 0.0.0-use.local resolution: "dungeonslayers4@workspace:." dependencies: - "@league-of-foundry-developers/foundry-vtt-types": ^0.8.8-0 + "@league-of-foundry-developers/foundry-vtt-types": ^0.8.8-1 "@rollup/plugin-node-resolve": ^13.0.0 "@types/fs-extra": ^9.0.12 "@types/jest": ^26.0.24