using System.Collections; using System.Collections.Generic; using System.Linq; using Ichni.RhythmGame; using TMPro; using UnityEngine; namespace Ichni.Editor { public class DynamicUICustomCurveWrapModeUnit : DynamicUICompositeUnit { public TMP_Dropdown preWrapModeDropdown; public TMP_Dropdown postWrapModeDropdown; public override void SetUnit(CompositeParameterWindow window, object itemContent) { compositeParameterWindow = window; WarpModes warpModes = (WarpModes)itemContent; List enumNameList = System.Enum.GetNames(typeof(WrapMode)).ToList(); preWrapModeDropdown.ClearOptions(); preWrapModeDropdown.AddOptions(enumNameList); preWrapModeDropdown.value = (int)warpModes.preWrapMode; postWrapModeDropdown.ClearOptions(); postWrapModeDropdown.AddOptions(enumNameList); postWrapModeDropdown.value = (int)warpModes.postWrapMode; preWrapModeDropdown.onValueChanged.AddListener(_ => compositeParameterWindow.ApplyParameters()); postWrapModeDropdown.onValueChanged.AddListener(_ => compositeParameterWindow.ApplyParameters()); removeButton.onClick.AddListener(() => { compositeParameterWindow.RemoveUnit(this); compositeParameterWindow.ApplyParameters(); }); } public WarpModes GetValue() { return new WarpModes((WrapMode)preWrapModeDropdown.value, (WrapMode)postWrapModeDropdown.value); } } public struct WarpModes { public WrapMode preWrapMode; public WrapMode postWrapMode; public WarpModes(WrapMode preWrapMode, WrapMode postWrapMode) { this.preWrapMode = preWrapMode; this.postWrapMode = postWrapMode; } } }