Attempt to begin to implement chests and furnace in Lua (with problems)

This commit is contained in:
Perttu Ahola 2012-06-01 18:07:22 +03:00
parent fe8c5546f0
commit 29f03756bd
3 changed files with 28 additions and 19 deletions

@ -237,15 +237,6 @@ function minetest.node_dig(pos, node, digger)
return return
end end
local meta = minetest.env:get_meta(pos)
if meta ~= nil and not meta:get_allow_removal() then
minetest.debug("dig prevented by metadata")
minetest.log("info", digger:get_player_name() .. " tried to dig "
.. node.name .. ", but removal is disabled by metadata "
.. minetest.pos_to_string(pos))
return
end
minetest.log('action', digger:get_player_name() .. " digs " minetest.log('action', digger:get_player_name() .. " digs "
.. node.name .. " at " .. minetest.pos_to_string(pos)) .. node.name .. " at " .. minetest.pos_to_string(pos))

@ -768,13 +768,6 @@ Deprecated:
NodeMetaRef (this stuff is subject to change in a future version) NodeMetaRef (this stuff is subject to change in a future version)
methods: methods:
- get_type()
- allows_text_input()
- set_text(text) -- eg. set the text of a sign
- get_text()
- get_owner()
- set_owner(string)
Generic node metadata specific:
- set_string(name, value) - set_string(name, value)
- get_string(name) - get_string(name)
- set_int(name, value) - set_int(name, value)

@ -1119,10 +1119,18 @@ minetest.register_node("default:chest", {
tile_images = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", tile_images = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"}, "default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
metadata_name = "chest",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true, legacy_facedir_simple = true,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
--local n = minetest.env:get_node(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec",
"invsize[8,9;]"..
"list[current_name;0;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]")
meta:set_string("infotext", "Chest");
end,
}) })
minetest.register_node("default:chest_locked", { minetest.register_node("default:chest_locked", {
@ -1130,10 +1138,18 @@ minetest.register_node("default:chest_locked", {
tile_images = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png", tile_images = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"}, "default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
metadata_name = "locked_chest",
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
legacy_facedir_simple = true, legacy_facedir_simple = true,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
--local n = minetest.env:get_node(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec",
"invsize[8,9;]"..
"list[current_name;0;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]")
meta:set_string("infotext", "Locked Chest");
end,
}) })
minetest.register_node("default:furnace", { minetest.register_node("default:furnace", {
@ -1141,10 +1157,19 @@ minetest.register_node("default:furnace", {
tile_images = {"default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png", tile_images = {"default_furnace_side.png", "default_furnace_side.png", "default_furnace_side.png",
"default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"}, "default_furnace_side.png", "default_furnace_side.png", "default_furnace_front.png"},
paramtype2 = "facedir", paramtype2 = "facedir",
metadata_name = "furnace",
groups = {cracky=2}, groups = {cracky=2},
legacy_facedir_simple = true, legacy_facedir_simple = true,
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec",
"invsize[8,9;]"..
"list[current_name;fuel;2,3;1,1;]"..
"list[current_name;src;2,1;1,1;]"..
"list[current_name;dst;5,1;2,2;]"..
"list[current_player;main;0,5;8,4;]")
meta:set_string("infotext", "Furnace");
end,
}) })
minetest.register_node("default:cobble", { minetest.register_node("default:cobble", {