From 241b6e158aa0d142bf7661b7bf82c18859ec01c2 Mon Sep 17 00:00:00 2001 From: tenplus1 Date: Fri, 19 Aug 2022 15:06:54 +0100 Subject: [PATCH] tweak recipe order, optimized code --- agave.lua | 5 +---- drinks.lua | 21 +++++++++-------- init.lua | 66 +++++++++++++++++++++++++----------------------------- 3 files changed, 41 insertions(+), 51 deletions(-) diff --git a/agave.lua b/agave.lua index 53ed37a..8bcb248 100644 --- a/agave.lua +++ b/agave.lua @@ -34,10 +34,7 @@ minetest.register_node("wine:blue_agave", { on_use = minetest.item_eat(2), on_construct = function(pos) - - local timer = minetest.get_node_timer(pos) - - timer:start(17) + minetest.get_node_timer(pos):start(17) end, on_timer = function(pos) diff --git a/drinks.lua b/drinks.lua index e96e2e9..c20ae09 100644 --- a/drinks.lua +++ b/drinks.lua @@ -47,7 +47,6 @@ minetest.override_item("wine:glass_brandy", { } }) - -- wine mod adds tequila by default wine:add_item({ { @@ -57,15 +56,6 @@ wine:add_item({ {"wine:blue_agave", "wine:glass_tequila"} }) --- default game -if minetest.get_modpath("default") then - - wine:add_item({ - {"default:apple", "wine:glass_cider"}, - {"default:papyrus", "wine:glass_rum"} - }) -end - -- xdecor if minetest.get_modpath("xdecor") then @@ -122,6 +112,15 @@ if minetest.get_modpath("farming") then end end +-- default game +if minetest.get_modpath("default") then + + wine:add_item({ + {"default:apple", "wine:glass_cider"}, + {"default:papyrus", "wine:glass_rum"} + }) +end + -- mineclone2 if minetest.get_modpath("mcl_core") then @@ -137,6 +136,6 @@ if minetest.get_modpath("mcl_core") then { {"mcl_farming:carrot_item", "mcl_core:sugar", "vessels:drinking_glass"}, "wine:glass_sparkling_carrot_juice" - }, + } }) end diff --git a/init.lua b/init.lua index c4b6d45..61e999f 100644 --- a/init.lua +++ b/init.lua @@ -207,14 +207,27 @@ end -- list of buckets used to fill barrel local bucket_list = { - {"bucket:bucket_water", "bucket:bucket_empty"}, - {"bucket:bucket_river_water", "bucket:bucket_empty"}, - {"bucket_wooden:bucket_water", "bucket_wooden:bucket_empty"}, - {"bucket_wooden:bucket_river_water", "bucket_wooden:bucket_river_empty"}, - {"mcl_buckets:bucket_water", "mcl_buckets:bucket_empty"} + {"bucket:bucket_water", "bucket:bucket_empty", 20}, + {"bucket:bucket_river_water", "bucket:bucket_empty", 20}, + {"bucket_wooden:bucket_water", "bucket_wooden:bucket_empty", 20}, + {"bucket_wooden:bucket_river_water", "bucket_wooden:bucket_river_empty", 20}, + {"mcl_buckets:bucket_water", "mcl_buckets:bucket_empty", 20}, + {"farming:glass_water", "vessels:drinking_glass", 5} } +-- water item helper +local function water_check(item) + + for n = 1, #bucket_list do + + if bucket_list[n][1] == item then + return bucket_list[n] + end + end +end + + -- Wine barrel node minetest.register_node("wine:wine_barrel", { description = S("Fermenting Barrel"), @@ -246,7 +259,7 @@ minetest.register_node("wine:wine_barrel", { inv:set_size("dst", 1) -- brewed item end, - -- punch barrel to change old 1x slot barrels into 4x slots and add a little water + -- punch old barrel to change to new 4x slot variant and add a little water on_punch = function(pos, node, puncher, pointed_thing) local meta = minetest.get_meta(pos) @@ -254,8 +267,10 @@ minetest.register_node("wine:wine_barrel", { local size = inv and inv:get_size("src") if size and size < 4 then + inv:set_size("src", 4) inv:set_size("src_b", 1) + meta:set_int("water", 50) meta:set_string("formspec", winebarrel_formspec(0, "", 50)) end @@ -267,7 +282,8 @@ minetest.register_node("wine:wine_barrel", { local inv = meta:get_inventory() if not inv:is_empty("dst") - or not inv:is_empty("src") then + or not inv:is_empty("src") + or not inv:is_empty("src_b") then return false end @@ -300,23 +316,13 @@ minetest.register_node("wine:wine_barrel", { local water = meta:get_int("water") - -- water full, return bucket + -- water full, return item if water == 100 then return 0 end - local is_water local is_bucket = stack:get_name() - - for _, def in ipairs(bucket_list) do - - if def[1] == is_bucket then - - is_water = true - - break - end - end + local is_water = water_check(is_bucket) if is_water then return stack:get_count() @@ -356,34 +362,22 @@ minetest.register_node("wine:wine_barrel", { if listname == "src_b" then - local is_water = false local meta = minetest.get_meta(pos) local inv = meta:get_inventory() local is_bucket = inv:get_stack("src_b", 1):get_name() - local def - - for n = 1, #bucket_list do - - def = bucket_list[n] - - if def[1] == is_bucket then - - is_water = true - - break - end - end + local is_water = water_check(is_bucket) if is_water then local water = meta:get_int("water") + local amount = tonumber(is_water[3]) or 0 - water = water + 20 + water = water + amount if water > 100 then water = 100 end - inv:remove_item("src_b", def[1]) - inv:add_item("src_b", def[2]) + inv:remove_item("src_b", is_water[1]) + inv:add_item("src_b", is_water[2]) local status = meta:get_float("status")