ZourceGen 1.1.8

dotnet add package ZourceGen --version 1.1.8
                    
NuGet\Install-Package ZourceGen -Version 1.1.8
                    
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="ZourceGen" Version="1.1.8" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ZourceGen" Version="1.1.8" />
                    
Directory.Packages.props
<PackageReference Include="ZourceGen" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ZourceGen --version 1.1.8
                    
#r "nuget: ZourceGen, 1.1.8"
                    
#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.
#:package ZourceGen@1.1.8
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ZourceGen&version=1.1.8
                    
Install as a Cake Addin
#tool nuget:?package=ZourceGen&version=1.1.8
                    
Install as a Cake Tool

ZourceGen

An attempt at a rather verbose tModLoader asset generator; similar to that of Scalar's AssGen

Usage

This project is now available as a nuget package, implementation is as simple as referencing ZourceGen as an an analyzer. (Ensure version 1.0.3 or higher is used.)

Example:

<ItemGroup>
    
    <AdditionalFiles Include="Assets\**" />
    <PackageReference Include="ZourceGen" Version="1.1.8" ReferenceOutputAssembly="false" OutputItemType="Analyzer" />
</ItemGroup>

Asset Hot-Reloading

Assets for your mod will automatically reload when debugging.

TODO: Recompile shaders when modified.

Asset Generation

Generated files will be placed into the {YourModName}.GeneratedAssets namespace.

An impl of LazyAsset<T> will be used for all asset handling within generated files, this type will implicity convert to either an Asset<T> or T if needed.

Textures (.png/Texture2D)

Textures will be placed into a static Textures class in each namespace with actual textures.
Textures can also be placed in arrays by including numbers in the file names.

Example:
MyCoolImage0, MyCoolImage1, MyCoolImage2, MyCoolImage3

Effects (.fxc/.xnb/Effect)

Effects will be placed in their own static class with wrapper properties for each parameter in the shader; effects will still be generated regardless of the method used to compile them, (thanks tomat.)

Make sure you check for the IsReady property before using an effect; otherwise it may be null!

Models (.obj/OBJModel)

Models will be placed into a static class much-like effects, these classes only have basic drawing methods at the moment.

To have models load correctly you can must manually load the OBJModelReader class from your mod's class!

Example:

public override IContentSource CreateDefaultContentSource()
{
        // Assets should not be loaded on the server.
    if (!Main.dedServ)
        AddContent(new OBJModelReader());

    return base.CreateDefaultContentSource();
}
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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
1.1.8 225 11/9/2025
1.1.7 217 11/9/2025
1.1.6 203 10/28/2025
1.1.5 207 10/27/2025
1.1.4 156 10/26/2025
1.1.3 159 10/26/2025
1.1.2 161 10/26/2025
1.1.1 124 10/25/2025
1.1.0 172 10/24/2025
1.0.3 139 10/11/2025
1.0.2 130 10/11/2025
1.0.1 115 10/11/2025
1.0.0 113 10/11/2025