end
local node = minetest.get_node(pos)
- minetest.after(0.2, minetest.swap_node, pos, { name = "default:" .. swap,
+ minetest.after(0.2, minetest.swap_node, pos, { name = swap,
param2 = node.param2 })
minetest.sound_play(sound, {gain = 0.3, pos = pos,
max_hear_distance = 10}, true)
end
end)
-function default.chest.register_chest(name, d)
+function default.chest.register_chest(prefixed_name, d)
+ local name = prefixed_name:sub(1,1) == ':' and prefixed_name:sub(2,-1) or prefixed_name
local def = table.copy(d)
def.drawtype = "mesh"
def.visual = "mesh"
pos = pos, max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
minetest.swap_node(pos,
- { name = "default:" .. name .. "_open",
+ { name = name .. "_open",
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec,
max_hear_distance = 10}, true)
if not default.chest.chest_lid_obstructed(pos) then
minetest.swap_node(pos, {
- name = "default:" .. name .. "_open",
+ name = name .. "_open",
param2 = node.param2 })
end
minetest.after(0.2, minetest.show_formspec,
def.on_blast = function(pos)
local drops = {}
default.get_inventory_drops(pos, "main", drops)
- drops[#drops+1] = "default:" .. name
+ drops[#drops+1] = name
minetest.remove_node(pos)
return drops
end
def_opened.tiles[i].backface_culling = true
end
end
- def_opened.drop = "default:" .. name
+ def_opened.drop = name
def_opened.groups.not_in_creative_inventory = 1
def_opened.selection_box = {
type = "fixed",
def_closed.tiles[5] = def.tiles[3] -- drawtype to make them match the mesh
def_closed.tiles[3] = def.tiles[3].."^[transformFX"
- minetest.register_node("default:" .. name, def_closed)
- minetest.register_node("default:" .. name .. "_open", def_opened)
+ minetest.register_node(prefixed_name, def_closed)
+ minetest.register_node(prefixed_name .. "_open", def_opened)
-- convert old chests to this new variant
- minetest.register_lbm({
- label = "update chests to opening chests",
- name = "default:upgrade_" .. name .. "_v2",
- nodenames = {"default:" .. name},
- action = function(pos, node)
- local meta = minetest.get_meta(pos)
- meta:set_string("formspec", nil)
- local inv = meta:get_inventory()
- local list = inv:get_list("default:chest")
- if list then
- inv:set_size("main", 8*4)
- inv:set_list("main", list)
- inv:set_list("default:chest", nil)
+ if name == "default:chest" or name == "default:chest_locked" then
+ minetest.register_lbm({
+ label = "update chests to opening chests",
+ name = "default:upgrade_" .. name:sub(9,-1) .. "_v2",
+ nodenames = {name},
+ action = function(pos, node)
+ local meta = minetest.get_meta(pos)
+ meta:set_string("formspec", nil)
+ local inv = meta:get_inventory()
+ local list = inv:get_list("default:chest")
+ if list then
+ inv:set_size("main", 8*4)
+ inv:set_list("main", list)
+ inv:set_list("default:chest", nil)
+ end
end
- end
- })
+ })
+ end
end
-default.chest.register_chest("chest", {
+default.chest.register_chest("default:chest", {
description = S("Chest"),
tiles = {
"default_chest_top.png",
groups = {choppy = 2, oddly_breakable_by_hand = 2},
})
-default.chest.register_chest("chest_locked", {
+default.chest.register_chest("default:chest_locked", {
description = S("Locked Chest"),
tiles = {
"default_chest_top.png",