// setPlace.js
(function () {
/* global adventurejs A */
var p = adventurejs.Tangible.prototype;
/**
* Set an asset's place, aka parent asset and aspect.
* This is how one thing is put inside another.
* Accepts two forms of params:
* cap.setPlace( 'attached', 'pen' );
* cap.setPlace({ attached: 'pen' });
* @memberOf adventurejs.Tangible
* @method adventurejs.Tangible#setPlace
* @param {String|Object} a
* @param {String} b
* @return {Object}
*/
p.setPlace = function Tangible_setPlace(a, b) {
let place, aspect, asset;
if (typeof a === "object") {
[[aspect, asset]] = Object.entries(a);
} else {
aspect = a;
asset = b;
}
if ("string" === typeof asset) asset = this.game.getAsset(asset);
if (asset && !aspect) {
aspect = asset.default_aspect;
}
if (asset && aspect) {
this.place = { [aspect]: asset.id };
} else this.place = {};
return this.place;
};
})();