From 058d62d5fa1cae953bfaf62d35d91fc014cc0714 Mon Sep 17 00:00:00 2001 From: Ricardo Lopes Date: Wed, 13 May 2020 22:32:00 +0200 Subject: [PATCH] Send logs to socket (#101) * Add VR patch for Outer Wilds update 1.0.6 * updated the readme (#87) * Owml manifest (#88) * owml manifest file * fixed error messages in storage helper (#89) * adaptations for the mod manager (#90) * removed (slow) version checking * added descriptions * updated readme * mods have separate logger and console objects (#91) * mods have separate logger and console objects * Logging some stuff to socket * Sending absolutely everything to socket * Cleanup * Pick between file and socket consoles * Console port argument constant * Simpler argument get * Add separate project for logging * Move all logging-related stuff to Logging project * Helper Output.cs * Use public property instead of getter / setter. * Simplified command line argument parsing * Socket creation early return * Exit console if socket port argument present * Remove this line that I don't know why I had in the first place * Use Output.OnWrite instead of ModConsole.OnConsole * Simplify decrecated event * Cleanup * Make Mod*Output extend from ModConsole * Mod interaction (#93) Added mod interaction methods, and improved Invoke method. * Simplify modsocketoutput constructor * Remove unnecessary statics * Revert "Remove unnecessary statics" This reverts commit 8dc0c630d52aa0a18828553598975ea7bec7d891. * Revert ModConsole namespace * Rename ModConsole to ModOutput * Ouput factory * Remove redundant elses * Rename instance to OwmlOutput, remove deprecated * Cleanup * formatting, removed unused stuff * . * Using ExitConsole in two places * Name / message separator as const * version * Move ModHelper.Logging to ModHelper * Revert singletone instance * Remove references to Logging project * Rename protected variables * protected ModConsole constructor * Move logging stuff to Logging subdirectory * Update OW.Unity.Dlls to 1.0.5 * Bump version Co-authored-by: AmazingAlek Co-authored-by: Mister_Nebula <41904486+misternebula@users.noreply.github.com> --- OWML.Common/CommandLineArguments.cs | 26 +++++++ OWML.Common/Constants.cs | 1 + OWML.Common/OWML.Common.csproj | 68 ++++++++++--------- OWML.Common/packages.config | 2 +- OWML.Launcher/App.cs | 18 ++++- OWML.Launcher/OWML.Launcher.csproj | 1 - OWML.Launcher/OWML.Manifest.json | 4 +- OWML.Launcher/Program.cs | 2 +- .../OWML.ModHelper.Assets.csproj | 25 ++++--- OWML.ModHelper.Assets/packages.config | 2 +- .../OWML.ModHelper.Events.csproj | 25 ++++--- OWML.ModHelper.Events/packages.config | 2 +- .../OWML.ModHelper.Interaction.csproj | 26 ++++--- OWML.ModHelper.Interaction/packages.config | 2 +- .../OWML.ModHelper.Menus.csproj | 25 ++++--- OWML.ModHelper.Menus/packages.config | 2 +- OWML.ModHelper/Logging/ModConsole.cs | 37 ++++++++++ OWML.ModHelper/Logging/ModFileOutput.cs | 42 ++++++++++++ OWML.ModHelper/{ => Logging}/ModLogger.cs | 0 OWML.ModHelper/Logging/ModSocketOutput.cs | 59 ++++++++++++++++ OWML.ModHelper/Logging/OutputFactory.cs | 23 +++++++ .../Logging}/OutputWriter.cs | 2 +- OWML.ModHelper/ModConfig.cs | 2 +- OWML.ModHelper/ModConsole.cs | 56 --------------- OWML.ModHelper/OWML.ModHelper.csproj | 35 ++++++---- OWML.ModHelper/packages.config | 2 +- OWML.ModLoader/ModLoader.cs | 2 +- OWML.ModLoader/OWML.ModLoader.csproj | 25 ++++--- OWML.ModLoader/Owo.cs | 2 +- OWML.ModLoader/packages.config | 2 +- OWML.Patcher/OWPatcher.cs | 18 +++-- .../OWML.EnableDebugMode.csproj | 25 ++++--- .../OWML.EnableDebugMode/manifest.json | 4 +- .../OWML.EnableDebugMode/packages.config | 2 +- .../OWML.LoadCustomAssets.csproj | 25 ++++--- .../OWML.LoadCustomAssets/manifest.json | 4 +- .../OWML.LoadCustomAssets/packages.config | 2 +- createrelease.bat | 2 +- 38 files changed, 397 insertions(+), 205 deletions(-) create mode 100644 OWML.Common/CommandLineArguments.cs create mode 100644 OWML.ModHelper/Logging/ModConsole.cs create mode 100644 OWML.ModHelper/Logging/ModFileOutput.cs rename OWML.ModHelper/{ => Logging}/ModLogger.cs (100%) create mode 100644 OWML.ModHelper/Logging/ModSocketOutput.cs create mode 100644 OWML.ModHelper/Logging/OutputFactory.cs rename {OWML.Launcher => OWML.ModHelper/Logging}/OutputWriter.cs (97%) delete mode 100644 OWML.ModHelper/ModConsole.cs diff --git a/OWML.Common/CommandLineArguments.cs b/OWML.Common/CommandLineArguments.cs new file mode 100644 index 00000000..fe63bd12 --- /dev/null +++ b/OWML.Common/CommandLineArguments.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace OWML.Common +{ + public static class CommandLineArguments + { + public static string GetArgument(string name) + { + var arguments = Environment.GetCommandLineArgs(); + var keyIndex = Array.IndexOf(arguments, $"-{name}"); + if (keyIndex == -1 || keyIndex >= arguments.Length - 1) + { + return null; + } + return arguments[keyIndex + 1]; + } + + public static bool HasArgument(string name) + { + return GetArgument(name) != null; + } + } +} diff --git a/OWML.Common/Constants.cs b/OWML.Common/Constants.cs index ca887fde..db4791a2 100644 --- a/OWML.Common/Constants.cs +++ b/OWML.Common/Constants.cs @@ -3,5 +3,6 @@ public class Constants { public const string QuitKeyPhrase = "{RageAgainstTheDyingOfTheLight}"; + public const string ConsolePortArgument = "consolePort"; } } diff --git a/OWML.Common/OWML.Common.csproj b/OWML.Common/OWML.Common.csproj index 6269eed8..d25516e7 100644 --- a/OWML.Common/OWML.Common.csproj +++ b/OWML.Common/OWML.Common.csproj @@ -32,38 +32,7 @@ 4 - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll - - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll - - - + @@ -100,6 +69,41 @@ + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + + diff --git a/OWML.Common/packages.config b/OWML.Common/packages.config index 8288b7a4..6420a0e4 100644 --- a/OWML.Common/packages.config +++ b/OWML.Common/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OWML.Launcher/App.cs b/OWML.Launcher/App.cs index 6abac2d8..7b7a7385 100644 --- a/OWML.Launcher/App.cs +++ b/OWML.Launcher/App.cs @@ -42,7 +42,11 @@ public void Run(string[] args) CopyGameFiles(); - ListenForOutput(); + var hasPortArgument = CommandLineArguments.HasArgument(Constants.ConsolePortArgument); + if (!hasPortArgument) + { + ListenForOutput(); + } var mods = _modFinder.GetMods(); @@ -52,6 +56,11 @@ public void Run(string[] args) StartGame(args); + if (hasPortArgument) + { + ExitConsole(); + } + Console.ReadLine(); } @@ -125,7 +134,7 @@ private void OnOutput(string s) _writer.WriteLine(line); if (line.EndsWith(Constants.QuitKeyPhrase)) { - Environment.Exit(0); + ExitConsole(); } } } @@ -153,5 +162,10 @@ private void StartGame(string[] args) } } + private void ExitConsole() + { + Environment.Exit(0); + } + } } diff --git a/OWML.Launcher/OWML.Launcher.csproj b/OWML.Launcher/OWML.Launcher.csproj index 5e25a626..b4848c85 100644 --- a/OWML.Launcher/OWML.Launcher.csproj +++ b/OWML.Launcher/OWML.Launcher.csproj @@ -51,7 +51,6 @@ - diff --git a/OWML.Launcher/OWML.Manifest.json b/OWML.Launcher/OWML.Manifest.json index 13a2e80a..ba436c74 100644 --- a/OWML.Launcher/OWML.Manifest.json +++ b/OWML.Launcher/OWML.Manifest.json @@ -2,6 +2,6 @@ "author": "Alek", "name": "OWML", "uniqueName": "Alek.OWML", - "version": "0.3.48", + "version": "0.3.49", "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 f14574da..5be3d5d8 100644 --- a/OWML.Launcher/Program.cs +++ b/OWML.Launcher/Program.cs @@ -14,7 +14,7 @@ static void Main(string[] args) { var owmlConfig = GetOwmlConfig(); var owmlManifest = GetOwmlManifest(); - var writer = new OutputWriter(); + var writer = OutputFactory.CreateOutput(owmlConfig, null, owmlManifest); var modFinder = new ModFinder(owmlConfig, writer); var outputListener = new OutputListener(owmlConfig); var pathFinder = new PathFinder(owmlConfig, writer); diff --git a/OWML.ModHelper.Assets/OWML.ModHelper.Assets.csproj b/OWML.ModHelper.Assets/OWML.ModHelper.Assets.csproj index 7178b702..62151595 100644 --- a/OWML.ModHelper.Assets/OWML.ModHelper.Assets.csproj +++ b/OWML.ModHelper.Assets/OWML.ModHelper.Assets.csproj @@ -34,38 +34,41 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll NAudio-Unity\NAudio-Unity.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.ModHelper.Assets/packages.config b/OWML.ModHelper.Assets/packages.config index 8288b7a4..6420a0e4 100644 --- a/OWML.ModHelper.Assets/packages.config +++ b/OWML.ModHelper.Assets/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OWML.ModHelper.Events/OWML.ModHelper.Events.csproj b/OWML.ModHelper.Events/OWML.ModHelper.Events.csproj index aa6000d1..9afea3ae 100644 --- a/OWML.ModHelper.Events/OWML.ModHelper.Events.csproj +++ b/OWML.ModHelper.Events/OWML.ModHelper.Events.csproj @@ -36,35 +36,38 @@ ..\packages\Lib.Harmony.1.2.0.1\lib\net35\0Harmony.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.ModHelper.Events/packages.config b/OWML.ModHelper.Events/packages.config index 2dec3d55..ac652e33 100644 --- a/OWML.ModHelper.Events/packages.config +++ b/OWML.ModHelper.Events/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/OWML.ModHelper.Interaction/OWML.ModHelper.Interaction.csproj b/OWML.ModHelper.Interaction/OWML.ModHelper.Interaction.csproj index 9bfbd164..e3c3b5da 100644 --- a/OWML.ModHelper.Interaction/OWML.ModHelper.Interaction.csproj +++ b/OWML.ModHelper.Interaction/OWML.ModHelper.Interaction.csproj @@ -32,10 +32,10 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll @@ -44,25 +44,31 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.ModHelper.Interaction/packages.config b/OWML.ModHelper.Interaction/packages.config index 8288b7a4..6420a0e4 100644 --- a/OWML.ModHelper.Interaction/packages.config +++ b/OWML.ModHelper.Interaction/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OWML.ModHelper.Menus/OWML.ModHelper.Menus.csproj b/OWML.ModHelper.Menus/OWML.ModHelper.Menus.csproj index 8c33f219..2515f11e 100644 --- a/OWML.ModHelper.Menus/OWML.ModHelper.Menus.csproj +++ b/OWML.ModHelper.Menus/OWML.ModHelper.Menus.csproj @@ -32,13 +32,13 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll ..\packages\Json.Net.Unity3D.9.0.1\lib\net35\Newtonsoft.Json.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll @@ -47,28 +47,31 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.ModHelper.Menus/packages.config b/OWML.ModHelper.Menus/packages.config index 074e374a..924c31ab 100644 --- a/OWML.ModHelper.Menus/packages.config +++ b/OWML.ModHelper.Menus/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/OWML.ModHelper/Logging/ModConsole.cs b/OWML.ModHelper/Logging/ModConsole.cs new file mode 100644 index 00000000..866867e5 --- /dev/null +++ b/OWML.ModHelper/Logging/ModConsole.cs @@ -0,0 +1,37 @@ +using System; +using OWML.Common; + +namespace OWML.ModHelper +{ + public abstract class ModConsole : IModConsole + { + [Obsolete("Use ModHelper.Console instead")] + public static ModConsole Instance { get; private set; } + + public static event Action OnConsole; + + protected readonly IModLogger Logger; + protected readonly IModManifest Manifest; + protected readonly IOwmlConfig OwmlConfig; + + public abstract void WriteLine(string s); + public abstract void WriteLine(params object[] s); + + protected ModConsole(IOwmlConfig config, IModLogger logger, IModManifest manifest) + { + Logger = logger; + Manifest = manifest; + OwmlConfig = config; + + if (manifest.Name == "OWML") + { + Instance = this; + } + } + + internal static void CallWriteCallback(IModManifest manifest, string text) + { + OnConsole?.Invoke(manifest, text); + } + } +} diff --git a/OWML.ModHelper/Logging/ModFileOutput.cs b/OWML.ModHelper/Logging/ModFileOutput.cs new file mode 100644 index 00000000..500de11e --- /dev/null +++ b/OWML.ModHelper/Logging/ModFileOutput.cs @@ -0,0 +1,42 @@ +using System; +using System.IO; +using System.Linq; +using System.Text; +using OWML.Common; + +namespace OWML.ModHelper +{ + public class ModFileOutput : ModConsole + { + private static FileStream _writer; + + public ModFileOutput(IOwmlConfig config, IModLogger logger, IModManifest manifest) : base(config, logger, manifest) + { + if (_writer == null) + { + _writer = File.Open(config.OutputFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); + } + } + + public override void WriteLine(string s) + { + Logger.Log(s); + CallWriteCallback(Manifest, s); + var message = $"[{Manifest.Name}]: {s}"; + InternalWriteLine(message); + } + + public override void WriteLine(params object[] objects) + { + WriteLine(string.Join(" ", objects.Select(o => o.ToString()).ToArray())); + } + + private static void InternalWriteLine(string message) + { + var bytes = Encoding.UTF8.GetBytes(message + Environment.NewLine); + _writer.Write(bytes, 0, bytes.Length); + _writer.Flush(); + } + + } +} diff --git a/OWML.ModHelper/ModLogger.cs b/OWML.ModHelper/Logging/ModLogger.cs similarity index 100% rename from OWML.ModHelper/ModLogger.cs rename to OWML.ModHelper/Logging/ModLogger.cs diff --git a/OWML.ModHelper/Logging/ModSocketOutput.cs b/OWML.ModHelper/Logging/ModSocketOutput.cs new file mode 100644 index 00000000..47189141 --- /dev/null +++ b/OWML.ModHelper/Logging/ModSocketOutput.cs @@ -0,0 +1,59 @@ +using System; +using System.Linq; +using System.Net; +using System.Net.Sockets; +using System.Text; +using OWML.Common; + +namespace OWML.ModHelper +{ + public class ModSocketOutput : ModConsole + { + private const string LocalHost = "127.0.0.1"; + private const string NameMessageSeparator = ";;"; + + private static Socket _socket; + + public ModSocketOutput(IOwmlConfig config, IModLogger logger, IModManifest manifest) : base(config, logger, manifest) + { + if (_socket == null) + { + CreateSocket(); + } + } + + public override void WriteLine(string s) + { + Logger?.Log(s); + CallWriteCallback(Manifest, s); + var message = $"{Manifest.Name}{NameMessageSeparator}{s}"; + InternalWriteLine(message); + } + + public override void WriteLine(params object[] objects) + { + WriteLine(string.Join(" ", objects.Select(o => o.ToString()).ToArray())); + } + + private void CreateSocket() + { + var consolePortArgument = CommandLineArguments.GetArgument(Constants.ConsolePortArgument); + if (!int.TryParse(consolePortArgument, out var port)) + { + Logger?.Log("Error: Missing or incorrectly formatted console port argument"); + return; + } + + _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + var ipAddress = IPAddress.Parse(LocalHost); + var endPoint = new IPEndPoint(ipAddress, port); + _socket.Connect(endPoint); + } + + private void InternalWriteLine(string message) + { + var bytes = Encoding.UTF8.GetBytes(message + Environment.NewLine); + _socket?.Send(bytes); + } + } +} diff --git a/OWML.ModHelper/Logging/OutputFactory.cs b/OWML.ModHelper/Logging/OutputFactory.cs new file mode 100644 index 00000000..a913be3d --- /dev/null +++ b/OWML.ModHelper/Logging/OutputFactory.cs @@ -0,0 +1,23 @@ +using OWML.Common; + + +namespace OWML.ModHelper +{ + public class OutputFactory + { + public static IModConsole CreateOutput(IOwmlConfig owmlConfig, IModLogger logger, IModManifest manifest) + { + if (CommandLineArguments.HasArgument(Constants.ConsolePortArgument)) + { + return new ModSocketOutput(owmlConfig, logger, manifest); + } + + if (logger == null) + { + return new OutputWriter(); + } + + return new ModFileOutput(owmlConfig, logger, manifest); + } + } +} diff --git a/OWML.Launcher/OutputWriter.cs b/OWML.ModHelper/Logging/OutputWriter.cs similarity index 97% rename from OWML.Launcher/OutputWriter.cs rename to OWML.ModHelper/Logging/OutputWriter.cs index 3ded3981..0774b24f 100644 --- a/OWML.Launcher/OutputWriter.cs +++ b/OWML.ModHelper/Logging/OutputWriter.cs @@ -2,7 +2,7 @@ using System.Linq; using OWML.Common; -namespace OWML.Launcher +namespace OWML.ModHelper { public class OutputWriter : IModConsole { diff --git a/OWML.ModHelper/ModConfig.cs b/OWML.ModHelper/ModConfig.cs index ad32da16..b966af0a 100644 --- a/OWML.ModHelper/ModConfig.cs +++ b/OWML.ModHelper/ModConfig.cs @@ -52,7 +52,7 @@ public void SetSettingsValue(string key, object val) if (value is JObject obj) { obj["value"] = "" + val; - } + } else { Settings[key] = val; diff --git a/OWML.ModHelper/ModConsole.cs b/OWML.ModHelper/ModConsole.cs deleted file mode 100644 index 51fca8f3..00000000 --- a/OWML.ModHelper/ModConsole.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.IO; -using System.Linq; -using System.Text; -using OWML.Common; - -namespace OWML.ModHelper -{ - public class ModConsole : IModConsole - { - [Obsolete("Use ModHelper.Console instead")] - public static ModConsole Instance { get; private set; } - - public static event Action OnConsole; - - private static FileStream _writer; - - private readonly IModLogger _logger; - private readonly IModManifest _manifest; - - public ModConsole(IOwmlConfig config, IModLogger logger, IModManifest manifest) - { - if (manifest.Name == "OWML") - { - Instance = this; - } - _logger = logger; - _manifest = manifest; - if (_writer == null) - { - _writer = File.Open(config.OutputFilePath, FileMode.Create, FileAccess.Write, FileShare.ReadWrite); - } - } - - public void WriteLine(string s) - { - _logger.Log(s); - OnConsole?.Invoke(_manifest, s); - var message = $"[{_manifest.Name}]: {s}"; - InternalWriteLine(message); - } - - public void WriteLine(params object[] objects) - { - WriteLine(string.Join(" ", objects.Select(o => o.ToString()).ToArray())); - } - - private static void InternalWriteLine(string message) - { - var bytes = Encoding.UTF8.GetBytes(message + Environment.NewLine); - _writer.Write(bytes, 0, bytes.Length); - _writer.Flush(); - } - - } -} diff --git a/OWML.ModHelper/OWML.ModHelper.csproj b/OWML.ModHelper/OWML.ModHelper.csproj index bf2f66a0..60af7393 100644 --- a/OWML.ModHelper/OWML.ModHelper.csproj +++ b/OWML.ModHelper/OWML.ModHelper.csproj @@ -33,38 +33,43 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll ..\packages\Json.Net.Unity3D.9.0.1\lib\net35\Newtonsoft.Json.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll + + - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll @@ -72,11 +77,15 @@ + + + + + + - - diff --git a/OWML.ModHelper/packages.config b/OWML.ModHelper/packages.config index 074e374a..924c31ab 100644 --- a/OWML.ModHelper/packages.config +++ b/OWML.ModHelper/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/OWML.ModLoader/ModLoader.cs b/OWML.ModLoader/ModLoader.cs index 206cb1bd..9c58afd4 100644 --- a/OWML.ModLoader/ModLoader.cs +++ b/OWML.ModLoader/ModLoader.cs @@ -26,7 +26,7 @@ public static void LoadMods() } var logger = new ModLogger(owmlConfig, owmlManifest); logger.Log("Got config!"); - var console = new ModConsole(owmlConfig, logger, owmlManifest); + var console = OutputFactory.CreateOutput(owmlConfig, logger, owmlManifest); console.WriteLine("Mod loader has been initialized."); var modSorter = new ModSorter(console); var modFinder = new ModFinder(owmlConfig, console); diff --git a/OWML.ModLoader/OWML.ModLoader.csproj b/OWML.ModLoader/OWML.ModLoader.csproj index 82122e79..650692ce 100644 --- a/OWML.ModLoader/OWML.ModLoader.csproj +++ b/OWML.ModLoader/OWML.ModLoader.csproj @@ -33,38 +33,41 @@ - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll ..\packages\Json.Net.Unity3D.9.0.1\lib\net35\Newtonsoft.Json.dll - - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.ModLoader/Owo.cs b/OWML.ModLoader/Owo.cs index 93caf9ce..32148041 100644 --- a/OWML.ModLoader/Owo.cs +++ b/OWML.ModLoader/Owo.cs @@ -107,7 +107,7 @@ private Type LoadMod(IModData modData) private IModHelper CreateModHelper(IModData modData) { var logger = new ModLogger(_owmlConfig, modData.Manifest); - var console = new ModConsole(_owmlConfig, _logger, modData.Manifest); + var console = OutputFactory.CreateOutput(_owmlConfig, _logger, modData.Manifest); var assets = new ModAssets(console, modData.Manifest); var storage = new ModStorage(console, modData.Manifest); var events = new ModEvents(logger, console, _harmonyHelper); diff --git a/OWML.ModLoader/packages.config b/OWML.ModLoader/packages.config index 074e374a..924c31ab 100644 --- a/OWML.ModLoader/packages.config +++ b/OWML.ModLoader/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/OWML.Patcher/OWPatcher.cs b/OWML.Patcher/OWPatcher.cs index a4b55dae..5f87d08d 100644 --- a/OWML.Patcher/OWPatcher.cs +++ b/OWML.Patcher/OWPatcher.cs @@ -31,10 +31,20 @@ public void PatchGame() private void CopyFiles() { - var filesToCopy = new[] { "OWML.ModLoader.dll", "OWML.Common.dll", "OWML.ModHelper.dll", - "OWML.ModHelper.Events.dll", "OWML.ModHelper.Assets.dll", "OWML.ModHelper.Menus.dll", - "Newtonsoft.Json.dll", "System.Runtime.Serialization.dll", "0Harmony.dll", "NAudio-Unity.dll", - "OWML.Manifest.json", "OWML.ModHelper.Interaction.dll" }; + var filesToCopy = new[] { + "OWML.ModLoader.dll", + "OWML.Common.dll", + "OWML.ModHelper.dll", + "OWML.ModHelper.Events.dll", + "OWML.ModHelper.Assets.dll", + "OWML.ModHelper.Menus.dll", + "Newtonsoft.Json.dll", + "System.Runtime.Serialization.dll", + "0Harmony.dll", + "NAudio-Unity.dll", + "OWML.Manifest.json", + "OWML.ModHelper.Interaction.dll" + }; foreach (var filename in filesToCopy) { File.Copy(filename, $"{_owmlConfig.ManagedPath}/{filename}", true); diff --git a/OWML.SampleMods/OWML.EnableDebugMode/OWML.EnableDebugMode.csproj b/OWML.SampleMods/OWML.EnableDebugMode/OWML.EnableDebugMode.csproj index 5dc3f872..bbf383ce 100644 --- a/OWML.SampleMods/OWML.EnableDebugMode/OWML.EnableDebugMode.csproj +++ b/OWML.SampleMods/OWML.EnableDebugMode/OWML.EnableDebugMode.csproj @@ -32,35 +32,38 @@ - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll - - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.SampleMods/OWML.EnableDebugMode/manifest.json b/OWML.SampleMods/OWML.EnableDebugMode/manifest.json index f7a36cb5..75c17627 100644 --- a/OWML.SampleMods/OWML.EnableDebugMode/manifest.json +++ b/OWML.SampleMods/OWML.EnableDebugMode/manifest.json @@ -4,6 +4,6 @@ "name": "EnableDebugMode", "uniqueName": "Alek.EnableDebugMode", "version": "0.2", - "owmlVersion": "0.3.48", + "owmlVersion": "0.3.49", "description": "Enables the debug mode in Outer Wilds" -} \ No newline at end of file +} diff --git a/OWML.SampleMods/OWML.EnableDebugMode/packages.config b/OWML.SampleMods/OWML.EnableDebugMode/packages.config index 8288b7a4..6420a0e4 100644 --- a/OWML.SampleMods/OWML.EnableDebugMode/packages.config +++ b/OWML.SampleMods/OWML.EnableDebugMode/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file diff --git a/OWML.SampleMods/OWML.LoadCustomAssets/OWML.LoadCustomAssets.csproj b/OWML.SampleMods/OWML.LoadCustomAssets/OWML.LoadCustomAssets.csproj index 3e65f717..dce5e0df 100644 --- a/OWML.SampleMods/OWML.LoadCustomAssets/OWML.LoadCustomAssets.csproj +++ b/OWML.SampleMods/OWML.LoadCustomAssets/OWML.LoadCustomAssets.csproj @@ -32,38 +32,41 @@ - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\Assembly-CSharp.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\Assembly-CSharp.dll ..\..\packages\Json.Net.Unity3D.9.0.1\lib\net35\Newtonsoft.Json.dll - - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\OW.Unity.Dlls.dll + + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\OW.Unity.Dlls.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.AudioModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.AudioModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.CoreModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.CoreModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.IMGUIModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.IMGUIModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.PhysicsModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.PhysicsModule.dll + + + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.TextRenderingModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UI.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UI.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UIModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UIModule.dll - ..\..\packages\OW.Unity.Dlls.1.0.4\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll + ..\..\packages\OW.Unity.Dlls.1.0.5\lib\net35\UnityEngine.UnityWebRequestWWWModule.dll diff --git a/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json b/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json index e101db6d..4adc3dd9 100644 --- a/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json +++ b/OWML.SampleMods/OWML.LoadCustomAssets/manifest.json @@ -4,6 +4,6 @@ "name": "LoadCustomAssets", "uniqueName": "Alek.LoadCustomAssets", "version": "0.5", - "owmlVersion": "0.3.48", + "owmlVersion": "0.3.49", "description": "A mod for testing loading of custom assets" -} \ No newline at end of file +} diff --git a/OWML.SampleMods/OWML.LoadCustomAssets/packages.config b/OWML.SampleMods/OWML.LoadCustomAssets/packages.config index 074e374a..924c31ab 100644 --- a/OWML.SampleMods/OWML.LoadCustomAssets/packages.config +++ b/OWML.SampleMods/OWML.LoadCustomAssets/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/createrelease.bat b/createrelease.bat index 8782db91..388bbb33 100644 --- a/createrelease.bat +++ b/createrelease.bat @@ -43,4 +43,4 @@ copy "OWML.SampleMods\OWML.LoadCustomAssets\bin\Debug\savefile.json" "Release\Mo copy "OWML.SampleMods\OWML.LoadCustomAssets\bin\Debug\cubebundle" "Release\Mods\OWML.LoadCustomAssets\cubebundle" copy "OWML.SampleMods\OWML.LoadCustomAssets\bin\Debug\cubebundle.manifest" "Release\Mods\OWML.LoadCustomAssets\cubebundle.manifest" -7z a "Release\OWML.zip" "Release" \ No newline at end of file +7z a "Release\OWML.zip" "Release"