Files
Ultimate-Fishing-Simulator-…/Assets/Scripts/Assembly-CSharp/UI_ChangeDayTime.cs
2026-03-04 09:37:33 +08:00

101 lines
1.9 KiB
C#

using Michsky.UI.Heat;
using Obvious.Soap;
using TMPro;
using UnityEngine;
public class UI_ChangeDayTime : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI timeText;
[SerializeField]
private SliderManager sliderManager;
[SerializeField]
private ModalWindowManager modalWindowManager;
public FloatVariable dayTime;
public BoolVariable isWindowButtonPressed;
public BoolVariable isDayTimeWindowEnabled;
private float _dayTime;
private bool _isEnabled;
private void Awake()
{
sliderManager.onValueChanged.AddListener(ChangeTime);
}
private void OnEnable()
{
isWindowButtonPressed.OnValueChanged += IsWindowButtonPressedOnOnValueChanged;
}
private void OnDisable()
{
isWindowButtonPressed.OnValueChanged -= IsWindowButtonPressedOnOnValueChanged;
}
private void IsWindowButtonPressedOnOnValueChanged(bool isPressed)
{
if (isPressed)
{
_isEnabled = true;
isDayTimeWindowEnabled.Value = true;
_dayTime = dayTime.Value;
modalWindowManager.OpenWindow();
sliderManager.mainSlider.value = _dayTime / 24f;
}
}
private void ChangeTime(float time)
{
if (time >= 24f)
{
sliderManager.mainSlider.value = 0f;
_dayTime = 0f;
}
else
{
_dayTime = time * 24f;
}
}
public void ApplyTime()
{
dayTime.Value = _dayTime;
DissmissWindow();
}
public void CancelTime()
{
_dayTime = dayTime.Value;
DissmissWindow();
}
private void DissmissWindow()
{
_isEnabled = false;
Time.timeScale = 1f;
isDayTimeWindowEnabled.Value = false;
modalWindowManager.CloseWindow();
Cursor.visible = false;
Cursor.lockState = CursorLockMode.Locked;
}
private void LateUpdate()
{
if (_isEnabled)
{
Cursor.visible = true;
Cursor.lockState = CursorLockMode.None;
Time.timeScale = 0f;
string text = ((int)_dayTime).ToString("D2") + ":" + ((int)((_dayTime - (float)(int)_dayTime) * 60f)).ToString("D2");
timeText.text = text;
}
}
}