Skip to content

Commit

Permalink
Fix xpanes API
Browse files Browse the repository at this point in the history
  • Loading branch information
BlockMen committed Sep 16, 2014
1 parent cc2573a commit c95cd84
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 16 deletions.
6 changes: 1 addition & 5 deletions game_api.txt
Expand Up @@ -120,7 +120,7 @@ Xpanes API
Creates panes that automatically connect to each other

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]

#Pane definition
Expand All @@ -134,10 +134,6 @@ xpanes.register_pane(subname, def)
^ See [#Default sounds]
recipe = {{"","","","","","","","",""}},
^ Recipe field only
on_construct = function(pos)
update_pane(pos, "pane")
end,
^ Required to handle rotation correctly
}

Default sounds
Expand Down
29 changes: 18 additions & 11 deletions mods/xpanes/init.lua
Expand Up @@ -37,9 +37,18 @@ end

local function update_nearby(pos, node)
node = node or minetest.get_node(pos)
if node.name:sub(1, 7) ~= "xpanes:" then return end
local underscore_pos = node.name:find("_") or 0
local name = node.name:sub(8, underscore_pos - 1)
local name = node.name
if not name or node.name:sub(1, 7) ~= "xpanes:" then
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
update_pane({
x = pos.x + dir.x,
Expand Down Expand Up @@ -105,7 +114,7 @@ function xpanes.register_pane(name, def)
if cnt == 1 then
texture = def.textures[1].."^"..def.textures[2]
end
minetest.register_node("xpanes:"..name.."_"..i, {
minetest.register_node(":xpanes:"..name.."_"..i, {
drawtype = "nodebox",
tiles = {def.textures[3], def.textures[3], texture},
paramtype = "light",
Expand All @@ -123,7 +132,11 @@ function xpanes.register_pane(name, def)
})
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({
output = "xpanes:"..name.." 16",
Expand All @@ -150,9 +163,6 @@ xpanes.register_pane("pane", {
wield_image = "default_glass.png",
sounds = default.node_sound_glass_defaults(),
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
on_construct = function(pos)
update_pane(pos, "pane")
end,
recipe = {
{'default:glass', 'default:glass', 'default:glass'},
{'default:glass', 'default:glass', 'default:glass'}
Expand All @@ -175,9 +185,6 @@ xpanes.register_pane("bar", {
wield_image = "xpanes_bar.png",
groups = {snappy=2, cracky=3, oddly_breakable_by_hand=3, pane=1},
sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
update_pane(pos, "bar")
end,
recipe = {
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'}
Expand Down

0 comments on commit c95cd84

Please sign in to comment.