-
Notifications
You must be signed in to change notification settings - Fork 0
/
ExamplePlugin.cs
37 lines (30 loc) · 1.59 KB
/
ExamplePlugin.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
using BepInEx;
using BepInEx.Configuration;
using BepInEx.Extensions.Configuration;
using BepInEx.Logging;
using System;
namespace ConfigModelTests.Example
{
/// <summary>
/// This is an example usage of the ConfigDataModel type and it's usages.
/// </summary>
[BepInPlugin("dev.cdmtests", "CDM Tests", "0.0.0")]
public class ExamplePlugin : BaseUnityPlugin
{
//NOTE: Before you read this, please take a look at the ExampleModel.cs file. The below will make a lot more sense if you do.
ExampleModel model;
void Awake()
{
//NOTE: Before you read this, please take a look at the ExampleModel.cs file. The below will make a lot more sense if you do.
model = Config.BindModel<ExampleModel>(Logger); //Initialized and ready to use.
Logger.LogInfo($"ExamplePlugin: model init completed.");
Logger.LogInfo($"ExamplePlugin: model.ConfigOption1={ model.ConfigOption1.Value }");
model.ConfigOption2.Value = 20f;
Logger.LogInfo($"ExamplePlugin: model.ConfigOption2={ (float) model.ConfigOption2 }"); //Explicit & implicit conversion is supported.
Logger.LogInfo($"ExamplePlugin: model.ConfigOption3={ (int) model.ConfigOption3 }"); //All defaults. Value = 0.
//Want to change config files for profile support?
ConfigFile profile2 = new ConfigFile(System.IO.Path.Combine(Paths.BepInExConfigPath, "ExamplePlugin", "profile2"), true);
model.SetConfigFile(profile2);
}
}
}