diff --git a/package.json b/package.json index 1fe18a59fc5a8a99d8bbe68c7b3805d049649d11..d3f49ce1ccb53465325aa9623f59b7acf137ace9 100644 --- a/package.json +++ b/package.json @@ -8,13 +8,16 @@ "build": "webpack --config webpack.prod.js", "prettier": "prettier --write src/**/*.js" }, - "pre-commit": ["prettier"], + "pre-commit": [ + "prettier" + ], "dependencies": { "aframe-input-mapping-component": "https://github.com/fernandojsg/aframe-input-mapping-component", "aframe-teleport-controls": "https://github.com/netpro2k/aframe-teleport-controls#feature/teleport-origin", "naf-janus-adapter": "^0.1.3", "networked-aframe": "https://github.com/netpro2k/networked-aframe#feature/register-adapter", - "pleasejs": "^0.4.2" + "pleasejs": "^0.4.2", + "query-string": "^5.0.1" }, "devDependencies": { "babel-core": "^6.26.0", diff --git a/public/index.html b/public/index.html index 812d4b87e940d3f2b58e28396cf27fb179404a57..e12e192910bbe15d4c69eab76a9772b18d8b999b 100644 --- a/public/index.html +++ b/public/index.html @@ -7,13 +7,14 @@ </head> <body> - <a-scene networked-scene=" - adapter: janus; - room: 2; - serverURL: wss://quander.me:8989; - audio: true; - debug: true; - connectOnLoad: false" mute-mic="eventSrc: a-scene; toggleEvents: action_mute"> + <a-scene + networked-scene="adapter: janus; + room: 2; + serverURL: wss://quander.me:8989; + audio: true; + debug: true; + connectOnLoad: false;" + mute-mic="eventSrc: a-scene; toggleEvents: action_mute"> <a-assets> <img id="grid" src="assets/grid.png" crossorigin="anonymous" /> @@ -80,4 +81,4 @@ </script> </body> -</html> \ No newline at end of file +</html> diff --git a/src/index.js b/src/index.js index fabb513a4751cda114a9ed2d5d30d8c6403f42d6..6889117a313f18fd2871130643b771437b0f0ffe 100644 --- a/src/index.js +++ b/src/index.js @@ -1,3 +1,5 @@ +import queryString from "query-string"; + import "networked-aframe"; import "naf-janus-adapter"; import "aframe-teleport-controls"; @@ -49,15 +51,26 @@ AFRAME.registerInputMappings({ } } }); -window.onSceneLoad = function() { + +const promptForName = function() { var username = generateName(); do { username = prompt("Choose a username", username); } while (!(username && username.length)); + return username; +}; + +const qs = queryString.parse(location.search); +window.onSceneLoad = function() { + const scene = document.querySelector("a-scene"); + + if (qs.room && !isNaN(parseInt(qs.room))) { + scene.setAttribute("networked-scene", "room", parseInt(qs.room)); + } - var player = document.getElementById("player-rig"); - var myNametag = player.querySelector(".nametag"); + const username = promptForName(); // promptForName is blocking + const myNametag = document.querySelector("#player-rig .nametag"); myNametag.setAttribute("text", "value", username); - document.querySelector("a-scene").components["networked-scene"].connect(); + scene.components["networked-scene"].connect(); }; diff --git a/yarn.lock b/yarn.lock index 7df6b1f8073a251bf43e957f168b84a16b7fe916..17ec74b58d73bc8769ec88977293962769fd8285 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1376,6 +1376,10 @@ decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + deep-equal@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -3174,6 +3178,14 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" +query-string@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.0.1.tgz#6e2b86fe0e08aef682ecbe86e85834765402bd88" + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + querystring-es3@^0.2.0: version "0.2.1" resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" @@ -3672,6 +3684,10 @@ stream-http@^2.3.1: to-arraybuffer "^1.0.0" xtend "^4.0.0" +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"