-
Notifications
You must be signed in to change notification settings - Fork 3
/
LiquidSaveData.cs
64 lines (53 loc) · 2.21 KB
/
LiquidSaveData.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
using Celeste;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using YamlDotNet.Serialization;
namespace Celeste.Mod.Liquid
{
// If no SettingName is applied, it defaults to
// modoptions_[typename without settings]_title
// The value is then used to look up the UI text in the dialog files.
// If no dialog text can be found, Everest shows a prettified mod name instead.
public class LiquidSaveData : EverestModuleSaveData
{
// SettingName also works on props, defaulting to
// modoptions_[typename without settings]_[propname]
// Solid ON / OFF property with a default value.
public bool SolidSwitch { get; set; } = false;
[SettingIgnore] // Hide from the options menu, but still load / save it.
public string SolidHidden { get; set; } = "";
[SettingRange(0, 10)] // Allow choosing a value from 0 (inclusive) to 10 (inclusive).
public int SolidSlider { get; set; } = 5;
[SettingRange(0, 10)]
[SettingInGame(false)] // Only show this in the main menu.
public int SolidMainMenuSlider { get; set; } = 5;
[SettingRange(0, 10)]
[SettingInGame(true)] // Only show this in the in-game menu.
public int SolidInGameSlider { get; set; } = 5;
[YamlIgnore] // Don't load / save it, but show it in the options menu.
[SettingNeedsRelaunch] // Tell the user to restart for changes to take effect.
public bool LaunchInDebugMode
{
get
{
return Settings.Instance.LaunchInDebugMode;
}
set
{
Settings.Instance.LaunchInDebugMode = value;
}
}
public int SomethingWeird { get; set; } = 42;
// Custom entry creation methods are always called Create[propname]Entry
// and offer an alternative to overriding CreateModMenuSection in your module class.
public void CreateSomethingWeirdEntry(TextMenu menu, bool inGame)
{
// Create your own menu entry here.
// Maybe you want to create a toggle for an int property?
}
}
}