67 lines
1.3 KiB
Plaintext
67 lines
1.3 KiB
Plaintext
import node;
|
|
|
|
//members
|
|
var maxSteps: int = 0;
|
|
var remainingSteps: int = 0;
|
|
|
|
//accessors
|
|
fn getMaxSteps(node: opaque) {
|
|
return maxSteps;
|
|
}
|
|
|
|
fn getRemainingSteps(node: opaque) {
|
|
return remainingSteps;
|
|
}
|
|
|
|
//mutators
|
|
fn setMaxSteps(node: opaque, steps: int) {
|
|
maxSteps = steps;
|
|
remainingSteps = steps;
|
|
}
|
|
|
|
fn setRemainingSteps(node: opaque, steps: int) {
|
|
remainingSteps = steps;
|
|
}
|
|
|
|
//utility mutators
|
|
fn alterRemainingSteps(node: opaque, increment: int) {
|
|
remainingSteps += increment;
|
|
if (remainingSteps > maxSteps) {
|
|
remainingSteps = maxSteps;
|
|
}
|
|
|
|
if (remainingSteps < 0) {
|
|
remainingSteps = 0;
|
|
}
|
|
|
|
return remainingSteps;
|
|
}
|
|
|
|
//utils - polyfills
|
|
fn loadChild(parent: opaque, fname: string) {
|
|
var child: opaque = loadNode(fname);
|
|
parent.pushNode(child);
|
|
return child;
|
|
}
|
|
|
|
//lifecycle functions
|
|
fn onLoad(node: opaque) {
|
|
node.loadNodeTexture("sprites:/stepcounter.png");
|
|
|
|
node
|
|
.loadChild("scripts:/gameplay/text.toy")
|
|
.setNodeText("fonts:/alphbeta.ttf", 32, "Water", 0, 60, 240, 255); //rgba
|
|
}
|
|
|
|
fn onFree(node: opaque) {
|
|
node.freeNodeTexture();
|
|
}
|
|
|
|
fn onDraw(node: opaque) {
|
|
if (remainingSteps > 0 && maxSteps > 0) {
|
|
var tmp = float remainingSteps / maxSteps * node.getNodeRectW();
|
|
var h = node.getNodeRectH();
|
|
|
|
node.drawNode(node.getNodePositionX(), node.getNodePositionY(), int tmp, h);
|
|
}
|
|
} |