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_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)

View File

@ -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

View File

@ -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")