mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
commit
1f44218e9c
@ -8,10 +8,10 @@ Thank you for your interest in contributing to NH Docs! We are excited to have y
|
|||||||
|
|
||||||
Pages in the NH docs are all markdown files. The folder with all the pages is in `src/content/docs`.
|
Pages in the NH docs are all markdown files. The folder with all the pages is in `src/content/docs`.
|
||||||
|
|
||||||
- `index.mdx` Is a special file that is the home page of the docs. This is a markdown X file that allows us to use Astro components in the markdown.
|
- `index.mdx` Is a special file that is the home page of the docs. This is a markdown X file that allows us to use Astro components in the markdown.
|
||||||
- `start-here` is the folder that contains all the pages for the start here section of the docs.
|
- `start-here` is the folder that contains all the pages for the start here section of the docs.
|
||||||
- `getting-started` is the folder that contains all the pages for the getting started section of the docs.
|
- `getting-started` is the folder that contains all the pages for the getting started section of the docs.
|
||||||
- `reference` is the folder that contains all the pages for the api section of the docs.
|
- `reference` is the folder that contains all the pages for the api section of the docs.
|
||||||
|
|
||||||
Finally, the `schemas` folder contains all the schema pages. You might notice that the schema folder is not present in GitHub. This is because the schema pages are auto-generated from the schema files in `../NewHorizons/Schemas`. In order to edit these you need to edit the C# class they correspond to. More info in the main contributing document found one folder up.
|
Finally, the `schemas` folder contains all the schema pages. You might notice that the schema folder is not present in GitHub. This is because the schema pages are auto-generated from the schema files in `../NewHorizons/Schemas`. In order to edit these you need to edit the C# class they correspond to. More info in the main contributing document found one folder up.
|
||||||
|
|
||||||
@ -23,10 +23,10 @@ One thing to note is the section fenced with `---` at the top of each page. This
|
|||||||
|
|
||||||
If you open this folder (`docs` not the entire repo), VSCode should prompt you to install the recommended extensions. If it doesn't, you can install them manually. The recommended extensions are:
|
If you open this folder (`docs` not the entire repo), VSCode should prompt you to install the recommended extensions. If it doesn't, you can install them manually. The recommended extensions are:
|
||||||
|
|
||||||
- astro-build.astro-vscode
|
- astro-build.astro-vscode
|
||||||
- davidanson.vscode-markdownlint
|
- davidanson.vscode-markdownlint
|
||||||
- yzhang.markdown-all-in-one
|
- yzhang.markdown-all-in-one
|
||||||
- esbenp.prettier-vscode
|
- esbenp.prettier-vscode
|
||||||
|
|
||||||
## How To Add Pages
|
## How To Add Pages
|
||||||
|
|
||||||
@ -48,8 +48,8 @@ Your images will be automatically optimized when the site is built.
|
|||||||
|
|
||||||
If you want to get a local copy of the site running, you'll need a few programs
|
If you want to get a local copy of the site running, you'll need a few programs
|
||||||
|
|
||||||
- [Node.js](https://nodejs.org/en/)
|
- [Node.js](https://nodejs.org/en/)
|
||||||
- [PNPM](https://pnpm.io/)
|
- [PNPM](https://pnpm.io/)
|
||||||
|
|
||||||
Once you have these installed, you can run the following commands to get the site running locally:
|
Once you have these installed, you can run the following commands to get the site running locally:
|
||||||
|
|
||||||
|
|||||||
@ -12,18 +12,18 @@
|
|||||||
"format": "prettier --write ."
|
"format": "prettier --write ."
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@astrojs/starlight": "^0.24.2",
|
"@astrojs/starlight": "^0.30.3",
|
||||||
"astro": "4.10.2",
|
"astro": "5.1.3",
|
||||||
"rehype-external-links": "^3.0.0",
|
"rehype-external-links": "^3.0.0",
|
||||||
"sharp": "^0.33.4"
|
"sharp": "^0.33.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@apidevtools/json-schema-ref-parser": "^11.6.4",
|
"@apidevtools/json-schema-ref-parser": "^11.7.3",
|
||||||
"eslint": "^8.56.0",
|
"eslint": "^9.17.0",
|
||||||
"eslint-plugin-prettier": "^5.1.3",
|
"eslint-plugin-prettier": "^5.2.1",
|
||||||
"fast-xml-parser": "^4.4.0",
|
"fast-xml-parser": "^4.5.1",
|
||||||
"prettier": "^3.3.2",
|
"prettier": "^3.4.2",
|
||||||
"prettier-plugin-astro": "^0.14.0",
|
"prettier-plugin-astro": "^0.14.1",
|
||||||
"xml-js": "^1.6.11"
|
"xml-js": "^1.6.11"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
9791
docs/pnpm-lock.yaml
generated
9791
docs/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -5,9 +5,9 @@ description: A guide to adding details to planets in New Horizons
|
|||||||
|
|
||||||
For physical objects there are currently two ways of setting them up: specify an asset bundle and path to load a custom asset you created, or specify the path to the item you want to copy from the game in the scene hierarchy. Use the [Unity Explorer](https://outerwildsmods.com/mods/unityexplorer) mod to find an object you want to copy onto your new body. Some objects work better than others for this. Good luck. Some pointers:
|
For physical objects there are currently two ways of setting them up: specify an asset bundle and path to load a custom asset you created, or specify the path to the item you want to copy from the game in the scene hierarchy. Use the [Unity Explorer](https://outerwildsmods.com/mods/unityexplorer) mod to find an object you want to copy onto your new body. Some objects work better than others for this. Good luck. Some pointers:
|
||||||
|
|
||||||
- Use "Object Explorer" to search
|
- Use "Object Explorer" to search
|
||||||
- Generally you can find planets by writing their name with no spaces/punctuation followed by "\_Body".
|
- Generally you can find planets by writing their name with no spaces/punctuation followed by "\_Body".
|
||||||
- There's also [this community-maintained list of props](https://docs.google.com/spreadsheets/d/1VJaglB1kRL0VqaXhvXepIeymo93zqhWex-j7_QDm6NE/edit?usp=sharing) which you can use to find interesting props and check to see if they have collision.
|
- There's also [this community-maintained list of props](https://docs.google.com/spreadsheets/d/1VJaglB1kRL0VqaXhvXepIeymo93zqhWex-j7_QDm6NE/edit?usp=sharing) which you can use to find interesting props and check to see if they have collision.
|
||||||
|
|
||||||
## Debug Raycast
|
## Debug Raycast
|
||||||
|
|
||||||
|
|||||||
@ -35,12 +35,12 @@ There are also tools to help generate these images for you such as [Textures For
|
|||||||
|
|
||||||
The following modules support variable sizing, meaning they can change scale over the course of the loop.
|
The following modules support variable sizing, meaning they can change scale over the course of the loop.
|
||||||
|
|
||||||
- Water
|
- Water
|
||||||
- Lava
|
- Lava
|
||||||
- Star
|
- Star
|
||||||
- Sand
|
- Sand
|
||||||
- Funnel
|
- Funnel
|
||||||
- Ring
|
- Ring
|
||||||
|
|
||||||
To do this, simply specify a `curve` property on the module
|
To do this, simply specify a `curve` property on the module
|
||||||
|
|
||||||
|
|||||||
@ -10,10 +10,10 @@ This guide assumes you've created your addon by following [the addon creation gu
|
|||||||
|
|
||||||
Before you release anything, you'll want to make sure:
|
Before you release anything, you'll want to make sure:
|
||||||
|
|
||||||
- Your mod has a descriptive `README.md`. (This will be shown on the website)
|
- Your mod has a descriptive `README.md`. (This will be shown on the website)
|
||||||
- Your repo has the description field (click the cog in the right column on the "Code" tab) set. (this will be shown in the manager)
|
- Your repo has the description field (click the cog in the right column on the "Code" tab) set. (this will be shown in the manager)
|
||||||
- There's no `config.json` in your addon. (Not super important, but good practice)
|
- There's no `config.json` in your addon. (Not super important, but good practice)
|
||||||
- Your manifest has a valid name, author, and unique name.
|
- Your manifest has a valid name, author, and unique name.
|
||||||
|
|
||||||
## Releasing
|
## Releasing
|
||||||
|
|
||||||
|
|||||||
@ -35,8 +35,8 @@ Are you tired of manually translating JSON? Do you want an automatic translator?
|
|||||||
|
|
||||||
This tool has the following features:
|
This tool has the following features:
|
||||||
|
|
||||||
- Extract text from XML files and create english.json as the translation source.
|
- Extract text from XML files and create english.json as the translation source.
|
||||||
- Translate english.json to create a json file for another language.
|
- Translate english.json to create a json file for another language.
|
||||||
|
|
||||||
This section outlines how to install and use the nh-translation-helper.
|
This section outlines how to install and use the nh-translation-helper.
|
||||||
|
|
||||||
@ -44,10 +44,10 @@ This section outlines how to install and use the nh-translation-helper.
|
|||||||
|
|
||||||
To get started, head over to the [repo for the tool](https://github.com/96-38/nh-translation-helper) and prepare the requirements:
|
To get started, head over to the [repo for the tool](https://github.com/96-38/nh-translation-helper) and prepare the requirements:
|
||||||
|
|
||||||
- Install [Node.js](https://nodejs.org/) >= 12.0.0
|
- Install [Node.js](https://nodejs.org/) >= 12.0.0
|
||||||
- Install the LTS version.
|
- Install the LTS version.
|
||||||
- Get [DeepL API](https://www.deepl.com/docs-api) Key (Free or Pro)
|
- Get [DeepL API](https://www.deepl.com/docs-api) Key (Free or Pro)
|
||||||
- Sign up [here](https://www.deepl.com/pro#developer)
|
- Sign up [here](https://www.deepl.com/pro#developer)
|
||||||
|
|
||||||
When you are ready, execute the following command in a terminal or command prompt:
|
When you are ready, execute the following command in a terminal or command prompt:
|
||||||
|
|
||||||
@ -81,20 +81,20 @@ Please enter the DeepL API key for the first time only. The API key will be save
|
|||||||
|
|
||||||
### Note
|
### Note
|
||||||
|
|
||||||
- Not supported extracting UIDictionary and AchievementTranslations
|
- Not supported extracting UIDictionary and AchievementTranslations
|
||||||
|
|
||||||
- It is difficult to parse these automatically, and the number of words is small that it would be better to add them by MOD developers manually for better results.
|
- It is difficult to parse these automatically, and the number of words is small that it would be better to add them by MOD developers manually for better results.
|
||||||
- Translating UIDictionary and AchievementTranslations is supported.
|
- Translating UIDictionary and AchievementTranslations is supported.
|
||||||
|
|
||||||
- Not supported translation into Korean
|
- Not supported translation into Korean
|
||||||
|
|
||||||
- Translation is provided by the DeepL API, so it is not possible to translate into languages that are not supported by DeepL.
|
- Translation is provided by the DeepL API, so it is not possible to translate into languages that are not supported by DeepL.
|
||||||
|
|
||||||
- The generated translations are "**not**" perfect
|
- The generated translations are "**not**" perfect
|
||||||
|
|
||||||
- It is a machine translation though DeepL. The translations on DeepL are known to be too casual or to abbreviate some sentences.
|
- It is a machine translation though DeepL. The translations on DeepL are known to be too casual or to abbreviate some sentences.
|
||||||
- It will need to be manually corrected to make it a good translation. However, this tool allows you to prototype and is more efficient than starting from scratch. Also, the CDATA tag has been removed from the translated text and must be added manually.
|
- It will need to be manually corrected to make it a good translation. However, this tool allows you to prototype and is more efficient than starting from scratch. Also, the CDATA tag has been removed from the translated text and must be added manually.
|
||||||
|
|
||||||
- Parsing errors may occur when trying to translate manually created JSON files
|
- Parsing errors may occur when trying to translate manually created JSON files
|
||||||
- In many cases, this is due to a specific comment in the JSON. Please remove the comments and try again.
|
- In many cases, this is due to a specific comment in the JSON. Please remove the comments and try again.
|
||||||
- Most comments are processed normally, but errors may occur if the comment contains special symbols or if the comment is located at the end of a JSON object.
|
- Most comments are processed normally, but errors may occur if the comment contains special symbols or if the comment is located at the end of a JSON object.
|
||||||
|
|||||||
@ -3,31 +3,31 @@ title: Update Existing Planets
|
|||||||
description: A guide for updating base-game planets in New Horizons
|
description: A guide for updating base-game planets in New Horizons
|
||||||
---
|
---
|
||||||
|
|
||||||
Similar to above, make a config where "Name" is the name of the planet. The name should be able to just match their in-game english names, however if you encounter any issues with that here are the in-code names for planets that are guaranteed to work:
|
Similar to above, make a config where "Name" is the name of the planet. The name should be able to just match their in-game english names, however if you encounter any issues with that here are the in-code names for planets that are guaranteed to work (case sensitive!):
|
||||||
|
|
||||||
- `SUN`
|
- `SUN`
|
||||||
- `CAVE_TWIN` (Ember Twin)
|
- `CAVE_TWIN` (Ember Twin)
|
||||||
- `TOWER_TWIN` (Ash Twin)
|
- `TOWER_TWIN` (Ash Twin)
|
||||||
- `TIMBER_HEARTH`
|
- `TIMBER_HEARTH`
|
||||||
- `BRITTLE_HOLLOW`
|
- `BRITTLE_HOLLOW`
|
||||||
- `GIANTS_DEEP`
|
- `GIANTS_DEEP`
|
||||||
- `DARK_BRAMBLE`
|
- `DARK_BRAMBLE`
|
||||||
- `COMET` (Interloper)
|
- `COMET` (Interloper)
|
||||||
- `WHITE_HOLE`
|
- `WHITE_HOLE`
|
||||||
- `WHITE_HOLE_TARGET` (The Whitehole Station)
|
- `WhiteholeStation`
|
||||||
- `QUANTUM_MOON`
|
- `QUANTUM_MOON`
|
||||||
- `ORBITAL_PROBE_CANNON`
|
- `ORBITAL_PROBE_CANNON`
|
||||||
- `TIMBER_MOON` (Attlerock)
|
- `TIMBER_MOON` (Attlerock)
|
||||||
- `VOLCANIC_MOON` (Hollow's Lantern)
|
- `VOLCANIC_MOON` (Hollow's Lantern)
|
||||||
- `DREAMWORLD`
|
- `DREAMWORLD`
|
||||||
- `MapSatellite`
|
- `MapSatellite`
|
||||||
- `RINGWORLD` (The Stranger)
|
- `RINGWORLD` (The Stranger)
|
||||||
|
|
||||||
Some features will not work if you try to add them to a base planet config. These include:
|
Some features will not work if you try to add them to a base planet config. These include:
|
||||||
|
|
||||||
- FocalPoints (just makes no sense really, a focal point is meant to be a intangible point between two binary bodies).
|
- FocalPoints (just makes no sense really, a focal point is meant to be a intangible point between two binary bodies).
|
||||||
- Gravity (including the strength, fall-off, and the size of the gravitational sphere of influence)
|
- Gravity (including the strength, fall-off, and the size of the gravitational sphere of influence)
|
||||||
- Reference frames (the volume used for targetting a planet with your ships navigation systems)
|
- Reference frames (the volume used for targetting a planet with your ships navigation systems)
|
||||||
|
|
||||||
You can also delete parts of an existing planet. Here's part of an example config which would delete the rising sand from Ember Twin:
|
You can also delete parts of an existing planet. Here's part of an example config which would delete the rising sand from Ember Twin:
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Celestial Body Schema
|
title: "Celestial Body Schema"
|
||||||
description: Describes a celestial body to generate
|
description: "Describes a celestial body to generate"
|
||||||
editUrl: false
|
editUrl: false
|
||||||
schemaFile: body_schema.json
|
schemaFile: "body_schema.json"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Schema from "/src/components/Schemas/Schema.astro";
|
import Schema from "/src/components/Schemas/Schema.astro";
|
||||||
|
|||||||
@ -35,8 +35,7 @@ Once in VSCode, paste this code into the file:
|
|||||||
"Base": {
|
"Base": {
|
||||||
"groundSize": 100,
|
"groundSize": 100,
|
||||||
"surfaceSize": 101,
|
"surfaceSize": 101,
|
||||||
"surfaceGravity": 12,
|
"surfaceGravity": 12
|
||||||
"hasMapMarker": true
|
|
||||||
},
|
},
|
||||||
"Orbit": {
|
"Orbit": {
|
||||||
"semiMajorAxis": 1300,
|
"semiMajorAxis": 1300,
|
||||||
@ -55,6 +54,9 @@ Once in VSCode, paste this code into the file:
|
|||||||
"fogSize": 150,
|
"fogSize": 150,
|
||||||
"fogDensity": 0.2,
|
"fogDensity": 0.2,
|
||||||
"hasRain": true
|
"hasRain": true
|
||||||
|
},
|
||||||
|
"MapMarker": {
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
@ -64,34 +66,35 @@ It has an object called Base, which has a groundSize of 100, and a surfaceSize o
|
|||||||
|
|
||||||
Alright so now that we understand how the file is structures, let's look into what each value actually does:
|
Alright so now that we understand how the file is structures, let's look into what each value actually does:
|
||||||
|
|
||||||
- `name` simply sets the name of the planet
|
- `name` simply sets the name of the planet
|
||||||
- `$schema` we'll get to in a second
|
- `$schema` we'll get to in a second
|
||||||
- `starSystem` specifies what star system this planet is located in, in this case we're using the base game star system, so we put "SolarSystem"
|
- `starSystem` specifies what star system this planet is located in, in this case we're using the base game star system, so we put "SolarSystem"
|
||||||
- Then it has an object called `Base`
|
- Then it has an object called `Base`
|
||||||
- Base has a `groundSize` of 100, this generates a perfect sphere that is 100 units in radius as the ground of our planet
|
- Base has a `groundSize` of 100, this generates a perfect sphere that is 100 units in radius as the ground of our planet
|
||||||
- It also has a `surfaceSize` of 101, surface size is used in many calculations, it's generally good to set it to a bit bigger than ground size.
|
- It also has a `surfaceSize` of 101, surface size is used in many calculations, it's generally good to set it to a bit bigger than ground size.
|
||||||
- `surfaceGravity` describes the strength of gravity on this planet, in this case it's 12 which is the same as Timber Hearth
|
- `surfaceGravity` describes the strength of gravity on this planet, in this case it's 12 which is the same as Timber Hearth
|
||||||
- `hasMapMarker` tells new horizons that we want this planet to have a marker on the map screen
|
- Next it has another object called `Orbit`
|
||||||
- Next it has another object called `Orbit`
|
- `semiMajorAxis` specifies the radius of the orbit (how far away the body is from its parent)
|
||||||
- `semiMajorAxis` specifies the radius of the orbit (how far away the body is from its parent)
|
- `primaryBody` is set to `TIMBER_HEARTH``, this makes our planet orbit timber hearth
|
||||||
- `primaryBody` is set to `TIMBER_HEARTH``, this makes our planet orbit timber hearth
|
- `isMoon` simply tells the game how close you have to be to the planet in map mode before its name appears
|
||||||
- `isMoon` simply tells the game how close you have to be to the planet in map mode before its name appears
|
- `isTidallyLocked` makes sure that one side of our planet is always facing timber hearth (the primary body)
|
||||||
- `isTidallyLocked` makes sure that one side of our planet is always facing timber hearth (the primary body)
|
- Next, we have `Atmosphere`
|
||||||
- Finally, we have `Atmosphere`
|
- Its `size` is 150, this simply sets how far away from the planet our atmosphere stretches
|
||||||
- Its `size` is 150, this simply sets how far away from the planet our atmosphere stretches
|
- Its `fogTint` is set to a color which is an object with r, g, b, and a properties (properties is another word for keys)
|
||||||
- Its `fogTint` is set to a color which is an object with r, g, b, and a properties (properties is another word for keys)
|
- `fogSize` determines how far away the fog stretches from the planet
|
||||||
- `fogSize` determines how far away the fog stretches from the planet
|
- `fogDensity` is simply how dense the fog is
|
||||||
- `fogDensity` is simply how dense the fog is
|
- `hasRain` makes rainfall on the planet
|
||||||
- `hasRain` makes rainfall on the planet
|
- Finally, we have `MapMarker`
|
||||||
|
- `enabled` tells New Horizons that we want this planet to have a marker on the map screen
|
||||||
|
|
||||||
#### What's a Schema?
|
#### What's a Schema?
|
||||||
|
|
||||||
That `$schema` property is a bit special, it instructs VSCode to use a pre-made schema to provide a better editing experience.
|
That `$schema` property is a bit special, it instructs VSCode to use a pre-made schema to provide a better editing experience.
|
||||||
With the schema you get:
|
With the schema you get:
|
||||||
|
|
||||||
- Automatic descriptions for properties when hovering over keys
|
- Automatic descriptions for properties when hovering over keys
|
||||||
- Automatic error detection for incorrect data types or values
|
- Automatic error detection for incorrect data types or values
|
||||||
- Autocomplete, also called IntelliSense
|
- Autocomplete, also called IntelliSense
|
||||||
|
|
||||||
The schema we're using here is the [Celestial Body Schema](/schemas/body-schema), but there are many others available in the Schemas section of the left sidebar.
|
The schema we're using here is the [Celestial Body Schema](/schemas/body-schema), but there are many others available in the Schemas section of the left sidebar.
|
||||||
|
|
||||||
@ -101,8 +104,8 @@ With the new planet created (_and saved!_), launch the game through the mod mana
|
|||||||
|
|
||||||
If you run into issues please make sure:
|
If you run into issues please make sure:
|
||||||
|
|
||||||
- You placed the JSON file in a folder called `planets` in the New Horizons mod folder
|
- You placed the JSON file in a folder called `planets` in the New Horizons mod folder
|
||||||
- There are no red or yellow squiggly lines in your file
|
- There are no red or yellow squiggly lines in your file
|
||||||
|
|
||||||
## Creating An Addon
|
## Creating An Addon
|
||||||
|
|
||||||
@ -110,9 +113,9 @@ If you run into issues please make sure:
|
|||||||
|
|
||||||
To get started, you'll need to click the green "Use This Template" button on [the New Horizons addon template](https://github.com/xen-42/ow-new-horizons-config-template) GitHub repository.
|
To get started, you'll need to click the green "Use This Template" button on [the New Horizons addon template](https://github.com/xen-42/ow-new-horizons-config-template) GitHub repository.
|
||||||
|
|
||||||
- Set the Name to your username followed by a dot (`.`), followed by your mod's name in PascalCase (no spaces, new words have capital letters). So for example if my username was "Test" and my mod's name was "Really Cool Addon", I would name the repo `Test.ReallyCoolAddon`.
|
- Set the Name to your username followed by a dot (`.`), followed by your mod's name in PascalCase (no spaces, new words have capital letters). So for example if my username was "Test" and my mod's name was "Really Cool Addon", I would name the repo `Test.ReallyCoolAddon`.
|
||||||
- The description is what will appear in the mod manager under the mod's name, you can always edit this later
|
- The description is what will appear in the mod manager under the mod's name, you can always edit this later
|
||||||
- You can set the visibility to what you want; But when you go to publish your mod, it will need to be public
|
- You can set the visibility to what you want; But when you go to publish your mod, it will need to be public
|
||||||
|
|
||||||
### Open The Project
|
### Open The Project
|
||||||
|
|
||||||
@ -120,16 +123,16 @@ Now clone the repository to your local computer and open it in your favorite edi
|
|||||||
|
|
||||||
### Project Layout
|
### Project Layout
|
||||||
|
|
||||||
- .github: This folder contains special files for use on GitHub, they aren't useful right now but will be when we go to publish the mod
|
- .github: This folder contains special files for use on GitHub, they aren't useful right now but will be when we go to publish the mod
|
||||||
- planets: This folder contains a single example config file that destroys the Quantum Moon, we'll keep it for now so we can test our addon later.
|
- planets: This folder contains a single example config file that destroys the Quantum Moon, we'll keep it for now so we can test our addon later.
|
||||||
- .gitattributes: This is another file that will be useful when publishing
|
- .gitattributes: This is another file that will be useful when publishing
|
||||||
- default-config.json: This file is used in C#-based mods to allow a custom options menu, New Horizons doesn't support a custom options menu, but we still need the file here in order for the addon to work.
|
- default-config.json: This file is used in C#-based mods to allow a custom options menu, New Horizons doesn't support a custom options menu, but we still need the file here in order for the addon to work.
|
||||||
- manifest.json: This is the first file we're going to edit, we need to fill it out with information about our mod
|
- manifest.json: This is the first file we're going to edit, we need to fill it out with information about our mod
|
||||||
- First you're going to set `author` to your author name, this should be the same name that you used when creating the GitHub repo.
|
- First you're going to set `author` to your author name, this should be the same name that you used when creating the GitHub repo.
|
||||||
- Next, set `name` to the name you want to appear in the mod manager and website.
|
- Next, set `name` to the name you want to appear in the mod manager and website.
|
||||||
- Now set `uniqueName` to the name of your GitHub Repo.
|
- Now set `uniqueName` to the name of your GitHub Repo.
|
||||||
- You can leave `version`, `owmlVersion`, and `dependencies` alone
|
- You can leave `version`, `owmlVersion`, and `dependencies` alone
|
||||||
- NewHorizonsConfig.dll: This is the heart of your addon, make sure to never move or rename it.
|
- NewHorizonsConfig.dll: This is the heart of your addon, make sure to never move or rename it.
|
||||||
|
|
||||||
### Testing The Addon
|
### Testing The Addon
|
||||||
|
|
||||||
|
|||||||
@ -51,18 +51,18 @@ rectangular-to-polar coordinate transformation, useful for fixing abnormalities
|
|||||||
|
|
||||||
These mods are useful when developing your addon
|
These mods are useful when developing your addon
|
||||||
|
|
||||||
- [Unity Explorer](https://outerwildsmods.com/mods/unityexplorer) - Used to find the paths of game objects for copying and can be used to manually position props, ship log entries, and more.
|
- [Unity Explorer](https://outerwildsmods.com/mods/unityexplorer) - Used to find the paths of game objects for copying and can be used to manually position props, ship log entries, and more.
|
||||||
- [Collider Visualizer](https://outerwildsmods.com/mods/collidervisualizer) - Useful when creating dialogue triggers or reveal volumes.
|
- [Collider Visualizer](https://outerwildsmods.com/mods/collidervisualizer) - Useful when creating dialogue triggers or reveal volumes.
|
||||||
- [Save Editor](https://outerwildsmods.com/mods/saveeditor) - Useful when creating a custom [ship log](/ship-log), can be used to reveal all custom facts so you can see them in the ship's computer.
|
- [Save Editor](https://outerwildsmods.com/mods/saveeditor) - Useful when creating a custom [ship log](/ship-log), can be used to reveal all custom facts so you can see them in the ship's computer.
|
||||||
- [Time Saver](https://outerwildsmods.com/mods/timesaver/) - Lets you skip some repeated cutscenes and get into the game faster.
|
- [Time Saver](https://outerwildsmods.com/mods/timesaver/) - Lets you skip some repeated cutscenes and get into the game faster.
|
||||||
- [The Examples Mod](https://github.com/Outer-Wilds-New-Horizons/nh-examples) - A mod that contains examples of how to use New Horizons features.
|
- [The Examples Mod](https://github.com/Outer-Wilds-New-Horizons/nh-examples) - A mod that contains examples of how to use New Horizons features.
|
||||||
|
|
||||||
## Helpful Tools
|
## Helpful Tools
|
||||||
|
|
||||||
These tools/references are highly recommended
|
These tools/references are highly recommended
|
||||||
|
|
||||||
- [VSCode](https://code.visualstudio.com/)
|
- [VSCode](https://code.visualstudio.com/)
|
||||||
- [VSCode XML Addon](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml)
|
- [VSCode XML Addon](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-xml)
|
||||||
- [XML Basics Tutorial](https://www.w3schools.com/xml/xml_whatis.asp)
|
- [XML Basics Tutorial](https://www.w3schools.com/xml/xml_whatis.asp)
|
||||||
- [JSON Basics Tutorial](https://www.tutorialspoint.com/json/index.htm)
|
- [JSON Basics Tutorial](https://www.tutorialspoint.com/json/index.htm)
|
||||||
- [OWML Docs](https://owml.outerwildsmods.com/)
|
- [OWML Docs](https://owml.outerwildsmods.com/)
|
||||||
|
|||||||
@ -5,7 +5,9 @@ const addFrontmatter = (
|
|||||||
content: string,
|
content: string,
|
||||||
frontmatter: Record<string, boolean | string | object>
|
frontmatter: Record<string, boolean | string | object>
|
||||||
) => {
|
) => {
|
||||||
const entries = Object.entries(frontmatter).map(([key, value]) => `${key}: ${value}`);
|
const entries = Object.entries(frontmatter).map(
|
||||||
|
([key, value]) => `${key}: ${JSON.stringify(value)}`
|
||||||
|
);
|
||||||
|
|
||||||
if (entries.length === 0) {
|
if (entries.length === 0) {
|
||||||
return content;
|
return content;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user