Work on generic embedded document handling

This commit is contained in:
Oliver-Akins 2024-01-09 22:42:25 -07:00
parent 20184a045d
commit 68ed570552
2 changed files with 24 additions and 9 deletions

View file

@ -14,9 +14,14 @@ export class ActorHandler extends Actor {
return this.actorTypes[this.type];
};
updateEmbeddedDocument($event) {
if (!this.fn?.updateEmbeddedDocument) return;
this.fn.updateEmbeddedDocument.bind(this)($event);
genericEmbeddedUpdate($event) {
if (!this.fn?.genericEmbeddedUpdate) return;
this.fn.genericEmbeddedUpdate.bind(this)($event);
};
genericEmbeddedDelete($event) {
if (!this.fn?.genericEmbeddedDelete) return;
this.fn.genericEmbeddedDelete.bind(this)($event);
};
createCustomSpell() {

View file

@ -1,14 +1,24 @@
export class PlayerActor {
static async genericEmbeddedUpdate($event) {
let data = $event.target.dataset;
let item = await fromUuid(data.embeddedId);
item?.update({ [data.embeddedUpdate]: $event.target.value });
};
static async genericEmbeddedDelete($event) {
let data = $event.target.dataset;
let itemID = data.embeddedId;
if (!itemID) {
// TODO: Throw a notification here
return;
};
// TODO: Ask for confirmation before deleting
};
static createCustomSpell() {
this.createEmbeddedDocuments(
"Item",
[{ type: `spell`, name: `New Spell` }]
);
};
static async updateEmbeddedDocument($event) {
let data = $event.target.dataset;
let item = await fromUuid(data.embeddedId);
item?.update({ [data.embeddedUpdate]: $event.target.value });
};
};