Source: components/LightAdapterComponent.js

import { MathUtils } from '../math/MathUtils';
import { BaseComponent } from './BaseComponent';

const __ = {
	private: Symbol('private'),
}

/**
 * @class LightAdapterComponent
 * The light helper component.
 * @memberof THING
 * @extends THING.BaseComponent
 */
class LightAdapterComponent extends BaseComponent {

	/**
	 * Auto update light attributes.
	 */
	constructor() {
		super();

		this[__.private] = {};
		let _private = this[__.private];

		_private.enable = true;
	}

	// #region Private

	// #endregion

	// #region Overrides

	onSelfUpdate(deltaTime) {
		return true;
	}

	onUpdate(deltaTime) {
		let _private = this[__.private];

		if (!_private.enable) {
			return;
		}

		if (!this.onSelfUpdate(deltaTime)) {
			return;
		}
	}

	onRefresh() {

	}

	// #endregion

	refresh() {
		this.onRefresh();
	}

	// #region Accessor

	/**
	 * Enable/Disable.
	 * @type {Boolean}
	 */
	get enable() {
		let _private = this[__.private];

		return _private.enable;
	}
	set enable(value) {
		let _private = this[__.private];

		_private.enable = value;
	}

	// #endregion

}

export { LightAdapterComponent }