Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1] 2

Author Topic: Any way to convert surface stone/pebbles/boulders into dirt?  (Read 2228 times)

Hans Lemurson

  • Bay Watcher
    • View Profile
Any way to convert surface stone/pebbles/boulders into dirt?
« on: September 12, 2021, 04:37:39 pm »

I've been embarking on a surface-farming project, and I've been annoyed at all of the speckles of Boulders, Pebbles, and Stone that litter the surface, creating holes in my farm zones.

I know that I can flatten them out and pour water on them to make mud and farm on the mud
I know that if I just channel down into the ground layer below there are (mysteriously) no stones there either
I know that subterranean trees can grow on muddy stone and replace it with soil materials

But what I want to do is see if I can convert the surface to soil without having to damage it with digging.  Does anybody know if this is possible?
Logged
Foolprooof way to penetrate aquifers of unlimited depth.  (Make sure to import at least 10 stones for mechanisms)
Toughen Dwarves by dropping stuff on them.  (Nothing too heavy though, and make sure to wear armor.)
Quote
"Urist had a little lamb
whose feet tracked blighted soot.
And into every face he saw
his sooty foot he put."

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #1 on: September 12, 2021, 05:16:48 pm »

I don't believe it is. If I remember correctly, the "contaminants" of sorts reappear if you build over them and remove the construction. I would guess it should be possible to use DFHackery to change the data that causes these "contaminants", assuming it has been identified. It might be possible to just replace the tile type with the soil one, however. Note that all of this is speculation, without any basis in actual experience.

However, I think muddying these pesky tiles one by one should allow your farming to work correctly, although you may have to redefine the farm plots if the holes are defined at creation time, rather than being adjusted as tiles are muddied. Also, I don't know if smoothing the boulders would be needed or not, although I'd guess it won't be.
Logged

Thisfox

  • Bay Watcher
  • Vixen.
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #2 on: September 12, 2021, 06:53:04 pm »

I've had (limited) success by making a road (dirt or paved), and then removing the road and putting a farm over the top. Doesn't get rid of everything though. I usually end up just loosing my temper, digging down one layer so that my farms are a single Z below ground level, which if you get there fast enough means that you can plot the farms out on uncontaminated ground. And put a nice green glass roof over the farmyard. But it's not what you're asking for.
Logged
Mules gotta spleen. Dwarfs gotta eat.
Thisfox likes aquifers, olivine, Forgotten Beasts for their imagination, & dorfs for their stupidity. She prefers to consume gin & tonic. She absolutely detests Facebook.
"Urist McMason died out of pure spite to make you wonder why he was suddenly dead"
Oh god... Plump Helmet Man Mimes!

Hans Lemurson

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #3 on: September 12, 2021, 08:49:18 pm »

Building and removing Constructions seems to flatten the Boulders and Pebbles into flat stone.  Doing this in dug-out caverns seems not to accomplish anything either.

From what I've been reading about DF's data structure, my guess is that the boulder and pebble positions are generated procedurally by the world seed, so are permanent features of the surface.  Mined-out tiles are then kept track of and the subtracted from the "pristine" world.  I think then that any funny business with changing terrain identity can only happen in areas which have been dug out, since those are the tiles whose state is "remembered" rather than "generated".
Logged
Foolprooof way to penetrate aquifers of unlimited depth.  (Make sure to import at least 10 stones for mechanisms)
Toughen Dwarves by dropping stuff on them.  (Nothing too heavy though, and make sure to wear armor.)
Quote
"Urist had a little lamb
whose feet tracked blighted soot.
And into every face he saw
his sooty foot he put."

vjek

  • Bay Watcher
  • If it didn't work, change the world so it does.
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #4 on: September 12, 2021, 09:20:47 pm »

To the best of my knowledge, mud is your only non-dfhack option.  Roads don't change it, removed floors don't change it, any other construction doesn't change it.

There are conditions under which certain tiles will choose random soil types when revealed..
One of them may be.. if you muddy stone, let vegetation grow on it, build a construction/pave over it, then remove the construction, apparently, possibly, when you remove the construction, a soil type may appear. 
It may only work underground, though, as I've tried this on an above ground tile, and after two years, no ~grass will grow.  Even using dfhack 'regrass' doesn't work, despite it being possible to farm on the tile.  Growing crops on the Farm Plot tile(s), and then removing the farm still doesn't permit grass to grow, either, even though the mud remains.  Building a floor on the previously farmed tile and then removing it simply removes the mud and exposes the stone again.  :-\

Setting just the subterranean flag also doesn't work, tried that with tiletypes.  Same for inside & dark flags.. no change.
It might require breaching the caverns... doesn't seem so. Using 'feature show x' and revealing all the cavern layers isn't enough to grow moss, despite the tiletype settings/painting.  After setting those features, dug out tiles underground instantly grow moss, but not those artificially modified previously above ground stone.
The difference may be the 'grow' vs 'no grow' flag when a tile is probe'd with dfhack.    It seems that tiles flagged as grow will grow grass or moss.  Those without it, will not.

It might be as easy as adding mud and setting the 'grow' flag, but I don't know of a dfhack utility that changes that specific flag.
It's specifically referred to in probe.cpp: block.occupancy[tileX][tileY].bits.no_grow , and is apparently contextually found in the "Occupancy" flags.
After setting the grow flag, it might be necessary to change the tiletypes, as well.

fix/tile-occupancy.lua changes some flags.. it might be possible to figure out how to refer to and/or set  .bits.no_grow to 0 ?

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #5 on: September 13, 2021, 02:25:30 am »

Others have already mentioned that roads don't work, but dirt roads actually show that when you paint them, as they leave holes in the road where boulders are. It's most easily seen when trying to paint a single tile wide (or high) road, as a dirt road that's broken into multiple pieces can't be placed.
Logged

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #6 on: September 13, 2021, 07:07:15 pm »

Does muddying the ground and waiting for plants/grass to grow work? What about obsidian casting and mining it away?
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Hans Lemurson

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #7 on: September 13, 2021, 07:49:46 pm »

Does muddying the ground and waiting for plants/grass to grow work? What about obsidian casting and mining it away?
I've muddied ground and waited a very long time and nothing seemed to happen.  No saplings seemed to grow on the muddy stone, but then again it's also a random process.  I would need to conduct a much larger scale test to be sure.

As for obsidian casting, I'm pretty sure it would actually be counterproductive and convert soil tiles into obsidian.  I think it is possible though that the obsidian floor from a mined out tile which was cast on top of dirt could be converted back into soil, but I suspect that doing the same on what was formerly limestone pebbles would just revert it to limestone.
Logged
Foolprooof way to penetrate aquifers of unlimited depth.  (Make sure to import at least 10 stones for mechanisms)
Toughen Dwarves by dropping stuff on them.  (Nothing too heavy though, and make sure to wear armor.)
Quote
"Urist had a little lamb
whose feet tracked blighted soot.
And into every face he saw
his sooty foot he put."

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #8 on: September 13, 2021, 08:33:59 pm »

I've muddied ground and waited a very long time and nothing seemed to happen.  No saplings seemed to grow on the muddy stone, but then again it's also a random process.  I would need to conduct a much larger scale test to be sure.

I know it works underground.

As for obsidian casting, I'm pretty sure it would actually be counterproductive and convert soil tiles into obsidian.  I think it is possible though that the obsidian floor from a mined out tile which was cast on top of dirt could be converted back into soil, but I suspect that doing the same on what was formerly limestone pebbles would just revert it to limestone.

Just tried it. It reverts to the boulder's stone type if you mine out obsidian on top of it. If you dig out the stone and put obsidian below, it then reverts to obsidian after you mine out the above obsidian.
« Last Edit: September 13, 2021, 08:38:04 pm by Bumber »
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #9 on: September 14, 2021, 01:07:41 am »

As far as I've seen, saplings from surface trees never appear on muddied floors (with empty space below: I haven't tried a floor directly on the ground), muddied cast obsidian, or even natural soil where the layer below has been dug away (preexisting saplings still mature, however, with the resultant surprise holes when they're cut down). I've also seen that that the shrub coverage is lesser in those places than in natural environments.

I wouldn't be surprised if the sapling blocking logic also blocks saplings on boulders, but I haven't looked at those. To experiment with that, you'd probably need hundreds of muddied boulder tiles over dozens of years, and somehow keep exact track of where the boulders are so you can detect if one of them has disappeared beneath a tree.

Note that underground "trees" don't need room for roots, and so have no problems growing on muddied stone, so experience with those saplings do not necessarily apply to surface ones.
Logged

Hans Lemurson

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #10 on: September 14, 2021, 06:43:28 am »

The boulders and stone patches have clean soil beneath them, so I don't think there'd be any root-room issue for the trees.  I think it will just come down to "can tree saplings spawn on muddy stone?"

Just tried it. It reverts to the boulder's stone type if you mine out obsidian on top of it. If you dig out the stone and put obsidian below, it then reverts to obsidian after you mine out the above obsidian.
Is the original soil recoverable if you cast obsidian on top, then mine it away?
Logged
Foolprooof way to penetrate aquifers of unlimited depth.  (Make sure to import at least 10 stones for mechanisms)
Toughen Dwarves by dropping stuff on them.  (Nothing too heavy though, and make sure to wear armor.)
Quote
"Urist had a little lamb
whose feet tracked blighted soot.
And into every face he saw
his sooty foot he put."

PatrikLundell

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #11 on: September 14, 2021, 07:32:01 am »

Well, there's soil beneath the boulder, but does the boulder block the sapling from accessing it? That's what I suspect (of course, that would be a case of surface saplings being unable to spawn on muddy stone, but at least some rationale for why that would be).

If you cast obsidian on top of soil and channel or mine the obsidian away again (mind the cave-in risk if you mine...) the soil is revealed again, yes, and so are the "contaminants", as Bumber mentioned (my experiment was probably during 0.40.X, so Bumber's fresh result indicates things haven't changed).
Logged

Hans Lemurson

  • Bay Watcher
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #12 on: September 14, 2021, 04:43:11 pm »

I'm less concerned about Boulders (since those can be flattened into basic "stone" tiles) and so extend my question into whether surface saplings can grow on any muddy stone at all.

Since Boulders are wagon-impassible, maybe they could block saplings too.  Maybe not.  But the important thing is that boulders and pebbles can both be converted into the general case of "stone".

My suspicion though is that the surface stone/pebbles/boulder tiles are generated by the world-seed, and so fundamentally cannot be altered.
Logged
Foolprooof way to penetrate aquifers of unlimited depth.  (Make sure to import at least 10 stones for mechanisms)
Toughen Dwarves by dropping stuff on them.  (Nothing too heavy though, and make sure to wear armor.)
Quote
"Urist had a little lamb
whose feet tracked blighted soot.
And into every face he saw
his sooty foot he put."

Bumber

  • Bay Watcher
  • REMOVE KOBOLD
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #13 on: September 15, 2021, 03:29:44 am »

What if you built a roof and tried to get cavern grass to grow on the muddy stone? (Or does it have to be below the original ground level to grow? I know I've had cavern grass grow in an area that was exposed to sunlight, then roofed over again.)

Is the original soil recoverable if you cast obsidian on top, then mine it away?

Yes. It will even put a soil floor there if you replace the soil wall below with an obsidian wall.
« Last Edit: September 15, 2021, 03:32:13 am by Bumber »
Logged
Reading his name would trigger it. Thinking of him would trigger it. No other circumstances would trigger it- it was strictly related to the concept of Bill Clinton entering the conscious mind.

THE xTROLL FUR SOCKx RUSE WAS A........... DISTACTION        the carp HAVE the wagon

A wizard has turned you into a wagon. This was inevitable (Y/y)?

Fleeting Frames

  • Bay Watcher
  • Spooky cart at distance
    • View Profile
Re: Any way to convert surface stone/pebbles/boulders into dirt?
« Reply #14 on: September 18, 2021, 12:04:51 pm »

dfhack's tiletypes aside, in most cases you could cast obsidian wall 1z above the boulder/pebble, then dig away the obsidian wall (reverting it into soil floor), then cave in that soil floor on top of the boulder; Tested in 44.09, caved in black sand floor to get peat floor where pebbles were. However it is worth noting that inspecting the tile with probe afterwards tells that it still nonetheless kept its "no grow" tag (and nothing grew there in the time 48/50 tiles of dirt road regrassed).

Btw, in same version testing, Subterranean/Inside/Above Ground tiles (stockpile tiles on unretire) failed to grow any moss after cavern revealing. Revealed and refloored soil grew aboveground grasses.
« Last Edit: September 18, 2021, 12:06:52 pm by Fleeting Frames »
Logged
Pages: [1] 2