feat: texture

This commit is contained in:
Swann
2021-05-19 11:43:01 +02:00
parent 2e2ff5d4bf
commit 19602691d3
2 changed files with 28 additions and 9 deletions

View File

@ -507,7 +507,6 @@ class BlMaterial(ReplicatedDatablock):
@staticmethod
def resolve_deps(datablock: object) -> [object]:
# TODO: resolve node group deps
deps = []
if datablock.use_nodes:

View File

@ -21,7 +21,9 @@ import mathutils
from .dump_anything import Loader, Dumper
from replication.protocol import ReplicatedDatablock
from .bl_datablock import resolve_datablock_from_uuid
from .bl_action import dump_animation_data, load_animation_data, resolve_animation_dependencies
import bpy.types as T
class BlTexture(ReplicatedDatablock):
bl_id = "textures"
@ -30,15 +32,18 @@ class BlTexture(ReplicatedDatablock):
bl_icon = 'TEXTURE'
bl_reload_parent = False
@staticmethod
def load(data: dict, datablock: object):
loader = Loader()
loader.load(target, data)
loader.load(datablock, data)
load_animation_data(datablock.get('animation_data'), datablock)
@staticmethod
def construct(data: dict) -> object:
return bpy.data.textures.new(data["name"], data["type"])
@staticmethod
def dump(datablock: object) -> dict:
assert(instance)
dumper = Dumper()
dumper.depth = 1
@ -52,24 +57,39 @@ class BlTexture(ReplicatedDatablock):
'name_full'
]
data = dumper.dump(instance)
color_ramp = getattr(instance, 'color_ramp', None)
data = dumper.dump(datablock)
color_ramp = getattr(datablock, 'color_ramp', None)
if color_ramp:
dumper.depth = 4
data['color_ramp'] = dumper.dump(color_ramp)
data['animation_data'] = dump_animation_data(datablock)
return data
@staticmethod
def resolve(data: dict) -> object:
uuid = data.get('uuid')
name = data.get('name')
datablock = resolve_datablock_from_uuid(uuid, bpy.data.textures)
if datablock is None:
datablock = bpy.data.textures.get(name)
return datablock
@staticmethod
def resolve_deps(datablock: object) -> [object]:
# TODO: resolve material
deps = []
image = getattr(self.instance,"image", None)
image = getattr(datablock,"image", None)
if image:
deps.append(image)
deps.extend(resolve_animation_dependencies(datablock))
return deps
_type = [T.WoodTexture, T.WoodTexture, T.StucciTexture, T.NoiseTexture, T.MusgraveTexture, T.MarbleTexture, T.MagicTexture, T.ImageTexture, T.DistortedNoiseTexture, T.CloudsTexture, T.BlendTexture]
_class = BlTexture