97 lines
3.0 KiB
TypeScript
97 lines
3.0 KiB
TypeScript
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("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)
|
|
})
|
|
|
|
// static concat(...values) {
|
|
// const options = values.pop();
|
|
// const join = options.hash?.join || "";
|
|
// return new Handlebars.SafeString(values.join(join));
|
|
// }
|
|
|
|
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
|
|
if (!actor || !skill)
|
|
console.log("Handlebars.skillBonus", actor, skill)
|
|
return actor.skillBonus(skill).toString()
|
|
})
|
|
|
|
Handlebars.registerHelper("skillEw", (actorId: string, skill: M5Skill) => {
|
|
const actor = (game as Game).actors.get(actorId) as M5Character
|
|
if (!actor || !skill)
|
|
console.log("Handlebars.skillEw", actor, skill)
|
|
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.")
|
|
})
|