diff --git a/FrostyEditor/App.axaml b/FrostyEditor/App.axaml
index 557eded2e..6d0a05d8b 100644
--- a/FrostyEditor/App.axaml
+++ b/FrostyEditor/App.axaml
@@ -2,7 +2,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:FrostyEditor"
x:Class="FrostyEditor.App"
- Name="Notepad">
+ Name="FrostyEditor">
diff --git a/FrostyEditor/App.axaml.cs b/FrostyEditor/App.axaml.cs
index 67c58ce79..c3f5cb12d 100644
--- a/FrostyEditor/App.axaml.cs
+++ b/FrostyEditor/App.axaml.cs
@@ -34,12 +34,12 @@ public override void OnFrameworkInitializationCompleted()
{
case IClassicDesktopStyleApplicationLifetime desktopLifetime:
{
- ProfileSelectWindow selectWindow = new()
+ WelcomeWindow welcomeWindow = new()
{
- DataContext = new ProfileSelectWindowViewModel()
+ DataContext = new WelcomeWindowViewModel()
};
- desktopLifetime.MainWindow = selectWindow;
+ desktopLifetime.MainWindow = welcomeWindow;
break;
}
diff --git a/FrostyEditor/Assets/AppIcon.ico b/FrostyEditor/Assets/AppIcon.ico
new file mode 100644
index 000000000..f91b62a09
Binary files /dev/null and b/FrostyEditor/Assets/AppIcon.ico differ
diff --git a/FrostyEditor/Assets/FrostyLogo.svg b/FrostyEditor/Assets/FrostyLogo.svg
new file mode 100644
index 000000000..4fe447f8b
--- /dev/null
+++ b/FrostyEditor/Assets/FrostyLogo.svg
@@ -0,0 +1,13 @@
+
+
\ No newline at end of file
diff --git a/FrostyEditor/Assets/Profiles/Banners/Template.psd b/FrostyEditor/Assets/Profiles/Banners/Template.psd
new file mode 100644
index 000000000..e5685c3f6
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/Template.psd differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/anthem.png b/FrostyEditor/Assets/Profiles/Banners/anthem.png
new file mode 100644
index 000000000..070c3ac28
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/anthem.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/bf1.png b/FrostyEditor/Assets/Profiles/Banners/bf1.png
new file mode 100644
index 000000000..1bb6f90d8
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/bf1.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/bf2042.png b/FrostyEditor/Assets/Profiles/Banners/bf2042.png
new file mode 100644
index 000000000..f615e6950
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/bf2042.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/bf4.png b/FrostyEditor/Assets/Profiles/Banners/bf4.png
new file mode 100644
index 000000000..7c713b567
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/bf4.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/bfh.png b/FrostyEditor/Assets/Profiles/Banners/bfh.png
new file mode 100644
index 000000000..021342cd3
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/bfh.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/bfv.png b/FrostyEditor/Assets/Profiles/Banners/bfv.png
new file mode 100644
index 000000000..db8ab30c1
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/bfv.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/deadspace.png b/FrostyEditor/Assets/Profiles/Banners/deadspace.png
new file mode 100644
index 000000000..2b1e67bba
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/deadspace.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/dragonage.png b/FrostyEditor/Assets/Profiles/Banners/dragonage.png
new file mode 100644
index 000000000..5bfaba5cd
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/dragonage.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa17.png b/FrostyEditor/Assets/Profiles/Banners/fifa17.png
new file mode 100644
index 000000000..b9dcd9686
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa17.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa18.png b/FrostyEditor/Assets/Profiles/Banners/fifa18.png
new file mode 100644
index 000000000..d9183cd0d
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa18.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa19.png b/FrostyEditor/Assets/Profiles/Banners/fifa19.png
new file mode 100644
index 000000000..ae7f8c707
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa19.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa20.png b/FrostyEditor/Assets/Profiles/Banners/fifa20.png
new file mode 100644
index 000000000..18e6a2931
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa20.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa21.png b/FrostyEditor/Assets/Profiles/Banners/fifa21.png
new file mode 100644
index 000000000..b7725f763
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa21.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa22.png b/FrostyEditor/Assets/Profiles/Banners/fifa22.png
new file mode 100644
index 000000000..ef5af9072
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa22.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/fifa23.png b/FrostyEditor/Assets/Profiles/Banners/fifa23.png
new file mode 100644
index 000000000..f332a2732
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/fifa23.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/madden19.png b/FrostyEditor/Assets/Profiles/Banners/madden19.png
new file mode 100644
index 000000000..5819cab3a
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/madden19.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/madden20.png b/FrostyEditor/Assets/Profiles/Banners/madden20.png
new file mode 100644
index 000000000..05856cc0b
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/madden20.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/madden21.png b/FrostyEditor/Assets/Profiles/Banners/madden21.png
new file mode 100644
index 000000000..634684d3a
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/madden21.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/madden22.png b/FrostyEditor/Assets/Profiles/Banners/madden22.png
new file mode 100644
index 000000000..04f786524
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/madden22.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/madden23.png b/FrostyEditor/Assets/Profiles/Banners/madden23.png
new file mode 100644
index 000000000..49f150b6a
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/madden23.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/masseffect.png b/FrostyEditor/Assets/Profiles/Banners/masseffect.png
new file mode 100644
index 000000000..fcd3af41c
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/masseffect.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/mirrorsedge.png b/FrostyEditor/Assets/Profiles/Banners/mirrorsedge.png
new file mode 100644
index 000000000..a65c2eb71
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/mirrorsedge.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfs14.png b/FrostyEditor/Assets/Profiles/Banners/nfs14.png
new file mode 100644
index 000000000..412c997c1
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfs14.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfs16.png b/FrostyEditor/Assets/Profiles/Banners/nfs16.png
new file mode 100644
index 000000000..4ea424624
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfs16.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfs17.png b/FrostyEditor/Assets/Profiles/Banners/nfs17.png
new file mode 100644
index 000000000..dea5da9f3
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfs17.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfsedge.png b/FrostyEditor/Assets/Profiles/Banners/nfsedge.png
new file mode 100644
index 000000000..b704f2137
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfsedge.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfsheat.png b/FrostyEditor/Assets/Profiles/Banners/nfsheat.png
new file mode 100644
index 000000000..607d288ac
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfsheat.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/nfsunbound.png b/FrostyEditor/Assets/Profiles/Banners/nfsunbound.png
new file mode 100644
index 000000000..bae6f5bba
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/nfsunbound.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/pvz1.png b/FrostyEditor/Assets/Profiles/Banners/pvz1.png
new file mode 100644
index 000000000..0f616af9c
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/pvz1.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/pvz2.png b/FrostyEditor/Assets/Profiles/Banners/pvz2.png
new file mode 100644
index 000000000..3dd903f30
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/pvz2.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/pvz3.png b/FrostyEditor/Assets/Profiles/Banners/pvz3.png
new file mode 100644
index 000000000..a04674910
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/pvz3.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/starwars.png b/FrostyEditor/Assets/Profiles/Banners/starwars.png
new file mode 100644
index 000000000..6028ba1e6
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/starwars.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/starwarsii.png b/FrostyEditor/Assets/Profiles/Banners/starwarsii.png
new file mode 100644
index 000000000..ef04cd19f
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/starwarsii.png differ
diff --git a/FrostyEditor/Assets/Profiles/Banners/starwarsiii.png b/FrostyEditor/Assets/Profiles/Banners/starwarsiii.png
new file mode 100644
index 000000000..f3b090131
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Banners/starwarsiii.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/anthem.png b/FrostyEditor/Assets/Profiles/Icons/anthem.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/anthem.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/bf1.png b/FrostyEditor/Assets/Profiles/Icons/bf1.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/bf1.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/bf2042.png b/FrostyEditor/Assets/Profiles/Icons/bf2042.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/bf2042.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/bf4.png b/FrostyEditor/Assets/Profiles/Icons/bf4.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/bf4.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/bfh.png b/FrostyEditor/Assets/Profiles/Icons/bfh.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/bfh.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/bfv.png b/FrostyEditor/Assets/Profiles/Icons/bfv.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/bfv.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/deadspace.png b/FrostyEditor/Assets/Profiles/Icons/deadspace.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/deadspace.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/dragonage.png b/FrostyEditor/Assets/Profiles/Icons/dragonage.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/dragonage.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa17.png b/FrostyEditor/Assets/Profiles/Icons/fifa17.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa17.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa18.png b/FrostyEditor/Assets/Profiles/Icons/fifa18.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa18.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa19.png b/FrostyEditor/Assets/Profiles/Icons/fifa19.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa19.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa20.png b/FrostyEditor/Assets/Profiles/Icons/fifa20.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa20.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa21.png b/FrostyEditor/Assets/Profiles/Icons/fifa21.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa21.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa22.png b/FrostyEditor/Assets/Profiles/Icons/fifa22.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa22.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/fifa23.png b/FrostyEditor/Assets/Profiles/Icons/fifa23.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/fifa23.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/madden19.png b/FrostyEditor/Assets/Profiles/Icons/madden19.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/madden19.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/madden20.png b/FrostyEditor/Assets/Profiles/Icons/madden20.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/madden20.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/madden21.png b/FrostyEditor/Assets/Profiles/Icons/madden21.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/madden21.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/madden22.png b/FrostyEditor/Assets/Profiles/Icons/madden22.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/madden22.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/madden23.png b/FrostyEditor/Assets/Profiles/Icons/madden23.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/madden23.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/masseffect.png b/FrostyEditor/Assets/Profiles/Icons/masseffect.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/masseffect.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/mirrorsedge.png b/FrostyEditor/Assets/Profiles/Icons/mirrorsedge.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/mirrorsedge.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfs14.png b/FrostyEditor/Assets/Profiles/Icons/nfs14.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfs14.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfs16.png b/FrostyEditor/Assets/Profiles/Icons/nfs16.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfs16.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfs17.png b/FrostyEditor/Assets/Profiles/Icons/nfs17.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfs17.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfsedge.png b/FrostyEditor/Assets/Profiles/Icons/nfsedge.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfsedge.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfsheat.png b/FrostyEditor/Assets/Profiles/Icons/nfsheat.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfsheat.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/nfsunbound.png b/FrostyEditor/Assets/Profiles/Icons/nfsunbound.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/nfsunbound.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/pvz1.png b/FrostyEditor/Assets/Profiles/Icons/pvz1.png
new file mode 100644
index 000000000..5c29331b8
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/pvz1.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/pvz2.png b/FrostyEditor/Assets/Profiles/Icons/pvz2.png
new file mode 100644
index 000000000..6562e34e0
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/pvz2.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/pvz3.png b/FrostyEditor/Assets/Profiles/Icons/pvz3.png
new file mode 100644
index 000000000..c6f905f10
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/pvz3.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/starwars.png b/FrostyEditor/Assets/Profiles/Icons/starwars.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/starwars.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/starwarsii.png b/FrostyEditor/Assets/Profiles/Icons/starwarsii.png
new file mode 100644
index 000000000..edf85e5f3
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/starwarsii.png differ
diff --git a/FrostyEditor/Assets/Profiles/Icons/starwarsiii.png b/FrostyEditor/Assets/Profiles/Icons/starwarsiii.png
new file mode 100644
index 000000000..dc5d9f2a9
Binary files /dev/null and b/FrostyEditor/Assets/Profiles/Icons/starwarsiii.png differ
diff --git a/FrostyEditor/FrostyEditor.csproj b/FrostyEditor/FrostyEditor.csproj
index e46ba21f6..efae3dde2 100644
--- a/FrostyEditor/FrostyEditor.csproj
+++ b/FrostyEditor/FrostyEditor.csproj
@@ -4,17 +4,26 @@
net7.0
WinExe
False
+ disable
enable
+ Assets\AppIcon.ico
-
-
+
+
+
+
-
-
+
+
+
+
+
+
+
@@ -22,6 +31,7 @@
+
@@ -38,108 +48,18 @@
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
-
- PreserveNewest
-
+
+ ProfilesPage.axaml
+
+
+ ProjectsPage.axaml
+
+
+ TitleBar.axaml
+
+
+ WelcomeWindow.axaml
+
diff --git a/FrostyEditor/Languages/en-US.axaml b/FrostyEditor/Languages/en-US.axaml
index 3942532c6..41559bb01 100644
--- a/FrostyEditor/Languages/en-US.axaml
+++ b/FrostyEditor/Languages/en-US.axaml
@@ -1,14 +1,21 @@
+
+
+ Frosty Editor
+
File
Tools
Help
-
- Select
- Add
- Cancel
+
+ Welcome to Frosty Editor
+ Projects
+ Profiles
+ Search
+ Add
+ Delete
diff --git a/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml b/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml
new file mode 100644
index 000000000..b3ef6f282
--- /dev/null
+++ b/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml.cs b/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml.cs
new file mode 100644
index 000000000..c6f2e9bc2
--- /dev/null
+++ b/FrostyEditor/Pages/WelcomeWindow/ProfilesPage.axaml.cs
@@ -0,0 +1,18 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace FrostyEditor.Pages.WelcomeWindow;
+
+public partial class ProfilesPage : UserControl
+{
+ public ProfilesPage()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+}
\ No newline at end of file
diff --git a/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml b/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml
new file mode 100644
index 000000000..233c56008
--- /dev/null
+++ b/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml.cs b/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml.cs
new file mode 100644
index 000000000..d68c908ce
--- /dev/null
+++ b/FrostyEditor/Pages/WelcomeWindow/ProjectsPage.axaml.cs
@@ -0,0 +1,18 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace FrostyEditor.Pages.WelcomeWindow;
+
+public partial class ProjectsPage : UserControl
+{
+ public ProjectsPage()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+}
\ No newline at end of file
diff --git a/FrostyEditor/Themes/UserControls/TitleBar.axaml b/FrostyEditor/Themes/UserControls/TitleBar.axaml
new file mode 100644
index 000000000..10b18e167
--- /dev/null
+++ b/FrostyEditor/Themes/UserControls/TitleBar.axaml
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/FrostyEditor/Themes/UserControls/TitleBar.axaml.cs b/FrostyEditor/Themes/UserControls/TitleBar.axaml.cs
new file mode 100644
index 000000000..067b1e50c
--- /dev/null
+++ b/FrostyEditor/Themes/UserControls/TitleBar.axaml.cs
@@ -0,0 +1,29 @@
+using Avalonia;
+using Avalonia.Controls;
+using Avalonia.Markup.Xaml;
+
+namespace FrostyEditor.Themes.UserControls;
+
+public partial class TitleBar : UserControl
+{
+ public TitleBar()
+ {
+ InitializeComponent();
+ }
+
+ private void InitializeComponent()
+ {
+ AvaloniaXamlLoader.Load(this);
+ }
+
+ ///
+ /// This property show a string after title
+ ///
+ public string Description
+ {
+ get => GetValue(DescriptionProperty);
+ set => SetValue(DescriptionProperty, value);
+ }
+
+ public static readonly StyledProperty DescriptionProperty = AvaloniaProperty.Register(nameof(Description), defaultValue: "");
+}
\ No newline at end of file
diff --git a/FrostyEditor/Utils/BitmapAssetValueConverter.cs b/FrostyEditor/Utils/BitmapAssetValueConverter.cs
new file mode 100644
index 000000000..4040b5551
--- /dev/null
+++ b/FrostyEditor/Utils/BitmapAssetValueConverter.cs
@@ -0,0 +1,42 @@
+using Avalonia.Data.Converters;
+using Avalonia;
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using Avalonia.Media.Imaging;
+using Avalonia.Platform;
+
+namespace FrostyEditor.Utils
+{
+ ///
+ ///
+ /// Converts a string path to a bitmap asset.
+ ///
+ ///
+ /// The asset must be in the same assembly as the program. If it isn't,
+ /// specify "avares:///" in front of the path to the asset.
+ ///
+ ///
+ public class BitmapAssetValueConverter
+ {
+ public static BitmapAssetValueConverter Instance = new BitmapAssetValueConverter();
+
+ public object? Convert(string? rawUri)
+ {
+ if (rawUri is null)
+ {
+ return null;
+ }
+
+ Uri uri = new Uri(rawUri);
+
+ var asset = AssetLoader.Open(uri);
+
+ return new Bitmap(asset);
+ }
+ }
+}
diff --git a/FrostyEditor/Utils/Config.cs b/FrostyEditor/Utils/Config.cs
index 327ee6d4d..018f97f05 100644
--- a/FrostyEditor/Utils/Config.cs
+++ b/FrostyEditor/Utils/Config.cs
@@ -211,14 +211,12 @@ public static IEnumerable GameProfiles
///
/// The profile name.
/// The path to the game.
- public static void AddGame(string profile, string gamePath)
+ /// True if the game was added successfully.
+ public static bool AddGame(string profile, string gamePath)
{
s_current ??= new InternalConfig();
-
- if (!s_current.Games.ContainsKey(profile))
- {
- s_current.Games.Add(profile, new GameOptions(gamePath));
- }
+
+ return s_current.Games.TryAdd(profile, new GameOptions(gamePath));
}
///
@@ -585,4 +583,4 @@ public static void Load(string path)
s_current ??= new InternalConfig();
}
-}
\ No newline at end of file
+}
diff --git a/FrostyEditor/ViewModels/Windows/ProfileSelectWindowViewModel.cs b/FrostyEditor/ViewModels/Windows/WelcomeWindowViewModel.cs
similarity index 55%
rename from FrostyEditor/ViewModels/Windows/ProfileSelectWindowViewModel.cs
rename to FrostyEditor/ViewModels/Windows/WelcomeWindowViewModel.cs
index b959694fa..a1e5b26cd 100644
--- a/FrostyEditor/ViewModels/Windows/ProfileSelectWindowViewModel.cs
+++ b/FrostyEditor/ViewModels/Windows/WelcomeWindowViewModel.cs
@@ -15,13 +15,15 @@
namespace FrostyEditor.ViewModels.Windows;
-public partial class ProfileSelectWindowViewModel : ObservableObject
+public partial class WelcomeWindowViewModel : ObservableObject
{
public class ProfileConfig
{
public string Name { get; set; }
public string Key { get; set; }
public string Path { get; set; }
+ public object? Icon { get; set; }
+ public object? Banner { get; set; }
// if they would ever actually release non windows version we would need to change the extension here
public string FileName => System.IO.Path.Combine(Path, $"{Key}.exe");
@@ -31,6 +33,44 @@ public ProfileConfig(string inKey)
Key = inKey;
Path = Config.Get("GamePath", string.Empty, ConfigScope.Game, Key);
Name = ProfilesLibrary.GetDisplayName(Key) ?? Key;
+ Icon = BitmapAssetValueConverter.Instance.Convert($"avares://FrostyEditor/Assets/Profiles/Icons/{ProfilesLibrary.GetInternalName(inKey)}.png");
+ Banner = BitmapAssetValueConverter.Instance.Convert($"avares://FrostyEditor/Assets/Profiles/Banners/{ProfilesLibrary.GetInternalName(inKey)}.png");
+ // TODO: Add image for these png, they are placeholder now
+ // Assets/Profiles/Icons/
+ // anthem.png
+ // bf1.png
+ // bf4.png
+ // bf2042.png
+ // bfh.png
+ // bfv.png
+ // deadspace.png
+ // dragonage.png
+ // fifa17.png
+ // fifa18.png
+ // fifa19.png
+ // fifa20.png
+ // fifa21.png
+ // fifa22.png
+ // fifa23.png
+ // madden19.png
+ // madden20.png
+ // madden21.png
+ // madden22.png
+ // madden23.png
+ // masseffect.png
+ // mirrorsedge.png
+ // nfs14.png
+ // nfs16.png
+ // nfs17.png
+ // nfsedge.png
+ // nfsheat.png
+ // nfsunbound.png
+ // starwars.png
+ // starwarsiii.png
+
+ // TODO: Add image for these png, they are placeholder now
+ // Assets/Profiles/Banners/
+ // madden21.png
}
}
@@ -39,23 +79,25 @@ public ProfileConfig(string inKey)
public ObservableCollection Profiles { get; set; } = new();
- public ProfileSelectWindowViewModel()
+ public WelcomeWindowViewModel()
{
// init ProfilesLibrary to load all profile json files
ProfilesLibrary.Initialize();
-
+
+ Profiles.Clear();
foreach (string profile in Config.GameProfiles)
{
ProfileConfig config = new(profile);
if (File.Exists(config.FileName))
{
- Profiles.Add(config);
+ Profiles.Add(config);
}
else
{
Config.RemoveGame(profile);
}
}
+
Config.Save(App.ConfigPath);
}
@@ -76,12 +118,34 @@ private async Task AddProfile()
foreach (IStorageFile file in files)
{
string key = Path.GetFileNameWithoutExtension(file.Name);
- Config.AddGame(key, Path.GetDirectoryName(file.Path.LocalPath) ?? string.Empty);
- Profiles.Add(new ProfileConfig(key));
+
+ // Check if profile exists
+ if (!ProfilesLibrary.HasProfile(key))
+ {
+ // TODO: Add MessageBox
+ //FrostyMessageBox.Show($"There was an error when trying to load {key} using specified profile.", "Frosty Toolsuite");
+ continue;
+ }
+
+ if (Config.AddGame(key, Path.GetDirectoryName(file.Path.LocalPath) ?? string.Empty))
+ {
+ Profiles.Add(new ProfileConfig(key));
+ }
}
Config.Save(App.ConfigPath);
}
+ [RelayCommand]
+ private void DeleteProfile()
+ {
+ if (SelectedProfile is not null)
+ {
+ Config.RemoveGame(SelectedProfile.Key);
+ Profiles.Remove(SelectedProfile);
+ Config.Save(App.ConfigPath);
+ }
+ }
+
[RelayCommand]
private void SelectProfile()
{
@@ -115,4 +179,4 @@ private void Cancel()
desktopLifetime.MainWindow?.Close();
}
}
-}
\ No newline at end of file
+}
diff --git a/FrostyEditor/Views/Windows/ProfileSelectWindow.axaml b/FrostyEditor/Views/Windows/ProfileSelectWindow.axaml
deleted file mode 100644
index f99645287..000000000
--- a/FrostyEditor/Views/Windows/ProfileSelectWindow.axaml
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/FrostyEditor/Views/Windows/WelcomeWindow.axaml b/FrostyEditor/Views/Windows/WelcomeWindow.axaml
new file mode 100644
index 000000000..5f72685ee
--- /dev/null
+++ b/FrostyEditor/Views/Windows/WelcomeWindow.axaml
@@ -0,0 +1,69 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/FrostyEditor/Views/Windows/ProfileSelectWindow.axaml.cs b/FrostyEditor/Views/Windows/WelcomeWindow.axaml.cs
similarity index 77%
rename from FrostyEditor/Views/Windows/ProfileSelectWindow.axaml.cs
rename to FrostyEditor/Views/Windows/WelcomeWindow.axaml.cs
index 0675a6935..f77ebec39 100644
--- a/FrostyEditor/Views/Windows/ProfileSelectWindow.axaml.cs
+++ b/FrostyEditor/Views/Windows/WelcomeWindow.axaml.cs
@@ -4,9 +4,9 @@
namespace FrostyEditor.Views.Windows;
-public partial class ProfileSelectWindow : Window
+public partial class WelcomeWindow : Window
{
- public ProfileSelectWindow()
+ public WelcomeWindow()
{
InitializeComponent();
#if DEBUG
diff --git a/FrostySdk/ProfilesLibrary.cs b/FrostySdk/ProfilesLibrary.cs
index b85ade1e5..aefec1287 100644
--- a/FrostySdk/ProfilesLibrary.cs
+++ b/FrostySdk/ProfilesLibrary.cs
@@ -108,4 +108,9 @@ public static bool IsLoaded(params ProfileVersion[] versions)
{
return s_profiles.Find(a => a.Name.Equals(profileKey, StringComparison.OrdinalIgnoreCase))?.DisplayName;
}
+
+ public static string? GetInternalName(string profileKey)
+ {
+ return s_profiles.Find(a => a.Name.Equals(profileKey, StringComparison.OrdinalIgnoreCase))?.InternalName;
+ }
}
\ No newline at end of file