mirror of
https://github.com/FaceDeer/dfcaverns.git
synced 2025-07-13 05:50:29 +02:00
initial work for restricted plant growth. split out growth conditions for trees, and reworked torchspine to not use ABMs while I was at it.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
---------------------------------------------------------------------------------------
|
||||
-- Glownode and stalk
|
||||
|
@ -2,7 +2,7 @@ if not minetest.get_modpath("doc") then
|
||||
return
|
||||
end
|
||||
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
df_primordial_items.doc.big_mushroom_desc = S("Compared to the behemoths found elsewhere in the deep places of the world, the giant mushrooms of the primordial jungles are on the smaller side - often overwhelmed by the green plants that grow in the mysterious light below. Still, they can become substantial resources.")
|
||||
df_primordial_items.doc.big_mushroom_usage = S("The soft flesh of these large mushrooms is much less woody than other giant mushrooms, making it ill-suited to structural use. This makes it rather more nutritious, however.")
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_craftitem("df_primordial_items:primordial_fruit", {
|
||||
description = S("Primordial Fruit"),
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-----------------------------------------------------------------------------------------------
|
||||
-- Plants
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
------------------------------------------------------------------------------------
|
||||
-- Nodes
|
||||
@ -307,12 +307,11 @@ minetest.register_node("df_primordial_items:fern_sapling", {
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
if df_primordial_items.giant_fern_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
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()
|
||||
|
@ -1,6 +1,6 @@
|
||||
-- This file defines a type of root-like growth that spreads over the surface of the ground in a random web-like pattern
|
||||
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- hub_thickness -- the bit in the middle that's seen at the ends and corners of long hypha runs
|
||||
-- connector_thickness
|
||||
@ -320,7 +320,9 @@ minetest.register_node("df_primordial_items:giant_hypha_apical_meristem", {
|
||||
_dfcaverns_dead_node = "df_primordial_items:giant_hypha_root",
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
on_construct = function(pos)
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay, max_growth_delay))
|
||||
if df_primordial_items.giant_mycelium_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(min_growth_delay, max_growth_delay))
|
||||
end
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
|
@ -2,7 +2,6 @@ df_primordial_items = {}
|
||||
df_primordial_items.doc = {}
|
||||
|
||||
local modname = minetest.get_current_modname()
|
||||
df_primordial_items.S = minetest.get_translator(modname)
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
dofile(modpath.."/dependencies.lua")
|
||||
@ -15,4 +14,5 @@ dofile(modpath.."/fungal_nodes.lua")
|
||||
dofile(modpath.."/ceiling_fungus.lua")
|
||||
dofile(modpath.."/primordial_mushroom.lua")
|
||||
dofile(modpath.."/giant_mycelium.lua")
|
||||
dofile(modpath.."/edibles.lua")
|
||||
dofile(modpath.."/edibles.lua")
|
||||
dofile(modpath.."/sapling_growth_conditions.lua")
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
------------------------------------------------------------------------------------------
|
||||
-- Big jungle mushroom
|
||||
@ -109,12 +109,11 @@ minetest.register_node("df_primordial_items:jungle_mushroom_sapling", {
|
||||
sunlight_propagates = true,
|
||||
|
||||
on_construct = function(pos)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
if df_primordial_items.jungle_mushroom_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
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()
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
----------------------------------------------------
|
||||
-- Ferns
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
-- Leaves
|
||||
minetest.register_node("df_primordial_items:jungle_leaves", {
|
||||
@ -237,12 +237,11 @@ minetest.register_node("df_primordial_items:jungletree_sapling", {
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
if df_primordial_items.jungletree_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
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()
|
||||
|
@ -1,4 +1,4 @@
|
||||
local S = df_primordial_items.S
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
minetest.register_node("df_primordial_items:mushroom_trunk", {
|
||||
description = S("Primordial Mushroom Trunk"),
|
||||
@ -750,12 +750,11 @@ minetest.register_node("df_primordial_items:mush_sapling", {
|
||||
use_texture_alpha = "clip",
|
||||
sunlight_propagates = true,
|
||||
on_construct = function(pos)
|
||||
if minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") == 0 then
|
||||
return
|
||||
if df_primordial_items.primordial_mushroom_growth_permitted(pos) then
|
||||
minetest.get_node_timer(pos):start(math.random(
|
||||
df_trees.config.tree_min_growth_delay,
|
||||
df_trees.config.tree_max_growth_delay))
|
||||
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()
|
||||
|
22
df_primordial_items/sapling_growth_conditions.lua
Normal file
22
df_primordial_items/sapling_growth_conditions.lua
Normal file
@ -0,0 +1,22 @@
|
||||
-- these methods should indicate whether a sapling placed at pos should bother attempting to grow.
|
||||
-- check soil conditions and biome here, for example.
|
||||
|
||||
df_primordial_items.giant_fern_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.giant_mycelium_growth_permitted = function(pos)
|
||||
return true
|
||||
end
|
||||
|
||||
df_primordial_items.jungle_mushroom_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.jungletree_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
||||
|
||||
df_primordial_items.primordial_mushroom_growth_permitted = function(pos)
|
||||
return minetest.get_item_group(minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name, "soil") > 0
|
||||
end
|
Reference in New Issue
Block a user