Merge branch 'preload-fonts' into 'master'

preload fonts so that when first opening an actor / item sheet, they are...

See merge request dungeonslayers/ds4!119
This commit is contained in:
Johannes Loher 2021-07-08 21:38:25 +00:00
commit 70a4a57f51
6 changed files with 51 additions and 8 deletions

View file

@ -52,7 +52,7 @@
"postinstall": "husky install" "postinstall": "husky install"
}, },
"devDependencies": { "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", "@rollup/plugin-node-resolve": "^13.0.0",
"@types/fs-extra": "^9.0.12", "@types/fs-extra": "^9.0.12",
"@types/jest": "^26.0.24", "@types/jest": "^26.0.24",

View file

@ -175,7 +175,7 @@ export class DS4ActorSheet extends ActorSheet<ActorSheet.Options, DS4ActorSheetD
// Set new value // Set new value
const newValue = this.getValue(el); const newValue = this.getValue(el);
foundry.utils.setProperty(itemObject, property, newValue); foundry.utils.setProperty(itemObject, property, newValue);
item.update({ ...itemObject }); item.update(itemObject);
} }
/** /**

41
src/module/fonts.ts Normal file
View file

@ -0,0 +1,41 @@
// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT
type CSSOMString = string;
type FontFaceLoadStatus = "unloaded" | "loading" | "loaded" | "error";
type FontFaceSetStatus = "loading" | "loaded";
interface FontFace {
family: CSSOMString;
style: CSSOMString;
weight: CSSOMString;
stretch: CSSOMString;
unicodeRange: CSSOMString;
variant: CSSOMString;
featureSettings: CSSOMString;
variationSettings: CSSOMString;
display: CSSOMString;
readonly status: FontFaceLoadStatus;
readonly loaded: Promise<FontFace>;
load(): Promise<FontFace>;
}
interface FontFaceSet {
readonly status: FontFaceSetStatus;
readonly ready: Promise<FontFaceSet>;
check(font: string, text?: string): boolean;
load(font: string, text?: string): Promise<FontFace[]>;
}
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}`)));
}

View file

@ -8,6 +8,7 @@ import { DS4Actor } from "../actor/actor";
import { DS4CharacterActorSheet } from "../actor/sheets/character-sheet"; import { DS4CharacterActorSheet } from "../actor/sheets/character-sheet";
import { DS4CreatureActorSheet } from "../actor/sheets/creature-sheet"; import { DS4CreatureActorSheet } from "../actor/sheets/creature-sheet";
import { DS4 } from "../config"; import { DS4 } from "../config";
import { preloadFonts as preloadFonts } from "../fonts";
import registerHandlebarsHelpers from "../handlebars/handlebars-helpers"; import registerHandlebarsHelpers from "../handlebars/handlebars-helpers";
import registerHandlebarsPartials from "../handlebars/handlebars-partials"; import registerHandlebarsPartials from "../handlebars/handlebars-partials";
import { getGame } from "../helpers"; import { getGame } from "../helpers";
@ -61,6 +62,7 @@ async function init() {
Items.unregisterSheet("core", ItemSheet); Items.unregisterSheet("core", ItemSheet);
Items.registerSheet("ds4", DS4ItemSheet, { makeDefault: true }); Items.registerSheet("ds4", DS4ItemSheet, { makeDefault: true });
preloadFonts();
await registerHandlebarsPartials(); await registerHandlebarsPartials();
registerHandlebarsHelpers(); registerHandlebarsHelpers();
} }

View file

@ -103,7 +103,7 @@ export class DS4ItemSheet extends ItemSheet<ItemSheet.Options, DS4ItemSheetData>
icon: "icons/svg/aura.svg", icon: "icons/svg/aura.svg",
}; };
return ActiveEffect.create({ ...createData }, { parent: this.item }); return ActiveEffect.create(createData, { parent: this.item });
} }
} }

View file

@ -689,9 +689,9 @@ __metadata:
languageName: node languageName: node
linkType: hard linkType: hard
"@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-0 version: 0.8.8-1
resolution: "@league-of-foundry-developers/foundry-vtt-types@npm:0.8.8-0" resolution: "@league-of-foundry-developers/foundry-vtt-types@npm:0.8.8-1"
dependencies: dependencies:
"@types/jquery": ~3.5.5 "@types/jquery": ~3.5.5
"@types/simple-peer": ~9.11.0 "@types/simple-peer": ~9.11.0
@ -701,7 +701,7 @@ __metadata:
socket.io-client: 4.1.2 socket.io-client: 4.1.2
tinymce: 5.8.1 tinymce: 5.8.1
typescript: ^4.1.6 typescript: ^4.1.6
checksum: cec288979cf341a28e8335fe5c538190df94925dad1a552a755d18cf2d5b557453a73dd1c17882c8576dd5226c86b89fe7ace1b51d1c5c3266613108e704a1bc checksum: 40721e3f50f99606ab33b9db46c58eb2fdeb259c3e0c5fb5b856086bd11151406ffb8356bad51a516e2253dde507b7fc98c62ecd6002864c75a3f49e2baf2c83
languageName: node languageName: node
linkType: hard linkType: hard
@ -2949,7 +2949,7 @@ __metadata:
version: 0.0.0-use.local version: 0.0.0-use.local
resolution: "dungeonslayers4@workspace:." resolution: "dungeonslayers4@workspace:."
dependencies: 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 "@rollup/plugin-node-resolve": ^13.0.0
"@types/fs-extra": ^9.0.12 "@types/fs-extra": ^9.0.12
"@types/jest": ^26.0.24 "@types/jest": ^26.0.24