From e994793ad32048c3437a3843f3575c3290a034f5 Mon Sep 17 00:00:00 2001 From: Ellpeck Date: Sat, 7 Dec 2019 13:00:50 +0100 Subject: [PATCH] added a utility class that stores a layer, an x and a y --- MLEM.Extended/Tiled/LayerPosition.cs | 48 ++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 MLEM.Extended/Tiled/LayerPosition.cs diff --git a/MLEM.Extended/Tiled/LayerPosition.cs b/MLEM.Extended/Tiled/LayerPosition.cs new file mode 100644 index 0000000..594e540 --- /dev/null +++ b/MLEM.Extended/Tiled/LayerPosition.cs @@ -0,0 +1,48 @@ +using System.Runtime.Serialization; + +namespace MLEM.Extended.Tiled { + [DataContract] + public struct LayerPosition { + + [DataMember] + public string Layer; + [DataMember] + public int X; + [DataMember] + public int Y; + + public LayerPosition(string layerName, int x, int y) { + this.Layer = layerName; + this.X = x; + this.Y = y; + } + + public static bool operator ==(LayerPosition left, LayerPosition right) { + return left.Equals(right); + } + + public static bool operator !=(LayerPosition left, LayerPosition right) { + return !left.Equals(right); + } + + public bool Equals(LayerPosition other) { + return this.Layer == other.Layer && this.X == other.X && this.Y == other.Y; + } + + public override bool Equals(object obj) { + return obj is LayerPosition other && this.Equals(other); + } + + public override int GetHashCode() { + var hashCode = this.Layer.GetHashCode(); + hashCode = (hashCode * 397) ^ this.X; + hashCode = (hashCode * 397) ^ this.Y; + return hashCode; + } + + public override string ToString() { + return $"{nameof(this.Layer)}: {this.Layer}, {nameof(this.X)}: {this.X}, {nameof(this.Y)}: {this.Y}"; + } + + } +} \ No newline at end of file