Import march-2020-03-10 from private repo (scrubbed 2026-05-27)

Targets Rec Room 2020.03.10 client (also serves 2020.03.06).

Re-import after adding:
- DorkNet.ClientMod/dorknet-clientmod.json.template — config schema
  the launcher's manifest-driven patcher renders into UserData/.
- tools/build-patcher-zip.ps1 — produces dorknet-clientpatch-{key}.zip
  for v1-march-* Release uploads.
- .github/workflows/release.yml — on tag push publishes both
  dorknet-server-march_2020_03_10-win-x64.zip and
  dorknet-clientpatch-march_2020_03_10.zip as Release assets.

Same scrub rules as december; tools/build-patcher-zip.ps1 added to
the maintainer-side allow-list so it survives.
This commit is contained in:
Alexa
2026-05-27 01:06:12 +03:00
commit d471b418b9
389 changed files with 104767 additions and 0 deletions
@@ -0,0 +1,106 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<!-- BepInEx 6 IL2CPP runs on .NET 6. -->
<TargetFramework>net6.0</TargetFramework>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<RootNamespace>DorkNet.ClientPatch</RootNamespace>
<AssemblyName>DorkNet.ClientPatch</AssemblyName>
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
<CopyLocalLockFileAssemblies>false</CopyLocalLockFileAssemblies>
<!-- We reference BepInEx via direct paths to BepInEx/core/*.dll
and the game's interop folder. Set these env vars (or
MSBuild properties) before `dotnet build`:
BepInExCore = <RecRoomPath>\..\BepInEx\core
BepInExInterop = <RecRoomPath>\..\BepInEx\interop
The install-plugin.ps1 wrapper sets both automatically. -->
</PropertyGroup>
<ItemGroup>
<!-- BepInEx core libraries — shipped with the install, no NuGet
needed. Avoids the bepinex.dev feed authentication / package-
name churn. -->
<Reference Include="BepInEx.Core">
<HintPath>$(BepInExCore)\BepInEx.Core.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="BepInEx.Unity.IL2CPP">
<HintPath>$(BepInExCore)\BepInEx.Unity.IL2CPP.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="0Harmony">
<HintPath>$(BepInExCore)\0Harmony.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Il2CppInterop.Runtime">
<HintPath>$(BepInExCore)\Il2CppInterop.Runtime.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Il2CppInterop.Common">
<HintPath>$(BepInExCore)\Il2CppInterop.Common.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="MonoMod.Utils">
<HintPath>$(BepInExCore)\MonoMod.Utils.dll</HintPath>
<Private>false</Private>
</Reference>
<!-- Game-side interop assemblies generated by BepInEx on the
game's first launch. Type names inside use the Il2Cpp* prefix
(e.g. Il2CppRecNet.Core), file names keep their original
identity (Assembly-CSharp.dll). Steamworks.NET classes live
INSIDE Assembly-CSharp.dll — the watch's Photon SDK is in
Photon3Unity3D.dll, AuthenticationValues + LoadBalancing
types in Assembly-CSharp-firstpass.dll. -->
<Reference Include="Il2Cppmscorlib">
<HintPath>$(BepInExInterop)\Il2Cppmscorlib.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Il2CppSystem">
<HintPath>$(BepInExInterop)\Il2CppSystem.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Assembly-CSharp">
<HintPath>$(BepInExInterop)\Assembly-CSharp.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Assembly-CSharp-firstpass">
<HintPath>$(BepInExInterop)\Assembly-CSharp-firstpass.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Photon3Unity3D">
<HintPath>$(BepInExInterop)\Photon3Unity3D.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.UI">
<HintPath>$(BepInExInterop)\UnityEngine.UI.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Unity.TextMeshPro">
<HintPath>$(BepInExInterop)\Unity.TextMeshPro.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="UnityEngine.CoreModule">
<HintPath>$(BepInExInterop)\UnityEngine.CoreModule.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="RecRoom.Datastructures.Runtime">
<HintPath>$(BepInExInterop)\RecRoom.Datastructures.Runtime.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="Unity.Addressables">
<HintPath>$(BepInExInterop)\Unity.Addressables.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="RecRoom.Async">
<HintPath>$(BepInExInterop)\RecRoom.Async.dll</HintPath>
<Private>false</Private>
</Reference>
<Reference Include="RecRoom.Promises.Runtime">
<HintPath>$(BepInExInterop)\RecRoom.Promises.Runtime.dll</HintPath>
<Private>false</Private>
</Reference>
</ItemGroup>
</Project>