45 lines
1.1 KiB
C#
45 lines
1.1 KiB
C#
using Michsky.MUIP;
|
|
|
|
namespace Ichni.UI
|
|
{
|
|
public class Switch : SettingsUIElementBase
|
|
{
|
|
public bool value;
|
|
public SwitchManager switchManager;
|
|
private bool _isValueChangeListenerRegistered;
|
|
|
|
public void SetUp(bool initialValue, bool preservePrefabTitle = true)
|
|
{
|
|
base.SetUp(preservePrefabTitle);
|
|
|
|
if (!_isValueChangeListenerRegistered)
|
|
{
|
|
switchManager.onValueChanged.AddListener(OnSwitchValueChanged);
|
|
_isValueChangeListenerRegistered = true;
|
|
}
|
|
|
|
SetValue(initialValue);
|
|
}
|
|
|
|
private void OnSwitchValueChanged(bool isOn)
|
|
{
|
|
value = isOn;
|
|
updateValueAction?.Invoke();
|
|
}
|
|
|
|
public void SetValue(bool value)
|
|
{
|
|
this.value = value;
|
|
switchManager.isOn = value;
|
|
if (switchManager.isInitialized){
|
|
switchManager.UpdateUI();
|
|
}
|
|
}
|
|
|
|
public bool GetValue()
|
|
{
|
|
return value;
|
|
}
|
|
}
|
|
}
|