0a941f3ba6
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
36 lines
1.5 KiB
XML
36 lines
1.5 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
<PropertyGroup>
|
|
<TargetFramework>net48</TargetFramework>
|
|
<LangVersion>9.0</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<RootNamespace>Panel.BloodMoonAgent</RootNamespace>
|
|
<AssemblyName>PanelBloodMoonAgent</AssemblyName>
|
|
<OutputType>Library</OutputType>
|
|
<!--
|
|
We reference Assembly-CSharp.dll ONLY to bind IModApi + Mod at compile
|
|
time so the 7DTD loader's reflection probe finds our entry point. All
|
|
game DATA access (GamePrefs, World, AIDirector, etc.) goes through
|
|
string-keyed reflection (see BloodMoonAgent.cs) to dodge the
|
|
EnumGamePrefs landmine where a missing enum member stops Mono from
|
|
loading the whole assembly. The two-type binding is stable across 7DTD
|
|
versions — IModApi has had the same shape since A19.
|
|
|
|
Private=false means we don't ship Assembly-CSharp.dll alongside our DLL;
|
|
it's resolved at runtime from the game's own Managed folder.
|
|
|
|
Override LocalAssemblyCSharp on the command line to point at a different
|
|
game install:
|
|
dotnet build -p:LocalAssemblyCSharp=D:\path\to\Assembly-CSharp.dll
|
|
-->
|
|
<LocalAssemblyCSharp Condition="'$(LocalAssemblyCSharp)' == ''">C:\7dtdserver\7DaysToDieServer_Data\Managed\Assembly-CSharp.dll</LocalAssemblyCSharp>
|
|
<NoWarn>$(NoWarn);CS8632</NoWarn>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<Reference Include="Assembly-CSharp">
|
|
<HintPath>$(LocalAssemblyCSharp)</HintPath>
|
|
<Private>false</Private>
|
|
</Reference>
|
|
</ItemGroup>
|
|
</Project>
|