diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/BaseGame.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/BaseGame.cs index 391c2e4..10d3aa5 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/BaseGame.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/BaseGame.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public class BaseGame : Game { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/DrawVertDeclaration.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/DrawVertDeclaration.cs index ce79d64..9802609 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/DrawVertDeclaration.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/DrawVertDeclaration.cs @@ -1,6 +1,7 @@ +using ImGuiNET; using Microsoft.Xna.Framework.Graphics; -namespace ImGuiNET.SampleProgram.XNA +namespace skyscraper8.UI.MonoGame.Bridge { public static class DrawVertDeclaration { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/FpsCounterWindow.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/FpsCounterWindow.cs index 85e78fd..972b7c1 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/FpsCounterWindow.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/FpsCounterWindow.cs @@ -1,9 +1,8 @@ using ImGuiNET; -using ImGuiNET.SampleProgram.XNA; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace MgExample.Bridges; +namespace skyscraper8.UI.MonoGame.Bridge; public class FpsCounterWindow : ImGuiRenderable, GameObject { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/GameObject.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/GameObject.cs index 07efc72..0527828 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/GameObject.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/GameObject.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public interface GameObject { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderable.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderable.cs index e6aff5e..3e32f1f 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderable.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderable.cs @@ -1,4 +1,4 @@ -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public interface ImGuiRenderable : IDisposable { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderer.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderer.cs index 7439250..5e846d7 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderer.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ImGuiRenderer.cs @@ -1,11 +1,10 @@ +using System.Runtime.InteropServices; +using ImGuiNET; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; -namespace ImGuiNET.SampleProgram.XNA +namespace skyscraper8.UI.MonoGame.Bridge { /// /// ImGui renderer for use with XNA-likes (FNA & MonoGame) diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/IqWindow.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/IqWindow.cs index 7940649..41f9cf5 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/IqWindow.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/IqWindow.cs @@ -1,7 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public class IqWindow : TextureDisplayWindow { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/RandomExtension.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/RandomExtension.cs index e1200a1..921915b 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/RandomExtension.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/RandomExtension.cs @@ -1,4 +1,4 @@ -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public static class RandomExtension { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ScottPlotWindow.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ScottPlotWindow.cs index f812ee8..76c1c4f 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ScottPlotWindow.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ScottPlotWindow.cs @@ -3,7 +3,7 @@ using Microsoft.Xna.Framework.Graphics; using ScottPlot; using SkiaSharp; -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public class ScottPlotWindow : TextureDisplayWindow { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/TextureDisplayWindow.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/TextureDisplayWindow.cs index 9d3ba92..ef0059e 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/TextureDisplayWindow.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/TextureDisplayWindow.cs @@ -1,8 +1,8 @@ using System.Numerics; +using ImGuiNET; using Microsoft.Xna.Framework.Graphics; -using ScottPlot.Plottables; -namespace ImGuiNET.SampleProgram.XNA; +namespace skyscraper8.UI.MonoGame.Bridge; public class TextureDisplayWindow : ImGuiRenderable { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/Ziggurat.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/Ziggurat.cs index 9c4fc3a..446ad3b 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/Ziggurat.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/Ziggurat.cs @@ -1,9 +1,12 @@ -namespace ConsoleApp1.Math; +using System.Diagnostics; +using System.Runtime.CompilerServices; + +namespace skyscraper8.UI.MonoGame.Bridge; //This one is heavily inspired from https://github.com/colgreen/Redzen/blob/main/Redzen/Numerics/Distributions/Double/ZigguratGaussian.cs //To understand how this algorithm works, please read those Github comments. -using System.Diagnostics; -using System.Runtime.CompilerServices; + + public class Ziggurat { const int __blockCount = 128; diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ZigguratStream.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ZigguratStream.cs index 787613d..91de304 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ZigguratStream.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/ZigguratStream.cs @@ -1,7 +1,6 @@ using System.Diagnostics; -using ConsoleApp1.Math; -namespace ConsoleApp1.IO; +namespace skyscraper8.UI.MonoGame.Bridge; public class ZigguratStream : Stream { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/skyscraper8.UI.ImGui.MonoGame.Bridge.csproj b/GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/skyscraper8.UI.MonoGame.Bridge.csproj similarity index 100% rename from GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/skyscraper8.UI.ImGui.MonoGame.Bridge.csproj rename to GUIs/skyscraper8.UI.ImGui.MonoGame.Bridge/skyscraper8.UI.MonoGame.Bridge.csproj diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Forms/AboutWindow.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Forms/AboutWindow.cs new file mode 100644 index 0000000..8db12d9 --- /dev/null +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Forms/AboutWindow.cs @@ -0,0 +1,75 @@ +using ImGuiNET; +using Microsoft.Xna.Framework; +using skyscraper8.UI.MonoGame.Bridge; +using System; +using System.Reflection; + +namespace skyscraper8.UI.MonoGame.Forms +{ + internal class AboutWindow : ImGuiRenderable + { + public AboutWindow() + { + open = true; + if (version == null) + { + Type gameType = typeof(Game); + Assembly assembly = gameType.Assembly; + object[] attributes = assembly.GetCustomAttributes(false); + foreach (object attribute in attributes) + { + if (attribute.GetType() == typeof(AssemblyFileVersionAttribute)) + { + AssemblyFileVersionAttribute ava = (AssemblyFileVersionAttribute)attribute; + version = Version.Parse((ReadOnlySpan)ava.Version); + } + } + } + typeof(AboutWindow).Module.GetPEKind(out peKind, out machine); + } + + private PortableExecutableKinds peKind; + private ImageFileMachine machine; + private bool open; + private static Version version; + + + public void Dispose() + { + } + + public void Update() + { + } + + public void Render() + { + ImGui.Begin("About skyscraper8", ref open, ImGuiWindowFlags.AlwaysVerticalScrollbar); + ImGui.Text("skyscraper8, written by Feyris-Tan"); + ImGui.Spacing(); + + ImGui.Text(String.Format("Using MonoGame {0}", version.ToString())); + ImGui.Text(String.Format("Using Dear ImGUI {0}", ImGui.GetVersion())); + ImGui.Text(String.Format("Using StreamReader.dll by crazycat69")); + ImGui.Spacing(); + + ImGui.Text(String.Format("The currently executing image file is for {0} processors.", machine.ToString())); + ImGui.Text(String.Format("You are running an {0}-bit operating system.", Environment.Is64BitOperatingSystem ? 64 : 32)); + ImGui.Text(String.Format("This is a {0}-bit process.", Environment.Is64BitProcess ? 64 : 32)); + if (Environment.Is64BitProcess) + { + ImGui.Text(String.Format("Please remember that StreamReader.dll requires a 32-bit context.")); + ImGui.Text("Consider using Remote Stream Reader"); + } + + if (ImGui.Button("OK")) + open = false; + ImGui.End(); + } + + public bool WasClosed() + { + return !open; + } + } +} diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Program.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Program.cs index a851edb..2027c57 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Program.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Program.cs @@ -1,6 +1,4 @@ -using skyscraper8.UI.ImGui.MonoGame; - -namespace moe.yo3explorer.skyscraper8.UI.MonoGame +namespace skyscraper8.UI.MonoGame { class Program { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/0_Blank.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/0_Blank.cs index 1e64dfd..d938914 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/0_Blank.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/0_Blank.cs @@ -1,14 +1,9 @@ -using Microsoft.Xna.Framework; +using System.ComponentModel; +using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using skyscraper5.Skyscraper.Plugins; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { [PluginPriority(0)] [DisplayName("Blank")] diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/1_YourWaifu.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/1_YourWaifu.cs index be14392..256b694 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/1_YourWaifu.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/1_YourWaifu.cs @@ -1,16 +1,10 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Reflection.Metadata.Ecma335; -using System.Text; -using System.Threading.Tasks; -using ImGuiNET.SampleProgram.XNA; +using System.ComponentModel; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using skyscraper5.Skyscraper.Plugins; +using skyscraper8.UI.MonoGame.Bridge; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { [PluginPriority(1)] [DisplayName("Your Waifu")] diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/2_Substrate.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/2_Substrate.cs index 1784512..63c3233 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/2_Substrate.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/2_Substrate.cs @@ -1,15 +1,10 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +using System.ComponentModel; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using skyscraper5.Skyscraper.Plugins; using Color = System.Drawing.Color; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { [PluginPriority(2)] [DisplayName("Substrate")] diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/IScreenhack.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/IScreenhack.cs index 37334dd..c23d9a7 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/IScreenhack.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/IScreenhack.cs @@ -1,12 +1,7 @@ using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { internal interface IScreenhack : IDisposable { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/Processing.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/Processing.cs index 011bdce..74005d4 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/Processing.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/Processing.cs @@ -1,12 +1,6 @@ using Microsoft.Xna.Framework; -using Microsoft.Xna.Framework.Graphics; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { internal abstract class Processing { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackException.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackException.cs index 60cbb29..f7367ff 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackException.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackException.cs @@ -1,10 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { public class ScreenhackException : Exception { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackManager.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackManager.cs index b71e422..79b159c 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackManager.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/Screenhacks/ScreenhackManager.cs @@ -1,15 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text; -using System.Threading.Tasks; -using ImGuiNET.SampleProgram.XNA; +using System.Reflection; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Graphics; using skyscraper5.Skyscraper.Plugins; +using skyscraper8.UI.MonoGame.Bridge; -namespace skyscraper8.UI.ImGui.MonoGame.Screenhacks +namespace skyscraper8.UI.MonoGame.Screenhacks { internal class ScreenhackManager : GameObject { diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/SkyscraperGame.cs b/GUIs/skyscraper8.UI.ImGui.MonoGame/SkyscraperGame.cs index 7877a15..28ce49b 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/SkyscraperGame.cs +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/SkyscraperGame.cs @@ -1,14 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using ImGuiNET; -using ImGuiNET.SampleProgram.XNA; +using ImGuiNET; using Microsoft.Xna.Framework; -using skyscraper8.UI.ImGui.MonoGame.Screenhacks; +using skyscraper8.UI.MonoGame.Bridge; +using skyscraper8.UI.MonoGame.Forms; +using skyscraper8.UI.MonoGame.Screenhacks; -namespace moe.yo3explorer.skyscraper8.UI.MonoGame +namespace skyscraper8.UI.MonoGame { internal class SkyscraperGame : BaseGame { @@ -28,8 +24,50 @@ namespace moe.yo3explorer.skyscraper8.UI.MonoGame base.Draw(gameTime); } + private void EnqueueUpdateJob(Action a) + { + if (updateJobs == null) + updateJobs = new Queue(); + updateJobs.Enqueue(a); + } + + private Queue updateJobs; + + protected override void Update(GameTime gameTime) + { + if (updateJobs != null) + { + while (updateJobs.Count > 0) + { + Action action = updateJobs.Dequeue(); + action(); + } + } + base.Update(gameTime); + } + + private bool MenuTest(int opcode) + { + switch (opcode) + { + case 1: + if (aboutWindow != null) + { + if (!aboutWindow.WasClosed()) + return false; + } + + return true; + default: + Console.WriteLine("MenuTest Opcode {0} not implemented!"); + return false; + } + } + + private AboutWindow aboutWindow; protected override void ImGuiLayout() { + ImGui.BeginMainMenuBar(); if (ImGui.BeginMenu("Jobs")) { @@ -48,6 +86,19 @@ namespace moe.yo3explorer.skyscraper8.UI.MonoGame } ImGui.EndMenu(); } + + if (ImGui.BeginMenu("Help")) + { + if (ImGui.MenuItem("About",MenuTest(1))) + { + EnqueueUpdateJob(() => + { + aboutWindow = new AboutWindow(); + _imGuiRenderables.Add(aboutWindow); + }); + } + ImGui.EndMenu(); + } ImGui.EndMainMenuBar(); base.ImGuiLayout(); diff --git a/GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.ImGui.MonoGame.csproj b/GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.MonoGame.csproj similarity index 88% rename from GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.ImGui.MonoGame.csproj rename to GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.MonoGame.csproj index 506f2e9..145f664 100644 --- a/GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.ImGui.MonoGame.csproj +++ b/GUIs/skyscraper8.UI.ImGui.MonoGame/skyscraper8.UI.MonoGame.csproj @@ -9,7 +9,7 @@ - + diff --git a/GUIs/skyscraper8.UI.ImGui/skyscraper8.UI.ImGui.SDL2.csproj b/GUIs/skyscraper8.UI.ImGui/skyscraper8.UI.SDL2.csproj similarity index 100% rename from GUIs/skyscraper8.UI.ImGui/skyscraper8.UI.ImGui.SDL2.csproj rename to GUIs/skyscraper8.UI.ImGui/skyscraper8.UI.SDL2.csproj diff --git a/skyscraper8.sln b/skyscraper8.sln index 4770684..adbd0ab 100644 --- a/skyscraper8.sln +++ b/skyscraper8.sln @@ -57,15 +57,15 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UIs", "UIs", "{E23457C5-3A3 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper5.UI.WindowsForms", "GUIs\skyscraper5.UI\skyscraper5.UI.WindowsForms.csproj", "{46CACA1C-F9B2-2FE0-2068-716F381325E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.ImGui.SDL2", "GUIs\skyscraper8.UI.ImGui\skyscraper8.UI.ImGui.SDL2.csproj", "{BDBDB7A9-D0A4-9B89-0801-2935B2066551}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.SDL2", "GUIs\skyscraper8.UI.ImGui\skyscraper8.UI.SDL2.csproj", "{BDBDB7A9-D0A4-9B89-0801-2935B2066551}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.EPGCollectorPort", "PrivateDataSpecifiers\skyscraper8.EPGCollectorPort\skyscraper8.EPGCollectorPort.csproj", "{CF21D250-9804-4191-89F5-95821E3AF39D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.AnagramViewer", "GUIs\skyscraper8.AnagramViewer\skyscraper8.AnagramViewer.csproj", "{EBB6B1CF-2597-4962-AA31-2B42B4C28C7D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.ImGui.MonoGame", "GUIs\skyscraper8.UI.ImGui.MonoGame\skyscraper8.UI.ImGui.MonoGame.csproj", "{839C3783-020F-77D6-C22C-D50DCC97CDD6}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.MonoGame", "GUIs\skyscraper8.UI.ImGui.MonoGame\skyscraper8.UI.MonoGame.csproj", "{839C3783-020F-77D6-C22C-D50DCC97CDD6}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.ImGui.MonoGame.Bridge", "GUIs\skyscraper8.UI.ImGui.MonoGame.Bridge\skyscraper8.UI.ImGui.MonoGame.Bridge.csproj", "{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "skyscraper8.UI.MonoGame.Bridge", "GUIs\skyscraper8.UI.ImGui.MonoGame.Bridge\skyscraper8.UI.MonoGame.Bridge.csproj", "{1A29F6E6-4B6A-DCCD-1DF1-AA8D020E17D2}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution