From 8f8da244c0b6346a2d7c669ae966b9cf2cb36f25 Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 19 Apr 2026 14:53:05 -0600 Subject: [PATCH] Add the Attribute item data model --- module/data/Item/attribute.mjs | 35 ++++++++++++++++++++++++++++++++++ module/hooks/init.mjs | 3 +++ 2 files changed, 38 insertions(+) create mode 100644 module/data/Item/attribute.mjs diff --git a/module/data/Item/attribute.mjs b/module/data/Item/attribute.mjs new file mode 100644 index 0000000..e1426a7 --- /dev/null +++ b/module/data/Item/attribute.mjs @@ -0,0 +1,35 @@ +export class AttributeItemData extends foundry.abstract.TypeDataModel { + static defineSchema() { + const fields = foundry.data.fields; + return { + group: new fields.StringField({ + blank: false, + trim: true, + nullable: true, + initial: null, + }), + key: new fields.StringField({ + blank: false, + trim: true, + nullable: true, + initial: null, + }), + aboveTheFold: new fields.BooleanField({ + initial: false, + }), + + /* The attributes current value */ + value: new fields.NumberField({ + integer: true, + }), + /* The minimum accepted value */ + min: new fields.NumberField({ + integer: true, + }), + /* The maximum accepted value */ + max: new fields.NumberField({ + integer: true, + }), + }; + }; +}; diff --git a/module/hooks/init.mjs b/module/hooks/init.mjs index a6f623e..995b6fb 100644 --- a/module/hooks/init.mjs +++ b/module/hooks/init.mjs @@ -5,6 +5,7 @@ import { PlayerSheet } from "../apps/PlayerSheet.mjs"; import { SingleModePlayerSheet } from "../apps/SingleModePlayerSheet.mjs"; // Data Models +import { AttributeItemData } from "../data/Item/attribute.mjs"; import { GenericItemData } from "../data/Item/generic.mjs"; import { PlayerData } from "../data/Actor/player.mjs"; @@ -35,6 +36,7 @@ Hooks.on(`init`, () => { // #region Data Models CONFIG.Actor.dataModels.player = PlayerData; CONFIG.Item.dataModels.generic = GenericItemData; + CONFIG.Item.dataModels.attribute = AttributeItemData; // #endregion Data Models // #region Sheets @@ -61,6 +63,7 @@ Hooks.on(`init`, () => { __ID__, GenericItemSheet, { + types: [`generic`], makeDefault: true, label: `taf.sheet-names.GenericItemSheet`, },