-
Notifications
You must be signed in to change notification settings - Fork 0
/
Plugin.cs
61 lines (49 loc) · 2.16 KB
/
Plugin.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
//
// HOW TO USE
//
// 1. Add ResScaler.dll to your BepInEx\Plugins
// 2. Edit config file at BepInEx\config\ResScaler.cfg
// 3. Enjoy your 144p gaming
//
//
// EXAMPLE OF CONFIG FILE
// [Config]
// Windowed = false
// Width = 1920
// Height = 1080
//
using BepInEx;
using BepInEx.Configuration;
using UnityEngine;
namespace ResScaler;
[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
public class Plugin : BaseUnityPlugin
{
public ConfigDefinition WindowedEntry { get; } = new ConfigDefinition("Config", "Windowed");
public ConfigDefinition WidthEntry { get; } = new ConfigDefinition("Config", "Width");
public ConfigDefinition HeightEntry { get; } = new ConfigDefinition("Config", "Height");
private void Awake()
{
// Validate config
ValidateConfig();
// Parse resolution as int
int width = int.Parse(Config[WidthEntry].GetSerializedValue());
int height = int.Parse(Config[HeightEntry].GetSerializedValue());
// Parse windowed flag as bool
bool windowed = bool.Parse(Config[WindowedEntry].GetSerializedValue());
// Update resolution and fullscreen mode
Screen.SetResolution(width, height, !windowed);
#if DEBUG
Logger.LogDebug($"Your resolution: {width}x{height}; Display resolution: {Display.main.systemWidth}x{Display.main.systemHeight}; Windowed = {windowed}");
#endif
}
private void ValidateConfig()
{
if (!Config.ContainsKey(WindowedEntry))
Config.Bind(WindowedEntry, false, new ConfigDescription("Set windowed mode for game window", new AcceptableValueList<bool>(false, true)));
if (!Config.ContainsKey(WidthEntry))
Config.Bind(WidthEntry, Display.main.systemWidth, new ConfigDescription("Set game window width", new AcceptableValueRange<int>(1, Display.main.systemWidth)));
if (!Config.ContainsKey(HeightEntry))
Config.Bind(HeightEntry, Display.main.systemHeight, new ConfigDescription("Set game window height", new AcceptableValueRange<int>(1, Display.main.systemHeight)));
}
}