mirror of
https://github.com/FaceDeer/dfcaverns.git
synced 2025-07-14 14:30:25 +02:00
future-proofing leaf decay
This commit is contained in:
@ -34,15 +34,23 @@ minetest.register_node("dfcaverns:black_cap_gills", {
|
||||
items = {
|
||||
{
|
||||
items = {'dfcaverns:black_cap_sapling'},
|
||||
rarity = 10,
|
||||
rarity = 5,
|
||||
},
|
||||
{
|
||||
items = {'dfcaverns:black_cap_gills'},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:black_cap"}, -- don't need stem nodes here
|
||||
leaves = {"dfcaverns:black_cap_gills"},
|
||||
radius = 1,
|
||||
})
|
||||
end
|
||||
|
||||
-- Wood
|
||||
minetest.register_craft({
|
||||
|
@ -10,8 +10,26 @@
|
||||
local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
local spike_directions = {
|
||||
{dir={x=0,y=0,z=1}, facedir=2},
|
||||
{dir={x=0,y=0,z=-1}, facedir=0},
|
||||
{dir={x=1,y=0,z=0}, facedir=3},
|
||||
{dir={x=-1,y=0,z=0}, facedir=1}
|
||||
}
|
||||
local spikes = {["dfcaverns:blood_thorn_spike"] = true, ["dfcaverns:blood_thorn_spike_dead"] = true}
|
||||
|
||||
local blood_thorn_after_dig = function(pos, oldnode, oldmetadata, digger)
|
||||
for _, spike_dir in pairs(spike_directions) do
|
||||
local loc = vector.add(pos,spike_dir.dir)
|
||||
local node = minetest.get_node(loc)
|
||||
if spikes[node.name] and spike_dir.facedir == node.param2 then
|
||||
minetest.node_dig(loc, node, digger)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("dfcaverns:blood_thorn", {
|
||||
description = S("Blood Thorn Trunk"),
|
||||
description = S("Blood Thorn Stem"),
|
||||
tiles = {"dfcaverns_blood_thorn_top.png", "dfcaverns_blood_thorn_top.png",
|
||||
"dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png"},
|
||||
paramtype2 = "facedir",
|
||||
@ -20,16 +38,18 @@ minetest.register_node("dfcaverns:blood_thorn", {
|
||||
_dfcaverns_dead_node = "dfcaverns:blood_thorn_dead",
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
after_dig_node = blood_thorn_after_dig,
|
||||
})
|
||||
|
||||
minetest.register_node("dfcaverns:blood_thorn_dead", {
|
||||
description = S("Dead Blood Thorn Trunk"),
|
||||
description = S("Dead Blood Thorn Stem"),
|
||||
tiles = {"dfcaverns_blood_thorn_top.png^[multiply:#804000", "dfcaverns_blood_thorn_top.png^[multiply:#804000",
|
||||
"dfcaverns_blood_thorn_side.png^[multiply:#804000"},
|
||||
paramtype2 = "facedir",
|
||||
groups = {choppy = 3, flammable = 2},
|
||||
sounds = default.node_sound_wood_defaults(),
|
||||
on_place = minetest.rotate_node,
|
||||
after_dig_node = blood_thorn_after_dig,
|
||||
})
|
||||
|
||||
minetest.register_node("dfcaverns:blood_thorn_spike", {
|
||||
@ -132,13 +152,6 @@ minetest.register_craft({
|
||||
burntime = 5,
|
||||
})
|
||||
|
||||
local spike_directions = {
|
||||
{dir={x=0,y=0,z=1}, facedir=2},
|
||||
{dir={x=0,y=0,z=-1}, facedir=0},
|
||||
{dir={x=1,y=0,z=0}, facedir=3},
|
||||
{dir={x=-1,y=0,z=0}, facedir=1}
|
||||
}
|
||||
|
||||
-- This ensures consistent random maximum to bloodthorn growth
|
||||
local max_bloodthorn_height = function(pos)
|
||||
local next_seed = math.random(1, 1000000000)
|
||||
|
@ -10,7 +10,7 @@ local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
minetest.register_node("dfcaverns:fungiwood", {
|
||||
description = S("Fungiwood Trunk"),
|
||||
description = S("Fungiwood Stem"),
|
||||
tiles = {"dfcaverns_fungiwood.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
@ -79,7 +79,7 @@ minetest.register_node("dfcaverns:fungiwood_shelf",{
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{items = {"dfcaverns:fungiwood_sapling"}, rarity = 20},
|
||||
{items = {"dfcaverns:fungiwood_sapling"}, rarity = 10},
|
||||
{items = {"dfcaverns:fungiwood_shelf"}}
|
||||
}
|
||||
},
|
||||
@ -88,6 +88,13 @@ minetest.register_node("dfcaverns:fungiwood_shelf",{
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:fungiwood"},
|
||||
leaves = {"dfcaverns:fungiwood_shelf"},
|
||||
radius = 5,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("dfcaverns:fungiwood_sapling", {
|
||||
description = S("Fungiwood Spawn"),
|
||||
|
@ -41,8 +41,17 @@ minetest.register_node("dfcaverns:goblin_cap_gills", {
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:goblin_cap"}, -- don't need stem nodes here
|
||||
leaves = {"dfcaverns:goblin_cap_gills"},
|
||||
radius = 1,
|
||||
})
|
||||
end
|
||||
|
||||
--Wood
|
||||
minetest.register_craft({
|
||||
output = 'dfcaverns:goblin_cap_wood 4',
|
||||
|
@ -34,15 +34,24 @@ minetest.register_node("dfcaverns:nether_cap_gills", {
|
||||
items = {
|
||||
{
|
||||
items = {'dfcaverns:nether_cap_sapling'},
|
||||
rarity = 10,
|
||||
rarity = 5,
|
||||
},
|
||||
{
|
||||
items = {'dfcaverns:nether_cap_gills'},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:nether_cap"}, -- don't need stem nodes here
|
||||
leaves = {"dfcaverns:nether_cap_gills"},
|
||||
radius = 1,
|
||||
})
|
||||
end
|
||||
|
||||
--Wood
|
||||
minetest.register_craft({
|
||||
output = 'dfcaverns:nether_cap_wood 4',
|
||||
|
@ -11,7 +11,7 @@ local MP = minetest.get_modpath(minetest.get_current_modname())
|
||||
local S, NS = dofile(MP.."/intllib.lua")
|
||||
|
||||
minetest.register_node("dfcaverns:spore_tree", {
|
||||
description = S("Spore Tree"),
|
||||
description = S("Spore Tree Stem"),
|
||||
tiles = {"dfcaverns_spore_tree_top.png", "dfcaverns_spore_tree_top.png", "dfcaverns_spore_tree.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
@ -52,12 +52,12 @@ minetest.register_craft({
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dfcaverns:spore_tree_frond",
|
||||
recipe = "dfcaverns:spore_tree_hyphae",
|
||||
burntime = 1,
|
||||
})
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = "dfcaverns:spore_tree_pod",
|
||||
recipe = "dfcaverns:spore_tree_fruiting_body",
|
||||
burntime = 1,
|
||||
})
|
||||
minetest.register_craft({
|
||||
@ -66,8 +66,8 @@ minetest.register_craft({
|
||||
burntime = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("dfcaverns:spore_tree_frond", {
|
||||
description = S("Spore Tree Frond"),
|
||||
minetest.register_node("dfcaverns:spore_tree_hyphae", {
|
||||
description = S("Spore Tree Hyphae"),
|
||||
waving = 1,
|
||||
tiles = {"dfcaverns_spore_tree.png"},
|
||||
is_ground_content = false,
|
||||
@ -90,7 +90,7 @@ minetest.register_node("dfcaverns:spore_tree_frond", {
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
minetest.register_node("dfcaverns:spore_tree_pod", {
|
||||
minetest.register_node("dfcaverns:spore_tree_fruiting_body", {
|
||||
description = S("Spore Tree Fruiting Body"),
|
||||
waving = 1,
|
||||
tiles = {"dfcaverns_spore_tree.png"},
|
||||
@ -119,7 +119,7 @@ minetest.register_node("dfcaverns:spore_tree_pod", {
|
||||
rarity = 10,
|
||||
},
|
||||
{
|
||||
items = {'dfcaverns:spore_tree_frond'},
|
||||
items = {'dfcaverns:spore_tree_hyphae'},
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -128,6 +128,13 @@ minetest.register_node("dfcaverns:spore_tree_pod", {
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:spore_tree"},
|
||||
leaves = {"dfcaverns:spore_tree_hyphae", "dfcaverns:spore_tree_fruiting_body"},
|
||||
radius = 3,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("dfcaverns:spore_tree_sapling", {
|
||||
description = S("Spore Tree Spawn"),
|
||||
@ -159,26 +166,11 @@ minetest.register_node("dfcaverns:spore_tree_sapling", {
|
||||
end,
|
||||
})
|
||||
|
||||
--fcaverns.spore_tree_def={
|
||||
-- axiom="TTdddA",
|
||||
-- rules_a="[&&&Tdd&&FF][&&&++++Tdd&&FF][&&&----Tdd&&FF]",
|
||||
-- rules_d="T",
|
||||
-- trunk="dfcaverns:spore_tree",
|
||||
-- leaves="dfcaverns:spore_tree_frond",
|
||||
-- leaves2="dfcaverns:spore_tree_pod",
|
||||
-- leaves2_chance=30,
|
||||
-- angle=30,
|
||||
-- iterations=2,
|
||||
-- random_level=0,
|
||||
-- trunk_type="single",
|
||||
-- thin_branches=true,
|
||||
--}
|
||||
|
||||
local c_air = minetest.get_content_id("air")
|
||||
local c_ignore = minetest.get_content_id("ignore")
|
||||
local c_spore_pod = minetest.get_content_id("dfcaverns:spore_tree_pod")
|
||||
local c_spore_pod = minetest.get_content_id("dfcaverns:spore_tree_fruiting_body")
|
||||
local c_tree = minetest.get_content_id("dfcaverns:spore_tree")
|
||||
local c_spore_frond = minetest.get_content_id("dfcaverns:spore_tree_frond")
|
||||
local c_spore_frond = minetest.get_content_id("dfcaverns:spore_tree_hyphae")
|
||||
|
||||
dfcaverns.spawn_spore_tree_vm = function(vi, area, data, height, size, iters, has_fruiting_bodies)
|
||||
if height == nil then height = math.random(3,6) end
|
||||
@ -262,7 +254,7 @@ end
|
||||
|
||||
minetest.register_abm{
|
||||
label = "spore tree raining spores",
|
||||
nodenames = {"dfcaverns:spore_tree_pod"},
|
||||
nodenames = {"dfcaverns:spore_tree_fruiting_body"},
|
||||
interval = 1,
|
||||
chance = 30,
|
||||
catch_up = false,
|
||||
|
@ -34,15 +34,24 @@ minetest.register_node("dfcaverns:tower_cap_gills", {
|
||||
items = {
|
||||
{
|
||||
items = {'dfcaverns:tower_cap_sapling'},
|
||||
rarity = 20,
|
||||
rarity = 5,
|
||||
},
|
||||
{
|
||||
items = {'dfcaverns:tower_cap_gills'},
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = default.after_place_leaves,
|
||||
})
|
||||
|
||||
if default.register_leafdecay then -- default.register_leafdecay is very new, remove this check some time after 0.4.16 is released
|
||||
default.register_leafdecay({
|
||||
trunks = {"dfcaverns:tower_cap"}, -- don't need stem nodes here
|
||||
leaves = {"dfcaverns:tower_cap_gills"},
|
||||
radius = 1,
|
||||
})
|
||||
end
|
||||
|
||||
--Wood
|
||||
minetest.register_craft({
|
||||
output = 'dfcaverns:tower_cap_wood 4',
|
||||
|
Reference in New Issue
Block a user