12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- using System;
- using UnityEditor.ShaderGraph;
- using UnityEditor.ShaderGraph.Serialization;
- using UnityEngine;
-
- namespace UnityEditor.Graphing
- {
- [Serializable]
- struct SlotReference : IEquatable<SlotReference>, IComparable<SlotReference>
- {
- [SerializeField]
- JsonRef<AbstractMaterialNode> m_Node;
-
- [SerializeField]
- int m_SlotId;
-
- public SlotReference(AbstractMaterialNode node, int slotId)
- {
- m_Node = node;
- m_SlotId = slotId;
- }
-
- public AbstractMaterialNode node => m_Node;
-
- // public Guid nodeGuid => m_Node.value.guid;
-
- public int slotId => m_SlotId;
-
- public MaterialSlot slot => m_Node.value?.FindSlot<MaterialSlot>(m_SlotId);
-
- public bool Equals(SlotReference other) => m_SlotId == other.m_SlotId && m_Node.value == other.m_Node.value;
-
- public override bool Equals(object obj)
- {
- if (ReferenceEquals(null, obj)) return false;
- return obj.GetType() == GetType() && Equals((SlotReference)obj);
- }
-
- public override int GetHashCode()
- {
- unchecked
- {
- return (m_SlotId * 397) ^ m_Node.GetHashCode();
- }
- }
-
- public int CompareTo(SlotReference other)
- {
- var nodeIdComparison = m_Node.value.objectId.CompareTo(other.m_Node.value.objectId);
- if (nodeIdComparison != 0)
- {
- return nodeIdComparison;
- }
-
- return m_SlotId.CompareTo(other.m_SlotId);
- }
- }
- }
|