[Mod] Magma conduits and volcanoes [magma_conduits]

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

[Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

Image

A mapgen mod you can add to most existing mapgens. It adds magma conduits that thread through the ground like a second cave system.

It has two main mechanisms for doing this, which can be separately enabled and disabled. One approach is to use "veins" of lava, resulting in twisting passages interconnecting underground. The other is to build vertical lava "pipes" with volcanic cones on the surface.

The mod has settings to control the frequency and distribution of volcanoes, as well as the proportion of volcanoes that are "active" (have open calderas with exposed pools of lava), "dormant" (closed calderas but lava is near the surface) and "extinct" (the surface volcano is largely decorative, the lava could be hundreds of meters below ground under it). Dormant and extinct volcanoes will have material appropriate to their local biome decorating their surface, whereas active volcanoes will be decorated with gravelly volcanic ash.

It also has the following optional features, configurable via settings:

* Removes default mapgen lava (it leaves the empty caves behind)
* Adds an obsidian lining to magma conduits
* Adds "glowing rock" that forms from stone and obsidian adjacent to magma, providing a warning to miners that they're about to hit trouble.

This mod can make magma more sparsely distributed across the map, but where it is found it will be available in massive quantities. Since volcanoes can be a bit hard to find, there's a "/findvolcano" chat command (requiring a privilege of the same name) that will give a list of the locations of nearby volcanoes.

If you install namegen and named_waypoints then names and HUD markers will be automatically generated for volcanoes, players will "discover" the volcano when they climb to its peak.

Dependencies: default
License: MIT

Links
Last edited by FaceDeer on Sun Jan 26, 2020 03:47, edited 6 times in total.

User avatar
TechNolaByte
Member
Posts: 465
Joined: Wed May 10, 2017 21:00
GitHub: TechNolaByte

Re: [Mod] Magma conduits [0.5]

by TechNolaByte » Post

finally no more boring lava pools!
The great quest of alchemy neither failed nor attained gold; programmers are those great alchemists who transmute caffeine into code.

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

Re: [Mod] Magma conduits [0.5]

by FaceDeer » Post

I'm hoping to eventually put out a version that builds volcanic cones over the surface ends of vents, but at the moment I'm working on some other mods that are keeping that back-burnered. Hopefully the hole-in-the-ground-with-lava-inside appearance is fine for now.

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] Magma conduits [0.5]

by texmex » Post

I like the idea of magma conduits alot but as it works now it burns down my forests when when generated in them. A setting for an y offset of the lava surface could solve that.

Another suggestion is a setting with a string of comma-separated biome names that controls in which biomes the conduits generate.

A third thing I noticed yesterday is that even though the lava reaches the surface, there was no obsidian generated around it and thus lava sat next to dirt-with-grass which didn’s look all too realistic.

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

Re: [Mod] Magma conduits [0.5]

by FaceDeer » Post

There's already a setting for limiting the lava's height, magma_conduits_remove_lava_above. It still leaves the empty conduit above that height, unfortunately - I tried creating a setting that'd prevent the lava :"ore" from spawning in the first place above that height but discovered an issue in Minetest itself that made me back off of that for the time being.

Currently lava's just an ore, so I don't think fine-grained control of where it spawns is possible. But I expect I'll eventually rewrite the vent-generating code from scratch when I get to making surface volcanoes, so I can take a look at doing that then.

The obsidian-generating code only replaces default:stone with obsidian currently, I'll add dirt and such to the list when I've got a bit of spare time.

twoelk
Member
Posts: 1482
Joined: Fri Apr 19, 2013 16:19
GitHub: twoelk
IRC: twoelk
In-game: twoelk
Location: northern Germany

Re: [Mod] Magma conduits [0.5]

by twoelk » Post

cool idea ...
and
some old code you might want to study:
volcano by paramat and vulkane by HybridDog

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

Re: [Mod] Magma conduits [magma_conduits]

by FaceDeer » Post

My day job schedule is still pretty crazy so I don't know how quickly I can "finish" this, but I just roughed out a mapgen for adding large mountain-scale volcanoes to pretty much any map. See the following branch at Github:
magma_conduits volcano branch

It's not set up to be highly configurable yet, but if you crack open the volcanoes.lua file you can find a bunch of settings at the top that will eventually add flexibility to what sort of volcanoes are generated. Right now volcanoes are made in the following general patterns:

25% "extinct" (no lava, just an obsidian pipe), 25% "dormant" (obsidian plug in the caldera but there's a lava pipe below it), 50% "active" (an open throat leading right to lava, and slopes covered in gravel "ash" rather than soil). The steepness and heights of the volcanoes vary widely too.

Right now the code that is supposed to scatter volcanoes randomly across the map is in a primitive state, which is actually handy for testing; they're roughly in a 1-kilometer grid pattern starting at 500,0,500. Volcanoes can be up to 200 meters tall.

A word of warning: during my testing I've been getting an occasional crash that may be related to this mapgen, so don't use this in a world you care about just yet.

On my todo list is making volcanoes blend into their surrounding biomes a bit better, putting snow on the taller ones and maybe trees and stuff on the dormant or extinct ones. Haven't done mapgen work on the surface world before so that'll be a learning experience.

User avatar
texmex
Member
Posts: 1753
Joined: Mon Jul 11, 2016 21:08
GitHub: tacotexmex
In-game: tacotexmex

Re: [Mod] Magma conduits [magma_conduits]

by texmex » Post

Wow, looking forward to try this branch!

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

Re: [Mod] Magma conduits [magma_conduits]

by FaceDeer » Post

I've noticed that some of the volcanoes have weird horizontal slices missing, which can allow lava to spill out. So not ready for prime time just yet, though I'm going to see if I can come up with a way to make these things "erupt" in a more intentional manner once the basic stuff is working better. :)

Edit: The horizontal slices appear to be specific to mapgen v7, the same volcano generated in singlenode or in carpathian was intact. An interesting challenge, it looks like mapgen v7 is doing something *after* the volcano has been generated to cut slices into it.

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

Re: [Mod] Magma conduits [magma_conduits]

by FaceDeer » Post

Okay, I think the "volcanoes" branch of this mod is getting pretty close to merging back into the main branch now. I'm reasonably satisfied with how volcanoes look. Could perhaps use a bit more biome-specific vegetation on the dormant and extinct ones, but that's likely to be a lot of work so I'll save it for a future version.

Here's a screenshot of a typical volcano this mod can now generate:

Image

You can use the /findvolcano console command to seek out nearby volcanoes, since the might be scattered widely and take a while to track down by just flying around.

Any suggestions or requests before I merge?

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

Re: [Mod] Magma conduits [magma_conduits]

by FaceDeer » Post

Okay, I think I'm done. I've made extinct and dormant volcanoes use nodes from the biomes they're in to decorate their slopes (eg, a volcano in the desert gets desert sand on it, a volcano in the jungle gets jungle dirt) though active ones always get gravel "ash" instead. I've also added a large magma chamber down at the bottom end of each magma pipe - even extinct volcanoes have one. There's no trees and stuff like that, but eh, I figure this is good enough for now.

Unfortunately, I've been triggering Issue #7864 a lot as I've been flying around from volcano to volcano while testing. So I'm going to hold off merging the volcano branch into master for a little while to see if that issue gets traction.

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

I've found a workaround that seems reliable. It appears the bug is triggered by how my mapgen was placing light-emitting nodes near the surface, so I created a non-light-emitting temporary version of lava that gets immediately replaced with the regular stuff post-mapgen. The volcano branch has been merged into master.

User avatar
voxelproof
Member
Posts: 1087
Joined: Sat Aug 05, 2017 08:13
Location: Europe

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by voxelproof » Post

Well done.

Image

Image

Image
Attachments
volcano6.jpg
volcano6.jpg (62.75 KiB) Viewed 3599 times
volcano5.jpg
volcano5.jpg (64.67 KiB) Viewed 3599 times
volcano4.jpg
volcano4.jpg (62.78 KiB) Viewed 3599 times
To miss the joy is to miss all. Robert Louis Stevenson

Christian_Soldier
Member
Posts: 162
Joined: Thu Feb 08, 2018 17:36
In-game: Christian_Soldier

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by Christian_Soldier » Post

Awesome! :)

I have a suggestion, though:
Can you somehow incorporate the tides mod,
viewtopic.php?f=9&t=21600, into it so the volcanoes can actually erupt?
plz see my map from The Stanley Parable. viewtopic.php?f=12&t=19944&p=0&e=0

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

Heh. The original purpose of adding volcanoes to this mod was so that lava could be available on the surface without setting the surrounding forest on fire, so although I did think a bit about how to make volcanoes erupt I didn't dig very deeply.

The way Minetest liquid behaves you only need to place a single node of lava on the lip of the volcano's caldera and you'll get an impressive fan of flowing lava spread out down the side of the volcano. So to make a volcano "erupt" perhaps I could have it fill to the top of its caldera and then poke one or two holes in the lip? I wouldn't want that to happen "naturally" on account of the forest fires that would ensue, but I'll look into adding a chat command to trigger an active volcano that way. In a little bit, though - this mod release is actually just a prelude to releasing a rather big modpack in a couple more days so I'm focused on that right now. I'll file myself an issue to remind me.

User avatar
voxelproof
Member
Posts: 1087
Joined: Sat Aug 05, 2017 08:13
Location: Europe

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by voxelproof » Post

FaceDeer wrote:Heh. The original purpose of adding volcanoes to this mod was so that lava could be available on the surface without setting the surrounding forest on fire, so although I did think a bit about how to make volcanoes erupt I didn't dig very deeply.
This is a very benign sub-species of volcanoes you've implemented here ;) However to ensure greater fun for players I think that it would be feasible and interesting to make them slightly unpredictable (volcanoes, not players) and, well, posing substantial menace to surrounding environment.
The way Minetest liquid behaves you only need to place a single node of lava on the lip of the volcano's caldera and you'll get an impressive fan of flowing lava spread out down the side of the volcano. So to make a volcano "erupt" perhaps I could have it fill to the top of its caldera and then poke one or two holes in the lip? I wouldn't want that to happen "naturally" on account of the forest fires that would ensue, but I'll look into adding a chat command to trigger an active volcano that way. In a little bit, though - this mod release is actually just a prelude to releasing a rather big modpack in a couple more days so I'm focused on that right now. I'll file myself an issue to remind me.
1. You could avoid fully deterministic disastrous impact of volcanoes by associating the eruption procedure with certain probability (let's say 10^-6 per second or even less for eruption);
2. The eruption itself can be implemented by transforming random number of nodes in topmost part of the mountain into TNT nodes and making them explode (a player wouldn't even notice this small trick). Now one can admire wonderful natural disaster in full scale 8D
Last edited by voxelproof on Sat Dec 29, 2018 20:45, edited 1 time in total.
To miss the joy is to miss all. Robert Louis Stevenson

User avatar
markthesmeagol
Member
Posts: 34
Joined: Fri Dec 21, 2018 13:15
GitHub: smeagolthellama
In-game: haivets

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by markthesmeagol » Post

YEEY! df !!fun!!

What mapgens is this compatible with, and will there be any sea-volcanoes/volcanic islands?
I am not very good at lua. I am learning though.

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

It should work with pretty much any mapgen provided the volcano-generating code runs after the ground has been placed (otherwise the magma pipes could get "overwritten", depending on the mapgen). I've only tested it heavily with v7 but I think the other built-in mapgens should all work. Let me know if you run into any incompatibilities with other mapgens and I'll see what I can do.

There will indeed be volcanic islands. The mapgen is unaware of what the terrain is like when it selects locations to put volcanos, so if it puts one out in the ocean it'll make an island. There won't be trees on it, unfortunately - I just borrow the dirt type from the biome the volcano is in, I don't apply the biome's decorations. If you've got oceans deeper than about 30 meters I may need to do some tweaking of the profile of volcanic cones, otherwise divers might notice some oddities if they go down there (the volcano narrows back down to the size of the central lava pipe below that depth).

If you're a fan of Dwarf Fortress you might be pleased to know that I'm just a few days away from a major new release of dfcaverns. Let me know if you'd like to do some beta testing, I can direct you to the branches and dependencies you'll need.

User avatar
markthesmeagol
Member
Posts: 34
Joined: Fri Dec 21, 2018 13:15
GitHub: smeagolthellama
In-game: haivets

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by markthesmeagol » Post

Christian_Soldier wrote:Awesome! :)

I have a suggestion, though:
Can you somehow incorporate the tides mod,
viewtopic.php?f=9&t=21600, into it so the volcanoes can actually erupt?
As the author of the tides mod, I can say two things:
1) Thanks very much for the recommendation,cool idea, however:
2) I disagree with it. At the moment, the tides mod needs a lot more work in order to be considered for incorporation into other mods, and... it doesn't work(at the moment that is. Any help is welcome).
I am not very good at lua. I am learning though.

CalebJ
Member
Posts: 407
Joined: Sat Dec 29, 2018 19:21
GitHub: KaylebJay
IRC: KaylebJay
In-game: CalebJ
Location: Tunnelers' Abyss

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by CalebJ » Post

Sorry for bumping, but this looks really nice. I'm testing it!

EDIT: Some of the extinct volcanos spawn underground instead of above. Other than that: +1

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

CalebJ wrote:Sorry for bumping, but this looks really nice. I'm testing it!

EDIT: Some of the extinct volcanos spawn underground instead of above. Other than that: +1
Do you mean underground as in the whole cinder cone is beneath the surface? I currently don't adjust the height of the volcano based on the local elevation (at least, I don't remember doing so - it's been a while since I made that code. It'd be hard to do, though, since the peak of the volcano is usually located in a mapblock other than the one that's currently generating), so it's possible that a volcano will randomly spawn whose peak elevation is below the local surface of the ground. The lava's still there, it's just less obvious from the surface. There are actually formations like that in real life, volcanic "dikes" where magma squeezed into cracks in the crust but never erupted onto the surface before solidifying, though I'm not explicitly modeling that kind of thing here.

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by Red_King_Cyclops » Post

Cool mod. I recommend exploring volcanos with molten_sailor.
Currently working on new mods.

User avatar
Diamond knight
Member
Posts: 475
Joined: Sun Apr 19, 2015 19:50
GitHub: Diamondknight
In-game: Ferrumprinceps
Location: Chilling in Constantinople
Contact:

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by Diamond knight » Post

Is there any way I can mod these to actually erupt? I am working on a subgame that features a post-apocalyptic scenario and I am trying to find good mods to simulate the natural disasters that are supposed to present a massive challenge to the player. Also, would be best if the eruption method I could mod in would be compatible with dynamic_liquids as the subgame uses that mod.

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

Diamond knight wrote:Is there any way I can mod these to actually erupt? I am working on a subgame that features a post-apocalyptic scenario and I am trying to find good mods to simulate the natural disasters that are supposed to present a massive challenge to the player. Also, would be best if the eruption method I could mod in would be compatible with dynamic_liquids as the subgame uses that mod.
Tricky. I did a little fiddling once with the concept "what happens when one of these volcanoes overflows?" and the results were catastrophic; due to the way Minetest's fluid dynamics worked a single lava node overflowing the top of one of these volcanic mountains ended up covering the entire circumference of the volcano's base with flowing lava. I stopped investigating at that point because I figured most servers wouldn't appreciate a mod that randomly set large sections of the map on fire like that.

However, if you do want to set large sections of the map on fire, I can think of a possible way to accomplish this in conjunction with dynamic_liquid. I could create a special "eruption manager" node, maybe disguised as an air node located just above the peak of the mountain, and when it came time to ruin everything it would start spawning lava nodes as if it were a magical lava spring. It'd fill the volcano up to the brim and then start spilling over. Eventually it'd hit some spawn limit and stop adding new lava. I'd need to make it check whether the lava vent below it was open, players could roof the volcano over to prevent eruptions.

I think the most complex parts will be adding this to the mapgen and making it run autonomously. It'd be fairly straightforward to whip up an air-like lava spring that could be placed manually by a server admin to spawn a big mess of lava, though, would that be useful for starters? I've got a lot on my to-do list so I don't want to devote a lot of time to this right now, unfortunately.

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

Re: [Mod] Magma conduits and volcanoes [magma_conduits]

by FaceDeer » Post

I just added optional support for two of my newer library mods, namegen and named_waypoints. If those mods are installed then names and HUD markers will be automatically generated for volcanoes, players will "discover" the volcano when they climb to its peak.

Post Reply

Who is online

Users browsing this forum: TPH and 36 guests