Pre-release
AdventureJS Docs Downloads Bundler Devlog
Score: 0 Moves: 0
// getAllNestedContents.js
(function () {
  /* global AdventureJS A */
  var p = AdventureJS.Assets.Entity.prototype;
  /**
   * Returns a list of all assets nested within this asset.
   * This is a deep search.
   * @memberOf AdventureJS.Assets.Entity
   * @method AdventureJS.Assets.Entity#getAllNestedContents
   * @return {Array}
   */
  p.getAllNestedContents = p.getInventory =
    function Entity_getAllNestedContents(attached = false) {
      let contents = this.getAllContents(attached);

      for (let i = 0; i < contents.length; i++) {
        const child = this.game.getAsset(contents[i]);
        if (!child) continue;
        // const nestedContents = child.getAllNestedContents(contents);
        const nestedContents = child.getAllNestedContents(attached);

        for (var n = 0; n < nestedContents.length; n++) {
          if (!contents.includes(nestedContents[n])) {
            contents.push(nestedContents[n]);
          }
        }
      }

      return contents;
    };
})();