0
0
mirror of https://github.com/sp-tarkov/launcher.git synced 2025-02-12 14:50:43 -05:00

Rebrand - part 1 - waffle dont hate me

This commit is contained in:
CWX 2024-05-21 20:15:19 +01:00
parent 9c09546d79
commit 5e38d97a8b
136 changed files with 505 additions and 530 deletions

View File

@ -1,8 +1,8 @@
# NCSA Open Source License
Copyright (c) 2022 SPT-AKI. All rights reserved.
Copyright (c) 2022 SPT. All rights reserved.
Developed by: SPT-AKI
Developed by: SPT
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@ -18,7 +18,7 @@ this list of conditions and the following disclaimers.
this list of conditions and the following disclaimers in the documentation
and/or other materials provided with the distribution.
* Neither the names of SPT-AKI, nor the names of its contributors may be used
* Neither the names of SPT, nor the names of its contributors may be used
to endorse or promote products derived from this Software without specific
prior written permission.

View File

@ -4,10 +4,10 @@ Custom launcher for Escape From Tarkov to start the game in offline mode
**Project** | **Function**
------------------ | --------------------------------------------
Aki.Build | Build script
Aki.ByteBanger | Assembly-CSharp.dll patcher
Aki.Launcher | Launcher frontend
Aki.Launcher.Base | Launcher backend
SPT.Build | Build script
SPT.ByteBanger | Assembly-CSharp.dll patcher
SPT.Launcher | Launcher frontend
SPT.Launcher.Base | Launcher backend
## Privacy
SPT is an open source project. Your commit credentials as author of a commit will be visible by anyone. Please make sure you understand this before submitting a PR.

View File

@ -1,7 +0,0 @@
namespace Aki.Launcher.Models.Aki
{
public class AkiData
{
public string version { get; set; }
}
}

View File

@ -5,7 +5,7 @@
}
],
"settings": {
"window.title": "SPT-AKI Launcher"
"window.title": "SPT Launcher"
},
"extensions": {
"recommendations": [

View File

@ -3,13 +3,13 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.32014.148
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aki.ByteBanger", "Aki.ByteBanger\Aki.ByteBanger.csproj", "{4B1F5C39-92C9-41DC-820C-E0EC3500E400}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SPT.ByteBanger", "SPT.ByteBanger\SPT.ByteBanger.csproj", "{4B1F5C39-92C9-41DC-820C-E0EC3500E400}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aki.Build", "Aki.Build\Aki.Build.csproj", "{A8A96141-291E-44B7-A074-4B240274083C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SPT.Build", "SPT.Build\SPT.Build.csproj", "{A8A96141-291E-44B7-A074-4B240274083C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aki.Launcher.Base", "Aki.Launcher.Base\Aki.Launcher.Base.csproj", "{1DD556B6-45FF-43B6-A1CA-2590F270304C}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SPT.Launcher.Base", "SPT.Launcher.Base\SPT.Launcher.Base.csproj", "{1DD556B6-45FF-43B6-A1CA-2590F270304C}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Aki.Launcher", "Aki.Launcher\Aki.Launcher.csproj", "{C566CA5A-0B68-4F76-A980-8BC0FE701491}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SPT.Launcher", "SPT.Launcher\SPT.Launcher.csproj", "{C566CA5A-0B68-4F76-A980-8BC0FE701491}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution

View File

@ -6,7 +6,7 @@
</PropertyGroup>
<Target Name="PostBuild" AfterTargets="PostBuildEvent">
<Exec Command="dotnet publish ../Aki.Launcher/Aki.Launcher.csproj -c Release -f net8.0 -r win-x64 /p:IncludeNativeLibrariesForSelfExtract=true -p:PublishSingleFile=true --self-contained false"/>
<Exec Command="dotnet publish ../SPT.Launcher/SPT.Launcher.csproj -c Release -f net8.0 -r win-x64 /p:IncludeNativeLibrariesForSelfExtract=true -p:PublishSingleFile=true --self-contained false"/>
<Exec Command="pwsh -NoProfile -ExecutionPolicy Bypass ../build.ps1" WorkingDirectory="$(ProjectDir)" />
</Target>

View File

@ -1,4 +1,4 @@
namespace Aki.ByteBanger
namespace SPT.ByteBanger
{
public class DiffResult
{

View File

@ -1,7 +1,7 @@
/* PatchInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Basuro
*/
@ -12,7 +12,7 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Aki.ByteBanger
namespace SPT.ByteBanger
{
public class PatchInfo
{

View File

@ -1,7 +1,7 @@
/* PatchItem.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Basuro
*/
@ -9,7 +9,7 @@
using System.IO;
namespace Aki.ByteBanger
namespace SPT.ByteBanger
{
public class PatchItem
{

View File

@ -1,4 +1,4 @@
namespace Aki.ByteBanger
namespace SPT.ByteBanger
{
public class PatchResult
{

View File

@ -1,7 +1,7 @@
/* BB.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Basuro
*/
@ -12,7 +12,7 @@ using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
namespace Aki.ByteBanger
namespace SPT.ByteBanger
{
public static class PatchUtil
{

View File

@ -1,22 +1,21 @@
/* AccountManager.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
* Merijn Hendriks
*/
using System;
using Aki.Launcher.Helpers;
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Aki;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Helpers;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.SPT;
using SPT.Launcher.Models.Launcher;
using System.Threading.Tasks;
using Aki.Launcher.Controllers;
using SPT.Launcher.Controllers;
namespace Aki.Launcher
namespace SPT.Launcher
{
public enum AccountStatus
{

View File

@ -1,28 +1,27 @@
/* GameStarter.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
* reider123
* Merijn Hendriks
*/
using Aki.Launcher.Helpers;
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Helpers;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.Launcher;
using Microsoft.Win32;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Threading.Tasks;
using Aki.Launcher.Controllers;
using Aki.Launcher.Interfaces;
using SPT.Launcher.Controllers;
using SPT.Launcher.Interfaces;
using System.Runtime.InteropServices;
namespace Aki.Launcher
namespace SPT.Launcher
{
public class GameStarter
{
@ -147,12 +146,9 @@ namespace Aki.Launcher
{
var files = new FileInfo[]
{
// aki files
new FileInfo(Path.Combine(_originalGamePath, @"Aki.Launcher.exe")),
new FileInfo(Path.Combine(_originalGamePath, @"Aki.Server.exe")),
new FileInfo(Path.Combine(_originalGamePath, @"EscapeFromTarkov_Data\Managed\Aki.Build.dll")),
new FileInfo(Path.Combine(_originalGamePath, @"EscapeFromTarkov_Data\Managed\Aki.Common.dll")),
new FileInfo(Path.Combine(_originalGamePath, @"EscapeFromTarkov_Data\Managed\Aki.Reflection.dll")),
// SPT files
new FileInfo(Path.Combine(_originalGamePath, @"SPT.Launcher.exe")),
new FileInfo(Path.Combine(_originalGamePath, @"SPT.Server.exe")),
// bepinex files
new FileInfo(Path.Combine(_originalGamePath, @"doorstep_config.ini")),
@ -167,7 +163,7 @@ namespace Aki.Launcher
};
var directories = new DirectoryInfo[]
{
new DirectoryInfo(Path.Combine(_originalGamePath, @"Aki_Data")),
new DirectoryInfo(Path.Combine(_originalGamePath, @"SPT_Data")),
new DirectoryInfo(Path.Combine(_originalGamePath, @"BepInEx"))
};

View File

@ -1,16 +1,15 @@
/* LogManager.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using System;
using System.IO;
namespace Aki.Launcher.Controllers
namespace SPT.Launcher.Controllers
{
/// <summary>
/// LogManager

View File

@ -1,15 +1,14 @@
/* RequestHandler.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using Aki.Launcher.MiniCommon;
using SPT.Launcher.MiniCommon;
namespace Aki.Launcher
namespace SPT.Launcher
{
public static class RequestHandler
{

View File

@ -1,18 +1,17 @@
/* ServerManager.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Aki;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.SPT;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Aki.Launcher
namespace SPT.Launcher
{
public static class ServerManager
{
@ -64,31 +63,31 @@ namespace Aki.Launcher
}
}
public static Dictionary<string, AkiServerModInfo> GetLoadedServerMods()
public static Dictionary<string, SPTServerModInfo> GetLoadedServerMods()
{
try
{
string json = RequestHandler.RequestLoadedServerMods();
return Json.Deserialize<Dictionary<string, AkiServerModInfo>>(json);
return Json.Deserialize<Dictionary<string, SPTServerModInfo>>(json);
}
catch
{
return new Dictionary<string, AkiServerModInfo>();
return new Dictionary<string, SPTServerModInfo>();
}
}
public static AkiProfileModInfo[] GetProfileMods()
public static SPTProfileModInfo[] GetProfileMods()
{
try
{
string json = RequestHandler.RequestProfileMods();
return Json.Deserialize<AkiProfileModInfo[]>(json);
return Json.Deserialize<SPTProfileModInfo[]>(json);
}
catch
{
return new AkiProfileModInfo[] { };
return new SPTProfileModInfo[] { };
}
}

View File

@ -1,7 +1,7 @@
/* DictionaryExtension.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
@ -10,7 +10,7 @@
using System.Collections.Generic;
using System.Linq;
namespace Aki.Launcher.Extensions
namespace SPT.Launcher.Extensions
{
public static class DictionaryExtensions
{

View File

@ -1,20 +1,19 @@
/* FilePatcher.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
* waffle.lord
*/
using System;
using System.IO;
using Aki.ByteBanger;
using Aki.Launcher.Controllers;
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Launcher;
using SPT.ByteBanger;
using SPT.Launcher.Controllers;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.Launcher;
namespace Aki.Launcher.Helpers
namespace SPT.Launcher.Helpers
{
public static class FilePatcher
{

View File

@ -1,22 +1,21 @@
/* LauncherSettingsProvider.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
* Merijn Hendriks
*/
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.Launcher;
using Newtonsoft.Json;
using System;
using System.ComponentModel;
using System.IO;
using Aki.Launcher.Controllers;
using SPT.Launcher.Controllers;
namespace Aki.Launcher.Helpers
namespace SPT.Launcher.Helpers
{
public static class LauncherSettingsProvider
{
@ -150,7 +149,7 @@ namespace Aki.Launcher.Helpers
UseAutoLogin = true;
GamePath = Environment.CurrentDirectory;
Server = new ServerSetting { Name = "SPT-AKI", Url = "http://127.0.0.1:6969" };
Server = new ServerSetting { Name = "SPT", Url = "http://127.0.0.1:6969" };
SaveSettings();
}

View File

@ -1,14 +1,14 @@
/* LocalizationProvider.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Extensions;
using Aki.Launcher.MiniCommon;
using SPT.Launcher.Extensions;
using SPT.Launcher.MiniCommon;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
@ -16,13 +16,13 @@ using System.ComponentModel;
using System.Globalization;
using System.IO;
using System.Linq;
using Aki.Launcher.Controllers;
using SPT.Launcher.Controllers;
namespace Aki.Launcher.Helpers
namespace SPT.Launcher.Helpers
{
public static class LocalizationProvider
{
public static string DefaultLocaleFolderPath = Path.Join(Environment.CurrentDirectory, "Aki_Data", "Launcher", "Locales");
public static string DefaultLocaleFolderPath = Path.Join(Environment.CurrentDirectory, "SPT_Data", "Launcher", "Locales");
public static Dictionary<string, string> LocaleNameDictionary = GetLocaleDictionary("native_name");
@ -118,7 +118,7 @@ namespace Aki.Launcher.Helpers
englishLocale.account = "Account";
englishLocale.edit_account = "Edit Account";
englishLocale.start_game = "Start Game";
englishLocale.installed_in_live_game_warning = "Aki shouldn't be installed into the live game directory. Please install Aki into a copy of the game directory elsewhere on your computer.";
englishLocale.installed_in_live_game_warning = "SPT shouldn't be installed into the live game directory. Please install SPT into a copy of the game directory elsewhere on your computer.";
englishLocale.no_official_game_warning = "Escape From Tarkov isn't installed on your computer. Please buy a copy of the game and support the developers!";
englishLocale.eft_exe_not_found_warning = "EscapeFromTarkov.exe not found at game path. Please check that the directory is correct.";
englishLocale.account_exist = "Account already exists";
@ -160,7 +160,7 @@ namespace Aki.Launcher.Helpers
englishLocale.level = "Level";
englishLocale.game_path = "Game Path";
englishLocale.patching = "Patching";
englishLocale.file_mismatch_dialog_message = "The input file hash doesn't match the expected hash. You may be using the wrong version\nof AKI for your client files.\n\nDo you want to continue?";
englishLocale.file_mismatch_dialog_message = "The input file hash doesn't match the expected hash. You may be using the wrong version\nof SPT for your client files.\n\nDo you want to continue?";
englishLocale.yes = "Yes";
englishLocale.no = "No";
englishLocale.open_folder = "Open Folder";
@ -169,7 +169,7 @@ namespace Aki.Launcher.Helpers
englishLocale.next_level_in = "Next level in";
englishLocale.copied = "Copied";
englishLocale.no_profile_data = "No profile data";
englishLocale.profile_version_mismath = "Your profile was made using a different version of aki and may have issues";
englishLocale.profile_version_mismath = "Your profile was made using a different version of SPT and may have issues";
englishLocale.profile_removed = "Profile removed";
englishLocale.profile_removal_failed = "Failed to remove profile";
englishLocale.profile_remove_question_format_1 = "Permanently remove profile '{0}'?";

View File

@ -1,18 +1,18 @@
/* ProgressReportingPatchRunner.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.Launcher;
using System.Collections.Generic;
using System.Threading.Tasks;
using Aki.ByteBanger;
using SPT.ByteBanger;
namespace Aki.Launcher.Helpers
namespace SPT.Launcher.Helpers
{
public class ProgressReportingPatchRunner
{
@ -64,7 +64,7 @@ namespace Aki.Launcher.Helpers
private string[] GetCorePatches()
{
return VFS.GetDirectories(VFS.Combine(GamePath, "Aki_Data/Launcher/Patches/"));
return VFS.GetDirectories(VFS.Combine(GamePath, "SPT_Data/Launcher/Patches/"));
}
public ProgressReportingPatchRunner(string GamePath, string[] Patches = null)

View File

@ -1,7 +1,7 @@
using Microsoft.Win32;
using System.IO;
namespace Aki.Launcher.Helpers
namespace SPT.Launcher.Helpers
{
public static class ValidationUtil
{

View File

@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Models.Launcher;
namespace Aki.Launcher.Interfaces
namespace SPT.Launcher.Interfaces
{
public interface IGameStarterFrontend
{

View File

@ -1,15 +1,15 @@
/* IUpdateProgress
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Models.Launcher;
using System;
namespace Aki.Launcher.Interfaces
namespace SPT.Launcher.Interfaces
{
public interface IUpdateProgress
{

View File

@ -1,23 +1,23 @@
/* ImageRequest.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Controllers;
using Aki.Launcher.Helpers;
using SPT.Launcher.Controllers;
using SPT.Launcher.Helpers;
using System;
using System.Collections.Generic;
using System.IO;
namespace Aki.Launcher.MiniCommon
namespace SPT.Launcher.MiniCommon
{
public static class ImageRequest
{
public static string ImageCacheFolder = Path.Join(LauncherSettingsProvider.Instance.GamePath, "Aki_Data", "Launcher", "Image_Cache");
public static string ImageCacheFolder = Path.Join(LauncherSettingsProvider.Instance.GamePath, "SPT_Data", "Launcher", "Image_Cache");
private static List<string> CachedRoutes = new List<string>();

View File

@ -1,10 +1,9 @@
/* Json.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
* Merijn Hendriks
*/
@ -13,7 +12,7 @@ using Newtonsoft.Json.Linq;
using System.IO;
using System.Linq;
namespace Aki.Launcher.MiniCommon
namespace SPT.Launcher.MiniCommon
{
public static class Json
{

View File

@ -11,7 +11,7 @@ using System;
using System.Diagnostics;
using System.Timers;
namespace Aki.Launcher.MiniCommon
namespace SPT.Launcher.MiniCommon
{
public class ProcessMonitor
{

View File

@ -13,7 +13,7 @@ using System.IO;
using System.Net;
using System.Text;
namespace Aki.Launcher.MiniCommon
namespace SPT.Launcher.MiniCommon
{
public class Request
{

View File

@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Aki.Launcher.MiniCommon
namespace SPT.Launcher.MiniCommon
{
public static class VFS
{

View File

@ -1,13 +1,12 @@
/* ClientConfig.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public class ClientConfig
{

View File

@ -1,13 +1,12 @@
/* LoginToken.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public struct LoginToken
{

View File

@ -1,15 +1,14 @@
/* ConnectServerModel.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class ConnectServerModel : INotifyPropertyChanged
{

View File

@ -1,17 +1,16 @@
/* EditionCollection.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using Aki.Launcher.Models.Aki;
using SPT.Launcher.Models.SPT;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class EditionCollection : INotifyPropertyChanged
{
@ -42,8 +41,8 @@ namespace Aki.Launcher.Models.Launcher
}
}
private AkiEdition _SelectedEdition;
public AkiEdition SelectedEdition
private SPTEdition _SelectedEdition;
public SPTEdition SelectedEdition
{
get => _SelectedEdition;
set
@ -56,7 +55,7 @@ namespace Aki.Launcher.Models.Launcher
}
}
}
public ObservableCollection<AkiEdition> AvailableEditions { get; private set; } = new ObservableCollection<AkiEdition>();
public ObservableCollection<SPTEdition> AvailableEditions { get; private set; } = new ObservableCollection<SPTEdition>();
public EditionCollection()
{
@ -64,7 +63,7 @@ namespace Aki.Launcher.Models.Launcher
foreach(var edition in ServerManager.SelectedServer.editions)
{
AvailableEditions.Add(new AkiEdition(edition));
AvailableEditions.Add(new SPTEdition(edition));
}
}

View File

@ -1,15 +1,14 @@
/* GameStarterResult.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
* waffle.lord
*/
using Aki.Launcher.Helpers;
using SPT.Launcher.Helpers;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class GameStarterResult
{

View File

@ -1,13 +1,13 @@
/* LauncherAction.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public enum LauncherAction
{

View File

@ -1,18 +1,18 @@
/* LocaleCollection.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Helpers;
using SPT.Launcher.Helpers;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class LocaleCollection : INotifyPropertyChanged
{

View File

@ -1,9 +1,9 @@
using Aki.Launcher.Helpers;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Helpers;
using SPT.Launcher.Models.Launcher;
using System.ComponentModel;
using System.Text.RegularExpressions;
namespace Aki.Launcher.Models
namespace SPT.Launcher.Models
{
public class LocalizedLauncherAction : INotifyPropertyChanged
{

View File

@ -1,15 +1,14 @@
/* LoginModel.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class LoginModel : INotifyPropertyChanged
{

View File

@ -1,7 +1,7 @@
/* MenuBarItem.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
@ -10,7 +10,7 @@ using System;
using System.ComponentModel;
using System.Threading.Tasks;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class MenuBarItem : INotifyPropertyChanged
{

View File

@ -1,9 +1,9 @@
using Aki.Launcher.Models.Aki;
using SPT.Launcher.Models.SPT;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class ModInfoCollection : INotifyPropertyChanged
{
@ -49,8 +49,8 @@ namespace Aki.Launcher.Models.Launcher
}
}
public ObservableCollection<AkiMod> ActiveMods { get; private set; } = new ObservableCollection<AkiMod>();
public ObservableCollection<AkiMod> InactiveMods { get; private set; } = new ObservableCollection<AkiMod>();
public ObservableCollection<SPTMod> ActiveMods { get; private set; } = new ObservableCollection<SPTMod>();
public ObservableCollection<SPTMod> InactiveMods { get; private set; } = new ObservableCollection<SPTMod>();
public ModInfoCollection()
{

View File

@ -1,7 +1,7 @@
/* NotificationItem.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
@ -10,7 +10,7 @@
using System;
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher.Notifications
namespace SPT.Launcher.Models.Launcher.Notifications
{
public class NotificationItem : INotifyPropertyChanged
{

View File

@ -1,20 +1,20 @@
/* NotificationQueue.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Helpers;
using SPT.Launcher.Helpers;
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Timers;
namespace Aki.Launcher.Models.Launcher.Notifications
namespace SPT.Launcher.Models.Launcher.Notifications
{
public class NotificationQueue : INotifyPropertyChanged, IDisposable
{

View File

@ -1,14 +1,14 @@
/* PatchResultInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.ByteBanger;
using SPT.ByteBanger;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class PatchResultInfo
{

View File

@ -6,14 +6,14 @@
* waffle.lord
*/
using Aki.Launcher.Helpers;
using Aki.Launcher.MiniCommon;
using Aki.Launcher.Models.Aki;
using SPT.Launcher.Helpers;
using SPT.Launcher.MiniCommon;
using SPT.Launcher.Models.SPT;
using System;
using System.ComponentModel;
using System.IO;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class ProfileInfo : INotifyPropertyChanged
{
@ -173,16 +173,16 @@ namespace Aki.Launcher.Models.Launcher
}
}
private AkiData _Aki;
public AkiData Aki
private SPTData _SPT;
public SPTData SPT
{
get => _Aki;
get => _SPT;
set
{
if(_Aki != value)
if(_SPT != value)
{
_Aki = value;
RaisePropertyChanged(nameof(Aki));
_SPT = value;
RaisePropertyChanged(nameof(SPT));
}
}
}
@ -201,11 +201,11 @@ namespace Aki.Launcher.Models.Launcher
RemainingExp = PInfo.RemainingExp;
XPLevelProgress = PInfo.XPLevelProgress;
Aki = PInfo.Aki;
SPT = PInfo.SPT;
}
/// <summary>
/// Checks if the aki versions are compatible (non-major changes)
/// Checks if the SPT versions are compatible (non-major changes)
/// </summary>
/// <param name="CurrentVersion"></param>
/// <param name="ExpectedVersion"></param>
@ -214,8 +214,8 @@ namespace Aki.Launcher.Models.Launcher
{
if (ExpectedVersion == "") return false;
AkiVersion v1 = new AkiVersion(CurrentVersion);
AkiVersion v2 = new AkiVersion(ExpectedVersion);
SPTVersion v1 = new SPTVersion(CurrentVersion);
SPTVersion v2 = new SPTVersion(ExpectedVersion);
// check 'X'.x.x
if (v1.Major != v2.Major) return false;
@ -233,11 +233,11 @@ namespace Aki.Launcher.Models.Launcher
Nickname = serverProfileInfo.nickname;
Side = serverProfileInfo.side;
Aki = serverProfileInfo.akiData;
SPT = serverProfileInfo.SPTData;
if (Aki != null)
if (SPT != null)
{
VersionMismatch = !CompareVersions(Aki.version, ServerManager.GetVersion());
VersionMismatch = !CompareVersions(SPT.version, ServerManager.GetVersion());
}
SideImage = Path.Combine(ImageRequest.ImageCacheFolder, $"side_{Side.ToLower()}.png");

View File

@ -1,12 +1,12 @@
/* ProgressInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class ProgressInfo
{

View File

@ -1,15 +1,14 @@
/* RegisterModel.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class RegisterModel : INotifyPropertyChanged
{

View File

@ -1,16 +1,15 @@
/* ServerSetting.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
* Merijn Hendriks
*/
using System.ComponentModel;
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class ServerSetting : INotifyPropertyChanged
{

View File

@ -1,12 +1,11 @@
/* WipeProfileModel.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher.Models.Launcher
namespace SPT.Launcher.Models.Launcher
{
public class WipeProfileModel
{

View File

@ -1,13 +1,12 @@
/* AccountInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public class AccountInfo
{

View File

@ -1,13 +1,12 @@
/* ChangeRequestData.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public struct ChangeRequestData
{

View File

@ -1,6 +1,6 @@
using Newtonsoft.Json;
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class DevDependencies
{

View File

@ -1,13 +1,12 @@
/* LoginRequestData.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public struct LoginRequestData
{

View File

@ -1,13 +1,12 @@
/* RegisterRequestData.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
namespace Aki.Launcher
namespace SPT.Launcher
{
public struct RegisterRequestData
{

View File

@ -0,0 +1,7 @@
namespace SPT.Launcher.Models.SPT
{
public class SPTData
{
public string version { get; set; }
}
}

View File

@ -1,13 +1,13 @@
using Aki.Launcher;
using SPT.Launcher;
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class AkiEdition
public class SPTEdition
{
public string Name { get; set; }
public string Description { get; set; }
public AkiEdition(string name)
public SPTEdition(string name)
{
Name = name;
ServerManager.SelectedServer.profileDescriptions.TryGetValue(name, out string desc);

View File

@ -1,6 +1,6 @@
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class AkiMod
public class SPTMod
{
public bool InServer { get; set; }
public bool InProfile { get; set; }

View File

@ -1,8 +1,8 @@
using System;
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class AkiProfileModInfo : AkiMod
public class SPTProfileModInfo : SPTMod
{
public string DateAdded { get; set; }
}

View File

@ -1,12 +1,12 @@
using System.Collections.Generic;
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class AkiServerModInfo : AkiMod
public class SPTServerModInfo : SPTMod
{
public string Main { get; set; }
public string License { get; set; }
public string AkiVersion { get; set; }
public string SPTVersion { get; set; }
public Dictionary<string, string> Scripts { get; set; }
public DevDependencies DevDependencies { get; set; }
}
@ -20,7 +20,7 @@ namespace Aki.Launcher.Models.Aki
"main": "src/mod.ts",
"license": "MIT",
"author": "waffle.lord",
"akiVersion": "~3.6",
"SPTVersion": "~3.6",
"scripts": {
"setup": "npm i",
"build": "node ./packageBuild.ts"

View File

@ -1,8 +1,8 @@
using System.ComponentModel;
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class AkiVersion : INotifyPropertyChanged
public class SPTVersion : INotifyPropertyChanged
{
public int Major;
public int Minor;
@ -25,18 +25,18 @@ namespace Aki.Launcher.Models.Aki
}
}
public void ParseVersionInfo(string AkiVersion)
public void ParseVersionInfo(string SPTVersion)
{
if (AkiVersion.Contains('-'))
if (SPTVersion.Contains('-'))
{
string[] versionInfo = AkiVersion.Split('-');
string[] versionInfo = SPTVersion.Split('-');
AkiVersion = versionInfo[0];
SPTVersion = versionInfo[0];
Tag = versionInfo[1];
}
string[] splitVersion = AkiVersion.Split('.');
string[] splitVersion = SPTVersion.Split('.');
if (splitVersion.Length == 3)
{
@ -46,11 +46,11 @@ namespace Aki.Launcher.Models.Aki
}
}
public AkiVersion() { }
public SPTVersion() { }
public AkiVersion(string AkiVersion)
public SPTVersion(string SPTVersion)
{
ParseVersionInfo(AkiVersion);
ParseVersionInfo(SPTVersion);
}
public event PropertyChangedEventHandler PropertyChanged;

View File

@ -1,15 +1,14 @@
/* ServerInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* Merijn Hendriks
*/
using System.Collections.Generic;
namespace Aki.Launcher
namespace SPT.Launcher
{
public class ServerInfo
{
@ -21,7 +20,7 @@ namespace Aki.Launcher
public ServerInfo()
{
backendUrl = "http://127.0.0.1:6969";
name = "Local SPT-AKI Server";
name = "Local SPT Server";
editions = new string[0];
profileDescriptions = new Dictionary<string, string>();
}

View File

@ -1,12 +1,12 @@
/* ServerProfileInfo.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
namespace Aki.Launcher.Models.Aki
namespace SPT.Launcher.Models.SPT
{
public class ServerProfileInfo
{
@ -18,6 +18,6 @@ namespace Aki.Launcher.Models.Aki
public long prevexp { get; set; }
public long nextlvl { get; set; }
public int maxlvl { get; set; }
public AkiData akiData { get; set; }
public SPTData SPTData { get; set; }
}
}

View File

@ -2,12 +2,12 @@
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<RootNamespace>Aki.Launch</RootNamespace>
<RootNamespace>SPT.Launch</RootNamespace>
</PropertyGroup>
<ItemGroup>
<Reference Include="zlib.net, Version=1.0.3.0, Culture=neutral, PublicKeyToken=null">
<HintPath>..\Aki.Launcher\References\zlib.net.dll</HintPath>
<HintPath>..\SPT.Launcher\References\zlib.net.dll</HintPath>
</Reference>
</ItemGroup>
@ -17,7 +17,7 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Aki.ByteBanger\Aki.ByteBanger.csproj" />
<ProjectReference Include="..\SPT.ByteBanger\SPT.ByteBanger.csproj" />
</ItemGroup>
</Project>

View File

@ -1,7 +1,7 @@
<Application xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:Aki.Launcher"
x:Class="Aki.Launcher.App">
xmlns:local="using:SPT.Launcher"
x:Class="SPT.Launcher.App">
<Application.DataTemplates>
<local:ViewLocator/>
</Application.DataTemplates>
@ -13,19 +13,19 @@
<Application.Resources>
<!-- Colors -->
<Color x:Key="AKI_DarkGray">#121212</Color>
<Color x:Key="AKI_Yellow">#FFC107</Color>
<Color x:Key="AKI_White">#FFFFFF</Color>
<Color x:Key="AKI_Gray">#282828</Color>
<Color x:Key="AKI_DarkGrayBlue">#323947</Color>
<Color x:Key="SPT_DarkGray">#121212</Color>
<Color x:Key="SPT_Yellow">#FFC107</Color>
<Color x:Key="SPT_White">#FFFFFF</Color>
<Color x:Key="SPT_Gray">#282828</Color>
<Color x:Key="SPT_DarkGrayBlue">#323947</Color>
<!-- Brushes -->
<SolidColorBrush x:Key="AKI_Foreground_Light" Color="{StaticResource AKI_White}"/>
<SolidColorBrush x:Key="AKI_Background_Light" Color="{StaticResource AKI_Gray}"/>
<SolidColorBrush x:Key="AKI_Background_Dark" Color="{StaticResource AKI_DarkGray}"/>
<SolidColorBrush x:Key="AKI_Brush_Yellow" Color="{StaticResource AKI_Yellow}"/>
<SolidColorBrush x:Key="AKI_Brush_DarkGrayBlue" Color="{StaticResource AKI_DarkGrayBlue}"/>
<SolidColorBrush x:Key="AKI_Brush_Lighter" Color="Gainsboro"/>
<SolidColorBrush x:Key="SPT_Foreground_Light" Color="{StaticResource SPT_White}"/>
<SolidColorBrush x:Key="SPT_Background_Light" Color="{StaticResource SPT_Gray}"/>
<SolidColorBrush x:Key="SPT_Background_Dark" Color="{StaticResource SPT_DarkGray}"/>
<SolidColorBrush x:Key="SPT_Brush_Yellow" Color="{StaticResource SPT_Yellow}"/>
<SolidColorBrush x:Key="SPT_Brush_DarkGrayBlue" Color="{StaticResource SPT_DarkGrayBlue}"/>
<SolidColorBrush x:Key="SPT_Brush_Lighter" Color="Gainsboro"/>
<!-- Path Geometry for re-usable icons -->
<PathGeometry x:Key="FolderWithPlus" Figures="M20 6h-8l-2-2H4c-1.11 0-1.99.89-1.99 2L2 18c0 1.11.89 2 2 2h16c1.11 0 2-.89 2-2V8c0-1.11-.89-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z" FillRule="NonZero"

View File

@ -1,6 +1,6 @@
using Aki.Launcher.Controllers;
using Aki.Launcher.ViewModels;
using Aki.Launcher.Views;
using SPT.Launcher.Controllers;
using SPT.Launcher.ViewModels;
using SPT.Launcher.Views;
using Avalonia;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Markup.Xaml;
@ -8,7 +8,7 @@ using ReactiveUI;
using System;
using System.Reactive;
namespace Aki.Launcher
namespace SPT.Launcher
{
public class App : Application
{

View File

@ -1,10 +1,10 @@
<Styles xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:cc="using:Aki.Launcher.CustomControls"
xmlns:cc="using:SPT.Launcher.CustomControls"
xmlns:rxui="using:Avalonia.ReactiveUI"
>
<Design.PreviewWith>
<StackPanel Spacing="5" Background="{StaticResource AKI_Background_Dark}" Margin="50">
<StackPanel Spacing="5" Background="{StaticResource SPT_Background_Dark}" Margin="50">
<Button Content="Blah"/>
<TextBox Text="Some cool text here" Margin="5"/>
<TextBox Watermark="This is a watermark" Margin="5"/>
@ -86,30 +86,30 @@
<!-- TitleBar Styles -->
<Style Selector="cc|TitleBar">
<Setter Property="Background" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="ButtonForeground" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Dark}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
<Setter Property="ButtonForeground" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<Style Selector="cc|TitleBar.versiontag">
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="BorderThickness" Value="0 0 0 2"/>
</Style>
<!-- TextBox Styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/TextBox.xaml -->
<Style Selector="TextBox">
<Setter Property="Background" Value="{StaticResource AKI_Background_Light}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Light}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Lighter}"/>
</Style>
<Style Selector="TextBox:focus">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Lighter}"/>
</Style>
<Style Selector="TextBox:pointerover">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Lighter}"/>
</Style>
<Style Selector="TextBox:pointerover /template/ Border#PART_BorderElement">
@ -131,18 +131,18 @@
<Style Selector="TextBox:focus /template/ Border#PART_BorderElement">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="BorderThickness" Value="1"/>
</Style>
<!-- Label Styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/Label.xaml -->
<Style Selector="Label">
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
</Style>
<Style Selector="Label.yellow">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="Label.dark">
@ -156,8 +156,8 @@
<!-- ProgressBar Styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/ProgressBar.xaml -->
<Style Selector="ProgressBar">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Background" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<Style Selector="ProgressBar.error">
@ -165,7 +165,7 @@
<Style.Animations>
<Animation Duration="0:0:0.5" FillMode="Forward">
<KeyFrame Cue="0%">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="Value" Value="0"/>
</KeyFrame>
<KeyFrame Cue="100%">
@ -179,14 +179,14 @@
<!-- Seperator Styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/Separator.xaml -->
<Style Selector="Separator">
<Setter Property="Background" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Dark}"/>
</Style>
<!-- Button Styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/Button.xaml -->
<Style Selector="Button">
<Setter Property="Background" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="Foreground" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Background_Dark}"/>
</Style>
<Style Selector="Button:pointerover">
@ -194,24 +194,24 @@
</Style>
<Style Selector="Button:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Background_Light}"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Light}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="BorderThickness" Value="1"/>
</Style>
<Style Selector="Button:pressed /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="Button:disabled /template/ ContentPresenter">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<!-- Button yellow -->
<Style Selector="Button.yellow">
<Setter Property="Background" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Foreground" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Background_Dark}"/>
<Setter Property="FontWeight" Value="SemiBold"/>
</Style>
@ -221,36 +221,36 @@
<Style Selector="Button.yellow:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="Gold"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="BorderThickness" Value="1"/>
</Style>
<Style Selector="Button.yellow:pressed /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_Lighter}"/>
</Style>
<Style Selector="Button.yellow:disabled /template/ ContentPresenter">
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<!-- Button Link Style -->
<Style Selector="Button.link">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Lighter}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style Selector="Button.link:pointerover /template/ ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style Selector="Button.link:pressed /template/ ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="Transparent"/>
<Setter Property="BorderThickness" Value="0"/>
@ -258,29 +258,29 @@
<!-- Button Bordered Link Style -->
<Style Selector="Button.borderedlink">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Lighter}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Lighter}"/>
<Setter Property="BorderThickness" Value="1"/>
</Style>
<Style Selector="Button.borderedlink:pointerover /template/ ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="Button.borderedlink:pressed /template/ ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<!-- Button Profile Info Style -->
<Style Selector="Button.profileinfo">
<Setter Property="Background" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Dark}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Background_Dark}"/>
</Style>
<Style Selector="Button.icon">
@ -289,47 +289,47 @@
</Style>
<Style Selector="Button.icon:pointerover">
<Setter Property="Background" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<!-- Checkbox styles -->
<!-- SourceRef: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/CheckBox.xaml -->
<Style Selector="CheckBox">
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
</Style>
<Style Selector="CheckBox /template/ Border#NormalRectangle">
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
</Style>
<Style Selector="CheckBox:pointerover /template/ Border#NormalRectangle">
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="CheckBox:pointerover /template/ ContentPresenter#ContentPresenter">
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Foreground_Light}" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Foreground_Light}" />
</Style>
<Style Selector="CheckBox:checked">
<Setter Property="FontWeight" Value="SemiBold"/>
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
</Style>
<Style Selector="CheckBox:checked /template/ Border#NormalRectangle">
<Setter Property="Background" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="CheckBox:checked /template/ Path#CheckGlyph">
<Setter Property="Fill" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Fill" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<!-- ComboBox Styles -->
<!-- Source Ref: https://github.com/AvaloniaUI/Avalonia/blob/master/src/Avalonia.Themes.Fluent/Controls/ComboBox.xaml -->
<Style Selector="ComboBox">
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="PlaceholderForeground" Value="{StaticResource AKI_Brush_Lighter}"/>
<Setter Property="Background" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
<Setter Property="PlaceholderForeground" Value="{StaticResource SPT_Brush_Lighter}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Dark}"/>
<Setter Property="Template">
<ControlTemplate>
<DataValidationErrors>
@ -413,8 +413,8 @@
PlacementTarget="Background"
IsLightDismissEnabled="True">
<Border x:Name="PopupBorder"
Background="{StaticResource AKI_Background_Dark}"
BorderBrush="{StaticResource AKI_Background_Dark}"
Background="{StaticResource SPT_Background_Dark}"
BorderBrush="{StaticResource SPT_Background_Dark}"
BorderThickness="{DynamicResource ComboBoxDropdownBorderThickness}"
Margin="0,-1,0,-1"
Padding="{DynamicResource ComboBoxDropdownBorderPadding}"
@ -438,15 +438,15 @@
</Style>
<Style Selector="ComboBox /template/ Path#DropDownGlyph">
<Setter Property="Fill" Value="{StaticResource AKI_Foreground_Light}" />
<Setter Property="Fill" Value="{StaticResource SPT_Foreground_Light}" />
</Style>
<Style Selector="ComboBox:pointerover /template/ Path#DropDownGlyph">
<Setter Property="Fill" Value="{StaticResource AKI_Brush_Yellow}" />
<Setter Property="Fill" Value="{StaticResource SPT_Brush_Yellow}" />
</Style>
<Style Selector="ComboBox:pointerover">
<Setter Property="Foreground" Value="{StaticResource AKI_Brush_Yellow}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Brush_Yellow}"/>
</Style>
<Style Selector="ComboBox:pointerover /template/ Border#Background">
@ -466,19 +466,19 @@
</Style>
<Style Selector="ComboBoxItem">
<Setter Property="Foreground" Value="{StaticResource AKI_Foreground_Light}"/>
<Setter Property="Background" Value="{StaticResource AKI_Background_Dark}"/>
<Setter Property="Foreground" Value="{StaticResource SPT_Foreground_Light}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Dark}"/>
</Style>
<Style Selector="ComboBoxItem:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Background_Light}" />
<Setter Property="BorderBrush" Value="{StaticResource AKI_Background_Light}" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Foreground_Light}" />
<Setter Property="Background" Value="{StaticResource SPT_Background_Light}" />
<Setter Property="BorderBrush" Value="{StaticResource SPT_Background_Light}" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Foreground_Light}" />
</Style>
<Style Selector="ComboBoxItem:selected /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Brush_Yellow}" />
<Setter Property="BorderBrush" Value="{StaticResource AKI_Brush_Yellow}" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource AKI_Background_Dark}" />
<Setter Property="Background" Value="{StaticResource SPT_Brush_Yellow}" />
<Setter Property="BorderBrush" Value="{StaticResource SPT_Brush_Yellow}" />
<Setter Property="TextBlock.Foreground" Value="{StaticResource SPT_Background_Dark}" />
</Style>
</Styles>

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 420 KiB

After

Width:  |  Height:  |  Size: 420 KiB

View File

@ -1,9 +1,9 @@
using Aki.Launcher.Models;
using Aki.Launcher.ViewModels;
using SPT.Launcher.Models;
using SPT.Launcher.ViewModels;
using ReactiveUI;
using System;
namespace Aki.Launcher.Attributes
namespace SPT.Launcher.Attributes
{
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
public abstract class NavigationPreCondition : Attribute

View File

@ -1,9 +1,9 @@
using Aki.Launcher.Helpers;
using Aki.Launcher.Models;
using Aki.Launcher.ViewModels;
using SPT.Launcher.Helpers;
using SPT.Launcher.Models;
using SPT.Launcher.ViewModels;
using ReactiveUI;
namespace Aki.Launcher.Attributes
namespace SPT.Launcher.Attributes
{
public class RequireLoggedIn : NavigationPreCondition
{

View File

@ -1,9 +1,9 @@
using Aki.Launcher.Helpers;
using Aki.Launcher.Models;
using Aki.Launcher.ViewModels;
using SPT.Launcher.Helpers;
using SPT.Launcher.Models;
using SPT.Launcher.ViewModels;
using ReactiveUI;
namespace Aki.Launcher.Attributes
namespace SPT.Launcher.Attributes
{
public class RequireServerConnected : NavigationPreCondition
{

View File

@ -1,18 +1,18 @@
/* ImageSourceConverter.cs
* License: NCSA Open Source License
*
* Copyright: Merijn Hendriks
* Copyright: SPT
* AUTHORS:
* waffle.lord
*/
using Aki.Launcher.Controllers;
using SPT.Launcher.Controllers;
using Avalonia.Data.Converters;
using Avalonia.Media.Imaging;
using System;
using System.Globalization;
namespace Aki.Launcher.Converters
namespace SPT.Launcher.Converters
{
public class ImageSourceConverter : IValueConverter
{

View File

@ -2,9 +2,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:model="using:Aki.Launcher.Models"
xmlns:model="using:SPT.Launcher.Models"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Aki.Launcher.CustomControls.LocalizedLauncherActionSelector">
x:Class="SPT.Launcher.CustomControls.LocalizedLauncherActionSelector">
<ComboBox x:Name="combobox"
SelectionChanged="combobox_SelectionChanged"
>

View File

@ -1,13 +1,13 @@
using Aki.Launcher.Helpers;
using Aki.Launcher.Models;
using Aki.Launcher.Models.Launcher;
using SPT.Launcher.Helpers;
using SPT.Launcher.Models;
using SPT.Launcher.Models.Launcher;
using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
using System;
using System.Collections.Generic;
namespace Aki.Launcher.CustomControls
namespace SPT.Launcher.CustomControls
{
public partial class LocalizedLauncherActionSelector : UserControl
{

View File

@ -3,14 +3,14 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
xmlns:helpers="using:Aki.Launcher.Helpers"
x:Class="Aki.Launcher.CustomControls.ModInfoCard">
xmlns:helpers="using:SPT.Launcher.Helpers"
x:Class="SPT.Launcher.CustomControls.ModInfoCard">
<Border CornerRadius="5" HorizontalAlignment="Stretch"
BorderBrush="{StaticResource AKI_Background_Dark}"
BorderBrush="{StaticResource SPT_Background_Dark}"
BorderThickness="5"
>
<Grid RowDefinitions="10,AUTO,AUTO,AUTO,10" ColumnDefinitions="10,AUTO,*,AUTO,10"
Background="{StaticResource AKI_Background_Dark}"
Background="{StaticResource SPT_Background_Dark}"
>
<!-- Icon stack -->
@ -19,12 +19,12 @@
Orientation="Horizontal" Spacing="5"
>
<!-- Server Icon -->
<Path Data="{StaticResource Server}" Fill="{StaticResource AKI_Brush_DarkGrayBlue}"
<Path Data="{StaticResource Server}" Fill="{StaticResource SPT_Brush_DarkGrayBlue}"
IsVisible="{Binding IsInServer, RelativeSource={RelativeSource AncestorType=UserControl}}"
/>
<!-- Profile Icon -->
<Path Data="{StaticResource Profile}" Fill="{StaticResource AKI_Brush_DarkGrayBlue}"
<Path Data="{StaticResource Profile}" Fill="{StaticResource SPT_Brush_DarkGrayBlue}"
IsVisible="{Binding IsInProfile, RelativeSource={RelativeSource AncestorType=UserControl}}"
/>
@ -54,7 +54,7 @@
>
<StackPanel Orientation="Horizontal">
<Label Content="{Binding Source={x:Static helpers:LocalizationProvider.Instance}, Path=open_link}"/>
<Path Data="{StaticResource Open}" Fill="{StaticResource AKI_Brush_Yellow}"
<Path Data="{StaticResource Open}" Fill="{StaticResource SPT_Brush_Yellow}"
IsVisible="{Binding IsInProfile, RelativeSource={RelativeSource AncestorType=UserControl}}"
/>
</StackPanel>

View File

@ -4,7 +4,7 @@ using Avalonia;
using Avalonia.Controls;
using Avalonia.Markup.Xaml;
namespace Aki.Launcher.CustomControls
namespace SPT.Launcher.CustomControls
{
public partial class ModInfoCard : UserControl
{

View File

@ -2,9 +2,9 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:helpers="using:Aki.Launcher.Helpers"
xmlns:helpers="using:SPT.Launcher.Helpers"
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
x:Class="Aki.Launcher.CustomControls.TitleBar">
x:Class="SPT.Launcher.CustomControls.TitleBar">
<Grid ColumnDefinitions="AUTO,*,AUTO,10,AUTO,AUTO">
@ -55,11 +55,11 @@
>
<Button.Styles>
<Style Selector="Button:pointerover /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Brush_DarkGrayBlue}"/>
<Setter Property="Background" Value="{StaticResource SPT_Brush_DarkGrayBlue}"/>
<Setter Property="BorderThickness" Value="0"/>
</Style>
<Style Selector="Button:pressed /template/ ContentPresenter">
<Setter Property="Background" Value="{StaticResource AKI_Background_Light}"/>
<Setter Property="Background" Value="{StaticResource SPT_Background_Light}"/>
</Style>
</Button.Styles>
</Button>

View File

@ -4,7 +4,7 @@ using Avalonia.Markup.Xaml;
using Avalonia.Media;
using System.Windows.Input;
namespace Aki.Launcher.CustomControls
namespace SPT.Launcher.CustomControls
{
public partial class TitleBar : UserControl
{

View File

@ -1,14 +1,14 @@
using Aki.Launcher.Helpers;
using Aki.Launcher.Interfaces;
using Aki.Launcher.Models.Launcher;
using Aki.Launcher.ViewModels.Dialogs;
using Aki.Launcher.ViewModels.Notifications;
using SPT.Launcher.Helpers;
using SPT.Launcher.Interfaces;
using SPT.Launcher.Models.Launcher;
using SPT.Launcher.ViewModels.Dialogs;
using SPT.Launcher.ViewModels.Notifications;
using Avalonia.Controls.Notifications;
using Splat;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Aki.Launcher.Models
namespace SPT.Launcher.Models
{
public class GameStarterFrontend : IGameStarterFrontend
{
@ -16,7 +16,7 @@ namespace Aki.Launcher.Models
public async Task CompletePatchTask(IAsyncEnumerable<PatchResultInfo> task)
{
notificationManager.Show(new AkiNotificationViewModel(null, "", $"{LocalizationProvider.Instance.patching} ..."));
notificationManager.Show(new SPTNotificationViewModel(null, "", $"{LocalizationProvider.Instance.patching} ..."));
var iter = task.GetAsyncEnumerator();
while (await iter.MoveNextAsync())
@ -30,13 +30,13 @@ namespace Aki.Launcher.Models
if(result != null && result is bool confirmation && !confirmation)
{
notificationManager.Show(new AkiNotificationViewModel(null, "", LocalizationProvider.Instance.failed_core_patch, NotificationType.Error));
notificationManager.Show(new SPTNotificationViewModel(null, "", LocalizationProvider.Instance.failed_core_patch, NotificationType.Error));
throw new TaskCanceledException();
}
}
else
{
notificationManager.Show(new AkiNotificationViewModel(null, "", LocalizationProvider.Instance.failed_core_patch, NotificationType.Error));
notificationManager.Show(new SPTNotificationViewModel(null, "", LocalizationProvider.Instance.failed_core_patch, NotificationType.Error));
throw new TaskCanceledException();
}
}

View File

@ -1,6 +1,6 @@
using ReactiveUI;
namespace Aki.Launcher.Models
namespace SPT.Launcher.Models
{
public class ImageHelper : ReactiveObject
{

View File

@ -1,6 +1,6 @@
using Aki.Launcher.ViewModels;
using SPT.Launcher.ViewModels;
namespace Aki.Launcher.Models
namespace SPT.Launcher.Models
{
public class NavigationPreConditionResult
{

View File

@ -1,4 +1,4 @@
using Aki.Launcher.Controllers;
using SPT.Launcher.Controllers;
using Avalonia;
using Avalonia.ReactiveUI;
using ReactiveUI;
@ -6,7 +6,7 @@ using Splat;
using System;
using System.Reflection;
namespace Aki.Launcher
namespace SPT.Launcher
{
internal class Program
{

View File

@ -15,7 +15,7 @@
<None Remove="Properties\**" />
<AvaloniaResource Remove="Assets\Styles.axaml" />
<None Remove=".gitignore" />
<None Remove="Assets\aki-logo.png" />
<None Remove="Assets\SPT-logo.png" />
<None Remove="Assets\icon.ico" />
</ItemGroup>
<ItemGroup>
@ -30,8 +30,8 @@
<PackageReference Include="DialogHost.Avalonia" Version="0.5.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Aki.ByteBanger\Aki.ByteBanger.csproj" />
<ProjectReference Include="..\Aki.Launcher.Base\Aki.Launcher.Base.csproj" />
<ProjectReference Include="..\SPT.ByteBanger\SPT.ByteBanger.csproj" />
<ProjectReference Include="..\SPT.Launcher.Base\SPT.Launcher.Base.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Newtonsoft.Json">

Some files were not shown because too many files have changed in this diff Show More