forked from luanti-org/minetest_game
		
	Remove ugly def of xpanes
This commit is contained in:
		@@ -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"}
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user