diff --git a/Launcher.Client.Avalonia/GUI/App.axaml b/Launcher.Client.Avalonia/GUI/App.axaml
index 5e919fe..0c1146d 100644
--- a/Launcher.Client.Avalonia/GUI/App.axaml
+++ b/Launcher.Client.Avalonia/GUI/App.axaml
@@ -18,7 +18,13 @@
-
+
diff --git a/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml
index 186e16a..9c2613b 100644
--- a/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml
+++ b/Launcher.Client.Avalonia/GUI/LauncherWindow.axaml
@@ -8,7 +8,7 @@
MinWidth="800"
MinHeight="500"
Background="{DynamicResource MyBackgroundColor}">
-
+
typeof(Button);
+
public static readonly StyledProperty TabGridProp = AvaloniaProperty.Register("TabGrid");
public Grid TabGrid
{
get => GetValue(TabGridProp);
set => SetValue(TabGridProp, value);
}
+
+ public TabButton() :base() {}
}
\ No newline at end of file
diff --git a/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj
index 1ad4f1c..f947b86 100644
--- a/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj
+++ b/Launcher.Client.Avalonia/Launcher.Client.Avalonia.csproj
@@ -16,18 +16,18 @@
-
-
+
+
-
+
-
-
-
-
+
+
+
+
@@ -46,7 +46,7 @@
-
+
diff --git a/Launcher.Client.Avalonia/LauncherMain.cs b/Launcher.Client.Avalonia/LauncherMain.cs
index 3f2deae..156340e 100644
--- a/Launcher.Client.Avalonia/LauncherMain.cs
+++ b/Launcher.Client.Avalonia/LauncherMain.cs
@@ -19,6 +19,7 @@ public static class LauncherMain
{
public static LauncherWindow CurrentLauncherWindow;
+ //it's being used by Avalonia xml preview
public static AppBuilder BuildAvaloniaApp() =>
AppBuilder.Configure()
.UsePlatformDetect()
@@ -29,7 +30,6 @@ public static class LauncherMain
try
{
LauncherClient.Init();
-
var traceHandler = new ConsoleTraceListener();
Trace.AutoFlush = true;
Trace.Listeners.Add(traceHandler);
diff --git a/Launcher.Client.WPF/Launcher.Client.WPF.csproj b/Launcher.Client.WPF/Launcher.Client.WPF.csproj
index 6e169a7..4a429a2 100644
--- a/Launcher.Client.WPF/Launcher.Client.WPF.csproj
+++ b/Launcher.Client.WPF/Launcher.Client.WPF.csproj
@@ -22,9 +22,9 @@
-
-
-
+
+
+
diff --git a/Launcher.Client/Launcher.Client.csproj b/Launcher.Client/Launcher.Client.csproj
index c48f9b3..3f41749 100644
--- a/Launcher.Client/Launcher.Client.csproj
+++ b/Launcher.Client/Launcher.Client.csproj
@@ -1,5 +1,5 @@
-
+
net6.0
disable
@@ -9,16 +9,19 @@
Debug;Release
AnyCPU
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Launcher.Client/LauncherClient.cs b/Launcher.Client/LauncherClient.cs
index 636ae8b..6515387 100644
--- a/Launcher.Client/LauncherClient.cs
+++ b/Launcher.Client/LauncherClient.cs
@@ -20,6 +20,14 @@ public static class LauncherClient
{
Logger.Log("launcher starting...");
Config = new LauncherConfig();
+#if DEBUG
+ const string debug_assets = "debug_assets";
+ foreach (string file in Directory.GetFiles(debug_assets))
+ File.Copy(file, file.Remove(0, file.LastIndexOf(Путь.Разд) + 1), true);
+ foreach (string subdir in Directory.GetDirectories(debug_assets))
+ Directory.Copy(subdir, subdir.Remove(0, subdir.LastIndexOf(Путь.Разд) + 1), true);
+ Directory.Delete(debug_assets);
+#endif
Directory.Create("descriptors");
Directory.Create("icons");
Directory.Create("backgrounds");
diff --git a/Launcher.Client/LauncherLogger.cs b/Launcher.Client/LauncherLogger.cs
index 7943a7d..da26876 100644
--- a/Launcher.Client/LauncherLogger.cs
+++ b/Launcher.Client/LauncherLogger.cs
@@ -2,7 +2,7 @@
namespace Launcher.Client;
-public class LauncherLogger : ConsoleLogger
+public class LauncherLogger : FileLogger
{
public const string LogfileDir = "launcher-logs";
public LauncherLogger() : base(LogfileDir,"launcher-client") {}
@@ -19,6 +19,7 @@ public class LauncherLogger : ConsoleLogger
{
base.Log(msg);
StringBuilder strb = new();
+ strb.Append('[').Append(LastLogMessageTime).Append("]: ");
if (msg.Length == 1) strb.Append(msg[0]);
else for (int i = 1; i < msg.Length; i += 2)
strb.Append(msg[i]);
diff --git a/Launcher.Client/Resources/default.descriptor.template b/Launcher.Client/Resources/default.descriptor.template
index 876af23..e0b52c9 100644
--- a/Launcher.Client/Resources/default.descriptor.template
+++ b/Launcher.Client/Resources/default.descriptor.template
@@ -1,6 +1,7 @@
-name: ""; #label, which displays in launcher
-directory: ""; #name of program' directory on server and client
+#descriptor_version: 3;
+name: ""; #label, which displays in launcher
description: ""; #desctiption, which displays in launcher
+directory: ""; #name of program directory on server and client
icon: ""; #name of the icon file
background: ""; #name of the background file
launchcommand: ""; #command, which starts the program
\ No newline at end of file
diff --git a/Launcher.Client/debug_assets/backgrounds/conan_exiles_background.png b/Launcher.Client/debug_assets/backgrounds/conan_exiles_background.png
new file mode 100644
index 0000000..7265fa4
Binary files /dev/null and b/Launcher.Client/debug_assets/backgrounds/conan_exiles_background.png differ
diff --git a/Launcher.Client/debug_assets/backgrounds/divinity2devcut_background.jpg b/Launcher.Client/debug_assets/backgrounds/divinity2devcut_background.jpg
new file mode 100644
index 0000000..545c9e9
Binary files /dev/null and b/Launcher.Client/debug_assets/backgrounds/divinity2devcut_background.jpg differ
diff --git a/Launcher.Client/debug_assets/descriptors/conan_exiles.desc b/Launcher.Client/debug_assets/descriptors/conan_exiles.desc
new file mode 100644
index 0000000..a29d4c4
--- /dev/null
+++ b/Launcher.Client/debug_assets/descriptors/conan_exiles.desc
@@ -0,0 +1,7 @@
+#descriptor_version: 3;
+name: "Conan Exiles";
+description: "Сурвайвл на анриале в сеттинге Конана Варвара.";
+directory: "conan_exiles";
+icon: "conan_exiles.png";
+background: "conan_exiles_background.png";
+launchcommand: "cmd /c echo hello && pause";
\ No newline at end of file
diff --git a/Launcher.Client/debug_assets/descriptors/divinity2devcut.desc b/Launcher.Client/debug_assets/descriptors/divinity2devcut.desc
new file mode 100644
index 0000000..183980f
--- /dev/null
+++ b/Launcher.Client/debug_assets/descriptors/divinity2devcut.desc
@@ -0,0 +1,7 @@
+#descriptor_version: 3;
+name: "Divinity 2 Developer's Cut";
+description: "РПГ от Larian. Вид от третьего лица, проработанный мир, интересная боёвка.";
+directory: "divinity2_devcut";
+icon: "divinity2devcut.png";
+background: "divinity2devcut_background.jpg";
+launchcommand: "";
diff --git a/Launcher.Client/debug_assets/fonts/fontinst.exe b/Launcher.Client/debug_assets/fonts/fontinst.exe
new file mode 100644
index 0000000..11b8fdd
Binary files /dev/null and b/Launcher.Client/debug_assets/fonts/fontinst.exe differ
diff --git a/Launcher.Client/debug_assets/fonts/fontinst.inf b/Launcher.Client/debug_assets/fonts/fontinst.inf
new file mode 100644
index 0000000..1579dbd
--- /dev/null
+++ b/Launcher.Client/debug_assets/fonts/fontinst.inf
@@ -0,0 +1,5 @@
+[fonts]
+unispace.ttf
+unispace_bd.ttf
+unispace_it.ttf
+unispace_bd_it.ttf
\ No newline at end of file
diff --git a/Launcher.Client/debug_assets/fonts/unispace.ttf b/Launcher.Client/debug_assets/fonts/unispace.ttf
new file mode 100644
index 0000000..66284c3
Binary files /dev/null and b/Launcher.Client/debug_assets/fonts/unispace.ttf differ
diff --git a/Launcher.Client/debug_assets/fonts/unispace_bd.ttf b/Launcher.Client/debug_assets/fonts/unispace_bd.ttf
new file mode 100644
index 0000000..89a1aad
Binary files /dev/null and b/Launcher.Client/debug_assets/fonts/unispace_bd.ttf differ
diff --git a/Launcher.Client/debug_assets/fonts/unispace_bd_it.ttf b/Launcher.Client/debug_assets/fonts/unispace_bd_it.ttf
new file mode 100644
index 0000000..b3b0816
Binary files /dev/null and b/Launcher.Client/debug_assets/fonts/unispace_bd_it.ttf differ
diff --git a/Launcher.Client/debug_assets/fonts/unispace_it.ttf b/Launcher.Client/debug_assets/fonts/unispace_it.ttf
new file mode 100644
index 0000000..1ce4ded
Binary files /dev/null and b/Launcher.Client/debug_assets/fonts/unispace_it.ttf differ
diff --git a/Launcher.Client/debug_assets/icons/conan_exiles.png b/Launcher.Client/debug_assets/icons/conan_exiles.png
new file mode 100644
index 0000000..8b34969
Binary files /dev/null and b/Launcher.Client/debug_assets/icons/conan_exiles.png differ
diff --git a/Launcher.Client/debug_assets/icons/divinity2devcut.png b/Launcher.Client/debug_assets/icons/divinity2devcut.png
new file mode 100644
index 0000000..7c9bf4d
Binary files /dev/null and b/Launcher.Client/debug_assets/icons/divinity2devcut.png differ
diff --git a/Launcher.Server/Launcher.Server.csproj b/Launcher.Server/Launcher.Server.csproj
index 964f1e2..80c9fea 100644
--- a/Launcher.Server/Launcher.Server.csproj
+++ b/Launcher.Server/Launcher.Server.csproj
@@ -12,9 +12,9 @@
-
-
-
+
+
+
diff --git a/dtlauncher.sln b/dtlauncher.sln
index 6b5e35f..790d434 100644
--- a/dtlauncher.sln
+++ b/dtlauncher.sln
@@ -17,6 +17,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client.Avalonia",
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Launcher.Client", "Launcher.Client\Launcher.Client.csproj", "{87427137-840D-4D09-A101-9481110682BD}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib", "..\DTLib\DTLib\DTLib.csproj", "{E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib.Dtsod", "..\DTLib\DTLib.Dtsod\DTLib.Dtsod.csproj", "{507C97A8-47ED-4271-952F-49883E508EA7}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DTLib.Network", "..\DTLib\DTLib.Network\DTLib.Network.csproj", "{5F53F49F-FFEA-4C2E-B21D-8E11363EA969}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -39,6 +45,18 @@ Global
{87427137-840D-4D09-A101-9481110682BD}.Debug|Any CPU.Build.0 = Debug|Any CPU
{87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.ActiveCfg = Release|Any CPU
{87427137-840D-4D09-A101-9481110682BD}.Release|Any CPU.Build.0 = Release|Any CPU
+ {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {E27F82A6-B58F-4C07-8DAB-F1556F24F5E0}.Release|Any CPU.Build.0 = Release|Any CPU
+ {507C97A8-47ED-4271-952F-49883E508EA7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {507C97A8-47ED-4271-952F-49883E508EA7}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {507C97A8-47ED-4271-952F-49883E508EA7}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {507C97A8-47ED-4271-952F-49883E508EA7}.Release|Any CPU.Build.0 = Release|Any CPU
+ {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {5F53F49F-FFEA-4C2E-B21D-8E11363EA969}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE