break out handlebars helpers into own file;
remove commented out hook;
This commit is contained in:
+3
-299
@@ -1,4 +1,4 @@
|
||||
/* globals $ Hooks game CONFIG Actors Items ActorSheet ItemSheet Handlebars duplicate */
|
||||
/* globals $ Hooks game CONFIG Actors Items ActorSheet ItemSheet duplicate */
|
||||
|
||||
// Import Modules
|
||||
import DeltaGreenActor from "./actor/actor.js";
|
||||
@@ -8,8 +8,8 @@ import DeltaGreenItemSheet from "./item/item-sheet.js";
|
||||
import * as DGRolls from "./roll/roll.js";
|
||||
import registerSystemSettings from "./settings.js";
|
||||
import preloadHandlebarsTemplates from "./templates.js";
|
||||
import registerHandlebarsHelpers from "./other/register-helpers.js";
|
||||
import ParseDeltaGreenStatBlock from "./other/stat-parser-macro.js";
|
||||
import DGUtils from "./other/utility-functions.js";
|
||||
import {
|
||||
createDeltaGreenMacro,
|
||||
rollItemMacro,
|
||||
@@ -58,261 +58,7 @@ Hooks.once("init", async () => {
|
||||
preloadHandlebarsTemplates();
|
||||
|
||||
// Add Handlebars helpers
|
||||
Handlebars.registerHelper(
|
||||
"localizeWithFallback",
|
||||
function (value, fallbackValue) {
|
||||
return DGUtils.localizeWithFallback(value, fallbackValue);
|
||||
},
|
||||
);
|
||||
|
||||
Handlebars.registerHelper("concat", (...args) => {
|
||||
let outStr = "";
|
||||
for (const arg in args) {
|
||||
if (typeof args[arg] !== "object") {
|
||||
outStr += args[arg];
|
||||
}
|
||||
}
|
||||
return outStr;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("toLowerCase", (str) => {
|
||||
try {
|
||||
return str.toLowerCase();
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("toUpperCase", (str) => {
|
||||
try {
|
||||
return str.toUpperCase();
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_eq", (a, b, opts) => {
|
||||
if (a === b) {
|
||||
return opts.fn(this);
|
||||
}
|
||||
return opts.inverse(this);
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_not_eq", (a, b, opts) => {
|
||||
if (a !== b) {
|
||||
return opts.fn(this);
|
||||
}
|
||||
return opts.inverse(this);
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_gt", (a, b, trueVal, falseVal) => {
|
||||
if (a > b) {
|
||||
return trueVal;
|
||||
}
|
||||
return falseVal;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("cite_ahb", (page) => {
|
||||
return `See page ${page} of the Agent's Handbook.`;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("formatLethality", (lethality) => {
|
||||
if (lethality > 0) {
|
||||
return `${lethality.toString()}%`;
|
||||
}
|
||||
return "";
|
||||
});
|
||||
|
||||
// Is this used anywhere?
|
||||
Handlebars.registerHelper(
|
||||
"getActorSkillProp",
|
||||
(actorData, skillName, prop) => {
|
||||
try {
|
||||
if (skillName !== "" && prop !== "") {
|
||||
const { skills } = actorData.data;
|
||||
const skill = skills[skillName];
|
||||
const propVal = skill[prop];
|
||||
return propVal;
|
||||
}
|
||||
return "";
|
||||
} catch (ex) {
|
||||
console.log(ex);
|
||||
return "";
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Handlebars.registerHelper("getAvailableRollModes", () => {
|
||||
try {
|
||||
return CONFIG.Dice.rollModes;
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("getDefaultRollMode", () => {
|
||||
try {
|
||||
return game.settings.get("core", "rollMode");
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper(
|
||||
"calculateHandToHandCombatDamageFormulaBonus",
|
||||
(strength) => {
|
||||
try {
|
||||
let bonus = "";
|
||||
|
||||
if (strength.value < 5) {
|
||||
bonus = " - 2";
|
||||
} else if (strength.value < 9) {
|
||||
bonus = " - 1";
|
||||
} else if (strength.value > 12 && strength < 17) {
|
||||
bonus = " + 1";
|
||||
} else if (strength.value > 16) {
|
||||
bonus = " + 2";
|
||||
}
|
||||
|
||||
return bonus;
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Handlebars.registerHelper("localizeWeaponSkill", (skill) => {
|
||||
let label = skill;
|
||||
|
||||
try {
|
||||
if (skill === "dex") {
|
||||
label = game.i18n.localize("DG.Attributes.dex");
|
||||
}
|
||||
if (skill === "DG.Skills.custom") {
|
||||
label = game.i18n.localize("DG.ItemWindow.Custom");
|
||||
} else {
|
||||
label = game.i18n.localize(`DG.Skills.${skill}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
return label;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper(
|
||||
"hideSkillBasedOnProficiencyAndUserChoice",
|
||||
(hideUntrainedSkills, proficiency) => {
|
||||
let showValue = true;
|
||||
|
||||
try {
|
||||
if (hideUntrainedSkills === false) {
|
||||
showValue = true;
|
||||
} else if (proficiency > 0) {
|
||||
showValue = true;
|
||||
} else {
|
||||
showValue = false;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
return showValue;
|
||||
},
|
||||
);
|
||||
|
||||
// looks at system setting for what font to use and returns the class that is then used in the handlebars template that
|
||||
// generates the character sheet.
|
||||
Handlebars.registerHelper("getFontFamilySystemSettingClass", () => {
|
||||
const setting = game.settings.get("deltagreen", "characterSheetFont");
|
||||
|
||||
const characterSheetStyle = game.settings.get(
|
||||
"deltagreen",
|
||||
"characterSheetStyle",
|
||||
);
|
||||
|
||||
/*
|
||||
if(setting === "TypeWriterCondensed"){
|
||||
return "typewriter-condensed-font";
|
||||
}
|
||||
else if(setting === "Martel"){
|
||||
return "martel-font";
|
||||
}
|
||||
else if(setting === "Signika"){
|
||||
return "signika-font";
|
||||
}
|
||||
else if(setting === "atwriter"){
|
||||
return "atwriter-font";
|
||||
}
|
||||
else if(setting === "SpecialElite"){
|
||||
return "special-elite-font";
|
||||
}
|
||||
else if(setting === "PublicSans"){
|
||||
return "public-sans-font";
|
||||
}
|
||||
else{
|
||||
return "martel-font";
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
if(characterSheetStyle === "cowboy"){
|
||||
return "special-elite-font";
|
||||
}
|
||||
else{
|
||||
return "public-sans-font";
|
||||
}
|
||||
*/
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("getCharacterSheetStyle", () => {
|
||||
const characterSheetStyle = game.settings.get(
|
||||
"deltagreen",
|
||||
"characterSheetStyle",
|
||||
);
|
||||
|
||||
if (characterSheetStyle === "cowboy") {
|
||||
return "cowboy-style";
|
||||
}
|
||||
if (characterSheetStyle === "outlaw") {
|
||||
return "outlaw-style";
|
||||
}
|
||||
return "program-style";
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("keepSanityPrivate", () => {
|
||||
let setting = false;
|
||||
|
||||
try {
|
||||
setting = game.settings.get("deltagreen", "keepSanityPrivate");
|
||||
|
||||
if (game.user.isGM) {
|
||||
setting = false;
|
||||
}
|
||||
} catch (ex) {
|
||||
setting = false;
|
||||
}
|
||||
|
||||
return setting;
|
||||
});
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("playerHasGamemasterPrivileges", () => {
|
||||
return game.user.isGM;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("showImpossibleLandscapesContent", () => {
|
||||
let result = false;
|
||||
const setting = game.settings.get(
|
||||
"deltagreen",
|
||||
"showImpossibleLandscapesContent",
|
||||
);
|
||||
|
||||
if (game.user.isGM === true && setting === true) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
registerHandlebarsHelpers();
|
||||
});
|
||||
|
||||
Hooks.once("ready", async () => {
|
||||
@@ -322,49 +68,7 @@ Hooks.once("ready", async () => {
|
||||
);
|
||||
});
|
||||
|
||||
Hooks.on("ready", () => {
|
||||
// let backgroundImageSetting = game.settings.get("deltagreen", "characterSheetBackgroundImageSetting");
|
||||
// let characterSheetStyle = game.settings.get("deltagreen", "characterSheetStyle");
|
||||
// let customCss = "";
|
||||
// let customStyle = document.createElement("style");
|
||||
// customStyle.id = "dg-custom-css";
|
||||
/*
|
||||
if(backgroundImageSetting === "OldPaper1"){
|
||||
customCss += `div.deltagreen.sheet.actor section.window-content{
|
||||
background: url("systems/deltagreen/assets/img/old_paper.jpg") !important;
|
||||
}`;
|
||||
}
|
||||
else if(backgroundImageSetting === "IvoryPaper"){
|
||||
customCss += `div.deltagreen.sheet.actor section.window-content{
|
||||
background-size: 100% !important;
|
||||
}`;
|
||||
}
|
||||
*/
|
||||
/*
|
||||
if(characterSheetStyle === "cowboy"){
|
||||
customCss += `div.deltagreen.sheet.actor section.window-content{
|
||||
background: url("systems/deltagreen/assets/img/old_paper.jpg") !important;
|
||||
}`;
|
||||
}
|
||||
else if(characterSheetStyle === "program"){
|
||||
customCss += `div.deltagreen.sheet.actor section.window-content{
|
||||
background: url("systems/deltagreen/assets/img/CrumpledPlainPaper10.webp") !important;
|
||||
}`;
|
||||
}
|
||||
|
||||
customStyle.innerHTML = customCss;
|
||||
|
||||
if(customCss != ""){
|
||||
//document.querySelector("head").appendChild(customStyle);
|
||||
}
|
||||
*/
|
||||
});
|
||||
|
||||
Hooks.on("preCreateItem", (item) => {
|
||||
console.log("preCreateItem");
|
||||
console.log(item.img);
|
||||
console.log(item.type);
|
||||
|
||||
if (item.img === "icons/svg/item-bag.svg") {
|
||||
if (item.type === "bond") {
|
||||
item.updateSource({
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
/* global Handlebars CONFIG game */
|
||||
|
||||
import DGUtils from "./utility-functions.js";
|
||||
|
||||
export default function registerHandlebarsHelpers() {
|
||||
// Add Handlebars helpers
|
||||
Handlebars.registerHelper("localizeWithFallback", (value, fallbackValue) => {
|
||||
return DGUtils.localizeWithFallback(value, fallbackValue);
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("concat", (...args) => {
|
||||
let outStr = "";
|
||||
for (const arg in args) {
|
||||
if (typeof args[arg] !== "object") {
|
||||
outStr += args[arg];
|
||||
}
|
||||
}
|
||||
return outStr;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("toLowerCase", (str) => {
|
||||
try {
|
||||
return str.toLowerCase();
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("toUpperCase", (str) => {
|
||||
try {
|
||||
return str.toUpperCase();
|
||||
} catch (error) {
|
||||
return "";
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_eq", (a, b, opts) => {
|
||||
if (a === b) {
|
||||
return opts.fn(this);
|
||||
}
|
||||
return opts.inverse(this);
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_not_eq", (a, b, opts) => {
|
||||
if (a !== b) {
|
||||
return opts.fn(this);
|
||||
}
|
||||
return opts.inverse(this);
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("if_gt", (a, b, trueVal, falseVal) => {
|
||||
if (a > b) {
|
||||
return trueVal;
|
||||
}
|
||||
return falseVal;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("cite_ahb", (page) => {
|
||||
return `See page ${page} of the Agent's Handbook.`;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("formatLethality", (lethality) => {
|
||||
if (lethality > 0) {
|
||||
return `${lethality.toString()}%`;
|
||||
}
|
||||
return "";
|
||||
});
|
||||
|
||||
// Is this used anywhere?
|
||||
Handlebars.registerHelper(
|
||||
"getActorSkillProp",
|
||||
(actorData, skillName, prop) => {
|
||||
try {
|
||||
if (skillName !== "" && prop !== "") {
|
||||
const { skills } = actorData.data;
|
||||
const skill = skills[skillName];
|
||||
const propVal = skill[prop];
|
||||
return propVal;
|
||||
}
|
||||
return "";
|
||||
} catch (ex) {
|
||||
console.log(ex);
|
||||
return "";
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Handlebars.registerHelper("getAvailableRollModes", () => {
|
||||
try {
|
||||
return CONFIG.Dice.rollModes;
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("getDefaultRollMode", () => {
|
||||
try {
|
||||
return game.settings.get("core", "rollMode");
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
});
|
||||
|
||||
Handlebars.registerHelper(
|
||||
"calculateHandToHandCombatDamageFormulaBonus",
|
||||
(strength) => {
|
||||
try {
|
||||
let bonus = "";
|
||||
|
||||
if (strength.value < 5) {
|
||||
bonus = " - 2";
|
||||
} else if (strength.value < 9) {
|
||||
bonus = " - 1";
|
||||
} else if (strength.value > 12 && strength < 17) {
|
||||
bonus = " + 1";
|
||||
} else if (strength.value > 16) {
|
||||
bonus = " + 2";
|
||||
}
|
||||
|
||||
return bonus;
|
||||
} catch (error) {
|
||||
return console.log(error);
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
Handlebars.registerHelper("localizeWeaponSkill", (skill) => {
|
||||
let label = skill;
|
||||
|
||||
try {
|
||||
if (skill === "dex") {
|
||||
label = game.i18n.localize("DG.Attributes.dex");
|
||||
}
|
||||
if (skill === "DG.Skills.custom") {
|
||||
label = game.i18n.localize("DG.ItemWindow.Custom");
|
||||
} else {
|
||||
label = game.i18n.localize(`DG.Skills.${skill}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
return label;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper(
|
||||
"hideSkillBasedOnProficiencyAndUserChoice",
|
||||
(hideUntrainedSkills, proficiency) => {
|
||||
let showValue = true;
|
||||
|
||||
try {
|
||||
if (hideUntrainedSkills === false) {
|
||||
showValue = true;
|
||||
} else if (proficiency > 0) {
|
||||
showValue = true;
|
||||
} else {
|
||||
showValue = false;
|
||||
}
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
|
||||
return showValue;
|
||||
},
|
||||
);
|
||||
|
||||
// looks at system setting for what font to use and returns the class that is then used in the handlebars template that
|
||||
// generates the character sheet.
|
||||
Handlebars.registerHelper("getFontFamilySystemSettingClass", () => {
|
||||
const setting = game.settings.get("deltagreen", "characterSheetFont");
|
||||
|
||||
const characterSheetStyle = game.settings.get(
|
||||
"deltagreen",
|
||||
"characterSheetStyle",
|
||||
);
|
||||
|
||||
/*
|
||||
if(setting === "TypeWriterCondensed"){
|
||||
return "typewriter-condensed-font";
|
||||
}
|
||||
else if(setting === "Martel"){
|
||||
return "martel-font";
|
||||
}
|
||||
else if(setting === "Signika"){
|
||||
return "signika-font";
|
||||
}
|
||||
else if(setting === "atwriter"){
|
||||
return "atwriter-font";
|
||||
}
|
||||
else if(setting === "SpecialElite"){
|
||||
return "special-elite-font";
|
||||
}
|
||||
else if(setting === "PublicSans"){
|
||||
return "public-sans-font";
|
||||
}
|
||||
else{
|
||||
return "martel-font";
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
if(characterSheetStyle === "cowboy"){
|
||||
return "special-elite-font";
|
||||
}
|
||||
else{
|
||||
return "public-sans-font";
|
||||
}
|
||||
*/
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("getCharacterSheetStyle", () => {
|
||||
const characterSheetStyle = game.settings.get(
|
||||
"deltagreen",
|
||||
"characterSheetStyle",
|
||||
);
|
||||
|
||||
if (characterSheetStyle === "cowboy") {
|
||||
return "cowboy-style";
|
||||
}
|
||||
if (characterSheetStyle === "outlaw") {
|
||||
return "outlaw-style";
|
||||
}
|
||||
return "program-style";
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("keepSanityPrivate", () => {
|
||||
let setting = false;
|
||||
|
||||
try {
|
||||
setting = game.settings.get("deltagreen", "keepSanityPrivate");
|
||||
|
||||
if (game.user.isGM) {
|
||||
setting = false;
|
||||
}
|
||||
} catch (ex) {
|
||||
setting = false;
|
||||
}
|
||||
|
||||
return setting;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("playerHasGamemasterPrivileges", () => {
|
||||
return game.user.isGM;
|
||||
});
|
||||
|
||||
Handlebars.registerHelper("showImpossibleLandscapesContent", () => {
|
||||
let result = false;
|
||||
const setting = game.settings.get(
|
||||
"deltagreen",
|
||||
"showImpossibleLandscapesContent",
|
||||
);
|
||||
|
||||
if (game.user.isGM === true && setting === true) {
|
||||
result = true;
|
||||
}
|
||||
|
||||
return result;
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user