tweak recipe order, optimized code

master
tenplus1 2022-08-19 15:06:54 +01:00
parent bdd0d5ac86
commit 241b6e158a
3 changed files with 41 additions and 51 deletions

View File

@ -34,10 +34,7 @@ minetest.register_node("wine:blue_agave", {
on_use = minetest.item_eat(2), on_use = minetest.item_eat(2),
on_construct = function(pos) on_construct = function(pos)
minetest.get_node_timer(pos):start(17)
local timer = minetest.get_node_timer(pos)
timer:start(17)
end, end,
on_timer = function(pos) on_timer = function(pos)

View File

@ -47,7 +47,6 @@ minetest.override_item("wine:glass_brandy", {
} }
}) })
-- wine mod adds tequila by default -- wine mod adds tequila by default
wine:add_item({ wine:add_item({
{ {
@ -57,15 +56,6 @@ wine:add_item({
{"wine:blue_agave", "wine:glass_tequila"} {"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 -- xdecor
if minetest.get_modpath("xdecor") then if minetest.get_modpath("xdecor") then
@ -122,6 +112,15 @@ if minetest.get_modpath("farming") then
end end
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 -- mineclone2
if minetest.get_modpath("mcl_core") then 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"}, {"mcl_farming:carrot_item", "mcl_core:sugar", "vessels:drinking_glass"},
"wine:glass_sparkling_carrot_juice" "wine:glass_sparkling_carrot_juice"
}, }
}) })
end end

View File

@ -207,14 +207,27 @@ end
-- list of buckets used to fill barrel -- list of buckets used to fill barrel
local bucket_list = { local bucket_list = {
{"bucket:bucket_water", "bucket:bucket_empty"}, {"bucket:bucket_water", "bucket:bucket_empty", 20},
{"bucket:bucket_river_water", "bucket:bucket_empty"}, {"bucket:bucket_river_water", "bucket:bucket_empty", 20},
{"bucket_wooden:bucket_water", "bucket_wooden:bucket_empty"}, {"bucket_wooden:bucket_water", "bucket_wooden:bucket_empty", 20},
{"bucket_wooden:bucket_river_water", "bucket_wooden:bucket_river_empty"}, {"bucket_wooden:bucket_river_water", "bucket_wooden:bucket_river_empty", 20},
{"mcl_buckets:bucket_water", "mcl_buckets:bucket_empty"} {"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 -- Wine barrel node
minetest.register_node("wine:wine_barrel", { minetest.register_node("wine:wine_barrel", {
description = S("Fermenting Barrel"), description = S("Fermenting Barrel"),
@ -246,7 +259,7 @@ minetest.register_node("wine:wine_barrel", {
inv:set_size("dst", 1) -- brewed item inv:set_size("dst", 1) -- brewed item
end, 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) on_punch = function(pos, node, puncher, pointed_thing)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -254,8 +267,10 @@ minetest.register_node("wine:wine_barrel", {
local size = inv and inv:get_size("src") local size = inv and inv:get_size("src")
if size and size < 4 then if size and size < 4 then
inv:set_size("src", 4) inv:set_size("src", 4)
inv:set_size("src_b", 1) inv:set_size("src_b", 1)
meta:set_int("water", 50) meta:set_int("water", 50)
meta:set_string("formspec", winebarrel_formspec(0, "", 50)) meta:set_string("formspec", winebarrel_formspec(0, "", 50))
end end
@ -267,7 +282,8 @@ minetest.register_node("wine:wine_barrel", {
local inv = meta:get_inventory() local inv = meta:get_inventory()
if not inv:is_empty("dst") 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 return false
end end
@ -300,23 +316,13 @@ minetest.register_node("wine:wine_barrel", {
local water = meta:get_int("water") local water = meta:get_int("water")
-- water full, return bucket -- water full, return item
if water == 100 then if water == 100 then
return 0 return 0
end end
local is_water
local is_bucket = stack:get_name() local is_bucket = stack:get_name()
local is_water = water_check(is_bucket)
for _, def in ipairs(bucket_list) do
if def[1] == is_bucket then
is_water = true
break
end
end
if is_water then if is_water then
return stack:get_count() return stack:get_count()
@ -356,34 +362,22 @@ minetest.register_node("wine:wine_barrel", {
if listname == "src_b" then if listname == "src_b" then
local is_water = false
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local inv = meta:get_inventory() local inv = meta:get_inventory()
local is_bucket = inv:get_stack("src_b", 1):get_name() local is_bucket = inv:get_stack("src_b", 1):get_name()
local def local is_water = water_check(is_bucket)
for n = 1, #bucket_list do
def = bucket_list[n]
if def[1] == is_bucket then
is_water = true
break
end
end
if is_water then if is_water then
local water = meta:get_int("water") 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 if water > 100 then water = 100 end
inv:remove_item("src_b", def[1]) inv:remove_item("src_b", is_water[1])
inv:add_item("src_b", def[2]) inv:add_item("src_b", is_water[2])
local status = meta:get_float("status") local status = meta:get_float("status")