Skip to content

Commit f02d4c3

Browse files
committed
v1.2 Keyboard Shortcuts
- Strings can now be read properly - Keyboard Shortcuts settings are now displayed in-game. Setting gets changed through string - May now display settings that it can't read properly. (This is a good thing)
1 parent 85f6c4a commit f02d4c3

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

DistanceModConfigurationManager/DistanceGUI/Controls/InputPrompt.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ namespace DistanceModConfigurationManager.DistanceGUI.Controls
77
public class InputPrompt : MenuItemBase
88
{
99
public string Title { get; set; }
10+
public string CurrentValue { get; set; }
11+
1012
public Func<string> DefaultValue { get; set; }
1113
public Func<string, string> Validator { get; set; }
1214
public Action<string> SubmitAction { get; set; }
@@ -17,6 +19,11 @@ public InputPrompt WithTitle(string title)
1719
Title = title ?? string.Empty;
1820
return this;
1921
}
22+
public InputPrompt WithCurrentValue(string currentValue)
23+
{
24+
CurrentValue = currentValue ?? string.Empty;
25+
return this;
26+
}
2027
public InputPrompt WithDefaultValue(string defaultValue)
2128
{
2229
DefaultValue = () => defaultValue;
@@ -49,6 +56,7 @@ protected virtual bool OnSubmit(out string error, string input)
4956
if (error == null)
5057
{
5158
SubmitAction?.Invoke(input);
59+
CurrentValue = input;
5260
return true;
5361
}
5462

@@ -64,7 +72,7 @@ protected virtual void OnTweak()
6472
new InputPromptPanel.OnSubmit(OnSubmit),
6573
new InputPromptPanel.OnPop(OnCancel),
6674
Title,
67-
DefaultValue()
75+
CurrentValue == string.Empty ? DefaultValue() : CurrentValue
6876
);
6977
}
7078
public override void Tweak(ModdingMenu menu)

DistanceModConfigurationManager/Plugin.cs

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public sealed class Mod : BaseUnityPlugin
2020
//Mod Details
2121
private const string modGUID = "Distance.DistanceModConfigurationManager";
2222
private const string modName = "Distance Mod Configuration Manager";
23-
public const string modVersion = "1.1.1";
23+
public const string modVersion = "1.2.0";
2424

2525
//Config Entry Settings
2626
public static string ShowVersionKey = "Show Version Info";
@@ -149,10 +149,10 @@ private void AddFilteredSettingsToMenu()
149149
foreach(var setting in plugin.Settings)
150150
{
151151
//For now, just skipping keyboard shortcuts entirely
152-
if (typeof(KeyboardShortcut) != setting.SettingType)
153-
{
152+
//if (typeof(KeyboardShortcut) != setting.SettingType)
153+
//{
154154
settingsMenu.Add(CreateUIForSetting(setting));
155-
}
155+
//}
156156
}
157157

158158
Menus.AddNew(MenuDisplayMode.Both, settingsMenu, plugin.Info.Name.ToUpper(), $"Settings for the {plugin.Info.Name} mod");
@@ -234,6 +234,15 @@ private MenuItemBase CreateUIForSetting(SettingEntryBase setting)
234234
.WithDescription($"{setting.Description}");
235235
}
236236

237+
if (typeof(KeyboardShortcut) == setting.SettingType)
238+
{
239+
return new InputPrompt(MenuDisplayMode.Both, $"settings:{Regex.Replace(setting.DispName, @"\s+", "_").ToLower()}", setting.DispName.ToUpper())
240+
.WithDefaultValue(setting.DefaultValue.ToString())
241+
.WithTitle(setting.DispName)
242+
.WithSubmitAction((x) => setting.Set(KeyboardShortcut.Deserialize(x)))
243+
.WithDescription($"{setting.Description}");
244+
}
245+
237246
Logger.LogInfo($"Could not properly display {setting.DispName} in the menu");
238247
//This doesn't even display lmao
239248
return new EmptyElement(MenuDisplayMode.Both, $"settings:{Regex.Replace(setting.DispName, @"\s+", "_").ToLower()}", setting.DispName.ToUpper())

0 commit comments

Comments
 (0)