Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is the dermatik nest roof intended not to cover all walls? #74044

Closed
PatrikLundell opened this issue May 24, 2024 · 2 comments · Fixed by #74169
Closed

Is the dermatik nest roof intended not to cover all walls? #74044

PatrikLundell opened this issue May 24, 2024 · 2 comments · Fixed by #74169
Labels
<Suggestion / Discussion> Talk it out before implementing

Comments

@PatrikLundell
Copy link
Contributor

Is your feature request related to a problem? Please describe.

I'm in the process of ensuring mapgen does all the roofs it should without relying on add_roofs magic to patch things up.

I'm not sure whether the dermatik nest is intended to have some walls not covered by the standard roof, or whether it is intended that some walls would be covered by natural dirt. If the latter, why are only some walls "exposed"?

Solution you would like.

I'd cover the whole nest with the roof...

Describe alternatives you have considered.

It may be intended to look like it does, in which case it should get explicit dirt terrain on top of the walls.

Additional context

This is what the nest looks like when standing on the roof with C:DDA hacked to disable the roof adding magic. Without the hack all the walls would be covered by natural dirt (the same as you see in naked patched of the ground).

Screenshot (384)

@PatrikLundell PatrikLundell added the <Suggestion / Discussion> Talk it out before implementing label May 24, 2024
@Venera3
Copy link
Member

Venera3 commented May 24, 2024

I went with a clay/paper mix for the walls for signposting reasons (clay-using wasps don't use paper irl, obviously) so if the roofs could do a mix I'd appreciate that. If they can't then a whole paper roof is good enough, if a bit too flammable...

@PatrikLundell
Copy link
Contributor Author

PatrikLundell commented May 24, 2024

Thanks for the answer.

It's currently not possible to tie what's on one Z level to what's on another in mapgen because it uses tinymap that's restricted to a single Z level. It is rather cumbersome to do it for camp constructions, as you'd need to define chunks to contain the elements of both (or all) Z levels, and there's no support for chunks with the "rows" format you need to use if you want to place things conveniently with a probability (you can use "place_nested", but then you'd have to manually align the coordinates to fit the correct location in the "rows" layout, which would be painful in the long term).
Another possibility would be if we defined a new terrain value with the meaning "add the 'roof' specified for whatever is below, or open air if there's nothing" (and use smallmap rather than tinymap to get 3D access).

However, you've defined the external perimeter of the hive as dirt walls with probabilities for the inside walls only. This means that we can have a dirt "roof" on top of all the fixed elements and paper over all of the interior (with a mental reminder to make the cases where dirt is selected for the walls to also use dirt for the roof if that becomes possible in the future).
In practice, this will mean a 1-3 tile wide dirt boundary and a paper interior for the roof.

Does that sound OK?

Edit:
This is what it looks like:
Screenshot (385)

Two other possibilities would be:

  • to make the roof dirt throughout (so only interior walls would be paper). That would possibly make this a desirable location to clear out, as you'd get a nice dirt platform to use as you please.
    Screenshot (387)

  • to have the conditional parts have dirt roof unconditionally, but the open spaces using paper. That looks like this:
    Screenshot (386)
    (doing these mockups is trivial, as I kept the symbols from the ground level, so I just changed the definition of '#').

Edit 2:
I've recently found out that the "rows" format DOES support chunks tied to characters. This means that it would be possible to define chunks consisting of a floor and a roof, and place these with percentages. Unfortunately, that won't work for mapgen, as mapgen only supports 2D (both the floor and the roof are placed at the same location, so the one placed last wins out).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
<Suggestion / Discussion> Talk it out before implementing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants