87 lines
1.5 KiB
JavaScript
87 lines
1.5 KiB
JavaScript
|
import FileLoader from "./FileLoader.js";
|
||
|
import Terrain from "../tilorswift/js/Terrain.js";
|
||
|
|
||
|
export default class Level
|
||
|
{
|
||
|
constructor(terrain)
|
||
|
{
|
||
|
this.terrain = terrain;
|
||
|
this.gravity = 2.0;
|
||
|
}
|
||
|
|
||
|
getTilesetId()
|
||
|
{
|
||
|
return this.terrain.tileset.setId;
|
||
|
}
|
||
|
|
||
|
getBackgroundColor()
|
||
|
{
|
||
|
return this.terrain.backgroundColor;
|
||
|
}
|
||
|
|
||
|
getBackgroundImage()
|
||
|
{
|
||
|
return this.terrain.backgroundImage;
|
||
|
}
|
||
|
|
||
|
getRows()
|
||
|
{
|
||
|
return this.terrain.tilesY;
|
||
|
}
|
||
|
|
||
|
getColumns()
|
||
|
{
|
||
|
return this.terrain.tilesX;
|
||
|
}
|
||
|
|
||
|
getStartX()
|
||
|
{
|
||
|
return this.terrain.entranceTileX;
|
||
|
}
|
||
|
|
||
|
getStartY()
|
||
|
{
|
||
|
return this.terrain.entranceTileY;
|
||
|
}
|
||
|
|
||
|
getTargetX()
|
||
|
{
|
||
|
return this.terrain.targetTileX;
|
||
|
}
|
||
|
|
||
|
getTargetY()
|
||
|
{
|
||
|
return this.terrain.targetTileY;
|
||
|
}
|
||
|
|
||
|
getTilesetMatrix()
|
||
|
{
|
||
|
return this.terrain.fields;
|
||
|
}
|
||
|
|
||
|
hasEntrancePoint()
|
||
|
{
|
||
|
return this.terrain.hasEntrancePoint();
|
||
|
}
|
||
|
|
||
|
hasTargetPoint()
|
||
|
{
|
||
|
return this.terrain.hasTargetPoint();
|
||
|
}
|
||
|
|
||
|
setGravity(gravity)
|
||
|
{
|
||
|
this.gravity = gravity;
|
||
|
}
|
||
|
|
||
|
static createFromFile(filename)
|
||
|
{
|
||
|
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);
|
||
|
|
||
|
return level;
|
||
|
}
|
||
|
}
|