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

[FEATURE] Add sea and other water reservoirs #125

Open
Timur-SA opened this issue Jan 3, 2025 · 8 comments
Open

[FEATURE] Add sea and other water reservoirs #125

Timur-SA opened this issue Jan 3, 2025 · 8 comments
Labels
feature Feature request

Comments

@Timur-SA
Copy link

Timur-SA commented Jan 3, 2025

I'm not sure if I found a bug or if it's just not implemented yet.

When generating a coastal city, the sea was ignored. In fact, it would be nice to just add 1 layer of water instead of the sea, or label it some other way.

@Timur-SA Timur-SA added the feature Feature request label Jan 3, 2025
@amir16yp
Copy link
Contributor

amir16yp commented Jan 3, 2025

im working on it! pr soon i hope

@louis-e
Copy link
Owner

louis-e commented Jan 3, 2025

Just to add a thought here which keeps bugging me; the floodfill algorithm slows down the entire generation which such huge elements like large seas. So the timeout kills the literal floodfilling in many cases. So either we can detect a large element like a sea and increase the timeout for this specific element or make it even more performance efficient :D
Asynchronous floodfilling could also be a solution but this needs extensive testing since this could break the layering / block priority system.

@amir16yp
Copy link
Contributor

amir16yp commented Jan 3, 2025

Just to add a thought here which keeps bugging me; the floodfill algorithm slows down the entire generation which such huge elements like large seas. So the timeout kills the literal floodfilling in many cases. So either we can detect a large element like a sea and increase the timeout for this specific element or make it even more performance efficient :D Asynchronous floodfilling could also be a solution but this needs extensive testing since this could break the layering / block priority system.

im trying to write an element processor that would check the "international water" and "territorial water" boundaries from the OSM data then use floodfill. i will be benchmarking it using floodfill and other methods

@amir16yp
Copy link
Contributor

amir16yp commented Jan 3, 2025

image

i might have done it. gonna do some more benchmarking with bigger bbox's

@louis-e
Copy link
Owner

louis-e commented Jan 3, 2025

Great, that's amazing! Thanks a lot :)
What program are you using btw to display the Minecraft maps? I should really start using those too, joining the world in Minecraft every time takes too much time now :D

@amir16yp
Copy link
Contributor

amir16yp commented Jan 3, 2025

Great, that's amazing! Thanks a lot :) What program are you using btw to display the Minecraft maps? I should really start using those too, joining the world in Minecraft every time takes too much time now :D

Unmined, the gui version
https://unmined.net/

@amir16yp
Copy link
Contributor

amir16yp commented Jan 3, 2025

image
i made natural.rs handle coastlines, to make it generate oceans in coastal cities. it worked but it seems that floodfill can time out a lot and it leads to the water being incomplete.
https://github.com/amir16yp/arnis/blob/main/src/element_processing/natural.rs
needs more testing though

@louis-e
Copy link
Owner

louis-e commented Jan 4, 2025

Really cool! Take your time, looking forward to it! :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Feature request
Projects
None yet
Development

No branches or pull requests

3 participants