mirror of
				https://github.com/luanti-org/minetest_game.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Fire: Add 'permanent flame' node
Update 'disable fire' documentation in conf.example
This commit is contained in:
		@@ -9,7 +9,8 @@
 | 
			
		||||
# 0 to disable
 | 
			
		||||
#share_bones_time = 1200
 | 
			
		||||
 | 
			
		||||
# Whether fire should be disabled (all fire nodes will instantly disappear)
 | 
			
		||||
# Whether standard fire should be disabled ('basic flame' nodes will disappear)
 | 
			
		||||
# 'permanent flame' nodes will remain with either setting
 | 
			
		||||
#disable_fire = false
 | 
			
		||||
 | 
			
		||||
# Whether steel tools, torches and cobblestone should be given to new players
 | 
			
		||||
 
 | 
			
		||||
@@ -5,25 +5,31 @@
 | 
			
		||||
fire = {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Register flame node
 | 
			
		||||
-- Register flame nodes
 | 
			
		||||
 | 
			
		||||
minetest.register_node("fire:basic_flame", {
 | 
			
		||||
	description = "Fire",
 | 
			
		||||
	description = "Basic Flame",
 | 
			
		||||
	drawtype = "firelike",
 | 
			
		||||
	tiles = {{
 | 
			
		||||
		name = "fire_basic_flame_animated.png",
 | 
			
		||||
		animation = {type = "vertical_frames",
 | 
			
		||||
			aspect_w = 16, aspect_h = 16, length = 1},
 | 
			
		||||
	}},
 | 
			
		||||
	tiles = {
 | 
			
		||||
		{
 | 
			
		||||
			name = "fire_basic_flame_animated.png",
 | 
			
		||||
			animation = {
 | 
			
		||||
				type = "vertical_frames",
 | 
			
		||||
				aspect_w = 16,
 | 
			
		||||
				aspect_h = 16,
 | 
			
		||||
				length = 1
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "fire_basic_flame.png",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	light_source = 14,
 | 
			
		||||
	groups = {igniter = 2, dig_immediate = 3},
 | 
			
		||||
	drop = '',
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	buildable_to = true,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	damage_per_second = 4,
 | 
			
		||||
	groups = {igniter = 2, dig_immediate = 3},
 | 
			
		||||
	drop = "",
 | 
			
		||||
 | 
			
		||||
	on_construct = function(pos)
 | 
			
		||||
		minetest.after(0, fire.on_flame_add_at, pos)
 | 
			
		||||
@@ -33,7 +39,36 @@ minetest.register_node("fire:basic_flame", {
 | 
			
		||||
		minetest.after(0, fire.on_flame_remove_at, pos)
 | 
			
		||||
	end,
 | 
			
		||||
 | 
			
		||||
	on_blast = function() end, -- unaffected by explosions
 | 
			
		||||
	on_blast = function()
 | 
			
		||||
	end, -- unaffected by explosions
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("fire:permanent_flame", {
 | 
			
		||||
	description = "Permanent Flame",
 | 
			
		||||
	drawtype = "firelike",
 | 
			
		||||
	tiles = {
 | 
			
		||||
		{
 | 
			
		||||
			name = "fire_basic_flame_animated.png",
 | 
			
		||||
			animation = {
 | 
			
		||||
				type = "vertical_frames",
 | 
			
		||||
				aspect_w = 16,
 | 
			
		||||
				aspect_h = 16,
 | 
			
		||||
				length = 1
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	inventory_image = "fire_basic_flame.png",
 | 
			
		||||
	paramtype = "light",
 | 
			
		||||
	light_source = 14,
 | 
			
		||||
	walkable = false,
 | 
			
		||||
	buildable_to = true,
 | 
			
		||||
	sunlight_propagates = true,
 | 
			
		||||
	damage_per_second = 4,
 | 
			
		||||
	groups = {igniter = 2, dig_immediate = 3},
 | 
			
		||||
	drop = "",
 | 
			
		||||
 | 
			
		||||
	on_blast = function()
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -129,15 +164,30 @@ function fire.flame_should_extinguish(pos)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Enable ABMs according to 'disable fire' setting
 | 
			
		||||
-- Extinguish all flames quickly with water, snow, ice
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
	nodenames = {"fire:basic_flame", "fire:permanent_flame"},
 | 
			
		||||
	neighbors = {"group:puts_out_fire"},
 | 
			
		||||
	interval = 3,
 | 
			
		||||
	chance = 2,
 | 
			
		||||
	action = function(p0, node, _, _)
 | 
			
		||||
		minetest.remove_node(p0)
 | 
			
		||||
		minetest.sound_play("fire_extinguish_flame",
 | 
			
		||||
			{pos = p0, max_hear_distance = 16, gain = 0.25})
 | 
			
		||||
	end,
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Enable the following ABMs according to 'disable fire' setting
 | 
			
		||||
 | 
			
		||||
if minetest.setting_getbool("disable_fire") then
 | 
			
		||||
 | 
			
		||||
	-- Extinguish flames quickly with dedicated ABM
 | 
			
		||||
	-- Remove basic flames only
 | 
			
		||||
 | 
			
		||||
	minetest.register_abm({
 | 
			
		||||
		nodenames = {"fire:basic_flame"},
 | 
			
		||||
		interval = 3,
 | 
			
		||||
		interval = 7,
 | 
			
		||||
		chance = 2,
 | 
			
		||||
		action = function(p0, node, _, _)
 | 
			
		||||
			minetest.remove_node(p0)
 | 
			
		||||
@@ -146,21 +196,7 @@ if minetest.setting_getbool("disable_fire") then
 | 
			
		||||
 | 
			
		||||
else
 | 
			
		||||
 | 
			
		||||
	-- Extinguish flames quickly with water, snow, ice
 | 
			
		||||
 | 
			
		||||
	minetest.register_abm({
 | 
			
		||||
		nodenames = {"fire:basic_flame"},
 | 
			
		||||
		neighbors = {"group:puts_out_fire"},
 | 
			
		||||
		interval = 3,
 | 
			
		||||
		chance = 2,
 | 
			
		||||
		action = function(p0, node, _, _)
 | 
			
		||||
			minetest.remove_node(p0)
 | 
			
		||||
			minetest.sound_play("fire_extinguish_flame",
 | 
			
		||||
				{pos = p0, max_hear_distance = 16, gain = 0.25})
 | 
			
		||||
		end,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	-- Ignite neighboring nodes
 | 
			
		||||
	-- Ignite neighboring nodes, add basic flames
 | 
			
		||||
 | 
			
		||||
	minetest.register_abm({
 | 
			
		||||
		nodenames = {"group:flammable"},
 | 
			
		||||
@@ -179,7 +215,7 @@ else
 | 
			
		||||
		end,
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	-- Remove flames and flammable nodes
 | 
			
		||||
	-- Remove basic flames and flammable nodes
 | 
			
		||||
 | 
			
		||||
	minetest.register_abm({
 | 
			
		||||
		nodenames = {"fire:basic_flame"},
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user