Squashed commit of the following:

commit 0a61781b99
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Mon Aug 1 14:50:07 2022 -0600

    add an additional check to ensure old timers don't cause inappropriate growth

commit 1d7b6010c3
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Mon Aug 1 13:21:29 2022 -0600

    stop timers when seeds are picked up

commit c8fa25ccd7
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Mon Aug 1 13:05:24 2022 -0600

    fix replacements for dwarven syrup taffy recipe

commit 4de45bb6d7
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Mon Aug 1 11:09:48 2022 -0600

    account for some additional mod dependencies

commit 83ea06bbaa
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Mon Aug 1 11:09:14 2022 -0600

    update cooking recipes to be more specific.

commit 302da3ec51
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Fri Jul 29 17:12:59 2022 -0600

    add location logging for debugging purposes

commit 11667e184e
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Sun Jul 24 16:54:21 2022 -0600

    add checks for submods being present

    the df_trees and df_farming checks are likely redundant, but if primordial layers are disabled someone might not have df_primordial_items installed.

commit 5906308d87
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Sun Jul 24 16:49:23 2022 -0600

    add config settings for biome restrictions, vastly reduce copy and paste in code

commit e52820c282
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Sat Jul 23 20:45:26 2022 -0600

    add initial stab at growing conditions - biome restrictions for trees

commit 7b99556df9
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Sat Jul 23 12:08:41 2022 -0600

    adding biome API. Not yet tested.

commit bf82b3b3fe
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Fri Jul 22 21:22:37 2022 -0600

    added stubs for growth permission for farming plants

commit 46765df3ef
Author: FaceDeer <derksenmobile@gmail.com>
Date:   Fri Jul 22 18:36:45 2022 -0600

    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:
FaceDeer
2022-08-01 14:55:46 -06:00
parent f23d4115bd
commit dbc5dd38a3
58 changed files with 725 additions and 344 deletions

View File

@ -1,4 +1,4 @@
local S = df_primordial_items.S
local S = minetest.get_translator(minetest.get_current_modname())
---------------------------------------------------------------------------------------
-- Glownode and stalk

View File

@ -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.")

View File

@ -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"),

View File

@ -1,4 +1,4 @@
local S = df_primordial_items.S
local S = minetest.get_translator(minetest.get_current_modname())
-----------------------------------------------------------------------------------------------
-- Plants

View File

@ -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()

View File

@ -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()

View File

@ -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")

View File

@ -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()

View File

@ -1,4 +1,4 @@
local S = df_primordial_items.S
local S = minetest.get_translator(minetest.get_current_modname())
----------------------------------------------------
-- Ferns

View File

@ -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()

View File

@ -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()

View 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