aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ShiftOS.WinForms/FakeSetupScreen.cs11
-rw-r--r--ShiftOS.WinForms/WinformsDesktop.cs138
-rw-r--r--ShiftOS_TheReturn/Shiftorium.cs19
3 files changed, 95 insertions, 73 deletions
diff --git a/ShiftOS.WinForms/FakeSetupScreen.cs b/ShiftOS.WinForms/FakeSetupScreen.cs
index 6831f5e..8bde718 100644
--- a/ShiftOS.WinForms/FakeSetupScreen.cs
+++ b/ShiftOS.WinForms/FakeSetupScreen.cs
@@ -27,10 +27,13 @@ namespace ShiftOS.WinForms
SetupUI();
ServerManager.MessageReceived += (msg) =>
{
- if (msg.Name == "mud_notfound")
- this.Invoke(new Action(() => { MUDUserFound?.Invoke(false); }));
- else if (msg.Name == "mud_found")
- this.Invoke(new Action(() => { MUDUserFound?.Invoke(true); }));
+ if (this.Visible == true)
+ {
+ if (msg.Name == "mud_notfound")
+ this.Invoke(new Action(() => { MUDUserFound?.Invoke(false); }));
+ else if (msg.Name == "mud_found")
+ this.Invoke(new Action(() => { MUDUserFound?.Invoke(true); }));
+ }
};
}
diff --git a/ShiftOS.WinForms/WinformsDesktop.cs b/ShiftOS.WinForms/WinformsDesktop.cs
index 63cdcfa..93e290d 100644
--- a/ShiftOS.WinForms/WinformsDesktop.cs
+++ b/ShiftOS.WinForms/WinformsDesktop.cs
@@ -128,67 +128,70 @@ namespace ShiftOS.WinForms
public void PopulatePanelButtons()
{
panelbuttonholder.Controls.Clear();
- if (Shiftorium.UpgradeInstalled("wm_panel_buttons"))
+ if (Shiftorium.IsInitiated == true)
{
- foreach (WindowBorder form in Engine.AppearanceManager.OpenForms)
+ if (Shiftorium.UpgradeInstalled("wm_panel_buttons"))
{
- if (form != null)
+ foreach (WindowBorder form in Engine.AppearanceManager.OpenForms)
{
- if (form.Visible == true)
+ if (form != null)
{
- EventHandler onClick = (o, a) =>
+ if (form.Visible == true)
{
- if(form == focused)
+ EventHandler onClick = (o, a) =>
{
- if (form.IsMinimized)
+ if (form == focused)
{
- RestoreWindow(form);
+ if (form.IsMinimized)
+ {
+ RestoreWindow(form);
+ }
+ else
+ {
+ MinimizeWindow(form);
+ }
}
else
{
- MinimizeWindow(form);
+ form.BringToFront();
+ focused = form;
}
+ };
+
+ var pnlbtn = new Panel();
+ pnlbtn.Margin = new Padding(2, LoadedSkin.PanelButtonFromTop, 0, 0);
+ pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
+ pnlbtn.BackgroundImage = GetImage("panelbutton");
+ pnlbtn.BackgroundImageLayout = GetImageLayout("panelbutton");
+
+ var pnlbtntext = new Label();
+ pnlbtntext.Text = NameChangerBackend.GetName(form.ParentWindow);
+ pnlbtntext.AutoSize = true;
+ pnlbtntext.Location = LoadedSkin.PanelButtonFromLeft;
+ pnlbtntext.ForeColor = LoadedSkin.PanelButtonTextColor;
+ pnlbtntext.Font = LoadedSkin.PanelButtonFont;
+ pnlbtntext.BackColor = Color.Transparent;
+
+ pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
+ if (pnlbtn.BackgroundImage != null)
+ {
+ pnlbtntext.BackColor = Color.Transparent;
}
- else
+ pnlbtn.Size = LoadedSkin.PanelButtonSize;
+ pnlbtn.Tag = "keepbg";
+ pnlbtntext.Tag = "keepbg";
+ pnlbtn.Controls.Add(pnlbtntext);
+ this.panelbuttonholder.Controls.Add(pnlbtn);
+ pnlbtn.Show();
+ pnlbtntext.Show();
+
+ if (Shiftorium.UpgradeInstalled("useful_panel_buttons"))
{
- form.BringToFront();
- focused = form;
+ pnlbtn.Click += onClick;
+ pnlbtntext.Click += onClick;
}
- };
-
- var pnlbtn = new Panel();
- pnlbtn.Margin = new Padding(2, LoadedSkin.PanelButtonFromTop, 0, 0);
- pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
- pnlbtn.BackgroundImage = GetImage("panelbutton");
- pnlbtn.BackgroundImageLayout = GetImageLayout("panelbutton");
-
- var pnlbtntext = new Label();
- pnlbtntext.Text = NameChangerBackend.GetName(form.ParentWindow);
- pnlbtntext.AutoSize = true;
- pnlbtntext.Location = LoadedSkin.PanelButtonFromLeft;
- pnlbtntext.ForeColor = LoadedSkin.PanelButtonTextColor;
- pnlbtntext.Font = LoadedSkin.PanelButtonFont;
- pnlbtntext.BackColor = Color.Transparent;
-
- pnlbtn.BackColor = LoadedSkin.PanelButtonColor;
- if (pnlbtn.BackgroundImage != null)
- {
- pnlbtntext.BackColor = Color.Transparent;
+ SetCursors(pnlbtn);
}
- pnlbtn.Size = LoadedSkin.PanelButtonSize;
- pnlbtn.Tag = "keepbg";
- pnlbtntext.Tag = "keepbg";
- pnlbtn.Controls.Add(pnlbtntext);
- this.panelbuttonholder.Controls.Add(pnlbtn);
- pnlbtn.Show();
- pnlbtntext.Show();
-
- if (Shiftorium.UpgradeInstalled("useful_panel_buttons"))
- {
- pnlbtn.Click += onClick;
- pnlbtntext.Click += onClick;
- }
- SetCursors(pnlbtn);
}
}
}
@@ -210,7 +213,7 @@ namespace ShiftOS.WinForms
//upgrades
- if (SaveSystem.CurrentSave != null)
+ if (Shiftorium.IsInitiated == true)
{
desktoppanel.Visible = Shiftorium.UpgradeInstalled("desktop");
lbtime.Visible = Shiftorium.UpgradeInstalled("desktop_clock_widget");
@@ -327,34 +330,41 @@ namespace ShiftOS.WinForms
foreach(var kv in sortedItems)
{
- if (Shiftorium.UpgradeInstalled("app_launcher_categories"))
+ if (Shiftorium.IsInitiated == true)
{
- var cat = GetALCategoryWithName(kv.Key);
- foreach(var subItem in kv.Value)
+ if (Shiftorium.UpgradeInstalled("app_launcher_categories"))
{
- cat.DropDownItems.Add(subItem);
+ var cat = GetALCategoryWithName(kv.Key);
+ foreach (var subItem in kv.Value)
+ {
+ cat.DropDownItems.Add(subItem);
+ }
}
- }
- else
- {
- foreach(var subItem in kv.Value)
+
+ else
{
- apps.DropDownItems.Add(subItem);
+ foreach (var subItem in kv.Value)
+ {
+ apps.DropDownItems.Add(subItem);
+ }
}
}
}
- if (Shiftorium.UpgradeInstalled("al_shutdown"))
+ if (Shiftorium.IsInitiated == true)
{
- apps.DropDownItems.Add(new ToolStripSeparator());
- var item = new ToolStripMenuItem();
- item.Text = Localization.Parse("{SHUTDOWN}");
- item.Click += (o, a) =>
+ if (Shiftorium.UpgradeInstalled("al_shutdown"))
{
- TerminalBackend.InvokeCommand("sos.shutdown");
- };
- apps.DropDownItems.Add(item);
+ apps.DropDownItems.Add(new ToolStripSeparator());
+ var item = new ToolStripMenuItem();
+ item.Text = Localization.Parse("{SHUTDOWN}");
+ item.Click += (o, a) =>
+ {
+ TerminalBackend.InvokeCommand("sos.shutdown");
+ };
+ apps.DropDownItems.Add(item);
+ }
}
}
diff --git a/ShiftOS_TheReturn/Shiftorium.cs b/ShiftOS_TheReturn/Shiftorium.cs
index 06a189f..4e31427 100644
--- a/ShiftOS_TheReturn/Shiftorium.cs
+++ b/ShiftOS_TheReturn/Shiftorium.cs
@@ -191,19 +191,18 @@ namespace ShiftOS.Engine
{
if (SaveSystem.CurrentSave != null)
{
- if (SaveSystem.CurrentSave.Upgrades == null)
+ if (!IsInitiated)
Init();
}
try
{
return SaveSystem.CurrentSave.Upgrades[id];
}
- catch (Exception ex)
+ catch
{
- if(LogOrphanedUpgrades == true)
- Console.WriteLine($"WHOA, Developers! Upgrade ID '{id}' is unaccounted for in the Shiftorium.txt resource!");
- return false;
+ throw new ShiftoriumUpgradeLookupException(id);
}
+
}
//LEAVE THIS AS FALSE. The game will set it when the save is loaded.
@@ -238,6 +237,16 @@ namespace ShiftOS.Engine
List<ShiftoriumUpgrade> GetDefaults();
}
+ public class ShiftoriumUpgradeLookupException : Exception
+ {
+ public ShiftoriumUpgradeLookupException(string id) : base("A shiftorium upgrade of ID \"" + id + "\" was not found in the system.")
+ {
+ ID = id;
+ }
+
+ public string ID { get; private set; }
+ }
+
public class ShiftoriumUpgrade
{
public string Name { get; set; }