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

Water flowing into hole on sea bottom causes level fluctuations on surface and massive kelp drops #20

Open
Garagoth opened this issue Nov 17, 2024 · 9 comments

Comments

@Garagoth
Copy link

About 8 blocks below sea level there is a hole into cave system, about 3x6 in size.
Water flows in rather slowly as cave topology hinders water flow greatly, which is fine.
What is problematic that on surface above the hole water level fluctuates slightly in an area around (several blocks in each direction), which causes every kelp in area drop its top as item, regrow as water returns to full block, drop again...

I was under impression that sea is rather infinite (as the world is infinite, so amount of water is infinite as well in the sea/ocean - and I would extend that to rivers as well) so surface fluctuations should be minimal and stabilize over time? (it does not stabilize, there are ripples constantly going around on surface). After an hour or so affected surface has about 80 blocks of radius, with 3 visible rings of water level on surface, and kelp from that whole area drops as items and flows to the center.
It is nice in terms of realism or maybe farming kelp, but each hole in help forest has around 300 kelp floating around in circles (yeah, I counted, over 4 stacks of kelp collected with new kelps constantly arriving), gravitating towards center, so a bit harming for performance on larger scale.
Maybe add some support so kelps can thrive in "almost full" blocks as well? Or maybe some way to stabilize the flow so unless something changes ripples on surface eventually stabilize (meaning water levels will stop changing ever so slightly and will keep depleted state constantly)?

It looks like issue with equalizing very small amounts, after sealing hole (or stopping create pump draining water) water surface takes several minutes to smooth out again. If that happens not only on surface that might explain why create pumps sometimes stop pumping water and restart only on adding and removing end segment of pipe.

Also, as amount of water is infinite, maybe consider some infinite sinks at the bottom of the caves to prevent them from completely flooding or to be able to drain them after sealing water inlets.
Maybe water can start to evaporate as it reaches negative Y (due to heat from center of world (or nether)), with water bubbles similar to those over magma block?

Above aside - that is a very nice mod and performance-wise it does not kill a game, that is superb!
(I did tinker a bit with settings - water flow distance 3, flow over edges off, tried changing leveling distance but did not see any change (tried 0, 1, 8, 64). Please add edge flowing from default 4 to something configurable, I would like to set 1 there so sharp slopes are dry).

@Garagoth
Copy link
Author

Similar issue I guess, adding few buckets of lava in nether that flows down causes permanent static wave on lava sea.
However this seems fine as long as it does not need to check for equalization constantly, just slight visual weirdness. Guess that is best that is possible with finite amounts of fluids :-)

What I was thinking, maybe "infinite bodies of fluid" could just absorb those minimal amounts so all could equalize. That said, I have no idea how to decide if something is finite or infinite.

@Garagoth
Copy link
Author

image
This water surface level difference will stay there indefinitely.
Looks weird, especially on an edge of the ocean, at sea level.

@Traben-0
Copy link
Owner

oceans rivers and swamps should reabsorb these extra water levels, are those screenshotted water levels maybe just outside the ocean biome?

I plan to add this to the nether lava ocean soon too

you may want to look at the ocean level refill setting in the commands and turn it up to 1 (100%) to get the fastest possible infinite refilling/absorbing

@Traben-0
Copy link
Owner

I do also plan to allow stray water levels like this to dissipate in non ocean biomes but then i'll need to use random ticks to check for the quantity of fluid it is in and that can get costly quick

@Traben-0
Copy link
Owner

can i get a visual example of the situation that breaks kelp? if you try alterring the waterloggable behaviour setting to never interact it might help keep them but i'm not certain

@Garagoth
Copy link
Author

Regarding water reabsorption:
Indeed, the extra layer of water is in plains biome, block next to it is in cold ocean biome.
So it might be that ocean reabsorbed that extra water layer, but plains biome that is literally next block did not, as expected right now I guess.

@Garagoth
Copy link
Author

Garagoth commented Nov 21, 2024

image
I had to use sponge to empty caves below (those were completely flooded and water flow stopped)
As soon as water started to flow down again kelp started to pop.
Current setting of waterlogged_block_flow_mode: OUT_DOWN_ELSE_IN

@Garagoth
Copy link
Author

image
See how almost all kelps are missing top block.
IF water level replenishes to form a full block again, kelp grows.
It pops as soon as water level on surface updates again due to hole draining water from ocean.

I tested waterlogged settings of ignore and only_in, with both setting dropping kelp, but visually in smaller amounts.

@Brickmaster1
Copy link

I do also plan to allow stray water levels like this to dissipate in non ocean biomes but then i'll need to use random ticks to check for the quantity of fluid it is in and that can get costly quick

you could also spread the check across multiple ticks based on the tick delta

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

No branches or pull requests

3 participants