Update Quick Main Paths Setup

Raphtalia 2024-08-20 13:39:12 +00:00
parent 7b8182f804
commit 2275d1bfa5
1 changed files with 15 additions and 9 deletions

@ -4,7 +4,7 @@ This guide is to quickly setup multiple main paths for your interior. What these
### 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.
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. The main path depth is the ratio of the main tile's position in the main path. `0` is the start of the main path, `0.5` is the midpoint, and `1` is the end of the main path. Since there is only one main path, the dungeon generation is no different than the vanilla version.
![](https://i.imgur.com/RZSLjwd.png)
@ -13,7 +13,7 @@ The following is an example if the dungeon generation were to create only one ma
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 `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`
@ -31,7 +31,7 @@ Set the `MainRoomTilePrefab` to the tile that you want the alternate main paths
The `DungenFlow's` node list is replicated onto the alternate main paths. The starting index is based on the `MainPathCopyNodeBehaviour` selected. Any nodes before the starting index will be ignored and not be generated. I suggest you select `Copy From Main Path Position` first, and later decide if `Copy From Node List` is right for your dungeon.
> **NOTE:** Due to how injection tile rules work, they are not duplicated to the alternate main paths.
> **NOTE:** Due to how injection tile rules work, they cannot be duplicated to the alternate main paths. They still function properly for the first main path. If you want to force generation of certain tiles, you can achieve a similar effect with the Copy From Node List behaviour and the Archetypes On Normal Nodes feature below.
### Copy From Main Path Position
@ -39,11 +39,13 @@ The starting index is the first node whose position is greater than the `MainRoo
> **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.
> **:warning: WARNING: :warning:** This behaviour is perfectly safe to use **IF** the node's positions are no where near the `MainRoomTilePrefab's` predicated 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.
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. See the Copy From Node List section below for how you could address this.
### Copy From Node List
@ -57,11 +59,11 @@ If you select this behaviour, you may want to enable the Archetypes On Normal No
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)
| Copy From Main Path Position | Copy From Node List |
|---|---|
| ![](https://i.imgur.com/BqyISOV.png) | ![](https://i.imgur.com/gq6PQm6.png) |
### After that's selected
@ -77,12 +79,16 @@ Activate the Archetypes On Normal Nodes feature by toggling `AddArchetypesToNorm
![](https://i.imgur.com/Qe6ZX8K.png)
## Examples of multiple main pathed interiors
# Examples of multiple main pathed interiors
### Vanilla interior examples
![](https://i.imgur.com/XvygIZx.png)
![](https://i.imgur.com/GKZVqOa.png)
### Custom interior w/ DungeonGenerationPlus examples
![](https://i.imgur.com/nN5Zz5e.png)
![](https://i.imgur.com/ogrUKAI.png)