import standard; import engine; import render; fn _makeChild(parent: opaque, fname: string, init: bool) { var child: opaque = loadNode(fname); if (init) { child.initNode(); } parent.pushNode(child); } //root node can load the whole scene, and essentially act as the scene object fn onInit(node: opaque) { //print "root.toy:onInit() called"; //make a child //node.makeChild("assets/scripts/child.toy", true); //indicate whether to call "init" on the new node or not //node.makeChild("assets/scripts/child.toy", false); //node.makeChild("assets/scripts/child.toy", false); //actually, grab that first node and free it //node.freeChildNode(0); //must be done from the parent node, so it's pointer can be nullified var r = loadRenderNode("assets/scripts/render.toy"); node.pushNode(r); } fn onStep(node: opaque) { //print clock(); } fn onFree(node: opaque) { //print "root.toy:onFree() called"; }