Update Docs Workflow

This commit is contained in:
Ben C 2023-11-29 14:09:40 -05:00
parent 7980a38eda
commit 13d4c8d554
No known key found for this signature in database
15 changed files with 544 additions and 529 deletions

4
.github/FUNDING.yml vendored
View File

@ -1,2 +1,2 @@
patreon: ownh
custom: ["https://paypal.me/xen42"]
patreon: ownh
custom: ["https://paypal.me/xen42"]

View File

@ -1,45 +1,45 @@
name: Bug Report
description: File a bug report
labels: ["bug"]
body:
- type: textarea
id: what-happened
attributes:
label: What Happened?
description: Please describe what happened
validations:
required: true
- type: textarea
id: expected
attributes:
label: What was supposed to happen?
description: If applicable, describe what should have happened instead.
validations:
required: false
- type: dropdown
id: platform
attributes:
label: Platform
description: Please provide which platform you were playing on when you encountered this bug.
options:
- Steam
- Epic Games
- Xbox Game Pass
validations:
required: false
- type: textarea
id: mods
attributes:
label: Mods
description: Please define which mods you had enabled when the problem occurred.
render: Markdown
validations:
required: false
- type: textarea
id: logs
attributes:
label: Logs
description: If you can, try to locate the point in the logs where the error occurred and paste the message displayed here.
render: Shell
validations:
required: false
name: Bug Report
description: File a bug report
labels: ["bug"]
body:
- type: textarea
id: what-happened
attributes:
label: What Happened?
description: Please describe what happened
validations:
required: true
- type: textarea
id: expected
attributes:
label: What was supposed to happen?
description: If applicable, describe what should have happened instead.
validations:
required: false
- type: dropdown
id: platform
attributes:
label: Platform
description: Please provide which platform you were playing on when you encountered this bug.
options:
- Steam
- Epic Games
- Xbox Game Pass
validations:
required: false
- type: textarea
id: mods
attributes:
label: Mods
description: Please define which mods you had enabled when the problem occurred.
render: Markdown
validations:
required: false
- type: textarea
id: logs
attributes:
label: Logs
description: If you can, try to locate the point in the logs where the error occurred and paste the message displayed here.
render: Shell
validations:
required: false

View File

@ -1,5 +1,5 @@
blank_issues_enabled: true
contact_links:
- name: "Need Help with Creating an Addon?"
url: "https://discord.gg/wusTQYbYTc"
about: "Join our discord and look for #nh-addon-discussion"
blank_issues_enabled: true
contact_links:
- name: "Need Help with Creating an Addon?"
url: "https://discord.gg/wusTQYbYTc"
about: "Join our discord and look for #nh-addon-discussion"

View File

@ -1,14 +1,14 @@
name: Feature Request
description: Request a feature you'd like to see in a later release
labels: ["feature"]
body:
- type: textarea
id: feature
attributes:
label: Feature
description: Describe the feature you'd like to see in New Horizons.
- type: textarea
id: context
attributes:
label: Context
description: Provide any additional context such as screenshots or diagrams here.
name: Feature Request
description: Request a feature you'd like to see in a later release
labels: ["feature"]
body:
- type: textarea
id: feature
attributes:
label: Feature
description: Describe the feature you'd like to see in New Horizons.
- type: textarea
id: context
attributes:
label: Context
description: Provide any additional context such as screenshots or diagrams here.

View File

@ -1,15 +1,23 @@
<!-- A new module or something else important -->
## Major features
-
<!-- A new parameter added to a module, or API feature -->
## Minor features
-
<!-- Some improvement that requires no action on the part of add-on creators i.e., improved star graphics -->
## Improvements
-
<!-- Be sure to reference the existing issue if it exists -->
## Bug fixes
-
<!-- A new module or something else important -->
## Major features
-
<!-- A new parameter added to a module, or API feature -->
## Minor features
-
<!-- Some improvement that requires no action on the part of add-on creators i.e., improved star graphics -->
## Improvements
-
<!-- Be sure to reference the existing issue if it exists -->
## Bug fixes
-

View File

@ -1,73 +1,69 @@
# Usage:
#
# Build:
# uses: "./.github/workflows/build"
# with:
# build_type: Debug
#
#
name: Build
on:
workflow_call:
inputs:
build_type:
description: 'Build type to pass to `dotnet`, should be either "Debug" or "Release"'
required: false
default: "Debug"
type: string
outputs:
schemas_changed:
description: 'Have the schemas been updated?'
value: ${{ jobs.Build.outputs.schemas_changed }}
jobs:
Build:
runs-on: windows-latest
outputs:
schemas_changed: ${{ steps.changed_files.outputs.files_changed }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
# Disable Strong Name Verification to let us pull a switch-a-roo
- name: Disable strong name validation
run: "C:\\\"Program Files (x86)\"\\\"Microsoft SDKs\"\\Windows\\v10.0A\\bin\\\"NETFX 4.8 Tools\"\\x64\\sn.exe -Vr *"
- name: Remove .csproj.user
run: "rm .\\NewHorizons\\NewHorizons.csproj.user"
- name: Build Project
run: dotnet build -c ${{ inputs.build_type }}
- name: Generate Schemas
run: .\SchemaExporter\bin\${{ inputs.build_type }}\SchemaExporter.exe
- name: Delete XML documentation
run: rm .\NewHorizons\bin\${{ inputs.build_type }}\NewHorizons.xml
- name: Upload Mod Artifact
uses: actions/upload-artifact@v3
with:
name: xen.NewHorizons.${{ inputs.build_type }}
path: .\NewHorizons\bin\${{ inputs.build_type }}
- name: Upload Schemas Artifact
uses: actions/upload-artifact@v3
with:
name: NewHorizons-Schemas-${{ inputs.build_type }}
path: .\NewHorizons\Schemas
- name: Verify Changed Schemas
uses: tj-actions/verify-changed-files@v12
id: changed_files
with:
files: NewHorizons/Schemas/**
# Usage:
#
# Build:
# uses: "./.github/workflows/build"
# with:
# build_type: Debug
#
#
name: Build
on:
workflow_call:
inputs:
build_type:
description: 'Build type to pass to `dotnet`, should be either "Debug" or "Release"'
required: false
default: "Debug"
type: string
outputs:
schemas_changed:
description: "Have the schemas been updated?"
value: ${{ jobs.Build.outputs.schemas_changed }}
jobs:
Build:
runs-on: windows-latest
outputs:
schemas_changed: ${{ steps.changed_files.outputs.files_changed }}
steps:
- name: Checkout Repo
uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
# Disable Strong Name Verification to let us pull a switch-a-roo
- name: Disable strong name validation
run: "C:\\\"Program Files (x86)\"\\\"Microsoft SDKs\"\\Windows\\v10.0A\\bin\\\"NETFX 4.8 Tools\"\\x64\\sn.exe -Vr *"
- name: Remove .csproj.user
run: "rm .\\NewHorizons\\NewHorizons.csproj.user"
- name: Build Project
run: dotnet build -c ${{ inputs.build_type }}
- name: Generate Schemas
run: .\SchemaExporter\bin\${{ inputs.build_type }}\SchemaExporter.exe
- name: Delete XML documentation
run: rm .\NewHorizons\bin\${{ inputs.build_type }}\NewHorizons.xml
- name: Upload Mod Artifact
uses: actions/upload-artifact@v3
with:
name: xen.NewHorizons.${{ inputs.build_type }}
path: .\NewHorizons\bin\${{ inputs.build_type }}
- name: Upload Schemas Artifact
uses: actions/upload-artifact@v3
with:
name: NewHorizons-Schemas-${{ inputs.build_type }}
path: .\NewHorizons\Schemas
- name: Verify Changed Schemas
uses: tj-actions/verify-changed-files@v12
id: changed_files
with:
files: NewHorizons/Schemas/**

View File

@ -13,14 +13,14 @@ on:
jobs:
Build:
uses: './.github/workflows/build.yaml'
uses: "./.github/workflows/build.yaml"
with:
build_type: Debug
Update_Schemas:
name: 'Update Schemas'
name: "Update Schemas"
needs: Build
if: ${{ needs.Build.outputs.schemas_changed == 'true' }}
uses: './.github/workflows/update_schemas.yml'
uses: "./.github/workflows/update_schemas.yml"
with:
artifact_name: NewHorizons-Schemas-Debug
secrets: inherit

View File

@ -1,53 +1,52 @@
name: Build Docs
on:
workflow_call:
inputs:
schemas_artifact:
description: "Name of the artifact that has updated schemas, set to `null` to not update"
default: "null"
required: false
type: string
push:
branches: [main]
paths:
- docs/**
- NewHorizons/Schemas/*
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download Schemas
if: ${{ inputs.schemas_artifact != 'null' }}
uses: actions/download-artifact@v3
with:
name: ${{ inputs.schemas_artifact }}
path: NewHorizons/Schemas
- name: Build Site
uses: withastro/action@v0
with:
path: ./docs
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1
name: Build Docs
on:
workflow_call:
inputs:
schemas_artifact:
description: "Name of the artifact that has updated schemas, set to `null` to not update"
default: "null"
required: false
type: string
push:
branches: [main]
paths:
- docs/**
- NewHorizons/Schemas/*
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Download Schemas
if: ${{ inputs.schemas_artifact != 'null' }}
uses: actions/download-artifact@v3
with:
name: ${{ inputs.schemas_artifact }}
path: NewHorizons/Schemas
- name: Build Site
uses: withastro/action@v1
with:
path: ./docs
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v1

View File

@ -32,9 +32,9 @@ jobs:
- name: Read Manifest
id: read-manifest
uses: notiz-dev/github-action-json-property@release
with:
path: './NewHorizons/manifest.json'
prop_path: 'version'
with:
path: "./NewHorizons/manifest.json"
prop_path: "version"
- name: Print version numbers
run: |
echo "Manifest version: $MANIFEST_VERSION"

View File

@ -1,29 +1,29 @@
name: Create/Update Release
on:
pull_request:
branches: [main]
types:
- ready_for_review
- edited
- labeled
pull_request:
branches: [main]
types:
- ready_for_review
- edited
- labeled
jobs:
Update_Release:
name: Create/Update Release
if: contains(github.event.pull_request.labels.*.name, 'update-pr')
runs-on: ubuntu-latest
steps:
- name: Create/Update Release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Version ${{ github.event.pull_request.title }}
tag: v${{ github.event.pull_request.title }}
commit: main
body: |
${{ github.event.pull_request.body }}
Update_Release:
name: Create/Update Release
if: contains(github.event.pull_request.labels.*.name, 'update-pr')
runs-on: ubuntu-latest
steps:
- name: Create/Update Release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
name: Version ${{ github.event.pull_request.title }}
tag: v${{ github.event.pull_request.title }}
commit: main
body: |
${{ github.event.pull_request.body }}
**Generated From PR: ${{ github.event.pull_request.html_url }}**
draft: true
prerelease: false
**Generated From PR: ${{ github.event.pull_request.html_url }}**
draft: true
prerelease: false

View File

@ -5,10 +5,10 @@ on:
inputs:
artifact_name:
required: true
description: 'Name of the artifact to download and check against'
description: "Name of the artifact to download and check against"
type: string
# Prevents schemas from trying to update on old commits
# Prevents schemas from trying to update on old commits
concurrency:
group: "schemas-${{ github.ref }}"
cancel-in-progress: true
@ -27,14 +27,14 @@ jobs:
with:
name: ${{ inputs.artifact_name }}
path: NewHorizons/Schemas/
- name: Commit Schemas
run: |
git config --local user.email "bwc9876@gmail.com"
git config --local user.name "Ben C"
git add NewHorizons/Schemas/**
git commit -m "Updated Schemas"
- name: Push Schemas
uses: ad-m/github-push-action@master
with:

View File

@ -1,5 +1,5 @@
{
"yaml.schemas": {
"https://json.schemastore.org/github-workflow.json": "vscode-vfs://github%2B7b2276223a312c22726566223a7b2274797065223a342c226964223a226465766f70732f6e65772d776f726b666c6f7773227d7d/xen-42/outer-wilds-new-horizons/.github/workflows/build.yaml"
}
}
"yaml.schemas": {
"https://json.schemastore.org/github-workflow.json": "vscode-vfs://github%2B7b2276223a312c22726566223a7b2274797065223a342c226964223a226465766f70732f6e65772d776f726b666c6f7773227d7d/xen-42/outer-wilds-new-horizons/.github/workflows/build.yaml"
}
}

View File

@ -1,128 +1,128 @@
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
xen#5498.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.
# Contributor Covenant Code of Conduct
## Our Pledge
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
## Our Standards
Examples of behavior that contributes to a positive environment for our
community include:
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
- Focusing on what is best not just for us as individuals, but for the
overall community
Examples of unacceptable behavior include:
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
xen#5498.
All complaints will be reviewed and investigated promptly and fairly.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series
of actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within
the community.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).
[homepage]: https://www.contributor-covenant.org
For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.

View File

@ -1,69 +1,70 @@
# Contributing
Thank you for choosing to contribute to New Horizons!
## Getting Started
To get started, [fork this repository](https://github.com/xen-42/outer-wilds-new-horizons/fork).
Once you have a fork created, create a new branch off of `dev` where you will make your changes.
Then, clone your fork and checkout your new branch.
## Building
To build a development release of New Horizons, use the `Debug` build target.
This will automatically build to your mods directory in OWML (so long as it's in `%APPDATA%/OuterWildsModManager/OWML`).
### Getting Line Numbers
To save yourself the pain of decoding where in a function an error occured, you can [download this dll file](https://cdn.discordapp.com/attachments/929787137895854100/936860223983976448/mono-2.0-bdwgc.dll) and place it in `MonoBleedingEdge/EmbedRuntime` of the game's folder.
Then (so long as you build targeting `Debug`), line numbers will be shown in any error that comes from New Horizons
## Provide examples
When adding a new feature, include a complete set of planet config files that will sufficiently demonstrate the functionality of the feature/bug fix/improvement. This way reviewers can just copy paste these files into the New Horizons planets folder.
## Updating The Schema
When you add fields to config classes, please document them using XML documentation so that our action can generate a proper schema.
```cs
/// <summary>
/// This is my new field!
/// </summary>
public string myField;
```
You can also use `Range` (from `System.ComponentModel.DataAnnotations` NOT Unity), and `DefaultValue`:
```cs
/// <summary>
/// This is my new field!
/// </summary>
[Range(0, 100)]
[DefaultValue(50)]
public int myField;
```
### Enums
You can also setup enums in the config classes:
```cs
[JsonConverter(typeof(StringEnumConverter))]
public enum MyCoolEnum {
[EnumMember(Value = @"value1")]
Value1 = 0,
[EnumMember(Value = @"value2")]
Value2 = 1,
}
/// <summary>
/// My enum field
/// </summary>
public MyCoolEnum enumField;
```
These will automatically be converted from strings to the proper enum type.
## Contributing to Documentation
If you wish to contribute to the documentation, take a look at [Setup.md](docs/Setup.md) in the docs folder.
# Contributing
Thank you for choosing to contribute to New Horizons!
## Getting Started
To get started, [fork this repository](https://github.com/xen-42/outer-wilds-new-horizons/fork).
Once you have a fork created, create a new branch off of `dev` where you will make your changes.
Then, clone your fork and checkout your new branch.
## Building
To build a development release of New Horizons, use the `Debug` build target.
This will automatically build to your mods directory in OWML (so long as it's in `%APPDATA%/OuterWildsModManager/OWML`).
### Getting Line Numbers
To save yourself the pain of decoding where in a function an error occured, you can [download this dll file](https://cdn.discordapp.com/attachments/929787137895854100/936860223983976448/mono-2.0-bdwgc.dll) and place it in `MonoBleedingEdge/EmbedRuntime` of the game's folder.
Then (so long as you build targeting `Debug`), line numbers will be shown in any error that comes from New Horizons
## Provide examples
When adding a new feature, include a complete set of planet config files that will sufficiently demonstrate the functionality of the feature/bug fix/improvement. This way reviewers can just copy paste these files into the New Horizons planets folder.
## Updating The Schema
When you add fields to config classes, please document them using XML documentation so that our action can generate a proper schema.
```cs
/// <summary>
/// This is my new field!
/// </summary>
public string myField;
```
You can also use `Range` (from `System.ComponentModel.DataAnnotations` NOT Unity), and `DefaultValue`:
```cs
/// <summary>
/// This is my new field!
/// </summary>
[Range(0, 100)]
[DefaultValue(50)]
public int myField;
```
### Enums
You can also setup enums in the config classes:
```cs
[JsonConverter(typeof(StringEnumConverter))]
public enum MyCoolEnum {
[EnumMember(Value = @"value1")]
Value1 = 0,
[EnumMember(Value = @"value2")]
Value2 = 1,
}
/// <summary>
/// My enum field
/// </summary>
public MyCoolEnum enumField;
```
These will automatically be converted from strings to the proper enum type.
## Contributing to Documentation
If you wish to contribute to the documentation, take a look at [Setup.md](docs/Setup.md) in the docs folder.

187
README.md
View File

@ -1,88 +1,99 @@
![new horizons thumbnail 2](https://user-images.githubusercontent.com/22628069/154112130-b777f618-245f-44c9-9408-e11141fc5fde.png)
[![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Downh%26type%3Dpatrons&style=flat)](https://patreon.com/ownh)
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://www.paypal.com/paypalme/xen42)
![Current version](https://img.shields.io/github/manifest-json/v/xen-42/outer-wilds-new-horizons?color=gree&filename=NewHorizons%2Fmanifest.json)
![Downloads](https://img.shields.io/github/downloads/xen-42/outer-wilds-new-horizons/total)
![Downloads of newest version](https://img.shields.io/github/downloads/xen-42/outer-wilds-new-horizons/latest/total)
![Latest release date](https://img.shields.io/github/release-date/xen-42/outer-wilds-new-horizons)
[![Build](https://github.com/xen-42/outer-wilds-new-horizons/actions/workflows/build.yaml/badge.svg)](https://github.com/xen-42/outer-wilds-new-horizons/actions/workflows/build.yaml)
*Do you want to create planets using New Horizons?* Then check out our [website](https://nh.outerwildsmods.com/) for all our documentation!
If you want to see examples of what NH can do check out the [examples add-on](https://github.com/xen-42/ow-new-horizons-examples) or [real solar system add-on](https://github.com/xen-42/outer-wilds-real-solar-system).
Check the ship's log for how to use your warp drive to travel between star systems!
<!-- TOC -->
- [Incompatible mods](#incompatible-mods)
- [Supported mods](#supported-mods)
- [Development](#development)
- [Contact](#contact)
- [Credits](#credits)
<!-- /TOC -->
## Incompatible mods
- Quantum Space Buddies.
- OW Randomizer.
## Supported Mods
New Horizons has optional support for a few other mods:
- [Discord Rich Presence](https://outerwildsmods.com/mods/discordrichpresence/): Showcase what New Horizons worlds you're exploring in your Discord status!
- [Voice Acting Mod](https://outerwildsmods.com/mods/voiceactingmod/): Characters in NH can be given voice lines which will work with this mod installed. Try it out by downloading NH Examples and talking to Ernesto!
- [Achievements+](https://outerwildsmods.com/mods/achievements/): New Horizons and its addons have achievements you can unlock with this mod installed!
## Features
- Load planet meshes or details from asset bundles
- Use our [template Unity project](https://github.com/xen-42/outer-wilds-unity-template) to create assets for use in NH, including all game scripts recovered using UtinyRipper
- Separate solar system scenes accessible via wormhole OR via the ship's new warp drive feature accessible via the ship's log
- Remove or edit existing planets, including what they orbit around
- Create custom planets from heightmaps/texturemaps
- Create stars (and supernovae), comets, asteroid belts, satellites, quantum planets/moons, and custom Dark Bramble dimensions.
- Add stock planet features to custom ones, such as geysers, cloak fields, meteor-launching volcanoes, rafts, tornados, and Dark Bramble seeds/nodes.
- Binary orbits
- Signalscope signals and custom frequencies
- Surface scatter: rocks, trees, etc, using in-game models, or custom ones
- Black hole / white hole pairs
- Custom dialogue, slide-reel projections, translatable text, and custom ship log entries for rumour mode and map mode
- Funnels and variable surface height (can be made of sand/water/lava/star)
## Development
If you want to help (please dear god help us) then check out the [contact](#contact) info below or the [contributing](https://github.com/xen-42/outer-wilds-new-horizons/blob/master/CONTRIBUTING.md) page.
The Unity project we use to make asset bundles for this mod is [here](https://github.com/xen-42/new-horizons-unity).
## Contact
Join the [Outer Wilds Modding Discord](https://discord.gg/MvbCbBz6Q6) if you have any questions or just want to chat about modding! Theres a New Horizons category there dedicated to discussion of this mod.
## Credits
Main authors:
- [xen](https://github.com/xen-42)
- [Bwc9876](https://github.com/Bwc9876) (New Horizons v0.9.0 onwards)
New Horizons was made with help from:
- [JohnCorby](https://github.com/JohnCorby)
- [MegaPiggy](https://github.com/MegaPiggy)
- [FreezeDriedMangos](https://github.com/FreezeDriedMangos)
- [Trifid](https://github.com/TerrificTrifid)
- [Hawkbar](https://github.com/Hawkbat)
- And many others, see the [contributors](https://github.com/Outer-Wilds-New-Horizons/new-horizons/graphs/contributors) page.
Translation credits:
- Russian: Tlya
- German: Nolram
- Spanish: Ciborgm9, Ink, GayCoffee
- French: xen
- Japanese: TRSasasusu
New Horizons was based off [Marshmallow](https://github.com/misternebula/Marshmallow) was made by:
- [_nebula](https://github.com/misternebula)
with help from:
- TAImatem
- AmazingAlek
- Raicuparta
- and the Outer Wilds discord server.
![new horizons thumbnail 2](https://user-images.githubusercontent.com/22628069/154112130-b777f618-245f-44c9-9408-e11141fc5fde.png)
[![Support me on Patreon](https://img.shields.io/endpoint.svg?url=https%3A%2F%2Fshieldsio-patreon.vercel.app%2Fapi%3Fusername%3Downh%26type%3Dpatrons&style=flat)](https://patreon.com/ownh)
[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://www.paypal.com/paypalme/xen42)
![Current version](https://img.shields.io/github/manifest-json/v/xen-42/outer-wilds-new-horizons?color=gree&filename=NewHorizons%2Fmanifest.json)
![Downloads](https://img.shields.io/github/downloads/xen-42/outer-wilds-new-horizons/total)
![Downloads of newest version](https://img.shields.io/github/downloads/xen-42/outer-wilds-new-horizons/latest/total)
![Latest release date](https://img.shields.io/github/release-date/xen-42/outer-wilds-new-horizons)
[![Build](https://github.com/xen-42/outer-wilds-new-horizons/actions/workflows/build.yaml/badge.svg)](https://github.com/xen-42/outer-wilds-new-horizons/actions/workflows/build.yaml)
_Do you want to create planets using New Horizons?_ Then check out our [website](https://nh.outerwildsmods.com/) for all our documentation!
If you want to see examples of what NH can do check out the [examples add-on](https://github.com/xen-42/ow-new-horizons-examples) or [real solar system add-on](https://github.com/xen-42/outer-wilds-real-solar-system).
Check the ship's log for how to use your warp drive to travel between star systems!
<!-- TOC -->
- [Incompatible mods](#incompatible-mods)
- [Supported mods](#supported-mods)
- [Development](#development)
- [Contact](#contact)
- [Credits](#credits)
<!-- /TOC -->
## Incompatible mods
- Quantum Space Buddies.
- OW Randomizer.
## Supported Mods
New Horizons has optional support for a few other mods:
- [Discord Rich Presence](https://outerwildsmods.com/mods/discordrichpresence/): Showcase what New Horizons worlds you're exploring in your Discord status!
- [Voice Acting Mod](https://outerwildsmods.com/mods/voiceactingmod/): Characters in NH can be given voice lines which will work with this mod installed. Try it out by downloading NH Examples and talking to Ernesto!
- [Achievements+](https://outerwildsmods.com/mods/achievements/): New Horizons and its addons have achievements you can unlock with this mod installed!
## Features
- Load planet meshes or details from asset bundles
- Use our [template Unity project](https://github.com/xen-42/outer-wilds-unity-template) to create assets for use in NH, including all game scripts recovered using UtinyRipper
- Separate solar system scenes accessible via wormhole OR via the ship's new warp drive feature accessible via the ship's log
- Remove or edit existing planets, including what they orbit around
- Create custom planets from heightmaps/texturemaps
- Create stars (and supernovae), comets, asteroid belts, satellites, quantum planets/moons, and custom Dark Bramble dimensions.
- Add stock planet features to custom ones, such as geysers, cloak fields, meteor-launching volcanoes, rafts, tornados, and Dark Bramble seeds/nodes.
- Binary orbits
- Signalscope signals and custom frequencies
- Surface scatter: rocks, trees, etc, using in-game models, or custom ones
- Black hole / white hole pairs
- Custom dialogue, slide-reel projections, translatable text, and custom ship log entries for rumour mode and map mode
- Funnels and variable surface height (can be made of sand/water/lava/star)
## Development
If you want to help (please dear god help us) then check out the [contact](#contact) info below or the [contributing](https://github.com/xen-42/outer-wilds-new-horizons/blob/master/CONTRIBUTING.md) page.
The Unity project we use to make asset bundles for this mod is [here](https://github.com/xen-42/new-horizons-unity).
## Contact
Join the [Outer Wilds Modding Discord](https://discord.gg/MvbCbBz6Q6) if you have any questions or just want to chat about modding! Theres a New Horizons category there dedicated to discussion of this mod.
## Credits
Main authors:
- [xen](https://github.com/xen-42)
- [Bwc9876](https://github.com/Bwc9876) (New Horizons v0.9.0 onwards)
New Horizons was made with help from:
- [JohnCorby](https://github.com/JohnCorby)
- [MegaPiggy](https://github.com/MegaPiggy)
- [FreezeDriedMangos](https://github.com/FreezeDriedMangos)
- [Trifid](https://github.com/TerrificTrifid)
- [Hawkbar](https://github.com/Hawkbat)
- And many others, see the [contributors](https://github.com/Outer-Wilds-New-Horizons/new-horizons/graphs/contributors) page.
Translation credits:
- Russian: Tlya
- German: Nolram
- Spanish: Ciborgm9, Ink, GayCoffee
- French: xen
- Japanese: TRSasasusu
New Horizons was based off [Marshmallow](https://github.com/misternebula/Marshmallow) was made by:
- [\_nebula](https://github.com/misternebula)
with help from:
- TAImatem
- AmazingAlek
- Raicuparta
- and the Outer Wilds discord server.