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:
commit
70a4a57f51
6 changed files with 51 additions and 8 deletions
|
@ -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",
|
||||||
|
|
|
@ -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
41
src/module/fonts.ts
Normal 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}`)));
|
||||||
|
}
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
10
yarn.lock
10
yarn.lock
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue