Skip to content
This repository was archived by the owner on Feb 28, 2025. It is now read-only.

Commit 9e63990

Browse files
authored
Merge pull request #28 from Falki-git/snap-windows-and-rename-entries
Snap windows and rename entries
2 parents 5540ac0 + 2e2c90c commit 9e63990

File tree

13 files changed

+249
-127
lines changed

13 files changed

+249
-127
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2023 Micrologist
3+
Copyright (c) 2023 Micrologist, Falki-git
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

MicroEngineerProject/MicroEngineer/Entries/BaseEntry.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ public class BaseEntry
1111
[JsonProperty]
1212
public string Name;
1313
[JsonProperty]
14+
public Guid Id;
1415
public string Description;
1516
[JsonProperty]
1617
public MicroEntryCategory Category;

MicroEngineerProject/MicroEngineer/Managers/Manager.cs

Lines changed: 30 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,30 @@ namespace MicroMod
77
{
88
internal class Manager
99
{
10+
private static Manager _instance;
11+
1012
internal List<BaseWindow> Windows;
1113
internal List<BaseEntry> Entries;
12-
internal UI UI;
13-
internal MessageManager MessageManager;
14-
private MicroEngineerMod _plugin;
1514

1615
private static readonly ManualLogSource _logger = BepInEx.Logging.Logger.CreateLogSource("MicroEngineer.Manager");
1716

18-
internal Manager(MicroEngineerMod plugin)
17+
public List<string> TextFieldNames = new List<string>();
18+
19+
internal Manager()
1920
{
20-
_plugin = plugin;
2121
Entries = InitializeEntries();
2222
Windows = InitializeWindows();
23+
}
2324

24-
// Load window positions and states from disk, if file exists
25-
Utility.LoadLayout(Windows);
25+
public static Manager Instance
26+
{
27+
get
28+
{
29+
if (_instance == null)
30+
_instance = new Manager();
31+
32+
return _instance;
33+
}
2634
}
2735

2836
public void Update()
@@ -297,17 +305,28 @@ internal void ResetLayout()
297305
Entries.Clear();
298306
Entries = InitializeEntries();
299307
Windows = InitializeWindows();
300-
UI.Windows = Windows;
301-
MessageManager.Windows = Windows;
302308
}
303309

304310
internal void LoadLayout()
305311
{
306312
Utility.LoadLayout(Windows);
307-
UI.Windows = Windows;
308-
MessageManager.Windows = Windows;
309313
}
310314

311315
internal void SaveLayout() => Utility.SaveLayout(Windows);
316+
317+
public void PupulateTextFieldNames(List<BaseEntry> entries)
318+
{
319+
TextFieldNames.Clear();
320+
TextFieldNames.Add(Utility.InputDisableWindowAbbreviation);
321+
TextFieldNames.Add(Utility.InputDisableWindowName);
322+
323+
foreach (var entry in entries)
324+
{
325+
entry.Id = Guid.NewGuid();
326+
TextFieldNames.Add(entry.Id.ToString());
327+
}
328+
}
329+
330+
public void AddTextFieldName(string name) => TextFieldNames.Add(name);
312331
}
313332
}

MicroEngineerProject/MicroEngineer/Managers/MessageManager.cs

Lines changed: 27 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,25 +7,26 @@ namespace MicroMod
77
{
88
internal class MessageManager
99
{
10-
MicroEngineerMod _plugin;
11-
private Manager _manager;
12-
private UI _ui;
13-
internal List<BaseWindow> Windows;
10+
private static MessageManager _instance;
1411

15-
internal MessageManager(MicroEngineerMod plugin, Manager manager, UI ui)
12+
internal MessageManager()
13+
{ }
14+
15+
public static MessageManager Instance
1616
{
17-
_plugin = plugin;
18-
_manager = manager;
19-
_ui = ui;
20-
Windows = _manager.Windows;
17+
get
18+
{
19+
if (_instance == null)
20+
_instance = new MessageManager();
2121

22-
SubscribeToMessages();
22+
return _instance;
23+
}
2324
}
2425

2526
/// <summary>
2627
/// Subscribe to KSP2 messages
2728
/// </summary>
28-
internal void SubscribeToMessages()
29+
public void SubscribeToMessages()
2930
{
3031
Utility.RefreshGameManager();
3132

@@ -50,21 +51,21 @@ internal void SubscribeToMessages()
5051

5152
private void OnManeuverCreatedMessage(MessageCenterMessage message)
5253
{
53-
var maneuverWindow = Windows.Find(w => w.GetType() == typeof(ManeuverWindow)) as ManeuverWindow;
54+
var maneuverWindow = Manager.Instance.Windows.Find(w => w.GetType() == typeof(ManeuverWindow)) as ManeuverWindow;
5455
maneuverWindow.OnManeuverCreatedMessage(message);
5556
}
5657

5758
private void OnManeuverRemovedMessage(MessageCenterMessage message)
5859
{
59-
var maneuverWindow = Windows.Find(w => w.GetType() == typeof(ManeuverWindow)) as ManeuverWindow;
60+
var maneuverWindow = Manager.Instance.Windows.Find(w => w.GetType() == typeof(ManeuverWindow)) as ManeuverWindow;
6061
maneuverWindow.OnManeuverRemovedMessage(message);
6162
}
6263

6364
private void OnPartManipulationCompletedMessage(MessageCenterMessage obj)
6465
{
65-
EntryWindow stageInfoOabWindow = Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB);
66+
EntryWindow stageInfoOabWindow = Manager.Instance.Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB);
6667

67-
Torque torque = (Torque)Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB).Entries.Find(e => e.Name == "Torque");
68+
Torque torque = (Torque)Manager.Instance.Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB).Entries.Find(e => e.Name == "Torque");
6869
torque.RefreshData();
6970
}
7071

@@ -73,22 +74,20 @@ private void GameStateEntered(MessageCenterMessage obj)
7374
Utility.RefreshGameManager();
7475
if (Utility.GameState.GameState == GameState.FlightView || Utility.GameState.GameState == GameState.VehicleAssemblyBuilder || Utility.GameState.GameState == GameState.Map3DView)
7576
{
76-
Utility.LoadLayout(Windows);
77-
_manager.Windows = Windows;
78-
_ui.Windows = Windows;
77+
Utility.LoadLayout(Manager.Instance.Windows);
7978

8079
if (Utility.GameState.GameState == GameState.FlightView || Utility.GameState.GameState == GameState.Map3DView)
8180
{
82-
_ui.ShowGuiFlight = Windows.OfType<MainGuiWindow>().FirstOrDefault().IsFlightActive;
83-
GameObject.Find("BTN-MicroEngineerBtn")?.GetComponent<UIValue_WriteBool_Toggle>()?.SetValue(_ui.ShowGuiFlight);
81+
UI.Instance.ShowGuiFlight = Manager.Instance.Windows.OfType<MainGuiWindow>().FirstOrDefault().IsFlightActive;
82+
GameObject.Find("BTN-MicroEngineerBtn")?.GetComponent<UIValue_WriteBool_Toggle>()?.SetValue(UI.Instance.ShowGuiFlight);
8483
}
8584

8685
if (Utility.GameState.GameState == GameState.VehicleAssemblyBuilder)
8786
{
88-
_ui.ShowGuiOAB = Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB).IsEditorActive;
89-
GameObject.Find("BTN - MicroEngineerOAB")?.GetComponent<UIValue_WriteBool_Toggle>()?.SetValue(_ui.ShowGuiOAB);
90-
_ui.CelestialBodies.GetBodies();
91-
_ui.CelestialBodySelectionStageIndex = -1;
87+
UI.Instance.ShowGuiOAB = Manager.Instance.Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB).IsEditorActive;
88+
GameObject.Find("BTN - MicroEngineerOAB")?.GetComponent<UIValue_WriteBool_Toggle>()?.SetValue(UI.Instance.ShowGuiOAB);
89+
UI.Instance.CelestialBodies.GetBodies();
90+
UI.Instance.CelestialBodySelectionStageIndex = -1;
9291
Styles.SetActiveTheme(Theme.Gray); // TODO implement other themes in OAB
9392
}
9493
}
@@ -99,13 +98,13 @@ private void GameStateLeft(MessageCenterMessage obj)
9998
Utility.RefreshGameManager();
10099
if (Utility.GameState.GameState == GameState.FlightView || Utility.GameState.GameState == GameState.VehicleAssemblyBuilder || Utility.GameState.GameState == GameState.Map3DView)
101100
{
102-
Utility.SaveLayout(Windows);
101+
Utility.SaveLayout(Manager.Instance.Windows);
103102

104103
if (Utility.GameState.GameState == GameState.FlightView || Utility.GameState.GameState == GameState.Map3DView)
105-
_ui.ShowGuiFlight = false;
104+
UI.Instance.ShowGuiFlight = false;
106105

107106
if (Utility.GameState.GameState == GameState.VehicleAssemblyBuilder)
108-
_ui.ShowGuiOAB = false;
107+
UI.Instance.ShowGuiOAB = false;
109108
}
110109
}
111110

@@ -123,7 +122,7 @@ private void RefreshStagingDataOAB(MessageCenterMessage obj)
123122

124123
Utility.RefreshStagesOAB();
125124

126-
EntryWindow stageWindow = Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB);
125+
EntryWindow stageWindow = Manager.Instance.Windows.FindAll(w => w is EntryWindow).Cast<EntryWindow>().ToList().Find(w => w.MainWindow == MainWindow.StageInfoOAB);
127126

128127
if (Utility.VesselDeltaVComponentOAB?.StageInfo == null)
129128
{

0 commit comments

Comments
 (0)