-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathLoadTerrainPage.js
More file actions
30 lines (23 loc) · 909 Bytes
/
LoadTerrainPage.js
File metadata and controls
30 lines (23 loc) · 909 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import { Page, pm } from "./Page.js";
import { World } from "./World.js";
import { WorldRenderer } from "./WorldRenderer.js";
const sleep = ms => new Promise(s => window.setTimeout(s, ms));
class LoadTerrainPage extends Page {
static get outdegree() { return ["play", ]; };
async onTransitionedToThis(from, eventName, fromPage, ...data) {
let p = this.shadowRoot.getElementById("gen-out");
p.innerHTML = "Generating terrain...";
await sleep(70);
let world = new World({ ...(data[0] || {}) });
p.innerHTML = "Ready to render...";
await sleep(70);
let canvas = pm.getPageByID("play").mainCanvas;
let renderer = new WorldRenderer(canvas, world);
pm.dispatchEvent("load-terrain.loaded", {world, renderer});
this.close({world, renderer});
};
}
LoadTerrainPage.asyncLoadAndDefine();
export {
LoadTerrainPage,
};