35 lines
789 B
Plaintext
35 lines
789 B
Plaintext
import standard;
|
|
import node;
|
|
|
|
var tilemap: opaque = null;
|
|
var player: opaque = null;
|
|
|
|
var collisionMap: [[bool]] = null; //cache this, since it won't change during a level
|
|
|
|
//lifecycle functions
|
|
fn onLoad(node: opaque) {
|
|
tilemap = node.loadChild("scripts:/gameplay/tilemap.toy");
|
|
player = node.loadChild("scripts:/gameplay/lejana.toy");
|
|
}
|
|
|
|
fn onInit(node: opaque) {
|
|
tilemap.callNodeFn("generateFromSeed", clock().hash(), 8, 8);
|
|
collisionMap = tilemap.callNodeFn("getCollisionMap");
|
|
}
|
|
|
|
//utils - polyfills
|
|
fn loadChild(parent: opaque, fname: string) {
|
|
var child: opaque = loadNode(fname);
|
|
parent.pushNode(child);
|
|
return child;
|
|
}
|
|
|
|
//connective functions
|
|
fn getCollisionAt(node: opaque, x: int, y: int) {
|
|
if (collisionMap == null) {
|
|
return false;
|
|
}
|
|
|
|
return collisionMap[x][y];
|
|
}
|