ISE_22.Aparyan.Bulldozer.Base/ProjectBulldozer/Generics/DrawingBulldozerEqutables.cs.cs

55 lines
1.7 KiB
C#

using System.Diagnostics.CodeAnalysis;
using ProjectBulldozer.Drawning;
using ProjectBulldozer.Entities;
namespace ProjectBulldozer.Generics
{
internal class DrawingBulldozerEqutables : IEqualityComparer<DrawingTractor?>
{
public bool Equals(DrawingTractor? x, DrawingTractor? y)
{
if (x == null || x.EntityTractor == null)
{
throw new ArgumentNullException(nameof(x));
}
if (y == null || y.EntityTractor == null)
{
throw new ArgumentNullException(nameof(y));
}
if (x.GetType().Name != y.GetType().Name)
{
return false;
}
if (x.EntityTractor.Speed != y.EntityTractor.Speed)
{
return false;
}
if (x.EntityTractor.Weight != y.EntityTractor.Weight)
{
return false;
}
if (x.EntityTractor.BodyColor != y.EntityTractor.BodyColor)
{
return false;
}
if (x is DrawingBulldozer && y is DrawingBulldozer)
{
if ((x.EntityTractor as EntityBulldozer).Otval != (y.EntityTractor as EntityBulldozer).Otval)
{
return false;
}
if ((x.EntityTractor as EntityBulldozer).ThirdWheel != (y.EntityTractor as EntityBulldozer).ThirdWheel)
{
return false;
}
}
return true;
}
public int GetHashCode([DisallowNull] DrawingTractor obj)
{
return obj.GetHashCode();
}
}
}