2 minetest
.register_tool("mcl_fire:flint_and_steel", {
3 description
= "Flint and Steel",
4 _doc_items_longdesc
= "Flint and steel is a tool to start fires and ignite blocks.",
5 _doc_items_usagehelp
= "Rightclick the surface of a block to attempt to light a fire in front of it or ignite the block. A few blocks have an unique reaction when ignited.",
6 inventory_image
= "mcl_fire_flint_and_steel.png",
7 liquids_pointable
= false,
10 on_place
= function(itemstack
, user
, pointed_thing
)
11 -- Use pointed node's on_rightclick function first, if present
12 local node
= minetest
.get_node(pointed_thing
.under
)
13 if user
and not user
:get_player_control().sneak
then
14 if minetest
.registered_nodes
[node
.name
] and minetest
.registered_nodes
[node
.name
].on_rightclick
then
15 return minetest
.registered_nodes
[node
.name
].on_rightclick(pointed_thing
.under
, node
, user
, itemstack
) or itemstack
19 local idef
= itemstack
:get_definition()
21 "fire_flint_and_steel",
22 {pos
= pointed_thing
.above
, gain
= 0.5, max_hear_distance
= 8}
25 if pointed_thing
.type == "node" then
26 local nodedef
= minetest
.registered_nodes
[minetest
.get_node(pointed_thing
.under
).name
]
27 if nodedef
and nodedef
._on_ignite
then
28 local overwrite
= nodedef
._on_ignite(user
, pointed_thing
)
30 mcl_fire
.set_fire(pointed_thing
)
33 mcl_fire
.set_fire(pointed_thing
)
37 if itemstack
:get_count() == 0 and idef
.sound
and idef
.sound
.breaks
then
38 minetest
.sound_play(idef
.sound
.breaks
, {pos
=user
:getpos(), gain
=0.5})
40 if not minetest
.settings
:get_bool("creative_mode") and used
== true then
41 itemstack
:add_wear(65535/65) -- 65 uses
45 _dispense_into_walkable
= true,
46 _on_dispense
= function(stack
, pos
, droppos
, dropnode
, dropdir
)
47 if dropnode
.name
== "air" then
48 minetest
.add_node(droppos
, {name
="mcl_fire:fire"})
49 if not minetest
.settings
:get_bool("creative_mode") then
50 stack
:add_wear(65535/65) -- 65 uses
52 elseif dropnode
.name
== "mcl_tnt:tnt" then
54 if not minetest
.settings
:get_bool("creative_mode") then
55 stack
:add_wear(65535/65) -- 65 uses
60 sound
= { breaks
= "default_tool_breaks" },
63 minetest
.register_craft({
65 output
= 'mcl_fire:flint_and_steel',
66 recipe
= { 'mcl_core:iron_ingot', 'mcl_core:flint'},