Skip to content

Instantly share code, notes, and snippets.

@cornernote
Created October 3, 2012 08:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cornernote/3825737 to your computer and use it in GitHub Desktop.
Save cornernote/3825737 to your computer and use it in GitHub Desktop.
fixed bad placement not giving back item
-- This file supplies refrigerators
minetest.register_node('homedecor:refrigerator', {
drawtype = "nodebox",
description = "Refrigerator",
tiles = {
'homedecor_refrigerator_top.png',
'homedecor_refrigerator_bottom.png',
'homedecor_refrigerator_right.png',
'homedecor_refrigerator_left.png',
'homedecor_refrigerator_back.png',
'homedecor_refrigerator_front.png'
},
inventory_image = "homedecor_refrigerator_inv.png",
sunlight_propagates = false,
paramtype = "light",
paramtype2 = "facedir",
walkable = true,
groups = { snappy = 3 },
selection_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }
},
node_box = {
type = "fixed",
fixed = { -0.5, -0.5, -0.5, 0.5, 1.5, 0.5 }
},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec",
"size[10,10]"..
"list[current_name;main;0,0;10,5;]"..
"list[current_player;main;1,6;8,4;]")
meta:set_string("infotext", "Refrigerator")
local inv = meta:get_inventory()
inv:set_size("main",50)
end,
on_place = function(itemstack, placer, pointed_thing)
local pos = pointed_thing.above
if minetest.env:get_node({x=pos.x, y=pos.y+1, z=pos.z}).name ~= "air" then
minetest.chat_send_player( placer:get_player_name(), 'Not enough vertical space to place a refrigerator!' )
return
end
return minetest.item_place(itemstack, placer, pointed_thing)
end,
can_dig = function(pos,player)
local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in refrigerator at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to refrigerator at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from refrigerator at "..minetest.pos_to_string(pos))
end,
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment