parent
345a5d55e7
commit
cfadc91299
@ -14,7 +14,10 @@ __all__ = [
|
|||||||
'bl_armature',
|
'bl_armature',
|
||||||
'bl_action',
|
'bl_action',
|
||||||
'bl_world',
|
'bl_world',
|
||||||
'bl_metaball'
|
'bl_metaball',
|
||||||
|
'bl_lattice',
|
||||||
|
'bl_lightprobe',
|
||||||
|
'bl_speaker'
|
||||||
] # Order here defines execution order
|
] # Order here defines execution order
|
||||||
|
|
||||||
from . import *
|
from . import *
|
||||||
|
@ -43,6 +43,13 @@ class BlCurve(BlDatablock):
|
|||||||
spline_data['bezier_points'] = dumper.dump(spline.bezier_points)
|
spline_data['bezier_points'] = dumper.dump(spline.bezier_points)
|
||||||
spline_data['type'] = dumper.dump(spline.type)
|
spline_data['type'] = dumper.dump(spline.type)
|
||||||
data['splines'][index] = spline_data
|
data['splines'][index] = spline_data
|
||||||
|
|
||||||
|
if isinstance(pointer,'TextCurve'):
|
||||||
|
data['type'] = 'TEXT'
|
||||||
|
if isinstance(pointer,'SurfaceCurve'):
|
||||||
|
data['type'] = 'SURFACE'
|
||||||
|
if isinstance(pointer,'TextCurve'):
|
||||||
|
data['type'] = 'CURVE'
|
||||||
return data
|
return data
|
||||||
|
|
||||||
def resolve(self):
|
def resolve(self):
|
||||||
|
54
multi_user/bl_types/bl_lattice.py
Normal file
54
multi_user/bl_types/bl_lattice.py
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
import bpy
|
||||||
|
import mathutils
|
||||||
|
|
||||||
|
from .. import utils
|
||||||
|
from .bl_datablock import BlDatablock
|
||||||
|
|
||||||
|
|
||||||
|
class BlLattice(BlDatablock):
|
||||||
|
def load(self, data, target):
|
||||||
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
for point in data['points']:
|
||||||
|
utils.dump_anything.load(target.points[point], data["points"][point])
|
||||||
|
def construct(self, data):
|
||||||
|
return bpy.data.lattices.new(data["name"])
|
||||||
|
|
||||||
|
def dump(self, pointer=None):
|
||||||
|
assert(pointer)
|
||||||
|
|
||||||
|
dumper = utils.dump_anything.Dumper()
|
||||||
|
dumper.depth = 3
|
||||||
|
dumper.include_filter = [
|
||||||
|
"name",
|
||||||
|
'type',
|
||||||
|
'points_u',
|
||||||
|
'points_v',
|
||||||
|
'points_w',
|
||||||
|
'interpolation_type_u',
|
||||||
|
'interpolation_type_v',
|
||||||
|
'interpolation_type_w',
|
||||||
|
'use_outside',
|
||||||
|
'points',
|
||||||
|
'co',
|
||||||
|
'weight_softbody',
|
||||||
|
'co_deform'
|
||||||
|
]
|
||||||
|
data = dumper.dump(pointer)
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
|
def resolve(self):
|
||||||
|
self.pointer = utils.find_from_attr('uuid', self.uuid, bpy.data.lattices)
|
||||||
|
|
||||||
|
def is_valid(self):
|
||||||
|
return bpy.data.lattices.get(self.data['name'])
|
||||||
|
|
||||||
|
|
||||||
|
bl_id = "lattices"
|
||||||
|
bl_class = bpy.types.Lattice
|
||||||
|
bl_rep_class = BlLattice
|
||||||
|
bl_delay_refresh = 1
|
||||||
|
bl_delay_apply = 1
|
||||||
|
bl_automatic_push = True
|
||||||
|
bl_icon = 'LATTICE_DATA'
|
49
multi_user/bl_types/bl_lightprobe.py
Normal file
49
multi_user/bl_types/bl_lightprobe.py
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
import bpy
|
||||||
|
import mathutils
|
||||||
|
|
||||||
|
from .. import utils
|
||||||
|
from .bl_datablock import BlDatablock
|
||||||
|
|
||||||
|
|
||||||
|
class BlLightProbe(BlDatablock):
|
||||||
|
def load(self, data, target):
|
||||||
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
def construct(self, data):
|
||||||
|
return bpy.data.lightprobes.new(data["name"])
|
||||||
|
|
||||||
|
def dump(self, pointer=None):
|
||||||
|
assert(pointer)
|
||||||
|
|
||||||
|
dumper = utils.dump_anything.Dumper()
|
||||||
|
dumper.depth = 1
|
||||||
|
dumper.include_filter = [
|
||||||
|
"name",
|
||||||
|
'influence_type',
|
||||||
|
'influence_distance',
|
||||||
|
'falloff',
|
||||||
|
'intensity',
|
||||||
|
'clip_start',
|
||||||
|
'clip_end',
|
||||||
|
'visibility_collection',
|
||||||
|
'use_custom_parallax',
|
||||||
|
'parallax_type',
|
||||||
|
'parallax_distance',
|
||||||
|
]
|
||||||
|
|
||||||
|
return dumper.dump(pointer)
|
||||||
|
|
||||||
|
def resolve(self):
|
||||||
|
self.pointer = utils.find_from_attr('uuid', self.uuid, bpy.data.lattices)
|
||||||
|
|
||||||
|
def is_valid(self):
|
||||||
|
return bpy.data.lattices.get(self.data['name'])
|
||||||
|
|
||||||
|
|
||||||
|
bl_id = "lightprobes"
|
||||||
|
bl_class = bpy.types.LightProbe
|
||||||
|
bl_rep_class = BlLightProbe
|
||||||
|
bl_delay_refresh = 1
|
||||||
|
bl_delay_apply = 1
|
||||||
|
bl_automatic_push = True
|
||||||
|
bl_icon = 'LIGHTPROBE_GRID'
|
@ -37,6 +37,14 @@ class BlObject(BlDatablock):
|
|||||||
pointer = bpy.data.grease_pencils[data["data"]]
|
pointer = bpy.data.grease_pencils[data["data"]]
|
||||||
elif data["data"] in bpy.data.curves.keys():
|
elif data["data"] in bpy.data.curves.keys():
|
||||||
pointer = bpy.data.curves[data["data"]]
|
pointer = bpy.data.curves[data["data"]]
|
||||||
|
elif data["data"] in bpy.data.lattices.keys():
|
||||||
|
pointer = bpy.data.lattices[data["data"]]
|
||||||
|
elif data["data"] in bpy.data.speakers.keys():
|
||||||
|
pointer = bpy.data.speakers[data["data"]]
|
||||||
|
elif data["data"] in bpy.data.lightprobes.keys():
|
||||||
|
pass
|
||||||
|
# bpy need to support correct lightprobe creation from python
|
||||||
|
# pointer = bpy.data.lightprobes[data["data"]]
|
||||||
|
|
||||||
instance = bpy.data.objects.new(data["name"], pointer)
|
instance = bpy.data.objects.new(data["name"], pointer)
|
||||||
instance.uuid = self.uuid
|
instance.uuid = self.uuid
|
||||||
|
50
multi_user/bl_types/bl_speaker.py
Normal file
50
multi_user/bl_types/bl_speaker.py
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
import bpy
|
||||||
|
import mathutils
|
||||||
|
|
||||||
|
from .. import utils
|
||||||
|
from .bl_datablock import BlDatablock
|
||||||
|
|
||||||
|
|
||||||
|
class BlSpeaker(BlDatablock):
|
||||||
|
def load(self, data, target):
|
||||||
|
utils.dump_anything.load(target, data)
|
||||||
|
|
||||||
|
def construct(self, data):
|
||||||
|
return bpy.data.speakers.new(data["name"])
|
||||||
|
|
||||||
|
def dump(self, pointer=None):
|
||||||
|
assert(pointer)
|
||||||
|
|
||||||
|
dumper = utils.dump_anything.Dumper()
|
||||||
|
dumper.depth = 1
|
||||||
|
dumper.include_filter = [
|
||||||
|
"muted",
|
||||||
|
'volume',
|
||||||
|
'name',
|
||||||
|
'pitch',
|
||||||
|
'volume_min',
|
||||||
|
'volume_max',
|
||||||
|
'attenuation',
|
||||||
|
'distance_max',
|
||||||
|
'distance_reference',
|
||||||
|
'cone_angle_outer',
|
||||||
|
'cone_angle_inner',
|
||||||
|
'cone_volume_outer'
|
||||||
|
]
|
||||||
|
|
||||||
|
return dumper.dump(pointer)
|
||||||
|
|
||||||
|
def resolve(self):
|
||||||
|
self.pointer = utils.find_from_attr('uuid', self.uuid, bpy.data.lattices)
|
||||||
|
|
||||||
|
def is_valid(self):
|
||||||
|
return bpy.data.lattices.get(self.data['name'])
|
||||||
|
|
||||||
|
|
||||||
|
bl_id = "speakers"
|
||||||
|
bl_class = bpy.types.Speaker
|
||||||
|
bl_rep_class = BlSpeaker
|
||||||
|
bl_delay_refresh = 1
|
||||||
|
bl_delay_apply = 1
|
||||||
|
bl_automatic_push = True
|
||||||
|
bl_icon = 'SPEAKER'
|
Loading…
x
Reference in New Issue
Block a user