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+ }
7777#endif
0 commit comments