mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-01-11 19:25:21 +01:00
82 lines
No EOL
2.7 KiB
JavaScript
82 lines
No EOL
2.7 KiB
JavaScript
export const loadCompendiumOptions = async (compendiums) => {
|
|
const compendiumValues = [];
|
|
|
|
for(var compendium of compendiums){
|
|
const values = await getCompendiumOptions(compendium);
|
|
compendiumValues.push(values);
|
|
}
|
|
|
|
return compendiumValues;
|
|
};
|
|
|
|
const getCompendiumOptions = async (compendium) => {
|
|
const compendiumPack = await game.packs.get(compendium);
|
|
|
|
const values = [];
|
|
for(var value of compendiumPack.index){
|
|
const document = await compendiumPack.getDocument(value._id);
|
|
values.push(document);
|
|
}
|
|
|
|
return values;
|
|
};
|
|
|
|
export const getWidthOfText = (txt, fontsize, allCaps, bold) => {
|
|
// if(getWidthOfText.e === undefined){
|
|
// getWidthOfText.e = document.createElement('span');
|
|
// getWidthOfText.e.style.display = "none";
|
|
// document.body.appendChild(getWidthOfText.e);
|
|
// }
|
|
// if(getWidthOfText.e.style.fontSize !== fontsize)
|
|
// getWidthOfText.e.style.fontSize = fontsize;
|
|
// if(getWidthOfText.e.style.fontFamily !== 'Signika, sans-serif')
|
|
// getWidthOfText.e.style.fontFamily = 'Signika, sans-serif';
|
|
// getWidthOfText.e.innerText = txt;
|
|
// return getWidthOfText.e.offsetWidth;
|
|
const text = allCaps ? txt.toUpperCase() : txt;
|
|
if(getWidthOfText.c === undefined){
|
|
getWidthOfText.c=document.createElement('canvas');
|
|
getWidthOfText.ctx=getWidthOfText.c.getContext('2d');
|
|
}
|
|
var fontspec = `${bold ? 'bold': ''} ${fontsize}px` + ' ' + 'Signika, sans-serif';
|
|
if(getWidthOfText.ctx.font !== fontspec)
|
|
getWidthOfText.ctx.font = fontspec;
|
|
|
|
return getWidthOfText.ctx.measureText(text).width;
|
|
}
|
|
|
|
export const padArray = (arr, len, fill) => {
|
|
return arr.concat(Array(len).fill(fill)).slice(0,len);
|
|
}
|
|
|
|
export const getTier = (level, asNr) => {
|
|
switch(Math.floor((level+1)/3)){
|
|
case 1:
|
|
return asNr ? 1 : 'tier1';
|
|
case 2:
|
|
return asNr ? 2 : 'tier2';
|
|
case 3:
|
|
return asNr ? 3 : 'tier3';
|
|
default:
|
|
return asNr ? 0 : 'tier0';
|
|
}
|
|
}
|
|
|
|
export const capitalize = (string) => {
|
|
return string.charAt(0).toUpperCase() + string.slice(1);
|
|
}
|
|
|
|
export const getPathValue = (path, entity, numeric) => {
|
|
const pathValue = foundry.utils.getProperty(entity, path);
|
|
if(pathValue) return numeric ? Number.parseInt(pathValue) : pathValue;
|
|
|
|
return numeric ? Number.parseInt(path) : path;
|
|
};
|
|
|
|
export const generateId = (title, length) => {
|
|
const id = title.split(" ").map((w, i) => {
|
|
const p = w.slugify({replacement: "", strict: true});
|
|
return i ? p.titleCase() : p;
|
|
}).join("");
|
|
return Number.isNumeric(length) ? id.slice(0, length).padEnd(length, "0") : id;
|
|
} |