mirror of
https://git.leinelab.org/Mal/mr-crocs-adventures.git
synced 2025-09-11 02:57:36 +02:00
Tilorswift levels will be loaded asynchronously now
This commit is contained in:
@@ -4,7 +4,8 @@ export default class FileLoader
|
||||
{
|
||||
this.filename = filename;
|
||||
this.content = '';
|
||||
this.loadContent();
|
||||
|
||||
this.onLoad = () => {};
|
||||
}
|
||||
|
||||
getContent()
|
||||
@@ -19,10 +20,11 @@ export default class FileLoader
|
||||
request.onreadystatechange = () => {
|
||||
if (request.status === 200 && request.readyState === 4) {
|
||||
this.content = request.responseText;
|
||||
this.onLoad(this.content);
|
||||
}
|
||||
};
|
||||
|
||||
request.open('GET', this.filename, false);
|
||||
request.send();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
14
js/Level.js
14
js/Level.js
@@ -74,15 +74,17 @@ export default class Level
|
||||
this.gravity = gravity;
|
||||
}
|
||||
|
||||
static createFromFile(filename)
|
||||
static createFromFile(filename, callback = () => {})
|
||||
{
|
||||
let loader = new FileLoader(filename);
|
||||
let levelData = JSON.parse(loader.getContent());
|
||||
let terrain = Terrain.createFromJson(levelData);
|
||||
let level = new Level(terrain);
|
||||
level.setGravity(levelData.gravity);
|
||||
loader.onLoad = (data) => {
|
||||
const json = JSON.parse(data);
|
||||
const level = new Level(Terrain.createFromJson(json));
|
||||
level.setGravity(json.gravity);
|
||||
|
||||
return level;
|
||||
callback(level);
|
||||
}
|
||||
loader.loadContent();
|
||||
}
|
||||
|
||||
static createFromJson(json)
|
||||
|
||||
@@ -36,4 +36,9 @@ export class LoadLevelDialog extends Dialog
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
openFileBrowser()
|
||||
{
|
||||
this.fileInput.click();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user