public override int GetHashCode() { unchecked { var result = 0; result = (result * 397) ^ ToBeAdded.ToArray().GetHashCode(); result = (result * 397) ^ ToBeRemoved.ToArray().GetHashCode(); result = (result * 397) ^ ToChange.ToArray().GetHashCode(); return(result); } }
public bool Equals(CollectionChanges <TExisting, TUpdated> other) { if (Object.ReferenceEquals(null, other)) { return(false); } return (ToBeAdded.SequenceEqual(other.ToBeAdded) && ToBeRemoved.SequenceEqual(other.ToBeRemoved) && ToChange.SequenceEqual(other.ToChange)); }
public virtual void Step(float elapsedSec) { if (MoveQueue.Any()) { if (waitTime > 0) { waitTime -= elapsedSec; } else { LastMoveResult = base.Move(MoveQueue.Dequeue()); if (LastMoveResult != MoveResult.Ok) { Text.WriteLine(LastMoveResult.ToString()); if (LastMoveResult == MoveResult.Win) { Text.WriteLine("Congratulations"); } } waitTime = 0.1f; } } else { waitTime = 0; } foreach (var e in RootElements) { e.Step(elapsedSec); // nested steps handles by GameElement.Step() } if (ToBeRemoved.Any()) { foreach (var e in ToBeRemoved) { RemoveElement(e); } ToBeRemoved.Clear(); } }