Add vessels shelf
authorjp <jeanpatrick.guerrero@gmail.com>
Mon, 2 Mar 2015 09:29:02 +0000 (10:29 +0100)
committerBlockMen <nmuelll@web.de>
Sun, 29 Mar 2015 19:00:32 +0000 (21:00 +0200)
mods/vessels/init.lua
mods/vessels/textures/vessels_shelf.png [new file with mode: 0644]

index 6ca8771bc55599cf10cc78046fb15daf6e06dade..d5bef81a4dac22005238f1813c03ff2a8a98f115 100644 (file)
@@ -1,6 +1,87 @@
 -- Minetest 0.4 mod: vessels
 -- See README.txt for licensing and other information.
 
+local vessels_shelf_formspec =
+       "size[8,7;]"..
+       default.gui_bg..
+       default.gui_bg_img..
+       default.gui_slots..
+       "list[context;vessels;0,0.3;8,2;]"..
+       "list[current_player;main;0,2.85;8,1;]"..
+       "list[current_player;main;0,4.08;8,3;8]"..
+       default.get_hotbar_bg(0,2.85)
+
+minetest.register_node("vessels:shelf", {
+       description = "Vessels shelf",
+       tiles = {"default_wood.png", "default_wood.png", "default_wood.png^vessels_shelf.png"},
+       is_ground_content = false,
+       groups = {choppy=3,oddly_breakable_by_hand=2,flammable=3},
+       sounds = default.node_sound_wood_defaults(),
+
+       on_construct = function(pos)
+               local meta = minetest.get_meta(pos)
+               meta:set_string("formspec", vessels_shelf_formspec)
+               local inv = meta:get_inventory()
+               inv:set_size("vessels", 8*2)
+       end,
+       can_dig = function(pos,player)
+               local meta = minetest.get_meta(pos);
+               local inv = meta:get_inventory()
+               return inv:is_empty("vessels")
+       end,
+
+       allow_metadata_inventory_put = function(pos, listname, index, stack, player)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               local to_stack = inv:get_stack(listname, index)
+               if listname == "vessels" then
+                       if minetest.get_item_group(stack:get_name(), "vessel") ~= 0
+                                       and to_stack:is_empty() then
+                               return 1
+                       else
+                               return 0
+                       end
+               end
+       end,
+
+       allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
+               local meta = minetest.get_meta(pos)
+               local inv = meta:get_inventory()
+               local stack = inv:get_stack(from_list, from_index)
+               local to_stack = inv:get_stack(to_list, to_index)
+               if to_list == "vessels" then
+                       if minetest.get_item_group(stack:get_name(), "vessel") ~= 0 
+                                       and to_stack:is_empty() then
+                               return 1
+                       else
+                               return 0
+                       end
+               end
+       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 vessels shelf 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 vessels shelf 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 vessels shelf at "..minetest.pos_to_string(pos))
+       end,
+})
+
+minetest.register_craft({
+       output = 'vessels:shelf',
+       recipe = {
+               {'group:wood', 'group:wood', 'group:wood'},
+               {'group:vessel', 'group:vessel', 'group:vessel'},
+               {'group:wood', 'group:wood', 'group:wood'},
+       }
+})
+
 minetest.register_node("vessels:glass_bottle", {
        description = "Glass Bottle (empty)",
        drawtype = "plantlike",
diff --git a/mods/vessels/textures/vessels_shelf.png b/mods/vessels/textures/vessels_shelf.png
new file mode 100644 (file)
index 0000000..87c69b2
Binary files /dev/null and b/mods/vessels/textures/vessels_shelf.png differ