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
+7 -35
View File
@@ -42,12 +42,8 @@
<HintPath>F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\UnityEngine.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="MSCLoader">
<HintPath>F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\MSCLoader.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Newtonsoft.Json">
<HintPath>F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\Newtonsoft.Json.dll</HintPath>
<HintPath>lib\Newtonsoft.Json.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="Assembly-CSharp-firstpass">
@@ -67,7 +63,7 @@
<Private>False</Private>
</Reference>
<Reference Include="0Harmony">
<HintPath>F:\SteamLibrary\steamapps\common\My Summer Car\mysummercar_Data\Managed\0Harmony.dll</HintPath>
<HintPath>lib\0Harmony.dll</HintPath>
<Private>False</Private>
</Reference>
</ItemGroup>
@@ -82,7 +78,7 @@
<Compile Include="Toasts.cs" />
<Compile Include="PlayerNeeds.cs" />
<Compile Include="Favorites.cs" />
<Compile Include="MpCommand.cs" />
<Compile Include="Bootstrap.cs" />
<Compile Include="Commands.cs" />
<Compile Include="MscoLog.cs" />
<Compile Include="ItemSpawner.cs" />
@@ -120,35 +116,11 @@
<Compile Include="RemotePlayer.cs" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<MSCMODSFOLDER>C:\Users\nico\Documents\MySummerCar\Mods</MSCMODSFOLDER>
<MWCMODSFOLDER>NONE</MWCMODSFOLDER>
<ABFOLDER>NONE</ABFOLDER>
<PostBuildEvent>
echo .
echo "== Running post build actions for configuration $(ConfigurationName)! ==="
IF "$(ConfigurationName)" == "Release" (
IF NOT "$(MSCMODSFOLDER)" == "NONE" (
copy "$(TargetPath)" "$(MSCMODSFOLDER)" /y
echo "Copied dll into MSC mods folder!"
)
IF NOT "$(MWCMODSFOLDER)" == "NONE" (
copy "$(TargetPath)" "$(MWCMODSFOLDER)" /y
echo "Copied dll into MWC mods folder!"
)
)
if "$(ConfigurationName)" == "Debug" (
copy "$(TargetPath)" "C:\Users\nico\Documents\MySummerCar\Mods" /y
copy "$(TargetDir)$(TargetName).pdb" "C:\Users\nico\Documents\MySummerCar\Mods" /y
cd "C:\Users\nico\Documents\MySummerCar\Mods"
call "C:\Users\nico\Documents\MySummerCar\Mods\debug.bat"
) ELSE (
copy "$(TargetPath)" "C:\Users\nico\Documents\MySummerCar\Mods\Mods" /y
)
</PostBuildEvent>
</PropertyGroup>
<!-- Zum Testen: MSCO.dll direkt in den Spielordner (My Summer Car\MSCO) - läuft das Spiel, ist sie gesperrt -->
<Target Name="CopyToGame" AfterTargets="Build">
<Copy SourceFiles="$(TargetPath)" DestinationFolder="F:\SteamLibrary\steamapps\common\My Summer Car\MSCO" ContinueOnError="true" Condition="Exists('F:\SteamLibrary\steamapps\common\My Summer Car')" />
</Target>
<!-- Release-Build: neue Version automatisch auf den Keymaster laden (nur mit Release-Token, siehe release.ps1) -->
<Target Name="MscoRelease" AfterTargets="Build" Condition="'$(Configuration)' == 'Release'">
<Exec Command="powershell -NoProfile -ExecutionPolicy Bypass -File &quot;$(MSBuildProjectDirectory)\release.ps1&quot; -Product mod -File &quot;$(TargetPath)&quot;" ContinueOnError="true" />