Skip to content

Commit 72611c7

Browse files
committed
ObjectReader - add parse_as functions, PPtr - fix parse_as functions, add read_typetree backward comp
1 parent d2d4c16 commit 72611c7

File tree

2 files changed

+14
-5
lines changed

2 files changed

+14
-5
lines changed

UnityPy/classes/PPtr.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,14 @@ def path_id(self) -> int:
3232
def type(self) -> ClassIDType:
3333
return self.deref().type
3434

35+
# backwards compatibility - to be removed in UnityPy 2
3536
def read(self):
36-
# backwards compatibility
3737
return self.deref_parse_as_object()
3838

39+
# backwards compatibility - to be removed in UnityPy 2
40+
def read_typetree(self):
41+
return self.deref_parse_as_dict()
42+
3943
def deref(self, assetsfile: Optional[SerializedFile] = None) -> ObjectReader[T]:
4044
assetsfile = assetsfile or self.assetsfile
4145
if assetsfile is None:
@@ -85,14 +89,12 @@ def deref(self, assetsfile: Optional[SerializedFile] = None) -> ObjectReader[T]:
8589
return cast("ObjectReader[T]", assetsfile.objects[self.m_PathID])
8690

8791
def deref_parse_as_object(self, assetsfile: Optional[SerializedFile] = None) -> T:
88-
return self.deref(assetsfile).read()
92+
return self.deref(assetsfile).parse_as_object()
8993

9094
def deref_parse_as_dict(
9195
self, assetsfile: Optional[SerializedFile] = None
9296
) -> dict[str, Any]:
93-
ret = self.deref(assetsfile).parse_as_dict()
94-
assert isinstance(ret, dict)
95-
return ret
97+
return self.deref(assetsfile).parse_as_dict()
9698

9799
def __bool__(self):
98100
return self.m_PathID != 0

UnityPy/files/ObjectReader.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,3 +257,10 @@ def _get_typetree_node(
257257
if not node:
258258
raise TypeTreeError("There are no TypeTree nodes for this object.")
259259
return node
260+
261+
# UnityPy 2 syntax early implementation
262+
def parse_as_object(self) -> T:
263+
return self.read()
264+
265+
def parse_as_dict(self) -> dict:
266+
return self.read_typetree()

0 commit comments

Comments
 (0)