diff --git a/packer/packer.py b/packer/packer.py index 76d74cb..45a8d8e 100755 --- a/packer/packer.py +++ b/packer/packer.py @@ -303,6 +303,21 @@ class ExpandID: tex = item.get_pointer(b'tex') yield tex + @staticmethod + def _expand_generic_nodetree(block): + assert(block.dna_type.dna_type_id == b'bNodeTree') + + sdna_index_bNode = block.file.sdna_index_from_id[b'bNode'] + for item in bf_utils.iter_ListBase(block.get_pointer(b'nodes.first')): + item_type = item.get(b'type', sdna_index_refine=sdna_index_bNode) + + if item_type == 143: # SH_NODE_TEX_IMAGE + yield item.get_pointer(b'id', sdna_index_refine=sdna_index_bNode) + + # import IPython; IPython.embed() + # print(item.get(b'name', sdna_index_refine=sdna_index_bNode)) + # print(item.get(b'type', sdna_index_refine=sdna_index_bNode)) + @staticmethod def expand_OB(block): yield block.get_pointer(b'data') @@ -327,6 +342,10 @@ class ExpandID: def expand_MA(block): yield from ExpandID._expand_generic_mtex(block) + block_ntree = block.get_pointer(b'nodetree') + if block_ntree is not None: + yield from ExpandID._expand_generic_nodetree(block_ntree) + @staticmethod def expand_TE(block): yield block.get_pointer(b'ima')