diff --git a/df_caverns/mod.conf b/df_caverns/mod.conf index 40b0992..a4bbf42 100644 --- a/df_caverns/mod.conf +++ b/df_caverns/mod.conf @@ -1,4 +1,4 @@ name = df_caverns description = Adds vast underground caverns in the style of Dwarf Fortress, complete with underground flora in diverse biomes. Also adds stalactite/stalagmite decorations in the smaller tunnels. depends = default, subterrane, df_trees, df_mapitems -optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot \ No newline at end of file +optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot, named_waypoints, map \ No newline at end of file diff --git a/df_caverns/primordial.lua b/df_caverns/primordial.lua index f45c8d6..d2342b6 100644 --- a/df_caverns/primordial.lua +++ b/df_caverns/primordial.lua @@ -299,6 +299,7 @@ local decorate_primordial = function(minp, maxp, seed, vm, node_arrays, area, da local jungle = nvals_cave[vi] < 0 if jungle then data[vi] = c_plant_matter + minetest.get_node_timer(area:position(vi)):start(math.random(10, 60)) else data[vi] = c_mycelial_dirt end diff --git a/df_caverns/sunless_sea.lua b/df_caverns/sunless_sea.lua index c102862..1309980 100644 --- a/df_caverns/sunless_sea.lua +++ b/df_caverns/sunless_sea.lua @@ -380,6 +380,7 @@ local decorate_sunless_sea = function(minp, maxp, seed, vm, node_arrays, area, d else data[vi] = c_coral_table[math.random(1,3)] data_param2[vi] = math.random(1,4)-1 + minetest.get_node_timer(area:position(vi)):start(math.random(10, 60)) end end end diff --git a/df_mapitems/cave_coral.lua b/df_mapitems/cave_coral.lua index e381a4b..b90a917 100644 --- a/df_mapitems/cave_coral.lua +++ b/df_mapitems/cave_coral.lua @@ -13,6 +13,11 @@ minetest.register_node("df_mapitems:cave_coral_3", { is_ground_content = false, groups = {cracky = 3, dfcaverns_cave_coral = 1}, sounds = default.node_sound_stone_defaults(), + on_timer = function(pos) + if minetest.find_node_near(pos, 1, {"default:water_source"}) == nil then + minetest.set_node(pos, {name="default:coral_skeleton"}) + end + end, }) minetest.register_node("df_mapitems:cave_coral_2", { @@ -26,6 +31,11 @@ minetest.register_node("df_mapitems:cave_coral_2", { is_ground_content = false, groups = {cracky = 3, dfcaverns_cave_coral = 1}, sounds = default.node_sound_stone_defaults(), + on_timer = function(pos) + if minetest.find_node_near(pos, 1, {"default:water_source"}) == nil then + minetest.set_node(pos, {name="default:coral_skeleton"}) + end + end, }) minetest.register_node("df_mapitems:cave_coral_1", { @@ -39,6 +49,11 @@ minetest.register_node("df_mapitems:cave_coral_1", { is_ground_content = false, groups = {cracky = 3, dfcaverns_cave_coral = 1}, sounds = default.node_sound_stone_defaults(), + on_timer = function(pos) + if minetest.find_node_near(pos, 1, {"default:water_source"}) == nil then + minetest.set_node(pos, {name="default:coral_skeleton"}) + end + end, }) local coral_names = {"df_mapitems:cave_coral_1", "df_mapitems:cave_coral_2", "df_mapitems:cave_coral_3"} diff --git a/df_primordial_items/jungle_nodes.lua b/df_primordial_items/jungle_nodes.lua index fc09713..328ae36 100644 --- a/df_primordial_items/jungle_nodes.lua +++ b/df_primordial_items/jungle_nodes.lua @@ -254,6 +254,11 @@ minetest.register_node("df_primordial_items:plant_matter", { is_ground_content = false, groups = {crumbly = 3, soil = 1}, sounds = default.node_sound_dirt_defaults(), + on_timer = function(pos) + if minetest.find_node_near(pos, 1, {"air"}) == nil then + minetest.set_node(pos, {name="df_primordial_items:packed_roots"}) + end + end, }) if minetest.get_modpath("trail") and trail and trail.register_trample_node then local HARDPACK_PROBABILITY = minetest.settings:get("trail_hardpack_probability") or 0.5 -- Chance walked dirt/grass is worn and compacted to trail:trail. @@ -286,18 +291,6 @@ minetest.register_node("df_primordial_items:packed_roots", { sounds = default.node_sound_wood_defaults(), }) -minetest.register_abm({ - label = "Plant matter converting to roots", - nodenames = {"df_primordial_items:plant_matter"}, - interval = 10.0, - chance = 5, - action = function(pos, node, active_object_count, active_object_count_wider) - if minetest.find_node_near(pos, 1, {"air"}) == nil then - minetest.set_node(pos, {name="df_primordial_items:packed_roots"}) - end - end -}) - ---------------------------------------------------------------------------------------- -- Roots