summaryrefslogtreecommitdiff
path: root/GameCode/Optionshandler.cs
diff options
context:
space:
mode:
authorchai <215380520@qq.com>2023-10-27 11:05:14 +0800
committerchai <215380520@qq.com>2023-10-27 11:05:14 +0800
commit766cdff5ffa72b65d7f106658d1603f47739b2ba (patch)
tree34d7799a94dfa9be182825577583c0fa6dc935f7 /GameCode/Optionshandler.cs
+ init
Diffstat (limited to 'GameCode/Optionshandler.cs')
-rw-r--r--GameCode/Optionshandler.cs187
1 files changed, 187 insertions, 0 deletions
diff --git a/GameCode/Optionshandler.cs b/GameCode/Optionshandler.cs
new file mode 100644
index 0000000..21130c1
--- /dev/null
+++ b/GameCode/Optionshandler.cs
@@ -0,0 +1,187 @@
+using SoundImplementation;
+using UnityEngine;
+
+public class Optionshandler : MonoBehaviour
+{
+ public enum FullScreenOption
+ {
+ FullScreen,
+ WindowedFullScreen,
+ MaximizedWindow,
+ Windowed
+ }
+
+ public static Resolution resolution;
+
+ public static float vol_Master;
+
+ public static float vol_Sfx;
+
+ public static float vol_Music;
+
+ public static FullScreenOption fullScreen;
+
+ public static bool characterPattrens;
+
+ public static bool mapPatterns;
+
+ public static bool vSync;
+
+ public static bool leftStickAim;
+
+ public static bool lockMouse;
+
+ public static bool showCardStatNumbers;
+
+ public static bool lockStick;
+
+ public static Optionshandler instance;
+
+ private void Start()
+ {
+ instance = this;
+ LoadOptions();
+ ApplyOptions();
+ }
+
+ private void LoadOptions()
+ {
+ vol_Master = PlayerPrefs.GetFloat("Vol_Master", 1f);
+ vol_Sfx = PlayerPrefs.GetFloat("vol_Sfx", 1f);
+ vol_Music = PlayerPrefs.GetFloat("vol_Music", 1f);
+ resolution.width = PlayerPrefs.GetInt("res_X", 0);
+ resolution.height = PlayerPrefs.GetInt("res_Y", 0);
+ fullScreen = (FullScreenOption)PlayerPrefs.GetInt("fullScreen", 1);
+ characterPattrens = GetBool(PlayerPrefs.GetInt("characterPattrens", 1));
+ mapPatterns = GetBool(PlayerPrefs.GetInt("mapPatterns", 1));
+ leftStickAim = GetBool(PlayerPrefs.GetInt("leftStickAim", 1));
+ vSync = GetBool(PlayerPrefs.GetInt("vSync", 0));
+ lockStick = GetBool(PlayerPrefs.GetInt("lockStick", 0));
+ lockMouse = GetBool(PlayerPrefs.GetInt("lockMouse", 0));
+ showCardStatNumbers = GetBool(PlayerPrefs.GetInt("showCardStatNumbers", 0));
+ if (resolution.height == 0 || resolution.width == 0)
+ {
+ resolution = Screen.currentResolution;
+ SaveOptions();
+ }
+ else
+ {
+ ApplyOptions();
+ }
+ }
+
+ private void SaveOptions()
+ {
+ PlayerPrefs.SetFloat("Vol_Master", vol_Master);
+ PlayerPrefs.SetFloat("vol_Sfx", vol_Sfx);
+ PlayerPrefs.SetFloat("vol_Music", vol_Music);
+ PlayerPrefs.SetInt("res_X", resolution.width);
+ PlayerPrefs.SetInt("res_Y", resolution.height);
+ PlayerPrefs.SetInt("fullScreen", (int)fullScreen);
+ PlayerPrefs.SetInt("characterPattrens", GetInt(characterPattrens));
+ PlayerPrefs.SetInt("mapPatterns", GetInt(mapPatterns));
+ PlayerPrefs.SetInt("leftStickAim", GetInt(leftStickAim));
+ PlayerPrefs.SetInt("vSync", GetInt(vSync));
+ PlayerPrefs.SetInt("lockMouse", GetInt(lockMouse));
+ PlayerPrefs.SetInt("lockStick", GetInt(lockStick));
+ PlayerPrefs.SetInt("showCardStatNumbers", GetInt(showCardStatNumbers));
+ ApplyOptions();
+ }
+
+ private void ApplyOptions()
+ {
+ Screen.SetResolution(resolution.width, resolution.height, (FullScreenMode)fullScreen);
+ QualitySettings.vSyncCount = (vSync ? 1 : 0);
+ SoundVolumeManager.Instance.SetAudioMixerVolumes(vol_Master, vol_Music, vol_Sfx);
+ }
+
+ private bool GetBool(int value)
+ {
+ if (value != 1)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ private int GetInt(bool value)
+ {
+ if (!value)
+ {
+ return 0;
+ }
+ return 1;
+ }
+
+ public void SetResolution(Resolution resolutionToSet)
+ {
+ resolution = resolutionToSet;
+ SaveOptions();
+ }
+
+ public void SetVSync(bool vSyncToSet)
+ {
+ vSync = vSyncToSet;
+ SaveOptions();
+ }
+
+ public void SetVolMaster(float vol_Master_ToSet)
+ {
+ vol_Master = vol_Master_ToSet;
+ SaveOptions();
+ }
+
+ public void SetVolSFX(float vol_SFX_ToSet)
+ {
+ vol_Sfx = vol_SFX_ToSet;
+ SaveOptions();
+ }
+
+ public void SetVolMusic(float vol_Music_ToSet)
+ {
+ vol_Music = vol_Music_ToSet;
+ SaveOptions();
+ }
+
+ public void SetCharacterPatterns(bool characterPatternsToSet)
+ {
+ characterPattrens = characterPatternsToSet;
+ SaveOptions();
+ }
+
+ public void SetMapPatterns(bool mapPatternsToSet)
+ {
+ mapPatterns = mapPatternsToSet;
+ SaveOptions();
+ }
+
+ public void SetLeftStickAim(bool leftStickAimToSet)
+ {
+ leftStickAim = leftStickAimToSet;
+ SaveOptions();
+ }
+
+ public void lockMouseAim(bool setLockMouse)
+ {
+ lockMouse = setLockMouse;
+ SaveOptions();
+ }
+
+ public void lockStickAim(bool setLockStick)
+ {
+ lockStick = setLockStick;
+ SaveOptions();
+ }
+
+ public void SetShowCardStatNumbers(bool showCardStatNumbersToSet)
+ {
+ showCardStatNumbers = showCardStatNumbersToSet;
+ SaveOptions();
+ }
+
+ public void SetFullScreen(FullScreenOption fullscreenToSet)
+ {
+ fullScreen = fullscreenToSet;
+ SaveOptions();
+ }
+}