Rasagar/Library/PackageCache/com.unity.2d.sprite/Editor/SpriteEditor/SpriteNameFileIdPair.cs
2024-08-26 23:07:20 +03:00

107 lines
2.9 KiB
C#

using System;
using UnityEngine;
namespace UnityEditor
{
/// <summary>
/// Data structure to hold Name ID pair.
/// </summary>
[Serializable]
public class SpriteNameFileIdPair : IEquatable<SpriteNameFileIdPair>
{
[SerializeField]
private string m_Name;
[SerializeField]
private long m_FileId;
[SerializeField]
private GUID m_GUID;
/// <summary>
/// Name property.
/// </summary>
public string name
{
get { return m_Name; }
set { m_Name = value; }
}
/// <summary>
/// FileId property. This property is obsolete. Please use GetFileGUID and SetFileGUID instead.
/// </summary>
[Obsolete("Property obsolete. Please use GetFileGUID and SetFileGUID instead.")]
public long fileId
{
get { return m_FileId; }
set
{
m_FileId = value;
SetFileGUID(GUID.CreateGUIDFromSInt64(m_FileId));
}
}
/// <summary>
/// Returns the ID used for the name.
/// </summary>
/// <returns>GUID value.</returns>
public GUID GetFileGUID()
{
return m_GUID;
}
/// <summary>
/// Sets the ID used for the name.
/// </summary>
/// <param name="value">GUID value to set.</param>
public void SetFileGUID(GUID value)
{
if (value.Empty())
value = GUID.Generate();
m_GUID = value;
}
/// <summary>
/// Default constructor.
/// </summary>
public SpriteNameFileIdPair() {}
/// <summary>
/// Constructor to initialize name and fileID.
/// </summary>
public SpriteNameFileIdPair(string name, GUID fileId)
{
this.name = name;
SetFileGUID(fileId);
}
/// <summary>
/// Custom hashcode generation.
/// </summary>
/// <returns>Int value representing the hash value.</returns>
public override int GetHashCode()
{
return (name ?? string.Empty).GetHashCode() ^ m_GUID.GetHashCode();
}
/// <summary>
/// Override Equal operator.
/// </summary>
/// <param name="obj">Object to compare.</param>
/// <returns>True if the same. False otherwise.</returns>
public override bool Equals(object obj)
{
var pair = obj as SpriteNameFileIdPair;
return pair != null && Equals(pair);
}
/// <summary>
/// Override Equal operator.
/// </summary>
/// <param name="pair">Object to compare.</param>
/// <returns>True if the same. False otherwise.</returns>
public bool Equals(SpriteNameFileIdPair pair)
{
return pair != null && name == pair.name && GetFileGUID() == pair.GetFileGUID();
}
}
}