Source: component/info_component.js

import { pause, checkPropTypes, UUIDRegex } from '../lib.js';
import { Object3D, Vector2, Vector3, Quaternion, Group, Mesh } from '../../node_modules/three/build/three.module.js';
import { Reporter } from '../reporter/reporter.js';
import { Component } from './component.js';

/**
 * Info component, no dependencies, is exported as object (not array)
 */

class InfoComponent extends Component {

    /**
     * @param {Reporter} reporter
     * @param {Object} settings
     * @param {UUID} [settings.id]
     * @param {string} [settings.name]
     * @param {Boolean} [settings.debug]
     */

    constructor(reporter, settings) {

        super(
            reporter,
            settings,
        );
    }


    static _exportName = {
        singular: 'info',
        plural: 'info'
    };


    autoUpdateStatus(){
        for (let part of Component.parts) {
            for (let quality of Component.qualities) {
                this._status[part][quality].setState('ready');
            }
        }
    }


    // this should never be called

    async _build(part, quality, dependencies) {

        this._setContent(
            part,
            quality,
            this
        );

        return this;
    }


    toJSON() {
        const arrayedExport = super.toJSON();
        // console.log(arrayedExport)
        const finalExport = { [ this.exportName ]: arrayedExport[ this.exportName ][0] };
        // console.log(finalExport)
        return finalExport;
    }
}

export { InfoComponent };