feat: apply bl_apply_child member to force dependencies reloading
fix: node_tree animation dependencies
This commit is contained in:
@ -404,6 +404,7 @@ class BlMaterial(ReplicatedDatablock):
|
|||||||
bl_check_common = False
|
bl_check_common = False
|
||||||
bl_icon = 'MATERIAL_DATA'
|
bl_icon = 'MATERIAL_DATA'
|
||||||
bl_reload_parent = False
|
bl_reload_parent = False
|
||||||
|
bl_reload_child = True
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def construct(data: dict) -> object:
|
def construct(data: dict) -> object:
|
||||||
@ -513,6 +514,7 @@ class BlMaterial(ReplicatedDatablock):
|
|||||||
|
|
||||||
if datablock.use_nodes:
|
if datablock.use_nodes:
|
||||||
deps.extend(get_node_tree_dependencies(datablock.node_tree))
|
deps.extend(get_node_tree_dependencies(datablock.node_tree))
|
||||||
|
deps.extend(resolve_animation_dependencies(datablock.node_tree))
|
||||||
deps.extend(resolve_animation_dependencies(datablock))
|
deps.extend(resolve_animation_dependencies(datablock))
|
||||||
|
|
||||||
return deps
|
return deps
|
||||||
|
Submodule multi_user/libs/replication updated: 730e6a9d37...ce3a7b4363
@ -604,8 +604,7 @@ class SessionApply(bpy.types.Operator):
|
|||||||
node_ref = session.repository.graph.get(self.target)
|
node_ref = session.repository.graph.get(self.target)
|
||||||
porcelain.apply(session.repository,
|
porcelain.apply(session.repository,
|
||||||
self.target,
|
self.target,
|
||||||
force=True,
|
force=True)
|
||||||
force_dependencies=self.reset_dependencies)
|
|
||||||
impl = session.repository.rdp.get_implementation(node_ref.instance)
|
impl = session.repository.rdp.get_implementation(node_ref.instance)
|
||||||
if impl.bl_reload_parent:
|
if impl.bl_reload_parent:
|
||||||
for parent in session.repository.graph.get_parents(self.target):
|
for parent in session.repository.graph.get_parents(self.target):
|
||||||
@ -614,6 +613,11 @@ class SessionApply(bpy.types.Operator):
|
|||||||
porcelain.apply(session.repository,
|
porcelain.apply(session.repository,
|
||||||
parent.uuid,
|
parent.uuid,
|
||||||
force=True)
|
force=True)
|
||||||
|
if hasattr(impl, 'bl_reload_child') and impl.bl_reload_child:
|
||||||
|
for dep in node_ref.dependencies:
|
||||||
|
porcelain.apply(session.repository,
|
||||||
|
dep,
|
||||||
|
force=True)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.report({'ERROR'}, repr(e))
|
self.report({'ERROR'}, repr(e))
|
||||||
traceback.print_exc()
|
traceback.print_exc()
|
||||||
|
@ -129,6 +129,11 @@ class ApplyTimer(Timer):
|
|||||||
porcelain.apply(session.repository,
|
porcelain.apply(session.repository,
|
||||||
parent.uuid,
|
parent.uuid,
|
||||||
force=True)
|
force=True)
|
||||||
|
if hasattr(impl, 'bl_reload_child') and impl.bl_reload_child:
|
||||||
|
for dep in node_ref.dependencies:
|
||||||
|
porcelain.apply(session.repository,
|
||||||
|
dep,
|
||||||
|
force=True)
|
||||||
|
|
||||||
|
|
||||||
class DynamicRightSelectTimer(Timer):
|
class DynamicRightSelectTimer(Timer):
|
||||||
|
Reference in New Issue
Block a user