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

feat(port): streams #5987

Merged
merged 26 commits into from
Feb 11, 2025
Merged

feat(port): streams #5987

merged 26 commits into from
Feb 11, 2025

Conversation

LyleSY
Copy link
Contributor

@LyleSY LyleSY commented Jan 26, 2025

Purpose of change (The Why)

More interesting wilderness maps, enabling more interesting monster spawns. Required for DinoMod monster spawn port.

Describe the solution (The How)

A stream. Associated monstergroup is entirely rebuilt due to code and content differences.
Ported from:
CleverRaven/Cataclysm-DDA#71008
...which ports mod content originally created here:
CleverRaven/Cataclysm-DDA#67065

Removes content and features that are not present or supported in BN
Some content tweaks to better match BN standards based on feedback

Describe alternatives you've considered

N/A

Testing

Game loads no errors. Streams spawn as expected and look right
Screenshot 2025-02-04 at 9 11 41 PM

Additional context

Part of a larger effort to rebalance DinoMod spawns. Also handy for any future innawood work
Credit to @SandwichPie and @Light-Wave for the original JSON work

Checklist

Mandatory

Optional

  • This PR ports commits from DDA or other cataclysm forks.
    • I have attributed original authors in the commit messages adding Co-Authored-By in the commit message.
    • I have linked the URL of original PR(s) in the description.

@github-actions github-actions bot added the JSON related to game datas in JSON format. label Jan 26, 2025
Copy link
Member

@scarf005 scarf005 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"t_region_tree_forest"
([slow] ~starting_items)=> Terminated: ::error file=data/json/overmap/overmap_terrain/overmap_terrain_stream.json,line=10,col=39::invalid overmap terrain flag: "REQUIRES_PREDECESSOR"
([slow] ~starting_items)=> 
([slow] ~starting_items)=>     "color": "light_blue",
([slow] ~starting_items)=>     "vision_levels": "blends_till_details",
([slow] ~starting_items)=>     "flags": [ "REQUIRES_PREDECESSOR" ]
([slow] ~starting_items)=>                                       ^
([slow] ~starting_items)=> 
([slow] ~starting_items)=>   }
([slow] ~starting_items)=> ]
([slow] ~starting_items)=> 
([slow] ~starting_items)=> Make sure that you're in the correct working directory and your data isn't corrupted.
test exited with code 1

REQUIRES_PREDECESSOR seems to be an DDA-only flag and thus is failing the tests

@OrenAudeles
Copy link
Collaborator

It looks like you're lifting the linked PR contents wholesale with minimal modification. You need to add the original PR authors as co-authors, and fill out some of the Optional (now required) parts of the checklist

- [ ] This PR ports commits from DDA or other cataclysm forks.
  - [ ] I have attributed original authors in the commit messages adding [`Co-Authored-By`](https://docs.github.com/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors) in the commit message.
  - [ ] I have linked the URL of original PR(s) in the description.

I'd also like a better description than Ports mapgen content under Purpose of Change since it's meant to answer the question Why should we merge this PR?

@Light-Wave
Copy link
Contributor

Credit to @SandwichPie for most of the original JSON work

@scarf005
Copy link
Member

Credit to @SandwichPie for most of the original JSON work

please read:

  - [ ] I have attributed original authors in the commit messages adding [`Co-Authored-By`](https://docs.github.com/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/creating-a-commit-with-multiple-authors) in the commit message.

@LyleSY
Copy link
Contributor Author

LyleSY commented Jan 29, 2025

It looks like we aren't throwing errors anymore, which is exciting to see. I don't have an email for @SandwichPie or a way to get in contact with them. Is it adequate to link the original PR and author?

@scarf005
Copy link
Member

scarf005 commented Jan 30, 2025

I don't have an email for @SandwichPie or a way to get in contact with them. Is it adequate to link the original PR and author?

their email is sandwichpie007@gmail.com (from https://github.com/SandwichPie/SandwichPie.github.io/commit/909889a7b9638b7fa52d1a7c958c7ab0f647205a.patch). see https://wizardsourcer.com/simple-way-to-find-github-user-emails/ for details.

Ports stream JSON from DDA originally created for the Innawoods mod
Co-authored-by: SandwichPie <sandwichpie007@gmail.com>
@LyleSY LyleSY marked this pull request as ready for review February 5, 2025 02:12
Copy link
Member

@chaosvolt chaosvolt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Compiled and load-tested.
  2. Revealed map, could encounter streams.
  3. Went to a stream and uh...

image

Honestly it looks goofy as hell and this doesn't even show how it winds all over the map screen across open fields, like:
image

Bare minimum, you need to sanity-check the item spawns on it, this is with default item spawn rate. If you can also sanity-check how long streams are that'd be ideal too because this one stream winds south from negative 143 all the way to -47 and then BACK UP as far as -101.

Both also ended just running into a road, and evidently rely on being a non-unique mandatory overmap special? I do like this implementation in the slightest to be honest, it reeks of hackery.

data/json/mapgen_palettes/stream.json Outdated Show resolved Hide resolved
data/json/overmap/overmap_mutable/stream.json Outdated Show resolved Hide resolved
LyleSY and others added 3 commits February 10, 2025 15:09
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Copy link
Member

@chaosvolt chaosvolt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless I can figure out what property controls the max size of streams or some way to fix it liking to ram into roads, can't think of any other improvements to this.

@LyleSY
Copy link
Contributor Author

LyleSY commented Feb 11, 2025

Based on my incredibly bad understanding of mapgen, it should be possible to create a stream bridge in the same way we have river bridges. No one has done this in DDA yet (this came from innawood which has no roads anyway). I don't know that there is a stream length cap either in mapgen.

@chaosvolt
Copy link
Member

I know there's SOME sort of size setting for mutable mapgen but I've yet to really dick around with how it works, so hmm.

@chaosvolt chaosvolt merged commit 4d0b776 into cataclysmbnteam:main Feb 11, 2025
13 checks passed
@LyleSY LyleSY deleted the port_stream branch February 11, 2025 23:23
Goredell pushed a commit to Goredell/Cataclysm-BN that referenced this pull request Feb 12, 2025
* stream mapgen

* nice beaver dam

* Add files via upload

* update palette

* stream monster groups

* Add files via upload

* Add files via upload

* break up monster subgroups

* rem priority stream.json

* rem REQUIRES_PREDECESSOR flag

* rem vision_levels field

* rem missing bushes

* rem t_shrub_hobblebush

* rem fallback_predecessor_mapgen field from stream mapgen

* rem flags and use_pack_size

* rem flags stream_nested

* rem goat

* rem twig

* Add files via upload

* t_region_tree and t_region_shrub fixes

* rem field_stone

* co-author note

Ports stream JSON from DDA originally created for the Innawoods mod
Co-authored-by: SandwichPie <sandwichpie007@gmail.com>

* Update data/json/overmap/overmap_mutable/stream.json

Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>

* Update data/json/overmap/overmap_terrain/overmap_terrain_stream.json

Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>

* Update data/json/mapgen_palettes/stream.json

Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>

---------

Co-authored-by: Chaosvolt <chaosvolt@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
JSON related to game datas in JSON format.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants