Merge branch 'main' into dev

This commit is contained in:
Nick 2022-05-19 05:55:11 -04:00
commit 410b5aefad
17 changed files with 853 additions and 933 deletions

View File

@ -2,7 +2,7 @@ name: Build
on:
push:
branches: [dev, master]
branches: [dev, main]
paths-ignore:
- docs/**
- "**schema**"
@ -21,11 +21,11 @@ jobs:
# Set to Release if we're in master, otherwise keep us in Debug
- name: Set Release
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/main'
run: echo "BUILD_TYPE=Release" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
- name: Set Debug
if: github.ref != 'refs/heads/master'
if: github.ref != 'refs/heads/main'
run: echo "BUILD_TYPE=Debug" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf-8 -Append
- uses: actions/setup-dotnet@v1

View File

@ -2,7 +2,7 @@ name: Build Docs
on:
push:
branches: [ master ]
branches: [ main ]
paths:
- docs/**
- NewHorizons/*schema*.json
@ -40,7 +40,7 @@ jobs:
- run: cp -r docs/** .
- if: github.ref == 'refs/heads/master'
- if: github.ref == 'refs/heads/main'
run: |
echo "URL_PREFIX=/" >> $GITHUB_ENV
@ -79,7 +79,7 @@ jobs:
path: out/
- name: Deploy To Pages
if: success() && github.ref == 'refs/heads/master'
if: success() && github.ref == 'refs/heads/main'
uses: JamesIves/github-pages-deploy-action@4.1.5
with:
branch: gh-pages

View File

@ -1,6 +1,6 @@
{
"name" : "Ship",
"$schema": "https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/master/NewHorizons/schema.json",
"$schema": "https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/master/NewHorizons/body_schema.json",
"Props" :
{
"dialogue": [

View File

@ -497,7 +497,7 @@
},
"curve": {
"$ref": "#/$defs/curve",
"description": "Allows the rings to grow/shrink with time."
"description": "Allows the rings to grow/shrink with time. Time is in minutes. Value is a scale multiplier."
}
}
},
@ -621,7 +621,7 @@
},
"curve": {
"$ref": "#/$defs/curve",
"description": "Allows the star to shrink/grow over time."
"description": "Allows the star to shrink/grow over time. Time is in minutes. Value is a scale multiplier."
},
"goSupernova": {
"type": "boolean",
@ -1215,7 +1215,8 @@
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
"$ref": "#/$defs/curve",
"description": "Allows the water volume to shrink/grow over time. Time is in minutes. Value is a scale multiplier."
}
}
},
@ -1231,7 +1232,8 @@
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
"$ref": "#/$defs/curve",
"description": "Allows the lava volume to shrink/grow over time. Time is in minutes. Value is a scale multiplier."
}
}
},
@ -1247,7 +1249,8 @@
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
"$ref": "#/$defs/curve",
"description": "Allows the sand volume to shrink/grow over time. Time is in minutes. Value is a scale multiplier."
}
}
},
@ -1273,7 +1276,8 @@
"$ref": "#/$defs/color"
},
"curve": {
"$ref": "#/$defs/curve"
"$ref": "#/$defs/curve",
"description": "Allows the funnel width to shrink/grow over time. Time is in minutes. Value is a scale multiplier."
}
}
},

View File

@ -18,7 +18,6 @@ Check the ship's log for how to use your warp drive to travel between star syste
<!-- TOC -->
- [Incompatible mods](#incompatible-mods)
- [Roadmap](#roadmap)
- [Development](#development)
- [Contact](#contact)
- [Credits](#credits)
@ -36,7 +35,7 @@ Check the ship's log for how to use your warp drive to travel between star syste
- 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, comets, asteroid belts, satellites, and quantum planets/moons.
- Create stars (and supernovae), comets, asteroid belts, satellites, and quantum planets/moons.
- Add stock planet features to custom ones, such as geysers, cloak fields, meteor-launching volcanoes, rafts, and tornados.
- Binary orbits
- Signalscope signals and custom frequencies
@ -45,9 +44,6 @@ Check the ship's log for how to use your warp drive to travel between star syste
- 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)
## Roadmap
- Let custom stars go supernova
## 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.
@ -68,6 +64,8 @@ New Horizons was made with help from:
- [Raicuparta](https://github.com/Raicuparta)
- [MegaPiggy](https://github.com/MegaPiggy)
- [Trifid](https://github.com/TerrificTrifid)
- [JohnCorby](https://github.com/JohnCorby)
- And the Outer Wilds modding server.
Translation credits:
- Russian: GrayFix and Tlya

110
docs/Pipfile.lock generated
View File

@ -74,11 +74,11 @@
},
"elementpath": {
"hashes": [
"sha256:1f41f1160aaae66bc25a8cb9451e5b31ca4553b6dccd9b57045205b005e5406e",
"sha256:c556a9b9dde47fdf05bb3ad525dfb43fc6becb95532a053f6a73024e586ead37"
"sha256:07f2a34bac7a2a909d745da1cb3c7b8cd43ca1d7d1134546db41ffb997bcb11c",
"sha256:25368810a76a5d9e464c0e721a12645409fc8c113ffde9e01d88557b4a7663d3"
],
"markers": "python_version >= '3.7'",
"version": "==2.5.1"
"version": "==2.5.2"
},
"htmlmin": {
"hashes": [
@ -111,11 +111,11 @@
},
"json-schema-for-humans": {
"hashes": [
"sha256:88202f7422311d889f8b845b96dabc2c27766a4eed6253137e6d25006c9faa10",
"sha256:b7dc11eb6982224249b9f6ba5c9c0f47893e202f5c24c2e26b920eb956f18133"
"sha256:a96f7bb1175bf979ac6360a0dbea81a82443abdb376696dc33f5a6fb8705f25e",
"sha256:e05f0d52d6ac211eceecd5201bcefb91538c9b75ecb56a1950b47090ac3ab8b6"
],
"markers": "python_version >= '3.7' and python_version < '4.0'",
"version": "==0.40.3"
"markers": "python_version >= '3.7' and python_version < '4'",
"version": "==0.40.5"
},
"jsonschema": {
"hashes": [
@ -138,7 +138,7 @@
"sha256:412520c7b6bba540c2c2067d6be3a523ab885703bf6a81d93963f848b55dfb9a",
"sha256:f344d4adfba5d1de821f7850b36e3507f583468a7eb47e6fa191765ed0b9c66b"
],
"markers": "python_version >= '3.5' and python_version < '4.0'",
"markers": "python_version >= '3.5' and python_version < '4'",
"version": "==2.4.3"
},
"markupsafe": {
@ -204,11 +204,11 @@
},
"menagerie-docs": {
"hashes": [
"sha256:6e02af2e4750e66fbeb8eef51d6a26454f735fe98f4d9b941fc371ee827d67b6",
"sha256:9410e416cc9e88a29e4e43e850901afdd4567a9552e40b1b6e48926742cd9379"
"sha256:6edf3371d1b4c0ac42dc1bde72b46dbfef7d96b1065d1d605fcd07af1d6c8e9a",
"sha256:fc8da001ff050859d74c6b5cdcdf887c5aa47e2b263271ab20554010fd72337d"
],
"index": "pypi",
"version": "==0.1.3"
"version": "==0.1.5"
},
"mypy-extensions": {
"hashes": [
@ -222,7 +222,7 @@
"sha256:5053fc5ca7b8a281081274702ebf1584e341f40a68e6ab8f6b4b79f4b3fdf18e",
"sha256:8e8226f15c0b25565aa391797963b78c95930e12efc40e905153130783e766be"
],
"markers": "python_version >= '3.8' and python_version < '4.0'",
"markers": "python_version >= '3.8' and python_version < '4'",
"version": "==0.1.0"
},
"packaging": {
@ -235,47 +235,47 @@
},
"pillow": {
"hashes": [
"sha256:01ce45deec9df310cbbee11104bae1a2a43308dd9c317f99235b6d3080ddd66e",
"sha256:0c51cb9edac8a5abd069fd0758ac0a8bfe52c261ee0e330f363548aca6893595",
"sha256:17869489de2fce6c36690a0c721bd3db176194af5f39249c1ac56d0bb0fcc512",
"sha256:21dee8466b42912335151d24c1665fcf44dc2ee47e021d233a40c3ca5adae59c",
"sha256:25023a6209a4d7c42154073144608c9a71d3512b648a2f5d4465182cb93d3477",
"sha256:255c9d69754a4c90b0ee484967fc8818c7ff8311c6dddcc43a4340e10cd1636a",
"sha256:35be4a9f65441d9982240e6966c1eaa1c654c4e5e931eaf580130409e31804d4",
"sha256:3f42364485bfdab19c1373b5cd62f7c5ab7cc052e19644862ec8f15bb8af289e",
"sha256:3fddcdb619ba04491e8f771636583a7cc5a5051cd193ff1aa1ee8616d2a692c5",
"sha256:463acf531f5d0925ca55904fa668bb3461c3ef6bc779e1d6d8a488092bdee378",
"sha256:4fe29a070de394e449fd88ebe1624d1e2d7ddeed4c12e0b31624561b58948d9a",
"sha256:55dd1cf09a1fd7c7b78425967aacae9b0d70125f7d3ab973fadc7b5abc3de652",
"sha256:5a3ecc026ea0e14d0ad7cd990ea7f48bfcb3eb4271034657dc9d06933c6629a7",
"sha256:5cfca31ab4c13552a0f354c87fbd7f162a4fafd25e6b521bba93a57fe6a3700a",
"sha256:66822d01e82506a19407d1afc104c3fcea3b81d5eb11485e593ad6b8492f995a",
"sha256:69e5ddc609230d4408277af135c5b5c8fe7a54b2bdb8ad7c5100b86b3aab04c6",
"sha256:6b6d4050b208c8ff886fd3db6690bf04f9a48749d78b41b7a5bf24c236ab0165",
"sha256:7a053bd4d65a3294b153bdd7724dce864a1d548416a5ef61f6d03bf149205160",
"sha256:82283af99c1c3a5ba1da44c67296d5aad19f11c535b551a5ae55328a317ce331",
"sha256:8782189c796eff29dbb37dd87afa4ad4d40fc90b2742704f94812851b725964b",
"sha256:8d79c6f468215d1a8415aa53d9868a6b40c4682165b8cb62a221b1baa47db458",
"sha256:97bda660702a856c2c9e12ec26fc6d187631ddfd896ff685814ab21ef0597033",
"sha256:a325ac71914c5c043fa50441b36606e64a10cd262de12f7a179620f579752ff8",
"sha256:a336a4f74baf67e26f3acc4d61c913e378e931817cd1e2ef4dfb79d3e051b481",
"sha256:a598d8830f6ef5501002ae85c7dbfcd9c27cc4efc02a1989369303ba85573e58",
"sha256:a5eaf3b42df2bcda61c53a742ee2c6e63f777d0e085bbc6b2ab7ed57deb13db7",
"sha256:aea7ce61328e15943d7b9eaca87e81f7c62ff90f669116f857262e9da4057ba3",
"sha256:af79d3fde1fc2e33561166d62e3b63f0cc3e47b5a3a2e5fea40d4917754734ea",
"sha256:c24f718f9dd73bb2b31a6201e6db5ea4a61fdd1d1c200f43ee585fc6dcd21b34",
"sha256:c5b0ff59785d93b3437c3703e3c64c178aabada51dea2a7f2c5eccf1bcf565a3",
"sha256:c7110ec1701b0bf8df569a7592a196c9d07c764a0a74f65471ea56816f10e2c8",
"sha256:c870193cce4b76713a2b29be5d8327c8ccbe0d4a49bc22968aa1e680930f5581",
"sha256:c9efef876c21788366ea1f50ecb39d5d6f65febe25ad1d4c0b8dff98843ac244",
"sha256:de344bcf6e2463bb25179d74d6e7989e375f906bcec8cb86edb8b12acbc7dfef",
"sha256:eb1b89b11256b5b6cad5e7593f9061ac4624f7651f7a8eb4dfa37caa1dfaa4d0",
"sha256:ed742214068efa95e9844c2d9129e209ed63f61baa4d54dbf4cf8b5e2d30ccf2",
"sha256:f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97",
"sha256:fb89397013cf302f282f0fc998bb7abf11d49dcff72c8ecb320f76ea6e2c5717"
"sha256:088df396b047477dd1bbc7de6e22f58400dae2f21310d9e2ec2933b2ef7dfa4f",
"sha256:09e67ef6e430f90caa093528bd758b0616f8165e57ed8d8ce014ae32df6a831d",
"sha256:0b4d5ad2cd3a1f0d1df882d926b37dbb2ab6c823ae21d041b46910c8f8cd844b",
"sha256:0b525a356680022b0af53385944026d3486fc8c013638cf9900eb87c866afb4c",
"sha256:1d4331aeb12f6b3791911a6da82de72257a99ad99726ed6b63f481c0184b6fb9",
"sha256:20d514c989fa28e73a5adbddd7a171afa5824710d0ab06d4e1234195d2a2e546",
"sha256:2b291cab8a888658d72b575a03e340509b6b050b62db1f5539dd5cd18fd50578",
"sha256:3f6c1716c473ebd1649663bf3b42702d0d53e27af8b64642be0dd3598c761fb1",
"sha256:42dfefbef90eb67c10c45a73a9bc1599d4dac920f7dfcbf4ec6b80cb620757fe",
"sha256:488f3383cf5159907d48d32957ac6f9ea85ccdcc296c14eca1a4e396ecc32098",
"sha256:4d45dbe4b21a9679c3e8b3f7f4f42a45a7d3ddff8a4a16109dff0e1da30a35b2",
"sha256:53c27bd452e0f1bc4bfed07ceb235663a1df7c74df08e37fd6b03eb89454946a",
"sha256:55e74faf8359ddda43fee01bffbc5bd99d96ea508d8a08c527099e84eb708f45",
"sha256:59789a7d06c742e9d13b883d5e3569188c16acb02eeed2510fd3bfdbc1bd1530",
"sha256:5b650dbbc0969a4e226d98a0b440c2f07a850896aed9266b6fedc0f7e7834108",
"sha256:66daa16952d5bf0c9d5389c5e9df562922a59bd16d77e2a276e575d32e38afd1",
"sha256:6e760cf01259a1c0a50f3c845f9cad1af30577fd8b670339b1659c6d0e7a41dd",
"sha256:7502539939b53d7565f3d11d87c78e7ec900d3c72945d4ee0e2f250d598309a0",
"sha256:769a7f131a2f43752455cc72f9f7a093c3ff3856bf976c5fb53a59d0ccc704f6",
"sha256:7c150dbbb4a94ea4825d1e5f2c5501af7141ea95825fadd7829f9b11c97aaf6c",
"sha256:8844217cdf66eabe39567118f229e275f0727e9195635a15e0e4b9227458daaf",
"sha256:8a66fe50386162df2da701b3722781cbe90ce043e7d53c1fd6bd801bca6b48d4",
"sha256:9370d6744d379f2de5d7fa95cdbd3a4d92f0b0ef29609b4b1687f16bc197063d",
"sha256:937a54e5694684f74dcbf6e24cc453bfc5b33940216ddd8f4cd8f0f79167f765",
"sha256:9c857532c719fb30fafabd2371ce9b7031812ff3889d75273827633bca0c4602",
"sha256:a4165205a13b16a29e1ac57efeee6be2dfd5b5408122d59ef2145bc3239fa340",
"sha256:b3fe2ff1e1715d4475d7e2c3e8dabd7c025f4410f79513b4ff2de3d51ce0fa9c",
"sha256:b6617221ff08fbd3b7a811950b5c3f9367f6e941b86259843eab77c8e3d2b56b",
"sha256:b761727ed7d593e49671d1827044b942dd2f4caae6e51bab144d4accf8244a84",
"sha256:baf3be0b9446a4083cc0c5bb9f9c964034be5374b5bc09757be89f5d2fa247b8",
"sha256:c17770a62a71718a74b7548098a74cd6880be16bcfff5f937f900ead90ca8e92",
"sha256:c67db410508b9de9c4694c57ed754b65a460e4812126e87f5052ecf23a011a54",
"sha256:d78ca526a559fb84faaaf84da2dd4addef5edb109db8b81677c0bb1aad342601",
"sha256:e9ed59d1b6ee837f4515b9584f3d26cf0388b742a11ecdae0d9237a94505d03a",
"sha256:f054b020c4d7e9786ae0404278ea318768eb123403b18453e28e47cdb7a0a4bf",
"sha256:f372d0f08eff1475ef426344efe42493f71f377ec52237bf153c5713de987251",
"sha256:f3f6a6034140e9e17e9abc175fc7a266a6e63652028e157750bd98e804a8ed9a",
"sha256:ffde4c6fabb52891d81606411cbfaf77756e3b561b566efd270b3ed3791fde4e"
],
"markers": "python_version >= '3.7'",
"version": "==9.1.0"
"version": "==9.1.1"
},
"pygments": {
"hashes": [
@ -453,16 +453,16 @@
"sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
"sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
],
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4.0'",
"markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
"version": "==1.26.9"
},
"xmlschema": {
"hashes": [
"sha256:be1eedce6a4b911fd3a7f4060d0811951820a13410e61f0454b30e9f4e7cf197",
"sha256:dbd68bded2fef00c19cf37110ca0565eca34cf0b6c9e1d3b62ad0de8cbb582ca"
"sha256:319f5e3e77beb6ab3b4166f699d9dafd59141487bd1a07675fd01af6483211a4",
"sha256:8ed246d97e7ab0393cf435ca98c8da6a0d2ab2f4e81949e149d8b2c97ec89357"
],
"markers": "python_version >= '3.7'",
"version": "==1.10.0"
"version": "==1.11.0"
}
}
}

View File

@ -1,6 +1,6 @@
{
"$schema": "https://raw.githubusercontent.com/Bwc9876/menagerie/master/menagerie/schemas/config_schema.json",
"cache_enabled": false,
"cache_enabled": true,
"base_url": "https://nh.outerwildsmods.com/",
"themes": {
"bootstrap": "https://bootswatch.com/5/darkly/bootstrap.min.css",
@ -41,6 +41,7 @@
}
],
"meta": {
"search_console_code": "SafYg2zgXPfpW4MZbkBTpAtuNs5W7N-upr08Kv6tyMo",
"description": "Documentation on how to use the New Horizons planet creation tool for Outer Wilds.",
"keywords": [
"New Horizons",

View File

@ -7,19 +7,18 @@ Sort_Priority: 100
![New Horizons Logo]({{ 'images/home/home_logo.webp'|static }})
# Outer Wilds New Horizons
___
This is the official documentation for [New Horizons](https://github.com/xen-42/outer-wilds-new-horizons){ target="_blank" }
## Getting Started
___
Before starting, go into your in-game mod settings for New Horizons and switch Debug mode on. This allows you to:
- Print the position of what you are looking at to the logs by pressing "P". This is useful for determining locations to place details.
- Use the "Reload Configs" button in the pause menu. This will restart the current solar system and update all the planets. Much faster than quitting and relaunching the game.
Please get [VSCode](https://code.visualstudio.com/){ target="_blank" } or some other advanced text editor, as it will help highlight common errors.
!!! alert-danger "Get VSCode"
Please get [VSCode](https://code.visualstudio.com/){ target="_blank" } or some other advanced text editor, as it will help highlight common errors.
Planets are created using a JSON file format structure, and placed in a folder called planets (or in any subdirectory of it) in the location where New Horizons is installed (by default this folder doesn't exist, you have to create it within the xen.NewHorizons directory). You can learn how the configs work by picking apart the [Real Solar System](https://github.com/xen-42/outer-wilds-real-solar-system){ target="_blank" } mod or the [New Horizons Examples](https://github.com/xen-42/ow-new-horizons-examples){ target="_blank" } mod.
@ -38,7 +37,7 @@ look something like this:
```json
{
"name": "Wetrock",
"$schema": "https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/master/NewHorizons/schema.json",
"$schema": "https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/main/NewHorizons/Schemas/body_schema.json",
"starSystem": "SolarSystem",
"Base": {
"groundSize": 100,
@ -118,12 +117,10 @@ To see all the different things you can put into a config file check out the [Ce
Check out the rest of the site for how to format [star system]({{ 'Star System Schema'|route}}), [dialogue]({{ 'Dialogue Schema'|route}}), [ship log]({{ 'Shiplog Schema'|route}}), and [translation]({{ 'Translation Schema'|route}}) files!
## Publishing Your Mod
___
Once your mod is complete, you can use the [planet creation template](https://github.com/xen-42/ow-new-horizons-config-template#readme){ target="_blank" } GitHub template.
## Helpful Resources
___
The texturemap/heightmap feature was inspired by the Kerbal Space Program mod Kopernicus. A lot of the same techniques that apply to
planet creation there apply to New Horizons. If you need help with planetary texturing, check out [The KSP texturing guide](https://forum.kerbalspaceprogram.com/index.php?/topic/165285-planetary-texturing-guide-repository/){ target="_blank" }.
@ -132,7 +129,6 @@ planet creation there apply to New Horizons. If you need help with planetary tex
rectangular-to-polar coordinate transformation, useful for fixing abnormalities at the poles of your planets.
### Helpful Mods
___
These mods are useful when developing your addon
@ -141,7 +137,6 @@ These mods are useful when developing your addon
- [Save Editor](https://outerwildsmods.com/mods/saveeditor){ target="_blank" } - Useful when creating a custom [ship log]({{ "Ship Log"|route }}), can be used to reveal all custom facts so you can see them in the ship's computer
### Helpful Tools
___
These tools/references are highly recommended

View File

@ -0,0 +1,4 @@
{
"$schema": "https://github.com/Bwc9876/menagerie/raw/master/menagerie/schemas/folder_schema.json",
"sort_priority": 15
}

View File

@ -5,7 +5,6 @@ Hide_In_Nav: True
---
# Hello!!
___
Uh idk what to put here thought it would be funny haha

View File

@ -5,15 +5,11 @@ Sort_Priority: 40
## How to use the API
___
First create the following interface in your mod:
```cs
public interface INewHorizons
{
void Create(Dictionary<string, object> config, IModBehaviour mod);
void LoadConfigs(IModBehaviour mod);
GameObject GetPlanet(string name);
@ -42,7 +38,7 @@ public class MyMod : ModBehaviour
}
```
You can then use the APIs `LoadConfigs()` method to load from a "planets" folder, or use the `Create()` and `GetPlanet()` methods to create planets and do whatever with them. Just make sure you create planets in the `Start()` method or at least before the SolarSystem scene loads, or they will not be created.
You can then use the APIs `LoadConfigs()` method to load from a "planets" folder, or use the `GetPlanet()` method to get planets and do whatever with them. Just make sure you create planets in the `Start()` method or at least before the SolarSystem scene loads, or they will not be created.
The `GetChangeStarSystemEvent` and `GetStarSystemLoadedEvent` events let you listen in for when the player starts changing to a new system (called when entering a black hole or using the warp drive) and when the system is fully loaded in, respectively.

View File

@ -5,8 +5,6 @@ Sort_Priority: 90
## Details/Scatterer
___
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){ target="_blank" } 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
@ -15,8 +13,6 @@ For physical objects there are currently two ways of setting them up: specify an
## Asset Bundles
___
Here is a template project: [Outer Wilds Unity Template](https://github.com/xen-42/outer-wilds-unity-template){ target="_blank" }
The template project contains ripped versions of all the game scripts, meaning you can put things like DirectionalForceVolumes in your Unity project to have artificial gravity volumes loaded right into the game.
@ -55,14 +51,10 @@ public class CreateAssetBundles
## Importing a planet's surface from Unity
___
Making a planet's entire surface from a Unity prefab is the exact same thing as adding one single big detail at position (0, 0, 0).
## Examples
___
To add a Mars rover to the red planet in [RSS](https://github.com/xen-42/outer-wilds-real-solar-system), its model was put in an asset bundle as explained above, and then the following was put into the `Props` module:
```json

View File

@ -6,55 +6,39 @@ Sort_Priority: 50
# Dialogue
___
This page goes over how to use dialogue in New Horizons.
# Understanding Dialogue
___
## Dialogue Tree
___
A dialogue tree is an entire conversation, it's made up of dialogue nodes.
## Dialogue Node
___
A node is a set of pages shown to the player followed by options the player can choose from to change the flow of the conversation.
## Condition
___
A condition is a yes/no value stored **for this loop and this loop only**. It can be used to show new dialogue options, stop someone from talking to you (looking at you Slate), and more.
## Persistent Condition
___
A persistent condition is similar to a condition, except it *persists* through loops, and is saved on the player's save file.
## Remote Trigger
___
A remote trigger is used to have an NPC talk to you from a distance; ex: Slate stopping you for the umpteenth time to tell you information you already knew.
# Example XML
___
Here's an example dialogue XML:
```xml
<!-- Example Dialogue -->
<!-- All files must have `DialogueTree` as the root element, the xmlns:xsi=... and xsi:noNamespaceSchemaLocation=... is optional but provides improved error checking if your editor supports it -->
<DialogueTree xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/master/NewHorizons/dialogue_schema.xsd">
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/main/NewHorizons/Schemas/dialogue_schema.xsd">
<NameField>EXAMPLE NPC</NameField> <!-- The name of this character -->
<DialogueNode> <!-- A dialogue node is a set of pages displayed to the player optionally followed by options -->
@ -131,8 +115,6 @@ Here's an example dialogue XML:
# Using the XML
___
To use the dialogue XML you have created, you simply need to reference it in the `dialogue` prop
```json
@ -150,14 +132,10 @@ To use the dialogue XML you have created, you simply need to reference it in the
# Dialogue Config
___
To view the options for the dialogue prop, check [the schema]({{ "Celestial Body Schema"|route }}#Props_dialogue)
# Controlling Conditions
___
You can set condition in dialogue with the `<SetCondition>` and `<SetPersistentCondition>` tags
```xml
@ -171,24 +149,16 @@ You can set condition in dialogue with the `<SetCondition>` and `<SetPersistentC
# Dialogue Options
___
There are many control structures for dialogue options to hide/reveal them if conditions are met. Take a look at [the DialogueOption schema]({{ "Dialogue Schema"|route }}#DialogueTree-DialogueNode-DialogueOptionsList-DialogueOption-DialogueTarget) for more info.
# Controlling Flow
___
In addition to `<DialogueOptions>`, there are other ways to control the flow of the conversation.
## DialogueTarget
___
Defining `<DialogueTarget>` in the `<DialogueNode>` tag instead of a `<DialogueOption>` will make the conversation go directly to that target after the character is done talking.
## DialogueTargetShipLogCondition
___
Used in tandum with `DialogueTarget`, makes it so you must have a [ship log fact]({{ "Ship Log"|route }}#explore-facts) to go to the next node.

View File

@ -6,19 +6,14 @@ Sort_Priority: 70
# Intro
___
Welcome! this page outlines how to create a custom ship log.
# Understanding Ship Logs
___
First thing's first, I'll define some terminology regarding ship logs in the game, and how ship logs are structured.
## Entries
___
An entry is a card you see in rumor mode, it represents a specific area or concept in the game, such as Timber Hearth's
village or the southern observatory on Brittle Hollow.
An entry is split up into facts, a fact can either be a rumor fact or an explore fact.
@ -44,8 +39,6 @@ Entries can be children of other entries, meaning they'll be smaller.
## Rumor Facts
___
A rumor fact represents the information you might hear about a specific area or concept, usually, you get these through
dialogue or maybe by observing a faraway planet.
@ -53,29 +46,23 @@ dialogue or maybe by observing a faraway planet.
## Explore Facts
___
Explore facts represent the information you learn about a specific area or concept.
![exploreFactExample]({{ "images/ship_log/explore_example.webp"|static }})
# The XML
___
Now that we know some terminology, let's get into how the XML works.
Every planet in the ship log is represented by a single XML file, you can see this if you use the unity explorer mod and
navigate to ShipLogManager.
## Example File
___
```xml
<!-- Example File -->
<!-- All files must have "AstroObjectEntry" as their root element, the xmlns:xsi=... and xsi:noNamespaceSchemaLocation=... is optional but heavily encouraged to reduce errors -->
<AstroObjectEntry xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/master/NewHorizons/shiplog_schema.xsd">
xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/main/NewHorizons/Schemas/shiplog_schema.xsd">
<ID>EXAMPLE_PLANET</ID> <!-- The ID of the planet this xml file is for -->
<Entry> <!-- An Entry For This Planet -->
@ -149,8 +136,6 @@ ___
## Using The Schema
___
In the example XML, you may notice something like `xsi:noNamespaceSchemaLocation` at the top, this tells whatever editor
you're using that the file at that link is the schema. The game simply ignores this though, so it won't be able to catch
errors at runtime.
@ -159,8 +144,6 @@ the schema file. Doing this varies per-editor, and you may also have to right-cl
## Loading The File
___
You can load your XML file to your planet by doing adding the following to your planet's config
```json
@ -175,8 +158,6 @@ You can load your XML file to your planet by doing adding the following to your
## Entry Layout
___
By default, entries in rumor mode are laid out by rows, where each row is one planet. This will not make for a perfect
layout, so you can use the `entryPositions` property to change them
For example, if I want to change an entry with the ID of `EXAMPLE_ENTRY` and another with the ID of `EXAMPLE_ENTRY_2`:
@ -210,8 +191,6 @@ For example, if I want to change an entry with the ID of `EXAMPLE_ENTRY` and ano
## Images
___
Custom entry images are a bit different from other custom images, instead of pointing to each file for each entry, you
point to a folder:
@ -231,8 +210,6 @@ would be `EXAMPLE_ENTRY_ALT.png`.
## Curiosity Colors
___
Colors for each curiosity is given in a list, so if I wanted the curiosity `EXAMPLE_ENTRY` to have a color of blue:
```json
@ -265,12 +242,8 @@ Colors for each curiosity is given in a list, so if I wanted the curiosity `EXAM
# Map Mode Options
___
## Layout
___
Layout in map mode can be handled in two different ways, either manual or automatic, if you try to mix them you'll get
an error.
Also, adding planets to the vanilla solar system requires you to use manual layout.
@ -437,14 +410,10 @@ As you can see, they have similar properties to planets, with the addition of ro
# Revealing Facts
___
Of course, having a custom ship log is neat and all, but what use is it if the player can't unlock it?
## Initial Reveal
___
You can set facts to reveal as soon as the player enters the system by adding the `initialReveal` property
```json
@ -460,8 +429,6 @@ You can set facts to reveal as soon as the player enters the system by adding th
## Signal Discovery
___
You can set a fact to reveal as soon as a signal is identified by editing the signal's `Reveals` attribute
```json
@ -482,8 +449,6 @@ You can set a fact to reveal as soon as a signal is identified by editing the si
## Dialogue
___
You can set a fact to reveal in dialogue with the `<RevealFacts>` tag
```xml
@ -505,8 +470,6 @@ You can set a fact to reveal in dialogue with the `<RevealFacts>` tag
## Reveal Volumes
___
Reveal volumes are triggers/colliders in the world that can unlock facts from a variety of actions.
Reveal volumes are specified in the `Props` module, its key is `reveal`.
@ -574,8 +537,6 @@ trigger the reveal
# Setting Entry Locations
___
Entry locations are the "Mark On HUD" option you see when in map mode, this allows the player to go back to where they
were in the event of the big funny.
Adding an entry location is similar to adding a Reveal Volume:

View File

@ -4,7 +4,6 @@ Sort_Priority: 60
---
## Translations
___
There are 12 supported languages in Outer Wilds: english, spanish_la, german, french, italian, polish, portuguese_br, japanese, russian, chinese_simple, korean, and turkish.
@ -16,6 +15,7 @@ Here's an example, for `russian.json`:
```json
{
"$schema": "https://raw.githubusercontent.com/xen-42/outer-wilds-new-horizons/main/NewHorizons/Schemas/translation_schema.json",
"DialogueDictionary" :
{
"Fred" : "Фред",

View File

@ -4,7 +4,6 @@ Sort_Priority: 80
---
## Update Existing Planets
___
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: `SUN`, `CAVE_TWIN` (Ember Twin), `TOWER_TWIN` (Ash Twin), `TIMBER_HEARTH`, `BRITTLE_HOLLOW`, `GIANTS_DEEP`, `DARK_BRAMBLE`, `COMET` (Interloper), `WHITE_HOLE`, `WHITE_HOLE_TARGET` (Whitehole station I believe), `QUANTUM_MOON`, `ORBITAL_PROBE_CANNON`, `TIMBER_MOON` (Attlerock), `VOLCANIC_MOON` (Hollow's Lantern), `DREAMWORLD`, `MapSatellite`, `RINGWORLD` (the Stranger).
@ -14,7 +13,7 @@ You can also delete parts of an existing planet. Here's part of an example confi
```json
{
"name": "Ember Twin",
"childrenToDestroy": [
"removeChildren": [
"SandSphere_Rising"
]
}
@ -23,7 +22,6 @@ You can also delete parts of an existing planet. Here's part of an example confi
In `childrenToDestroy` you list the relative paths for the children of the planet's gameObject that you want to delete.
## Destroy Existing Planets
___
You do this (but with the appropriate name) as its own config.
```json