MSCO 2.9.0: standalone without MSCLoader (Unity Doorstop)

- Bootstrap: Doorstop entry point, loads Harmony/Newtonsoft from the MSCO folder, hooks
  PlayMakerArrayListProxy.Awake and starts MSCO in the main menu; skips the news screen
- No MSCLoader reference anymore; key bindings in PlayerPrefs, bind console command
- Harmony 1.2 and Newtonsoft.Json in lib/ (MIT notices); build copies to <game>\MSCO
- README/CHANGELOG updated

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-02 23:36:28 +02:00
co-authored by Claude Opus 5.5
parent ee162bd64f
commit 461d94c5fc
26 changed files with 307 additions and 156 deletions
+3 -4
View File
@@ -1,7 +1,6 @@
using System.Collections.Generic;
using System.IO;
using HutongGames.PlayMaker;
using MSCLoader;
using UnityEngine;
namespace MSCO
@@ -1103,7 +1102,7 @@ namespace MSCO
public string DisconnectNotice { get; private set; }
// ---------------------------------------------------------------- Über Neuladen hinweg merken
// Beim Wechsel ins Hauptmenü lädt MSCLoader alle Mods neu - dabei ginge der Kick-Grund bzw. "bitte neu
// Beim Wechsel ins Hauptmenü wird die Sitzung neu aufgebaut - dabei ginge der Kick-Grund bzw. "bitte neu
// verbinden" verloren, bevor man das Menü überhaupt sieht. Deshalb in den PlayerPrefs sichern.
const string PrefNotice = "MSCO_PendingNotice";
const string PrefReconnect = "MSCO_PendingReconnect";
@@ -1339,7 +1338,7 @@ namespace MSCO
if (wasClientInGame)
{
SetStatus("Disconnected from host: " + reason);
PersistPendingState(); // MSCLoader lädt die Mods im Menü neu - vorher sichern
PersistPendingState(); // das Menü baut alles neu auf - vorher sichern
Application.LoadLevel(MenuHelper.MenuScene);
}
}
@@ -2422,7 +2421,7 @@ namespace MSCO
overlays.Draw(this, session != null);
}
/// <summary>F7 Konsole, T Chat (Tasten in den MSCLoader-Einstellungen änderbar).</summary>
/// <summary>F7 Konsole, T Chat (Tasten mit "bind" in der Konsole änderbar).</summary>
void UpdateOverlayKeys()
{
if (MSCO.ConsoleKey != null && MSCO.ConsoleKey.GetKeybindDown()) overlays.ToggleConsole();