@@ -41,8 +41,8 @@ def dump_typetree(self, nodes: list = None) -> str:
4141 def dump_typetree_structure (self ) -> str :
4242 return self .reader .dump_typetree_structure ()
4343
44- def read_typetree (self , nodes : list = None , wrap : bool = False ) -> dict :
45- tree = self .reader .read_typetree (nodes )
44+ def read_typetree (self , nodes : list = None , wrap : bool = False , all_trees = None ) -> dict :
45+ tree = self .reader .read_typetree (nodes , all_trees = all_trees )
4646 self .type_tree = NodeHelper (tree , self .assets_file )
4747 return self .type_tree if wrap else tree
4848
@@ -54,7 +54,7 @@ def class_to_dict(value):
5454 return {key : class_to_dict (val ) for key , val in value .items ()}
5555 elif hasattr (value , "__dict__" ):
5656 if isinstance (value , PPtr ):
57- return {"m_PathID " : value .path_id , "m_FileID " : value .file_id }
57+ return {"m_FileID " : value .file_id , "m_PathID " : value .path_id }
5858 return {
5959 key : class_to_dict (val )
6060 for key , val in value .__dict__ .items ()
@@ -70,7 +70,7 @@ def class_to_dict(value):
7070 def get_raw_data (self ) -> bytes :
7171 return self .reader .get_raw_data ()
7272
73- def set_raw_data (self , data ):
73+ def set_raw_data (self , data : bytes ):
7474 self .reader .set_raw_data (data )
7575
7676 def save (self , writer : EndianBinaryWriter = None , intern_call = False ):
@@ -84,11 +84,6 @@ def save(self, writer: EndianBinaryWriter = None, intern_call=False):
8484 # so we have to use the typetree if it exists
8585 self .save_typetree ()
8686
87- def _save (self , writer ):
88- # the reader is actually an ObjectReader,
89- # the data value is written back into the asset
90- self .reader .data = writer .bytes
91-
9287 def __getattr__ (self , name ):
9388 """
9489 If item not found in __dict__, read type_tree and check if it is in there.
@@ -124,8 +119,8 @@ class NodeHelper:
124119 def __init__ (self , data , assets_file ):
125120 if "m_PathID" in data and "m_FileID" in data :
126121 # used to make pointers directly useable
127- self .path_id = data ["m_PathID" ]
128122 self .file_id = data ["m_FileID" ]
123+ self .path_id = data ["m_PathID" ]
129124 self .index = data .get ("m_Index" , - 2 )
130125 self .assets_file = assets_file
131126 self ._obj = None
@@ -134,6 +129,7 @@ def __init__(self, data, assets_file):
134129 self .__dict__ = {
135130 key : NodeHelper (val , assets_file ) for key , val in data .items ()
136131 }
132+ pass
137133
138134 def __new__ (cls , data , assets_file ):
139135 if isinstance (data , dict ):
@@ -154,13 +150,12 @@ def dump(val):
154150 if isinstance (val , NodeHelper )
155151 else [dump (item ) for item in val ]
156152 if isinstance (val , list )
157- else {"m_PathID " : val .path_id , "m_FileID " : val .file_id }
153+ else {"m_FileID " : val .file_id , "m_PathID " : val .path_id }
158154 if isinstance (val , PPtr )
159155 else [x for x in val ]
160156 if isinstance (val , (bytearray , bytes ))
161157 else val
162158 )
163-
164159 return {key : dump (val ) for key , val in self .__dict__ .items ()}
165160
166161 def items (self ):
@@ -174,13 +169,10 @@ def keys(self):
174169
175170 def save (self , * args , ** kwargs ):
176171 raise NotImplementedError (
177- "This is a guessed structure, please create its proper " +
178- "parser or use the Object's save_typetree(<this NodeHelper>) method."
172+ "This is a helper structure, please create its proper parser " +
173+ " or use Object's save_typetree(<this NodeHelper>) method."
179174 )
180175
181176 def __repr__ (self ):
182177 name = getattr (self , "m_Name" , None )
183- if name :
184- return f"<NodeHelper name={ name } >"
185- else :
186- return "<NodeHelper>"
178+ return f"<NodeHelper name={ name } >" if name else "<NodeHelper>"
0 commit comments