Skip to content

Commit

Permalink
Remove ugly def of xpanes
Browse files Browse the repository at this point in the history
  • Loading branch information
Rui914 authored and paramat committed Sep 29, 2015
1 parent 279b85f commit 1f85f00
Showing 1 changed file with 25 additions and 37 deletions.
62 changes: 25 additions & 37 deletions mods/xpanes/init.lua
Expand Up @@ -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
Expand Down Expand Up @@ -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},
Expand All @@ -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 = {}
Expand Down Expand Up @@ -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
Expand All @@ -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 comments on commit 1f85f00

Please sign in to comment.