This commit is contained in:
Dapoolp 2025-07-16 03:20:45 +02:00
parent f2176c6238
commit a32af32f3a
5 changed files with 45 additions and 7 deletions

View file

@ -32,4 +32,26 @@ export default class DHToken extends TokenDocument {
return bars.concat(values);
}
static _getTrackedAttributesFromSchema(schema, _path=[]) {
const attributes = {bar: [], value: []};
for ( const [name, field] of Object.entries(schema.fields) ) {
const p = _path.concat([name]);
if ( field instanceof foundry.data.fields.NumberField ) attributes.value.push(p);
if ( field instanceof foundry.data.fields.ArrayField ) attributes.value.push(p);
const isSchema = field instanceof foundry.data.fields.SchemaField;
const isModel = field instanceof foundry.data.fields.EmbeddedDataField;
if ( isSchema || isModel ) {
const schema = isModel ? field.model.schema : field;
const isBar = schema.has && schema.has("value") && schema.has("max");
if ( isBar ) attributes.bar.push(p);
else {
const inner = this.getTrackedAttributes(schema, p);
attributes.bar.push(...inner.bar);
attributes.value.push(...inner.value);
}
}
}
return attributes;
}
}