Convert to using a module instead of a "static" class
This commit is contained in:
parent
e71d2133f2
commit
82108bfe5f
2 changed files with 72 additions and 66 deletions
|
|
@ -1,71 +1,77 @@
|
|||
export class PlayerActor {
|
||||
/** @this {Actor} */
|
||||
static async genericEmbeddedUpdate($event) {
|
||||
let data = $event.delegateTarget.dataset;
|
||||
let item = await fromUuid(data.embeddedId);
|
||||
item?.update({ [data.embeddedUpdate]: $event.target.value });
|
||||
this.sheet.render();
|
||||
/** @this {Actor} */
|
||||
async function genericEmbeddedUpdate($event) {
|
||||
let data = $event.delegateTarget.dataset;
|
||||
let item = await fromUuid(data.embeddedId);
|
||||
item?.update({ [data.embeddedUpdate]: $event.target.value });
|
||||
this.sheet.render();
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
async function genericEmbeddedDelete($event) {
|
||||
let data = $event.currentTarget.dataset;
|
||||
let item = await fromUuid(data.embeddedId);
|
||||
|
||||
if (!item) {
|
||||
ui.notifications.error(
|
||||
`dotdungeon.notification.error.item-not-found`,
|
||||
{ console: false }
|
||||
);
|
||||
return;
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
static async genericEmbeddedDelete($event) {
|
||||
let data = $event.currentTarget.dataset;
|
||||
let item = await fromUuid(data.embeddedId);
|
||||
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,
|
||||
});
|
||||
};
|
||||
|
||||
if (!item) {
|
||||
ui.notifications.error(
|
||||
`dotdungeon.notification.error.item-not-found`,
|
||||
{ console: false }
|
||||
);
|
||||
return;
|
||||
/** @this {Actor} */
|
||||
async function createCustomItem(defaults, opts = {}) {
|
||||
let items = await this.createEmbeddedDocuments(`Item`, defaults);
|
||||
if (items.length == 0) {
|
||||
throw new Error();
|
||||
};
|
||||
this.sheet.render();
|
||||
if (
|
||||
game.settings.get(`dotdungeon`, `openEmbeddedOnCreate`)
|
||||
&& !opts.overrideSheetOpen
|
||||
) {
|
||||
for (const item of items) {
|
||||
item.sheet.render(true);
|
||||
};
|
||||
|
||||
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 async createCustomItem(defaults, opts = {}) {
|
||||
let items = await this.createEmbeddedDocuments(`Item`, defaults);
|
||||
if (items.length == 0) {
|
||||
throw new Error();
|
||||
};
|
||||
this.sheet.render();
|
||||
if (
|
||||
game.settings.get(`dotdungeon`, `openEmbeddedOnCreate`)
|
||||
&& !opts.overrideSheetOpen
|
||||
) {
|
||||
for (const item of items) {
|
||||
item.sheet.render(true);
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
static async createCustomAspect() {
|
||||
await PlayerActor.createCustomItem.bind(this)([{
|
||||
type: `aspect`,
|
||||
name: game.i18n.format(`dotdungeon.defaults.aspect.name`),
|
||||
}]);
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
static async createCustomSpell() {
|
||||
await PlayerActor.createCustomItem.bind(this)([{
|
||||
type: `spell`,
|
||||
name: game.i18n.format(`dotdungeon.defaults.spell.name`),
|
||||
}]);
|
||||
};
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
async function createCustomAspect() {
|
||||
await createCustomItem.bind(this)([{
|
||||
type: `aspect`,
|
||||
name: game.i18n.format(`dotdungeon.defaults.aspect.name`),
|
||||
}]);
|
||||
};
|
||||
|
||||
/** @this {Actor} */
|
||||
async function createCustomSpell() {
|
||||
await createCustomItem.bind(this)([{
|
||||
type: `spell`,
|
||||
name: game.i18n.format(`dotdungeon.defaults.spell.name`),
|
||||
}]);
|
||||
};
|
||||
|
||||
export default {
|
||||
genericEmbeddedDelete,
|
||||
genericEmbeddedUpdate,
|
||||
createCustomItem,
|
||||
createCustomAspect,
|
||||
createCustomSpell
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue