Newer
Older
/**
* Used on a player-rig to move the player to a random spawn point on entry.
* @namespace avatar
* @component spawn-controller
*/
schema: {
target: { type: "selector" },
loadedEvent: { type: "string" }
},
this.onLoad = this.onLoad.bind(this);
this.data.target.addEventListener(this.data.loadedEvent, this.onLoad);
},
onLoad() {
const spawnPoints = document.querySelectorAll("[spawn-point]");
if (spawnPoints.length === 0) {
// Keep default position
return;
}
const spawnPointIndex = Math.round((spawnPoints.length - 1) * Math.random());
spawnPoint.object3D.getWorldPosition(this.el.object3D.position);
this.el.object3D.rotation.copy(spawnPoint.object3D.rotation);
}
/**
* Marks an entity as a potential spawn point.
* @component spawn-point
*/