72 lines
2.3 KiB
C#
72 lines
2.3 KiB
C#
using Terrain;
|
|
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.SceneManagement;
|
|
using UnityEngine.UI;
|
|
|
|
namespace UI.Menu {
|
|
public class TitleMenu : MonoBehaviour {
|
|
|
|
private Settings _settings;
|
|
|
|
public GameObject mainMenu;
|
|
public GameObject settingsMenu;
|
|
|
|
[Header("Main Menu UI Elements")]
|
|
public TextMeshProUGUI seedField;
|
|
|
|
[Header("Settings Menu UI Elements")]
|
|
public Slider viewDistanceSlider;
|
|
public TextMeshProUGUI viewDistanceText;
|
|
public Slider mouseSensitivitySlider;
|
|
public TextMeshProUGUI mouseSensitivityText;
|
|
public Toggle threadingToggle;
|
|
public Toggle chunkAnimateToggle;
|
|
public TMP_Dropdown clouds;
|
|
|
|
private void Awake() {
|
|
_settings = Settings.Load("settings.json");
|
|
}
|
|
|
|
public void StartGame() {
|
|
WorldData.Seed = Mathf.Abs(seedField.text.GetHashCode()) / WorldData.WorldSizeInChunks;
|
|
|
|
SceneManager.LoadScene("Game");
|
|
}
|
|
|
|
public void QuitGame() {
|
|
Application.Quit();
|
|
}
|
|
|
|
public void EnterSettings() {
|
|
UpdateUI();
|
|
threadingToggle.isOn = _settings.enableThreading;
|
|
chunkAnimateToggle.isOn = _settings.enableChunkLoadingAnimation;
|
|
viewDistanceSlider.value = _settings.viewDistance;
|
|
mouseSensitivitySlider.value = _settings.mouseSensitivity;
|
|
clouds.value = _settings.clouds;
|
|
|
|
mainMenu.SetActive(false);
|
|
settingsMenu.SetActive(true);
|
|
}
|
|
|
|
public void ExitSettings() {
|
|
_settings.viewDistance = (int)viewDistanceSlider.value;
|
|
_settings.mouseSensitivity = mouseSensitivitySlider.value;
|
|
_settings.enableThreading = threadingToggle.isOn;
|
|
_settings.enableChunkLoadingAnimation = chunkAnimateToggle.isOn;
|
|
_settings.clouds = clouds.value;
|
|
World.Settings = _settings;
|
|
_settings.Save("settings.json");
|
|
|
|
mainMenu.SetActive(true);
|
|
settingsMenu.SetActive(false);
|
|
}
|
|
|
|
public void UpdateUI() {
|
|
viewDistanceText.text = "View Distance: " + viewDistanceSlider.value;
|
|
mouseSensitivityText.text = "Mouse Sensitivity: " + mouseSensitivitySlider.value.ToString("F1");
|
|
}
|
|
|
|
}
|
|
} |