From efd090228d0b39f39ea7c67a959c6e8ee3ba62b1 Mon Sep 17 00:00:00 2001 From: HybridDog Date: Sat, 30 Mar 2019 21:33:08 +0100 Subject: [PATCH] fire: Document flammable group, a little code cleanup --- game_api.txt | 2 ++ mods/fire/init.lua | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/game_api.txt b/game_api.txt index b3bb3096..61be13f5 100644 --- a/game_api.txt +++ b/game_api.txt @@ -362,6 +362,8 @@ The farming API allows you to easily register plants and hoes. Fire API -------- +Add group flammable when registering a node to make fire seek for it. +Add it to an item to make it burn up when dropped in lava or fire. New node def property: `on_burn(pos)` diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 612e052d..9c36720a 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -320,7 +320,7 @@ if fire_enabled then interval = 7, chance = 12, catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos) local p = minetest.find_node_near(pos, 1, {"air"}) if p then minetest.set_node(p, {name = "fire:basic_flame"}) @@ -337,17 +337,18 @@ if fire_enabled then interval = 5, chance = 18, catch_up = false, - action = function(pos, node, active_object_count, active_object_count_wider) + action = function(pos) local p = minetest.find_node_near(pos, 1, {"group:flammable"}) - if p then - local flammable_node = minetest.get_node(p) - local def = minetest.registered_nodes[flammable_node.name] - if def.on_burn then - def.on_burn(p) - else - minetest.remove_node(p) - minetest.check_for_falling(p) - end + if not p then + return + end + local flammable_node = minetest.get_node(p) + local def = minetest.registered_nodes[flammable_node.name] + if def.on_burn then + def.on_burn(p) + else + minetest.remove_node(p) + minetest.check_for_falling(p) end end, })