/** This class represents room. */ export class room { #id; #name; #description; #texture; /** * This create new room from the config object. * * @param {string} id - ID of the room * @param {object} config - Config from the assets * @return {room} - New room from the config */ constructor(id, config) { this.#id = id; this.#name = this.#save_get("name", config); this.#description = this.#save_get("description", config); this.#texture = this.#save_get("texture", config); } /** * @return {string} - Name of the room */ get name() { return this.#name; } /** * @return {string} - ID of the room */ get id() { return this.#id; } /** * @return {string} - Description of the room */ get description() { return this.#description; } /** * @return {string} - Link to the texture file */ get texture() { return this.#texture; } /** * This function return property of the object, if it exists. When it no * exists, the return null. * * @param {string} property - Property to get from object * @param {object} source - Source object to get property from * @return Property of the object or null */ #save_get(property, source) { if (!source.hasOwnProperty(property)) { return null; } return source[property]; } }