700 lines
19 KiB
Lua
700 lines
19 KiB
Lua
doors = {}
|
|
|
|
--{{{ Default
|
|
|
|
--{{{ Tables
|
|
|
|
--{{{ Nodenames
|
|
local nodes = {
|
|
"t_1", "b_1",
|
|
"t_2", "b_2",
|
|
|
|
"cw_t_1", "cw_b_1",
|
|
"cw_t_2", "cw_b_2",
|
|
}
|
|
--}}}
|
|
|
|
--{{{ Nodeboxes
|
|
local box = {-0.5, -0.5, -0.5, 0.5, 0.5, -0.5+3/16}
|
|
local box_open = {-0.5, -0.5, -0.5, -0.5+3/16, 0.5, 0.5 }
|
|
local cw_box_open = { 0.5-3/16, -0.5, -0.5, 0.5, 0.5, 0.5 }
|
|
--}}}
|
|
|
|
--{{{ Parts
|
|
local parts_for_open = {
|
|
t_1 = {dir = -1, "_b_1", "_t_2", "_b_2"},
|
|
b_1 = {dir = 1, "_t_1", "_b_2", "_t_2"},
|
|
t_2 = {dir = -1, "_b_2", "_t_1", "_b_1"},
|
|
b_2 = {dir = 1, "_t_2", "_b_1", "_t_1"}
|
|
}
|
|
local parts_for_swap = {
|
|
t_1 = {dir = -1, "_b_1", "_t_1", "_b_1"},
|
|
b_1 = {dir = 1, "_t_1", "_b_1", "_t_1"},
|
|
t_2 = {dir = -1, "_b_2", "_t_2", "_b_2"},
|
|
b_2 = {dir = 1, "_t_2", "_b_2", "_t_2"}
|
|
}
|
|
--}}}
|
|
|
|
--}}}
|
|
|
|
--{{{ Functions
|
|
|
|
--{{{ can_open_bolted
|
|
doors.can_open_bolted = function (pos, node, clicker)
|
|
if string.find(node.name, "_1") then
|
|
local door_facedir = node.param2
|
|
local clicker_facedir = minetest.dir_to_facedir(vector.direction(clicker:getpos(),pos))
|
|
if door_facedir ~= clicker_facedir then return false
|
|
end
|
|
end
|
|
return true
|
|
end
|
|
--}}}
|
|
|
|
--{{{ swap_door
|
|
doors.swap_door = function (pos, dir, check_name, replace, replace_dir, meta)
|
|
pos.y = pos.y+dir
|
|
local replace_node = minetest.get_node(pos)
|
|
|
|
if replace_node.name ~= check_name then
|
|
return
|
|
end
|
|
|
|
minetest.swap_node(pos, {name = replace_dir, param2 = replace_node.param2})
|
|
|
|
pos.y = pos.y-dir
|
|
minetest.swap_node(pos, {name = replace, param2 = replace_node.param2})
|
|
|
|
if meta ~= nil then
|
|
local metadata = minetest.get_meta(pos)
|
|
metadata:set_string(meta[1], meta[2])
|
|
|
|
pos.y = pos.y+dir
|
|
|
|
metadata = minetest.get_meta(pos)
|
|
metadata:set_string(meta[1], meta[2])
|
|
end
|
|
end
|
|
--}}}
|
|
|
|
--{{{ open_door
|
|
doors.open_door = function (pos, name)
|
|
local parts = parts_for_open[name:sub(-3)]
|
|
name = name:sub(0,-5)
|
|
doors.swap_door(pos, parts.dir,
|
|
name .. parts[1],
|
|
name .. parts[2],
|
|
name .. parts[3])
|
|
end
|
|
--}}}
|
|
|
|
--{{{ after_dig
|
|
doors.after_dig = function (pos, oldnode)
|
|
local name, count = string.gsub(oldnode.name, "_t_", "_b_")
|
|
if count == 0 then
|
|
name, count = string.gsub(name, "_b_", "_t_")
|
|
end
|
|
|
|
if string.find(name, "_t_") then
|
|
pos.y = pos.y + 1
|
|
else
|
|
pos.y = pos.y - 1
|
|
end
|
|
|
|
if minetest.get_node(pos).name == name then
|
|
minetest.remove_node(pos)
|
|
end
|
|
end
|
|
--}}}
|
|
|
|
--{{{ rightclick_on_locked
|
|
doors.rightclick_on_locked = function(pos, node, clicker, wield_item)
|
|
if real_locks.can_open_locked (pos, wield_item) then
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
--}}}
|
|
|
|
--{{{ rightclick_on_lockable
|
|
doors.add_lock = function (pos, node, wield_item, lock_type, meta)
|
|
local name = node.name:sub(1,-5)
|
|
local p2 = node.param2
|
|
local pos2 = {y = pos.y}
|
|
|
|
local locked = "_" .. lock_type
|
|
local lock_o = "_" .. lock_type .. "_cw"
|
|
local cw = ""
|
|
local opposite = "_cw"
|
|
if string.find(name, "_cw") then
|
|
-- Swap values
|
|
locked, lock_o = lock_o, locked
|
|
cw, opposite = opposite, cw
|
|
|
|
name = name:sub(1,-4)
|
|
|
|
if p2 == 0 then
|
|
pos2.x = pos.x-1
|
|
pos2.z = pos.z
|
|
elseif p2 == 1 then
|
|
pos2.z = pos.z+1
|
|
pos2.x = pos.x
|
|
elseif p2 == 2 then
|
|
pos2.x = pos.x+1
|
|
pos2.z = pos.z
|
|
elseif p2 == 3 then
|
|
pos2.z = pos.z-1
|
|
pos2.x = pos.x
|
|
end
|
|
else
|
|
if p2 == 0 then
|
|
pos2.x = pos.x+1
|
|
pos2.z = pos.z
|
|
elseif p2 == 1 then
|
|
pos2.z = pos.z-1
|
|
pos2.x = pos.x
|
|
elseif p2 == 2 then
|
|
pos2.x = pos.x-1
|
|
pos2.z = pos.z
|
|
elseif p2 == 3 then
|
|
pos2.z = pos.z+1
|
|
pos2.x = pos.x
|
|
end
|
|
end
|
|
|
|
local parts = parts_for_swap[node.name:sub(-3)]
|
|
doors.swap_door(pos, parts.dir,
|
|
name .. cw .. parts[1],
|
|
name .. locked .. parts[2],
|
|
name .. locked .. parts[3],
|
|
meta
|
|
)
|
|
|
|
parts = parts_for_swap[minetest.get_node(pos2).name:sub(-3)]
|
|
if parts ~= nil then
|
|
doors.swap_door(pos2, parts.dir,
|
|
name .. opposite .. parts[1],
|
|
name .. lock_o .. parts[2],
|
|
name .. lock_o .. parts[3],
|
|
meta
|
|
)
|
|
end
|
|
|
|
wield_item:take_item()
|
|
end
|
|
--}}}
|
|
|
|
--{{{ rightclock_on_bolted
|
|
doors.rightclick_on_bolted = function(pos, node, clicker)
|
|
if doors.can_open_bolted(pos, node, clicker) then
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
--}}}
|
|
|
|
--{{{ rightclick_on_not_lockable
|
|
doors.rightclick_on_not_lockable = function (pos, node)
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
--}}}
|
|
|
|
--}}}
|
|
|
|
--}}}
|
|
|
|
--{{{ doors:register_door
|
|
function doors:register_door(name, def)
|
|
def.groups.not_in_creative_inventory = 1
|
|
|
|
--{{{ Item registration
|
|
minetest.register_craftitem(name, {
|
|
description = def.description,
|
|
inventory_image = def.inventory_image,
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
if not pointed_thing.type == "node" then
|
|
return itemstack
|
|
end
|
|
|
|
local ptu = pointed_thing.under
|
|
local nu = minetest.get_node(ptu)
|
|
if minetest.registered_nodes[nu.name].on_rightclick then
|
|
return minetest.registered_nodes[nu.name].on_rightclick(ptu, nu, placer, itemstack)
|
|
end
|
|
|
|
local pt = pointed_thing.above
|
|
local pt2 = {x=pt.x, y=pt.y, z=pt.z}
|
|
pt2.y = pt2.y+1
|
|
if
|
|
not minetest.registered_nodes[minetest.get_node(pt).name].buildable_to or
|
|
not minetest.registered_nodes[minetest.get_node(pt2).name].buildable_to or
|
|
not placer or
|
|
not placer:is_player()
|
|
then
|
|
return itemstack
|
|
end
|
|
|
|
local p2 = minetest.dir_to_facedir(placer:get_look_dir())
|
|
local pt3 = {x=pt.x, y=pt.y, z=pt.z}
|
|
if p2 == 0 then
|
|
pt3.x = pt3.x-1
|
|
elseif p2 == 1 then
|
|
pt3.z = pt3.z+1
|
|
elseif p2 == 2 then
|
|
pt3.x = pt3.x+1
|
|
elseif p2 == 3 then
|
|
pt3.z = pt3.z-1
|
|
end
|
|
if not string.find(minetest.get_node(pt3).name, name.."_b_") then
|
|
minetest.set_node(pt, {name=name.."_b_1", param2=p2})
|
|
minetest.set_node(pt2, {name=name.."_t_1", param2=p2})
|
|
else
|
|
minetest.set_node(pt, {name=name.."_cw_b_1", param2=p2})
|
|
minetest.set_node(pt2, {name=name.."_cw_t_1", param2=p2})
|
|
end
|
|
|
|
local passwd = itemstack:get_metadata()
|
|
if passwd ~= nil then
|
|
local meta = minetest.get_meta(pt)
|
|
meta:set_string("lock_pass", passwd)
|
|
meta:set_string("infotext", def.infotext)
|
|
meta = minetest.get_meta(pt2)
|
|
meta:set_string("lock_pass", passwd)
|
|
meta:set_string("infotext", def.infotext)
|
|
end
|
|
|
|
if not minetest.setting_getbool("creative_mode") then
|
|
itemstack:take_item()
|
|
end
|
|
return itemstack
|
|
end,
|
|
})
|
|
--}}}
|
|
|
|
--{{{ Node registration
|
|
|
|
--{{{ Nodeboxes
|
|
if def.nodeboxes == nil then
|
|
def.nodeboxes = {
|
|
t_1 = box,
|
|
b_1 = box,
|
|
t_2 = box_open,
|
|
b_2 = box_open,
|
|
|
|
cw_t_1 = box,
|
|
cw_b_1 = box,
|
|
cw_t_2 = cw_box_open,
|
|
cw_b_2 = cw_box_open,
|
|
}
|
|
end
|
|
--}}}
|
|
|
|
if def.on_rightclick == nil then
|
|
def.on_rightclick = doors.rightclick_on_not_lockable
|
|
end
|
|
|
|
if def.after_dig == nil then
|
|
def.after_dig = doors.after_dig
|
|
end
|
|
|
|
for k,part in pairs(nodes) do
|
|
minetest.register_node(name.."_"..part, {
|
|
tiles = def.tiles[part],
|
|
paramtype = "light",
|
|
paramtype2 = "facedir",
|
|
drop = name,
|
|
drawtype = "nodebox",
|
|
node_box = {
|
|
type = "fixed",
|
|
fixed = def.nodeboxes[part],
|
|
},
|
|
groups = def.groups,
|
|
after_dig_node = def.after_dig,
|
|
on_rightclick = def.on_rightclick,
|
|
on_construct = def.on_construct,
|
|
})
|
|
end
|
|
|
|
--}}}
|
|
end
|
|
--}}}
|
|
|
|
--{{{ Various doors registration
|
|
|
|
--{{{ Default tiles table
|
|
local function setTiles(tiles)
|
|
local t = {
|
|
t_1 = {
|
|
tiles[5], tiles[5],
|
|
tiles[3], tiles[3],
|
|
tiles[1], tiles[1].."^[transformfx"
|
|
},
|
|
b_1 = {
|
|
tiles[5], tiles[5],
|
|
tiles[3], tiles[3],
|
|
tiles[2], tiles[2].."^[transformfx"
|
|
},
|
|
t_2 = {
|
|
tiles[6], tiles[6].."^[transformr180",
|
|
tiles[1].."^[transformfx", tiles[1],
|
|
tiles[4], tiles[4]
|
|
},
|
|
b_2 = {
|
|
tiles[6], tiles[6].."^[transformr180",
|
|
tiles[2].."^[transformfx", tiles[2],
|
|
tiles[4], tiles[4]
|
|
},
|
|
|
|
cw_t_1 = {
|
|
tiles[5].."^[transformfx", tiles[5].."^[transformfx",
|
|
tiles[3].."^[transformfx", tiles[3].."^[transformfx",
|
|
tiles[1].."^[transformfx", tiles[1]
|
|
},
|
|
cw_b_1 = {
|
|
tiles[5].."^[transformfx", tiles[5].."^[transformfx",
|
|
tiles[3].."^[transformfx", tiles[3].."^[transformfx",
|
|
tiles[2].."^[transformfx", tiles[2]
|
|
},
|
|
cw_t_2 = {
|
|
tiles[6].."^[transformfx", tiles[6].."^[transformfy",
|
|
tiles[1].."^[transformfx", tiles[1],
|
|
tiles[4].."^[transformfx", tiles[4].."^[transformfx"
|
|
},
|
|
cw_b_2 = {
|
|
tiles[6].."^[transformfx", tiles[6].."^[transformfy",
|
|
tiles[2].."^[transformfx", tiles[2],
|
|
tiles[4].."^[transformfx", tiles[4].."^[transformfx"
|
|
},
|
|
}
|
|
return t
|
|
end
|
|
--}}}
|
|
|
|
local t
|
|
|
|
--{{{ door wood weak
|
|
t = setTiles({
|
|
"door_wood_weak_a.png", "door_wood_weak_b.png",
|
|
"door_wood_weak_side.png", "door_wood_weak_side_open.png",
|
|
"door_wood_weak_y.png", "door_wood_weak_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_wood_weak", {
|
|
description = "Weak wooden door",
|
|
inventory_image = "door_wood_weak.png",
|
|
groups = {snappy=1,choppy=1,oddly_breakable_by_hand=2,flammable=2,door=1},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:bolt" then
|
|
doors.add_lock(pos, node, wield_item, "bolt")
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Bolted version
|
|
doors:register_door("doors:door_wood_weak_bolt", {
|
|
description = "Weak wooden door",
|
|
inventory_image = "door_wood_weak.png",
|
|
groups = {snappy=1,choppy=1,oddly_breakable_by_hand=2,flammable=2,door=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_bolted,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Bolted")
|
|
end
|
|
})
|
|
|
|
--}}}
|
|
|
|
--{{{ door wood
|
|
t = setTiles({
|
|
"door_wood_a.png","door_wood_b.png",
|
|
"door_wood_side.png", "door_wood_side_open.png",
|
|
"door_wood_y.png", "door_wood_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_wood", {
|
|
description = "Wooden Door",
|
|
inventory_image = "door_wood.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:lock" then
|
|
doors.add_lock(
|
|
pos, node, wield_item, "lock",
|
|
{"lock_pass", wield_item:get_metadata()}
|
|
)
|
|
elseif wield_item:get_name() == "real_locks:bolt" then
|
|
doors.add_lock(pos, node, wield_item, "bolt")
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Bolted version
|
|
doors:register_door("doors:door_wood_bolt", {
|
|
description = "Wooden Door",
|
|
inventory_image = "door_wood.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_bolted,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Bolted")
|
|
end
|
|
})
|
|
|
|
-- Locked version
|
|
doors:register_door("doors:door_wood_lock", {
|
|
description = "Wooden Door",
|
|
inventory_image = "door_wood.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_locked,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Locked")
|
|
end
|
|
})
|
|
|
|
-- Craft
|
|
minetest.register_craft({
|
|
output = "doors:door_wood",
|
|
recipe = {
|
|
{"group:wood", "group:wood"},
|
|
{"group:wood", "group:wood"},
|
|
{"group:wood", "group:wood"}
|
|
}
|
|
})
|
|
--}}}
|
|
|
|
--{{{ door wood studded
|
|
t = setTiles({
|
|
"door_wood_studded_a.png","door_wood_studded_b.png",
|
|
"door_wood_studded_side.png", "door_wood_studded_side_open.png",
|
|
"door_wood_studded_y.png", "door_wood_studded_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_wood_studded", {
|
|
description = "Wooden door, studded with iron",
|
|
inventory_image = "door_wood_studded.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:lock" then
|
|
doors.add_lock(
|
|
pos, node, wield_item, "lock",
|
|
{"lock_pass", wield_item:get_metadata()}
|
|
)
|
|
elseif wield_item:get_name() == "real_locks:bolt" then
|
|
doors.add_lock(pos, node, wield_item, "bolt")
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Bolted version
|
|
doors:register_door("doors:door_wood_studded_bolt", {
|
|
description = "Wooden door, studded with iron, with bolt",
|
|
inventory_image = "door_wood_studded.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_bolted,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Bolted")
|
|
end
|
|
})
|
|
|
|
-- Locked version
|
|
doors:register_door("doors:door_wood_studded_lock", {
|
|
description = "Wooden door, studded with iron, with lock",
|
|
inventory_image = "door_wood_studded.png",
|
|
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_locked,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Locked")
|
|
end
|
|
})
|
|
|
|
-- Craft
|
|
minetest.register_craft({
|
|
output = "doors:door_wood",
|
|
recipe = {
|
|
{"group:wood", "group:wood"},
|
|
{"group:wood", "group:wood"},
|
|
{"group:wood", "group:wood"}
|
|
}
|
|
})
|
|
--}}}
|
|
|
|
--{{{ door iron bars
|
|
t = setTiles({
|
|
"door_iron_bars_a.png","door_iron_bars_b.png",
|
|
"door_iron_bars_side.png", "door_iron_bars_side_open.png",
|
|
"door_iron_bars_y.png", "door_iron_bars_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_iron_bars", {
|
|
description = "Door of iron bars",
|
|
inventory_image = "door_iron_bars.png",
|
|
groups = {cracky=1,bendy=2,melty=1,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:lock" then
|
|
doors.add_lock(
|
|
pos, node, wield_item, "lock",
|
|
{"lock_pass", wield_item:get_metadata()}
|
|
)
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Locked version
|
|
doors:register_door("doors:door_iron_bars_lock", {
|
|
description = "Door of iron bars, with lock",
|
|
inventory_image = "door_iron_bars.png",
|
|
groups = {cracky=1,bendy=2,melty=1,door=1,level=1},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_locked,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Locked")
|
|
end
|
|
})
|
|
|
|
-- Craft
|
|
minetest.register_craft({
|
|
output = "doors:door_iron_bars",
|
|
recipe = {
|
|
{"default:steel_ingot",""},
|
|
{"default:steel_ingot",""},
|
|
{"default:steel_ingot", "default:steel_ingot"}
|
|
}
|
|
})
|
|
--}}}
|
|
|
|
--{{{ door iron heavy
|
|
t = setTiles({
|
|
"door_iron_heavy_a.png","door_iron_heavy_b.png",
|
|
"door_iron_heavy_side.png", "door_iron_heavy_side_open.png",
|
|
"door_iron_heavy_y.png", "door_iron_heavy_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_iron_heavy", {
|
|
description = "Heavy Metal door",
|
|
inventory_image = "door_iron_heavy.png",
|
|
groups = {cracky=3,bendy=2,melty=3,door=1,level=3},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:lock" then
|
|
doors.add_lock(
|
|
pos, node, wield_item, "lock",
|
|
{"lock_pass", wield_item:get_metadata()}
|
|
)
|
|
elseif wield_item:get_name() == "real_locks:bolt" then
|
|
doors.add_lock(pos, node, wield_item, "bolt")
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Bolted version
|
|
doors:register_door("doors:door_iron_heavy_bolt", {
|
|
description = "Heavy Metal door, with bolt",
|
|
inventory_image = "door_iron_heavy.png",
|
|
groups = {cracky=3,bendy=2,melty=3,door=1,level=3},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_bolted,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Bolted")
|
|
end
|
|
})
|
|
|
|
-- Locked version
|
|
doors:register_door("doors:door_iron_heavy_lock", {
|
|
description = "Heavy Metal door, with lock",
|
|
inventory_image = "door_iron_heavy.png",
|
|
groups = {cracky=3,bendy=2,melty=3,door=1,level=3},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_locked,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Locked")
|
|
end
|
|
})
|
|
|
|
-- Craft
|
|
minetest.register_craft({
|
|
output = "doors:door_iron_heavy",
|
|
recipe = {
|
|
{"default:steel_ingot", "default:steel_ingot"},
|
|
{"default:steel_ingot", "default:steel_ingot"},
|
|
{"default:steel_ingot", "default:steel_ingot"}
|
|
}
|
|
})
|
|
--}}}
|
|
|
|
--{{{ door iron decorative
|
|
t = setTiles({
|
|
"door_iron_decorative_a.png","door_iron_decorative_b.png",
|
|
"door_iron_decorative_side.png", "door_iron_decorative_side_open.png",
|
|
"door_iron_decorative_y.png", "door_iron_decorative_y_open.png"
|
|
})
|
|
|
|
doors:register_door("doors:door_iron_decorative", {
|
|
description = "Decorative iron door",
|
|
inventory_image = "door_iron_decorative.png",
|
|
groups = {cracky=2,bendy=2,melty=2,door=1,level=2},
|
|
tiles = t,
|
|
on_rightclick = function (pos, node, clicker, wield_item)
|
|
if wield_item:get_name() == "real_locks:lock" then
|
|
doors.add_lock(
|
|
pos, node, wield_item, "lock",
|
|
{"lock_pass", wield_item:get_metadata()}
|
|
)
|
|
else
|
|
doors.open_door(pos, node.name)
|
|
end
|
|
end
|
|
})
|
|
|
|
-- Locked version
|
|
doors:register_door("doors:door_iron_decorative_lock", {
|
|
description = "Decorative iron door, with lock",
|
|
inventory_image = "door_iron_decorative.png",
|
|
groups = {cracky=2,bendy=2,melty=2,door=1,level=2},
|
|
tiles = t,
|
|
on_rightclick = doors.rightclick_on_locked,
|
|
on_construct = function(pos)
|
|
local meta = minetest.get_meta(pos)
|
|
meta:set_string("infotext", "Locked")
|
|
end
|
|
})
|
|
|
|
-- Craft
|
|
minetest.register_craft({
|
|
output = "doors:door_iron_decorative",
|
|
recipe = {
|
|
{"", "default:steel_ingot"},
|
|
{"default:steel_ingot", "default:steel_ingot"},
|
|
{"default:steel_ingot", "default:steel_ingot"}
|
|
}
|
|
})
|
|
--}}}
|
|
--}}}
|
|
|
|
minetest.register_alias("doors:door_wood_a_c", "doors:door_wood_t_1")
|
|
minetest.register_alias("doors:door_wood_a_o", "doors:door_wood_t_1")
|
|
minetest.register_alias("doors:door_wood_b_c", "doors:door_wood_b_1")
|
|
minetest.register_alias("doors:door_wood_b_o", "doors:door_wood_b_1")
|