Add datasheet for sync sheets

This commit is contained in:
Oliver-Akins 2024-04-06 11:58:24 -06:00
parent d8b676535f
commit a1e9c565af
4 changed files with 79 additions and 2 deletions

View file

@ -84,7 +84,7 @@
"empty": "---" "empty": "---"
}, },
"sheet-names": { "sheet-names": {
"UntypedDataSheet": "Data Sheet" "*DataSheet": "Data Sheet"
} }
}, },
"TYPES": { "TYPES": {

View file

@ -3,6 +3,7 @@ Initialization of dev-specific features for the init hook, this is primarily
used to register all of the data sheets of various entity types. used to register all of the data sheets of various entity types.
*/ */
import { GroupDataSheet } from "../sheets/Datasheets/GroupDataSheet.mjs";
import { UntypedDataSheet } from "../sheets/Datasheets/UntypedDataSheet.mjs"; import { UntypedDataSheet } from "../sheets/Datasheets/UntypedDataSheet.mjs";
export function devInit() { export function devInit() {
@ -11,7 +12,16 @@ export function devInit() {
UntypedDataSheet, UntypedDataSheet,
{ {
types: [`untyped`, `foil`], types: [`untyped`, `foil`],
label: `dotdungeon.sheet-names.UntypedDataSheet`, label: `dotdungeon.sheet-names.*DataSheet`,
}
);
Actors.registerSheet(
`dotdungeon`,
GroupDataSheet,
{
types: [`sync`],
label: `dotdungeon.sheet-names.*DataSheet`,
} }
); );
}; };

View file

@ -0,0 +1,31 @@
export class GroupDataSheet extends ActorSheet {
static get defaultOptions() {
let opts = foundry.utils.mergeObject(
super.defaultOptions,
{
template: `systems/dotdungeon/templates/datasheets/actor/group.hbs`,
width: 200,
height: 275
},
);
opts.classes.push(`dotdungeon`, `style-v3`);
return opts;
};
async getData() {
const ctx = {};
ctx.actor = this.actor;
ctx.system = this.actor.system;
ctx.computed = {
milestones_hit_viewable: [...this.actor.system.milestones_hit.values()].join(`, `)
}
ctx.meta = {
idp: this.actor.uuid,
};
return ctx;
};
};

View file

@ -0,0 +1,36 @@
<form autocomplete="off" class="datasheet">
<div>
<label for="{{meta.idp}}-name" data-tooltip="name">Name</label>
<input
type="text"
name="name"
id="{{meta.idp}}-name"
value="{{actor.name}}"
>
</div>
<div>
<label for="{{meta.idp}}-sync" data-tooltip="system.value">Sync</label>
<input
type="number"
min="0"
name="system.value"
id="{{meta.idp}}-sync"
value="{{system.value}}"
>
</div>
<div>
<label for="{{meta.idp}}-restdice" data-tooltip="system.rest_dice">Rest Dice</label>
<input
type="number"
min="0"
name="system.rest_dice"
id="{{meta.idp}}-restdice"
value="{{system.rest_dice}}"
>
</div>
<div>
<span data-tooltip="system.milestones_hit">Milestones Hit</span>
<br>
{{ computed.milestones_hit_viewable }}
</div>
</form>