Skip to content
Snippets Groups Projects
Commit c95cd841 authored by BlockMen's avatar BlockMen
Browse files

Fix xpanes API

parent cc2573ac
No related branches found
No related tags found
No related merge requests found
...@@ -120,7 +120,7 @@ Xpanes API ...@@ -120,7 +120,7 @@ Xpanes API
Creates panes that automatically connect to each other Creates panes that automatically connect to each other
xpanes.register_pane(subname, def) xpanes.register_pane(subname, def)
-> subname: used for nodename. Result: "xpanes:subname_{1..16}" -> subname: used for nodename. Result: "xpanes:subname" and "xpanes:subname_{2..15}"
-> def: See [#Pane definition] -> def: See [#Pane definition]
#Pane definition #Pane definition
...@@ -134,10 +134,6 @@ xpanes.register_pane(subname, def) ...@@ -134,10 +134,6 @@ xpanes.register_pane(subname, def)
^ See [#Default sounds] ^ See [#Default sounds]
recipe = {{"","","","","","","","",""}}, recipe = {{"","","","","","","","",""}},
^ Recipe field only ^ Recipe field only
on_construct = function(pos)
update_pane(pos, "pane")
end,
^ Required to handle rotation correctly
} }
Default sounds Default sounds
......
...@@ -37,9 +37,18 @@ end ...@@ -37,9 +37,18 @@ end
local function update_nearby(pos, node) local function update_nearby(pos, node)
node = node or minetest.get_node(pos) node = node or minetest.get_node(pos)
if node.name:sub(1, 7) ~= "xpanes:" then return end local name = node.name
local underscore_pos = node.name:find("_") or 0 if not name or node.name:sub(1, 7) ~= "xpanes:" then
local name = node.name:sub(8, underscore_pos - 1) return
end
local underscore_pos = string.find(name, "_[^_]*$") or 0
local len = name:len()
local num = tonumber(name:sub(underscore_pos+1, len))
if not num or num < 1 or num > 15 then
name = name:sub(8)
else
name = name:sub(8, underscore_pos - 1)
end
for i, dir in pairs(directions) do for i, dir in pairs(directions) do
update_pane({ update_pane({
x = pos.x + dir.x, x = pos.x + dir.x,
...@@ -105,7 +114,7 @@ function xpanes.register_pane(name, def) ...@@ -105,7 +114,7 @@ function xpanes.register_pane(name, def)
if cnt == 1 then if cnt == 1 then
texture = def.textures[1].."^"..def.textures[2] texture = def.textures[1].."^"..def.textures[2]
end end
minetest.register_node("xpanes:"..name.."_"..i, { minetest.register_node(":xpanes:"..name.."_"..i, {
drawtype = "nodebox", drawtype = "nodebox",
tiles = {def.textures[3], def.textures[3], texture}, tiles = {def.textures[3], def.textures[3], texture},
paramtype = "light", paramtype = "light",
...@@ -123,7 +132,11 @@ function xpanes.register_pane(name, def) ...@@ -123,7 +132,11 @@ function xpanes.register_pane(name, def)
}) })
end end
minetest.register_node("xpanes:"..name, def) def.on_construct = function(pos)
update_pane(pos, name)
end
minetest.register_node(":xpanes:"..name, def)
minetest.register_craft({ minetest.register_craft({
output = "xpanes:"..name.." 16", output = "xpanes:"..name.." 16",
...@@ -150,9 +163,6 @@ xpanes.register_pane("pane", { ...@@ -150,9 +163,6 @@ xpanes.register_pane("pane", {
wield_image = "default_glass.png", wield_image = "default_glass.png",
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1}, groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
on_construct = function(pos)
update_pane(pos, "pane")
end,
recipe = { 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'}
...@@ -175,9 +185,6 @@ xpanes.register_pane("bar", { ...@@ -175,9 +185,6 @@ xpanes.register_pane("bar", {
wield_image = "xpanes_bar.png", wield_image = "xpanes_bar.png",
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1}, groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
update_pane(pos, "bar")
end,
recipe = { 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