Skip to content
This repository was archived by the owner on Jan 24, 2020. It is now read-only.

Commit 51ee84e

Browse files
author
Avaer Kazmer
committed
Major scene tracking debugging
1 parent ab46dc7 commit 51ee84e

File tree

1 file changed

+56
-35
lines changed

1 file changed

+56
-35
lines changed

index.html

Lines changed: 56 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2060,10 +2060,18 @@
20602060
}, i => {
20612061
_moveApp(iconMesh, i);
20622062
}, () => {
2063+
if (iconMesh.scene) {
2064+
const index = iconMesh.scene.apps.indexOf(iconMesh);
2065+
if (index !== -1) {
2066+
iconMesh.scene.token.apps.splice(index, 1);
2067+
// XXX save
2068+
}
2069+
}
2070+
20632071
_removeApp(iconMesh);
2064-
_destroyApp(iconMesh)
2072+
_destroyApp(iconMesh);
20652073
}, true);
2066-
_addApp(iconMesh);
2074+
// _addApp(iconMesh);
20672075
iconMesh.moveMesh.position.fromArray(position);
20682076
iconMesh.moveMesh.quaternion.fromArray(orientation);
20692077
iconMesh.iframe.position = position;
@@ -2453,7 +2461,7 @@
24532461
mesh.y = newY;
24542462
};
24552463
mesh.scene = null;
2456-
const _makeSetSceneBinding = (_save = () => Promise.resolve()) => newSceneMesh => {
2464+
const _makeSetSceneBinding = _save => async newSceneMesh => {
24572465
if (newSceneMesh) {
24582466
const tokenApps = newSceneMesh.token.apps.concat([{
24592467
appType: mesh.type,
@@ -2462,27 +2470,32 @@
24622470
orientation: mesh.moveMesh.quaternion.toArray(),
24632471
}]);
24642472
const apps = newSceneMesh.apps.concat([mesh]);
2465-
_save(newSceneMesh.token.id, tokenApps)
2466-
.then(() => {
2467-
newSceneMesh.apps = apps;
2468-
newSceneMesh.token.apps = tokenApps;
24692473

2470-
mesh.moveMesh.material.color.setHex(0x9ccc65);
2471-
});
2474+
if (_save) {
2475+
await _save(newSceneMesh.token.id, tokenApps);
2476+
}
2477+
2478+
newSceneMesh.apps = apps;
2479+
newSceneMesh.token.apps = tokenApps;
2480+
2481+
mesh.moveMesh.material.color.setHex(0x9ccc65);
24722482
} else {
2473-
if (mesh.scene) {
2474-
const index = mesh.scene.apps.indexOf(mesh);
2475-
const tokenApps = mesh.scene.token.apps.slice();
2483+
const {scene: oldScene} = mesh;
2484+
if (oldScene) {
2485+
const index = oldScene.apps.indexOf(mesh);
2486+
const tokenApps = oldScene.token.apps.slice();
24762487
tokenApps.splice(index, 1);
2477-
const apps = mesh.scene.apps.slice();
2488+
const apps = oldScene.apps.slice();
24782489
apps.splice(index, 1);
2479-
_save(newSceneMesh.token.id, tokenApps)
2480-
.then(() => {
2481-
mesh.scene.token.apps = tokenApps;
2482-
mesh.scene.apps = apps;
24832490

2484-
mesh.moveMesh.material.color.setHex(0x333333);
2485-
});
2491+
if (_save) {
2492+
await _save(oldScene.token.id, tokenApps);
2493+
}
2494+
2495+
oldScene.token.apps = tokenApps;
2496+
oldScene.apps = apps;
2497+
2498+
mesh.moveMesh.material.color.setHex(0x333333);
24862499
}
24872500
}
24882501
mesh.scene = newSceneMesh;
@@ -2605,8 +2618,16 @@
26052618
}, i => {
26062619
_moveApp(iconMesh, i);
26072620
}, () => {
2621+
if (iconMesh.scene) {
2622+
const index = iconMesh.scene.apps.indexOf(iconMesh);
2623+
if (index !== -1) {
2624+
iconMesh.scene.token.apps.splice(index, 1);
2625+
// XXX save
2626+
}
2627+
}
2628+
26082629
_removeApp(iconMesh);
2609-
_destroyApp(iconMesh)
2630+
_destroyApp(iconMesh);
26102631
}, true);
26112632

26122633
_addApp(iconMesh);
@@ -2663,18 +2684,17 @@
26632684
layers.splice(layers.indexOf(iconMesh.iframe), 1);
26642685
}
26652686

2666-
if (!trayMesh.appIconMeshes.children.some(iconMesh => iconMesh.x === selectedIconCoord.x && iconMesh.y === selectedIconCoord.y)) {
2687+
// if (!trayMesh.appIconMeshes.children.some(iconMesh => iconMesh.x === selectedIconCoord.x && iconMesh.y === selectedIconCoord.y)) {
2688+
if (selectedIconMesh === trayMesh.appIconMeshes) {
26672689
if (trayMesh.appIconMeshes.children.some(iconMesh => iconMesh.x === 0 && iconMesh.y === 0)) {
26682690
selectedIconCoord.set(0, 0);
26692691
} else {
26702692
selectedIconMesh = trayMesh.actionIconMeshes;
26712693
selectedIconCoord.set(1, 0);
26722694
selectedIconPage = 0;
2673-
2695+
26742696
trayMesh.labelMesh.textMesh.setText(DEFAULT_URL);
26752697
trayMesh.labelMesh.visible = true;
2676-
trayMesh.actionIconMeshes.children.find(mesh => mesh.x === 5 && mesh.y === 1).localVisible = true;
2677-
trayMesh.mapMesh.localVisible = false;
26782698
}
26792699
}
26802700
};
@@ -2687,7 +2707,6 @@
26872707
const index = sceneMesh.apps.indexOf(iconMesh);
26882708
if (index !== -1) {
26892709
sceneMesh.apps.splice(index, 1);
2690-
sceneMesh.token.apps.splice(index, 1);
26912710
} else {
26922711
break;
26932712
}
@@ -2820,7 +2839,7 @@
28202839
}],
28212840
[chevronUpImg, 4, 1, () => {
28222841
console.log('up');
2823-
if (user) {
2842+
if (user && !_isInMultiverse()) {
28242843
mapMesh.positionOffset.y = 0.1;
28252844
mapMesh.minimapMesh.material.uniforms.uType.value = 1;
28262845

@@ -2834,15 +2853,17 @@
28342853
}],
28352854
[chevronDownImg, 4, 0, () => {
28362855
console.log('down');
2837-
mapMesh.positionOffset.y = 0;
2838-
mapMesh.minimapMesh.material.uniforms.uType.value = 0;
2856+
if (_isInMultiverse()) {
2857+
mapMesh.positionOffset.y = 0;
2858+
mapMesh.minimapMesh.material.uniforms.uType.value = 0;
28392859

2840-
for (let i = 0; i < sceneMeshes.length; i++) {
2841-
const sceneMesh = sceneMeshes[i];
2842-
sceneMesh.destroy();
2843-
scene.remove(sceneMesh);
2860+
for (let i = 0; i < sceneMeshes.length; i++) {
2861+
const sceneMesh = sceneMeshes[i];
2862+
sceneMesh.destroy();
2863+
scene.remove(sceneMesh);
2864+
}
2865+
sceneMeshes.length = 0;
28442866
}
2845-
sceneMeshes.length = 0;
28462867
}],
28472868
[saveImg, 4, 2, () => {
28482869
if (selectedSceneToken) {
@@ -2872,7 +2893,7 @@
28722893
const maxY = (coord[1]+1)*7 - 3 - 0.5;
28732894
return iconMesh.moveMesh.position.x >= minX && iconMesh.moveMesh.position.x < maxX && iconMesh.moveMesh.position.z >= minY && iconMesh.moveMesh.position.z < maxY;
28742895
})) {
2875-
tokenApps.push(sceneMesh.token.apps[i]);
2896+
tokenApps.push(sceneMesh.token.apps[j]);
28762897
apps.push(iconMesh);
28772898
}
28782899
}
@@ -2884,7 +2905,7 @@
28842905
for (let i = 0; i < selectedSceneMeshes.length; i++) {
28852906
const oldSceneMesh = selectedSceneMeshes[i];
28862907
for (let j = 0; j < oldSceneMesh.apps.length; j++) {
2887-
if (apps.indexOf(oldSceneMesh.apps[j]) === -1) {
2908+
if (!apps.includes(oldSceneMesh.apps[j])) {
28882909
_removeApp(iconMesh);
28892910
_destroyApp(iconMesh);
28902911
}

0 commit comments

Comments
 (0)