package armory.logicnode; import iron.object.Object; class CallFunctionNode extends LogicNode { var result: Dynamic; public function new(tree: LogicTree) { super(tree); } override function run(from: Int) { var object: Object = inputs[1].get(); if (object == null) return; var funName: String = inputs[2].get(); var args: Array = []; for (i in 3...inputs.length) { args.push(inputs[i].get()); } var func = Reflect.field(object, funName); if (func != null) { result = Reflect.callMethod(object, func, args); } runOutput(0); } override function get(from: Int): Dynamic { return result; } }