From 81259e9fcc1a91380d8eca7d73317a357be2c27c Mon Sep 17 00:00:00 2001 From: Novatux Date: Tue, 12 May 2015 20:55:46 +0200 Subject: [PATCH] De-duplicate code in doors mod in make_on_blast --- mods/doors/init.lua | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/mods/doors/init.lua b/mods/doors/init.lua index ee08d954..f3dd1695 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -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 @@ -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", { @@ -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", { @@ -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", { @@ -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