From 1f85f001f9f888a071980c6929aa096193e05383 Mon Sep 17 00:00:00 2001
From: Rui914 <mrrst0914@gmail.com>
Date: Tue, 1 Sep 2015 01:35:59 +0900
Subject: [PATCH] Remove ugly def of xpanes

---
 mods/xpanes/init.lua | 62 ++++++++++++++++++--------------------------
 1 file changed, 25 insertions(+), 37 deletions(-)

diff --git a/mods/xpanes/init.lua b/mods/xpanes/init.lua
index 84221d65..ebd1566f 100644
--- a/mods/xpanes/init.lua
+++ b/mods/xpanes/init.lua
@@ -17,11 +17,7 @@ local function update_pane(pos, name)
 	end
 	local sum = 0
 	for i, dir in pairs(directions) do
-		local node = minetest.get_node({
-			x = pos.x + dir.x,
-			y = pos.y + dir.y,
-			z = pos.z + dir.z
-		})
+		local node = minetest.get_node(vector.add(pos, dir))
 		local def = minetest.registered_nodes[node.name]
 		local pane_num = def and def.groups.pane or 0
 		if pane_num > 0 or not def or (def.walkable ~= false and
@@ -50,14 +46,13 @@ local function update_nearby(pos, node)
 		name = name:sub(8, underscore_pos - 1)
 	end
 	for i, dir in pairs(directions) do
-		update_pane({
-			x = pos.x + dir.x,
-			y = pos.y + dir.y,
-			z = pos.z + dir.z
-		}, name)
+		update_pane(vector.add(pos, dir), name)
 	end
 end
 
+minetest.register_on_placenode(update_nearby)
+minetest.register_on_dignode(update_nearby)
+
 local half_boxes = {
 	{0,     -0.5, -1/32, 0.5,  0.5, 1/32},
 	{-1/32, -0.5, 0,     1/32, 0.5, 0.5},
@@ -82,6 +77,18 @@ local sb_full_boxes = {
 	{-0.06, -0.5, -0.5,  0.06, 0.5, 0.5}
 }
 
+local pane_def_fields = {
+	drawtype = "airlike",
+	paramtype = "light",
+	is_ground_content = false,
+	sunlight_propagates = true,
+	walkable = false,
+	pointable = false,
+	diggable = false,
+	buildable_to = true,
+	air_equivalent = true,
+}
+
 function xpanes.register_pane(name, def)
 	for i = 1, 15 do
 		local need = {}
@@ -132,6 +139,10 @@ function xpanes.register_pane(name, def)
 		})
 	end
 
+	for k, v in pairs(pane_def_fields) do
+		def[k] = def[k] or v
+	end
+
 	def.on_construct = function(pos)
 		update_pane(pos, name)
 	end
@@ -144,52 +155,29 @@ function xpanes.register_pane(name, def)
 	})
 end
 
-minetest.register_on_placenode(update_nearby)
-minetest.register_on_dignode(update_nearby)
-
 xpanes.register_pane("pane", {
 	description = "Glass Pane",
-	tiles = {"xpanes_space.png"},
-	drawtype = "airlike",
-	paramtype = "light",
-	is_ground_content = false,
-	sunlight_propagates = true,
-	walkable = false,
-	pointable = false,
-	diggable = false,
-	buildable_to = true,
-	air_equivalent = true,
 	textures = {"default_glass.png","xpanes_pane_half.png","xpanes_white.png"},
 	inventory_image = "default_glass.png",
 	wield_image = "default_glass.png",
 	sounds = default.node_sound_glass_defaults(),
 	groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
 	recipe = {
-		{'default:glass', 'default:glass', 'default:glass'},
-		{'default:glass', 'default:glass', 'default:glass'}
+		{"default:glass", "default:glass", "default:glass"},
+		{"default:glass", "default:glass", "default:glass"}
 	}
 })
 
 xpanes.register_pane("bar", {
 	description = "Iron bar",
-	tiles = {"xpanes_space.png"},
-	drawtype = "airlike",
-	paramtype = "light",
-	is_ground_content = false,
-	sunlight_propagates = true,
-	walkable = false,
-	pointable = false,
-	diggable = false,
-	buildable_to = true,
-	air_equivalent = true,
 	textures = {"xpanes_bar.png","xpanes_bar.png","xpanes_space.png"},
 	inventory_image = "xpanes_bar.png",
 	wield_image = "xpanes_bar.png",
 	groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
 	sounds = default.node_sound_stone_defaults(),
 	recipe = {
-		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
-		{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}
+		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
+		{"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"}
 	}
 })
 
-- 
2.25.1