diff --git a/OWML.Launcher/App.cs b/OWML.Launcher/App.cs index 7a359523f..9a35fbf81 100644 --- a/OWML.Launcher/App.cs +++ b/OWML.Launcher/App.cs @@ -6,7 +6,6 @@ using Newtonsoft.Json; using OWML.Common; using OWML.Patcher; -using OWML.Update; namespace OWML.Launcher { @@ -20,10 +19,9 @@ public class App private readonly PathFinder _pathFinder; private readonly OWPatcher _owPatcher; private readonly VRPatcher _vrPatcher; - private readonly CheckVersion _checkVersion; public App(IOwmlConfig owmlConfig, IModManifest owmlManifest, IModConsole writer, IModFinder modFinder, - OutputListener listener, PathFinder pathFinder, OWPatcher owPatcher, VRPatcher vrPatcher, CheckVersion checkVersion) + OutputListener listener, PathFinder pathFinder, OWPatcher owPatcher, VRPatcher vrPatcher) { _owmlConfig = owmlConfig; _owmlManifest = owmlManifest; @@ -33,15 +31,11 @@ public App(IOwmlConfig owmlConfig, IModManifest owmlManifest, IModConsole writer _pathFinder = pathFinder; _owPatcher = owPatcher; _vrPatcher = vrPatcher; - _checkVersion = checkVersion; } public void Run(string[] args) { _writer.WriteLine($"Started OWML v{_owmlManifest.Version}"); - - CheckVersion(); - _writer.WriteLine("For detailed log, see Logs/OWML.Log.txt"); LocateGamePath(); @@ -61,23 +55,6 @@ public void Run(string[] args) Console.ReadLine(); } - private void CheckVersion() - { - _writer.WriteLine("Checking latest version..."); - var latestVersion = _checkVersion.GetOwmlVersion(); - if (string.IsNullOrEmpty(latestVersion)) - { - _writer.WriteLine("Warning: could not check latest OWML version."); - return; - } - if (_owmlManifest.Version == latestVersion) - { - _writer.WriteLine("OWML is up to date."); - return; - } - _writer.WriteLine($"Warning: please update OWML to v{latestVersion}: {_checkVersion.GitHubReleasesUrl}"); - } - private void LocateGamePath() { var gamePath = _pathFinder.FindGamePath(); @@ -118,12 +95,6 @@ private void ShowModList(IList mods) var stateText = modData.Config.Enabled ? "" : "(disabled)"; _writer.WriteLine($"* {modData.Manifest.UniqueName} v{modData.Manifest.Version} {stateText}"); - var latestVersion = GetNexusVersion(modData.Manifest); - if (!string.IsNullOrEmpty(latestVersion) && modData.Manifest.Version != latestVersion) - { - _writer.WriteLine($" Warning: please update to v{latestVersion}: {_checkVersion.NexusModsUrl}{modData.Manifest.AppIds["nexus"]}"); - } - if (!string.IsNullOrEmpty(modData.Manifest.OWMLVersion) && !IsMadeForSameOwmlMajorVersion(modData.Manifest)) { _writer.WriteLine($" Warning: made for old version of OWML: v{modData.Manifest.OWMLVersion}"); @@ -140,19 +111,6 @@ private bool IsMadeForSameOwmlMajorVersion(IModManifest manifest) owmlVersionSplit[1] == modVersionSplit[1]; } - private string GetNexusVersion(IModManifest manifest) - { - if (manifest.AppIds == null || !manifest.AppIds.Any()) - { - return null; - } - if (!manifest.AppIds.TryGetValue("nexus", out var appId)) - { - return null; - } - return _checkVersion.GetNexusVersion(appId); - } - private void ListenForOutput() { _listener.OnOutput += OnOutput; diff --git a/OWML.Launcher/OWML.Launcher.csproj b/OWML.Launcher/OWML.Launcher.csproj index 8e5d1dcd3..5e25a6260 100644 --- a/OWML.Launcher/OWML.Launcher.csproj +++ b/OWML.Launcher/OWML.Launcher.csproj @@ -84,10 +84,6 @@ {5153D37F-3148-45DE-B1A4-7EBF87965569} OWML.Patcher - - {55ACB9AB-CDCB-4F37-94E0-78891023E44C} - OWML.Update - diff --git a/OWML.Launcher/OWML.Manifest.json b/OWML.Launcher/OWML.Manifest.json index 25ea6987c..87db1eed0 100644 --- a/OWML.Launcher/OWML.Manifest.json +++ b/OWML.Launcher/OWML.Manifest.json @@ -2,5 +2,6 @@ "author": "Alek", "name": "OWML", "uniqueName": "Alek.OWML", - "version": "0.3.44" + "version": "0.3.45", + "description": "The mod loader and mod framework for Outer Wilds" } \ No newline at end of file diff --git a/OWML.Launcher/Program.cs b/OWML.Launcher/Program.cs index 05fe13868..f14574da5 100644 --- a/OWML.Launcher/Program.cs +++ b/OWML.Launcher/Program.cs @@ -5,7 +5,6 @@ using OWML.ModHelper; using OWML.ModLoader; using OWML.Patcher; -using OWML.Update; namespace OWML.Launcher { @@ -21,8 +20,7 @@ static void Main(string[] args) var pathFinder = new PathFinder(owmlConfig, writer); var owPatcher = new OWPatcher(owmlConfig, writer); var vrPatcher = new VRPatcher(owmlConfig, writer); - var checkVersion = new CheckVersion(writer); - var app = new App(owmlConfig, owmlManifest, writer, modFinder, outputListener, pathFinder, owPatcher, vrPatcher, checkVersion); + var app = new App(owmlConfig, owmlManifest, writer, modFinder, outputListener, pathFinder, owPatcher, vrPatcher); app.Run(args); } diff --git a/OWML.SampleMods/OWML.EnableDebugMode/manifest.json b/OWML.SampleMods/OWML.EnableDebugMode/manifest.json index 15959d403..88c2611b0 100644 --- a/OWML.SampleMods/OWML.EnableDebugMode/manifest.json +++ b/OWML.SampleMods/OWML.EnableDebugMode/manifest.json @@ -4,5 +4,6 @@ "name": "EnableDebugMode", "uniqueName": "Alek.EnableDebugMode", "version": "0.2", - "owmlVersion": "0.3.44" + "owmlVersion": "0.3.45", + "description": "Enables the debug mode in Outer Wilds" } \ No newline at end of file diff --git a/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json b/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json index a06cdb50c..f42b50532 100644 --- a/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json +++ b/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json @@ -4,5 +4,6 @@ "name": "LoadCustomAssets", "uniqueName": "Alek.LoadCustomAssets", "version": "0.5", - "owmlVersion": "0.3.44" + "owmlVersion": "0.3.45", + "description": "A mod for testing loading of custom assets" } \ No newline at end of file diff --git a/OWML.Update/CheckVersion.cs b/OWML.Update/CheckVersion.cs deleted file mode 100644 index de97065f3..000000000 --- a/OWML.Update/CheckVersion.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using HtmlAgilityPack; -using OWML.Common; - -namespace OWML.Update -{ - public class CheckVersion - { - public string GitHubReleasesUrl = "https://github.com/amazingalek/owml/releases"; - public string NexusModsUrl = "https://www.nexusmods.com/outerwilds/mods/"; - - private readonly IModConsole _writer; - - public CheckVersion(IModConsole writer) - { - _writer = writer; - } - - public string GetOwmlVersion() - { - var versionNumber = GetVersion(GitHubReleasesUrl, "div.release-header a"); - if (versionNumber != null && versionNumber.Contains("+")) - { - var indexOfPlus = versionNumber.IndexOf("+"); - return versionNumber.Substring(0, indexOfPlus); - } - return versionNumber; - } - - public string GetNexusVersion(string appId) - { - if (string.IsNullOrEmpty(appId)) - { - _writer.WriteLine("Nexus app ID is null or empty."); - return null; - } - return GetVersion(NexusModsUrl + appId, "li.stat-version div.stat"); - } - - private string GetVersion(string url, string selector) - { - var web = new HtmlWeb(); - HtmlNode versionNode; - - try - { - var releasesDoc = web.Load(url); - versionNode = releasesDoc.DocumentNode.QuerySelector(selector); - } - catch (Exception ex) - { - _writer.WriteLine($"Error while getting version in {url}: {ex}"); - return null; - } - - var versionNumber = versionNode?.InnerText; - - if (string.IsNullOrEmpty(versionNumber)) - { - _writer.WriteLine("Error: version number is null or empty in " + url); - return null; - } - - return versionNumber; - } - } -} diff --git a/OWML.Update/OWML.Update.csproj b/OWML.Update/OWML.Update.csproj deleted file mode 100644 index da1d8607d..000000000 --- a/OWML.Update/OWML.Update.csproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - - Debug - AnyCPU - {55ACB9AB-CDCB-4F37-94E0-78891023E44C} - Library - Properties - OWML.Update - OWML.Update - v4.7.2 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - - ..\packages\HtmlAgilityPack.CssSelectors.1.0.2\lib\net45\HtmlAgilityPack.dll - - - ..\packages\HtmlAgilityPack.CssSelectors.1.0.2\lib\net45\HtmlAgilityPack.CssSelectors.dll - - - - - - - - - - - - - - - - - - {3C00626F-B688-4F32-B493-5B7EC1C879A0} - OWML.Common - - - - \ No newline at end of file diff --git a/OWML.Update/Properties/AssemblyInfo.cs b/OWML.Update/Properties/AssemblyInfo.cs deleted file mode 100644 index 13a967bcb..000000000 --- a/OWML.Update/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OWML.Update")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OWML.Update")] -[assembly: AssemblyCopyright("Copyright © 2020")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("55acb9ab-cdcb-4f37-94e0-78891023e44c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OWML.Update/packages.config b/OWML.Update/packages.config deleted file mode 100644 index 1b3bd2a61..000000000 --- a/OWML.Update/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/OWML.sln b/OWML.sln index c91f74809..54f169daf 100644 --- a/OWML.sln +++ b/OWML.sln @@ -27,8 +27,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OWML.Nuget", "OWML.Nuget\OW EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OWML.ModHelper.Menus", "OWML.ModHelper.Menus\OWML.ModHelper.Menus.csproj", "{B874CC24-8340-4238-AC9D-1BFB41186BB5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OWML.Update", "OWML.Update\OWML.Update.csproj", "{55ACB9AB-CDCB-4F37-94E0-78891023E44C}" -EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,10 +77,6 @@ Global {B874CC24-8340-4238-AC9D-1BFB41186BB5}.Debug|Any CPU.Build.0 = Debug|Any CPU {B874CC24-8340-4238-AC9D-1BFB41186BB5}.Release|Any CPU.ActiveCfg = Release|Any CPU {B874CC24-8340-4238-AC9D-1BFB41186BB5}.Release|Any CPU.Build.0 = Release|Any CPU - {55ACB9AB-CDCB-4F37-94E0-78891023E44C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {55ACB9AB-CDCB-4F37-94E0-78891023E44C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {55ACB9AB-CDCB-4F37-94E0-78891023E44C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {55ACB9AB-CDCB-4F37-94E0-78891023E44C}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Readme.md b/Readme.md index 09cbfdf38..512a1f6ce 100644 --- a/Readme.md +++ b/Readme.md @@ -11,13 +11,17 @@ OWML does the following: ## Installation +With [Outer Wilds Mod Manager](https://github.com/Raicuparta/ow-mod-manager) (recommended): +1. Download the [latest release of the Mod Manager](https://github.com/Raicuparta/ow-mod-manager/releases). +2. Use the Mod Manager to install OWML and mods, and start the game. + With Vortex: 1. Download OWML and extract the zip file. 2. Put the OWML folder in the game's root folder, usually C:\Program Files\Epic Games\OuterWilds. 3. Install [the Vortex extension](https://www.nexusmods.com/site/mods/73/). 4. Use [Vortex](https://www.nexusmods.com/site/mods/1/) to install mods and start the game. -Without Vortex: +Manual install: 1. Download OWML and extract the zip file anywhere you want. 2. [Download mods](https://www.nexusmods.com/outerwilds) and put them in the Mods folder, each mod in a separate folder. 3. Start the game with OWML.Launcher.exe. @@ -119,6 +123,4 @@ Dependencies: * [Json.Net.Unity3D](https://github.com/SaladLab/Json.Net.Unity3D) * [ObjImporter](https://wiki.unity3d.com/index.php?title=ObjImporter) * [NAudio-Unity](https://github.com/WulfMarius/NAudio-Unity) -* [HtmlAgilityPack](https://html-agility-pack.net) -* [HtmlAgilityPack.CssSelector](https://github.com/hcesar/HtmlAgilityPack.CssSelector) * [BsDiff](https://github.com/LogosBible/bsdiff.net) diff --git a/createrelease.bat b/createrelease.bat index 858f2a6ca..b12d30015 100644 --- a/createrelease.bat +++ b/createrelease.bat @@ -15,9 +15,6 @@ copy "OWML.Patcher\VR\*" "Release\VR\" copy "OWML.Patcher\VR\BsPatch.dll" "Release\BsPatch.dll" copy "OWML.Patcher\VR\ICSharpCode.SharpZipLib.dll" "Release\ICSharpCode.SharpZipLib.dll" copy "OWML.Launcher\bin\Debug\System.Runtime.Serialization.dll" "Release\System.Runtime.Serialization.dll" -copy "OWML.Update\bin\Debug\OWML.Update.dll" "Release\OWML.Update.dll" -copy "OWML.Update\bin\Debug\HtmlAgilityPack.dll" "Release\HtmlAgilityPack.dll" -copy "OWML.Update\bin\Debug\HtmlAgilityPack.CssSelectors.dll" "Release\HtmlAgilityPack.CssSelectors.dll" copy "OWML.Nuget\bin\Debug\NAudio-Unity.dll" "Release\NAudio-Unity.dll" copy "OWML.Nuget\bin\Debug\OWML.Common.dll" "Release\OWML.Common.dll"