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; } } }