Pre-release
AdventureJS Docs Downloads
Score: 0 Moves: 0
// createRoomDock.js

(function () {
  /* global adventurejs A */

  var p = adventurejs.Display.prototype;

  /**
   * <strong>createRoomDock()</strong> is a method for creating
   * custom room docks. It takes a generic object containing an id,
   * and an optional list of css classes to be
   * applied to the element. Room docks will be created at runtime,
   * and can be styled with any custom CSS.
   * To create a new room dock:
   *
   * <pre class="display"><code class="language-javascript">MyGame.createRoomDock({
   *   "id":"MyRoomDock",
   *   "cssclasses":["custom"],
   * });
   * </code></pre>
   *
   * For more information, see
   * <a href="/doc/GUI_VerbDocks.html">GUI Verb Dock</a>.
   * @method adventurejs.Display#createVerbDock
   * @param {Object} properties HTML ID, CSS classes, and verbs.
   * @returns {Element} Returns the HTML element of the verb dock.
   */
  p.createRoomDock = function Display_createRoomDock(properties) {
    console.warn("createRoomDock", properties);
    let author_element;
    let dock;

    if (properties.id) {
      author_element = document.querySelector("#" + properties.id);
    }
    dock = author_element ? author_element : document.createElement("div");
    if (properties.id) {
      dock.setAttribute("id", properties.id);
    }
    dock.classList.add("game_roomdock_container", "ajs-dock-wrapper");
    if (properties.cssclasses) {
      for (var item in properties.cssclasses) {
        dock.classList.add(properties.cssclasses[item]);
      }
    }

    this.roomdocks.push(dock);
    if (!author_element) {
      this.displayEl.appendChild(dock);
    }
    return dock;
  };
})();