Skip to content

Commit

Permalink
De-duplicate code in doors mod in make_on_blast
Browse files Browse the repository at this point in the history
  • Loading branch information
Ekdohibs committed May 12, 2015
1 parent 4bd1094 commit 81259e9
Showing 1 changed file with 9 additions and 17 deletions.
26 changes: 9 additions & 17 deletions mods/doors/init.lua
Expand Up @@ -115,22 +115,14 @@ function doors.register_door(name, def)
end
end

local function make_on_blast(base_name, door_type, other_door_type)
local function make_on_blast(base_name, dir, door_type, other_door_type)
if def.only_placer_can_open then
return function() end
else
if door_type == "_b_1" or door_type == "_b_2" then
return function(pos, intensity)
check_and_blast(pos, base_name .. door_type)
pos.y = pos.y + 1
check_and_blast(pos, base_name .. other_door_type)
end
elseif door_type == "_t_1" or door_type == "_t_2" then
return function(pos, intensity)
check_and_blast(pos, base_name .. door_type)
pos.y = pos.y - 1
check_and_blast(pos, base_name .. other_door_type)
end
return function(pos, intensity)
check_and_blast(pos, base_name .. door_type)
pos.y = pos.y + dir
check_and_blast(pos, base_name .. other_door_type)
end
end
end
Expand Down Expand Up @@ -201,7 +193,7 @@ function doors.register_door(name, def)
can_dig = check_player_priv,
sounds = def.sounds,
sunlight_propagates = def.sunlight,
on_blast = make_on_blast(name, "_b_1", "_t_1")
on_blast = make_on_blast(name, 1, "_b_1", "_t_1")
})

minetest.register_node(name.."_t_1", {
Expand Down Expand Up @@ -234,7 +226,7 @@ function doors.register_door(name, def)
can_dig = check_player_priv,
sounds = def.sounds,
sunlight_propagates = def.sunlight,
on_blast = make_on_blast(name, "_t_1", "_b_1")
on_blast = make_on_blast(name, -1, "_t_1", "_b_1")
})

minetest.register_node(name.."_b_2", {
Expand Down Expand Up @@ -267,7 +259,7 @@ function doors.register_door(name, def)
can_dig = check_player_priv,
sounds = def.sounds,
sunlight_propagates = def.sunlight,
on_blast = make_on_blast(name, "_b_2", "_t_2")
on_blast = make_on_blast(name, 1, "_b_2", "_t_2")
})

minetest.register_node(name.."_t_2", {
Expand Down Expand Up @@ -300,7 +292,7 @@ function doors.register_door(name, def)
can_dig = check_player_priv,
sounds = def.sounds,
sunlight_propagates = def.sunlight,
on_blast = make_on_blast(name, "_t_2", "_b_2")
on_blast = make_on_blast(name, -1, "_t_2", "_b_2")
})

end
Expand Down

0 comments on commit 81259e9

Please sign in to comment.