From de7dfd761b43392dbf22b33a0d4957bdc3a29874 Mon Sep 17 00:00:00 2001
From: Robert Long <robert@robertlong.me>
Date: Tue, 24 Apr 2018 18:47:33 -0700
Subject: [PATCH] Fix spawn points

---
 src/components/spawn-controller.js | 12 ++++++++++--
 src/hub.html                       |  2 +-
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/components/spawn-controller.js b/src/components/spawn-controller.js
index f4f4032d8..1daf01b75 100644
--- a/src/components/spawn-controller.js
+++ b/src/components/spawn-controller.js
@@ -1,5 +1,13 @@
 AFRAME.registerComponent("spawn-controller", {
+  schema: {
+    target: { type: "selector" },
+    loadedEvent: { type: "string" }
+  },
   init() {
+    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) {
@@ -7,10 +15,10 @@ AFRAME.registerComponent("spawn-controller", {
       return;
     }
 
-    const spawnPointIndex = Math.round(spawnPoints.length * Math.random());
+    const spawnPointIndex = Math.round((spawnPoints.length - 1) * Math.random());
     const spawnPoint = spawnPoints[spawnPointIndex];
 
-    this.el.object3D.position.copy(spawnPoint.object3D.position);
+    spawnPoint.object3D.getWorldPosition(this.el.object3D.position);
     this.el.object3D.rotation.copy(spawnPoint.object3D.rotation);
   }
 });
diff --git a/src/hub.html b/src/hub.html
index 6632c5c92..2da86cb78 100644
--- a/src/hub.html
+++ b/src/hub.html
@@ -210,7 +210,7 @@
         <a-entity
             id="player-rig"
             networked="template: #remote-avatar-template; attachTemplateToLocal: false;"
-            spawn-controller="radius: 4;"
+            spawn-controller="loadedEvent: bundleloaded; target: #environment-root"
             wasd-to-analog2d
             character-controller="pivot: #player-camera"
             ik-root
-- 
GitLab