I'm not entire sure that even DFHack would work. You'd be able to place those trees, but the spores that make new trees are not something you have control over.
Actually, creating the spores is
exactly what I was proposing, and DFHack is
absolutely capable of doing that. Here's a Lua script which does it:
feat = df.global.world.cur_savegame.map_features[2]
num = #feat.feature.population
feat.feature.population:insert('#', { new = df.world_population, type = df.world_population_type.Tree, plant = dfhack.matinfo.find('PLANT:NETHER_CAP').index });
for i,j in pairs(df.global.world.populations) do if (j.population.cave_id == feat.layer and j.population.population_idx == num - 1) then df.global.world.populations:insert('#', { new = df.local_population, type = df.world_population_type.Tree, plant = dfhack.matinfo.find('PLANT:NETHER_CAP').index, population = {region_x = j.population.region_x, region_y = j.population.region_y, population_idx = num, cave_id = feat.layer, depth = feat.start_depth, unk_28 = -1 } } ) end end
Note that this assumes that the 3rd map feature in your embark is the 3rd cavern layer (e.g. if you type "feature list", then features 0-2 should all be "the cave" with type "subterranean_from_layer").
Also, artifact doors/floodgates are
NOT immune to dragonfire - while artifacts cannot burn, they can definitely
melt...