eb5753eea6
Two concerns bundled into one commit because the csharpier tool restore reformatted four earlier files as soon as the manifest landed: - .config/dotnet-tools.json: csharpier 1.2.6 as local tool, follows the standard .config layout (dotnet tool restore will find it). - Anvil/packages.lock.json: produced by dotnet restore, pinned alongside the csproj's RestorePackagesWithLockFile=true. - Anvil/RecipeData/RecipeDataLoadResult.cs: public record carrying the adapter's load-pass summary (counts + duration + warnings). Surfaced to the SelfTest step and future UI status surfaces. - Anvil/RecipeData/RecipeDataCatalog.cs: public DI singleton with all seven dictionary lookups, the two helper methods (ActionsForClassJob, TryResolveActionRowId), and the four meta properties from spec §2.7. Backed by a private CatalogState record that the adapter swaps in via a volatile reference - readers either see the empty initial state or the fully populated post-load snapshot, never a partial mid-build. TryResolveActionRowId carries the Cosmic-sentinel logic so hook code does not need to know about the CosmicOnly flag itself. - Reformatting in AnvilAction.cs, ActionMechanicsTable.cs, ConditionMechanicsTable.cs, and Anvil.csproj: csharpier-mandated line-wrap / blank-line tweaks. No semantic changes.
64 lines
2.8 KiB
XML
64 lines
2.8 KiB
XML
<Project Sdk="Dalamud.NET.Sdk/15.0.0">
|
|
<PropertyGroup>
|
|
<Version>0.1.0</Version>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<LangVersion>latest</LangVersion>
|
|
<!-- Forge-wide Platform pin: solution-build defaults respect this; the
|
|
Forgeimizer v0.1.0 cycle showed that omitting it lets CI silently
|
|
fall back to AnyCPU and writes outputs into the wrong subtree. -->
|
|
<Platforms>x64</Platforms>
|
|
<PlatformTarget>x64</PlatformTarget>
|
|
<!-- Lock package versions so a casual restore does not surprise-bump
|
|
transitive dependencies between cycles. -->
|
|
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
|
|
<AssemblyName>Anvil</AssemblyName>
|
|
<RootNamespace>Anvil</RootNamespace>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Generic Host DI container, mirroring the HellionChat v1.5.0 pattern
|
|
(Lightless-Sync stack pin at 10.0.7). Closed ranges keep major
|
|
bumps from sneaking in through lock-file regeneration. -->
|
|
<PackageReference
|
|
Include="Microsoft.Extensions.DependencyInjection"
|
|
Version="[10.0.7, 11.0.0)"
|
|
/>
|
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="[10.0.7, 11.0.0)" />
|
|
<PackageReference Include="Microsoft.Extensions.Logging" Version="[10.0.7, 11.0.0)" />
|
|
<PackageReference Include="Microsoft.Extensions.Options" Version="[10.0.7, 11.0.0)" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<!-- Build-suite (Anvil.Tests in the local Hellion Build test repo)
|
|
needs InternalsVisibleTo to reach the LuminaRecipeAdapter and
|
|
mechanic-table classes without making them public. -->
|
|
<InternalsVisibleTo Include="Anvil.Tests" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<Compile Update="Localization\AnvilStrings.Designer.cs">
|
|
<DesignTime>True</DesignTime>
|
|
<AutoGen>True</AutoGen>
|
|
<DependentUpon>AnvilStrings.resx</DependentUpon>
|
|
</Compile>
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<EmbeddedResource Update="Localization\AnvilStrings.resx">
|
|
<Generator>ResXFileCodeGenerator</Generator>
|
|
<LastGenOutput>AnvilStrings.Designer.cs</LastGenOutput>
|
|
</EmbeddedResource>
|
|
</ItemGroup>
|
|
|
|
<!-- Plugin icon + screenshots: SDK 15 default packager picks these up via
|
|
images/* and the icon_url / image_urls fields in Anvil.yaml. Do NOT
|
|
add a DalamudPackager.targets override - the SDK 15 default handles
|
|
icon + images correctly (lesson from HellionChat v0.5.2 burn). -->
|
|
<ItemGroup>
|
|
<None Include="images\**">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
</Project>
|