1
- #if ML
2
- using MelonLoader ;
3
- using System ;
4
- using System . Collections . Generic ;
5
- using System . Linq ;
6
- using System . Text ;
7
- using UnityEngine ;
8
- using UnityExplorer . Core ;
9
- using UnityExplorer . Core . Config ;
10
-
11
- namespace UnityExplorer . Loader . ML
12
- {
13
- public class MelonLoaderConfigHandler : ConfigHandler
14
- {
15
- internal const string CTG_NAME = "UnityExplorer" ;
16
-
17
- internal MelonPreferences_Category prefCategory ;
18
-
19
- public override void Init ( )
20
- {
21
- prefCategory = MelonPreferences . CreateCategory ( CTG_NAME , $ "{ CTG_NAME } Settings", false , true ) ;
22
- }
23
-
24
- public override void LoadConfig ( )
25
- {
26
- foreach ( var entry in ConfigManager . ConfigElements )
27
- {
28
- var key = entry . Key ;
29
- if ( prefCategory . GetEntry ( key ) is MelonPreferences_Entry )
30
- {
31
- var config = entry . Value ;
32
- config . BoxedValue = config . GetLoaderConfigValue ( ) ;
33
- }
34
- }
35
- }
36
-
37
- public override void RegisterConfigElement < T > ( ConfigElement < T > config )
38
- {
39
- var entry = prefCategory . CreateEntry ( config . Name , config . Value , null , config . Description , config . IsInternal , false ) ;
40
-
41
- entry . OnValueChangedUntyped += ( ) =>
42
- {
43
- if ( ( entry . Value == null && config . Value == null ) || config . Value . Equals ( entry . Value ) )
44
- return ;
45
-
46
- config . Value = entry . Value ;
47
- } ;
48
- }
49
-
50
- public override void SetConfigValue < T > ( ConfigElement < T > config , T value )
51
- {
52
- if ( prefCategory . GetEntry < T > ( config . Name ) is MelonPreferences_Entry < T > entry )
53
- {
54
- entry . Value = value ;
55
- //entry.Save();
56
- }
57
- }
58
-
59
- public override T GetConfigValue < T > ( ConfigElement < T > config )
60
- {
61
- if ( prefCategory . GetEntry < T > ( config . Name ) is MelonPreferences_Entry < T > entry )
62
- return entry . Value ;
63
-
64
- return default ;
65
- }
66
-
67
- public override void OnAnyConfigChanged ( )
68
- {
69
- }
70
-
71
- public override void SaveConfig ( )
72
- {
73
- MelonPreferences . Save ( ) ;
74
- }
75
- }
76
- }
1
+ #if ML
2
+ using MelonLoader ;
3
+ using System ;
4
+ using System . Collections . Generic ;
5
+ using System . Linq ;
6
+ using System . Text ;
7
+ using UnityEngine ;
8
+ using UnityExplorer . Core ;
9
+ using UnityExplorer . Core . Config ;
10
+
11
+ namespace UnityExplorer . Loader . ML
12
+ {
13
+ public class MelonLoaderConfigHandler : ConfigHandler
14
+ {
15
+ internal const string CTG_NAME = "UnityExplorer" ;
16
+
17
+ internal MelonPreferences_Category prefCategory ;
18
+
19
+ public override void Init ( )
20
+ {
21
+ prefCategory = MelonPreferences . CreateCategory ( CTG_NAME , $ "{ CTG_NAME } Settings", false , true ) ;
22
+ }
23
+
24
+ public override void LoadConfig ( )
25
+ {
26
+ foreach ( var entry in ConfigManager . ConfigElements )
27
+ {
28
+ var key = entry . Key ;
29
+ if ( prefCategory . GetEntry ( key ) is MelonPreferences_Entry )
30
+ {
31
+ var config = entry . Value ;
32
+ config . BoxedValue = config . GetLoaderConfigValue ( ) ;
33
+ }
34
+ }
35
+ }
36
+
37
+ public override void RegisterConfigElement < T > ( ConfigElement < T > config )
38
+ {
39
+ var entry = prefCategory . CreateEntry ( config . Name , config . Value , null , config . Description , config . IsInternal , false ) ;
40
+
41
+ entry . OnValueChangedUntyped += ( ) =>
42
+ {
43
+ if ( ( entry . Value == null && config . Value == null ) || config . Value . Equals ( entry . Value ) )
44
+ return ;
45
+
46
+ config . Value = entry . Value ;
47
+ } ;
48
+ }
49
+
50
+ public override void SetConfigValue < T > ( ConfigElement < T > config , T value )
51
+ {
52
+ if ( prefCategory . GetEntry < T > ( config . Name ) is MelonPreferences_Entry < T > entry )
53
+ {
54
+ entry . Value = value ;
55
+ //entry.Save();
56
+ }
57
+ }
58
+
59
+ public override T GetConfigValue < T > ( ConfigElement < T > config )
60
+ {
61
+ if ( prefCategory . GetEntry < T > ( config . Name ) is MelonPreferences_Entry < T > entry )
62
+ return entry . Value ;
63
+
64
+ return default ;
65
+ }
66
+
67
+ public override void OnAnyConfigChanged ( )
68
+ {
69
+ }
70
+
71
+ public override void SaveConfig ( )
72
+ {
73
+ MelonPreferences . Save ( ) ;
74
+ }
75
+ }
76
+ }
77
77
#endif
0 commit comments