new-vector-from-boolean-node

This commit is contained in:
Henrique 2020-10-22 15:42:22 -03:00
parent bf2252d09a
commit 538e66e680
2 changed files with 56 additions and 0 deletions

View file

@ -0,0 +1,36 @@
package armory.logicnode;
import iron.math.Vec4;
class VectorFromBooleanNode extends LogicNode {
public function new(tree: LogicTree) {
super(tree);
}
override function get(from: Int): Dynamic {
var boolX: Bool = inputs[0].get();
var boolNegX: Bool = inputs[1].get();
var boolY: Bool = inputs[2].get();
var boolNegY: Bool = inputs[3].get();
var boolZ: Bool = inputs[4].get();
var boolNegZ: Bool = inputs[5].get();
var vector = new Vec4();
if (boolX == true) vector.x += 1;
if (boolNegX == true) vector.x += -1;
if (boolY == true) vector.y += 1;
if (boolNegY == true) vector.y += -1;
if (boolZ == true) vector.z += 1;
if (boolNegZ == true) vector.z += -1;
return vector.normalize();
}
}

View file

@ -0,0 +1,20 @@
from arm.logicnode.arm_nodes import *
class VectorFromBooleanNode(ArmLogicTreeNode):
"""Returns a vector depending on the respective boolean state."""
bl_idname = 'LNVectorFromBooleanNode'
bl_label = 'Vector From Boolean'
arm_version = 1
def init(self, context):
super(VectorFromBooleanNode, self).init(context)
self.inputs.new('NodeSocketBool', 'X')
self.inputs.new('NodeSocketBool', '-X')
self.inputs.new('NodeSocketBool', 'Y')
self.inputs.new('NodeSocketBool', '-Y')
self.inputs.new('NodeSocketBool', 'Z')
self.inputs.new('NodeSocketBool', '-Z')
self.outputs.new('NodeSocketVector', 'Vector')
add_node(VectorFromBooleanNode, category=PKG_AS_CATEGORY)