Use custom sockets for default data types
This allows to listen for socket updates for the live patch system
This commit is contained in:
parent
a6ec652d5f
commit
96aa0ee890
|
@ -12,6 +12,6 @@ class BlendActionNode(ArmLogicTreeNode):
|
|||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('ArmNodeSocketAnimAction', 'Action 1')
|
||||
self.add_input('ArmNodeSocketAnimAction', 'Action 2')
|
||||
self.add_input('NodeSocketFloat', 'Factor', default_value = 0.5)
|
||||
self.add_input('ArmFloatSocket', 'Factor', default_value = 0.5)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -11,7 +11,7 @@ class BoneFKNode(ArmLogicTreeNode):
|
|||
super(BoneFKNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketString', 'Bone')
|
||||
self.add_input('NodeSocketShader', 'Transform')
|
||||
self.add_input('ArmStringSocket', 'Bone')
|
||||
self.add_input('ArmDynamicSocket', 'Transform')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -11,7 +11,7 @@ class BoneIKNode(ArmLogicTreeNode):
|
|||
super(BoneIKNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketString', 'Bone')
|
||||
self.add_input('NodeSocketVector', 'Goal')
|
||||
self.add_input('ArmStringSocket', 'Bone')
|
||||
self.add_input('ArmVectorSocket', 'Goal')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -10,6 +10,6 @@ class AnimationStateNode(ArmLogicTreeNode):
|
|||
super(AnimationStateNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('NodeSocketString', 'Action')
|
||||
self.add_output('NodeSocketInt', 'Frame')
|
||||
self.add_output('NodeSocketBool', 'Is Paused')
|
||||
self.add_output('ArmStringSocket', 'Action')
|
||||
self.add_output('ArmIntSocket', 'Frame')
|
||||
self.add_output('ArmBoolSocket', 'Is Paused')
|
||||
|
|
|
@ -11,6 +11,6 @@ class GetTilesheetStateNode(ArmLogicTreeNode):
|
|||
super(GetTilesheetStateNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('NodeSocketString', 'Name')
|
||||
self.add_output('NodeSocketInt', 'Frame')
|
||||
self.add_output('NodeSocketBool', 'Is Paused')
|
||||
self.add_output('ArmStringSocket', 'Name')
|
||||
self.add_output('ArmIntSocket', 'Frame')
|
||||
self.add_output('ArmBoolSocket', 'Is Paused')
|
||||
|
|
|
@ -9,6 +9,6 @@ class OnActionMarkerNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(OnActionMarkerNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketString', 'Marker')
|
||||
self.add_input('ArmStringSocket', 'Marker')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -11,10 +11,10 @@ class PlayActionFromNode(ArmLogicTreeNode):
|
|||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('ArmNodeSocketAnimAction', 'Action')
|
||||
self.add_input('NodeSocketInt', 'Start Frame')
|
||||
self.add_input('NodeSocketFloat', 'Blend', default_value = 0.25)
|
||||
self.add_input('NodeSocketFloat', 'Speed', default_value = 1.0)
|
||||
self.add_input('NodeSocketBool', 'Loop', default_value = False)
|
||||
self.add_input('ArmIntSocket', 'Start Frame')
|
||||
self.add_input('ArmFloatSocket', 'Blend', default_value = 0.25)
|
||||
self.add_input('ArmFloatSocket', 'Speed', default_value = 1.0)
|
||||
self.add_input('ArmBoolSocket', 'Loop', default_value = False)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('ArmNodeSocketAction', 'Done')
|
||||
|
|
|
@ -11,7 +11,7 @@ class PlayTilesheetNode(ArmLogicTreeNode):
|
|||
super(PlayTilesheetNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketString', 'Name')
|
||||
self.add_input('ArmStringSocket', 'Name')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('ArmNodeSocketAction', 'Done')
|
||||
|
|
|
@ -10,6 +10,6 @@ class SetActionPausedNode(ArmLogicTreeNode):
|
|||
super(SetActionPausedNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketBool', 'Paused')
|
||||
self.add_input('ArmBoolSocket', 'Paused')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -10,6 +10,6 @@ class SetActionSpeedNode(ArmLogicTreeNode):
|
|||
super(SetActionSpeedNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketFloat', 'Speed', default_value=1.0)
|
||||
self.add_input('ArmFloatSocket', 'Speed', default_value=1.0)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -12,6 +12,6 @@ class SetParentBoneNode(ArmLogicTreeNode):
|
|||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('ArmNodeSocketObject', 'Parent', default_value='Parent')
|
||||
self.add_input('NodeSocketString', 'Bone', default_value='Bone')
|
||||
self.add_input('ArmStringSocket', 'Bone', default_value='Bone')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -10,6 +10,6 @@ class SetParticleSpeedNode(ArmLogicTreeNode):
|
|||
super(SetParticleSpeedNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketFloat', 'Speed', default_value=1.0)
|
||||
self.add_input('ArmFloatSocket', 'Speed', default_value=1.0)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -11,6 +11,6 @@ class SetTilesheetPausedNode(ArmLogicTreeNode):
|
|||
super(SetTilesheetPausedNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketBool', 'Paused')
|
||||
self.add_input('ArmBoolSocket', 'Paused')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -61,6 +61,9 @@ class ArmLogicTreeNode(bpy.types.Node):
|
|||
"""
|
||||
arm.live_patch.send_event('ln_update_prop', (self, prop_name))
|
||||
|
||||
def on_socket_val_update(self, context: bpy.types.Context, socket: bpy.types.NodeSocket):
|
||||
pass
|
||||
|
||||
def insert_link(self, link: bpy.types.NodeLink):
|
||||
"""Called on *both* nodes when a link between two nodes is created."""
|
||||
arm.live_patch.send_event('ln_insert_link', (self, link))
|
||||
|
@ -132,7 +135,7 @@ class ArmNodeAddInputButton(bpy.types.Operator):
|
|||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
node_index: StringProperty(name='Node Index', default='')
|
||||
socket_type: StringProperty(name='Socket Type', default='NodeSocketShader')
|
||||
socket_type: StringProperty(name='Socket Type', default='ArmDynamicSocket')
|
||||
name_format: StringProperty(name='Name Format', default='Input {0}')
|
||||
index_name_offset: IntProperty(name='Index Name Offset', default=0)
|
||||
|
||||
|
@ -143,7 +146,7 @@ class ArmNodeAddInputButton(bpy.types.Operator):
|
|||
|
||||
# Reset to default again for subsequent calls of this operator
|
||||
self.node_index = ''
|
||||
self.socket_type = 'NodeSocketShader'
|
||||
self.socket_type = 'ArmDynamicSocket'
|
||||
self.name_format = 'Input {0}'
|
||||
self.index_name_offset = 0
|
||||
|
||||
|
@ -155,7 +158,7 @@ class ArmNodeAddInputValueButton(bpy.types.Operator):
|
|||
bl_label = 'Add Input'
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
node_index: StringProperty(name='Node Index', default='')
|
||||
socket_type: StringProperty(name='Socket Type', default='NodeSocketShader')
|
||||
socket_type: StringProperty(name='Socket Type', default='ArmDynamicSocket')
|
||||
|
||||
def execute(self, context):
|
||||
global array_nodes
|
||||
|
@ -202,7 +205,7 @@ class ArmNodeAddOutputButton(bpy.types.Operator):
|
|||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
node_index: StringProperty(name='Node Index', default='')
|
||||
socket_type: StringProperty(name='Socket Type', default='NodeSocketShader')
|
||||
socket_type: StringProperty(name='Socket Type', default='ArmDynamicSocket')
|
||||
name_format: StringProperty(name='Name Format', default='Output {0}')
|
||||
index_name_offset: IntProperty(name='Index Name Offset', default=0)
|
||||
|
||||
|
@ -213,7 +216,7 @@ class ArmNodeAddOutputButton(bpy.types.Operator):
|
|||
|
||||
# Reset to default again for subsequent calls of this operator
|
||||
self.node_index = ''
|
||||
self.socket_type = 'NodeSocketShader'
|
||||
self.socket_type = 'ArmDynamicSocket'
|
||||
self.name_format = 'Output {0}'
|
||||
self.index_name_offset = 0
|
||||
|
||||
|
@ -242,8 +245,8 @@ class ArmNodeAddInputOutputButton(bpy.types.Operator):
|
|||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
|
||||
node_index: StringProperty(name='Node Index', default='')
|
||||
in_socket_type: StringProperty(name='In Socket Type', default='NodeSocketShader')
|
||||
out_socket_type: StringProperty(name='Out Socket Type', default='NodeSocketShader')
|
||||
in_socket_type: StringProperty(name='In Socket Type', default='ArmDynamicSocket')
|
||||
out_socket_type: StringProperty(name='Out Socket Type', default='ArmDynamicSocket')
|
||||
in_name_format: StringProperty(name='In Name Format', default='Input {0}')
|
||||
out_name_format: StringProperty(name='Out Name Format', default='Output {0}')
|
||||
in_index_name_offset: IntProperty(name='Index Name Offset', default=0)
|
||||
|
@ -258,8 +261,8 @@ class ArmNodeAddInputOutputButton(bpy.types.Operator):
|
|||
|
||||
# Reset to default again for subsequent calls of this operator
|
||||
self.node_index = ''
|
||||
self.in_socket_type = 'NodeSocketShader'
|
||||
self.out_socket_type = 'NodeSocketShader'
|
||||
self.in_socket_type = 'ArmDynamicSocket'
|
||||
self.out_socket_type = 'ArmDynamicSocket'
|
||||
self.in_name_format = 'Input {0}'
|
||||
self.out_name_format = 'Output {0}'
|
||||
self.in_index_name_offset = 0
|
||||
|
|
|
@ -1,10 +1,14 @@
|
|||
import bpy
|
||||
from bpy.props import PointerProperty
|
||||
from bpy.props import *
|
||||
from bpy.types import NodeSocket
|
||||
|
||||
import arm.utils
|
||||
|
||||
|
||||
def _on_update_socket(self, context):
|
||||
self.node.on_socket_val_update(context, self)
|
||||
|
||||
|
||||
class ArmCustomSocket(NodeSocket):
|
||||
"""
|
||||
A custom socket that can be used to define more socket types for
|
||||
|
@ -41,7 +45,7 @@ class ArmAnimActionSocket(ArmCustomSocket):
|
|||
arm_socket_type = 'STRING'
|
||||
|
||||
default_value_get: PointerProperty(name='Action', type=bpy.types.Action) # legacy version of the line after this one
|
||||
default_value_raw: PointerProperty(name='Action', type=bpy.types.Action)
|
||||
default_value_raw: PointerProperty(name='Action', type=bpy.types.Action, update=_on_update_socket)
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
@ -81,13 +85,114 @@ class ArmArraySocket(ArmCustomSocket):
|
|||
return 0.8, 0.4, 0.0, 1
|
||||
|
||||
|
||||
class ArmBoolSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmBoolSocket'
|
||||
bl_label = 'Boolean Socket'
|
||||
arm_socket_type = 'BOOLEAN'
|
||||
|
||||
default_value_raw: BoolProperty(
|
||||
name='Value',
|
||||
description='Input value used for unconnected socket',
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
draw_socket_layout(self, layout)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.8, 0.651, 0.839, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
class ArmColorSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmColorSocket'
|
||||
bl_label = 'Color Socket'
|
||||
arm_socket_type = 'RGBA'
|
||||
|
||||
default_value_raw: FloatVectorProperty(
|
||||
name='Value',
|
||||
size=4,
|
||||
subtype='COLOR',
|
||||
min=0.0,
|
||||
max=1.0,
|
||||
description='Input value used for unconnected socket',
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
draw_socket_layout(self, layout)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.78, 0.78, 0.161, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
class ArmDynamicSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmDynamicSocket'
|
||||
bl_label = 'Dynamic Socket'
|
||||
arm_socket_type = 'NONE'
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
layout.label(text=self.name)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.388, 0.78, 0.388, 1
|
||||
|
||||
|
||||
class ArmFloatSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmFloatSocket'
|
||||
bl_label = 'Float Socket'
|
||||
arm_socket_type = 'VALUE'
|
||||
|
||||
default_value_raw: FloatProperty(
|
||||
name='Value',
|
||||
description='Input value used for unconnected socket',
|
||||
precision=3,
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
draw_socket_layout(self, layout)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.631, 0.631, 0.631, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
class ArmIntSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmIntSocket'
|
||||
bl_label = 'Integer Socket'
|
||||
arm_socket_type = 'INT'
|
||||
|
||||
default_value_raw: IntProperty(
|
||||
name='Value',
|
||||
description='Input value used for unconnected socket',
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
draw_socket_layout(self, layout)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.059, 0.522, 0.149, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
class ArmObjectSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmNodeSocketObject'
|
||||
bl_label = 'Object Socket'
|
||||
arm_socket_type = 'OBJECT'
|
||||
|
||||
default_value_get: PointerProperty(name='Object', type=bpy.types.Object) # legacy version of the line after this one
|
||||
default_value_raw: PointerProperty(name='Object', type=bpy.types.Object)
|
||||
default_value_raw: PointerProperty(name='Object', type=bpy.types.Object, update=_on_update_socket)
|
||||
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
|
@ -115,15 +220,82 @@ class ArmObjectSocket(ArmCustomSocket):
|
|||
return 0.15, 0.55, 0.75, 1
|
||||
|
||||
|
||||
def register():
|
||||
bpy.utils.register_class(ArmActionSocket)
|
||||
bpy.utils.register_class(ArmAnimActionSocket)
|
||||
bpy.utils.register_class(ArmArraySocket)
|
||||
bpy.utils.register_class(ArmObjectSocket)
|
||||
class ArmStringSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmStringSocket'
|
||||
bl_label = 'String Socket'
|
||||
arm_socket_type = 'STRING'
|
||||
|
||||
default_value_raw: StringProperty(
|
||||
name='Value',
|
||||
description='Input value used for unconnected socket',
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
draw_socket_layout_split(self, layout)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.439, 0.698, 1, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
def unregister():
|
||||
bpy.utils.unregister_class(ArmObjectSocket)
|
||||
bpy.utils.unregister_class(ArmArraySocket)
|
||||
bpy.utils.unregister_class(ArmAnimActionSocket)
|
||||
bpy.utils.unregister_class(ArmActionSocket)
|
||||
class ArmVectorSocket(ArmCustomSocket):
|
||||
bl_idname = 'ArmVectorSocket'
|
||||
bl_label = 'Vector Socket'
|
||||
arm_socket_type = 'VECTOR'
|
||||
|
||||
default_value_raw: FloatVectorProperty(
|
||||
name='Value',
|
||||
size=3,
|
||||
description='Input value used for unconnected socket',
|
||||
update=_on_update_socket
|
||||
)
|
||||
|
||||
def draw(self, context, layout, node, text):
|
||||
if not self.is_output and not self.is_linked:
|
||||
col = layout.column(align=True)
|
||||
col.prop(self, 'default_value_raw', text='')
|
||||
else:
|
||||
layout.label(text=self.name)
|
||||
|
||||
def draw_color(self, context, node):
|
||||
return 0.388, 0.388, 0.78, 1
|
||||
|
||||
def get_default_value(self):
|
||||
return self.default_value_raw
|
||||
|
||||
|
||||
def draw_socket_layout(socket: bpy.types.NodeSocket, layout: bpy.types.UILayout, prop_name='default_value_raw'):
|
||||
if not socket.is_output and not socket.is_linked:
|
||||
layout.prop(socket, prop_name, text=socket.name)
|
||||
else:
|
||||
layout.label(text=socket.name)
|
||||
|
||||
|
||||
def draw_socket_layout_split(socket: bpy.types.NodeSocket, layout: bpy.types.UILayout, prop_name='default_value_raw'):
|
||||
if not socket.is_output and not socket.is_linked:
|
||||
# Blender layouts use 0.4 splits
|
||||
layout = layout.split(factor=0.4, align=True)
|
||||
|
||||
layout.label(text=socket.name)
|
||||
|
||||
if not socket.is_output and not socket.is_linked:
|
||||
layout.prop(socket, prop_name, text='')
|
||||
|
||||
|
||||
REG_CLASSES = (
|
||||
ArmActionSocket,
|
||||
ArmAnimActionSocket,
|
||||
ArmArraySocket,
|
||||
ArmBoolSocket,
|
||||
ArmColorSocket,
|
||||
ArmDynamicSocket,
|
||||
ArmFloatSocket,
|
||||
ArmIntSocket,
|
||||
ArmObjectSocket,
|
||||
ArmStringSocket,
|
||||
ArmVectorSocket,
|
||||
)
|
||||
register, unregister = bpy.utils.register_classes_factory(REG_CLASSES)
|
||||
|
|
|
@ -13,14 +13,14 @@ class ArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketShader'
|
||||
op.socket_type = 'ArmDynamicSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -19,9 +19,9 @@ class ArrayAddNode(ArmLogicTreeNode):
|
|||
super(ArrayAddNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketBool', 'Modify Original', default_value=True)
|
||||
self.add_input('NodeSocketBool', 'Unique Values')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmBoolSocket', 'Modify Original', default_value=True)
|
||||
self.add_input('ArmBoolSocket', 'Unique Values')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('ArmNodeSocketArray', 'Array')
|
||||
|
@ -31,6 +31,6 @@ class ArrayAddNode(ArmLogicTreeNode):
|
|||
|
||||
op = row.operator('arm.node_add_input_value', text='Add Input', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketShader'
|
||||
op.socket_type = 'ArmDynamicSocket'
|
||||
op2 = row.operator('arm.node_remove_input_value', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
|
|
@ -14,14 +14,14 @@ class BooleanArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(BooleanArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketBool'
|
||||
op.socket_type = 'ArmBoolSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -14,14 +14,14 @@ class ColorArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ColorArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketColor'
|
||||
op.socket_type = 'ArmColorSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -9,6 +9,6 @@ class ArrayContainsNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ArrayContainsNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('NodeSocketBool', 'Contains')
|
||||
self.add_output('ArmBoolSocket', 'Contains')
|
||||
|
|
|
@ -14,14 +14,14 @@ class FloatArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(FloatArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketFloat'
|
||||
op.socket_type = 'ArmFloatSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -9,6 +9,6 @@ class ArrayGetNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ArrayGetNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketInt', 'Index')
|
||||
self.add_input('ArmIntSocket', 'Index')
|
||||
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
|
|
|
@ -14,14 +14,14 @@ class IntegerArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(IntegerArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array')
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketInt'
|
||||
op.socket_type = 'ArmIntSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -10,4 +10,4 @@ class ArrayLengthNode(ArmLogicTreeNode):
|
|||
super(ArrayLengthNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
|
|
@ -13,6 +13,6 @@ class ArrayLoopNode(ArmLogicTreeNode):
|
|||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Loop')
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('NodeSocketInt', 'Index')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
self.add_output('ArmIntSocket', 'Index')
|
||||
self.add_output('ArmNodeSocketAction', 'Done')
|
||||
|
|
|
@ -14,7 +14,7 @@ class ObjectArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ObjectArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
|
|
@ -12,4 +12,4 @@ class ArrayPopNode(ArmLogicTreeNode):
|
|||
super(ArrayPopNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
|
|
|
@ -12,7 +12,7 @@ class ArrayRemoveIndexNode(ArmLogicTreeNode):
|
|||
super(ArrayRemoveIndexNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketInt', 'Index')
|
||||
self.add_input('ArmIntSocket', 'Index')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
|
|
|
@ -15,16 +15,16 @@ class ArrayRemoveValueNode(ArmLogicTreeNode):
|
|||
super(ArrayRemoveValueNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
|
||||
# def draw_buttons(self, context, layout):
|
||||
# row = layout.row(align=True)
|
||||
|
||||
# op = row.operator('arm.node_add_input_value', text='New', icon='PLUS', emboss=True)
|
||||
# op.node_index = str(id(self))
|
||||
# op.socket_type = 'NodeSocketShader'
|
||||
# op.socket_type = 'ArmDynamicSocket'
|
||||
# op2 = row.operator('arm.node_remove_input_value', text='', icon='X', emboss=True)
|
||||
# op2.node_index = str(id(self))
|
||||
|
|
|
@ -10,7 +10,7 @@ class ArraySetNode(ArmLogicTreeNode):
|
|||
super(ArraySetNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketInt', 'Index')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmIntSocket', 'Index')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -12,4 +12,4 @@ class ArrayShiftNode(ArmLogicTreeNode):
|
|||
super(ArrayShiftNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
|
||||
self.add_output('NodeSocketShader', 'Value')
|
||||
self.add_output('ArmDynamicSocket', 'Value')
|
||||
|
|
|
@ -11,7 +11,7 @@ class ArraySliceNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ArraySliceNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketInt', 'Index')
|
||||
self.add_input('NodeSocketInt', 'End')
|
||||
self.add_input('ArmIntSocket', 'Index')
|
||||
self.add_input('ArmIntSocket', 'End')
|
||||
|
||||
self.add_output('ArmNodeSocketArray', 'Array')
|
||||
|
|
|
@ -12,7 +12,7 @@ class ArraySpliceNode(ArmLogicTreeNode):
|
|||
super(ArraySpliceNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketArray', 'Array')
|
||||
self.add_input('NodeSocketInt', 'Index')
|
||||
self.add_input('NodeSocketInt', 'Length')
|
||||
self.add_input('ArmIntSocket', 'Index')
|
||||
self.add_input('ArmIntSocket', 'Length')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -14,14 +14,14 @@ class StringArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(StringArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketString'
|
||||
op.socket_type = 'ArmStringSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -14,14 +14,14 @@ class VectorArrayNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(VectorArrayNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketArray', 'Array', is_var=True)
|
||||
self.add_output('NodeSocketInt', 'Length')
|
||||
self.add_output('ArmIntSocket', 'Length')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketVector'
|
||||
op.socket_type = 'ArmVectorSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
||||
|
|
|
@ -12,4 +12,4 @@ class GetCameraFovNode(ArmLogicTreeNode):
|
|||
super(GetCameraFovNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('NodeSocketFloat', 'FOV')
|
||||
self.add_output('ArmFloatSocket', 'FOV')
|
||||
|
|
|
@ -12,6 +12,6 @@ class SetCameraFovNode(ArmLogicTreeNode):
|
|||
super(SetCameraFovNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Camera')
|
||||
self.add_input('NodeSocketFloat', 'FOV', default_value=0.9)
|
||||
self.add_input('ArmFloatSocket', 'FOV', default_value=0.9)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -8,6 +8,6 @@ class CanvasGetCheckboxNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(CanvasGetCheckboxNode, self).init(context)
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('NodeSocketBool', 'Is Checked')
|
||||
self.add_output('ArmBoolSocket', 'Is Checked')
|
||||
|
|
|
@ -8,6 +8,6 @@ class CanvasGetInputTextNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(CanvasGetInputTextNode, self).init(context)
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('NodeSocketString', 'Text')
|
||||
self.add_output('ArmStringSocket', 'Text')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasGetLocationNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasGetLocationNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketInt', 'X')
|
||||
self.add_output('NodeSocketInt', 'Y')
|
||||
self.add_output('ArmIntSocket', 'X')
|
||||
self.add_output('ArmIntSocket', 'Y')
|
||||
|
|
|
@ -8,6 +8,6 @@ class CanvasGetPositionNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(CanvasGetPositionNode, self).init(context)
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('NodeSocketInt', 'Position')
|
||||
self.add_output('ArmIntSocket', 'Position')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasGetPBNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasGetPBNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketInt', 'At')
|
||||
self.add_output('NodeSocketInt', 'Max')
|
||||
self.add_output('ArmIntSocket', 'At')
|
||||
self.add_output('ArmIntSocket', 'Max')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasGetRotationNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasGetRotationNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketFloat', 'Rad')
|
||||
self.add_output('ArmFloatSocket', 'Rad')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasGetScaleNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasGetScaleNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketInt', 'Height')
|
||||
self.add_output('NodeSocketInt', 'Width')
|
||||
self.add_output('ArmIntSocket', 'Height')
|
||||
self.add_output('ArmIntSocket', 'Width')
|
||||
|
|
|
@ -8,6 +8,6 @@ class CanvasGetSliderNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(CanvasGetSliderNode, self).init(context)
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('NodeSocketFloat', 'Float')
|
||||
self.add_output('ArmFloatSocket', 'Float')
|
||||
|
|
|
@ -11,6 +11,6 @@ class CanvasGetVisibleNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(CanvasGetVisibleNode, self).init(context)
|
||||
self.inputs.new('NodeSocketString', 'Element')
|
||||
self.inputs.new('ArmStringSocket', 'Element')
|
||||
|
||||
self.outputs.new('NodeSocketBool', 'Is Visible')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Visible')
|
||||
|
|
|
@ -26,7 +26,7 @@ class OnCanvasElementNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(OnCanvasElementNode, self).init(context)
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetAssetNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetAssetNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketString', 'Asset')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Asset')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetCheckBoxNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetCheckBoxNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketBool', 'Check')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmBoolSocket', 'Check')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasSetLocationNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetLocationNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketFloat', 'X')
|
||||
self.add_input('NodeSocketFloat', 'Y')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmFloatSocket', 'X')
|
||||
self.add_input('ArmFloatSocket', 'Y')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasSetPBNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetPBNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketInt', 'At')
|
||||
self.add_input('NodeSocketInt', 'Max')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmIntSocket', 'At')
|
||||
self.add_input('ArmIntSocket', 'Max')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetRotationNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetRotationNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketFloat', 'Rad')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmFloatSocket', 'Rad')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,8 +9,8 @@ class CanvasSetScaleNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetScaleNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketInt', 'Height')
|
||||
self.add_input('NodeSocketInt', 'Width')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmIntSocket', 'Height')
|
||||
self.add_input('ArmIntSocket', 'Width')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetSliderNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetSliderNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketFloat', 'Float')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmFloatSocket', 'Float')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetTextNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetTextNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketString', 'Text')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmStringSocket', 'Text')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,10 +9,10 @@ class CanvasSetTextColorNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetTextColorNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketFloat', 'R')
|
||||
self.add_input('NodeSocketFloat', 'G')
|
||||
self.add_input('NodeSocketFloat', 'B')
|
||||
self.add_input('NodeSocketFloat', 'A')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmFloatSocket', 'R')
|
||||
self.add_input('ArmFloatSocket', 'G')
|
||||
self.add_input('ArmFloatSocket', 'B')
|
||||
self.add_input('ArmFloatSocket', 'A')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -9,7 +9,7 @@ class CanvasSetVisibleNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CanvasSetVisibleNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Element')
|
||||
self.add_input('NodeSocketBool', 'Visible')
|
||||
self.add_input('ArmStringSocket', 'Element')
|
||||
self.add_input('ArmBoolSocket', 'Visible')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -16,7 +16,7 @@ class GetMouseLockNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetMouseLockNode, self).init(context)
|
||||
self.outputs.new('NodeSocketBool', 'Is Locked')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Locked')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.arm_version not in (0, 1):
|
||||
|
|
|
@ -16,7 +16,7 @@ class GetMouseVisibleNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetMouseVisibleNode, self).init(context)
|
||||
self.outputs.new('NodeSocketBool', 'Is Visible')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Visible')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.arm_version not in (0, 1):
|
||||
|
|
|
@ -13,9 +13,9 @@ class MouseCoordsNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(MouseCoordsNode, self).init(context)
|
||||
self.add_output('NodeSocketVector', 'Coords')
|
||||
self.add_output('NodeSocketVector', 'Movement')
|
||||
self.add_output('NodeSocketInt', 'Wheel')
|
||||
self.add_output('ArmVectorSocket', 'Coords')
|
||||
self.add_output('ArmVectorSocket', 'Movement')
|
||||
self.add_output('ArmIntSocket', 'Wheel')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
if self.arm_version not in (0, 1):
|
||||
|
|
|
@ -45,7 +45,7 @@ class OnGamepadNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(OnGamepadNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_input('NodeSocketInt', 'Gamepad')
|
||||
self.add_input('ArmIntSocket', 'Gamepad')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -13,5 +13,5 @@ class PauseTraitNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(PauseTraitNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Trait')
|
||||
self.add_input('ArmDynamicSocket', 'Trait')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -15,6 +15,6 @@ class PlayActionNode(ArmLogicTreeNode):
|
|||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('ArmNodeSocketAnimAction', 'Action')
|
||||
self.add_input('NodeSocketFloat', 'Blend', default_value=0.2)
|
||||
self.add_input('ArmFloatSocket', 'Blend', default_value=0.2)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('ArmNodeSocketAction', 'Done')
|
||||
|
|
|
@ -13,5 +13,5 @@ class ResumeTraitNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ResumeTraitNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Trait')
|
||||
self.add_input('ArmDynamicSocket', 'Trait')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -15,8 +15,8 @@ class RotateObjectAroundAxisNode(ArmLogicTreeNode):
|
|||
super(RotateObjectAroundAxisNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketVector', 'Axis', default_value=[0, 0, 1])
|
||||
self.add_input('NodeSocketFloat', 'Angle')
|
||||
self.add_input('ArmVectorSocket', 'Axis', default_value=[0, 0, 1])
|
||||
self.add_input('ArmFloatSocket', 'Angle')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
|
|
|
@ -15,5 +15,5 @@ class ScaleObjectNode(ArmLogicTreeNode):
|
|||
super(ScaleObjectNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketVector', 'Scale')
|
||||
self.add_input('ArmVectorSocket', 'Scale')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -14,7 +14,7 @@ class SetMouseLockNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(SetMouseLockNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'Lock')
|
||||
self.add_input('ArmBoolSocket', 'Lock')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
|
|
|
@ -14,7 +14,7 @@ class ShowMouseNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(ShowMouseNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'Show')
|
||||
self.add_input('ArmBoolSocket', 'Show')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
||||
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
|
||||
|
|
|
@ -14,5 +14,5 @@ class SetMaterialNode(ArmLogicTreeNode):
|
|||
super(SetMaterialNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
self.add_input('NodeSocketShader', 'Material')
|
||||
self.add_input('ArmDynamicSocket', 'Material')
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -14,5 +14,5 @@ class SurfaceCoordsNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(SurfaceCoordsNode, self).init(context)
|
||||
self.add_output('NodeSocketVector', 'Coords')
|
||||
self.add_output('NodeSocketVector', 'Movement')
|
||||
self.add_output('ArmVectorSocket', 'Coords')
|
||||
self.add_output('ArmVectorSocket', 'Movement')
|
||||
|
|
|
@ -11,7 +11,7 @@ class OnTimerNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(OnTimerNode, self).init(context)
|
||||
self.add_input('NodeSocketFloat', 'Duration')
|
||||
self.add_input('NodeSocketBool', 'Repeat')
|
||||
self.add_input('ArmFloatSocket', 'Duration')
|
||||
self.add_input('ArmBoolSocket', 'Repeat')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -16,7 +16,7 @@ class SendEventNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(SendEventNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Event')
|
||||
self.add_input('ArmStringSocket', 'Event')
|
||||
self.add_input('ArmNodeSocketObject', 'Object')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -15,6 +15,6 @@ class SendGlobalEventNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(SendGlobalEventNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketString', 'Event')
|
||||
self.add_input('ArmStringSocket', 'Event')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -49,9 +49,9 @@ class GamepadNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(GamepadNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketBool', 'State')
|
||||
self.add_output('ArmBoolSocket', 'State')
|
||||
|
||||
self.add_input('NodeSocketInt', 'Gamepad')
|
||||
self.add_input('ArmIntSocket', 'Gamepad')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -13,11 +13,11 @@ class GamepadCoordsNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GamepadCoordsNode, self).init(context)
|
||||
self.add_output('NodeSocketVector', 'Left Stick')
|
||||
self.add_output('NodeSocketVector', 'Right Stick')
|
||||
self.add_output('NodeSocketVector', 'Left Movement')
|
||||
self.add_output('NodeSocketVector', 'Right Movement')
|
||||
self.add_output('NodeSocketFloat', 'Left Trigger')
|
||||
self.add_output('NodeSocketFloat', 'Right Trigger')
|
||||
self.add_output('ArmVectorSocket', 'Left Stick')
|
||||
self.add_output('ArmVectorSocket', 'Right Stick')
|
||||
self.add_output('ArmVectorSocket', 'Left Movement')
|
||||
self.add_output('ArmVectorSocket', 'Right Movement')
|
||||
self.add_output('ArmFloatSocket', 'Left Trigger')
|
||||
self.add_output('ArmFloatSocket', 'Right Trigger')
|
||||
|
||||
self.add_input('NodeSocketInt', 'Gamepad')
|
||||
self.add_input('ArmIntSocket', 'Gamepad')
|
||||
|
|
|
@ -9,7 +9,7 @@ class GetCursorLocationNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetCursorLocationNode, self).init(context)
|
||||
self.add_output('NodeSocketInt', 'X')
|
||||
self.add_output('NodeSocketInt', 'Y')
|
||||
self.add_output('NodeSocketInt', 'Inverted X')
|
||||
self.add_output('NodeSocketInt', 'Inverted Y')
|
||||
self.add_output('ArmIntSocket', 'X')
|
||||
self.add_output('ArmIntSocket', 'Y')
|
||||
self.add_output('ArmIntSocket', 'Inverted X')
|
||||
self.add_output('ArmIntSocket', 'Inverted Y')
|
||||
|
|
|
@ -18,6 +18,6 @@ class GetCursorStateNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetCursorStateNode, self).init(context)
|
||||
self.outputs.new('NodeSocketBool', 'Is Hidden Locked')
|
||||
self.outputs.new('NodeSocketBool', 'Is Hidden')
|
||||
self.outputs.new('NodeSocketBool', 'Is Locked')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Hidden Locked')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Hidden')
|
||||
self.outputs.new('ArmBoolSocket', 'Is Locked')
|
||||
|
|
|
@ -12,13 +12,13 @@ class GetMouseMovementNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(GetMouseMovementNode, self).init(context)
|
||||
|
||||
self.add_input('NodeSocketFloat', 'X Multiplier', default_value=-1.0)
|
||||
self.add_input('NodeSocketFloat', 'Y Multiplier', default_value=-1.0)
|
||||
self.add_input('NodeSocketFloat', 'Wheel Delta Multiplier', default_value=-1.0)
|
||||
self.add_input('ArmFloatSocket', 'X Multiplier', default_value=-1.0)
|
||||
self.add_input('ArmFloatSocket', 'Y Multiplier', default_value=-1.0)
|
||||
self.add_input('ArmFloatSocket', 'Wheel Delta Multiplier', default_value=-1.0)
|
||||
|
||||
self.add_output('NodeSocketFloat', 'X')
|
||||
self.add_output('NodeSocketFloat', 'Y')
|
||||
self.add_output('NodeSocketFloat', 'Multiplied X')
|
||||
self.add_output('NodeSocketFloat', 'Multiplied Y')
|
||||
self.add_output('NodeSocketInt', 'Wheel Delta')
|
||||
self.add_output('NodeSocketFloat', 'Multiplied Wheel Delta')
|
||||
self.add_output('ArmFloatSocket', 'X')
|
||||
self.add_output('ArmFloatSocket', 'Y')
|
||||
self.add_output('ArmFloatSocket', 'Multiplied X')
|
||||
self.add_output('ArmFloatSocket', 'Multiplied Y')
|
||||
self.add_output('ArmIntSocket', 'Wheel Delta')
|
||||
self.add_output('ArmFloatSocket', 'Multiplied Wheel Delta')
|
||||
|
|
|
@ -9,7 +9,7 @@ class GetTouchLocationNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetTouchLocationNode, self).init(context)
|
||||
self.add_output('NodeSocketInt', 'X')
|
||||
self.add_output('NodeSocketInt', 'Y')
|
||||
self.add_output('NodeSocketInt', 'Inverted X')
|
||||
self.add_output('NodeSocketInt', 'Inverted Y')
|
||||
self.add_output('ArmIntSocket', 'X')
|
||||
self.add_output('ArmIntSocket', 'Y')
|
||||
self.add_output('ArmIntSocket', 'Inverted X')
|
||||
self.add_output('ArmIntSocket', 'Inverted Y')
|
||||
|
|
|
@ -9,10 +9,10 @@ class GetTouchMovementNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(GetTouchMovementNode, self).init(context)
|
||||
self.add_input('NodeSocketFloat', 'X Multiplier', default_value=-1.0)
|
||||
self.add_input('NodeSocketFloat', 'Y Multiplier', default_value=-1.0)
|
||||
self.add_input('ArmFloatSocket', 'X Multiplier', default_value=-1.0)
|
||||
self.add_input('ArmFloatSocket', 'Y Multiplier', default_value=-1.0)
|
||||
|
||||
self.add_output('NodeSocketFloat', 'X')
|
||||
self.add_output('NodeSocketFloat', 'Y')
|
||||
self.add_output('NodeSocketFloat', 'Multiplied X')
|
||||
self.add_output('NodeSocketFloat', 'Multiplied Y')
|
||||
self.add_output('ArmFloatSocket', 'X')
|
||||
self.add_output('ArmFloatSocket', 'Y')
|
||||
self.add_output('ArmFloatSocket', 'Multiplied X')
|
||||
self.add_output('ArmFloatSocket', 'Multiplied Y')
|
||||
|
|
|
@ -73,7 +73,7 @@ class KeyboardNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(KeyboardNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketBool', 'State')
|
||||
self.add_output('ArmBoolSocket', 'State')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -24,7 +24,7 @@ class MouseNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(MouseNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketBool', 'State')
|
||||
self.add_output('ArmBoolSocket', 'State')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -7,7 +7,7 @@ class NodeAddOutputButton(bpy.types.Operator):
|
|||
bl_label = 'Add 4 States'
|
||||
bl_options = {'UNDO', 'INTERNAL'}
|
||||
node_index: StringProperty(name='Node Index', default='')
|
||||
socket_type: StringProperty(name='Socket Type', default='NodeSocketShader')
|
||||
socket_type: StringProperty(name='Socket Type', default='ArmDynamicSocket')
|
||||
name_format: StringProperty(name='Name Format', default='Output {0}')
|
||||
index_name_offset: IntProperty(name='Index Name Offset', default=0)
|
||||
|
||||
|
@ -21,10 +21,10 @@ class NodeAddOutputButton(bpy.types.Operator):
|
|||
global array_nodes
|
||||
node = array_nodes[self.node_index]
|
||||
outs = node.outputs
|
||||
outs.new('NodeSocketBool', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('NodeSocketBool', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('NodeSocketBool', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('NodeSocketBool', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('ArmBoolSocket', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('ArmBoolSocket', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('ArmBoolSocket', self.get_name_state(len(outs), node.min_outputs))
|
||||
outs.new('ArmBoolSocket', self.get_name_state(len(outs), node.min_outputs))
|
||||
return{'FINISHED'}
|
||||
|
||||
# Custom class for remove output parameters (in 4 directions)
|
||||
|
@ -61,14 +61,14 @@ class OnSwipeNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(OnSwipeNode, self).init(context)
|
||||
self.inputs.new('NodeSocketFloat', 'Time')
|
||||
self.inputs.new('ArmFloatSocket', 'Time')
|
||||
self.inputs[-1].default_value = 0.15
|
||||
self.inputs.new('NodeSocketInt', 'Min Length (px)')
|
||||
self.inputs.new('ArmIntSocket', 'Min Length (px)')
|
||||
self.inputs[-1].default_value = 100
|
||||
self.outputs.new('ArmNodeSocketAction', 'Out')
|
||||
self.outputs.new('NodeSocketVector', 'Direction')
|
||||
self.outputs.new('NodeSocketInt', 'Length (px)')
|
||||
self.outputs.new('NodeSocketInt', 'Angle (0-360)')
|
||||
self.outputs.new('ArmVectorSocket', 'Direction')
|
||||
self.outputs.new('ArmIntSocket', 'Length (px)')
|
||||
self.outputs.new('ArmIntSocket', 'Angle (0-360)')
|
||||
|
||||
# Draw node buttons
|
||||
def draw_buttons(self, context, layout):
|
||||
|
|
|
@ -20,15 +20,15 @@ class OnTapScreen(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(OnTapScreen, self).init(context)
|
||||
self.add_input('NodeSocketFloat', 'Duration')
|
||||
self.add_input('ArmFloatSocket', 'Duration')
|
||||
self.inputs[-1].default_value = 0.3
|
||||
self.add_input('NodeSocketFloat', 'Interval')
|
||||
self.add_input('ArmFloatSocket', 'Interval')
|
||||
self.inputs[-1].default_value = 0.0
|
||||
self.add_input('NodeSocketInt', 'Repeat')
|
||||
self.add_input('ArmIntSocket', 'Repeat')
|
||||
self.inputs[-1].default_value = 2
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Done')
|
||||
self.add_output('ArmNodeSocketAction', 'Fail')
|
||||
self.add_output('ArmNodeSocketAction', 'Tap')
|
||||
self.add_output('NodeSocketInt', 'Tap Number')
|
||||
self.add_output('NodeSocketVector', 'Coords')
|
||||
self.add_output('ArmIntSocket', 'Tap Number')
|
||||
self.add_output('ArmVectorSocket', 'Coords')
|
||||
|
|
|
@ -9,4 +9,4 @@ class SensorCoordsNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(SensorCoordsNode, self).init(context)
|
||||
self.add_output('NodeSocketVector', 'Coords')
|
||||
self.add_output('ArmVectorSocket', 'Coords')
|
||||
|
|
|
@ -25,7 +25,7 @@ class SetCursorStateNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(SetCursorStateNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'State')
|
||||
self.add_input('ArmBoolSocket', 'State')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ class SurfaceNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(SurfaceNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketBool', 'State')
|
||||
self.add_output('ArmBoolSocket', 'State')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -18,7 +18,7 @@ class VirtualButtonNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(VirtualButtonNode, self).init(context)
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketBool', 'State')
|
||||
self.add_output('ArmBoolSocket', 'State')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
layout.prop(self, 'property0')
|
||||
|
|
|
@ -10,6 +10,6 @@ class SetLightColorNode(ArmLogicTreeNode):
|
|||
super(SetLightColorNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Light')
|
||||
self.add_input('NodeSocketColor', 'Color', default_value=[1.0, 1.0, 1.0, 1.0])
|
||||
self.add_input('ArmColorSocket', 'Color', default_value=[1.0, 1.0, 1.0, 1.0])
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -10,6 +10,6 @@ class SetLightStrengthNode(ArmLogicTreeNode):
|
|||
super(SetLightStrengthNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('ArmNodeSocketObject', 'Light')
|
||||
self.add_input('NodeSocketFloat', 'Strength', default_value=250)
|
||||
self.add_input('ArmFloatSocket', 'Strength', default_value=250)
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -11,7 +11,7 @@ class BranchNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(BranchNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'Bool')
|
||||
self.add_input('ArmBoolSocket', 'Bool')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'True')
|
||||
self.add_output('ArmNodeSocketAction', 'False')
|
||||
|
|
|
@ -16,17 +16,17 @@ class CallFunctionNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(CallFunctionNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Trait/Any')
|
||||
self.add_input('NodeSocketString', 'Function')
|
||||
self.add_input('ArmDynamicSocket', 'Trait/Any')
|
||||
self.add_input('ArmStringSocket', 'Function')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
self.add_output('NodeSocketShader', 'Result')
|
||||
self.add_output('ArmDynamicSocket', 'Result')
|
||||
|
||||
def draw_buttons(self, context, layout):
|
||||
row = layout.row(align=True)
|
||||
op = row.operator('arm.node_add_input', text='Add Arg', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketShader'
|
||||
op.socket_type = 'ArmDynamicSocket'
|
||||
op.name_format = "Arg {0}"
|
||||
op.index_name_offset = -2
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
|
|
|
@ -27,7 +27,7 @@ class FunctionNode(ArmLogicTreeNode):
|
|||
row = layout.row(align=True)
|
||||
op = row.operator('arm.node_add_output', text='Add Arg', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketShader'
|
||||
op.socket_type = 'ArmDynamicSocket'
|
||||
op.name_format = "Arg {0}"
|
||||
op.index_name_offset = 0
|
||||
op2 = row.operator('arm.node_remove_output', text='', icon='X', emboss=True)
|
||||
|
|
|
@ -13,7 +13,7 @@ class FunctionOutputNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(FunctionOutputNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
function_name: StringProperty(name="Name")
|
||||
|
||||
|
|
|
@ -41,8 +41,8 @@ class GateNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(GateNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Input 1')
|
||||
self.add_input('NodeSocketShader', 'Input 2')
|
||||
self.add_input('ArmDynamicSocket', 'Input 1')
|
||||
self.add_input('ArmDynamicSocket', 'Input 2')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'True')
|
||||
self.add_output('ArmNodeSocketAction', 'False')
|
||||
|
@ -57,6 +57,6 @@ class GateNode(ArmLogicTreeNode):
|
|||
row = layout.row(align=True)
|
||||
op = row.operator('arm.node_add_input', text='New', icon='PLUS', emboss=True)
|
||||
op.node_index = str(id(self))
|
||||
op.socket_type = 'NodeSocketShader'
|
||||
op.socket_type = 'ArmDynamicSocket'
|
||||
op2 = row.operator('arm.node_remove_input', text='', icon='X', emboss=True)
|
||||
op2.node_index = str(id(self))
|
||||
|
|
|
@ -8,6 +8,6 @@ class NotNode(ArmLogicTreeNode):
|
|||
|
||||
def init(self, context):
|
||||
super(NotNode, self).init(context)
|
||||
self.add_input('NodeSocketBool', 'Bool In')
|
||||
self.add_input('ArmBoolSocket', 'Bool In')
|
||||
|
||||
self.add_output('NodeSocketBool', 'Bool Out')
|
||||
self.add_output('ArmBoolSocket', 'Bool Out')
|
||||
|
|
|
@ -13,6 +13,6 @@ class IsFalseNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(IsFalseNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'Bool')
|
||||
self.add_input('ArmBoolSocket', 'Bool')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -12,6 +12,6 @@ class IsNotNoneNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(IsNotNoneNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -13,6 +13,6 @@ class IsNoneNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(IsNoneNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketShader', 'Value')
|
||||
self.add_input('ArmDynamicSocket', 'Value')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
|
@ -12,6 +12,6 @@ class IsTrueNode(ArmLogicTreeNode):
|
|||
def init(self, context):
|
||||
super(IsTrueNode, self).init(context)
|
||||
self.add_input('ArmNodeSocketAction', 'In')
|
||||
self.add_input('NodeSocketBool', 'Bool')
|
||||
self.add_input('ArmBoolSocket', 'Bool')
|
||||
|
||||
self.add_output('ArmNodeSocketAction', 'Out')
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue