-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathSettings.cs
82 lines (66 loc) · 3.52 KB
/
Settings.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*
* Settings.cs
* PerformanceMeter
*
* This file defines the settings panel controller.
*
* This code is licensed under the MIT license.
* Copyright (c) 2021-2022 JackMacWindows.
*/
using BeatSaberMarkupLanguage.Attributes;
using BeatSaberMarkupLanguage.Util;
using System.Collections.Generic;
using System.Linq;
namespace PerformanceMeter {
internal class Settings : PersistentSingleton<Settings> {
[UIValue("mode-options")]
public List<object> modeOptions = new object[] { "Energy", "Percentage (Modified)", "Percentage (Raw)", "Note Cut Value", "Average Cut Value" }.ToList();
[UIValue("secondary-mode-options")]
public List<object> secondaryModeOptions = new object[] { "Energy", "Percentage (Modified)", "Percentage (Raw)", "Note Cut Value", "Average Cut Value", "None" }.ToList();
[UIValue("side-options")]
public List<object> sideOptions = new object[] { "Left", "Right", "Both" }.ToList();
[UIValue("mode")]
public string listChoice = "Energy";
[UIValue("side")]
public string sideChoice = "Both";
[UIValue("secondaryMode")]
public string secondaryListChoice = "None";
[UIValue("secondarySide")]
public string secondarySideChoice = "Both";
[UIValue("enabled")]
public bool _enabled = PluginConfig.Instance.enabled;
[UIValue("showMisses")]
public bool showMisses = PluginConfig.Instance.showMisses;
[UIValue("animationDuration")]
public float animationDuration = PluginConfig.Instance.animationDuration;
[UIValue("overrideColor")]
public bool overrideColor = PluginConfig.Instance.overrideColor;
[UIValue("overrideSecondaryColor")]
public bool overrideSecondaryColor = PluginConfig.Instance.overrideSecondaryColor;
[UIValue("color")]
public UnityEngine.Color color = PluginConfig.Instance.color;
[UIValue("secondaryColor")]
public UnityEngine.Color secondaryColor = PluginConfig.Instance.secondaryColor;
[UIAction("#apply")]
public void OnApply() {
PluginConfig.Instance.enabled = _enabled;
PluginConfig.Instance.showMisses = showMisses;
PluginConfig.Instance.animationDuration = animationDuration;
PluginConfig.Instance.overrideColor = overrideColor;
PluginConfig.Instance.overrideSecondaryColor = overrideSecondaryColor;
PluginConfig.Instance.color = color;
PluginConfig.Instance.secondaryColor = secondaryColor;
PluginConfig.Instance.mode = (PluginConfig.MeasurementMode)modeOptions.FindIndex(a => a.ToString() == listChoice);
PluginConfig.Instance.secondaryMode = (PluginConfig.MeasurementMode)secondaryModeOptions.FindIndex(a => a.ToString() == secondaryListChoice);
PluginConfig.Instance.side = (PluginConfig.MeasurementSide)sideOptions.FindIndex(a => a.ToString() == sideChoice);
PluginConfig.Instance.secondarySide = (PluginConfig.MeasurementSide)sideOptions.FindIndex(a => a.ToString() == secondarySideChoice);
PluginConfig.Instance.Changed();
}
public Settings() {
listChoice = modeOptions[(int)PluginConfig.Instance.mode] as string;
sideChoice = sideOptions[(int)PluginConfig.Instance.side] as string;
secondaryListChoice = secondaryModeOptions[(int)PluginConfig.Instance.secondaryMode] as string;
secondarySideChoice = sideOptions[(int)PluginConfig.Instance.secondarySide] as string;
}
}
}