From a892e30143e34b3e155938ddc1cdfadf87dc1648 Mon Sep 17 00:00:00 2001 From: jalensailin Date: Thu, 28 Sep 2023 21:28:51 -0400 Subject: [PATCH] break out handlebars helpers into own file; remove commented out hook; --- module/deltagreen.js | 302 +------------------------------ module/other/register-helpers.js | 259 ++++++++++++++++++++++++++ 2 files changed, 262 insertions(+), 299 deletions(-) create mode 100644 module/other/register-helpers.js diff --git a/module/deltagreen.js b/module/deltagreen.js index 8e90fe1..f076a2a 100644 --- a/module/deltagreen.js +++ b/module/deltagreen.js @@ -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({ diff --git a/module/other/register-helpers.js b/module/other/register-helpers.js new file mode 100644 index 0000000..02f3775 --- /dev/null +++ b/module/other/register-helpers.js @@ -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; + }); +}