Skip to content

Commit 7886686

Browse files
isHarryhK0lb3
authored andcommitted
fix(math): optimize __init__ in Vectors
1 parent 5acb89a commit 7886686

File tree

2 files changed

+14
-13
lines changed

2 files changed

+14
-13
lines changed

UnityPy/math/Vector3.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,22 @@ class Vector3:
1515
Z: float = 0.0
1616

1717
def __init__(self, *args):
18+
from .Vector4 import Vector4
1819
if len(args) == 1:
1920
args = args[0]
2021

2122
if isinstance(args, Sequence):
2223
if len(args) == 3: # args=(x, y, z)
2324
self.X, self.Y, self.Z = args
24-
return
25-
if len(args) == 0: # args=()
25+
elif len(args) == 0: # args=()
2626
self.X = self.Y = self.Z = 0.0
27-
return
28-
else: # dirty patch for Vector4
27+
else:
28+
raise TypeError("Invalid argument length for Vector3")
29+
elif isinstance(args, Vector4):
30+
# dirty patch for Vector4
2931
self.X, self.Y, self.Z = args.X, args.Y, args.Z
30-
return
31-
32-
raise TypeError("Invalid arguments for Vector3")
32+
else:
33+
raise TypeError("If only 1 argument passed, it must be a sequence or Vector4")
3334

3435
def __getitem__(self, index):
3536
return (self.X, self.Y, self.Z)[index]

UnityPy/math/Vector4.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,15 @@ def __init__(self, *args):
2222
if isinstance(args, Sequence):
2323
if len(args) == 4: # args=(x, y, z, w)
2424
self.X, self.Y, self.Z, self.W = args
25-
return
26-
if len(args) == 2: # args=(Vector3, w)
25+
elif len(args) == 2: # args=(Vector3, w)
2726
self.X, self.Y, self.Z = args[0]
2827
self.W = args[1]
29-
if len(args) == 0: # args=()
28+
elif len(args) == 0: # args=()
3029
self.X = self.Y = self.Z = self.W = 0.0
31-
return
32-
33-
raise TypeError("Invalid arguments for Vector4")
30+
else:
31+
raise TypeError("Invalid argument length for Vector4")
32+
else:
33+
raise TypeError("If only 1 argument passed, it must be a sequence")
3434

3535
def __getitem__(self, index):
3636
return (self.X, self.Y, self.Z, self.W)[index]

0 commit comments

Comments
 (0)