// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2026 Kybernetik // #if UNITY_EDITOR using Animancer.TransitionLibraries; using System; using UnityEngine; namespace Animancer.Editor.TransitionLibraries { /// [Editor-Only] /// Additional data for a which is excluded from Runtime Builds. /// /// /// This class isn't called TransitionLibraryEditorData because /// previously had that name /// and changing from a to a regular class with the same name /// causes errors for any already existing assets of that type. /// /// https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryEditorDataInternal [Serializable] public partial class TransitionLibraryEditorDataInternal : ICopyable, IEquatable { /************************************************************************************************************************/ #region Equality /************************************************************************************************************************/ /// Are all fields in this object equal to the equivalent in `obj`? public override bool Equals(object obj) => Equals(obj as TransitionLibraryEditorDataInternal); /// Are all fields in this object equal to the equivalent fields in `other`? public bool Equals(TransitionLibraryEditorDataInternal other) => other != null && _TransitionSortMode == other._TransitionSortMode && AnimancerUtilities.ContentsAreEqual(_TransitionGroups, other._TransitionGroups); /// Are all fields in `a` equal to the equivalent fields in `b`? public static bool operator ==(TransitionLibraryEditorDataInternal a, TransitionLibraryEditorDataInternal b) => a is null ? b is null : a.Equals(b); /// Are any fields in `a` not equal to the equivalent fields in `b`? public static bool operator !=(TransitionLibraryEditorDataInternal a, TransitionLibraryEditorDataInternal b) => !(a == b); /************************************************************************************************************************/ /// Returns a hash code based on the values of this object's fields. public override int GetHashCode() => AnimancerUtilities.Hash(287475157, _TransitionSortMode.GetHashCode(), _TransitionGroups.SafeGetHashCode()); /************************************************************************************************************************/ /// public void CopyFrom(TransitionLibraryEditorDataInternal copyFrom, CloneContext context) { _TransitionSortMode = copyFrom._TransitionSortMode; var myGroups = TransitionGroups; var copyGroups = copyFrom.TransitionGroups; myGroups.Clear(); for (int i = 0; i < copyGroups.Count; i++) myGroups.Add(copyGroups[i].CopyableClone(context)); } /************************************************************************************************************************/ #endregion /************************************************************************************************************************/ } } #endif