using System; namespace Encompass { /// /// An Entity is a structure composed of a unique ID and a collection of Components. /// An Entity may only have a single Component of any particular Type. /// public struct Entity : IEquatable { public readonly Guid ID; internal Entity(Guid id) { this.ID = id; } public override bool Equals(object obj) { if (obj is Entity) { return this.Equals((Entity)obj); } return false; } public bool Equals(Entity other) { return other.ID == ID; } public static bool operator ==(Entity one, Entity two) { return one.Equals(two); } public static bool operator !=(Entity one, Entity two) { return !one.Equals(two); } public override int GetHashCode() { return ID.GetHashCode(); } } }