mirror of
https://github.com/Foundryborne/daggerheart.git
synced 2026-06-06 04:44:16 +02:00
Preload ancestry and community features in description
This commit is contained in:
parent
77c5cfcbb7
commit
3b98c3f4af
3 changed files with 12 additions and 3 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import BaseDataItem from './base.mjs';
|
import BaseDataItem from './base.mjs';
|
||||||
import ItemLinkFields from '../../data/fields/itemLinkFields.mjs';
|
import ItemLinkFields from '../../data/fields/itemLinkFields.mjs';
|
||||||
import { getFeaturesHTMLData } from '../../helpers/utils.mjs';
|
import { fromUuids, getFeaturesHTMLData } from '../../helpers/utils.mjs';
|
||||||
|
|
||||||
export default class DHAncestry extends BaseDataItem {
|
export default class DHAncestry extends BaseDataItem {
|
||||||
/** @inheritDoc */
|
/** @inheritDoc */
|
||||||
|
|
@ -45,6 +45,10 @@ export default class DHAncestry extends BaseDataItem {
|
||||||
|
|
||||||
/**@inheritdoc */
|
/**@inheritdoc */
|
||||||
async getDescriptionData() {
|
async getDescriptionData() {
|
||||||
|
// Preload all class features for acquisition from the cache
|
||||||
|
// todo: make feature acquisition async and replace feature helpers for methods
|
||||||
|
await fromUuids(this._source.features.map(f => f.item));
|
||||||
|
|
||||||
const baseDescription = this.description;
|
const baseDescription = this.description;
|
||||||
const features = await getFeaturesHTMLData(this.features);
|
const features = await getFeaturesHTMLData(this.features);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
import { getFeaturesHTMLData } from '../../helpers/utils.mjs';
|
import { fromUuids, getFeaturesHTMLData } from '../../helpers/utils.mjs';
|
||||||
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
|
import ForeignDocumentUUIDArrayField from '../fields/foreignDocumentUUIDArrayField.mjs';
|
||||||
import BaseDataItem from './base.mjs';
|
import BaseDataItem from './base.mjs';
|
||||||
|
|
||||||
|
|
@ -27,6 +27,10 @@ export default class DHCommunity extends BaseDataItem {
|
||||||
|
|
||||||
/**@inheritdoc */
|
/**@inheritdoc */
|
||||||
async getDescriptionData() {
|
async getDescriptionData() {
|
||||||
|
// Preload all class features for acquisition from the cache
|
||||||
|
// todo: make feature acquisition async and replace feature helpers for methods
|
||||||
|
await fromUuids(this._source.features);
|
||||||
|
|
||||||
const baseDescription = this.description;
|
const baseDescription = this.description;
|
||||||
const features = await getFeaturesHTMLData(this.features);
|
const features = await getFeaturesHTMLData(this.features);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -879,6 +879,7 @@ export async function fromUuids(uuids) {
|
||||||
const packEmbeddedEntries = entries.filter(
|
const packEmbeddedEntries = entries.filter(
|
||||||
e =>
|
e =>
|
||||||
!(e.value instanceof Document) &&
|
!(e.value instanceof Document) &&
|
||||||
|
e.parsed &&
|
||||||
e.parsed.collection instanceof foundry.documents.collections.CompendiumCollection &&
|
e.parsed.collection instanceof foundry.documents.collections.CompendiumCollection &&
|
||||||
e.parsed.embedded.length > 0
|
e.parsed.embedded.length > 0
|
||||||
);
|
);
|
||||||
|
|
@ -895,7 +896,7 @@ export async function fromUuids(uuids) {
|
||||||
const pack = game.packs.get(packGroup[0].value.pack);
|
const pack = game.packs.get(packGroup[0].value.pack);
|
||||||
if (!pack) continue;
|
if (!pack) continue;
|
||||||
|
|
||||||
const ids = packGroup.map(p => p.parsed.id);
|
const ids = packGroup.map(p => p.parsed?.id).filter(id => !!id);
|
||||||
const documents = await pack.getDocuments({ _id__in: ids });
|
const documents = await pack.getDocuments({ _id__in: ids });
|
||||||
for (const p of packGroup) {
|
for (const p of packGroup) {
|
||||||
p.value = documents.find(d => d.id === p.parsed.id) ?? p.value;
|
p.value = documents.find(d => d.id === p.parsed.id) ?? p.value;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue