1 minetest.register_node("fire:fire", {
2 description = "How did you even get this?",
8 type = "vertical_frames",
15 inventory_image = "fire.png",
16 groups = {dig_immediate = 1,hurt_inside=2},
17 sounds = main.stoneSound(),
21 is_ground_content = false,
22 light_source = 11, --debugging
23 on_construct = function(pos)
24 local under = minetest.get_node(vector.new(pos.x,pos.y-1,pos.z)).name
26 if under == "nether:obsidian" then
27 minetest.remove_node(pos)
28 create_nether_portal(pos)
29 --fire lasts forever on netherrack
30 elseif under ~= "nether:netherrack" then
31 local timer = minetest.get_node_timer(pos)
32 timer:start(math.random(0,2)+math.random())
35 on_timer = function(pos, elapsed)
36 local find_flammable = minetest.find_nodes_in_area(vector.subtract(pos,1), vector.add(pos,1), {"group:flammable"})
37 --print(dump(find_flammable))
39 for _,p_pos in pairs(find_flammable) do
40 if math.random() > 0.9 then
41 minetest.set_node(p_pos,{name="fire:fire"})
42 local timer = minetest.get_node_timer(p_pos)
43 timer:start(math.random(0,2)+math.random())
47 if math.random() > 0.85 then
48 minetest.remove_node(pos)
50 local timer = minetest.get_node_timer(pos)
51 timer:start(math.random(0,2)+math.random())
57 minetest.register_tool("fire:flint_and_steel", {
58 description = "Flint and Steel",
59 inventory_image = "flint_and_steel.png",
60 on_place = function(itemstack, placer, pointed_thing)
61 if pointed_thing.type ~= "node" then
64 if minetest.get_node(pointed_thing.above).name ~= "air" then
65 minetest.sound_play("flint_failed", {pos=pointed_thing.above})
69 --can't make fire in the aether
70 if pointed_thing.above.y >= 20000 then
71 minetest.sound_play("flint_failed", {pos=pointed_thing.above,pitch=math.random(75,95)/100})
75 minetest.add_node(pointed_thing.above,{name="fire:fire"})
76 minetest.sound_play("flint_and_steel", {pos=pointed_thing.above})
77 itemstack:add_wear(100)
80 sound = {breaks = {name="tool_break",gain=0.4}},
83 minetest.register_craft({
85 output = "fire:flint_and_steel",
86 recipe = {"main:flint","main:iron"},