// SPDX-FileCopyrightText: 2021 Johannes Loher
//
// SPDX-License-Identifier: MIT

import { getGame } from "../utils/utils";
import { DS4ActorProxy } from "./actor/proxy";

/** @type {object | undefined} */
let fallbackData = undefined;

function getFallbackData() {
    if (!fallbackData) {
        fallbackData = {};
        for (const type of getGame().system.template.Actor?.types ?? []) {
            foundry.utils.mergeObject(fallbackData, new DS4ActorProxy({ type, name: "temporary" }).system);
        }
    }
    return fallbackData;
}

export class DS4TokenDocument extends TokenDocument {
    static getTrackedAttributes(data, _path = []) {
        if (!data) {
            data = getFallbackData();
        }
        return super.getTrackedAttributes(data, _path);
    }
}