summaryrefslogtreecommitdiff
path: root/Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs')
-rw-r--r--Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs104
1 files changed, 104 insertions, 0 deletions
diff --git a/Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs b/Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs
new file mode 100644
index 0000000..3a10e66
--- /dev/null
+++ b/Valheim_v0.141.2_r202102/Valheim/assembly_utils/Vector2i.cs
@@ -0,0 +1,104 @@
+using UnityEngine;
+
+public struct Vector2i
+{
+ public static Vector2i zero = new Vector2i(0, 0);
+
+ public int x;
+
+ public int y;
+
+ public Vector2i(Vector2 v)
+ {
+ x = (int)v.x;
+ y = (int)v.y;
+ }
+
+ public Vector2i(Vector3 v)
+ {
+ x = (int)v.x;
+ y = (int)v.y;
+ }
+
+ public Vector2i(Vector2i v)
+ {
+ x = v.x;
+ y = v.y;
+ }
+
+ public Vector2i(int _x, int _y)
+ {
+ x = _x;
+ y = _y;
+ }
+
+ public static Vector2i operator +(Vector2i v0, Vector2i v1)
+ {
+ return new Vector2i(v0.x + v1.x, v0.y + v1.y);
+ }
+
+ public static Vector2i operator -(Vector2i v0, Vector2i v1)
+ {
+ return new Vector2i(v0.x - v1.x, v0.y - v1.y);
+ }
+
+ public static bool operator ==(Vector2i v0, Vector2i v1)
+ {
+ if (v0.x == v1.x)
+ {
+ return v0.y == v1.y;
+ }
+ return false;
+ }
+
+ public static bool operator !=(Vector2i v0, Vector2i v1)
+ {
+ if (v0.x == v1.x)
+ {
+ return v0.y != v1.y;
+ }
+ return true;
+ }
+
+ public int Magnitude()
+ {
+ return Mathf.Abs(x) + Mathf.Abs(y);
+ }
+
+ public static int Distance(Vector2i a, Vector2i b)
+ {
+ return (a - b).Magnitude();
+ }
+
+ public Vector2 ToVector2()
+ {
+ return new Vector2(x, y);
+ }
+
+ public override string ToString()
+ {
+ return x + "," + y;
+ }
+
+ public override int GetHashCode()
+ {
+ return x.GetHashCode() ^ y.GetHashCode();
+ }
+
+ public override bool Equals(object obj)
+ {
+ if (obj == null)
+ {
+ return false;
+ }
+ if (obj is Vector2i vector2i)
+ {
+ if (vector2i.x == x)
+ {
+ return vector2i.y == y;
+ }
+ return false;
+ }
+ return false;
+ }
+}