Source: package/block/positioned_block.js

import { Vector2, Vector3, Quaternion, Group, Mesh } from '../../../node_modules/three/build/three.module.js';
import { Reporter } from '../../reporter/reporter.js';
import { checkPropTypes } from '../../lib.js';
import { BuildableComponent } from '../component/buildable_component.js';
import { Block } from './block.js';
import { PositionedComponent } from '../component/positioned_component.js';
import { Configuration } from '../../configurator/configuration.js';


/**
 * Block that is embedded in a 3D structure and therefore needs spatial information
 */


class PositionedBlock extends PositionedComponent {

    /**
     * @param {Reporter} reporter
     * @param {Object} settings
     * @param {UUID} [settings.id]
     * @param {string} [settings.name]
     * @param {Vector3} settings.position
     * @param {Quaternion} settings.quaternion
     * @param {Block} settings.component - the block to position
     */

    constructor( reporter, settings ) {

        super(
            reporter,
            settings,
            // { useComponentName: 'mesh' }
        );

        checkPropTypes(
            settings,
            {
                component: Block
            },
            {}
        );

        // this.exportName = 'positionedBlocks';
        // this.exportEntry = settings.mesh;
    }

    static _exportName = {
        singular: 'positionedBlock',
        plural: 'positionedBlocks'
    };

    static _exportLevel = 'inline';

};

export { PositionedBlock };