Work towards better editing of embedded items

This commit is contained in:
Oliver-Akins 2024-01-11 23:20:35 -07:00
parent 0496be73b0
commit 10dcec3bd7
12 changed files with 136 additions and 77 deletions

View file

@ -15,11 +15,10 @@ export class ActorHandler extends Actor {
};
async openEmbeddedSheet($event) {
console.log(`openEmbeddedSheet`)
if (this.fn?.openEmbeddedSheet) {
this.fn.openEmbeddedSheet.bind(this)($event);
} else {
const data = $event.currentTarget.dataset;
const data = $event.target.dataset;
let item = await fromUuid(data.embeddedEdit);
item?.sheet.render(true);
};
@ -35,9 +34,8 @@ export class ActorHandler extends Actor {
this.fn.genericEmbeddedDelete.bind(this)($event);
};
async createCustomSpell() {
async createCustomSpell($event) {
if (!this.fn?.createCustomSpell) return;
this.fn.createCustomSpell.bind(this)();
this.sheet.render(true);
this.fn.createCustomSpell.bind(this)($event);
};
};

View file

@ -9,7 +9,7 @@ export class PlayerActor {
/** @this {Actor} */
static async genericEmbeddedDelete($event) {
let data = $event.delegateTarget.dataset;
let data = $event.currentTarget.dataset;
let item = await fromUuid(data.embeddedId);
if (!item) {
@ -36,6 +36,20 @@ export class PlayerActor {
});
};
/** @this {Actor} */
static async createCustomItem(defaults) {
let items = await this.createEmbeddedDocuments(`Item`, defaults);
if (items.length == 0) {
throw new Error();
};
this.sheet.render();
if (game.settings.get(`dotdungeon`, `openEmbeddedOnCreate`)) {
for (const item of items) {
item.sheet.render(true);
};
};
};
/** @this {Actor} */
static async createCustomSpell() {
let items = await this.createEmbeddedDocuments(