Add the combined sheet to make sure that it works in practice and make the changes to make it work

This commit is contained in:
Oliver-Akins 2025-01-17 20:25:44 -07:00
parent 5b903f7e74
commit 7271323a75
6 changed files with 90 additions and 2 deletions

View file

@ -0,0 +1,68 @@
import { filePath } from "../../consts.mjs";
import { GenericAppMixin } from "../GenericApp.mjs";
import { HeroSummaryCardV1 } from "./HeroSummaryCardV1.mjs";
import { Logger } from "../../utils/Logger.mjs";
const { HandlebarsApplicationMixin } = foundry.applications.api;
const { ActorSheetV2 } = foundry.applications.sheets;
export class CombinedHeroSheet extends GenericAppMixin(HandlebarsApplicationMixin(ActorSheetV2)) {
// #region Options
static DEFAULT_OPTIONS = {
classes: [
`ripcrypt--actor`,
`ripcrypt--CombinedHeroSheet`,
],
position: {
width: `auto`,
height: `auto`,
},
window: {
resizable: false,
},
actions: {
editItem: (_event, target) => HeroSummaryCardV1._editItem(target),
},
form: {
submitOnChange: true,
closeOnSubmit: false,
},
};
static PARTS = {
summary: {
template: filePath(`templates/Apps/HeroSummaryCardV1/content.hbs`),
},
skills: {
template: filePath(`templates/Apps/HeroSkillsCardV1/content.hbs`),
},
};
// #endregion
// #region Lifecycle
async _onRender(context, options) {
await super._onRender(context, options);
HeroSummaryCardV1._onRender.bind(this)(context, options);
};
async _preparePartContext(partId, ctx, opts) {
ctx = await super._preparePartContext(partId, ctx, opts);
ctx.actor = this.document;
ctx = await HeroSummaryCardV1.prepareGuts(ctx);
ctx = await HeroSummaryCardV1.prepareWeapons(ctx);
ctx = await HeroSummaryCardV1.prepareArmor(ctx);
ctx = await HeroSummaryCardV1.prepareFatePath(ctx);
ctx = await HeroSummaryCardV1.prepareAbilityRow(ctx);
ctx = await HeroSummaryCardV1.prepareSpeed(ctx);
ctx = await HeroSummaryCardV1.prepareLevelData(ctx);
Logger.debug(`Context:`, ctx);
return ctx;
};
// #endregion
// #region Actions
// #endregion
};

View file

@ -42,7 +42,10 @@ export class HeroSummaryCardV1 extends GenericAppMixin(HandlebarsApplicationMixi
// #region Lifecycle
async _onRender(context, options) {
await super._onRender(context, options);
HeroSummaryCardV1._onRender.bind(this)(context, options);
};
static async _onRender() {
const itemMenuOptions = [
{
name: `Edit`,
@ -63,7 +66,7 @@ export class HeroSummaryCardV1 extends GenericAppMixin(HandlebarsApplicationMixi
];
if (itemMenuOptions.length) {
new ContextMenu(this.element, `.weapon-ctx-menu`, itemMenuOptions, { jQuery: false, fixed: true });
}
};
};
async _preparePartContext(partId, ctx, opts) {

View file

@ -1,5 +1,6 @@
// Applications
import { AllItemSheetV1 } from "../Apps/ItemSheets/AllItemSheetV1.mjs";
import { CombinedHeroSheet } from "../Apps/ActorSheets/CombinedHeroSheet.mjs";
import { HeroSkillsCardV1 } from "../Apps/ActorSheets/HeroSkillsCardV1.mjs";
import { HeroSummaryCardV1 } from "../Apps/ActorSheets/HeroSummaryCardV1.mjs";
@ -46,8 +47,13 @@ Hooks.once(`init`, () => {
/* eslint-enabled no-undef */
// #region Actors
Actors.registerSheet(game.system.id, HeroSummaryCardV1, {
Actors.registerSheet(game.system.id, CombinedHeroSheet, {
makeDefault: true,
types: [`hero`],
label: `RipCrypt.sheet-names.CombinedHeroSheet`,
themes: CombinedHeroSheet.themes,
});
Actors.registerSheet(game.system.id, HeroSummaryCardV1, {
types: [`hero`],
label: `RipCrypt.sheet-names.HeroSummaryCardV1`,
themes: HeroSummaryCardV1.themes,