feat: added construct method to each implementation
This commit is contained in:
@ -11,11 +11,10 @@ class BlCamera(ReplicatedDatablock):
|
|||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def load(self, data, target):
|
||||||
if target is None:
|
|
||||||
target = bpy.data.cameras.new(data["name"])
|
|
||||||
|
|
||||||
utils.dump_anything.load(target, data)
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
def construct(self, data):
|
||||||
|
return bpy.data.cameras.new(data["name"])
|
||||||
|
|
||||||
def dump(self, pointer=None):
|
def dump(self, pointer=None):
|
||||||
assert(pointer)
|
assert(pointer)
|
||||||
|
@ -11,11 +11,10 @@ class BlCollection(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
def construct(self,data):
|
||||||
|
return bpy.data.collections.new(data["name"])
|
||||||
|
|
||||||
def load(self, data, target):
|
def load(self, data, target):
|
||||||
|
|
||||||
if target is None:
|
|
||||||
target = bpy.data.collections.new(data["name"])
|
|
||||||
|
|
||||||
# Load other meshes metadata
|
# Load other meshes metadata
|
||||||
# dump_anything.load(target, data)
|
# dump_anything.load(target, data)
|
||||||
|
|
||||||
|
@ -10,10 +10,10 @@ class BlCurve(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, data):
|
||||||
if target is None:
|
return bpy.data.curves.new(data["name"], 'CURVE')
|
||||||
target = bpy.data.curves.new(data["name"], 'CURVE')
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
utils.dump_anything.load(target, data)
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
target.splines.clear()
|
target.splines.clear()
|
||||||
|
@ -36,10 +36,10 @@ class BlGpencil(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self,data):
|
||||||
if target is None:
|
return bpy.data.grease_pencils.new(data["name"])
|
||||||
target = bpy.data.grease_pencils.new(data["name"])
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
for layer in target.layers:
|
for layer in target.layers:
|
||||||
target.layers.remove(layer)
|
target.layers.remove(layer)
|
||||||
|
|
||||||
|
@ -11,15 +11,15 @@ class BlImage(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, data):
|
||||||
if not target:
|
return bpy.data.images.new(
|
||||||
image = bpy.data.images.new(
|
|
||||||
name=data['name'],
|
name=data['name'],
|
||||||
width=data['size'][0],
|
width=data['size'][0],
|
||||||
height=data['size'][1]
|
height=data['size'][1]
|
||||||
)
|
)
|
||||||
else:
|
|
||||||
image = target
|
def load(self, data, target):
|
||||||
|
image = target
|
||||||
|
|
||||||
img_name = "{}.png".format(image.name)
|
img_name = "{}.png".format(image.name)
|
||||||
|
|
||||||
|
@ -10,10 +10,10 @@ class BlLight(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, data):
|
||||||
if target is None:
|
return bpy.data.lights.new(data["name"], data["type"])
|
||||||
target = bpy.data.lights.new(data["name"], data["type"])
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
utils.dump_anything.load(target, data)
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,10 +10,10 @@ class BlMaterial(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, data):
|
||||||
if target is None:
|
return bpy.data.materials.new(data["name"])
|
||||||
target = bpy.data.materials.new(data["name"])
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
if data['is_grease_pencil']:
|
if data['is_grease_pencil']:
|
||||||
if not target.is_grease_pencil:
|
if not target.is_grease_pencil:
|
||||||
bpy.data.materials.create_gpencil_data(target)
|
bpy.data.materials.create_gpencil_data(target)
|
||||||
@ -66,7 +66,6 @@ class BlMaterial(ReplicatedDatablock):
|
|||||||
|
|
||||||
target.node_tree.links.new(input_socket, output_socket)
|
target.node_tree.links.new(input_socket, output_socket)
|
||||||
|
|
||||||
|
|
||||||
def dump(self, pointer=None):
|
def dump(self, pointer=None):
|
||||||
assert(pointer)
|
assert(pointer)
|
||||||
data = utils.dump_datablock(pointer, 2)
|
data = utils.dump_datablock(pointer, 2)
|
||||||
|
@ -76,6 +76,9 @@ class BlMesh(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
|
def construct(self, data):
|
||||||
|
return bpy.data.meshes.new(data["name"])
|
||||||
|
|
||||||
def load(self, data, target):
|
def load(self, data, target):
|
||||||
if not target or not target.is_editmode:
|
if not target or not target.is_editmode:
|
||||||
# 1 - LOAD GEOMETRY
|
# 1 - LOAD GEOMETRY
|
||||||
@ -109,8 +112,6 @@ class BlMesh(ReplicatedDatablock):
|
|||||||
loop_uv = loop[uv_layer]
|
loop_uv = loop[uv_layer]
|
||||||
loop_uv.uv = data["faces"][p]["uv"][i]
|
loop_uv.uv = data["faces"][p]["uv"][i]
|
||||||
|
|
||||||
if target is None:
|
|
||||||
target = bpy.data.meshes.new(data["name"])
|
|
||||||
|
|
||||||
mesh_buffer.to_mesh(target)
|
mesh_buffer.to_mesh(target)
|
||||||
|
|
||||||
|
@ -10,28 +10,28 @@ class BlObject(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
|
def construct(self, data):
|
||||||
|
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"]]
|
||||||
|
|
||||||
|
return bpy.data.objects.new(data["name"], pointer)
|
||||||
|
|
||||||
def load(self, data, target):
|
def load(self, data, target):
|
||||||
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
|
# Load other meshes metadata
|
||||||
# dump_anything.load(target, data)
|
# dump_anything.load(target, data)
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ class BlObject(ReplicatedDatablock):
|
|||||||
self.pointer = bpy.data.objects.get(object_name)
|
self.pointer = bpy.data.objects.get(object_name)
|
||||||
|
|
||||||
def diff(self):
|
def diff(self):
|
||||||
return self.pointer.location != self.buffer['location']
|
return self.dump(pointer=self.pointer)['location'] != self.buffer['location']
|
||||||
|
|
||||||
bl_id = "objects"
|
bl_id = "objects"
|
||||||
bl_class = bpy.types.Object
|
bl_class = bpy.types.Object
|
||||||
|
@ -10,10 +10,11 @@ class BlScene(ReplicatedDatablock):
|
|||||||
|
|
||||||
super().__init__( *args, **kwargs)
|
super().__init__( *args, **kwargs)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, data):
|
||||||
if target is None:
|
return bpy.data.scenes.new(data["name"])
|
||||||
target = bpy.data.scenes.new(data["name"])
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
|
target = self.pointer
|
||||||
# Load other meshes metadata
|
# Load other meshes metadata
|
||||||
utils.dump_anything.load(target, data)
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
@ -15,10 +15,10 @@ class BlUser(ReplicatedDatablock):
|
|||||||
if self.buffer:
|
if self.buffer:
|
||||||
self.load(self.buffer, self.pointer)
|
self.load(self.buffer, self.pointer)
|
||||||
|
|
||||||
def load(self, data, target):
|
def construct(self, name):
|
||||||
if target is None:
|
return User()
|
||||||
target = User()
|
|
||||||
|
|
||||||
|
def load(self, data, target):
|
||||||
target.name = data['name']
|
target.name = data['name']
|
||||||
|
|
||||||
|
|
||||||
|
Submodule libs/replication updated: 6cf163da86...673844e476
@ -149,7 +149,7 @@ class SessionStartOperator(bpy.types.Operator):
|
|||||||
supported_bl_types.append(_type.bl_id)
|
supported_bl_types.append(_type.bl_id)
|
||||||
|
|
||||||
if _type.bl_id == 'objects':#For testing
|
if _type.bl_id == 'objects':#For testing
|
||||||
bpy_factory.register_type(_type.bl_class, _type.bl_rep_class, timer=2,automatic=False)
|
bpy_factory.register_type(_type.bl_class, _type.bl_rep_class, timer=2,automatic=True)
|
||||||
else:
|
else:
|
||||||
bpy_factory.register_type(_type.bl_class, _type.bl_rep_class)
|
bpy_factory.register_type(_type.bl_class, _type.bl_rep_class)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user