Update Quick Main Paths Setup

Raphtalia 2024-08-20 07:47:28 +00:00
parent 90d2c5c92f
commit ea4f8ddaf0
1 changed files with 36 additions and 3 deletions

@ -1,5 +1,26 @@
This guide is to quickly setup multiple main paths for your interior. What these features do exactly is explained [here](https://git.touhou.dev/Raphtalia/DungeonGenerationPlus_LethalCompany_Mod/wiki/DunGenExtender).
## Preview
### Single Path Dungeon Generation
The following is an example if the dungeon generation were to create only one main path. The tile that will act as the `MainRoomTilePrefab` is outlined in yellow. Since there is only one main path, the dungeon generation is no different than the vanilla version.
![](https://i.imgur.com/RZSLjwd.png)
### Multi-Path Dungeon Generation
The following is an example if the dungeon generation were to create two main paths instead. Please pay attention to the following:
- The second main path begins after the `MainRoomTilePrefab`
- The MainRoomTilePrefab` is **NOT** the start tile
- The end tile node is duplicated for the second main path, but not the start tile
- The main tile depth for the second main path does not refresh to 0. It follows after the `MainRoomTilePrefab`
![](https://i.imgur.com/xoTLWEG.png)
> **NOTE:** Adding a main path will quickly increase the amount of tiles in your dungeon. Though the pictures above are only abstract, the tile count still increased from 27 to 42.
## Setting up DunGenExtender
In the `DunGenExtender` asset, set `MainPathCount` to some value above 1.
@ -14,9 +35,15 @@ The `DungenFlow's` node list is replicated onto the alternate main paths. The st
### Copy From Main Path Position
The starting index is the first node whose position is greater than the `MainRoomTilePrefab` generated position on the first main path.
The starting index is the first node whose position is greater than the `MainRoomTilePrefab's` depth on the first main path.
> **NOTE:** The generated position will be some number between 0 and 1. As such, you can expect the start node to always be ignored and the end node to always be duplicated on the alternate main paths. If your node list also has a normal node say at position 0.25, then you can expect that node to be duplicated on the alternate main paths IF the `MainRoomTilePrefab` generated early on the first main path (not guaranteed though).
> **NOTE:** The depth is some number between 0 and 1. As such, you can expect the start node to always be ignored and the end node to always be duplicated on the alternate main paths.
> **WARNING:** This behaviour is perfectly safe to use **IF** the node's positions are no where near the `MainRoomTilePrefab's` depth or you don't use nodes besides the start and end node. This behaviour is not safe to use and can lead to funky and broken dungeon generations **IF** the node's position are near the `MainRoomTilePrefab's` depth. In these situations, I recommend using `Copy From Node List` instead.
![](https://i.imgur.com/sRnNw7I.png)
As you can see from the picture above, the `0.15` node tile is replicated onto the alternate main path as it's the first node whose position is greater than the `MainRoomTilePrefab's` depth of `0.1.` If the main path's length was instead 5, then the first tile after the start tile would have a depth of `0.2`. This would lead to the node tile generating first before the `MainRoomTilePrefab`. As such, the node will not be replicated for the alternate main path. More scary, since the start tile doesn't follow with the `MainRoomTilePrefab`, the dungeon generation may completely break both code-wise and/or visual-wise.
### Copy From Node List
@ -28,7 +55,13 @@ If you select this behaviour, you may want to enable the Archetypes On Normal No
![](https://i.imgur.com/W5hNhDG.png)
> **NOTE:** An example to why you'd want to select `Copy From Node List`. Let's say you want the fake start room to lead to the real entrance room, the entrance room is where the alternate main paths will start from, and each main path will start with a certain room of your choosing. That can be setup by doing the following with the nodes list. Element 0 will be the start node at position 0 with the fake start room. Element 1 will be a normal node also at position 0 with the `MainRoomTilePrefab` entrance room. Element 2 will be a normal node also at position 0 with the certain room of your choosing. With this setup, no matter how big or small your dungeon is, your dungeon and each main path will start as described above.
The following is an example to why you'd want to choose `Copy From Node List`. You can force the interior to generate a sequence of tiles at the start of the main path. You simply list out the sequence in the node list and set their position to all 0. This works perfectly fine for the first main path. However, the nodes after the main tile (which would generate the `MainRoomTilePrefab`) would not replicate onto the alternate main paths. This behaviour occurs with `Copy From Main Path Position`.
![](https://i.imgur.com/BqyISOV.png)
If you choose and setup `Copy From Node List` instead, the algorithm will replicate the nodes after the main tile.
![](https://i.imgur.com/gq6PQm6.png)
### After that's selected