Attempt to set node_tree_prop on project update

This commit is contained in:
luboslenco 2019-01-04 20:13:29 +01:00
parent 43e5badff3
commit 103c30704d
2 changed files with 15 additions and 12 deletions

View file

@ -340,7 +340,18 @@ def init_properties_on_load():
wrd = bpy.data.worlds['Arm']
# Outdated project
if bpy.data.filepath != '' and (wrd.arm_version != arm_version or wrd.arm_commit != arm_commit): # Call on project load only
print('Project updated to sdk v' + arm_version)
# This allows for seamless migration from ealier versions of
# Armory that don't have `item.node_tree_prop` set
for ob in bpy.data.objects: # TODO: deprecated
for trait in ob.arm_traitlist:
if trait != None and \
trait.type_prop == 'Logic Nodes' and \
trait.node_tree_prop == None and \
trait.name in bpy.data.node_groups:
trait.node_tree_prop = bpy.data.node_groups[trait.name]
print('Project updated to sdk v' + arm_version + ' (' + arm_commit + ')')
wrd.arm_version = arm_version
wrd.arm_commit = arm_commit
arm.make.clean()

View file

@ -29,7 +29,8 @@ def update_trait_group(self, context):
elif t.type_prop == 'UI Canvas':
t.name = t.canvas_name_prop
elif t.type_prop == 'Logic Nodes':
t.name = t.node_tree_prop.name
if t.node_tree_prop != None:
t.name = t.node_tree_prop.name
# Fetch props
if t.type_prop == 'Bundled Script' and t.name != '':
file_path = arm.utils.get_sdk_path() + '/armory/Sources/armory/trait/' + t.name + '.hx'
@ -63,7 +64,7 @@ class ArmTraitListItem(bpy.types.PropertyGroup):
class_name_prop: StringProperty(name="Class", description="A name for this item", default="", update=update_trait_group)
canvas_name_prop: StringProperty(name="Canvas", description="A name for this item", default="", update=update_trait_group)
webassembly_prop: StringProperty(name="Module", description="A name for this item", default="", update=update_trait_group)
node_tree_prop: PointerProperty(type=NodeTree)
node_tree_prop: PointerProperty(type=NodeTree, update=update_trait_group)
arm_traitpropslist: CollectionProperty(type=ArmTraitPropListItem)
arm_traitpropslist_index: IntProperty(name="Index for my_list", default=0)
@ -543,15 +544,6 @@ def draw_traits(layout, obj, is_object):
elif item.type_prop == 'Logic Nodes':
row = layout.row()
row.prop_search(item, "node_tree_prop", bpy.data, "node_groups", text="Tree")
if item.node_tree_prop != None:
item.name = item.node_tree_prop.name
else:
# This allows for seamless migration from ealier versions of
# Armory that have don't have `item.node_tree_prop` set
if item.name != "" and bpy.data.node_groups[item.name] != None:
item.node_tree_prop = bpy.data.node_groups[item.name]
else:
item.name = ""
def register():
global icons_dict