forked from LeenkxTeam/LNXSDK
35 lines
612 B
Haxe
35 lines
612 B
Haxe
package leenkx.logicnode;
|
|
|
|
class OnTimerNode extends LogicNode {
|
|
|
|
var duration = 0.0;
|
|
var repeat = false;
|
|
|
|
public function new(tree: LogicTree) {
|
|
super(tree);
|
|
|
|
tree.notifyOnUpdate(update);
|
|
}
|
|
|
|
function reactivate() {
|
|
if (inputs[1].get() == true){
|
|
tree.notifyOnUpdate(update);
|
|
tree.removeUpdate(reactivate);
|
|
}
|
|
}
|
|
|
|
function update() {
|
|
|
|
if (duration <= 0.0) {
|
|
duration = inputs[0].get();
|
|
repeat = inputs[1].get();
|
|
}
|
|
|
|
duration -= iron.system.Time.delta;
|
|
if (duration <= 0.0) {
|
|
if (!repeat) { tree.removeUpdate(update); tree.notifyOnUpdate(reactivate); }
|
|
runOutput(0);
|
|
}
|
|
}
|
|
}
|