mirror of
https://github.com/FaceDeer/dfcaverns.git
synced 2025-06-28 14:36:20 +02:00
fixing up fungus light sensitivity, tree growth code
This commit is contained in:
@ -14,7 +14,7 @@ minetest.register_node("df_primordial_items:fungal_grass_1", {
|
||||
tiles = {"dfcaverns_mush_grass_01.png"},
|
||||
inventory_image = "dfcaverns_mush_grass_01.png",
|
||||
wield_image = "dfcaverns_mush_grass_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -32,7 +32,7 @@ minetest.register_node("df_primordial_items:fungal_grass_2", {
|
||||
tiles = {"dfcaverns_mush_grass_02.png"},
|
||||
inventory_image = "dfcaverns_mush_grass_02.png",
|
||||
wield_image = "dfcaverns_mush_grass_02.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 11},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -53,7 +53,7 @@ minetest.register_node("df_primordial_items:glow_orb", {
|
||||
tiles = {"dfcaverns_mush_orb.png"},
|
||||
inventory_image = "dfcaverns_mush_orb.png",
|
||||
wield_image = "dfcaverns_mush_orb.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -72,7 +72,7 @@ minetest.register_node("df_primordial_items:glow_orb_stalks", {
|
||||
tiles = {"dfcaverns_mush_stalks.png"},
|
||||
inventory_image = "dfcaverns_mush_stalks.png",
|
||||
wield_image = "dfcaverns_mush_stalks.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -91,7 +91,7 @@ minetest.register_node("df_primordial_items:glow_pods", {
|
||||
tiles = {"dfcaverns_mush_pods.png"},
|
||||
inventory_image = "dfcaverns_mush_pods.png",
|
||||
wield_image = "dfcaverns_mush_pods.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_fungal_plant = 1, light_sensitive_fungus = 13},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -113,6 +113,7 @@ minetest.register_node("df_primordial_items:dirt_with_mycelium", {
|
||||
tiles = {"dfcaverns_mush_soil.png"},
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
drops = "default:dirt",
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
light_source = 3,
|
||||
@ -126,10 +127,7 @@ minetest.register_abm{
|
||||
chance = 50,
|
||||
catch_up = true,
|
||||
action = function(pos)
|
||||
local above_def = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z}).name]
|
||||
if above_def and (above_def.buildable_to == true or above_def.walkable == false) then
|
||||
minetest.swap_node(pos, {name="df_mapitems:dirt_with_mycelium"})
|
||||
end
|
||||
minetest.swap_node(pos, {name="df_mapitems:dirt_with_mycelium"})
|
||||
end,
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,8 @@ minetest.register_node("df_primordial_items:fern_sapling", {
|
||||
tiles = {"dfcaverns_jungle_fern_03.png"},
|
||||
inventory_image = "dfcaverns_jungle_fern_03.png",
|
||||
wield_image = "dfcaverns_jungle_fern_03.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -280,10 +281,28 @@ minetest.register_node("df_primordial_items:fern_sapling", {
|
||||
use_texture_alpha = true,
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
--TODO timer
|
||||
local fern = df_primordial_items.get_fern_schematic()
|
||||
local rotation = rotations[math.random(1,#rotations)]
|
||||
minetest.set_node(pos, {name="air"}) -- clear sapling so fern can replace it
|
||||
mapgen_helper.place_schematic(pos, fern, rotation)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
|
||||
if minetest.get_node_light(pos) > 6 then
|
||||
local fern = df_primordial_items.get_fern_schematic()
|
||||
local rotation = rotations[math.random(1,#rotations)]
|
||||
minetest.set_node(pos, {name="air"}) -- clear sapling so fern can replace it
|
||||
mapgen_helper.place_schematic(pos, fern, rotation)
|
||||
else
|
||||
minetest.get_node_timer(pos):start(df_trees.config.tree_min_growth_delay)
|
||||
end
|
||||
end,
|
||||
})
|
@ -320,6 +320,10 @@ minetest.register_node("df_primordial_items:giant_hypha_apical_meristem", {
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
|
||||
if elapsed > max_growth_delay then
|
||||
-- We've been unloaded for a while, need to do multiple growth iterations.
|
||||
local iterations = math.floor(elapsed / avg_growth_delay) -- the number of iterations we've missed
|
||||
@ -370,12 +374,13 @@ minetest.register_node("df_primordial_items:giant_hypha_apical_mapgen", {
|
||||
connects_to = {"group:hypha"},
|
||||
connect_sides = { "top", "bottom", "front", "left", "back", "right" },
|
||||
drawtype = "nodebox",
|
||||
_dfcaverns_dead_node = "df_primordial_items:giant_hypha_root",
|
||||
light_source = 6,
|
||||
node_box = get_node_box(0.25, 0.375),
|
||||
paramtype = "light",
|
||||
|
||||
is_ground_content = false,
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, not_in_creative_inventory = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, choppy = 2, hypha = 1, not_in_creative_inventory = 1, light_sensitive_fungus = 13},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
})
|
||||
|
||||
@ -383,10 +388,12 @@ local grow_mycelium_immediately = function(pos)
|
||||
local stack = {pos}
|
||||
while #stack > 0 do
|
||||
local pos = table.remove(stack)
|
||||
local new_poses = grow_mycelium(pos, "df_primordial_items:giant_hypha_apical_mapgen")
|
||||
if new_poses then -- if we hit the end of the world, just stop. There'll be a mapgen meristem left here, the abm will re-trigger it when the player gets close.
|
||||
for _, new_pos in ipairs(new_poses) do
|
||||
table.insert(stack, new_pos)
|
||||
if not (df_farming and df_farming.kill_if_sunlit(pos)) then
|
||||
local new_poses = grow_mycelium(pos, "df_primordial_items:giant_hypha_apical_mapgen")
|
||||
if new_poses then -- if we hit the end of the world, just stop. There'll be a mapgen meristem left here, the abm will re-trigger it when the player gets close.
|
||||
for _, new_pos in ipairs(new_poses) do
|
||||
table.insert(stack, new_pos)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -105,14 +105,21 @@ minetest.register_node("df_primordial_items:jungle_mushroom_sapling", {
|
||||
sunlight_propagates = true,
|
||||
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(
|
||||
math.random(
|
||||
df_trees.config.nether_cap_delay_multiplier*df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.nether_cap_delay_multiplier*df_trees.config.tree_max_growth_delay)
|
||||
)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
|
||||
on_timer = function(pos)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
minetest.set_node(pos, {name="air"})
|
||||
df_primordial_items.spawn_jungle_mushroom(pos)
|
||||
end,
|
||||
|
@ -17,7 +17,8 @@ minetest.register_node("df_primordial_items:fern_1", {
|
||||
tiles = {"dfcaverns_jungle_fern_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_fern_01.png",
|
||||
wield_image = "dfcaverns_jungle_fern_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
visual_scale = 1.69,
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
@ -37,7 +38,8 @@ minetest.register_node("df_primordial_items:fern_2", {
|
||||
visual_scale = 1.69,
|
||||
inventory_image = "dfcaverns_jungle_fern_02.png",
|
||||
wield_image = "dfcaverns_jungle_fern_02.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -58,7 +60,8 @@ minetest.register_node("df_primordial_items:glow_plant_1", {
|
||||
tiles = {"dfcaverns_jungle_flower_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_flower_01.png",
|
||||
wield_image = "dfcaverns_jungle_flower_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -77,7 +80,8 @@ minetest.register_node("df_primordial_items:glow_plant_2", {
|
||||
tiles = {"dfcaverns_jungle_glow_plant_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_glow_plant_01.png",
|
||||
wield_image = "dfcaverns_jungle_glow_plant_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -96,7 +100,8 @@ minetest.register_node("df_primordial_items:glow_plant_3", {
|
||||
tiles = {"dfcaverns_jungle_glow_plant_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_glow_plant_02.png",
|
||||
wield_image = "dfcaverns_jungle_glow_plant_02.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -119,7 +124,8 @@ minetest.register_node("df_primordial_items:jungle_grass_1", {
|
||||
tiles = {"dfcaverns_jungle_grass_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_01.png",
|
||||
wield_image = "dfcaverns_jungle_grass_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node ="default:dry_grass_3",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -137,7 +143,8 @@ minetest.register_node("df_primordial_items:jungle_grass_2", {
|
||||
tiles = {"dfcaverns_jungle_grass_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_02.png",
|
||||
wield_image = "dfcaverns_jungle_grass_02.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node ="default:dry_grass_4",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -156,7 +163,8 @@ minetest.register_node("df_primordial_items:jungle_grass_3", {
|
||||
tiles = {"dfcaverns_jungle_grass_03.png"},
|
||||
inventory_image = "dfcaverns_jungle_grass_03.png",
|
||||
wield_image = "dfcaverns_jungle_grass_03.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node ="default:dry_grass_4",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -203,10 +211,10 @@ minetest.register_node("df_primordial_items:jungle_mushroom_1", {
|
||||
description = S("Primordial Jungle Mushroom"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.small_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.small_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_01.png"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_01.png",
|
||||
wield_image = "dfcaverns_jungle_mushroom_01.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
tiles = {"dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a",
|
||||
wield_image = "dfcaverns_jungle_mushroom_01.png^[multiply:#f3df2a",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 11},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -218,13 +226,13 @@ minetest.register_node("df_primordial_items:jungle_mushroom_1", {
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:jungle_mushroom_2", {
|
||||
description = S("Primordial Jungle Mushroom"),
|
||||
description = S("Large Primordial Jungle Mushroom"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.small_mushroom_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.small_mushroom_usage,
|
||||
tiles = {"dfcaverns_jungle_mushroom_02.png"},
|
||||
inventory_image = "dfcaverns_jungle_mushroom_02.png",
|
||||
wield_image = "dfcaverns_jungle_mushroom_02.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, primordial_jungle_plant = 1, light_sensitive_fungus = 11},
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -243,7 +251,9 @@ minetest.register_node("df_primordial_items:dirt_with_jungle_grass", {
|
||||
_doc_items_longdesc = df_primordial_items.doc.dirt_with_jungle_grass_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.dirt_with_jungle_grass_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_grass_node_01.png"},
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dirt",
|
||||
is_ground_content = false,
|
||||
drops = "default:dirt",
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
@ -270,6 +280,7 @@ minetest.register_node("df_primordial_items:plant_matter", {
|
||||
_doc_items_usagehelp = df_primordial_items.doc.plant_matter_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_matter_01.png"},
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
groups = {crumbly = 3, soil = 1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
on_timer = function(pos)
|
||||
@ -279,6 +290,18 @@ minetest.register_node("df_primordial_items:plant_matter", {
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("df_primordial_items:packed_roots", {
|
||||
description = S("Packed Primordial Jungle Roots"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.packed_roots_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.packed_roots_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_packed_roots_01.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
|
||||
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.
|
||||
local HARDPACK_COUNT = minetest.settings:get("trail_hardpack_count") or 5 -- Number of times the above chance needs to be passed for soil to compact.
|
||||
@ -293,23 +316,12 @@ if minetest.get_modpath("trail") and trail and trail.register_trample_node then
|
||||
trail.register_trample_node("df_primordial_items:plant_matter", {
|
||||
trampled_node_def_override = {description = S("Primordial Plant Matter with Footprint"),},
|
||||
footprint_opacity = 128,
|
||||
hard_pack_node_name = "trail:trail",
|
||||
hard_pack_node_name = "df_primordial_items:packed_roots",
|
||||
hard_pack_probability = HARDPACK_PROBABILITY,
|
||||
hard_pack_count = HARDPACK_COUNT,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("df_primordial_items:packed_roots", {
|
||||
description = S("Packed Primordial Jungle Roots"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.packed_roots_desc,
|
||||
_doc_items_usagehelp = df_primordial_items.doc.packed_roots_usage,
|
||||
tiles = {"dfcaverns_jungle_plant_packed_roots_01.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "df_primordial_items:packed_roots",
|
||||
|
@ -217,10 +217,6 @@ df_primordial_items.spawn_jungle_tree_vm = function(height, vi, area, data)
|
||||
branch(vi + (height-1)*ystride) -- topper
|
||||
end
|
||||
|
||||
--TODO: separate setting
|
||||
local min_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_min_growth_delay")) or 240
|
||||
local max_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_max_growth_delay")) or 400
|
||||
|
||||
minetest.register_node("df_primordial_items:jungletree_sapling", {
|
||||
description = S("Primordial Jungle Tree Sapling"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.tree_desc,
|
||||
@ -228,7 +224,8 @@ minetest.register_node("df_primordial_items:jungletree_sapling", {
|
||||
tiles = {"dfcaverns_jungle_sapling.png"},
|
||||
inventory_image = "dfcaverns_jungle_sapling.png",
|
||||
wield_image = "dfcaverns_jungle_sapling.png",
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1},
|
||||
groups = {snappy = 3, flora = 1, attached_node = 1, flammable = 1, sapling = 1, light_sensitive_fungus = 13},
|
||||
_dfcaverns_dead_node = "default:dry_shrub",
|
||||
paramtype = "light",
|
||||
drawtype = "plantlike",
|
||||
buildable_to = true,
|
||||
@ -238,12 +235,24 @@ minetest.register_node("df_primordial_items:jungletree_sapling", {
|
||||
use_texture_alpha = true,
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay, max_growth_delay))
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
df_primordial_items.spawn_jungle_tree(pos)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
if minetest.get_node_light(pos) > 6 then
|
||||
df_primordial_items.spawn_jungle_tree(pos)
|
||||
else
|
||||
minetest.get_node_timer(pos):start(df_trees.config.tree_min_growth_delay)
|
||||
end
|
||||
end,
|
||||
})
|
@ -1,4 +1,4 @@
|
||||
name = df_primordial_items
|
||||
description = A collection of flora found in the "primordial" cavern layer of DF Caverns
|
||||
depends = default, mapgen_helper, subterrane, df_underworld_items, df_trees
|
||||
optional_depends = trail
|
||||
optional_depends = trail, df_farming
|
@ -684,10 +684,6 @@ df_primordial_items.get_primordial_mushroom = function()
|
||||
return bc_mushroom_21
|
||||
end
|
||||
|
||||
--TODO: separate setting
|
||||
local min_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_min_growth_delay")) or 240
|
||||
local max_growth_delay = tonumber(minetest.settings:get("dfcaverns_mycelium_max_growth_delay")) or 400
|
||||
|
||||
minetest.register_node("df_primordial_items:mush_sapling", {
|
||||
description = S("Primordial Mushroom Spawn"),
|
||||
_doc_items_longdesc = df_primordial_items.doc.giant_mushroom_desc,
|
||||
@ -705,12 +701,20 @@ minetest.register_node("df_primordial_items:mush_sapling", {
|
||||
use_texture_alpha = true,
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay, max_growth_delay))
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
on_timer = function(pos, elapsed)
|
||||
if df_farming and df_farming.kill_if_sunlit(pos) then
|
||||
return
|
||||
end
|
||||
local mushroom = df_primordial.get_primordial_mushroom()
|
||||
local rotation = (math.random(1,4)-1)*90
|
||||
minetest.set_node(pos, {name="air"}) -- clear sapling so mushroom can replace it
|
||||
|
@ -1,2 +1,5 @@
|
||||
dfcaverns_mycelium_min_growth_delay (Minimum mycelium growth delay) int 240
|
||||
dfcaverns_mycelium_max_growth_delay (Maximum mycelium growth delay) int 400
|
||||
dfcaverns_mycelium_max_growth_delay (Maximum mycelium growth delay) int 400
|
||||
|
||||
dfcaverns_jungle_min_growth_delay (Minimum growth delay for large jungle plants) int 300
|
||||
dfcaverns_jungle_max_growth_delay (Maximum growth delay for large jungle plants) int 1500
|
||||
|
Reference in New Issue
Block a user