HKBuildUtils 0.3.1

There is a newer version of this package available.
See the version list below for details.
dotnet add package HKBuildUtils --version 0.3.1                
NuGet\Install-Package HKBuildUtils -Version 0.3.1                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="HKBuildUtils" Version="0.3.1">
  <PrivateAssets>all</PrivateAssets>
  <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add HKBuildUtils --version 0.3.1                
#r "nuget: HKBuildUtils, 0.3.1"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install HKBuildUtils as a Cake Addin
#addin nuget:?package=HKBuildUtils&version=0.3.1

// Install HKBuildUtils as a Cake Tool
#tool nuget:?package=HKBuildUtils&version=0.3.1                

Hollow Knight Mod Build Utils

Build Nuget

A nuget package to help make the Hollow Knight Mod

Features

Mods References Helper

Automatically download HKMAPI and other mods that depend on it when building.

How to use

Add the names of the mods you want to depend on to the <ItemGroup> in the following way

<ModReference Include="<Mod Name in ModLinks>" AssemblyName="[Assembly Name]" />

Among them, AssemblyName is optional, but due to the limitation of MSBuild, if the Mod assembly file name does not match its name on ModLinks, you need to fill in AssemblyName by yourself.

For example, Custom Knight, its assembly file name is CustomKnight.dll instead of Custom Knight.dll, therefore, it needs to be referenced as follows

<ModReference Include="Custom Knight" AssemblyName="CustomKnight" />
Set game path

Set game paths to use game files directly instead of downloading them again.

HKBuildUtils will look for the game directory in the following order (1.) The contents of hkpath.txt under the project folder or its ancestor folder (2.) HollowKnightRefs defined in the project file

Note:

  1. (1.) will be used if both (1.) and (2.) are found, you can disable (1.) and use (2.) by using <DisableOverwriteHollowKnightRefs>true</DisableOverwriteHollowKnightRefs>
  2. If neither of them exists or the directory they specify does not exist, it will be considered as a build in CI, and the dependent mods and HKMAPI will be downloaded to the ~ModLibrary folder under the project folder during the build

Merger with HKMirror

Use ILRepack to merge mods with HKMirror and eliminate unused types in HKMirror.

How to enable

Add <MergeHKMirror>true</MergeHKMirror> to PropertyGroup and reference HKMirror. The rest will take care of it for you.

Mod Resources

Using <ModResource></ModResource> instead of <EmbeddedResource></EmbeddedResource> automatically generates the type ModResources for use

Example

Add the following to the project file

<ItemGroup>
    <ModResource Include="Test1.txt"></ModResource>
    <ModResource Include="a/Test2.txt"></ModResource>
    <ModResource Include="b/c/Test3.txt"></ModResource>
</ItemGroup>

Then you can get them like this in your code

Modding.Logger.Log(ModResources.TEST1.Length);

Modding.Logger.Log(ModResources.TEST2.Length);

Modding.Logger.Log(ModResources.TEST3.Length);

You can add Default="true" to <ModResource> to use user-defined content.Like this

<ItemGroup>
    <ModResource Include="a/b/c" Default="true"></ModResource>
</ItemGroup>

You can get it through ModResources.C, just like mentioned above.

If ModResources.C is used, the file $(ModDir)/a/b/c is checked for existence first. If present, the file contents are returned, and if they are not, read from the assembly and written to the $(ModDir)/a/b/c file

There are no supported framework assets in this package.

Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
0.6.1 311 5/28/2023
0.5.56 317 3/12/2023
0.5.55 277 3/12/2023
0.5.54 260 3/10/2023
0.5.53 231 3/10/2023
0.5.52 360 3/4/2023
0.5.35 276 3/4/2023
0.5.33 243 3/4/2023
0.5.4 220 3/3/2023
0.5.1 241 3/3/2023
0.5.0 248 3/2/2023
0.4.51 281 3/2/2023
0.4.46 238 3/2/2023
0.4.45 282 2/26/2023
0.4.0 260 2/25/2023
0.3.16 276 2/23/2023
0.3.4 275 2/22/2023
0.3.3 265 2/22/2023
0.3.2 312 2/22/2023
0.3.1 288 2/22/2023
0.3.0 264 2/21/2023
0.2.0 289 2/20/2023
0.1.4 336 1/28/2023
0.1.3 304 1/28/2023
0.1.2 321 1/28/2023
0.1.0 343 1/28/2023