Update nodes for live patch support (merge conflict cleanup)

This commit is contained in:
Moritz Brückner 2021-07-25 19:50:51 +02:00
parent 6a3045477f
commit 62ff11747b
20 changed files with 59 additions and 70 deletions

View file

@ -7,8 +7,7 @@ class GetBoneFkIkOnlyNode(ArmLogicTreeNode):
arm_version = 1
arm_section = 'armature'
def init(self, context):
super(GetBoneFkIkOnlyNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('NodeSocketString', 'Bone')
self.add_output('NodeSocketBool', 'FK or IK only')
self.add_input('ArmStringSocket', 'Bone')
self.add_output('ArmBoolSocket', 'FK or IK only')

View file

@ -7,8 +7,7 @@ class GetBoneTransformNode(ArmLogicTreeNode):
arm_version = 1
arm_section = 'armature'
def init(self, context):
super(GetBoneTransformNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('NodeSocketString', 'Bone')
self.add_output('NodeSocketShader', 'Transform')
self.add_input('ArmStringSocket', 'Bone')
self.add_output('ArmDynamicSocket', 'Transform')

View file

@ -7,11 +7,10 @@ class SetBoneFkIkOnlyNode(ArmLogicTreeNode):
arm_version = 1
arm_section = 'armature'
def init(self, context):
super(SetBoneFkIkOnlyNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('NodeSocketString', 'Bone')
self.add_input('NodeSocketBool', 'FK or IK only')
self.add_input('ArmStringSocket', 'Bone')
self.add_input('ArmBoolSocket', 'FK or IK only')
self.add_output('ArmNodeSocketAction', 'Out')

View file

@ -6,10 +6,9 @@ class GetGamepadStartedNode(ArmLogicTreeNode):
bl_label = 'Get Gamepad Started'
arm_version = 1
def init(self, context):
super(GetGamepadStartedNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_input('NodeSocketInt', 'Index')
self.add_input('ArmIntSocket', 'Index')
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('NodeSocketString', 'Button')
self.add_output('ArmStringSocket', 'Button')

View file

@ -6,10 +6,9 @@ class GetInputMapKeyNode(ArmLogicTreeNode):
bl_label = 'Get Input Map Key'
arm_version = 1
def init(self, context):
super(GetInputMapKeyNode, self).init(context)
self.add_input('NodeSocketString', 'Input Map')
self.add_input('NodeSocketString', 'Key')
def arm_init(self, context):
self.add_input('ArmStringSocket', 'Input Map')
self.add_input('ArmStringSocket', 'Key')
self.add_output('NodeSocketFloat', 'Scale', default_value = 1.0)
self.add_output('NodeSocketFloat', 'Deadzone')
self.add_output('ArmFloatSocket', 'Scale', default_value = 1.0)
self.add_output('ArmFloatSocket', 'Deadzone')

View file

@ -6,9 +6,8 @@ class GetKeyboardStartedNode(ArmLogicTreeNode):
bl_label = 'Get Keyboard Started'
arm_version = 1
def init(self, context):
super(GetKeyboardStartedNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('NodeSocketString', 'Key')
self.add_output('ArmStringSocket', 'Key')

View file

@ -6,9 +6,8 @@ class GetMouseStartedNode(ArmLogicTreeNode):
bl_label = 'Get Mouse Started'
arm_version = 1
def init(self, context):
super(GetMouseStartedNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('NodeSocketString', 'Button')
self.add_output('ArmStringSocket', 'Button')

View file

@ -6,11 +6,10 @@ class OnInputMapNode(ArmLogicTreeNode):
bl_label = 'On Input Map'
arm_version = 1
def init(self, context):
super(OnInputMapNode, self).init(context)
self.add_input('NodeSocketString', 'Input Map')
def arm_init(self, context):
self.add_input('ArmStringSocket', 'Input Map')
self.add_output('ArmNodeSocketAction', 'Started')
self.add_output('ArmNodeSocketAction', 'Released')
self.add_output('NodeSocketFloat', 'Value')
self.add_output('NodeSocketString', 'Key Pressed')
self.add_output('ArmFloatSocket', 'Value')
self.add_output('ArmStringSocket', 'Key Pressed')

View file

@ -6,10 +6,9 @@ class RemoveInputMapKeyNode(ArmLogicTreeNode):
bl_label = 'Remove Input Map Key'
arm_version = 1
def init(self, context):
super(RemoveInputMapKeyNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_input('NodeSocketString', 'Input Map')
self.add_input('NodeSocketString', 'Key')
self.add_input('ArmStringSocket', 'Input Map')
self.add_input('ArmStringSocket', 'Key')
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('ArmNodeSocketAction', 'Out')

View file

@ -6,23 +6,22 @@ class SetInputMapKeyNode(ArmLogicTreeNode):
bl_label = 'Set Input Map Key'
arm_version = 1
property0: EnumProperty(
property0: HaxeEnumProperty(
'property0',
items = [('keyboard', 'Keyboard', 'Keyboard input'),
('mouse', 'Mouse', 'Mouse input'),
('gamepad', 'Gamepad', 'Gamepad input')],
name='', default='keyboard')
def init(self, context):
super(SetInputMapKeyNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_input('NodeSocketString', 'Input Map')
self.add_input('NodeSocketString', 'Key')
self.add_input('NodeSocketFloat', 'Scale', default_value=1.0)
self.add_input('NodeSocketFloat', 'Deadzone')
self.add_input('NodeSocketInt', 'Index')
self.add_input('ArmStringSocket', 'Input Map')
self.add_input('ArmStringSocket', 'Key')
self.add_input('ArmFloatSocket', 'Scale', default_value=1.0)
self.add_input('ArmFloatSocket', 'Deadzone')
self.add_input('ArmIntSocket', 'Index')
self.add_output('ArmNodeSocketAction', 'Out')
def draw_buttons(self, context, layout):
layout.prop(self, 'property0')
layout.prop(self, 'property0')

View file

@ -29,7 +29,8 @@ class MergeNode(ArmLogicTreeNode):
def update_exec_mode(self, context):
self.outputs['Active Input Index'].hide = self.property0 == 'once_per_frame'
property0: EnumProperty(
property0: HaxeEnumProperty(
'property0',
name='Execution Mode',
description='The node\'s behaviour if multiple inputs are active on the same frame',
items=[('once_per_input', 'Once Per Input',
@ -47,7 +48,7 @@ class MergeNode(ArmLogicTreeNode):
def arm_init(self, context):
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('NodeSocketInt', 'Active Input Index')
self.add_output('ArmIntSocket', 'Active Input Index')
def draw_buttons(self, context, layout):
layout.prop(self, 'property0', text='')

View file

@ -9,8 +9,7 @@ class OncePerFrameNode(ArmLogicTreeNode):
arm_section = 'flow'
arm_version = 1
def init(self, context):
super(OncePerFrameNode, self).init(context)
def arm_init(self, context):
self.add_input('ArmNodeSocketAction', 'In')
self.add_output('ArmNodeSocketAction', 'Out')

View file

@ -37,7 +37,8 @@ class SelectNode(ArmLogicTreeNode):
def update_exec_mode(self, context):
self.set_mode()
property0: EnumProperty(
property0: HaxeEnumProperty(
'property0',
name='Execution Mode',
description="The node's behaviour.",
items=[
@ -55,9 +56,7 @@ class SelectNode(ArmLogicTreeNode):
super().__init__()
array_nodes[str(id(self))] = self
def init(self, context):
super().init(context)
def arm_init(self, context):
self.set_mode()
def set_mode(self):
@ -65,8 +64,8 @@ class SelectNode(ArmLogicTreeNode):
self.outputs.clear()
if self.property0 == 'from_index':
self.add_input('NodeSocketInt', 'Index')
self.add_input('NodeSocketShader', 'Default')
self.add_input('ArmIntSocket', 'Index')
self.add_input('ArmDynamicSocket', 'Default')
self.num_choices = 0
# from_input
@ -75,12 +74,12 @@ class SelectNode(ArmLogicTreeNode):
# 0 for the "from_index" mode and it makes the code simpler
# if we stick to the same convention for both exec modes
self.add_input('ArmNodeSocketAction', 'Input 0')
self.add_input('NodeSocketShader', 'Value 0')
self.add_input('ArmDynamicSocket', 'Value 0')
self.num_choices = 1
self.add_output('ArmNodeSocketAction', 'Out')
self.add_output('NodeSocketShader', 'Value')
self.add_output('ArmDynamicSocket', 'Value')
def draw_buttons(self, context, layout):
layout.prop(self, 'property0', text='')
@ -102,7 +101,7 @@ class SelectNode(ArmLogicTreeNode):
# Move new action input up to the end of all other action inputs
self.inputs.move(from_index=len(self.inputs) - 1, to_index=self.num_choices)
self.add_input('NodeSocketShader', f'Value {self.num_choices}')
self.add_input('ArmDynamicSocket', f'Value {self.num_choices}')
self.num_choices += 1

View file

@ -7,7 +7,7 @@ class GetRigidBodyDataNode(ArmLogicTreeNode):
arm_section = 'props'
arm_version = 1
def init(self, context):
def arm_init(self, context):
self.inputs.new('ArmNodeSocketObject', 'Object')
self.outputs.new('ArmBoolSocket', 'Is RB')

View file

@ -37,7 +37,7 @@ class ColorgradingSetGlobalNode(ArmLogicTreeNode):
items = [('RGB', 'RGB', 'RGB'),
('Uniform', 'Uniform', 'Uniform')],
name='Mode', default='Uniform', update=update_node)
property1 : StringProperty(name="Loaded Data", description="Loaded data - Just ignore", default="")
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)

View file

@ -37,7 +37,7 @@ class ColorgradingSetHighlightNode(ArmLogicTreeNode):
items = [('RGB', 'RGB', 'RGB'),
('Uniform', 'Uniform', 'Uniform')],
name='Mode', default='Uniform', update=update_node)
property1 : StringProperty(name="Loaded Data", description="Loaded data - Just ignore", default="")
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)

View file

@ -37,7 +37,7 @@ class ColorgradingSetMidtoneNode(ArmLogicTreeNode):
items = [('RGB', 'RGB', 'RGB'),
('Uniform', 'Uniform', 'Uniform')],
name='Mode', default='Uniform', update=update_node)
property1 : StringProperty(name="Loaded Data", description="Loaded data - Just ignore", default="")
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)

View file

@ -37,7 +37,7 @@ class ColorgradingSetShadowNode(ArmLogicTreeNode):
items = [('RGB', 'RGB', 'RGB'),
('Uniform', 'Uniform', 'Uniform')],
name='Mode', default='Uniform', update=update_node)
property1 : StringProperty(name="Loaded Data", description="Loaded data - Just ignore", default="")
property1 : HaxeStringProperty('property1', name="Loaded Data", description="Loaded data - Just ignore", default="")
filepath : StringProperty(name="Preset File", description="Postprocess colorgrading preset file", default="", subtype="FILE_PATH", update=set_data)

View file

@ -2,7 +2,7 @@ from arm.logicnode.arm_nodes import *
class GetLocationNode(ArmLogicTreeNode):
"""Get the location of the given object in world coordinates.
@input Parent Relative: If enabled, transforms the world coordinates into object parent local coordinates
@seeNode Set Object Location
@ -16,7 +16,7 @@ class GetLocationNode(ArmLogicTreeNode):
def arm_init(self, context):
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('NodeSocketBool', 'Parent Relative')
self.add_input('ArmBoolSocket', 'Parent Relative')
self.add_output('ArmVectorSocket', 'Location')

View file

@ -18,11 +18,11 @@ class SetLocationNode(ArmLogicTreeNode):
self.add_input('ArmNodeSocketAction', 'In')
self.add_input('ArmNodeSocketObject', 'Object')
self.add_input('ArmVectorSocket', 'Location')
self.add_input('NodeSocketBool', 'Parent Relative')
self.add_input('ArmBoolSocket', 'Parent Relative')
self.add_output('ArmNodeSocketAction', 'Out')
def get_replacement_node(self, node_tree: bpy.types.NodeTree):
if self.arm_version not in (0, 1):
raise LookupError()
return NodeReplacement.Identity(self)
return NodeReplacement.Identity(self)