[Mod] Dynamic liquids [dynamic_liquid]

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.5] [dynamic_liquid]

by zargulthewizard » Post

FaceDeer wrote:
TumeniNodes wrote: So, I just had to go back and re-read through your original post, because I feel I completely misunderstood the goals here.
It seems you basically want to do the complete opposite of what I'm blabbering about :P My apologies for that.

This seems to be more about controlling water regeneration and flowing?
No problem. It's a bit of an abstract mod, without as clearly defined a purpose as a new tool or block type. :)

The purpose of this mod, as I see it, is to remove the static quality of liquids in Minetest. In base Minetest liquids don't really flow, they just fake it by generating transient "flowing" nodes next to fixed "source" blocks. You can make a wall out of water blocks and they'll just stay where they were put, you can dig a tunnel up into the underside of an ocean and the tunnel won't flood (beyond the first few meters where the fake flow is generated).

I've always found this to be unrealistic and unsatisfying. If my tunnel breaches the ocean I should panic about that and have to hurriedly patch the hole before the whole thing floods and I drown. If I find a pool and want to drain it I should be able to do that by digging a hole to drain it through, rather than having to fill the entire pool with dirt and then dig the dirt away (I wouldn't even be able to bail it out with buckets since water regenerates in the base game).

I don't really consider this a mapgen mod because the purpose isn't to change the layout and appearance of the world as it initially exists. The ocean is still the ocean, just as it was before. I want to change how the ocean behaves over time in response to player actions.

I could see this being useful as a landscaping tool though. If you've dug out a lake and want to fill it with water you could use world edit to make a big blob of water in the center and then temporarily enable the dynamic liquid mod to let the water flow into the basin you've prepared for it. Once it's settled where you like it, deactivate the mod again and the water will freeze in place.
Hallelujah for this mod! This is so the way I feel. Will go back and remove post in MineClone 2 thread.
May God be with you, always.

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

Could you create an addon to change pipeworks to function with this mod? This would be totally cool: the water pipes would have an actual purpose instead of doing this:

Image

As far as I am concerned, this is all that the mod is missing.

Edit: why won't the image thing work? I upladed it to imgur and pasted in the copied URL here, but to no avail.

Edit: a long time since I posted this. Thankyou Lord I know how to do it now.
Last edited by zargulthewizard on Mon Jan 22, 2018 21:09, edited 3 times in total.
May God be with you, always.

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

I think what the addon would need to do is mainly make the pump remove liquid nodes and make the faucet continuously place water nodes if it is still supplied. I don't know much of how pipeworks functions internally, but

pipe changes so they slowly carry one water node at a time and transfer it to the next pipe in line, (not being able to transfer a waternode to the next pipe if it already has water in it, piling up in the system with one waternode per pipe if there is a block, stopping the whole transfer if the pump finds it cannot send another waternode because the first pipe is full)

may be best. The one problem could be if two pumps are connected to the same system. A simple shunting algorithm involving water direction force would probably be enough since the water only ever travels at one speed.
May God be with you, always.

User avatar
Devy
Member
Posts: 133
Joined: Sat Jan 21, 2017 02:31
GitHub: DevyHeavy
In-game: devy

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by Devy » Post

zargulthewizard wrote:Could you create an addon to change pipeworks to function with this mod? This would be totally cool: the water pipes would have an actual purpose instead of doing this:

Image

As far as I am concerned, this is all that the mod is missing.

Edit: why won't the image thing work? I upladed it to imgur and pasted in the copied URL here, but to no avail.
You have to right-click the image on Imgur and copy the image location.

User avatar
GamingAssociation39
Member
Posts: 858
Joined: Mon Apr 25, 2016 16:09
GitHub: Gerold55
IRC: Gerold55
In-game: Gerold55
Location: Maryland, USA

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by GamingAssociation39 » Post

Image

Would this be possible with this mod?
Attachments
au.jpg
au.jpg (24.12 KiB) Viewed 956 times
Jesus Is Lord and Savior!!!

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

The creator said it did that, though I'm not sure what it looks like.
May God be with you, always.

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by FaceDeer » Post

GamingAssociation39 wrote:Image

Would this be possible with this mod?
As far as I know that would require some engine changes that are beyond what a mere mod can accomplish. Though I mostly wrote this mod in version 0.4.15, so perhaps some new features have been added since then? How did you make those screenshots?

There is one feature in this mod that's a bit like this that's enabled with the "dynamic_liquid_flow_through" setting (which defaults to true). This feature allows liquid source nodes to "teleport" through adjacent nodes that should theoretically allow water to flow through it, so for example that block contained by a fence in your first example would be able to jump to the other side of the fence and flow away. It's a bit of a hacky system since I wanted to be careful not to do a lot of fancy ABM work (this mod is already fairly demanding for the server), it can only move a water node through a single layer of flow-through nodes. And flow-through nodes have to be guessed at via some simple ad-hoc rules, there's no way to analyze a block to determine if water "should" be able to flow through it. If it's not working right for you let me know what blocks you need it to be able to flow through and I can see about enhancing the system.

User avatar
GamingAssociation39
Member
Posts: 858
Joined: Mon Apr 25, 2016 16:09
GitHub: Gerold55
IRC: Gerold55
In-game: Gerold55
Location: Maryland, USA

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by GamingAssociation39 » Post

I believe that dynamic liquids is being added in 0.5.
Jesus Is Lord and Savior!!!

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

You didn't answer the screenshot question. I a beginning to suspect photoshop.
May God be with you, always.

User avatar
GamingAssociation39
Member
Posts: 858
Joined: Mon Apr 25, 2016 16:09
GitHub: Gerold55
IRC: Gerold55
In-game: Gerold55
Location: Maryland, USA

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by GamingAssociation39 » Post

zargulthewizard wrote:You didn't answer the screenshot question. I a beginning to suspect photoshop.
It's not from minetest :) it's a photo from minecraft upcoming concept feature. I was just asking because of MineClone 2 so...
Jesus Is Lord and Savior!!!

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

You're cleared.

Is there any possibility of added pipeworks compatibility? I would really like this!
May God be with you, always.

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by FaceDeer » Post

zargulthewizard wrote:You're cleared.

Is there any possibility of added pipeworks compatibility? I would really like this!
I had a look at pipeworks water pumps back when I first created this mod and as I recall it seemed like I'd have to pretty much rewrite pipeworks' water-moving system from scratch to make it work nice. Pipeworks made a lot of assumptions about how water works that dynamic_liquid changes.

However, I saw commit comments on the Pipeworks mod recently that suggests that they did a big reworking of their pumping code, so I should take a second look. If nothing else, perhaps creating a whole new system for piping water around will be not as hard as I originally thought. I can ask the Pipeworks mod's maintainers what they think.

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

Thankyou!
May God be with you, always.

User avatar
Lord_Vlad
Member
Posts: 112
Joined: Thu Jul 20, 2017 07:58

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by Lord_Vlad » Post

Repost of an unanswered question :

I'd really like a function to speed up things. either a command or an craftable item that would like, make each source path-find and teleport to the lowest point it can already reach. Or maybe just make the source movements really fast. A pool of lava draining into a cave below can take tens of hours, it shouldn't. Is there a way around that ?

Also can we add liquids added by mod to the list of liquids that are affected by this ? If yes how ?

zargulthewizard
Member
Posts: 249
Joined: Wed Jul 26, 2017 18:10
In-game: zargul

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by zargulthewizard » Post

Lord_Vlad wrote:Repost of an unanswered question :

I'd really like a function to speed up things. either a command or an craftable item that would like, make each source path-find and teleport to the lowest point it can already reach. Or maybe just make the source movements really fast. A pool of lava draining into a cave below can take tens of hours, it shouldn't. Is there a way around that ?

Also can we add liquids added by mod to the list of liquids that are affected by this ? If yes how ?
To the first question: this would kill a server with a large uneven pool of water.
May God be with you, always.

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by FaceDeer » Post

And to the second question: a mod can make use of dynamic_liquids by calling the "dynamic_liquid.liquid_abm" method to register new liquid nodes. For example, default water is registered with this line in init.lua:

Code: Select all

dynamic_liquid.liquid_abm("default:water_source", "default:water_flowing", water_probability)
Where water_probability is 1 by default (meaning every water block next to a flowing water block will check if it can move 100% of the time each second - set this to something higher if you want slower flow, lava is set to 5 by default meaning it only has a 1/5 chance of moving each second).

To the first question, yeah, this mod does its best to strike a balance between speed of water movement and sharing computational resources - I wasn't able to get it to go much faster without causing noticeable lag. Also, I think it's good having water take a while to reach equilibrium; it allows waterfalls to last longer, gives a player time to try frantically walling up a flooding cave before everything drowns, prevents oceans from vanishing into large underground caverns, and so forth.

User avatar
Lord_Vlad
Member
Posts: 112
Joined: Thu Jul 20, 2017 07:58

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by Lord_Vlad » Post

Thanks for the tip, I can finally make all that tree sap go down the drain XD

It's why I was thinking of it in terms of an item or command you could use to drain the liquid, not something passive. Anyways, the computer power being a major issue here, that kind of blocks it.

Red_King_Cyclops
Member
Posts: 324
Joined: Sun Jun 16, 2019 20:17
Location: x=123, y=120, z=534

Re: [Mod] Dynamic liquids [dynamic_liquid]

by Red_King_Cyclops » Post

Good, realistic mod. The only problem is that liquids do not find their own level when dealing with vertical tunnels. For example, there is a tank with two vertical pipes connected to its top and more water than the tank can hold is poured down one pipe. In real life, the water would eventually fill the tank and parts of both pipes at the same level. In this mod, the water would only fill the tank and the first pipe. If this problem was fixed then players could make fountains.
Currently working on new mods.

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FaceDeer » Post

Indeed, it's a definite limitation that I've been reluctant to address due to performance concerns. As the mod currently stands each node only needs to know about its immediate neighbors, but to have water flow through a U-bend a node at the top of one column will need to do some kind of search through a long distance to find whether there's a connected node on the other side of the U-bend that it can move to. And as an added complication, in some cases one wouldn't want it to do that even if there's a path - for example, if you've got a small air pocket trapped at the top of tunnel you wouldn't want it filling in.

I might try adding something like this anyway to see whether it really is as big a performance hit as I expect it would be. I've touched on this sort of thing in the more recent "waterworks" mod, perhaps I can find things to reuse from my experimentation there. May be a while before I get to that though.

User avatar
FreeGamers
Member
Posts: 650
Joined: Sat May 25, 2019 00:15
GitHub: is proprietary I use NotABug
Location: United States
Contact:

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FreeGamers » Post

Hey FaceDeer, thanks for your work here,

I had a user report to me that they could not obtain clay underwater because the clay will drop anything. I signed in (as admin with creative) and was able to obtain clay lumps.

However, using a standard user without creative privs, I was unable to obtain anything (clay lumps) from default:clay or dynamic_liquid:clay (out of water, and in water). I tried using shovels, picks, and hands. No yields.

I'm going to look a bit more into this later and see if I can work out whats causing it.
FreeGamers.org has moved to MeseCraft.net | FreeGamers on this forum is now MeseCraft

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FaceDeer » Post

jeremyweston wrote:I'm going to look a bit more into this later and see if I can work out whats causing it.
Weird. If I had to make a guess, it's the "duplicate_def" function in init.lua that's used to make a copy of the old clay definition to modify into the "damp" kind. It's a pretty brain-dead simple approach to table copying, perhaps something has been added to the default clay definition in recent updates to Minetest that it doesn't handle right any more. Or that the node registration process is messing up somehow because the two definition tables have pointers to the same member objects.

I'll try swapping in a more sophisticated table-copying method from one of my more recent mods, I should do that anyway just to be on the safe side.

Extra-weird: I can't reproduce this bug locally, even running a separate client and server. I hope you can narrow it down a bit. :) I've actually been thinking of trying to come up with a more sophisticated ocean-replenishment system than the damp clay thing, I'm working on another mod that will change the distribution of clay significantly so I'll need something that plays nicer with that. So if we can't figure this out I can fast-track that a bit.

User avatar
FreeGamers
Member
Posts: 650
Joined: Sat May 25, 2019 00:15
GitHub: is proprietary I use NotABug
Location: United States
Contact:

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FreeGamers » Post

FaceDeer wrote:
jeremyweston wrote: Extra-weird: I can't reproduce this bug locally, even running a separate client and server. I hope you can narrow it down a bit. :) I've actually been thinking of trying to come up with a more sophisticated ocean-replenishment system than the damp clay thing, I'm working on another mod that will change the distribution of clay significantly so I'll need something that plays nicer with that. So if we can't figure this out I can fast-track that a bit.
You know what, you're not at fault here. I disabled dynamic liquid and its still happening.

I suspect its either technic or baked_clay. I'll get to the bottom of it somehow. Sorry for the false positive here. I should have just tested it earlier, but my server had a couple players in it most of the day and I didn't have much time to test.
FreeGamers.org has moved to MeseCraft.net | FreeGamers on this forum is now MeseCraft

User avatar
FreeGamers
Member
Posts: 650
Joined: Sat May 25, 2019 00:15
GitHub: is proprietary I use NotABug
Location: United States
Contact:

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FreeGamers » Post

For some reason the culprit seems to be item_drop mod, I'm not sure why, but I'll report it there. I thought it might be dynamic liquid because I know it reassigns clay that is underwater, which is also where the player was trying to obtain it from but I presumed incorrectly.
FreeGamers.org has moved to MeseCraft.net | FreeGamers on this forum is now MeseCraft

FaceDeer
Member
Posts: 506
Joined: Sat Aug 29, 2015 19:01
GitHub: FaceDeer

Re: [Mod] Dynamic liquids [dynamic_liquid]

by FaceDeer » Post

jeremyweston wrote:For some reason the culprit seems to be item_drop mod, I'm not sure why, but I'll report it there. I thought it might be dynamic liquid because I know it reassigns clay that is underwater, which is also where the player was trying to obtain it from but I presumed incorrectly.
Well, that's a relief. :) I'll still update that table-copying code I mentioned above, it's the right thing to do for future code robustness, but I'll put it off until I get home from vacation and can test more thoroughly.

Pablo.R
Member
Posts: 42
Joined: Thu Mar 24, 2016 12:02
Location: Chile

Re: [Mod] Dynamic liquids [0.8] [dynamic_liquid]

by Pablo.R » Post

GamingAssociation39 wrote:Image

Would this be possible with this mod?
For what you can see in these images, the objects that are smaller than a node must be defined as entities instead of nodes. So it can be done, but I can remember that entities are much more inefficient than nodes, so I think is a no.

Post Reply

Who is online

Users browsing this forum: No registered users and 23 guests