Add/Get/Remove Group nodes
This commit is contained in:
parent
b2c0538a6e
commit
06bdbd1ac0
18
Sources/armory/logicnode/AddGroupNode.hx
Normal file
18
Sources/armory/logicnode/AddGroupNode.hx
Normal file
|
@ -0,0 +1,18 @@
|
|||
package armory.logicnode;
|
||||
|
||||
class AddGroupNode extends LogicNode {
|
||||
|
||||
public function new(tree:LogicTree) {
|
||||
super(tree);
|
||||
}
|
||||
|
||||
override function run() {
|
||||
var groupName:String = inputs[1].get();
|
||||
|
||||
if (iron.Scene.active.groups.get(groupName) == null) {
|
||||
iron.Scene.active.groups.set(groupName, []);
|
||||
}
|
||||
|
||||
super.run();
|
||||
}
|
||||
}
|
14
Sources/armory/logicnode/GetGroupNode.hx
Normal file
14
Sources/armory/logicnode/GetGroupNode.hx
Normal file
|
@ -0,0 +1,14 @@
|
|||
package armory.logicnode;
|
||||
|
||||
class GetGroupNode extends LogicNode {
|
||||
|
||||
public function new(tree:LogicTree) {
|
||||
super(tree);
|
||||
}
|
||||
|
||||
override function get(from:Int):Dynamic {
|
||||
var groupName:String = inputs[0].get();
|
||||
|
||||
return iron.Scene.active.groups.get(groupName);
|
||||
}
|
||||
}
|
16
Sources/armory/logicnode/RemoveGroupNode.hx
Normal file
16
Sources/armory/logicnode/RemoveGroupNode.hx
Normal file
|
@ -0,0 +1,16 @@
|
|||
package armory.logicnode;
|
||||
|
||||
class RemoveGroupNode extends LogicNode {
|
||||
|
||||
public function new(tree:LogicTree) {
|
||||
super(tree);
|
||||
}
|
||||
|
||||
override function run() {
|
||||
var groupName:String = inputs[1].get();
|
||||
|
||||
iron.Scene.active.groups.remove(groupName);
|
||||
|
||||
super.run();
|
||||
}
|
||||
}
|
17
blender/arm/logicnode/action_add_group.py
Normal file
17
blender/arm/logicnode/action_add_group.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
import bpy
|
||||
from bpy.props import *
|
||||
from bpy.types import Node, NodeSocket
|
||||
from arm.logicnode.arm_nodes import *
|
||||
|
||||
class AddGroupNode(Node, ArmLogicTreeNode):
|
||||
'''Add Group node'''
|
||||
bl_idname = 'LNAddGroupNode'
|
||||
bl_label = 'Add Group'
|
||||
bl_icon = 'GAME'
|
||||
|
||||
def init(self, context):
|
||||
self.inputs.new('ArmNodeSocketAction', 'In')
|
||||
self.inputs.new('NodeSocketString', 'Group')
|
||||
self.outputs.new('ArmNodeSocketAction', 'Out')
|
||||
|
||||
add_node(AddGroupNode, category='Action')
|
17
blender/arm/logicnode/action_remove_group.py
Normal file
17
blender/arm/logicnode/action_remove_group.py
Normal file
|
@ -0,0 +1,17 @@
|
|||
import bpy
|
||||
from bpy.props import *
|
||||
from bpy.types import Node, NodeSocket
|
||||
from arm.logicnode.arm_nodes import *
|
||||
|
||||
class RemoveGroupNode(Node, ArmLogicTreeNode):
|
||||
'''Remove Group node'''
|
||||
bl_idname = 'LNRemoveGroupNode'
|
||||
bl_label = 'Remove Group'
|
||||
bl_icon = 'GAME'
|
||||
|
||||
def init(self, context):
|
||||
self.inputs.new('ArmNodeSocketAction', 'In')
|
||||
self.inputs.new('NodeSocketString', 'Group')
|
||||
self.outputs.new('ArmNodeSocketAction', 'Out')
|
||||
|
||||
add_node(RemoveGroupNode, category='Action')
|
16
blender/arm/logicnode/value_get_group.py
Normal file
16
blender/arm/logicnode/value_get_group.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
import bpy
|
||||
from bpy.props import *
|
||||
from bpy.types import Node, NodeSocket
|
||||
from arm.logicnode.arm_nodes import *
|
||||
|
||||
class GetGroupNode(Node, ArmLogicTreeNode):
|
||||
'''Get group node'''
|
||||
bl_idname = 'LNGetGroupNode'
|
||||
bl_label = 'Get Group'
|
||||
bl_icon = 'GAME'
|
||||
|
||||
def init(self, context):
|
||||
self.inputs.new('NodeSocketString', 'Name')
|
||||
self.outputs.new('NodeSocketShader', 'Array')
|
||||
|
||||
add_node(GetGroupNode, category='Value')
|
Loading…
Reference in a new issue