description = "Flint and Steel",
inventory_image = "fire_flint_steel.png",
on_use = function(itemstack, user, pointed_thing)
- itemstack:add_wear(1000)
local pt = pointed_thing
+ minetest.sound_play(
+ "fire_flint_and_steel",
+ {pos = pt.above, gain = 0.6, max_hear_distance = 8}
+ )
+ itemstack:add_wear(1000)
if pt.type == "node" then
local node_under = minetest.get_node(pt.under).name
local is_coalblock = node_under == "default:coalblock"
-- Extinguish all flames quickly with water, snow, ice
minetest.register_abm({
+ label = "Extinguish flame",
nodenames = {"fire:basic_flame", "fire:permanent_flame"},
neighbors = {"group:puts_out_fire"},
interval = 3,
})
--- Enable the following ABMs according to 'disable fire' setting
+-- Enable the following ABMs according to 'enable fire' setting
+
+local fire_enabled = minetest.setting_getbool("enable_fire")
+if fire_enabled == nil then
+ -- New setting not specified, check for old setting.
+ -- If old setting is also not specified, 'not nil' is true.
+ fire_enabled = not minetest.setting_getbool("disable_fire")
+end
-if minetest.setting_getbool("disable_fire") then
+if not fire_enabled then
-- Remove basic flames only
minetest.register_abm({
+ label = "Remove disabled fire",
nodenames = {"fire:basic_flame"},
interval = 7,
chance = 1,
action = minetest.remove_node,
})
-else
+else -- Fire enabled
-- Ignite neighboring nodes, add basic flames
minetest.register_abm({
+ label = "Ignite flame",
nodenames = {"group:flammable"},
neighbors = {"group:igniter"},
interval = 7,
-- Remove flammable nodes
minetest.register_abm({
+ label = "Remove flammable nodes",
nodenames = {"fire:basic_flame"},
neighbors = "group:flammable",
interval = 5,