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