Add event listening for embedded item deletion

This commit is contained in:
Oliver-Akins 2024-01-10 19:17:44 -07:00
parent df1e768cc2
commit dcdc1b7764
2 changed files with 32 additions and 7 deletions

View file

@ -1,24 +1,47 @@
export class PlayerActor {
/** @this {Actor} */
static async genericEmbeddedUpdate($event) {
let data = $event.target.dataset;
let data = $event.delegateTarget.dataset;
let item = await fromUuid(data.embeddedId);
item?.update({ [data.embeddedUpdate]: $event.target.value });
this.sheet.render();
};
/** @this {Actor} */
static async genericEmbeddedDelete($event) {
let data = $event.target.dataset;
let itemID = data.embeddedId;
if (!itemID) {
// TODO: Throw a notification here
let data = $event.delegateTarget.dataset;
let item = await fromUuid(data.embeddedId);
if (!item) {
ui.notifications.error(
`dotdungeon.notification.error.item-not-found`,
{ console: false }
);
return;
};
// TODO: Ask for confirmation before deleting
Dialog.confirm({
title: game.i18n.format(
`dotdungeon.dialogs.${item.type}.delete.title`,
item
),
content: game.i18n.format(
`dotdungeon.dialogs.${item.type}.delete.content`,
item
),
yes: () => {
item.delete();
},
defaultYes: false,
});
};
/** @this {Actor} */
static createCustomSpell() {
this.createEmbeddedDocuments(
"Item",
[{ type: `spell`, name: `New Spell` }]
);
this.sheet.render();
};
};