Added node scaling, and a few utility functions

This commit is contained in:
2023-06-24 21:30:33 +10:00
parent d83ef10c1f
commit 0671a89d43
18 changed files with 377 additions and 588 deletions

View File

@@ -1,9 +1,19 @@
import node;
//utils
//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;
@@ -13,14 +23,7 @@ fn setRemainingSteps(node: opaque, steps: int) {
remainingSteps = steps;
}
fn getMaxSteps(node: opaque) {
return maxSteps;
}
fn getRemainingSteps(node: opaque) {
return remainingSteps;
}
//utility mutators
fn alterRemainingSteps(node: opaque, increment: int) {
remainingSteps += increment;
if (remainingSteps > maxSteps) {
@@ -47,21 +50,18 @@ fn onLoad(node: opaque) {
node
.loadChild("scripts:/gameplay/text.toy")
.setNodeText("fonts:/alphbeta.ttf", 32, "Water", 0, 60, 240, 255);
.setNodeText("fonts:/alphbeta.ttf", 32, "Water", 0, 60, 240, 255); //rgba
}
fn onFree(node: opaque) {
node.freeNodeTexture();
}
fn customOnDraw(node: opaque, x: int, y: int, w: int, h: int) {
fn onDraw(node: opaque) {
if (remainingSteps > 0 && maxSteps > 0) {
var tmp = float remainingSteps / maxSteps * w;
var tmp = float remainingSteps / maxSteps * node.getNodeRectW();
var h = node.getNodeRectH();
node.drawNode(x, y, int tmp, h);
for (var i: int = 0; i < node.getChildNodeCount(); i++) {
node.getChildNode(i).callNodeFn("customOnDraw", x, y);
}
node.drawNode(node.getNodePositionX(), node.getNodePositionY(), int tmp, h);
}
}