// Animancer // https://kybernetik.com.au/animancer // Copyright 2018-2026 Kybernetik // #if UNITY_EDITOR using Animancer.TransitionLibraries; using System; namespace Animancer.Editor.TransitionLibraries { /// [Editor-Only] /// A for editing /// . /// /// https://kybernetik.com.au/animancer/api/Animancer.Editor.TransitionLibraries/TransitionLibraryStartTimesPage [Serializable] public class TransitionLibraryStartTimesPage : TransitionLibraryModifiersPage { /************************************************************************************************************************/ /// public override string DisplayName => "Start Time Modifiers"; /// public override string HelpTooltip => "Modifiers allow you to replace the usual start time for specific combinations of transitions."; /// public override int Index => 1; private readonly string[] ConvertedZeroes; /// public TransitionLibraryStartTimesPage() : base(Units.AnimationTimeAttribute.Units.Normalized) { TimeDrawer.Attribute.DisabledText = Strings.Tooltips.StartTimeDisabled; var converters = TimeDrawer.DisplayConverters; ConvertedZeroes = new string[converters.Length]; for (int i = 0; i < converters.Length; i++) ConvertedZeroes[i] = converters[i].ConvertedZero; } /// public override void ConfigureForSingleField(bool singleField, ref float value) { var isSingleFieldNaN = singleField && float.IsNaN(value); if (isSingleFieldNaN) value = 0; var converters = TimeDrawer.DisplayConverters; for (int i = 0; i < converters.Length; i++) { var converter = converters[i]; converter.ConvertedZero = isSingleFieldNaN ? Strings.Tooltips.StartTimeDisabled : ConvertedZeroes[i]; } } /// public override float GetValue(ITransition transition) => transition.NormalizedStartTime; /// public override float GetValue(TransitionModifierDefinition modifier) => modifier.NormalizedStartTime; /// public override void SetValue(ref TransitionModifierDefinition modifier, float value) => modifier = modifier.WithNormalizedStartTime(value); /************************************************************************************************************************/ } } #endif