From 2e55f585b1069a4a5940b10c970b80ebf854eeb2 Mon Sep 17 00:00:00 2001 From: Swann Martinez Date: Wed, 7 Aug 2019 18:14:48 +0200 Subject: [PATCH] feat: object implementation groundwork --- replicated_types/__init__.py | 0 replicated_types/object.py | 43 ++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 replicated_types/__init__.py create mode 100644 replicated_types/object.py diff --git a/replicated_types/__init__.py b/replicated_types/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/replicated_types/object.py b/replicated_types/object.py new file mode 100644 index 0000000..e85236f --- /dev/null +++ b/replicated_types/object.py @@ -0,0 +1,43 @@ +from libs.replication.data import ReplicatedDatablock +import bpy +import mathutils + +class RepObject(ReplicatedDatablock): + def load(self, data, target): + try: + if target is None: + pointer = None + + # Object specific constructor... + if data["data"] in bpy.data.meshes.keys(): + pointer = bpy.data.meshes[data["data"]] + elif data["data"] in bpy.data.lights.keys(): + pointer = bpy.data.lights[data["data"]] + elif data["data"] in bpy.data.cameras.keys(): + pointer = bpy.data.cameras[data["data"]] + elif data["data"] in bpy.data.curves.keys(): + pointer = bpy.data.curves[data["data"]] + elif data["data"] in bpy.data.armatures.keys(): + pointer = bpy.data.armatures[data["data"]] + elif data["data"] in bpy.data.grease_pencils.keys(): + pointer = bpy.data.grease_pencils[data["data"]] + elif data["data"] in bpy.data.curves.keys(): + pointer = bpy.data.curves[data["data"]] + + target = bpy.data.objects.new(data["name"], pointer) + + # Load other meshes metadata + + target.matrix_world = mathutils.Matrix(data["matrix_world"]) + + target.id = data['id'] + + client = bpy.context.window_manager.session.username + + if target.id == client or target.id == "Common": + target.hide_select = False + else: + target.hide_select = True + + except Exception as e: + logger.error("Object {} loading error: {} ".format(data["name"], e))