mirror of
https://github.com/FaceDeer/dfcaverns.git
synced 2025-06-28 22:46:26 +02:00
Mineclone compatibility (#36)
* latest versions of mapgen_helper and subterrane * initial work * call it "minetest_game" compatibility instead of "default" compatibility * Getting started on moving all default dependencies to a single root mod * distilling out more dependencies * fix some typos * more default dependencies * beds * start getting some MCL equivalents set up * mine gas dependencies * reorganize * add some mapgen stuff * getting close to actually being able to run mineclone with this * it actually runs! Crashes with out-of-memory error when you try to go below -64, but it's a start. * hide flowing pit plasma from creative inventory * mineclone 5 settings * Update subterrane * get rid of meselamp dependency, bring in ancient lanterns from deep roads * stair dependencies * add mcl fences * add mcl blast resistance and hardness to everything. Also an alternate name for Nethercap in MCL, since "nether" has another meaning there. * buckets of oil and syrup should work in mineclone now * 'splosions! * make hunters avoid repaired ancient lanterns * mapgen torchspine wasn't having its timer set * split mapgen compatibility code into its own file * bypass dependency indirection for df_farming. * apply threshold alpha to food items, they look better that way * bypass dependency indirection for df_mapitems * bypass dependency indirection for df_primordial_items * bypass dependency indirection for df_trees * bypass dependency indirection for df_underworld_items * bypass dependency indirection for df_caverns * fixing up the puzzle seal to work in both * fix puzzle seal formspec for mcl * create built-in substitutes for fireflies and bones mods for when those aren't available * set up mcl dungeon loot for underworld warriors, port over some translations from default * overlooked a debug * add itemslot backgrounds for mcl * added mineclone groups to all registered nodes. TODO: craftitems. This was extremely tedious. Completely untested, aside from simply running the game. * minor fixes to the built-in bones node * eatable group for edibles * clean up some TODOs * adjust pit plasma abm conditions * add df_ambience * fixing up explosions. Also make slade sand diggable in mcl, and fix a bug in web generators * make tower cap caves less chirpy, fix bigger goblin hut schematic, allow glowing spindlestem extract bottles * avoid an undeclared global check * alas, cave pearls aren't set up right for attached_node_facedir. * bunch of work on mineclone ores, moved main config into df_dependencies * add a few more ores * update depends in mod.conf * add opaque group to light-sensitive dirt types Mineclone adds the "opaque" group only to non-light nodes, and torches check for the opaque group to decide whether they can be placed there. light-sensitive nodes need the "light" paramtype to work, though. So adding the opaque group manually to these. * add a touch of reverb to one of the whisper tracks, it didn't fit with the others without it * bloodthorn also needs to be set opaque * add sound to torchspines * isolate Nethercap translation name to make it easier to swap out in Mineclone contexts * ambience tweak * fix dirt spreads https://github.com/FaceDeer/dfcaverns/issues/35 * adding achievements! Almost all untested yet. * fix a few achievements glitches * tweak some more achievements, add delay when achievements unlock other achievements * fix farming achievements, fix spindlestem callbacks on place * icons for farming achievements * more achievement icons, fix ancient lantern achievement * two more icons, update text * add icons for upper cavern layers * all achievements have icons now. Also add another sound to the magma sea ambience * hook into awards' trigger system to get "x/y" progress displayed for the multi-achievement achievements * ironically, Mineclone has an old version of awards that is incompatible with my trigger work. * every award should now have a description and a difficulty. * removing leftovers * missing callbacks for farmables * put growth restrictions on farmables so the achievement doesn't trigger inappropriately. * enable ores in MCL2, fix some undeclared globals, fix icecap growth in MCL (achievements are a good debugging tool) * get *all* the copper and iron containing nodes * fix old awards mod's handling of grouped dig items * Add a little bonus for players who activate a slade breacher - a handheld 'splosion tool * used the wrong drop method * beef up explosions in MCL, make slade brick craftable from slade sand and lava * better creative mode checks, fix crash when digging walls in MCL * Update subterrane * various bugfixes and tweaks * whipping up a simple puzzle chest to give a clue about ancient numbering The coding is done, but UI and a node mesh need to be done * prepare for some art tomorrow * chest node and sounds * images for the combination dials * add puzzle chests to the underworld buildings * update translations * oops, can't initialize the contents of puzzle chests every time or players get endless stuff * add backgrounds to item slots in MCL * wrap the existing function rather than copy and pasting it * fix bucket dependency in cooking recipes * add _mcl_saturation to edibles
This commit is contained in:
@ -7,8 +7,10 @@ minetest.register_node("df_trees:black_cap_stem", {
|
||||
_doc_items_usagehelp = df_trees.doc.black_cap_usage,
|
||||
tiles = {"dfcaverns_black_cap_top.png","dfcaverns_black_cap_top.png","dfcaverns_black_cap_side.png",},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 5,
|
||||
})
|
||||
|
||||
--cap
|
||||
@ -18,8 +20,10 @@ minetest.register_node("df_trees:black_cap", {
|
||||
_doc_items_usagehelp = df_trees.doc.black_cap_usage,
|
||||
tiles = {"dfcaverns_black_cap_top.png","dfcaverns_black_cap_top.png","dfcaverns_black_cap_side.png^[transformR90",},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 5,
|
||||
})
|
||||
|
||||
--gills
|
||||
@ -29,8 +33,8 @@ minetest.register_node("df_trees:black_cap_gills", {
|
||||
_doc_items_usagehelp = df_trees.doc.black_cap_usage,
|
||||
tiles = {"dfcaverns_black_cap_gills.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
groups = {snappy = 3, leafdecay = 1, flammable = 2, leaves = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
drop = {
|
||||
@ -45,10 +49,13 @@ minetest.register_node("df_trees:black_cap_gills", {
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:black_cap"}, -- don't need stem nodes here
|
||||
leaves = {"df_trees:black_cap_gills"},
|
||||
radius = 1,
|
||||
@ -70,7 +77,7 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = df_trees.node_names.torch .. ' 8',
|
||||
output = df_dependencies.node_name_torch .. ' 8',
|
||||
recipe = {
|
||||
{'df_trees:black_cap_gills'},
|
||||
{'group:stick'},
|
||||
@ -94,12 +101,13 @@ minetest.register_node("df_trees:black_cap_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_black_cap_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 5,
|
||||
_mcl_hardness = 5,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("black_cap_wood")
|
||||
df_trees.register.all_fences("black_cap_wood", {burntime = 30})
|
||||
df_dependencies.register_all_stairs_and_fences("black_cap_wood", {burntime = 30})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -147,8 +155,10 @@ minetest.register_node("df_trees:black_cap_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.black_cap_growth_permitted(pos) then
|
||||
|
@ -37,14 +37,19 @@ minetest.register_node("df_trees:blood_thorn", {
|
||||
"dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png", "dfcaverns_blood_thorn_side.png"},
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
groups = {choppy = 3, tree = 1, flammable = 2, light_sensitive_fungus = 11},
|
||||
groups = {choppy = 3, tree = 1, flammable = 2, light_sensitive_fungus = 11, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5, opaque=1},
|
||||
_dfcaverns_dead_node = "df_trees:blood_thorn_dead",
|
||||
sounds = df_trees.sounds.wood,
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
after_dig_node = blood_thorn_after_dig,
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 1,
|
||||
|
||||
on_construct = function(pos)
|
||||
if not df_trees.blood_thorn_growth_permitted(pos) then
|
||||
return
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(blood_thorn_min_delay, blood_thorn_max_delay))
|
||||
end,
|
||||
on_destruct = function(pos)
|
||||
@ -82,11 +87,13 @@ minetest.register_node("df_trees:blood_thorn_dead", {
|
||||
"dfcaverns_blood_thorn_side.png^[multiply:#804000"},
|
||||
paramtype2 = "facedir",
|
||||
paramtype = "light",
|
||||
groups = {choppy = 3, tree = 1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, tree = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
is_ground_content = false,
|
||||
on_place = minetest.rotate_node,
|
||||
after_dig_node = blood_thorn_after_dig,
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:blood_thorn_spike", {
|
||||
@ -101,9 +108,9 @@ minetest.register_node("df_trees:blood_thorn_spike", {
|
||||
"dfcaverns_blood_thorn_spike_front.png",
|
||||
"dfcaverns_blood_thorn_spike_front.png"
|
||||
},
|
||||
groups = {choppy = 3, flammable = 2, fall_damage_add_percent=100, light_sensitive_fungus = 11},
|
||||
groups = {choppy = 3, flammable = 2, fall_damage_add_percent=100, light_sensitive_fungus = 11, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
_dfcaverns_dead_node = "df_trees:blood_thorn_spike_dead",
|
||||
sounds = df_trees.sounds.wood,
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
drawtype = "nodebox",
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
@ -118,6 +125,8 @@ minetest.register_node("df_trees:blood_thorn_spike", {
|
||||
{-0.0625, -0.0625, -0.5, 0.0625, 0.0625, -0.125}, -- tip
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:blood_thorn_spike_dead", {
|
||||
@ -132,8 +141,8 @@ minetest.register_node("df_trees:blood_thorn_spike_dead", {
|
||||
"dfcaverns_blood_thorn_spike_front.png^[multiply:#804000",
|
||||
"dfcaverns_blood_thorn_spike_front.png^[multiply:#804000"
|
||||
},
|
||||
groups = {choppy = 3, flammable = 2, fall_damage_add_percent=100},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, flammable = 2, fall_damage_add_percent=100, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
drawtype = "nodebox",
|
||||
climbable = true,
|
||||
is_ground_content = false,
|
||||
@ -147,6 +156,8 @@ minetest.register_node("df_trees:blood_thorn_spike_dead", {
|
||||
{-0.0625, -0.0625, -0.5, 0.0625, 0.0625, -0.125}, -- tip
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 0.8,
|
||||
})
|
||||
|
||||
|
||||
@ -172,12 +183,13 @@ minetest.register_node("df_trees:blood_thorn_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_blood_thorn_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("blood_thorn_wood")
|
||||
df_trees.register.all_fences("blood_thorn_wood", {burntime = 40})
|
||||
df_dependencies.register_all_stairs_and_fences("blood_thorn_wood", {burntime = 40})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -225,10 +237,6 @@ function df_trees.grow_blood_thorn(pos, node)
|
||||
return
|
||||
end
|
||||
|
||||
if not df_trees.blood_thorn_growth_permitted(pos) then
|
||||
return
|
||||
end
|
||||
|
||||
local height = 0
|
||||
local max_height = max_bloodthorn_height(pos)
|
||||
while node.name == "df_trees:blood_thorn" and height < max_height do
|
||||
|
@ -43,7 +43,8 @@ for _, tree in pairs(trees) do
|
||||
setting("float", tree.name.."_delay_multiplier", tree.delay_multiplier, tree.name.." growth delay multiplier")
|
||||
end
|
||||
|
||||
if minetest.get_modpath("tnt") then
|
||||
-- TODO: mineclone settings
|
||||
if df_dependencies.tnt_boom then
|
||||
df_trees.config.enable_tnt = minetest.settings:get_bool("enable_tnt")
|
||||
if df_trees.config.enable_tnt == nil then
|
||||
-- Default to enabled when in singleplayer
|
||||
|
@ -1,168 +0,0 @@
|
||||
-- Note that a circular table reference will result in a crash, TODO: guard against that.
|
||||
-- Unlikely to be needed, though - it'd take a lot of work for users to get into this bit of trouble.
|
||||
local function deep_copy(table_in)
|
||||
local table_out = {}
|
||||
|
||||
for index, value in pairs(table_in) do
|
||||
if type(value) == "table" then
|
||||
table_out[index] = deep_copy(value)
|
||||
else
|
||||
table_out[index] = value
|
||||
end
|
||||
end
|
||||
return table_out
|
||||
end
|
||||
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
df_trees.sounds = {}
|
||||
|
||||
df_trees.sounds.wood = default.node_sound_wood_defaults()
|
||||
df_trees.sounds.leaves = default.node_sound_leaves_defaults()
|
||||
df_trees.sounds.nethercap_wood = default.node_sound_wood_defaults({
|
||||
footstep = {name = "default_snow_footstep", gain = 0.2},
|
||||
})
|
||||
df_trees.sounds.glass = default.node_sound_glass_defaults()
|
||||
|
||||
df_trees.node_names = {}
|
||||
|
||||
df_trees.node_names.torch = "default:torch"
|
||||
df_trees.node_names.chest = "default:chest"
|
||||
df_trees.node_names.furnace = "default:furnace"
|
||||
df_trees.node_names.apple = "default:apple"
|
||||
df_trees.node_names.gold_ingot = "default:gold_ingot"
|
||||
df_trees.node_names.water_source = "default:water_source"
|
||||
df_trees.node_names.river_water_source = "default:river_water_source"
|
||||
df_trees.node_names.ice = "default:ice"
|
||||
df_trees.node_names.water_flowing = "default:water_flowing"
|
||||
df_trees.node_names.river_water_flowing = "default:river_water_flowing"
|
||||
df_trees.node_names.snow = "default:snow"
|
||||
df_trees.node_names.torch_wall = "default:torch_wall"
|
||||
df_trees.node_names.stone_with_coal = "default:stone_with_coal"
|
||||
df_trees.node_names.coalblock = "default:coalblock"
|
||||
df_trees.node_names.paper = "default:paper"
|
||||
|
||||
|
||||
df_trees.textures = {}
|
||||
df_trees.textures.gold_block = "default_gold_block.png"
|
||||
|
||||
df_trees.register = {}
|
||||
|
||||
df_trees.register.all_stairs = function(name, override_def)
|
||||
local mod = minetest.get_current_modname()
|
||||
|
||||
local node_def = minetest.registered_nodes[mod..":"..name]
|
||||
override_def = override_def or {}
|
||||
|
||||
local node_copy = deep_copy(node_def)
|
||||
for index, value in pairs(override_def) do
|
||||
node_copy[index] = value
|
||||
end
|
||||
|
||||
if minetest.get_modpath("stairs") then
|
||||
stairs.register_stair_and_slab(
|
||||
name,
|
||||
mod ..":" .. name,
|
||||
node_copy.groups,
|
||||
node_copy.tiles,
|
||||
S("@1 Stair", node_copy.description),
|
||||
S("@1 Slab", node_copy.description),
|
||||
node_copy.sounds
|
||||
)
|
||||
end
|
||||
if minetest.get_modpath("moreblocks") then
|
||||
stairsplus:register_all(mod, name, mod..":"..name, node_copy)
|
||||
end
|
||||
end
|
||||
|
||||
df_trees.register.all_fences = function (name, override_def)
|
||||
local mod = minetest.get_current_modname()
|
||||
|
||||
local material = mod..":"..name
|
||||
local node_def = minetest.registered_nodes[material]
|
||||
override_def = override_def or {}
|
||||
|
||||
local burntime = override_def.burntime
|
||||
|
||||
default.register_fence(material .. "_fence", {
|
||||
description = S("@1 Fence", node_def.description),
|
||||
texture = override_def.texture or node_def.tiles[1],
|
||||
material = override_def.material or material,
|
||||
groups = deep_copy(node_def.groups or {}), -- the default register_fence function modifies the groups table passed in, so send a copy instead to be on the safe side.
|
||||
sounds = node_def.sounds
|
||||
})
|
||||
if burntime then
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = material .. "_fence",
|
||||
burntime = burntime, -- ignoring two sticks
|
||||
})
|
||||
end
|
||||
|
||||
default.register_fence_rail(material .. "_fence_rail", {
|
||||
description = S("@1 Fence Rail", node_def.description),
|
||||
texture = override_def.texture or node_def.tiles[1],
|
||||
material = override_def.material or material,
|
||||
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
|
||||
sounds = node_def.sounds
|
||||
})
|
||||
if burntime then
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = material .. "_fence_rail",
|
||||
burntime = burntime * 4/16,
|
||||
})
|
||||
end
|
||||
|
||||
default.register_mesepost(material .. "_mese_light", {
|
||||
description = S("@1 Mese Post Light", node_def.description),
|
||||
texture = override_def.texture or node_def.tiles[1],
|
||||
material = override_def.material or material,
|
||||
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
|
||||
sounds = node_def.sounds
|
||||
})
|
||||
|
||||
if minetest.get_modpath("doors") then
|
||||
doors.register_fencegate(material .. "_fence_gate", {
|
||||
description = S("@1 Fence Gate", node_def.description),
|
||||
texture = override_def.texture or node_def.tiles[1],
|
||||
material = override_def.material or material,
|
||||
groups = deep_copy(node_def.groups or {}), -- the default register_fence_rail function modifies the groups table passed in, so send a copy instead to be on the safe side.
|
||||
sounds = node_def.sounds
|
||||
})
|
||||
|
||||
if burntime then
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
recipe = material .. "_fence_gate_closed",
|
||||
burntime = burntime * 2, -- ignoring four sticks
|
||||
})
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- this stuff is only for during initialization
|
||||
minetest.after(0, function()
|
||||
df_trees.sounds = nil
|
||||
df_trees.node_names = nil
|
||||
df_trees.textures = nil
|
||||
df_trees.register = nil
|
||||
end)
|
||||
|
||||
|
||||
df_trees.iron_containing_nodes = {"default:stone_with_iron", "default:steelblock"}
|
||||
df_trees.copper_containing_nodes = {"default:stone_with_copper", "default:copperblock"}
|
||||
df_trees.mese_containing_nodes = {"default:stone_with_mese", "default:mese"}
|
||||
|
||||
|
||||
df_trees.after_place_leaves = default.after_place_leaves
|
||||
df_trees.register_leafdecay = default.register_leafdecay
|
||||
|
||||
-- This is used by other mods, leave it exposed
|
||||
df_trees.node_sound_tree_soft_fungus_defaults = function(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "dfcaverns_fungus_footstep", gain = 0.3}
|
||||
default.node_sound_wood_defaults(table)
|
||||
return table
|
||||
end
|
@ -1,5 +1,7 @@
|
||||
df_trees.doc = {}
|
||||
|
||||
local nethercap_name = df_dependencies.nethercap_name
|
||||
|
||||
if not minetest.get_modpath("doc") then
|
||||
return
|
||||
end
|
||||
@ -21,8 +23,8 @@ df_trees.doc.fungiwood_usage = S("Fungiwood stalk is strong and very fine-graine
|
||||
df_trees.doc.goblin_cap_desc = S("Massive but squat, mature goblin cap mushrooms are the size of small cottages.")
|
||||
df_trees.doc.goblin_cap_usage = S("Goblin cap stem and cap material can be cut into wood of two different hues, a subdued cream and a bright orange-red.")
|
||||
|
||||
df_trees.doc.nether_cap_desc = S("Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.")
|
||||
df_trees.doc.nether_cap_usage = S("Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.")
|
||||
df_trees.doc.nether_cap_desc = S("@1 have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.", nethercap_name)
|
||||
df_trees.doc.nether_cap_usage = S("@1 wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living icecaps and is able to quickly freeze nearby water solid.", nethercap_name)
|
||||
|
||||
df_trees.doc.spore_tree_desc = S("Spore trees have a sturdy 'trunk' that supports a large spongy mesh of branching fibers, with embedded fruiting bodies that produce a copious amount of spores that gently rain down around the spore tree's base.")
|
||||
df_trees.doc.spore_tree_usage = S("Spore tree trunks can be cut into pale woody planks. The branching fibers and fruiting bodies are only useful as fuel.")
|
||||
|
@ -14,8 +14,10 @@ minetest.register_node("df_trees:fungiwood", {
|
||||
tiles = {"dfcaverns_fungiwood.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
on_place = minetest.rotate_node
|
||||
})
|
||||
@ -36,12 +38,13 @@ minetest.register_node("df_trees:fungiwood_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_fungiwood_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("fungiwood_wood")
|
||||
df_trees.register.all_fences("fungiwood_wood", {burntime = 7})
|
||||
df_dependencies.register_all_stairs_and_fences("fungiwood_wood", {burntime = 7})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -81,7 +84,7 @@ minetest.register_node("df_trees:fungiwood_shelf",{
|
||||
}
|
||||
},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
||||
groups = {snappy = 3, leafdecay = 5, flammable = 2, leaves = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
@ -89,12 +92,15 @@ minetest.register_node("df_trees:fungiwood_shelf",{
|
||||
{items = {"df_trees:fungiwood_shelf"}}
|
||||
}
|
||||
},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:fungiwood"},
|
||||
leaves = {"df_trees:fungiwood_shelf"},
|
||||
radius = 5,
|
||||
@ -119,8 +125,10 @@ minetest.register_node("df_trees:fungiwood_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.fungiwood_growth_permitted(pos) then
|
||||
|
@ -13,8 +13,10 @@ minetest.register_node("df_trees:goblin_cap_stem", {
|
||||
_doc_items_usagehelp = df_trees.doc.goblin_cap_usage,
|
||||
tiles = {"dfcaverns_goblin_cap_stem.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
--cap
|
||||
@ -24,8 +26,10 @@ minetest.register_node("df_trees:goblin_cap", {
|
||||
_doc_items_usagehelp = df_trees.doc.goblin_cap_usage,
|
||||
tiles = {"dfcaverns_goblin_cap.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, goblin_cap = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
--gills
|
||||
@ -35,8 +39,8 @@ minetest.register_node("df_trees:goblin_cap_gills", {
|
||||
_doc_items_usagehelp = df_trees.doc.goblin_cap_usage,
|
||||
tiles = {"dfcaverns_goblin_cap_gills.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, goblin_cap = 1},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
groups = {snappy = 3, leafdecay = 1, flammable = 2, leaves = 1, goblin_cap = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
drop = {
|
||||
@ -51,10 +55,13 @@ minetest.register_node("df_trees:goblin_cap_gills", {
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:goblin_cap"}, -- don't need stem nodes here
|
||||
leaves = {"df_trees:goblin_cap_gills"},
|
||||
radius = 1,
|
||||
@ -83,8 +90,10 @@ minetest.register_node("df_trees:goblin_cap_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_goblin_cap_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:goblin_cap_stem_wood", {
|
||||
@ -95,14 +104,14 @@ minetest.register_node("df_trees:goblin_cap_stem_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_goblin_cap_stem_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("goblin_cap_wood")
|
||||
df_trees.register.all_fences("goblin_cap_wood", {burntime = 12})
|
||||
df_trees.register.all_stairs("goblin_cap_stem_wood")
|
||||
df_trees.register.all_fences("goblin_cap_stem_wood", {burntime = 7})
|
||||
df_dependencies.register_all_stairs_and_fences("goblin_cap_wood", {burntime = 12})
|
||||
df_dependencies.register_all_stairs_and_fences("goblin_cap_stem_wood", {burntime = 7})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -141,10 +150,10 @@ local bigger_goblin_cap_schem = dofile(modpath.."/schematics/goblin_cap_bigger.l
|
||||
local bigger_goblin_cap_hut_schem = dofile(modpath.."/schematics/goblin_cap_bigger_hut.lua")
|
||||
|
||||
-- The hut has a chest and furnace near pos, use this to initialize it
|
||||
local chest_node = df_trees.node_names.chest
|
||||
local furnace_node = df_trees.node_names.furnace
|
||||
local gold_item = df_trees.node_names.gold_ingot
|
||||
local apple_item = df_trees.node_names.apple
|
||||
local chest_node = df_dependencies.node_name_chest
|
||||
local furnace_node = df_dependencies.node_name_furnace
|
||||
local gold_item = df_dependencies.node_name_gold_ingot
|
||||
local apple_item = df_dependencies.node_name_apple
|
||||
|
||||
local chest_on_construct = minetest.registered_items[chest_node].on_construct
|
||||
local furnace_on_construct = minetest.registered_items[furnace_node].on_construct
|
||||
@ -211,8 +220,10 @@ minetest.register_node("df_trees:goblin_cap_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.goblin_cap_growth_permitted(pos) then
|
||||
@ -248,23 +259,6 @@ local c_stem = minetest.get_content_id("df_trees:goblin_cap_stem")
|
||||
local c_cap = minetest.get_content_id("df_trees:goblin_cap")
|
||||
local c_gills = minetest.get_content_id("df_trees:goblin_cap_gills")
|
||||
|
||||
-- If the farming mod is installed, add the "straw" group to farming straw.
|
||||
-- This way we just need to check for group:straw to get cave straw as well, without
|
||||
-- needing a df_farming dependency for this mod.
|
||||
if minetest.get_modpath("farming") then
|
||||
local straw_def = minetest.registered_items["farming:straw"]
|
||||
if straw_def then
|
||||
local new_groups = {}
|
||||
for group, val in pairs(straw_def.groups) do
|
||||
new_groups[group] = val
|
||||
end
|
||||
new_groups.straw = 1
|
||||
minetest.override_item("farming:straw", {
|
||||
groups = new_groups
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
df_trees.spawn_goblin_cap = function(pos)
|
||||
if math.random() < 0.1 then
|
||||
if math.random() < 0.5 then
|
||||
|
@ -3,9 +3,17 @@ df_trees = {}
|
||||
local modname = minetest.get_current_modname()
|
||||
local modpath = minetest.get_modpath(modname)
|
||||
|
||||
-- This is used by other mods, leave it exposed
|
||||
df_trees.node_sound_tree_soft_fungus_defaults = function(table)
|
||||
table = table or {}
|
||||
table.footstep = table.footstep or
|
||||
{name = "dfcaverns_fungus_footstep", gain = 0.3}
|
||||
df_dependencies.sound_wood(table)
|
||||
return table
|
||||
end
|
||||
|
||||
--load companion lua files
|
||||
dofile(modpath.."/config.lua")
|
||||
dofile(modpath.."/dependencies.lua")
|
||||
dofile(modpath.."/doc.lua")
|
||||
dofile(modpath.."/aliases.lua")
|
||||
|
||||
|
@ -22,19 +22,12 @@ Blood Thorn Stem=Blutdornstamm
|
||||
Dead Blood Thorn Spike=
|
||||
Dead Blood Thorn Stem=
|
||||
|
||||
### dependencies.lua ###
|
||||
|
||||
@1 Fence=
|
||||
@1 Fence Gate=
|
||||
@1 Fence Rail=
|
||||
@1 Mese Post Light=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
@1 Slab=@1 Platte
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
@1 Stair=@1 Treppe
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
@1 have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=
|
||||
|
||||
@1 wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living icecaps and is able to quickly freeze nearby water solid.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A torchspine alternates between active and quiescent phases and emits dim light when active. They can be harvested for torches, and their embers sprout into new torchspines when placed on flammable surfaces.=Eine Fackel wechselt zwischen aktiver und ruhender Phase und gibt schwaches Licht ab, wenn sie aktiv ist. Sie können für Fackeln geerntet werden, und ihre Glut sprießt auf brennbaren Oberflächen zu neuen Fackelstacheln.
|
||||
|
||||
@ -74,12 +67,6 @@ Living extract from the cap of a yellow Spindlestem.=Lebender Extrakt aus der Ka
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Massive but squat, mature goblin cap mushrooms are the size of small cottages.=Massive, aber gedrungene, reife Koboldkappenpilze haben die Größe kleiner Hütten.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.=Netherkappenholz ist nicht nur ein wunderschöner blauer Farbton, sondern behält auch die seltsame Wärmeableitungsfähigkeit lebender Netherkappen bei und kann in der Nähe befindliche Wasserfeststoffe schnell einfrieren.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=Netherkappen haben eine ungewöhnliche Biochemie, die es ihnen ermöglicht, unter Verstoß gegen alle bekannten Gesetze der Thermodynamik von Umgebungswärme zu leben. Sie wachsen tief unter der Erde in kalten, eisigen Höhlen, die auf jeden Fall vulkanisch sein sollten.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Red Spindlestems are a sign of nearby iron deposits - or perhaps Goblin Caps. Their glowing symbiotes can be extracted as a long-lived light source, though the glow is weak.=Rote Spindelstämme sind ein Zeichen für nahegelegene Eisenvorkommen - oder vielleicht Goblin Caps. Ihre leuchtenden Symbioten können als langlebige Lichtquelle extrahiert werden, obwohl das Leuchten schwach ist.
|
||||
|
||||
@ -166,13 +153,10 @@ Goblin Cap Stem Planks=Goblin Cap Stem Planken
|
||||
|
||||
### nether_cap.lua ###
|
||||
|
||||
Nether Cap=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether Cap Gills=Nether Cap Kiemen
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether Cap Planks=Nether Cap Planken
|
||||
Nether Cap Spawn=
|
||||
Nether Cap Stem=
|
||||
@1 Gills=
|
||||
@1 Planks=
|
||||
@1 Spawn=
|
||||
@1 Stem=
|
||||
|
||||
### spindlestem.lua ###
|
||||
|
||||
@ -235,3 +219,18 @@ Tunnel Tube Fruiting Body=Tunnelrohr-Fruchtkörper
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Tunnel Tube Plies=Tunnelrohrlagen
|
||||
Tunnel Tube Spawn=
|
||||
|
||||
|
||||
##### not used anymore #####
|
||||
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.=Netherkappenholz ist nicht nur ein wunderschöner blauer Farbton, sondern behält auch die seltsame Wärmeableitungsfähigkeit lebender Netherkappen bei und kann in der Nähe befindliche Wasserfeststoffe schnell einfrieren.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=Netherkappen haben eine ungewöhnliche Biochemie, die es ihnen ermöglicht, unter Verstoß gegen alle bekannten Gesetze der Thermodynamik von Umgebungswärme zu leben. Sie wachsen tief unter der Erde in kalten, eisigen Höhlen, die auf jeden Fall vulkanisch sein sollten.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether Cap Gills=Nether Cap Kiemen
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether Cap Planks=Nether Cap Planken
|
||||
|
@ -17,19 +17,12 @@ Blood Thorn Stem=Gambo di spina del sangue
|
||||
Dead Blood Thorn Spike=Spuntone di spina del sangue morta
|
||||
Dead Blood Thorn Stem=Gambo di spina del sangue morta
|
||||
|
||||
### dependencies.lua ###
|
||||
|
||||
@1 Fence=
|
||||
@1 Fence Gate=
|
||||
@1 Fence Rail=
|
||||
@1 Mese Post Light=
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
@1 Slab=@1 Lastra
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
@1 Stair=@1 Scala
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
@1 have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=
|
||||
|
||||
@1 wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living icecaps and is able to quickly freeze nearby water solid.=
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
A torchspine alternates between active and quiescent phases and emits dim light when active. They can be harvested for torches, and their embers sprout into new torchspines when placed on flammable surfaces.=Una torcia alterna le fasi attiva e quiescente ed emette una luce fioca quando è attiva. Possono essere raccolti per le torce e le loro braci germogliano in nuove spine delle torce quando vengono posizionate su superfici infiammabili.
|
||||
|
||||
@ -69,12 +62,6 @@ Living extract from the cap of a yellow Spindlestem.=Estratto vivo dal cappello
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Massive but squat, mature goblin cap mushrooms are the size of small cottages.=I funghi goblin sono grandi ma tozzi e maturi, hanno le dimensioni di piccoli cottage.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.=Il legno del cappuccio inferiore, oltre ad essere una bella tonalità blu, conserva la strana capacità di drenaggio del calore dei tappi inferiori viventi ed è in grado di congelare rapidamente l'acqua solida vicina.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=I cappucci inferiori hanno una biochimica insolita che consente loro di sopravvivere in qualche modo al calore ambientale, in violazione di tutte le leggi conosciute della termodinamica. Crescono in profondità nel sottosuolo in caverne gelide che dovrebbero a tutti gli effetti essere vulcaniche.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Red Spindlestems are a sign of nearby iron deposits - or perhaps Goblin Caps. Their glowing symbiotes can be extracted as a long-lived light source, though the glow is weak.=I Red Spindlestems sono un segno di depositi di ferro vicini - o forse Goblin Caps. I loro simbionti luminosi possono essere estratti come fonte di luce a lunga durata, anche se il bagliore è debole.
|
||||
|
||||
@ -157,11 +144,10 @@ Goblin Cap Stem Planks=Assi di gambo di cappello di folletto
|
||||
|
||||
### nether_cap.lua ###
|
||||
|
||||
Nether Cap=Cappello del Nether
|
||||
Nether Cap Gills=Lamelle di cappello del Nether
|
||||
Nether Cap Planks=Assi di cappello del Nether
|
||||
Nether Cap Spawn=Prole di cappello del Nether
|
||||
Nether Cap Stem=Gambo di cappello del Nether
|
||||
@1 Gills=Lamelle di @1
|
||||
@1 Planks=Assi di @1
|
||||
@1 Spawn=Prole di @1
|
||||
@1 Stem=Gambo di @1
|
||||
|
||||
### spindlestem.lua ###
|
||||
|
||||
@ -211,3 +197,14 @@ Tunnel Tube=Tubo di galleria
|
||||
Tunnel Tube Fruiting Body=Corpo fruttifero del tubo di galleria
|
||||
Tunnel Tube Plies=Strati di tubo di galleria
|
||||
Tunnel Tube Spawn=Prole di tubo di galleria
|
||||
|
||||
|
||||
##### not used anymore #####
|
||||
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.=Il legno del cappuccio inferiore, oltre ad essere una bella tonalità blu, conserva la strana capacità di drenaggio del calore dei tappi inferiori viventi ed è in grado di congelare rapidamente l'acqua solida vicina.
|
||||
|
||||
#WARNING: AUTOTRANSLATED BY GOOGLE TRANSLATE
|
||||
Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=I cappucci inferiori hanno una biochimica insolita che consente loro di sopravvivere in qualche modo al calore ambientale, in violazione di tutte le leggi conosciute della termodinamica. Crescono in profondità nel sottosuolo in caverne gelide che dovrebbero a tutti gli effetti essere vulcaniche.
|
||||
|
||||
|
@ -17,17 +17,12 @@ Blood Thorn Stem=
|
||||
Dead Blood Thorn Spike=
|
||||
Dead Blood Thorn Stem=
|
||||
|
||||
### dependencies.lua ###
|
||||
|
||||
@1 Fence=
|
||||
@1 Fence Gate=
|
||||
@1 Fence Rail=
|
||||
@1 Mese Post Light=
|
||||
@1 Slab=
|
||||
@1 Stair=
|
||||
|
||||
### doc.lua ###
|
||||
|
||||
@1 have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=
|
||||
|
||||
@1 wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living icecaps and is able to quickly freeze nearby water solid.=
|
||||
|
||||
A torchspine alternates between active and quiescent phases and emits dim light when active. They can be harvested for torches, and their embers sprout into new torchspines when placed on flammable surfaces.=
|
||||
|
||||
Aside from the artistic applications of its particularly dark color, black cap wood is a long-burning fuel source that's as good as coal for some applications. Black cap gills are oily and make for excellent torch fuel.=
|
||||
@ -53,10 +48,6 @@ Living extract from the cap of a yellow Spindlestem.=
|
||||
|
||||
Massive but squat, mature goblin cap mushrooms are the size of small cottages.=
|
||||
|
||||
Nether cap wood, in addition to being a beautiful blue hue, retains the odd heat-draining ability of living nether caps and is able to quickly freeze nearby water solid.=
|
||||
|
||||
Nether caps have an unusual biochemistry that allows them to somehow subsist on ambient heat, in violation of all known laws of thermodynamics. They grow deep underground in frigid, icy caverns that should by all rights be volcanic.=
|
||||
|
||||
Red Spindlestems are a sign of nearby iron deposits - or perhaps Goblin Caps. Their glowing symbiotes can be extracted as a long-lived light source, though the glow is weak.=
|
||||
|
||||
Spindlestems are too big to easily pluck by hand but too small to be called a proper tree. Nevertheless, they are a common and useful resource for underground travelers - particularly their glowing caps.=
|
||||
@ -118,11 +109,10 @@ Goblin Cap Stem Planks=
|
||||
|
||||
### nether_cap.lua ###
|
||||
|
||||
Nether Cap=
|
||||
Nether Cap Gills=
|
||||
Nether Cap Planks=
|
||||
Nether Cap Spawn=
|
||||
Nether Cap Stem=
|
||||
@1 Gills=
|
||||
@1 Planks=
|
||||
@1 Spawn=
|
||||
@1 Stem=
|
||||
|
||||
### spindlestem.lua ###
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
name = df_trees
|
||||
description = Adds various types of underground fungal "trees". Light kills their saplings, they only grow in the dark.
|
||||
depends = default
|
||||
optional_depends = doc, moreblocks, stairs, vessels, basic_materials, farming, doors, beds, df_farming, mapgen_helper
|
||||
depends = df_dependencies
|
||||
optional_depends = doc, basic_materials, df_farming, mapgen_helper, looped_node_sound
|
@ -1,37 +1,43 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local nethercap_name = df_dependencies.nethercap_name
|
||||
|
||||
--stem
|
||||
minetest.register_node("df_trees:nether_cap_stem", {
|
||||
description = S("Nether Cap Stem"),
|
||||
description = S("@1 Stem", nethercap_name),
|
||||
_doc_items_longdesc = df_trees.doc.nether_cap_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.nether_cap_usage,
|
||||
tiles = {"dfcaverns_nether_cap_stem.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1, handy=1,axey=1, building_block=1, material_wood=1},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 0.7,
|
||||
_mcl_hardness = 0.7,
|
||||
})
|
||||
|
||||
--cap
|
||||
minetest.register_node("df_trees:nether_cap", {
|
||||
description = S("Nether Cap"),
|
||||
description = nethercap_name,
|
||||
_doc_items_longdesc = df_trees.doc.nether_cap_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.nether_cap_usage,
|
||||
tiles = {"dfcaverns_nether_cap.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1},
|
||||
sounds = df_trees.sounds.nethercap_wood,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1, handy=1,axey=1, building_block=1, material_wood=1},
|
||||
sounds = df_dependencies.sound_wood({footstep = {name = df_dependencies.soundfile_snow_footstep, gain = 0.2},}),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
--gills
|
||||
minetest.register_node("df_trees:nether_cap_gills", {
|
||||
description = S("Nether Cap Gills"),
|
||||
description = S("@1 Gills", nethercap_name),
|
||||
_doc_items_longdesc = df_trees.doc.nether_cap_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.nether_cap_usage,
|
||||
tiles = {"dfcaverns_nether_cap_gills.png"},
|
||||
is_ground_content = false,
|
||||
light_source = 6,
|
||||
groups = {snappy = 3, leafdecay = 3, leaves = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
groups = {snappy = 3, leafdecay = 1, leaves = 1, puts_out_fire = 1, cools_lava = 1, freezes_water = 1, nether_cap = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
drop = {
|
||||
@ -46,10 +52,13 @@ minetest.register_node("df_trees:nether_cap_gills", {
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
_mcl_blast_resistance = 0.1,
|
||||
_mcl_hardness = 0.1,
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:nether_cap"}, -- don't need stem nodes here
|
||||
leaves = {"df_trees:nether_cap_gills"},
|
||||
radius = 1,
|
||||
@ -71,23 +80,24 @@ minetest.register_craft({
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:nether_cap_wood", {
|
||||
description = S("Nether Cap Planks"),
|
||||
description = S("@1 Planks", nethercap_name),
|
||||
_doc_items_longdesc = df_trees.doc.nether_cap_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.nether_cap_usage,
|
||||
paramtype2 = "facedir",
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_nether_cap_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, wood = 1, freezes_water = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, wood = 1, freezes_water = 1, handy=1,axey=1,building_block=1, material_wood=1},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("nether_cap_wood")
|
||||
df_trees.register.all_fences("nether_cap_wood")
|
||||
df_dependencies.register_all_stairs_and_fences("nether_cap_wood")
|
||||
|
||||
-- sapling
|
||||
minetest.register_node("df_trees:nether_cap_sapling", {
|
||||
description = S("Nether Cap Spawn"),
|
||||
description = S("@1 Spawn", nethercap_name),
|
||||
_doc_items_longdesc = df_trees.doc.nether_cap_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.nether_cap_usage,
|
||||
drawtype = "plantlike",
|
||||
@ -105,8 +115,10 @@ minetest.register_node("df_trees:nether_cap_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.1,
|
||||
_mcl_hardness = 0.1,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.nether_cap_growth_permitted(pos) then
|
||||
@ -160,12 +172,12 @@ df_trees.spawn_nether_cap_vm = function(vi, area, data)
|
||||
subterrane.giant_mushroom(vi, area, data, c_stem, c_cap, c_gills, stem_height, cap_radius)
|
||||
end
|
||||
|
||||
local water = df_trees.node_names.water_source
|
||||
local river_water = df_trees.node_names.river_water_source
|
||||
local ice = df_trees.node_names.ice
|
||||
local water_flowing = df_trees.node_names.water_flowing
|
||||
local river_water_flowing = df_trees.node_names.river_water_flowing
|
||||
local snow = df_trees.node_names.snow
|
||||
local water = df_dependencies.node_name_water_source
|
||||
local river_water = df_dependencies.node_name_river_water_source
|
||||
local ice = df_dependencies.node_name_ice
|
||||
local water_flowing = df_dependencies.node_name_water_flowing
|
||||
local river_water_flowing = df_dependencies.node_name_river_water_flowing
|
||||
local snow = df_dependencies.node_name_snow
|
||||
|
||||
minetest.register_abm{
|
||||
label = "water freezing",
|
||||
|
@ -1,8 +1,8 @@
|
||||
-- these methods should indicate whether a sapling placed at pos should bother attempting to grow.
|
||||
-- check soil conditions and biome here, for example.
|
||||
|
||||
local stone_with_coal = df_trees.node_names.stone_with_coal
|
||||
local coalblock = df_trees.node_names.coalblock
|
||||
local stone_with_coal = df_dependencies.node_name_stone_with_coal
|
||||
local coalblock = df_dependencies.node_name_coalblock
|
||||
local is_coal = function(name)
|
||||
return name == stone_with_coal or name == coalblock
|
||||
end
|
||||
@ -26,7 +26,8 @@ end
|
||||
|
||||
df_trees.nether_cap_growth_permitted = function(pos)
|
||||
local below_name = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||
return minetest.get_item_group(below_name, "cools_lava") > 0 and minetest.get_item_group(below_name, "nether_cap") == 0
|
||||
return (minetest.get_item_group(below_name, "cools_lava") > 0 or minetest.get_item_group(below_name, "ice") > 0)
|
||||
and minetest.get_item_group(below_name, "nether_cap") == 0
|
||||
end
|
||||
|
||||
df_trees.spindlestem_growth_permitted = function(pos)
|
||||
|
@ -1,49 +1,37 @@
|
||||
local n1 = { name = "air", prob = 0 } -- external air
|
||||
local n2 = { name = "df_trees:goblin_cap" }
|
||||
local n3 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 2} -- porch top
|
||||
local n3 = {name = df_dependencies.node_name_slab_goblin_cap_stem_wood, param2 = 2} -- porch top
|
||||
local n4 = { name = "df_trees:goblin_cap_gills" }
|
||||
local n6 = { name = "df_trees:goblin_cap_stem", force_place=true } -- walls
|
||||
local n7 = { name = "df_trees:goblin_cap_stem_wood", force_place=true } -- internal floor
|
||||
local n8 = { name = "doors:door_wood_a", force_place=true }
|
||||
local n9 = { name = "doors:hidden", force_place=true }
|
||||
local n10 = { name = df_trees.node_names.furnace, param2 = 3, force_place=true }
|
||||
local n8 = { name = df_dependencies.node_name_door_wood_a or "air", force_place=true }
|
||||
local n9 = { name = df_dependencies.node_name_door_hidden or "air", force_place=true }
|
||||
local n10 = { name = df_dependencies.node_name_furnace, param2 = 3, force_place=true }
|
||||
local n11 = { name = "air", force_place=true } -- internal air
|
||||
local n12 = { name = "beds:bed_bottom", force_place=true }
|
||||
local n12 = { name = df_dependencies.node_name_bed_bottom or "air", force_place=true }
|
||||
local n13 = { name = "df_trees:goblin_cap_stem", prob = 198, force_place=true } -- possible window holes
|
||||
local n16 = { name = df_trees.node_names.chest, param2 = 3, force_place=true }
|
||||
local n17 = { name = "beds:bed_top", force_place=true }
|
||||
local n18 = { name = df_trees.node_names.torch_wall, param2 = 4, force_place=true }
|
||||
local n16 = { name = df_dependencies.node_name_chest, param2 = 3, force_place=true }
|
||||
local n17 = { name = df_dependencies.node_name_bed_top or "air", force_place=true }
|
||||
local n18 = { name = df_dependencies.node_name_torch_wall, param2 = 4, force_place=true }
|
||||
local n19 = { name = "df_trees:goblin_cap_stem" } -- base
|
||||
|
||||
local n20 = {name = "stairs:stair_goblin_cap_stem_wood", param2 = 1 }
|
||||
local n21 = {name = "stairs:stair_goblin_cap_stem_wood", param2 = 3 }
|
||||
local n22 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 22}
|
||||
|
||||
|
||||
local n20 = {name = df_dependencies.node_name_stair_goblin_cap_stem_wood, param2 = 1 }
|
||||
local n21 = {name = df_dependencies.node_name_stair_goblin_cap_stem_wood, param2 = 3 }
|
||||
local n22 = {name = df_dependencies.node_name_slab_goblin_cap_stem_wood, param2 = 22}
|
||||
|
||||
if minetest.get_modpath("vessels") then
|
||||
n18 = { name = "df_trees:glowing_bottle_red", force_place=true}
|
||||
end
|
||||
|
||||
if not minetest.get_modpath("doors") then
|
||||
-- replace the door with air
|
||||
n8 = n11
|
||||
n9 = n11
|
||||
end
|
||||
if not minetest.get_modpath("beds") then
|
||||
--replace the bed with air
|
||||
n12 = n11
|
||||
n17 = n11
|
||||
end
|
||||
if not minetest.get_modpath("stairs") then
|
||||
if not df_dependencies.node_name_stair_goblin_cap_stem_wood then
|
||||
-- replace stairs with air
|
||||
n3 = nil
|
||||
n20 = nil
|
||||
n21 = nil
|
||||
n22 = nil
|
||||
n3 = n1
|
||||
n20 = n1
|
||||
n21 = n1
|
||||
n22 = n1
|
||||
end
|
||||
|
||||
return {
|
||||
local schematic = {
|
||||
yslice_prob = {},
|
||||
size = {y = 9, x = 11, z = 11},
|
||||
center_pos = {x=5, y=2, z=5},
|
||||
@ -258,3 +246,9 @@ return {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
for index, node in ipairs(schematic.data) do
|
||||
assert(node.name ~= nil, "undefined node name for index " .. tostring(index) .. " in goblin_cap_big_hut schematic data")
|
||||
end
|
||||
|
||||
return schematic
|
@ -5,47 +5,29 @@ local n4 = { name = "df_trees:goblin_cap_gills" }
|
||||
local n5 = { name = "df_trees:goblin_cap_stem", force_place = true } -- walls, force place these
|
||||
local n6 = { name = "df_trees:goblin_cap_stem", prob = 198, force_place=true } -- possible window holes
|
||||
local n7 = { name = "df_trees:goblin_cap_stem_wood", force_place=true } -- internal floor
|
||||
local n8 = { name = df_trees.node_names.furnace, param2 = 2, force_place=true }
|
||||
local n8 = { name = df_dependencies.node_name_furnace, param2 = 2, force_place=true }
|
||||
local n9 = { name = "air", force_place=true } -- internal air
|
||||
local n10 = { name = df_trees.node_names.torch_wall, param2 = 3, force_place = true }
|
||||
local n12 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 2} -- porch top
|
||||
local n13 = { name = "doors:door_wood_a", param2 = 3, force_place = true }
|
||||
local n14 = { name = "doors:hidden", param2 = 3, force_place = true }
|
||||
local n10 = { name = df_dependencies.node_name_torch_wall, param2 = 3, force_place = true }
|
||||
local n12 = {name = df_dependencies.node_name_slab_goblin_cap_stem_wood, param2 = 2} -- porch top
|
||||
local n13 = { name = df_dependencies.node_name_door_wood_a or "air", param2 = 3, force_place = true }
|
||||
local n14 = { name = df_dependencies.node_name_door_hidden or "air", param2 = 3, force_place = true }
|
||||
local n15 = n9 -- internal air, but could be a vessel shelf
|
||||
local n16 = { name = "beds:bed_top", param2 = 3, force_place = true }
|
||||
local n17 = { name = "beds:bed_bottom", param2 = 3, force_place = true }
|
||||
local n18 = { name = df_trees.node_names.chest, force_place = true }
|
||||
local n19 = { name = df_trees.node_names.torch_wall, param2 = 2, force_place = true }
|
||||
local n20 = {name = "stairs:stair_goblin_cap_stem_wood" }
|
||||
local n21 = {name = "stairs:stair_goblin_cap_stem_wood", param2 = 2 }
|
||||
local n22 = {name = "stairs:slab_goblin_cap_stem_wood", param2 = 22}
|
||||
local n16 = { name = df_dependencies.node_name_bed_top or "air", param2 = 3, force_place = true }
|
||||
local n17 = { name = df_dependencies.node_name_bed_bottom or "air", param2 = 3, force_place = true }
|
||||
local n18 = { name = df_dependencies.node_name_chest, force_place = true }
|
||||
local n19 = { name = df_dependencies.node_name_torch_wall, param2 = 2, force_place = true }
|
||||
local n20 = {name = df_dependencies.node_name_stair_goblin_cap_stem_wood }
|
||||
local n21 = {name = df_dependencies.node_name_stair_goblin_cap_stem_wood, param2 = 2 }
|
||||
local n22 = {name = df_dependencies.node_name_slab_goblin_cap_stem_wood, param2 = 22}
|
||||
|
||||
if minetest.get_modpath("vessels") then
|
||||
if df_dependencies.node_name_shelf then
|
||||
-- replace torches with glowing bottles, add vessel shelf
|
||||
n10 = { name = "df_trees:glowing_bottle_red", force_place=true}
|
||||
n19 = n10
|
||||
n15 = { name = "vessels:shelf", param2 = 3, force_place = true }
|
||||
n15 = { name = df_dependencies.node_name_shelf, param2 = 3, force_place = true }
|
||||
end
|
||||
|
||||
if not minetest.get_modpath("doors") then
|
||||
-- replace the door with air
|
||||
n13 = n9
|
||||
n14 = n9
|
||||
end
|
||||
if not minetest.get_modpath("beds") then
|
||||
--replace the bed with air
|
||||
n16 = n9
|
||||
n17 = n9
|
||||
end
|
||||
if not minetest.get_modpath("stairs") then
|
||||
-- replace stairs with air
|
||||
n12 = nil
|
||||
n20 = nil
|
||||
n21 = nil
|
||||
n22 = nil
|
||||
end
|
||||
|
||||
return {
|
||||
local schematic = {
|
||||
yslice_prob = {},
|
||||
size = {y = 10, x = 13, z = 13},
|
||||
center_pos = {x=6, y=2, z=6},
|
||||
@ -324,3 +306,9 @@ return {
|
||||
n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1, n1,
|
||||
}
|
||||
}
|
||||
|
||||
for index, node in ipairs(schematic.data) do
|
||||
assert(node.name ~= nil, "undefined node name for index " .. tostring(index) .. " in goblin_cap_bigger_hut schematic data")
|
||||
end
|
||||
|
||||
return schematic
|
BIN
df_trees/sounds/dfcaverns_torchspine_ignite.ogg
Normal file
BIN
df_trees/sounds/dfcaverns_torchspine_ignite.ogg
Normal file
Binary file not shown.
BIN
df_trees/sounds/dfcaverns_torchspine_loop.ogg
Normal file
BIN
df_trees/sounds/dfcaverns_torchspine_loop.ogg
Normal file
Binary file not shown.
@ -1,2 +1,5 @@
|
||||
dfcaverns_fungus_footstep are from https://freesound.org/people/jakeh111/sounds/60853/ under CC-BY-SA 3.0 in 2008 by jakeh111
|
||||
dfcaverns_spore_tree_pitter_patter are from https://freesound.org/people/martinimeniscus/sounds/199332/ by martinimeniscus under the CC0 public domain license
|
||||
dfcaverns_spore_tree_pitter_patter are from https://freesound.org/people/martinimeniscus/sounds/199332/ by martinimeniscus under the CC0 public domain license
|
||||
|
||||
dfcaverns_torchspine_loop is from https://freesound.org/people/PegasusCZ/sounds/569332/ by PegasusCZ under the CC0 public domain license
|
||||
dfcaverns_torchspine_ignite is from https://freesound.org/people/deleted_user_4772965/sounds/256510/ by Patrick Hunt5 under the CC0 public domain license
|
@ -1,12 +1,22 @@
|
||||
local S = minetest.get_translator(minetest.get_current_modname())
|
||||
|
||||
local vessels = minetest.get_modpath("vessels")
|
||||
local glass_bottle = df_dependencies.node_name_glass_bottle
|
||||
|
||||
-- pre-declare
|
||||
local get_spindlestem_cap_type
|
||||
|
||||
-- Copied from subterrane's features.lua
|
||||
-- Figured that was nicer than adding a dependency for just this little bit
|
||||
|
||||
local function copy_pointed_thing(pointed_thing)
|
||||
return {
|
||||
type = pointed_thing.type,
|
||||
above = pointed_thing.above and vector.copy(pointed_thing.above),
|
||||
under = pointed_thing.under and vector.copy(pointed_thing.under),
|
||||
ref = pointed_thing.ref,
|
||||
}
|
||||
end
|
||||
|
||||
local stem_on_place = function(itemstack, placer, pointed_thing)
|
||||
local pt = pointed_thing
|
||||
-- check if pointing at a node
|
||||
@ -43,8 +53,24 @@ local stem_on_place = function(itemstack, placer, pointed_thing)
|
||||
end
|
||||
|
||||
-- add the node and remove 1 item from the itemstack
|
||||
minetest.add_node(pt.above, {name = itemstack:get_name(), param2 = new_param2})
|
||||
if not minetest.settings:get_bool("creative_mode", false) then
|
||||
local newnode= {name = itemstack:get_name(), param2 = new_param2, param1=0}
|
||||
local oldnode= minetest.get_node(pt.above)
|
||||
minetest.add_node(pt.above, newnode)
|
||||
|
||||
-- Run script hook
|
||||
local take_item = true
|
||||
for _, callback in ipairs(core.registered_on_placenodes) do
|
||||
-- Deepcopy pos, node and pointed_thing because callback can modify them
|
||||
local place_to_copy = vector.copy(pt.above)
|
||||
local newnode_copy = {name=newnode.name, param1=newnode.param1, param2=newnode.param2}
|
||||
local oldnode_copy = {name=oldnode.name, param1=oldnode.param1, param2=oldnode.param2}
|
||||
local pointed_thing_copy = copy_pointed_thing(pointed_thing)
|
||||
if callback(place_to_copy, newnode_copy, placer, oldnode_copy, itemstack, pointed_thing_copy) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
if not minetest.is_creative_enabled(placer:get_player_name()) and take_item then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
@ -63,8 +89,8 @@ minetest.register_node("df_trees:spindlestem_stem", {
|
||||
_doc_items_longdesc = df_trees.doc.spindlestem_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.spindlestem_usage,
|
||||
is_ground_content = false,
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, spindlestem = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, spindlestem = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
tiles = {
|
||||
"dfcaverns_tower_cap.png",
|
||||
},
|
||||
@ -80,6 +106,8 @@ minetest.register_node("df_trees:spindlestem_stem", {
|
||||
}
|
||||
},
|
||||
on_place = stem_on_place,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
@ -97,8 +125,8 @@ local register_spindlestem_type = function(item_suffix, colour_name, colour_code
|
||||
is_ground_content = false,
|
||||
_doc_items_longdesc = df_trees.doc["spindlestem_cap_"..item_suffix.."_desc"],
|
||||
_doc_items_usagehelp = df_trees.doc["spindlestem_cap_"..item_suffix.."_usage"],
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, spindlestem = 1, not_in_creative_inventory = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {wood = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, spindlestem = 1, not_in_creative_inventory = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
tiles = {
|
||||
"dfcaverns_tower_cap.png^[multiply:#"..colour_code,
|
||||
"dfcaverns_spindlestem_cap.png^[multiply:#"..colour_code,
|
||||
@ -121,6 +149,8 @@ local register_spindlestem_type = function(item_suffix, colour_name, colour_code
|
||||
{-0.1875+disp, -0.3125, -0.1875+disp, 0.3125+disp, -0.1875, 0.3125+disp},
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
drop = {
|
||||
-- Maximum number of items to drop
|
||||
@ -201,11 +231,11 @@ local register_spindlestem_type = function(item_suffix, colour_name, colour_code
|
||||
burntime = 10,
|
||||
})
|
||||
|
||||
if vessels and light_level > 0 then
|
||||
local tex = "dfcaverns_vessels_glowing_liquid.png^[multiply:#"..colour_code.."^vessels_glass_bottle.png"
|
||||
if glass_bottle and light_level > 0 then
|
||||
local tex = "dfcaverns_vessels_glowing_liquid.png^[multiply:#"..colour_code.."^"..df_dependencies.texture_glass_bottle
|
||||
local new_light = light_level + math.floor((minetest.LIGHT_MAX-light_level)/2)
|
||||
|
||||
local groups = {vessel = 1, dig_immediate = 3, attached_node = 1}
|
||||
local groups = {vessel = 1, dig_immediate = 3, attached_node = 1, material_glass = 1, destroy_by_lava_flow=1}
|
||||
if extract_color_group then
|
||||
groups[extract_color_group] = 1
|
||||
end
|
||||
@ -226,23 +256,25 @@ local register_spindlestem_type = function(item_suffix, colour_name, colour_code
|
||||
fixed = {-0.25, -0.5, -0.25, 0.25, 0.3, 0.25}
|
||||
},
|
||||
groups = groups,
|
||||
sounds = df_trees.sounds.glass,
|
||||
sounds = df_dependencies.sound_glass(),
|
||||
light_source = new_light,
|
||||
_mcl_blast_resistance = 0.5,
|
||||
_mcl_hardness = 0.5,
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "df_trees:glowing_bottle_"..item_suffix.." 3",
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"vessels:glass_bottle",
|
||||
"vessels:glass_bottle",
|
||||
"vessels:glass_bottle",
|
||||
glass_bottle,
|
||||
glass_bottle,
|
||||
glass_bottle,
|
||||
cap_item_harvested,
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft( {
|
||||
output = "vessels:glass_bottle",
|
||||
output = glass_bottle,
|
||||
type = "shapeless",
|
||||
recipe = {
|
||||
"df_trees:glowing_bottle_"..item_suffix,
|
||||
@ -258,7 +290,7 @@ minetest.register_node("df_trees:spindlestem_seedling", {
|
||||
tiles = {
|
||||
"dfcaverns_tower_cap.png",
|
||||
},
|
||||
groups = {snappy = 3, flammable = 2, plant = 1, attached_node = 1, light_sensitive_fungus = 11, digtron_on_place=1},
|
||||
groups = {snappy = 3, flammable = 2, plant = 1, attached_node = 1, light_sensitive_fungus = 11, digtron_on_place=1, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -271,6 +303,8 @@ minetest.register_node("df_trees:spindlestem_seedling", {
|
||||
{-0.0625 + 0.125, -0.5, -0.125 + 0.125, 0.125 + 0.125, -0.375, 0.0625 + 0.125},
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_place = stem_on_place,
|
||||
on_construct = function(pos)
|
||||
@ -351,6 +385,10 @@ local c_green = minetest.get_content_id("df_trees:spindlestem_cap_green")
|
||||
local c_cyan = minetest.get_content_id("df_trees:spindlestem_cap_cyan")
|
||||
local c_golden = minetest.get_content_id("df_trees:spindlestem_cap_golden")
|
||||
|
||||
local iron_nodes = df_dependencies.data_iron_containing_nodes
|
||||
local copper_nodes = df_dependencies.data_copper_containing_nodes
|
||||
local mese_nodes = df_dependencies.data_mese_containing_nodes
|
||||
|
||||
get_spindlestem_cap_type = function(pos)
|
||||
if minetest.find_node_near(pos, 15, "group:tower_cap") then
|
||||
return c_white
|
||||
@ -359,9 +397,9 @@ get_spindlestem_cap_type = function(pos)
|
||||
return c_red
|
||||
end
|
||||
|
||||
local iron = minetest.find_node_near(pos, 5, df_trees.iron_containing_nodes)
|
||||
local copper = minetest.find_node_near(pos, 5, df_trees.copper_containing_nodes)
|
||||
local mese = minetest.find_node_near(pos, 5, df_trees.mese_containing_nodes)
|
||||
local iron = minetest.find_node_near(pos, 5, iron_nodes)
|
||||
local copper = minetest.find_node_near(pos, 5, copper_nodes)
|
||||
local mese = minetest.find_node_near(pos, 5, mese_nodes)
|
||||
local possibilities = {}
|
||||
|
||||
if mese then table.insert(possibilities, c_golden) end
|
||||
|
@ -15,8 +15,10 @@ minetest.register_node("df_trees:spore_tree", {
|
||||
tiles = {"dfcaverns_spore_tree_top.png", "dfcaverns_spore_tree_top.png", "dfcaverns_spore_tree.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
on_place = minetest.rotate_node,
|
||||
})
|
||||
@ -37,12 +39,13 @@ minetest.register_node("df_trees:spore_tree_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_spore_tree_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("spore_tree_wood")
|
||||
df_trees.register.all_fences("spore_tree_wood", {burntime = 6})
|
||||
df_dependencies.register_all_stairs_and_fences("spore_tree_wood", {burntime = 6})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -77,7 +80,7 @@ minetest.register_node("df_trees:spore_tree_hyphae", {
|
||||
waving = 1,
|
||||
tiles = {"dfcaverns_spore_tree.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, spore_tree_hyphae = 1},
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, spore_tree_hyphae = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
|
||||
@ -91,9 +94,12 @@ minetest.register_node("df_trees:spore_tree_hyphae", {
|
||||
{-0.5, -0.0625, -0.0625, 0.5, 0.0625, 0.0625},
|
||||
}
|
||||
},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:spore_tree_fruiting_body", {
|
||||
@ -103,9 +109,11 @@ minetest.register_node("df_trees:spore_tree_fruiting_body", {
|
||||
waving = 1,
|
||||
tiles = {"dfcaverns_spore_tree.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, spore_tree_hyphae = 1},
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, spore_tree_hyphae = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=100},
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
_mcl_blast_resistance = 0.7,
|
||||
_mcl_hardness = 0.7,
|
||||
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
@ -131,12 +139,13 @@ minetest.register_node("df_trees:spore_tree_fruiting_body", {
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
place_param2 = 1, -- Prevent leafdecay for placed nodes
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:spore_tree"},
|
||||
leaves = {"df_trees:spore_tree_hyphae", "df_trees:spore_tree_fruiting_body"},
|
||||
radius = 3,
|
||||
@ -161,8 +170,10 @@ minetest.register_node("df_trees:spore_tree_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.spore_tree_growth_permitted(pos) then
|
||||
@ -330,7 +341,9 @@ minetest.register_node("df_trees:spore_tree_ladder", {
|
||||
selection_box = {
|
||||
type = "wallmounted",
|
||||
},
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2},
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2, handy=1,axey=1, attached_node=1, deco_block=1, dig_by_piston=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
legacy_wallmounted = true,
|
||||
sounds = df_trees.sounds.wood,
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 1,
|
||||
_mcl_hardness = 1,
|
||||
})
|
||||
|
@ -3,11 +3,21 @@ local S = minetest.get_translator(minetest.get_current_modname())
|
||||
local torchspine_min_delay = df_trees.config.blood_thorn_delay_multiplier*df_trees.config.tree_min_growth_delay
|
||||
local torchspine_max_delay = df_trees.config.blood_thorn_delay_multiplier*df_trees.config.tree_max_growth_delay
|
||||
|
||||
local looped_node_sound_modpath = minetest.get_modpath("looped_node_sound")
|
||||
|
||||
-- Rather than make this whole mod depend on subterrane just for this, I copied and pasted a chunk of stalactite code.
|
||||
local x_disp = 0.125
|
||||
local z_disp = 0.125
|
||||
|
||||
local function copy_pointed_thing(pointed_thing)
|
||||
return {
|
||||
type = pointed_thing.type,
|
||||
above = pointed_thing.above and vector.copy(pointed_thing.above),
|
||||
under = pointed_thing.under and vector.copy(pointed_thing.under),
|
||||
ref = pointed_thing.ref,
|
||||
}
|
||||
end
|
||||
|
||||
local stal_on_place = function(itemstack, placer, pointed_thing)
|
||||
local pt = pointed_thing
|
||||
-- check if pointing at a node
|
||||
@ -44,8 +54,24 @@ local stal_on_place = function(itemstack, placer, pointed_thing)
|
||||
end
|
||||
|
||||
-- add the node and remove 1 item from the itemstack
|
||||
local newnode= {name = itemstack:get_name(), param2 = new_param2, param1=0}
|
||||
local oldnode= minetest.get_node(pt.above)
|
||||
minetest.add_node(pt.above, {name = itemstack:get_name(), param2 = new_param2})
|
||||
if not minetest.settings:get_bool("creative_mode", false) then
|
||||
|
||||
-- Run script hook
|
||||
local take_item = true
|
||||
for _, callback in ipairs(core.registered_on_placenodes) do
|
||||
-- Deepcopy pos, node and pointed_thing because callback can modify them
|
||||
local place_to_copy = vector.copy(pt.above)
|
||||
local newnode_copy = {name=newnode.name, param1=newnode.param1, param2=newnode.param2}
|
||||
local oldnode_copy = {name=oldnode.name, param1=oldnode.param1, param2=oldnode.param2}
|
||||
local pointed_thing_copy = copy_pointed_thing(pointed_thing)
|
||||
if callback(place_to_copy, newnode_copy, placer, oldnode_copy, itemstack, pointed_thing_copy) then
|
||||
take_item = false
|
||||
end
|
||||
end
|
||||
|
||||
if not minetest.is_creative_enabled(placer:get_player_name()) and take_item then
|
||||
itemstack:take_item()
|
||||
end
|
||||
return itemstack
|
||||
@ -94,19 +120,19 @@ local grow_torchspine = function(pos)
|
||||
pos.y = pos.y + 1
|
||||
minetest.get_node_timer(pos):start(math.random(torchspine_min_delay, torchspine_max_delay))
|
||||
for i = 1, height+1 do
|
||||
minetest.swap_node(pos, {name=torchspine_list[i], param2=param2})
|
||||
minetest.swap_node(pos, {name=torchspine_list[i], param2 = param2})
|
||||
pos.y = pos.y - 1
|
||||
end
|
||||
end
|
||||
|
||||
local torch_node = df_trees.node_names.torch
|
||||
local torch_node = df_dependencies.node_name_torch
|
||||
|
||||
minetest.register_node("df_trees:torchspine_1", {
|
||||
description = S("Torchspine Tip"),
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {"dfcaverns_torchspine_0.5.png", "dfcaverns_torchspine_1.5.png", "dfcaverns_torchspine_1.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, fall_damage_add_percent = 100, df_trees_torchspine = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, fall_damage_add_percent = 100, df_trees_torchspine = 1, pickaxey=1, building_block=1, material_stone=1},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -116,6 +142,9 @@ minetest.register_node("df_trees:torchspine_1", {
|
||||
type = "fixed",
|
||||
fixed = stal_box_1,
|
||||
},
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
on_place = stal_on_place,
|
||||
on_punch = function(pos, node, puncher)
|
||||
if puncher:get_wielded_item():get_name() == torch_node then
|
||||
@ -127,6 +156,7 @@ minetest.register_node("df_trees:torchspine_1", {
|
||||
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 then
|
||||
minetest.swap_node(pos, {name="df_trees:torchspine_1_lit", param2=minetest.get_node(pos).param2})
|
||||
minetest.sound_play({pos = pos}, {name="dfcaverns_torchspine_ignite"}, true)
|
||||
end
|
||||
minetest.get_node_timer(pos):start(math.random(torchspine_min_delay, torchspine_max_delay))
|
||||
end,
|
||||
@ -140,8 +170,8 @@ minetest.register_node("df_trees:torchspine_1_lit", {
|
||||
description = S("Torchspine Tip"),
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {df_trees.textures.gold_block, "dfcaverns_torchspine_1.5.png", "dfcaverns_torchspine_1_lit.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, torch = 1, fall_damage_add_percent = 150, smokey = 4, df_trees_torchspine = 1},
|
||||
tiles = {df_dependencies.texture_gold_block, "dfcaverns_torchspine_1.5.png", "dfcaverns_torchspine_1_lit.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, torch = 1, fall_damage_add_percent = 150, smokey = 4, df_trees_torchspine = 1,pickaxey=1, building_block=1, material_stone=1,set_on_fire=3},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -152,6 +182,9 @@ minetest.register_node("df_trees:torchspine_1_lit", {
|
||||
type = "fixed",
|
||||
fixed = stal_box_1,
|
||||
},
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
on_place = stal_on_place,
|
||||
|
||||
on_timer = function(pos)
|
||||
@ -163,12 +196,21 @@ minetest.register_node("df_trees:torchspine_1_lit", {
|
||||
end,
|
||||
})
|
||||
|
||||
if looped_node_sound_modpath then
|
||||
looped_node_sound.register({
|
||||
node_list = {"df_trees:torchspine_1_lit"},
|
||||
sound = "dfcaverns_torchspine_loop",
|
||||
max_gain = 0.5,
|
||||
gain_per_node = 0.05,
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("df_trees:torchspine_2", {
|
||||
description = S("Torchspine"),
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {"dfcaverns_torchspine_1.5.png", "dfcaverns_torchspine_2.5.png", "dfcaverns_torchspine_2.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, fall_damage_add_percent = 50, df_trees_torchspine = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, fall_damage_add_percent = 50, df_trees_torchspine = 1,pickaxey=1, building_block=1, material_stone=1},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -177,6 +219,9 @@ minetest.register_node("df_trees:torchspine_2", {
|
||||
type = "fixed",
|
||||
fixed = stal_box_2,
|
||||
},
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
@ -194,7 +239,7 @@ minetest.register_node("df_trees:torchspine_3", {
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {"dfcaverns_torchspine_2.5.png", "dfcaverns_torchspine_3.5.png", "dfcaverns_torchspine_3.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, df_trees_torchspine = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, df_trees_torchspine = 1,pickaxey=1, building_block=1, material_stone=1},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -203,6 +248,9 @@ minetest.register_node("df_trees:torchspine_3", {
|
||||
type = "fixed",
|
||||
fixed = stal_box_3,
|
||||
},
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
@ -224,7 +272,7 @@ minetest.register_node("df_trees:torchspine_4", {
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {"dfcaverns_torchspine_3.5.png", "dfcaverns_torchspine_4.5.png", "dfcaverns_torchspine_4.png"},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, df_trees_torchspine = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1, df_trees_torchspine = 1,pickaxey=1, building_block=1, material_stone=1},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
paramtype2 = "facedir",
|
||||
@ -233,6 +281,9 @@ minetest.register_node("df_trees:torchspine_4", {
|
||||
type = "fixed",
|
||||
fixed = stal_box_4,
|
||||
},
|
||||
_mcl_blast_resistance = 6,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
drop = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
@ -253,7 +304,7 @@ minetest.register_node("df_trees:torchspine_ember", {
|
||||
_doc_items_longdesc = df_trees.doc.torchspine_desc,
|
||||
_doc_items_usagehelp = df_trees.doc.torchspine_usage,
|
||||
tiles = {"dfcaverns_torchspine_0.5.png",},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1},
|
||||
groups = {oddly_breakable_by_hand = 1, subterrane_stal_align = 1, flow_through = 1,pickaxey=1, building_block=1, material_stone=1,set_on_fire=1},
|
||||
drawtype = "nodebox",
|
||||
paramtype = "light",
|
||||
light_source = 2,
|
||||
@ -267,6 +318,9 @@ minetest.register_node("df_trees:torchspine_ember", {
|
||||
{-0.0625 + x_disp, -0.5, -0.125 + z_disp, 0.125 + x_disp, -0.375, 0.0625 + z_disp},
|
||||
}
|
||||
},
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 1,
|
||||
|
||||
on_place = stal_on_place,
|
||||
|
||||
on_construct = function(pos)
|
||||
@ -281,6 +335,7 @@ minetest.register_node("df_trees:torchspine_ember", {
|
||||
on_timer = function(pos)
|
||||
minetest.swap_node(pos, {name="df_trees:torchspine_1", param2=minetest.get_node(pos).param2})
|
||||
minetest.get_node_timer(pos):start(math.random(torchspine_min_delay, torchspine_max_delay))
|
||||
minetest.sound_play({pos = pos}, {name="dfcaverns_torchspine_ignite"}, true)
|
||||
end,
|
||||
})
|
||||
|
||||
@ -337,7 +392,12 @@ df_trees.spawn_torchspine_vm = function(vi, area, data, data_param2, height, lit
|
||||
local index = vi + area.ystride*i
|
||||
data[index] = list[height-i]
|
||||
data_param2[index] = param2
|
||||
end
|
||||
end
|
||||
|
||||
local pos = area:position(vi)
|
||||
pos.y = pos.y+height-1
|
||||
local node = minetest.get_node(pos)
|
||||
minetest.get_node_timer(pos):start(math.random()*3000)
|
||||
end
|
||||
|
||||
minetest.register_lbm({
|
||||
|
@ -7,8 +7,10 @@ minetest.register_node("df_trees:tower_cap_stem", {
|
||||
_doc_items_usagehelp = df_trees.doc.tower_cap_usage,
|
||||
tiles = {"dfcaverns_tower_cap.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, tower_cap = 1},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, tower_cap = 1, tower_cap_trunk = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
--cap
|
||||
@ -18,8 +20,10 @@ minetest.register_node("df_trees:tower_cap", {
|
||||
_doc_items_usagehelp = df_trees.doc.tower_cap_usage,
|
||||
tiles = {"dfcaverns_tower_cap.png"},
|
||||
is_ground_content = false,
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, tower_cap = 1},
|
||||
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2, tower_cap = 1, tower_cap_trunk = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_trees.node_sound_tree_soft_fungus_defaults(),
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
--gills
|
||||
@ -29,8 +33,8 @@ minetest.register_node("df_trees:tower_cap_gills", {
|
||||
_doc_items_usagehelp = df_trees.doc.tower_cap_usage,
|
||||
tiles = {"dfcaverns_tower_cap_gills.png"},
|
||||
is_ground_content = false,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, tower_cap = 1},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1, tower_cap = 1,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
drop = {
|
||||
@ -45,10 +49,12 @@ minetest.register_node("df_trees:tower_cap_gills", {
|
||||
}
|
||||
}
|
||||
},
|
||||
after_place_node = df_trees.after_place_leaves,
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
after_place_node = df_dependencies.after_place_leaves,
|
||||
})
|
||||
|
||||
df_trees.register_leafdecay({
|
||||
df_dependencies.register_leafdecay({
|
||||
trunks = {"df_trees:tower_cap"}, -- don't need stem nodes here
|
||||
leaves = {"df_trees:tower_cap_gills"},
|
||||
radius = 1,
|
||||
@ -58,14 +64,7 @@ df_trees.register_leafdecay({
|
||||
minetest.register_craft({
|
||||
output = 'df_trees:tower_cap_wood 4',
|
||||
recipe = {
|
||||
{'df_trees:tower_cap'},
|
||||
}
|
||||
})
|
||||
|
||||
minetest.register_craft({
|
||||
output = 'df_trees:tower_cap_wood 4',
|
||||
recipe = {
|
||||
{'df_trees:tower_cap_stem'},
|
||||
{'group:tower_cap_trunk'},
|
||||
}
|
||||
})
|
||||
|
||||
@ -77,12 +76,13 @@ minetest.register_node("df_trees:tower_cap_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_tower_cap_wood.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 3,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("tower_cap_wood")
|
||||
df_trees.register.all_fences("tower_cap_wood", {burntime = 7})
|
||||
df_dependencies.register_all_stairs_and_fences("tower_cap_wood", {burntime = 7})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -130,8 +130,10 @@ minetest.register_node("df_trees:tower_cap_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 0.2,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.tower_cap_growth_permitted(pos) then
|
||||
|
@ -17,9 +17,11 @@ minetest.register_node("df_trees:tunnel_tube", {
|
||||
drawtype = "nodebox",
|
||||
is_ground_content = false,
|
||||
paramtype = "light",
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
node_box = {
|
||||
type = "fixed",
|
||||
@ -43,8 +45,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_bottom", {
|
||||
mesh = "tunnel_tube_slant.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_trees:tunnel_tube",
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
@ -60,7 +62,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_bottom", {
|
||||
{-0.5, 0.0, -0.875, 0.5, 0.5, 0.125},
|
||||
},
|
||||
},
|
||||
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:tunnel_tube_slant_top", {
|
||||
@ -74,8 +77,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_top", {
|
||||
mesh = "tunnel_tube_slant_2.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_trees:tunnel_tube",
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
@ -91,6 +94,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_top", {
|
||||
{-0.5, 0.0, -0.375, 0.5, 0.5, 0.625},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:tunnel_tube_slant_full", {
|
||||
@ -104,8 +109,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_full", {
|
||||
mesh = "tunnel_tube_slant_full.obj",
|
||||
paramtype = "light",
|
||||
drop = "df_trees:tunnel_tube",
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, tree = 1, oddly_breakable_by_hand=1, flammable = 2, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=5},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
@ -121,6 +126,8 @@ minetest.register_node("df_trees:tunnel_tube_slant_full", {
|
||||
{-0.5, 0, -1.25, 0.5, 0.5, -0.25},
|
||||
},
|
||||
},
|
||||
_mcl_blast_resistance = 2,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
--Wood
|
||||
@ -133,7 +140,7 @@ minetest.register_craft({
|
||||
|
||||
-- Paper
|
||||
minetest.register_craft({
|
||||
output = df_trees.node_names.paper .. " 3",
|
||||
output = df_dependencies.node_name_paper .. " 3",
|
||||
type = "shapeless",
|
||||
recipe = {'df_trees:tunnel_tube', 'bucket:bucket_water'},
|
||||
replacements = {{"bucket:bucket_water", "bucket:bucket_empty"}},
|
||||
@ -147,12 +154,13 @@ minetest.register_node("df_trees:tunnel_tube_wood", {
|
||||
place_param2 = 0,
|
||||
tiles = {"dfcaverns_tunnel_tube_wood_top.png", "dfcaverns_tunnel_tube_wood_top.png", "dfcaverns_tunnel_tube_wood_side.png"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1, handy=1,axey=1, building_block=1, material_wood=1, fire_encouragement=5, fire_flammability=20},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 2,
|
||||
})
|
||||
|
||||
df_trees.register.all_stairs("tunnel_tube_wood")
|
||||
df_trees.register.all_fences("tunnel_tube_wood", {burntime = 9})
|
||||
df_dependencies.register_all_stairs_and_fences("tunnel_tube_wood", {burntime = 9})
|
||||
|
||||
minetest.register_craft({
|
||||
type = "fuel",
|
||||
@ -172,11 +180,42 @@ minetest.register_craft({
|
||||
|
||||
-- TNT
|
||||
-----------------------------------------------------------------------------------------------------------
|
||||
|
||||
local gunpowder = df_dependencies.node_name_gunpowder
|
||||
local tnt_ignite_sound = df_dependencies.soundfile_tnt_ignite
|
||||
local tnt_boom = df_dependencies.tnt_boom
|
||||
|
||||
if df_trees.config.enable_tnt then
|
||||
|
||||
local tnt_radius = tonumber(minetest.settings:get("tnt_radius") or 3) * 2/3
|
||||
local tnt_def = {radius = tnt_radius, damage_radius = tnt_radius * 2}
|
||||
local torch_item = df_trees.node_names.torch
|
||||
local torch_item = df_dependencies.node_name_torch
|
||||
|
||||
local drop_items = {
|
||||
max_items = 1,
|
||||
items = {
|
||||
{
|
||||
items = {'df_trees:tunnel_tube_sapling'},
|
||||
rarity = 2,
|
||||
},
|
||||
}
|
||||
}
|
||||
if gunpowder then
|
||||
drop_items.max_items = 3
|
||||
table.insert(drop_items.items, {
|
||||
items = {'df_trees:tunnel_tube_sapling', gunpowder},
|
||||
rarity = 2,
|
||||
})
|
||||
table.insert(drop_items.items, {
|
||||
items = {'df_trees:tunnel_tube_sapling', gunpowder .. ' 2'},
|
||||
rarity = 2,
|
||||
})
|
||||
end
|
||||
|
||||
local on_burn = function(pos)
|
||||
minetest.swap_node(pos, {name = "df_trees:tunnel_tube_fruiting_body_burning"})
|
||||
minetest.registered_nodes["df_trees:tunnel_tube_fruiting_body_burning"].on_construct(pos)
|
||||
end
|
||||
|
||||
minetest.register_node("df_trees:tunnel_tube_fruiting_body", {
|
||||
description = S("Tunnel Tube Fruiting Body"),
|
||||
@ -185,26 +224,12 @@ if df_trees.config.enable_tnt then
|
||||
tiles = {"dfcaverns_tunnel_tube.png^[multiply:#b09090"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 3, oddly_breakable_by_hand=1, flammable = 2, tnt = 1,},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, oddly_breakable_by_hand=1, flammable = 2, tnt = 1, handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
drop = {
|
||||
max_items = 3,
|
||||
items = {
|
||||
{
|
||||
items = {'df_trees:tunnel_tube_sapling'},
|
||||
rarity = 2,
|
||||
},
|
||||
{
|
||||
items = {'df_trees:tunnel_tube_sapling', 'tnt:gunpowder'},
|
||||
rarity = 2,
|
||||
},
|
||||
{
|
||||
items = {'df_trees:tunnel_tube_sapling', 'tnt:gunpowder 2'},
|
||||
rarity = 2,
|
||||
},
|
||||
},
|
||||
},
|
||||
drop = drop_items,
|
||||
_mcl_blast_resistance = 12,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
on_punch = function(pos, node, puncher)
|
||||
if puncher:get_wielded_item():get_name() == torch_item then
|
||||
@ -214,25 +239,22 @@ if df_trees.config.enable_tnt then
|
||||
end
|
||||
end,
|
||||
on_blast = function(pos, intensity)
|
||||
minetest.swap_node(pos, {name="air"})
|
||||
minetest.after(0.1, function()
|
||||
tnt.boom(pos, tnt_def)
|
||||
tnt_boom(pos, tnt_def)
|
||||
end)
|
||||
end,
|
||||
mesecons = {effector =
|
||||
{action_on =
|
||||
function(pos)
|
||||
tnt.boom(pos, tnt_def)
|
||||
minetest.swap_node(pos, {name="air"})
|
||||
tnt_boom(pos, tnt_def)
|
||||
end
|
||||
}
|
||||
},
|
||||
on_burn = function(pos)
|
||||
minetest.swap_node(pos, {name = "df_trees:tunnel_tube_fruiting_body_burning"})
|
||||
minetest.registered_nodes["df_trees:tunnel_tube_fruiting_body_burning"].on_construct(pos)
|
||||
end,
|
||||
on_ignite = function(pos, igniter)
|
||||
minetest.swap_node(pos, {name = "df_trees:tunnel_tube_fruiting_body_burning"})
|
||||
minetest.registered_nodes["df_trees:tunnel_tube_fruiting_body_burning"].on_construct(pos)
|
||||
end,
|
||||
on_burn = on_burn,
|
||||
on_ignite = on_burn,
|
||||
_on_burn = on_burn,
|
||||
})
|
||||
|
||||
minetest.register_node("df_trees:tunnel_tube_fruiting_body_burning", {
|
||||
@ -244,14 +266,21 @@ if df_trees.config.enable_tnt then
|
||||
groups = {not_in_creative_inventory = 1,},
|
||||
light_source = 5,
|
||||
drop = "",
|
||||
sounds = df_trees.sounds.wood,
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
_mcl_blast_resistance = 0,
|
||||
_mcl_hardness = 2,
|
||||
on_timer = function(pos, elapsed)
|
||||
tnt.boom(pos, tnt_def)
|
||||
minetest.swap_node(pos, {name="air"})
|
||||
tnt_boom(pos, tnt_def)
|
||||
end,
|
||||
on_blast = function(pos)
|
||||
minetest.swap_node(pos, {name="air"})
|
||||
minetest.after(0.1, function()
|
||||
tnt_boom(pos, tnt_def)
|
||||
end)
|
||||
end,
|
||||
-- unaffected by explosions
|
||||
on_blast = function() end,
|
||||
on_construct = function(pos)
|
||||
minetest.sound_play("tnt_ignite", {pos = pos})
|
||||
minetest.sound_play(tnt_ignite_sound, {pos = pos})
|
||||
minetest.get_node_timer(pos):start(4)
|
||||
end,
|
||||
})
|
||||
@ -263,9 +292,11 @@ else
|
||||
tiles = {"dfcaverns_tunnel_tube.png^[multiply:#b09090"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {choppy = 3, oddly_breakable_by_hand=1, flammable = 2},
|
||||
sounds = df_trees.sounds.wood,
|
||||
groups = {choppy = 3, oddly_breakable_by_hand=1, flammable = 2,handy=1, hoey=1, shearsy=1, swordy=1, deco_block=1, dig_by_piston=1, fire_encouragement=15, fire_flammability=30},
|
||||
sounds = df_dependencies.sound_wood(),
|
||||
on_place = minetest.rotate_node,
|
||||
_mcl_blast_resistance = 12,
|
||||
_mcl_hardness = 2,
|
||||
|
||||
drop = {
|
||||
max_items = 3,
|
||||
@ -307,8 +338,10 @@ minetest.register_node("df_trees:tunnel_tube_sapling", {
|
||||
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
|
||||
},
|
||||
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11},
|
||||
sounds = df_trees.sounds.leaves,
|
||||
attached_node = 1, sapling = 1, light_sensitive_fungus = 11, dig_immediate=3,dig_by_piston=1,destroy_by_lava_flow=1,deco_block=1, compostability=30},
|
||||
sounds = df_dependencies.sound_leaves(),
|
||||
_mcl_blast_resistance = 10,
|
||||
_mcl_hardness = 0.2,
|
||||
|
||||
on_construct = function(pos)
|
||||
if df_trees.tunnel_tube_growth_permitted(pos) then
|
||||
@ -317,6 +350,7 @@ minetest.register_node("df_trees:tunnel_tube_sapling", {
|
||||
df_trees.config.tunnel_tube_delay_multiplier*df_trees.config.tree_max_growth_delay))
|
||||
end
|
||||
end,
|
||||
|
||||
on_destruct = function(pos)
|
||||
minetest.get_node_timer(pos):stop()
|
||||
end,
|
||||
|
Reference in New Issue
Block a user