commit
fe6d1fa372
|
@ -10,10 +10,17 @@ class AddTraitNode extends LogicNode {
|
|||
|
||||
override function run(from: Int) {
|
||||
var object: Object = inputs[1].get();
|
||||
var trait: Dynamic = inputs[2].get();
|
||||
var traitName: String = inputs[2].get();
|
||||
|
||||
if (object == null || trait == null) return;
|
||||
assert(Error, object != null, "Object should not be null");
|
||||
assert(Error, traitName != null, "Trait name should not be null");
|
||||
|
||||
var cname = Type.resolveClass(Main.projectPackage + "." + traitName);
|
||||
if (cname == null) cname = Type.resolveClass(Main.projectPackage + ".node." + traitName);
|
||||
assert(Error, cname != null, 'No trait with the name "$traitName" found, make sure that the trait is exported!');
|
||||
assert(Warning, object.getTrait(cname) == null, 'Object already has the trait "$traitName" applied');
|
||||
|
||||
var trait = Type.createInstance(cname, []);
|
||||
object.addTrait(trait);
|
||||
|
||||
runOutput(0);
|
||||
|
|
|
@ -4,11 +4,11 @@ class AddTraitNode(ArmLogicTreeNode):
|
|||
"""Adds trait to the given object."""
|
||||
bl_idname = 'LNAddTraitNode'
|
||||
bl_label = 'Add Trait to Object'
|
||||
arm_version = 1
|
||||
arm_version = 2
|
||||
|
||||
def arm_init(self, context):
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('ArmDynamicSocket', 'Trait')
|
||||
self.add_input('ArmStringSocket', 'Trait')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
Loading…
Reference in a new issue