55 lines
1.7 KiB
C#
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();
|
|
}
|
|
}
|
|
} |