mirror of
https://git.minetest.land/VoxeLibre/VoxeLibre.git
synced 2024-09-12 08:42:10 +02:00
Adds soul and nomal campfires. Code start and models from issue 505. Textures are all PixelPerfection.
129 lines
4.1 KiB
Lua
129 lines
4.1 KiB
Lua
-- ||||||||||||||||||||||||||||||||
|
|
-- ||||||||||| CAMPFIRES ||||||||||
|
|
-- ||||||||||||||||||||||||||||||||
|
|
|
|
-- TO-DO:
|
|
-- * Add Smoke Particles
|
|
-- * Add Spark Particles
|
|
-- * Add Cooking Meat
|
|
-- * Add Working Sounds
|
|
|
|
S = minetest.get_translator(minetest.get_current_modname())
|
|
|
|
campfires = {
|
|
{ name = "Campfire", lightlevel = 15, techname = "campfire", damage = 1, drops = "mcl_core:charcoal_lump 2" },
|
|
{ name = "Soul Campfire", lightlevel = 10, techname = "soul_campfire", damage = 2, drops = "mcl_blackstone:soul_soil" },
|
|
}
|
|
|
|
for _, campfire in pairs(campfires) do
|
|
-- Define Campfire
|
|
minetest.register_node("mcl_campfires:" .. campfire.techname, {
|
|
description = S(campfire.name),
|
|
_tt_help = S("Cooks food and keeps bees happy."),
|
|
_doc_items_longdesc = S("Campfires have multiple uses, including keeping bees happy, cooking raw meat and fish, and as a trap."),
|
|
inventory_image = "mcl_campfires_" .. campfire.techname .. "_inv.png",
|
|
drawtype = "mesh",
|
|
mesh = "mcl_campfires_campfire.obj",
|
|
tiles = {{name="mcl_campfires_log.png"},},
|
|
groups = { handy=1, axey=1, material_wood=1, not_in_creative_inventory=1 },
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
on_rightclick = function (pos, node, player, itemstack, pointed_thing)
|
|
if player:get_wielded_item():get_name() == "mcl_fire:flint_and_steel" then
|
|
node.name = "mcl_campfires:" .. campfire.techname .. "_lit"
|
|
minetest.set_node(pos, node)
|
|
end
|
|
end,
|
|
drop = campfire.drops,
|
|
_mcl_silk_touch_drop = {"mcl_campfires:" .. campfire.techname},
|
|
mcl_sounds.node_sound_wood_defaults(),
|
|
selection_box = {
|
|
type = 'fixed',
|
|
fixed = {-.5, -.5, -.5, .5, -.05, .5}, --left, bottom, front, right, top
|
|
},
|
|
collision_box = {
|
|
type = 'fixed',
|
|
fixed = {-.5, -.5, -.5, .5, -.05, .5},
|
|
},
|
|
_mcl_blast_resistance = 2,
|
|
_mcl_hardness = 2,
|
|
})
|
|
|
|
--Define Lit Campfire
|
|
minetest.register_node("mcl_campfires:" .. campfire.techname .. "_lit", {
|
|
description = S(campfire.name),
|
|
_tt_help = S("Cooks food and keeps bees happy."),
|
|
_doc_items_longdesc = S("Campfires have multiple uses, including keeping bees happy, cooking raw meat and fish, and as a trap."),
|
|
inventory_image = "mcl_campfires_" .. campfire.techname .. "_inv.png",
|
|
drawtype = "mesh",
|
|
mesh = "mcl_campfires_campfire_lit.obj",
|
|
tiles = {{
|
|
name="mcl_campfires_" .. campfire.techname .. "_fire.png",
|
|
animation={
|
|
type="vertical_frames",
|
|
aspect_w=16,
|
|
aspect_h=16,
|
|
length=2.0
|
|
}},
|
|
{name="mcl_campfires_" .. campfire.techname .. "_log_lit.png",
|
|
animation={
|
|
type="vertical_frames",
|
|
aspect_w=16,
|
|
aspect_h=16,
|
|
length=2.0
|
|
}}
|
|
},
|
|
groups = { handy=1, axey=1, material_wood=1 },
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
on_rightclick = function (pos, node, player, itemstack, pointed_thing)
|
|
if player:get_wielded_item():get_name():find("shovel") then
|
|
node.name = "mcl_campfires:" .. campfire.techname
|
|
minetest.set_node(pos, node)
|
|
end
|
|
end,
|
|
drop = campfire.drops,
|
|
_mcl_silk_touch_drop = {"mcl_campfires:" .. campfire.techname .. "_lit"},
|
|
light_source = campfire.lightlevel,
|
|
mcl_sounds.node_sound_wood_defaults(),
|
|
selection_box = {
|
|
type = "fixed",
|
|
fixed = {-.5, -.5, -.5, .5, -.05, .5}, --left, bottom, front, right, top
|
|
},
|
|
collision_box = {
|
|
type = "fixed",
|
|
fixed = {-.5, -.5, -.5, .5, -.05, .5},
|
|
},
|
|
_mcl_blast_resistance = 2,
|
|
_mcl_hardness = 2,
|
|
damage_per_second = campfire.damage,
|
|
})
|
|
end
|
|
|
|
minetest.register_craft({
|
|
output = "mcl_campfires:campfire_lit",
|
|
recipe = {
|
|
{ "", "mcl_core:stick", "" },
|
|
{ "mcl_core:stick", "mcl_core:charcoal_lump", "mcl_core:stick" },
|
|
{ "group:tree", "group:tree", "group:tree" },
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "mcl_campfires:soul_campfire_lit",
|
|
recipe = {
|
|
{ "", "mcl_core:stick", "" },
|
|
{ "mcl_core:stick", "mcl_blackstone:soul_soil", "mcl_core:stick" },
|
|
{ "group:tree", "group:tree", "group:tree" },
|
|
}
|
|
})
|
|
|
|
minetest.register_craft({
|
|
output = "mcl_campfires:soul_campfire_lit",
|
|
recipe = {
|
|
{ "", "mcl_core:stick", "" },
|
|
{ "mcl_core:stick", "mcl_nether:soul_sand", "mcl_core:stick" },
|
|
{ "group:tree", "group:tree", "group:tree" },
|
|
}
|
|
})
|