foundry-vtt-system-midgard5/source/module/sheets/M5ItemSheet.ts

44 lines
1.2 KiB
TypeScript

import { M5Item } from "../items/M5Item"
export class M5ItemSheet extends ItemSheet {
static get defaultOptions() {
return mergeObject(super.defaultOptions, {
width: 420,
height: 240,
classes: ["midgard5", "sheet", "item"]
})
}
get template() {
//console.log("M5ItemSheet", this.item.data.type)
const path = "systems/midgard5/templates/sheets/item"
return `${path}/${this.item.data.type}.hbs`
}
override getData(options?: Partial<ItemSheet.Options>): ItemSheet.Data<ItemSheet.Options> | Promise<ItemSheet.Data<ItemSheet.Options>> {
const item = this.item as M5Item
return Promise.resolve(super.getData()).then(value => {
item.prepareDerivedData()
const context = value as any
// Use a safe clone of the item data for further operations.
const itemData = context.item.data
// Retrieve the roll data for TinyMCE editors.
context.rollData = {}
let actor = this.object?.parent ?? null
if (actor) {
context.rollData = actor.getRollData()
}
// Add the actor's data to context.data for easier access, as well as flags.
context.data = itemData.data
context.flags = itemData.flags
return context
})
}
}