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 patreon: ownh
custom: ["https://paypal.me/xen42"] custom: ["https://paypal.me/xen42"]

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,69 +1,70 @@
# Contributing # Contributing
Thank you for choosing to contribute to New Horizons! Thank you for choosing to contribute to New Horizons!
## Getting Started ## Getting Started
To get started, [fork this repository](https://github.com/xen-42/outer-wilds-new-horizons/fork). 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. 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. Then, clone your fork and checkout your new branch.
## Building ## Building
To build a development release of New Horizons, use the `Debug` build target. 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`). This will automatically build to your mods directory in OWML (so long as it's in `%APPDATA%/OuterWildsModManager/OWML`).
### Getting Line Numbers ### 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. 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 Then (so long as you build targeting `Debug`), line numbers will be shown in any error that comes from New Horizons
## Provide examples ## 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.
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
## 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.
When you add fields to config classes, please document them using XML documentation so that our action can generate a proper schema.
```cs
/// <summary> ```cs
/// This is my new field! /// <summary>
/// </summary> /// This is my new field!
public string myField; /// </summary>
``` public string myField;
```
You can also use `Range` (from `System.ComponentModel.DataAnnotations` NOT Unity), and `DefaultValue`:
You can also use `Range` (from `System.ComponentModel.DataAnnotations` NOT Unity), and `DefaultValue`:
```cs
/// <summary> ```cs
/// This is my new field! /// <summary>
/// </summary> /// This is my new field!
[Range(0, 100)] /// </summary>
[DefaultValue(50)] [Range(0, 100)]
public int myField; [DefaultValue(50)]
``` public int myField;
```
### Enums
### Enums
You can also setup enums in the config classes:
You can also setup enums in the config classes:
```cs
[JsonConverter(typeof(StringEnumConverter))] ```cs
public enum MyCoolEnum { [JsonConverter(typeof(StringEnumConverter))]
[EnumMember(Value = @"value1")] public enum MyCoolEnum {
Value1 = 0, [EnumMember(Value = @"value1")]
[EnumMember(Value = @"value2")] Value1 = 0,
Value2 = 1, [EnumMember(Value = @"value2")]
} Value2 = 1,
}
/// <summary>
/// My enum field /// <summary>
/// </summary> /// My enum field
public MyCoolEnum enumField; /// </summary>
``` public MyCoolEnum enumField;
```
These will automatically be converted from strings to the proper enum type.
These will automatically be converted from strings to the proper enum type.
## Contributing to Documentation
## Contributing to Documentation
If you wish to contribute to the documentation, take a look at [Setup.md](docs/Setup.md) in the docs folder.
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) ![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)
[![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)
[![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)
![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](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)
![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)
![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)
[![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!
*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).
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!
Check the ship's log for how to use your warp drive to travel between star systems!
<!-- TOC -->
<!-- TOC -->
- [Incompatible mods](#incompatible-mods)
- [Incompatible mods](#incompatible-mods) - [Supported mods](#supported-mods)
- [Supported mods](#supported-mods) - [Development](#development)
- [Development](#development) - [Contact](#contact)
- [Contact](#contact) - [Credits](#credits)
- [Credits](#credits)
<!-- /TOC -->
<!-- /TOC -->
## Incompatible mods
## Incompatible mods
- Quantum Space Buddies. - Quantum Space Buddies.
- OW Randomizer. - OW Randomizer.
## Supported Mods ## 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! New Horizons has optional support for a few other mods:
- [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! - [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!
## Features - [Achievements+](https://outerwildsmods.com/mods/achievements/): New Horizons and its addons have achievements you can unlock with this mod installed!
- 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 ## Features
- 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 - Load planet meshes or details from asset bundles
- Create custom planets from heightmaps/texturemaps - 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
- Create stars (and supernovae), comets, asteroid belts, satellites, quantum planets/moons, and custom Dark Bramble dimensions. - Separate solar system scenes accessible via wormhole OR via the ship's new warp drive feature accessible via the ship's log
- Add stock planet features to custom ones, such as geysers, cloak fields, meteor-launching volcanoes, rafts, tornados, and Dark Bramble seeds/nodes. - Remove or edit existing planets, including what they orbit around
- Binary orbits - Create custom planets from heightmaps/texturemaps
- Signalscope signals and custom frequencies - Create stars (and supernovae), comets, asteroid belts, satellites, quantum planets/moons, and custom Dark Bramble dimensions.
- Surface scatter: rocks, trees, etc, using in-game models, or custom ones - Add stock planet features to custom ones, such as geysers, cloak fields, meteor-launching volcanoes, rafts, tornados, and Dark Bramble seeds/nodes.
- Black hole / white hole pairs - Binary orbits
- Custom dialogue, slide-reel projections, translatable text, and custom ship log entries for rumour mode and map mode - Signalscope signals and custom frequencies
- Funnels and variable surface height (can be made of sand/water/lava/star) - Surface scatter: rocks, trees, etc, using in-game models, or custom ones
- Black hole / white hole pairs
## Development - Custom dialogue, slide-reel projections, translatable text, and custom ship log entries for rumour mode and map mode
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. - Funnels and variable surface height (can be made of sand/water/lava/star)
The Unity project we use to make asset bundles for this mod is [here](https://github.com/xen-42/new-horizons-unity). ## Development
## Contact 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.
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.
The Unity project we use to make asset bundles for this mod is [here](https://github.com/xen-42/new-horizons-unity).
## Credits
Main authors: ## Contact
- [xen](https://github.com/xen-42)
- [Bwc9876](https://github.com/Bwc9876) (New Horizons v0.9.0 onwards) 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.
New Horizons was made with help from: ## Credits
- [JohnCorby](https://github.com/JohnCorby)
- [MegaPiggy](https://github.com/MegaPiggy) Main authors:
- [FreezeDriedMangos](https://github.com/FreezeDriedMangos)
- [Trifid](https://github.com/TerrificTrifid) - [xen](https://github.com/xen-42)
- [Hawkbar](https://github.com/Hawkbat) - [Bwc9876](https://github.com/Bwc9876) (New Horizons v0.9.0 onwards)
- And many others, see the [contributors](https://github.com/Outer-Wilds-New-Horizons/new-horizons/graphs/contributors) page.
New Horizons was made with help from:
Translation credits:
- Russian: Tlya - [JohnCorby](https://github.com/JohnCorby)
- German: Nolram - [MegaPiggy](https://github.com/MegaPiggy)
- Spanish: Ciborgm9, Ink, GayCoffee - [FreezeDriedMangos](https://github.com/FreezeDriedMangos)
- French: xen - [Trifid](https://github.com/TerrificTrifid)
- Japanese: TRSasasusu - [Hawkbar](https://github.com/Hawkbat)
- And many others, see the [contributors](https://github.com/Outer-Wilds-New-Horizons/new-horizons/graphs/contributors) page.
New Horizons was based off [Marshmallow](https://github.com/misternebula/Marshmallow) was made by:
- [_nebula](https://github.com/misternebula) Translation credits:
with help from: - Russian: Tlya
- TAImatem - German: Nolram
- AmazingAlek - Spanish: Ciborgm9, Ink, GayCoffee
- Raicuparta - French: xen
- and the Outer Wilds discord server. - 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.