// getAncestorId.js
(function() {
/*global adventurejs A*/
"use strict";
var p = adventurejs.Tangible.prototype;
/**
* Get the ID of this asset's topmost parent, excluding {@link adventurejs.Room|Room}.
* @memberOf adventurejs.Tangible
* @method adventurejs.Tangible#getAncestorId
* @returns {String}
*/
p.getAncestorId = function Tangible_getAncestorId()
{
var child = this;
var parent_asset = this.getPlaceAsset();
// child has no parent, so it's not accessible
if( !parent_asset )
{
return "";
}
// child parent is room
if( parent_asset instanceof adventurejs.Room )
{
return "";
}
while ( parent_asset )
{
child = parent_asset;
if( !parent_asset.getPlaceAsset() )
{
return "";
}
parent_asset = parent_asset.getPlaceAsset();
if( parent_asset instanceof adventurejs.Room )
{
return child.id;
}
}
return "";
}
}());