Files
fvtt-machine-gods-noxian-ex…/module/applications/sheets/base-item-sheet.mjs
T
2026-05-05 13:55:42 +02:00

57 lines
1.7 KiB
JavaScript

import { SYSTEM } from "../../config/system.mjs"
import { buildSharedSelectOptions, numericOptions } from "./select-options.mjs"
import { enrichHTMLFields } from "./rich-text.mjs"
const { HandlebarsApplicationMixin } = foundry.applications.api
export default class MGNEItemSheet extends HandlebarsApplicationMixin(foundry.applications.sheets.ItemSheetV2) {
static DEFAULT_OPTIONS = {
classes: ["mgne", "item-sheet"],
position: {
width: 720,
height: "auto",
},
window: {
resizable: true,
},
form: {
submitOnChange: true,
},
actions: {
editImage: MGNEItemSheet.onEditImage,
},
}
async _prepareContext() {
const selectOptions = buildSharedSelectOptions()
const systemFields = this.document.system.schema.fields
if (this.document.type === "armor") selectOptions.penalties = numericOptions(0, 6, this.document.system.penalty)
if (this.document.type === "shield") selectOptions.penalties = numericOptions(0, 4, this.document.system.penalty)
return {
fields: this.document.schema.fields,
systemFields,
item: this.document,
system: this.document.system,
source: this.document.toObject(),
config: SYSTEM,
enrichedFields: await enrichHTMLFields(this.document.system, systemFields),
isEditable: this.isEditable,
selectOptions,
}
}
static async onEditImage(_event, target) {
const attr = target.dataset.edit
const current = foundry.utils.getProperty(this.document, attr)
const picker = new FilePicker({
current,
type: "image",
callback: path => this.document.update({ [attr]: path }),
top: this.position.top + 40,
left: this.position.left + 10,
})
return picker.browse()
}
}