45 lines
1.2 KiB
TypeScript
45 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()
|
|
} else {
|
|
}
|
|
|
|
// 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
|
|
})
|
|
}
|
|
|
|
}
|