-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRiskOfOptionsMod.cs
81 lines (68 loc) · 2.78 KB
/
RiskOfOptionsMod.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
using System;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx.Bootstrap;
using BepInEx.Configuration;
using UnityEngine;
using RiskOfOptions;
using RiskOfOptions.Options;
using RiskOfOptions.OptionConfigs;
namespace BanditWeaponModes
{
static class RiskOfOptionsMod
{
private static bool? _enabled;
internal static bool enabled
{
get
{
if (_enabled == null)
{
_enabled = Chainloader.PluginInfos.ContainsKey("com.rune580.riskofoptions");
}
return (bool)_enabled;
}
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
internal static void Init (string description)
{
ModSettingsManager.SetModDescription(description);
using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("icon")) {
Texture2D texture = new Texture2D(0, 0);
byte[] imgData = new byte[stream.Length];
stream.Read(imgData, 0, (int) stream.Length);
if (ImageConversion.LoadImage(texture, imgData))
{
ModSettingsManager.SetModIcon(
Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0, 0))
);
}
}
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
internal static void AddCheckboxOption(ConfigEntry<bool> configEntry)
{
ModSettingsManager.AddOption(new CheckBoxOption(configEntry));
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
internal static void AddStepSliderOption(ConfigEntry<float> configEntry, float min, float max, float step)
{
StepSliderConfig config = new StepSliderConfig();
config.min = min;
config.max = max;
config.increment = step;
ModSettingsManager.AddOption(new StepSliderOption(configEntry, config));
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
internal static void AddChoiceOption<T>(ConfigEntry<T> configEntry) where T : Enum
{
ModSettingsManager.AddOption(new ChoiceOption(configEntry));
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
internal static void AddKeyBindOption(ConfigEntry<KeyboardShortcut> configEntry)
{
ModSettingsManager.AddOption(new KeyBindOption(configEntry));
}
}
}