From 4123ffbb380cec5f916d595a906da34c08d4ce8b Mon Sep 17 00:00:00 2001 From: Swann Martinez Date: Wed, 3 Apr 2019 17:52:45 +0200 Subject: [PATCH] feat(rcf): work on updates --- net_components.py | 7 +-- net_operators.py | 116 +++++++++++++++++++++++----------------------- 2 files changed, 62 insertions(+), 61 deletions(-) diff --git a/net_components.py b/net_components.py index 6bdf2d6..3e7ba7e 100644 --- a/net_components.py +++ b/net_components.py @@ -260,10 +260,11 @@ class RCFClient(): if self.pull_sock in socks: rcfmsg = RCFMessage.recv(self.pull_sock) - rcfmsg.store(self.property_map) + if rcfmsg.id != self.id: + rcfmsg.store(self.property_map) - for f in self.on_recv: - f(rcfmsg) + for f in self.on_recv: + f(rcfmsg) else: await asyncio.sleep(0.0001) diff --git a/net_operators.py b/net_operators.py index e93599d..1cfd931 100644 --- a/net_operators.py +++ b/net_operators.py @@ -437,63 +437,63 @@ def load_default(target=None, data=None, create=False, type=None): def update_scene(msg): global client - if msg.id != client.id: - net_vars = bpy.context.scene.session_settings + + net_vars = bpy.context.scene.session_settings # if net_vars.active_object: # if net_vars.active_object.name in msg.key: # raise ValueError() - if 'net' not in msg.key: - target = resolve_bpy_path(msg.key) - - if target: - target.is_updating = True + if 'net' not in msg.key: + target = resolve_bpy_path(msg.key) + + if target: + target.is_updating = True - if msg.mtype == 'Object': - load_object(target=target, data=msg.body, + if msg.mtype == 'Object': + load_object(target=target, data=msg.body, + create=net_vars.load_data) + global drawer + drawer.draw() + elif msg.mtype == 'Mesh': + load_mesh(target=target, data=msg.body, + create=net_vars.load_data) + elif msg.mtype == 'Collection': + load_collection(target=target, data=msg.body, create=net_vars.load_data) - global drawer - drawer.draw() - elif msg.mtype == 'Mesh': - load_mesh(target=target, data=msg.body, - create=net_vars.load_data) - elif msg.mtype == 'Collection': - load_collection(target=target, data=msg.body, - create=net_vars.load_data) - elif msg.mtype == 'Material': - load_material(target=target, data=msg.body, - create=net_vars.load_data) - elif msg.mtype == 'Grease Pencil': - load_gpencil(target=target, data=msg.body, - create=net_vars.load_data) - elif msg.mtype == 'Scene': - load_scene(target=target, data=msg.body, - create=net_vars.load_data) - elif 'Light' in msg.mtype: - load_light(target=target, data=msg.body, - create=net_vars.load_data) - else: - load_default(target=target, data=msg.body, - create=net_vars.load_data, type=msg.mtype) + elif msg.mtype == 'Material': + load_material(target=target, data=msg.body, + create=net_vars.load_data) + elif msg.mtype == 'Grease Pencil': + load_gpencil(target=target, data=msg.body, + create=net_vars.load_data) + elif msg.mtype == 'Scene': + load_scene(target=target, data=msg.body, + create=net_vars.load_data) + elif 'Light' in msg.mtype: + load_light(target=target, data=msg.body, + create=net_vars.load_data) else: - if msg.mtype == 'client': - refresh_window() - elif msg.mtype == 'clientObject': - selected_objects = [] + load_default(target=target, data=msg.body, + create=net_vars.load_data, type=msg.mtype) + else: + if msg.mtype == 'client': + refresh_window() + elif msg.mtype == 'clientObject': + selected_objects = [] - for k, v in client.property_map.items(): - if v.mtype == 'clientObject': - if client.id != v.id: - selected_objects.append(v.body['object']) + for k, v in client.property_map.items(): + if v.mtype == 'clientObject': + if client.id != v.id: + selected_objects.append(v.body['object']) - for obj in bpy.data.objects: - if obj.name in selected_objects: - obj.hide_select = True - else: - obj.hide_select = False + for obj in bpy.data.objects: + if obj.name in selected_objects: + obj.hide_select = True + else: + obj.hide_select = False - refresh_window() + refresh_window() def push(data_type,id): if data_type == 'Material': @@ -520,7 +520,7 @@ post_init_callbacks = [refresh_window] def default_tick(): if not update_tasks.empty(): update = update_tasks.get() - + print(update) try: push(update[0],update[1]) except: @@ -834,17 +834,17 @@ def depsgraph_update(scene): break if push: - if len(updates) is 1: - updated_data = updates[0] - if scene.session_settings.active_object and updated_data.id.name == scene.session_settings.active_object.name: - if updated_data.is_updated_transform: - add_update(updated_data.id.bl_rna.name, updated_data.id.name) - else: - for update in ordered(updates): - if update[2] == "Master Collection": - pass - elif update[1] in SUPPORTED_TYPES: - update_tasks.put((update[1], update[2])) + # if len(updates) is 1: + # updated_data = updates[0] + # if scene.session_settings.active_object and updated_data.id.name == scene.session_settings.active_object.name: + # if updated_data.is_updated_transform: + # add_update(updated_data.id.bl_rna.name, updated_data.id.name) + # else: + for update in ordered(updates): + if update[2] == "Master Collection": + pass + elif update[1] in SUPPORTED_TYPES: + update_tasks.put((update[1], update[2])) # elif scene.session_settings.active_object and updated_data.id.name == scene.session_settings.active_object.name: