-
Notifications
You must be signed in to change notification settings - Fork 1
/
CONTRIBUTING.md
50 lines (32 loc) · 1.7 KB
/
CONTRIBUTING.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Contributions are welcome! Feel free to open a PR for small fixes or open an issue if you want to discuss something or make a bigger change.
## Setup
- Install [Mono](https://www.mono-project.com/download/stable/)
- Use [VSCode](https://code.visualstudio.com/download)
- Install the [C# extension](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csharp) (it should prompt you after opening the project in VSCode)
## Creating a new mod
Generate code with:
```sh
csi ./scripts/CreateNewProject.csx "game" "ProjectName" "Description of project."
```
## Modifying replay Flatbuffer spec
Make sure the Flatbuffers CLI is installed. Easiest way is using a package manager like [Chocolatey](https://chocolatey.org/) or [Homebrew](https://brew.sh/).
```sh
# Windows (using Chocolatey)
choco install flatbuffers
# Mac
brew install flatbuffers
# Linux (Ubuntu)
sudo apt install flatbuffers-compiler
```
After making changes to `Bwr.fbs` run this to regenerate the `Bwr/*.cs` files:
```sh
cd projects/Boneworks/SpeedrunTools/src/Replay && flatc --csharp Bwr.fbs
```
## Build
```sh
msbuild /property:Configuration=Release
```
Uncomment, comment or change the post-build scripts in the `.cspoj` files as necessary (these are the scripts which automatically copy the built mods into your game after building).
## Branches
The `main` branch contains the latest stable changes (ie. the code that is built and uploaded to Thunderstore). I do my own development on the `develop` branch and every push to this branch creates dev builds (you can see them under releases).
In most cases you want to fork from and merge PRs to the `main` branch. However if you're curious you can look at what's happening in the `develop` branch.