taf/module/data/Actor/player.mjs

43 lines
1.1 KiB
JavaScript

import { __ID__ } from "../../consts.mjs";
export class PlayerData extends foundry.abstract.TypeDataModel {
static defineSchema() {
const fields = foundry.data.fields;
return {
content: new fields.HTMLField({
blank: true,
trim: true,
initial: ``,
}),
carryCapacity: new fields.NumberField({
min: 0,
nullable: true,
initial: null,
}),
attr: new fields.ObjectField({ persisted: false }),
};
};
// #region Lifecycle
/**
* This makes sure that the actor gets created with the global attributes if
* they exist, while still allowing programmatic creation through the API with
* specific attributes.
*/
async _preCreate(data, options, user) {
// Assign the default items from the world setting if required
const items = this.parent._source.items;
if (items.length === 0 && !options.cloning) {
const defaults = game.settings.get(__ID__, `actorDefaultAttributes`) ?? [];
this.parent.updateSource({ items: defaults });
};
return super._preCreate(data, options, user);
};
// #endregion Lifecycle
get hasAttributes() {
return Object.keys(this.attr).length > 0;
};
};