Skip to content
Snippets Groups Projects
Commit 1f85f001 authored by Rui914's avatar Rui914 Committed by paramat
Browse files

Remove ugly def of xpanes

parent 279b85fc
No related branches found
No related tags found
No related merge requests found
......@@ -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"}
}
})
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment