diff options
author | TenPlus1 <kinsellaja@yahoo.com> | 2015-11-06 13:22:58 +0000 |
---|---|---|
committer | TenPlus1 <kinsellaja@yahoo.com> | 2015-11-06 13:22:58 +0000 |
commit | 237c21b6def43462fd0ee9becdce2a9d5bff2b69 (patch) | |
tree | 419109aac76be62e5d36e9ca77a786e7c3cf667b /init.lua |
Initial upload
Diffstat (limited to 'init.lua')
-rw-r--r-- | init.lua | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..655b0e2 --- /dev/null +++ b/init.lua @@ -0,0 +1,159 @@ +-- wine glass +minetest.register_craftitem("wine:glass_wine", { + description = "Glass of Wine", + inventory_image = "wine.png", + on_use = minetest.item_eat(2), +}) + +-- bottle of wine +minetest.register_node("wine:bottle_wine", { + description = "Bottle of Wine", + drawtype = "plantlike", + tiles = {"bottle_wine.png"}, + inventory_image = "bottle_wine.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = { -0.15, -0.5, -0.15, 0.15, 0.25, 0.15 } + }, + groups = {dig_immediate = 3, attached_node = 1}, + sounds = default.node_sound_defaults(), +}) + +minetest.register_craft({ + output = "wine:bottle_wine", + recipe = { + {"wine:glass_wine", "wine:glass_wine", "wine:glass_wine"}, + {"wine:glass_wine", "wine:glass_wine", "wine:glass_wine"}, + {"wine:glass_wine", "wine:glass_wine", "wine:glass_wine"}, + }, +}) + +minetest.register_craft({ + type = "shapeless", + output = "wine:glass_wine 9", + recipe = {"wine:bottle_wine"}, +}) + +-- Wine barrel +winebarrel_formspec = "size[8,9]" + .. default.gui_bg..default.gui_bg_img..default.gui_slots + .. "list[current_name;src;2,1;1,1;]" + .. "list[current_name;dst;5,1;2,2;]" + .. "list[current_player;main;0,5;8,4;]" + .. "listring[current_name;dst]" + .. "listring[current_player;main]" + .. "listring[current_name;src]" + .. "listring[current_player;main]" + +minetest.register_node("wine:wine_barrel", { + description = "Winebarrel", + tiles = {"barrel_side.png", "barrel_side.png", "barrel_side.png^[transformR90", + "barrel_side.png^[transformR90", "barrel_bottom.png", "barrel_front.png"}, + paramtype2 = "facedir", + groups = {choppy = 2}, + legacy_facedir_simple = true, + + on_construct = function(pos) + local meta = minetest.get_meta(pos) + meta:set_string("formspec", winebarrel_formspec) + meta:set_string("infotext", "Wine Barrel") + meta:set_float("status", 0.0) + local inv = meta:get_inventory() + inv:set_size("src", 1) + inv:set_size("dst", 4) + end, + + can_dig = function(pos,player) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + if not inv:is_empty("dst") + or not inv:is_empty("src") then + return false + end + + return true + end, + + allow_metadata_inventory_put = function(pos, listname, index, stack, player) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + if listname == "src" then + return stack:get_count() + elseif listname == "dst" then + return 0 + 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) + + if to_list == "src" then + return count + elseif to_list == "dst" then + return 0 + end + end, +}) + +minetest.register_craft({ + output = "wine:wine_barrel", + recipe = { + {"group:wood", "group:wood", "group:wood"}, + {"default:steel_ingot", "", "default:steel_ingot"}, + {"group:wood", "group:wood", "group:wood"}, + }, +}) + +-- Wine barrel abm +minetest.register_abm({ + nodenames = {"wine:wine_barrel"}, + interval = 5.0, + chance = 1, + + action = function(pos, node) + + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + + -- make sure only grapes are fermented in barrel + if not inv:contains_item("src", ItemStack("farming:grapes")) + and not inv:is_empty("src") then + return + end + + -- is barrel full + if not inv:room_for_item("dst", "farming:grapes") then + meta:set_string("infotext", "Wine Barrel (FULL)") + return + end + + -- do we have any grapes to ferment? + if not inv:is_empty("src") then + + local status = meta:get_float("status") + + -- fermenting (change status) + if status < 100 then + meta:set_string("infotext", "Wine Barrel (fermented: " .. status .. "%)") + meta:set_float("status", status + 5) + + else --fermented (take grapes and add glass of wine) + inv:remove_item("src", "farming:grapes") + inv:add_item("dst", "wine:glass_wine") + meta:set_float("status", 0.0) + end + else + meta:set_string("infotext", "Wine Barrel") + end + end, +}) |