import Logger from "./utils/Logger" import M5CharacterSheet from "./module/sheets/M5CharacterSheet" import preloadTemplates from "./PreloadTemplates" import { M5Character } from "./module/actors/M5Character" import { M5Skill } from "./module/M5Base" import { M5ItemSheet } from "./module/sheets/M5ItemSheet" import { M5Item } from "./module/items/M5Item" Hooks.once("init", async () => { Logger.log("M5 | Initialisierung Midgard 5") Handlebars.registerHelper("times", (n: number, block) => { var accum = "" for(let i = 0; i < n; ++i) accum += block.fn(i) return accum }) Handlebars.registerHelper("array", (arr: any[], index: number) => { return arr[index] }) Handlebars.registerHelper("m5concat", (...values) => { const options = values.pop(); const join = options.hash?.join || ""; //return new Handlebars.SafeString(values.join(join)); return values.map(val => val.toString()).join(join) }) Handlebars.registerHelper("add", (...values) => { const options = values.pop(); return values.reduce((prev, cur) => prev + cur) }) Handlebars.registerHelper("localizeMidgard", (str: string) => { const template = Handlebars.compile("{{localize value}}") return template({ value: "midgard5." + str }) }) Handlebars.registerHelper("skillBonus", (actorId: string, skill: M5Skill) => { const actor = (game as Game).actors.get(actorId) as M5Character return actor.skillBonus(skill).toString() }) Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => { const actor = (game as Game).actors.get(actorId) as M5Character return actor.skillEw(skill).toString() }) Handlebars.registerHelper("skill", (skillId: string) => { return (game as Game).items.get(skillId) }) Handlebars.registerHelper("itemValue", (id: string, path: string) => { let obj = (game as Game).items.get(id) path.split(".").forEach(p => obj = obj[p]) return `${obj}` }) Handlebars.registerHelper("actorItemValue", (actorId: any, itemId: string, path: string) => { //console.log("actorItemValue", actorId, itemId, path) const actor = (game as Game).actors.get(actorId) let obj = actor.data.items.get(itemId).data.data path.split(".").forEach(p => { if (obj) obj = obj[p] }) return `${obj}` }) Handlebars.registerHelper("icon", (relpath: string) => { return `systems/midgard5/assets/icons/${relpath}` }) // Default Sheet für Items definieren und das Standardsheet deaktivieren Items.unregisterSheet("core", ItemSheet) Items.registerSheet("midgard5", M5ItemSheet, { makeDefault: true }) // Default Sheet für Actors definieren und das Standardsheet deaktivieren Actors.unregisterSheet("core", ActorSheet) Actors.registerSheet("midgard5", M5CharacterSheet, { makeDefault: true }) CONFIG.Actor.documentClass = M5Character CONFIG.Item.documentClass = M5Item //RegisterSettings(); await preloadTemplates() }) Hooks.once("setup", () => { Logger.log("Template module is being setup.") }) Hooks.once("ready", () => { Logger.ok("Template module is now ready.") })