2025-08-22 14:54:40 -04:00
|
|
|
using System.Collections;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using Michsky.MUIP;
|
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace Ichni.UI
|
|
|
|
|
{
|
|
|
|
|
public class Dropdown : SettingsUIElementBase
|
|
|
|
|
{
|
|
|
|
|
public List<string> options;
|
|
|
|
|
public CustomDropdown dropdown;
|
|
|
|
|
public int selectedIndex;
|
|
|
|
|
public string selectedOption;
|
|
|
|
|
|
2026-07-19 16:44:58 -04:00
|
|
|
public void SetUp(int initialValue, List<string> options, string title = "", bool preservePrefabTitle = false)
|
2025-08-22 14:54:40 -04:00
|
|
|
{
|
2026-07-19 16:44:58 -04:00
|
|
|
base.SetUp(title, preservePrefabTitle: preservePrefabTitle);
|
2025-08-22 14:54:40 -04:00
|
|
|
|
|
|
|
|
this.options = options;
|
|
|
|
|
this.dropdown.items = new List<CustomDropdown.Item>();
|
|
|
|
|
foreach (string option in options)
|
|
|
|
|
{
|
|
|
|
|
dropdown.items.Add(new CustomDropdown.Item { itemName = option });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
dropdown.onValueChanged.AddListener(value =>
|
|
|
|
|
{
|
|
|
|
|
SetValue(value);
|
|
|
|
|
updateValueAction?.Invoke();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
SetValue(initialValue);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public int GetOptionIndex(string option)
|
|
|
|
|
{
|
|
|
|
|
return options.IndexOf(option);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void SetValue(int index)
|
|
|
|
|
{
|
|
|
|
|
selectedIndex = index;
|
|
|
|
|
selectedOption = options[selectedIndex];
|
|
|
|
|
dropdown.selectedItemIndex = selectedIndex;
|
|
|
|
|
dropdown.UpdateItemLayout();
|
|
|
|
|
}
|
|
|
|
|
}
|
2026-07-19 16:44:58 -04:00
|
|
|
}
|