/* INFINITY CODE 2013-2019 */ /* http://www.infinity-code.com */ using System; using UnityEngine; namespace InfinityCode.RealWorldTerrain { /// /// Integer version of Vector2 struct. /// [Serializable] public struct RealWorldTerrainVector2i { /// /// Gets the RealWorldTerrainVector2i where x=1 and y=1. /// public static RealWorldTerrainVector2i one { get { return new RealWorldTerrainVector2i(1, 1); } } /// /// The x value. /// public int x; /// /// The y value. /// public int y; /// /// Returns the count items (X * Y). /// public int count { get { return x * y; } } /// /// Returns the maximum value of x and y. /// public int max { get { return Mathf.Max(x, y); } } /// /// Constructor. /// /// X value. /// Y value. public RealWorldTerrainVector2i(int X = 0, int Y = 0) { x = X; y = Y; } public override string ToString() { return string.Format("X: {0}, Y: {1}", x, y); } public static implicit operator Vector2(RealWorldTerrainVector2i val) { return new Vector2(val.x, val.y); } public static implicit operator int(RealWorldTerrainVector2i val) { return val.count; } public static RealWorldTerrainVector2i operator +(RealWorldTerrainVector2i v1, RealWorldTerrainVector2i v2) { return new RealWorldTerrainVector2i(v1.x + v2.x, v1.y + v2.y); } public static RealWorldTerrainVector2i operator -(RealWorldTerrainVector2i v1, RealWorldTerrainVector2i v2) { return new RealWorldTerrainVector2i(v1.x - v2.x, v1.y - v2.y); } } }