An open API service indexing awesome lists of open source software.

https://github.com/gold-meridian/tml-build

MSBuild SDK and accompanying projects for a feature-complete tModLoader development SDK/toolchain!
https://github.com/gold-meridian/tml-build

csharp dotnet msbuild msbuild-sdk msbuild-sdk-extras msbuild-sdks roslyn-analyzer roslyn-generator terraria terraria-mod tmodloader tmodloader-api tmodloader-mod

Last synced: 3 months ago
JSON representation

MSBuild SDK and accompanying projects for a feature-complete tModLoader development SDK/toolchain!

Awesome Lists containing this project

README

          

# tml-build

> tModLoader mod development toolkit (SDK).

**tml-build** encompasses a CLI tool and MSBuild SDK which enable you to quickly and easily develop tModLoader mods.

It reimplements the entire build toolchain, allowing for strong control over how your mod is built and packaged, as well as what tML version your mod targets.

## features

> See: [FEATURES.md](FEATURES.md).

---

There are a lot, but here's a quick rundown (unchecked items are not yet implemented):

- [x] no need to place the mod in `ModSources`, it can resolve tModLoader from *anywhere*,
- [x] easy tModLoader version referencing/switching,
- [x] reference locally-installed `steam` or `dev` version, as well as `stable`, `preview`, or a custom version (`x.y.z.w`),
- [x] `.tmod` archive packaging on build,
- [ ] configurable packing and compression,
- [ ] configurable handling of image file formats (`.rawimg` vs PNG),
- [x] sophisticated launch profile generation,
- [x] runs tModLoader through a program in charge of wrapping it and patching it for development use (see more in [FEATURES.md](FEATURES.md)),
- [x] built-in support for access transformers,
- [ ] optional support for the [proposed TOML rework](https://github.com/tModLoader/tModLoader/issues/4170) to `build.txt`,
- [x] much easier CI integration (no more boilerplate setup; the build system installs tML for you),
- [ ] easily supports NuGet dependencies without needing to copy references yourself,
- [ ] easily reference existing mods in your project by including their workshop IDs,
- [x] type-safe references to all sorts of assets,
- [x] images,
- [x] sounds,
- [x] shaders (effects),
- [x] and localization,
- [and more!](FEATURES.md)

## how do I use this?

It's a one-line change in your `.csproj`:

```diff
-
+
```

It's that simple; base configuration uses sane defaults that replicate tML.

With this change, you should be good to remove all of tMod's default configuration values as well.

## license

Source code is licensed under AGPL 3.0; your projects do not need to be under the same license to use this package (unless you replicate code). See [LICENSE](LICENSE) for more details.