rewrite readme for simplicity
This commit is contained in:
parent
34d2881aee
commit
db2cc7ef41
91
README.md
91
README.md
|
@ -1,53 +1,36 @@
|
||||||
**Stardew.ModBuildConfig** is an open-source NuGet package which automates the build configuration
|
**Stardew.ModBuildConfig** is an open-source NuGet package which automates the build configuration
|
||||||
for crossplatform [Stardew Valley](http://stardewvalley.net/) mods that use SMAPI.
|
for [Stardew Valley](http://stardewvalley.net/) [SMAPI](https://github.com/Pathoschild/SMAPI) mods.
|
||||||
|
|
||||||
|
The package...
|
||||||
|
|
||||||
|
* lets you write your mod once, and compile it on any computer. It detects the current platform
|
||||||
|
(Linux, Mac, or Windows) and game install path, and injects the right references automatically.
|
||||||
|
* configures Visual Studio so you can debug into the mod code when the game is running (_Windows
|
||||||
|
only_).
|
||||||
|
* packages the mod automatically into the game's mod folder when you build the code (_optional_).
|
||||||
|
|
||||||
|
|
||||||
## Contents
|
## Contents
|
||||||
* [Usage](#usage)
|
* [Install](#install)
|
||||||
* [Installation](#installation)
|
|
||||||
* [Custom game path](#custom-game-path)
|
|
||||||
* [Simplify mod development](#simplify-mod-development)
|
* [Simplify mod development](#simplify-mod-development)
|
||||||
|
* [Troubleshoot](#troubleshoot)
|
||||||
|
* [Versions](#versions)
|
||||||
|
|
||||||
## Usage
|
## Install
|
||||||
Basically this package lets you write your mod once, and compile it on any computer. It detects
|
**When creating a new mod:**
|
||||||
your current platform (Linux, Mac, or Windows) and game path, and injects the right references
|
|
||||||
automatically. You can also target a specific platform to create a mod package compatible with that
|
|
||||||
platform.
|
|
||||||
|
|
||||||
More specifically, the configuration...
|
|
||||||
|
|
||||||
1. detects the operating system and Stardew Valley path;
|
|
||||||
2. injects the right references to Stardew Valley, SMAPI, and XNA/MonoGame for your platform;
|
|
||||||
3. configures Visual Studio so you can launch the game for debugging (_Windows only_);
|
|
||||||
4. and adds a `GamePath` variable which can be used to script mod packaging if desired.
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
### Creating a new mod
|
|
||||||
1. Create an empty library project.
|
1. Create an empty library project.
|
||||||
2. Reference the [`Pathoschild.Stardew.ModBuildConfig` NuGet package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig).
|
2. Reference the [`Pathoschild.Stardew.ModBuildConfig` NuGet package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig).
|
||||||
3. [Write your code](http://canimod.com/guides/creating-a-smapi-mod).
|
3. [Write your code](http://canimod.com/guides/creating-a-smapi-mod).
|
||||||
4. Compile on any platform.
|
4. Compile on any platform.
|
||||||
|
|
||||||
### Migrating an existing mod
|
**When migrating an existing mod:**
|
||||||
1. Remove any references to `Microsoft.Xna.*`, Stardew Valley, `StardewModdingAPI`, and xTile.
|
|
||||||
|
1. Remove any project references to `Microsoft.Xna.*`, `MonoGame`, Stardew Valley,
|
||||||
|
`StardewModdingAPI`, and `xTile`.
|
||||||
2. Reference the [`Pathoschild.Stardew.ModBuildConfig` NuGet package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig).
|
2. Reference the [`Pathoschild.Stardew.ModBuildConfig` NuGet package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig).
|
||||||
3. Compile on any platform.
|
3. Compile on any platform.
|
||||||
|
|
||||||
## Custom game path
|
|
||||||
The package should automatically detect your game path. If it can't for some reason, you
|
|
||||||
can specify it manually.
|
|
||||||
|
|
||||||
1. Get the full folder path containing the Stardew Valley executable.
|
|
||||||
2. Add this to your `.csproj` file under the `<Project` line (with the correct game path):
|
|
||||||
|
|
||||||
```xml
|
|
||||||
<PropertyGroup>
|
|
||||||
<GamePath>C:\Program Files (x86)\GalaxyClient\Games\Stardew Valley</GamePath>
|
|
||||||
</PropertyGroup>
|
|
||||||
```
|
|
||||||
|
|
||||||
The configuration will check your custom path first, then fall back to the default paths (so it'll
|
|
||||||
still compile on a different computer).
|
|
||||||
|
|
||||||
## Simplify mod development
|
## Simplify mod development
|
||||||
### Package your mod into the game directory automatically
|
### Package your mod into the game directory automatically
|
||||||
During development, it's helpful to have the mod files packaged into your `Mods` directory automatically each time you build. To do that:
|
During development, it's helpful to have the mod files packaged into your `Mods` directory automatically each time you build. To do that:
|
||||||
|
@ -70,22 +53,44 @@ During development, it's helpful to have the mod files packaged into your `Mods`
|
||||||
|
|
||||||
That's it! Each time you build, the files in `<game path>\Mods\<mod name>` will be updated.
|
That's it! Each time you build, the files in `<game path>\Mods\<mod name>` will be updated.
|
||||||
|
|
||||||
### Debugging
|
### Debug into the mod code
|
||||||
Debugging into your mod code when the game is running is pretty straightforward, since this package injects some of the configuration automatically. To do that:
|
Stepping into your mod code when the game is running is straightforward, since this package injects the configuration automatically. To do it:
|
||||||
|
|
||||||
1. [Package your mod into the game directory automatically](#package-your-mod-into-the-game-directory-automatically).
|
1. [Package your mod into the game directory automatically](#package-your-mod-into-the-game-directory-automatically).
|
||||||
2. Launch the project with debugging in Visual Studio or MonoDevelop.
|
2. Launch the project with debugging in Visual Studio or MonoDevelop.
|
||||||
|
|
||||||
This will deploy your mod files into the game directory, launch SMAPI, and attach a debugger automatically. Now you can step through your code, set breakpoints, etc.
|
This will deploy your mod files into the game directory, launch SMAPI, and attach a debugger automatically. Now you can step through your code, set breakpoints, etc.
|
||||||
|
|
||||||
|
## Troubleshoot
|
||||||
|
### "Failed to find the game install path"
|
||||||
|
If you see this error:
|
||||||
|
|
||||||
|
> Failed to find the game install path automatically; edit the *.csproj file and manually add a
|
||||||
|
> <GamePath> setting with the full directory path containing the Stardew Valley executable.
|
||||||
|
|
||||||
|
...the package couldn't find your game install path automatically. You'll need to specify the
|
||||||
|
game location:
|
||||||
|
|
||||||
|
1. Get the full folder path containing the Stardew Valley executable.
|
||||||
|
2. Add this to your `.csproj` file under the `<Project` line (with the correct game path):
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<PropertyGroup>
|
||||||
|
<GamePath>C:\Program Files (x86)\GalaxyClient\Games\Stardew Valley</GamePath>
|
||||||
|
</PropertyGroup>
|
||||||
|
```
|
||||||
|
|
||||||
|
The configuration will check your custom path first, then fall back to the default paths (so it'll
|
||||||
|
still compile on a different computer).
|
||||||
|
|
||||||
## Versions
|
## Versions
|
||||||
1.3:
|
1.3:
|
||||||
* Fixed non-default game paths on 32-bit Windows.
|
* Fixed detection of non-default game paths on 32-bit Windows.
|
||||||
* Removed support for SilVerPLuM (discontinued).
|
* Removed support for SilVerPLuM (discontinued).
|
||||||
* Removed support for overriding the target platform (never used).
|
* Removed support for overriding the target platform (no longer needed since SMAPI crossplatforms mods automatically).
|
||||||
|
|
||||||
1.2:
|
1.2:
|
||||||
* Added support for non-default game paths on Windows by reading the registry.
|
* Added support for non-default game paths on Windows.
|
||||||
|
|
||||||
1.1:
|
1.1:
|
||||||
* Added support for overriding the target platform.
|
* Added support for overriding the target platform.
|
||||||
|
@ -95,7 +100,3 @@ This will deploy your mod files into the game directory, launch SMAPI, and attac
|
||||||
* Added support for detecting the game path automatically.
|
* Added support for detecting the game path automatically.
|
||||||
* Added support for injecting XNA/MonoGame references automatically based on the OS.
|
* Added support for injecting XNA/MonoGame references automatically based on the OS.
|
||||||
* Added support for mod builders like SilVerPLuM.
|
* Added support for mod builders like SilVerPLuM.
|
||||||
|
|
||||||
## See also
|
|
||||||
* [NuGet package](https://www.nuget.org/packages/Pathoschild.Stardew.ModBuildConfig)
|
|
||||||
* <s>Discussion thread</s>
|
|
||||||
|
|
Loading…
Reference in New Issue