Source: common/BaseState.js

import { Utils } from './Utils';

/**
 * @class BaseState
 * The base state.
 */
class BaseState {

	constructor() {
		this._name = '';
		this._active = false;
	}

	onEnter() {

	}

	onLeave() {

	}

	enter() {
		if (this._active) {
			return;
		}

		this._active = true;

		this.onEnter();
	}

	leave() {
		if (!this._active) {
			return;
		}

		this._active = false;

		this.onLeave();
	}

	get name() {
		return this._name;
	}
	set name(value) {
		this._name = value;
	}

	get active() {
		return this._active;
	}
}

export { BaseState }