Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Fire: Add 'permanent flame' node
Update 'disable fire' documentation in conf.example
  • Loading branch information
paramat committed Oct 28, 2015
1 parent 7c0abe9 commit 6f6d46d
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 30 deletions.
3 changes: 2 additions & 1 deletion minetest.conf.example
Expand Up @@ -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
Expand Down
94 changes: 65 additions & 29 deletions mods/fire/init.lua
Expand Up @@ -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)
Expand All @@ -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,
})


Expand Down Expand Up @@ -129,38 +164,39 @@ function fire.flame_should_extinguish(pos)
end


-- Enable ABMs according to 'disable fire' setting
-- Extinguish all flames quickly with water, snow, ice

if minetest.setting_getbool("disable_fire") then
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,
})

-- Extinguish flames quickly with dedicated ABM

minetest.register_abm({
nodenames = {"fire:basic_flame"},
interval = 3,
chance = 2,
action = function(p0, node, _, _)
minetest.remove_node(p0)
end,
})
-- Enable the following ABMs according to 'disable fire' setting

else
if minetest.setting_getbool("disable_fire") then

-- Extinguish flames quickly with water, snow, ice
-- Remove basic flames only

minetest.register_abm({
nodenames = {"fire:basic_flame"},
neighbors = {"group:puts_out_fire"},
interval = 3,
interval = 7,
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
else

-- Ignite neighboring nodes, add basic flames

minetest.register_abm({
nodenames = {"group:flammable"},
Expand All @@ -179,7 +215,7 @@ else
end,
})

-- Remove flames and flammable nodes
-- Remove basic flames and flammable nodes

minetest.register_abm({
nodenames = {"fire:basic_flame"},
Expand Down

0 comments on commit 6f6d46d

Please sign in to comment.