Update DunGenExtender

Raphtalia 2024-07-26 10:19:28 +00:00
parent 1d9b659f5c
commit 185b251b3f
1 changed files with 15 additions and 3 deletions

@ -8,12 +8,16 @@ If the generation fails to fully create any of the main paths for any reason, it
`MainRoomTilePrefab` cannot be null. If set to null, the dungeon generation failsafes to the default vanilla generation behaviour. `MainRoomTilePrefab` can be located practically anywhere on the main path, but it must spawn at least once. It is highly advised that `MainRoomTilePrefab` has multiple doorways at different directions/elevations/distances etc.
`MainRoomTilePrefab` must be present in at least one tileset in `DungeonFlow's` node list as a normal node. All nodes after the first normal node with `MainRoomTilePrefab` will be duplicated for the main paths generation. Injection tiles will not duplicated.
`MainRoomTilePrefab` can be used in conjunction with the `MainRoomDoorwayGroups` component for more control in which doorways that the alternate main paths choose. See here for details.
Adding an additional main path is effectively adding an entire side dungeon to your interior. This is due to the fact that it not only adds a set amount of main tiles, but also branching paths with their tiles. It is highly recommended to decrease the length of the dungeon as you increase `MainPathCount`.
> **NOTE:** Adding an additional main path is effectively adding an entire side dungeon to your interior. This is due to the fact that it not only adds a set amount of main tiles, but also branching paths with their tiles. It is highly recommended to decrease the length of the dungeon as you increase `MainPathCount`.
### Dungeon Bounds
Enable this feature by toggling `UseDungeonBounds`. This adds a bounds to your interior where the dungeon generation cannot place tiles outside of. This can help preventing the dungeon from creating paths all the way to Narnia. However this also increases the chance of the dungeon generation failing, and therefore increasing dungeon generation times. This can even make dungeon generation impossible if the bounds is too small or mispositioned.
Enable this feature by toggling `UseDungeonBounds`. This adds a bounds to your interior where the dungeon generation cannot place tiles outside of. This can help preventing the dungeon from creating paths all the way to Narnia.
> **NOTE:** This feature also increases the chance of the dungeon generation failing, and therefore increasing dungeon generation times. This can even make dungeon generation impossible if the bounds is too small or mispositioned.
`DungeonSizeBase` is the base size of the bounds. This influences how `DungeonSizeFactor` work. Otherwise it's self-explanatory.
@ -37,6 +41,8 @@ Enable this feature by toggling `AddArchetypesToNormalNodes`. This allows normal
Each element of the `NormalNodeArchetypes` list represents which node receives an archetype. The `Label` describes which normal node of the same `Label` will receive one of the archetypes in the `Archetypes` list. If the `Label` is empty or white-spaced, then it becomes the default target for any normal node who did not have a corresponding `Label` in the `NormalNodeArchetypes` list. If a normal node does not have any corresponding target, then it's spawned tile will not create branching paths like normal.
> **NOTE:** Start and End nodes cannot receive archetypes.
### Doorway Sisters
Enable this feature by toggling `UseDoorwaySisters`. This feature requires the usage of the `DoorwaySisters` component to do anything. This prevents an intersecting doorway from generating into an actual doorway IF it's sister doorway has already generated AND both of these doorways lead to the intersecting, neighbor tile.
@ -44,6 +50,8 @@ When the dungeon is generating, two tiles may generate right next to each other
This features adds the slightest bit of slowdown to the dungeon generation times, whether or not the `DoorwaySisters` component is used. As such, if you don't plan to use this feature, it is advised to disable this feature.
> **NOTE**: This feature is probably not necessary for your interior. My interior was designed to pack my tiles very closely and for their doorways to have a high chance of intersecting. As such, my interior developed the issue of having too many unnecessary doorways and required this feature to fix it. Most interiors won't have this same issue.
### Line Randomizer
Enable this feature by toggling `UseLineRandomizer`. This helps dungeons with the combination of a large amount of tiles and/or large amount of doorways for each tile to generate a bit faster while maintaining some of the dungeon generation randomness.
@ -53,5 +61,9 @@ This feature modifies the list of archetypes in `LineRandomizerArchetypes` to re
`LineRandomizerArchetypes` is the archetypes whose list of tilesets will be modified. Ideally these archetypes will be used in the lines section of `DungeonFlow`. The last `LineRandomizerTakeCount` amount of elements of both the archetype's `TileSets` and `BranchCapTileSets` list will be exchanged by a random set of tilesets from `LineRandomizerTileSets`. As such, the length of those lists must be equal or greater than the value of `LineRandomizerTakeCount`. This goes without saying but be prepared the archetypes' elements to be swapped around all willynilly-ing.
> **NOTE**: This feature is probably not necessary for your interior. My interior was reaching up to 2000 potential doorway pairs for each tile injection and needed a way to reduce it. And even with this fix, the doorway pairs bubble sort rewrite was probably the bigger performance boost anyway. Still, I needed a way to future-proof my dungeon generation times and such this feature still exists.
### Max Shadows Request
Enable this feature by toggling `UseMaxShadowsRequestUpdate`. This prevents the `Max shadow requests count reached` warning spam that can appear if the interior has too many lights in close proximity. `MaxShadowsRequestAmount` will become the new amount of shadow requests. By default, Lethal Company uses 4 shadow requests. I find from my experience that 8 shadow requests is more than enough to stop the warning spam.
Enable this feature by toggling `UseMaxShadowsRequestUpdate`. This prevents the `Max shadow requests count reached` warning spam that can appear if the interior has too many lights in close proximity. `MaxShadowsRequestAmount` will become the new amount of shadow requests.
> **NOTE**: By default, Lethal Company uses 4 shadow requests. I find from my experience that 8 shadow requests is more than enough to stop the warning spam.