evershade/Packages/super-tiled2unity.v2.2.0/Editor/Collision/CollisionClipperKey.cs

49 lines
1.4 KiB
C#

using System;
namespace SuperTiled2Unity.Editor
{
public struct CollisionClipperKey : IEquatable<CollisionClipperKey>
{
private readonly int m_LayerId;
private readonly string m_LayerName;
private readonly bool m_IsTrigger;
public CollisionClipperKey(int layerId, string layerName, bool isTrigger)
{
m_LayerId = layerId;
m_LayerName = layerName;
m_IsTrigger = isTrigger;
}
public int LayerId { get { return m_LayerId; } }
public string LayerName { get { return m_LayerName; } }
public bool IsTrigger { get { return m_IsTrigger; } }
public override int GetHashCode()
{
var result = m_LayerId.GetHashCode();
result = (result * 397) ^ m_LayerName.GetHashCode();
result = (result * 397) ^ m_IsTrigger.GetHashCode();
return result;
}
public override bool Equals(object obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
return Equals((CollisionClipperKey)obj);
}
public bool Equals(CollisionClipperKey other)
{
return other.m_LayerId.Equals(m_LayerId) &&
other.m_LayerName.Equals(m_LayerName, StringComparison.OrdinalIgnoreCase) &&
other.m_IsTrigger.Equals(m_IsTrigger);
}
}
}