MainMenuBlocks/Item
Рецепты
local prototypes = mw.loadData("Module:Meals Lookup/data") local chem = mw.loadData("Module:Chemistry Lookup/data")
local p = {} p.meals = prototypes.meals p.chemicals = chem.react
--#region universal
function table.containsv(table, value) -- FUCKING LUA
-- containsv = contains value for _, v in pairs(table) do if v == value then return true end end return false
end
function table.containsk(table, key) -- FUCKING LUA
-- containsk = contains key for k, _ in pairs(table) do if k == key then return true end end return false
end
function table.length(table)
local out = 0 for _ in pairs(table) do out = out + 1 end return out
end
function table.isempty(t)
local count = table.length(t) if count == 0 then do return true end end return false
end
function getrecipesfromtype(frame, type) -- should not be invoked
return p.meals[type]
end
function getrecipe(frame, type, id) -- should not be invoked
return getrecipesfromtype(frame, type)[id:gsub(' ', )]
end
function getrecipetypes(frame, id) -- should not be invoked
local out = {} for type, recipes in pairs(p.meals) do for recipeId, recipe in pairs(recipes) do if (recipeId:gsub(' ', ) == id:gsub(' ', )) or (recipe["id"]:gsub(' ', ) == id:gsub(' ', )) then table.insert(out, type) break end end end return out
end
function getimage(frame, fileid) -- should not be invoked
local out = "" --[[ WARNING!! THE NEXT THING IS "EXPENSIVE" AND DOES NOT WORKS AFTER 30 OR SMTHNG RUNS read https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Expensive_properties for more info local gifFileTitle = mw.title.new(fileid .. ".gif", "File") local pngFileTitle = mw.title.new(fileid .. ".png", "File") if gifFileTitle.file.exists then out = "File:" .. fileid .. ".gif" elseif pngFileTitle.file.exists then out = "File:" .. fileid .. ".png" else out = "" end --]]
-- less expensive variant, but returns only png (AND BIG RED TEXT IF PNG DOES NOT EXISTS) out = "File:" .. fileid .. ".png" return out
end
function buildsolids(frame, array) -- should not be invoked
local out = "" for solid, amount in pairs(array) do out = out .. frame:preprocess("
")
end return out
end
function buildreagents(frame, array) -- should not be invoked
local out = "" for item, amount in pairs(array) do
out = out .. frame:preprocess("
")
end return out
end
-- returns recipes which id is matched by pattern function getrecipesbyname(frame, tabl, str) -- should not be inviked
local out = {} for type, recipes in pairs(tabl) do out[type] = {} for recipeId, recipe in pairs(recipes) do if string.match(recipeId, str) then table.insert(out[type], recipe) end end end return out
end
-- same as above, but returns recipes that *does not* match given pattern function getotherrecipes(frame, tabl, str) -- should not be invoked
local out = {} for type, recipes in pairs(tabl) do if not table.containsk(out, type) then out[type] = {} end for recipeId, recipe in pairs(recipes) do if not string.match(recipeId, str) then if not table.containsv(out[type], recipe) then table.insert(out[type], recipe) end end end end return out
end
function p.imageslist(frame)
local out = "REQUIRED IMAGES:
" for cat, recipes in pairs(p.meals) do for id, recipe in pairs(recipes) do if cat == "microwaveRecipes" then do out = out .. recipe["result"] .. ": [[:File:" .. recipe["result"] .. ".png]]
" if #recipe["solids"] > 0 then do for solid in pairs(getmicrowaverecipesolids(recipe)) do out = out .. solid .. ": File:" .. solid .. ".png
" end end end end end if cat == "sliceableRecipes" or cat == "heatableRecipes" or cat == "toolmadeRecipes" then do out = out .. recipe["result"] .. ": [[:File:" .. recipe["result"] .. ".png]]
" out = out .. recipe["input"] .. ": [[:File:" .. recipe["input"] .. ".png]]
" end end if cat == "grindableRecipes" then do out = out .. recipe["input"] .. ": [[:File:" .. recipe["input"] .. ".png]]
" end end end end
out = out .. "
"
return out
end
function p.buildeverything(frame) -- old code compatibility
return p.buildeverythingnew(frame)
end
function p.buildeverythingold(frame)
local out = "" out = out .. p.buildmicrowaverecipes(frame) out = out .. p.buildslicerecipes(frame) out = out .. p.buildgrindrecipes(frame) out = out .. p.buildheatrecipes(frame) out = out .. p.buildtoolmaderecipes(frame) out = out .. p.buildixablerecipes(frame) return out
end
--#endregion
--#region microwaveRecipes
function getmicrowaverecipesolids(frame, recipe) -- should not be invoked
local out = {} for ingredient, amount in pairs(recipe["solids"]) do out[ingredient] = amount end return out
end
function getmicrowaverecipereagents(frame, recipe) -- should not be invoked
local out = {} for ingredient, amount in pairs(recipe["reagents"]) do out[ingredient] = amount end return out
end
function p.buildmicrowaverecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 194: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = getrecipe(frame, "microwaveRecipes", id) local solids = buildsolids(frame, getmicrowaverecipesolids(frame, recipe)) local reagents = buildreagents(frame, getmicrowaverecipereagents(frame, recipe)) out = frame:preprocess("{{Recipe Box" .. "|name=Не найдено" .. "|component-1=" .. solids .. "\n" .. reagents ..
"|transformer=
" ..
"|result=" .. frame:preprocess("
") ..
"}}") return out
end
function p.buildmicrowaverecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "microwaveRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 194: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion microwaveRecipes
--#region sliceableRecipes
function p.buildslicerecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 242: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = getrecipe(frame, "sliceableRecipes", id) out = frame:preprocess("{{Recipe Box" .. "|name=Не найдено" .. "|component-1=" .. frame:preprocess("
") .. "|transformer=
" ..
"|result=" .. frame:preprocess("
") ..
"}}") return out
end
function p.buildslicerecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "sliceableRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 242: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion sliceableRecipes
--#region grindableRecipes
function p.buildgrindrecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 270: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = getrecipe(frame, "grindableRecipes", id) local reagents = buildreagents(frame, recipe["result"]) out = frame:preprocess("{{Recipe Box" .. "|name=Не найдено" .. "|component-1=" .. frame:preprocess("
") .. "|transformer=
" ..
"|result=" .. reagents .. "}}") return out
end
function p.buildgrindrecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "grindableRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 270: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion grindableRecipes
--#region heatableRecipes
function p.buildheatrecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 299: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = getrecipe(frame, "heatableRecipes", id) out = frame:preprocess("{{Recipe Box" .. "|name=Не найдено" .. "|component-1=" .. frame:preprocess("
") .. "|transformer=
" ..
"|result=" .. frame:preprocess("
") ..
"}}") return out
end
function p.buildheatrecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "heatableRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 299: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion heatableRecipes
--#region toolmadeRecipes
function p.buildtoolmaderecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 327: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = getrecipe(frame, "toolmadeRecipes", id) local transformer = "toolmadeRecipes" .. recipe["tool"] out = frame:preprocess("{{Recipe Box" .. "|name=Не найдено" .. "|component-1=" .. frame:preprocess("
") ..
"|transformer=" .. "|result=" .. frame:preprocess("
") ..
"}}") return out
end
function p.buildtoolmaderecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "toolmadeRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 327: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion toolmadeRecipes
--#region mixableRecipes
function getchemicalreagents(recipe) -- should not be invoked
local out = {} for ingredient, data in pairs(recipe["reactants"]) do out[ingredient] = data["amount"] end return out
end
function p.buildmixablerecipebox(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 355: attempt to index local 'recipe' (a nil value).
local out = "" local id = frame.args[1]:gsub(' ', ) local recipe = p.chemicals[id] local input = buildreagents(frame, getchemicalreagents(recipe))
local results = {} for _, v in pairs(recipe["effects"]) do table.insert(results, v.description) end
local result = table.concat(results, "\n")
out = frame:preprocess("{{Recipe Box" .. "|component-1=" .. input .. "|name= " ..
"|transformer=
" ..
"|result=" .. result .. "}}") return out
end
function p.buildixablerecipes(frame)
local out = ""
for id in pairs(getrecipesfromtype(frame, "mixableRecipes")) do
out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 355: attempt to index local 'recipe' (a nil value).") .. "\n"
end
return out
end
--#endregion mixableRecipes
--#region dishes
function p.buildrecipeboxuniversal(frame, idtable)
local out = "" for type, recipes in pairs(idtable) do -- INTRUDER ALERT: SHITCODE IS IN THE BASE local id = "" if type == "microwaveRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 194: attempt to index local 'recipe' (a nil value).") .. "\n" end end elseif type == "mixableRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 355: attempt to index local 'recipe' (a nil value).") .. "\n" end end elseif type == "sliceableRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 242: attempt to index local 'recipe' (a nil value).") .. "\n" end end elseif type == "grindableRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 270: attempt to index local 'recipe' (a nil value).") .. "\n" end end elseif type == "heatableRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 299: attempt to index local 'recipe' (a nil value).") .. "\n" end end elseif type == "toolmadeRecipes" and not table.isempty(recipes) then do for n, recipe in pairs(recipes) do id = recipe["id"] out = out .. frame:preprocess("Ошибка Lua в Модуль:Meals_Lookup на строке 327: attempt to index local 'recipe' (a nil value).") .. "\n" end end end end return out
end
-- you should not use this for building recipes inside lua function p.buildnamedrecipes(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 114: malformed pattern (missing ']').
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do local ids = getrecipesbyname(frame, tablo, patt) out = out .. p.buildrecipeboxuniversal(frame, ids) end return out
end
-- same as buildnamedrecipes, but instead builds recipes that does not match the pattern function p.buildotherrecipes(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 130: malformed pattern (missing ']').
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do local ids = getotherrecipes(frame, tablo, patt) out = out .. p.buildrecipeboxuniversal(frame, ids) end return out
end
-- builds recipes list but does not constructs it, for debug purposes function p.getrecipeslist(frame)
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do for type, recipes in pairs(getrecipesbyname(frame, tablo, patt)) do out = out .. type .. "(" for k, r in pairs(recipes) do out = out .. " " .. k .. ":" .. r["id"] end out = out .. ")" end end return out
end
-- same as getrecipeslist, but instead returns recipes that does not match the pattern function p.getotherrecipeslist(frame)
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do for type, recipes in pairs(getotherrecipes(frame, tablo, patt)) do out = out .. type .. "(" for k, r in pairs(recipes) do out = out .. " " .. k .. ":" .. r["id"] end out = out .. ")" end end return out
end
--#endregion
--#region newdishestest
-- returns recipes which id is matched by pattern function getrecipesbynamenew(frame, tabl, str) -- should not be inviked
local out = {} for rtype, recipes in pairs(tabl) do for recipeId, recipe in pairs(recipes) do out[rtype] = {} if type(str) == "table" then do for _, patt in pairs(str) do if string.match(recipeId, patt) and not table.containsv(recipe) then table.insert(out[rtype], recipe) end end end else do if string.match(recipeId, str) then table.insert(out[rtype], recipe) end end end end end return out
end
-- same as above, but returns recipes that *does not* match given pattern function getotherrecipesnew(frame, tabl, str) -- should not be invoked
local out = {} for type, recipes in pairs(tabl) do if not table.containsk(out, type) then out[type] = {} end for recipeId, recipe in pairs(recipes) do if not string.match(recipeId, str) then if not table.containsv(out[type], recipe) then table.insert(out[type], recipe) end end end end return out
end
-- you should not use this for building recipes inside lua function p.buildnamedrecipesnew(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 114: malformed pattern (missing ']').
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do local ids = getrecipesbynamenew(frame, tablo, patt) out = out .. p.buildrecipeboxuniversal(frame, ids) end return out
end
-- same as buildnamedrecipes, but instead builds recipes that does not match the pattern function p.buildotherrecipesnew(frame) -- Ошибка Lua в Модуль:Meals_Lookup на строке 130: malformed pattern (missing ']').
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do local ids = getotherrecipesnew(frame, tablo, patt) out = out .. p.buildrecipeboxuniversal(frame, ids) end return out
end
--#endregion
-- tests. function p.tests1(frame)
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do for type, recipes in pairs(getotherrecipes(frame, tablo, patt)) do out = out .. type .. "(" for k, r in pairs(recipes) do out = out .. " " .. k .. ":" .. r["id"] end out = out .. ")" end end return out
end
function p.tests2(frame)
local out = "" local tablo = p.meals for _, patt in pairs(frame.args) do for type, recipes in pairs(getrecipesbyname(frame, tablo, patt)) do out = out .. type .. "(" for k, r in pairs(recipes) do out = out .. " " .. k .. ":" .. r["id"] end out = out .. ")" end end return out
end
return p
Соусы & Продукты
Вещество |
Ингредиенты |
Действие |
Результат |
Описание |
Эффект |
---|---|---|---|---|---|
Вода |
10 Ядерная кола |
|
Бесцветная жидкость, необходимая человекам для выживания. На вид прозрачное. |
| |
4 Витамины |
|
||||
5 Слизь |
|
||||
|
11 Вода | ||||
4 Аллицин |
|
||||
20 Кровь |
|
11 Вода | |||
|
|||||
10 Масло |
|
||||
|
|||||
Молоко |
Непрозрачная белая жидкость, вырабатываемая молочными железами млекопитающих. На вид непрозрачное. |
| |||
Tea powder |
Finely ground tea leaves, used for making tea. На вид порошкообразное. |
| |||
Питательные вещества |
Все необходимые организму витамины, минералы и углеводы в чистом виде. На вид непрозрачное. |
| |||
Рис |
Твёрдые, маленькие белые зёрнышки. На вид жевательное. |
| |||
Кетчуп |
|
3 Кетчуп |
Приготовлен из томатного пюре с добавлением специй. На вид пикантное. |
||
Столовая соль |
|
Хлорид натрия, широко известный как соль, часто используется в качестве пищевой приправы или для мгновенного уничтожения мозговых червей. На вид зернистое. |
| ||
Аллицин |
Сероорганическое соединение, содержащееся в растениях-аллиумах, таких, как чеснок, лук и других. На вид жгучее. |
| |||
Кетчунез |
|
2 Кетчунез |
Так называемый Русский соус, популярный среди космо-американцев. На вид соусное. |
||
Непрожаренные животные протеины |
Крайне опасны для желудков более слабых форм жизни. На вид комковатое. |
| |||
Горчица |
|
2 Горчица |
Простая горчица жёлтого цвета, изготовленная из семян горчицы. На вид густое. |
||
Соевый соус |
|
Солёная приправа на основе сои. На вид солёное. |
| ||
Какао-порошок |
Из лучших сортов какао-бобов. На вид порошкообразное. |
| |||
Сироп |
1.2 Древесный сок |
|
0.1 Сироп |
Вкуснейший сироп, получаемый из древесного сока, и который по своим свойствам липче клея. На вид липкое. |
|
Соус барбекю |
|
Салфетки в комплект не входят. На вид вязкое. |
|||
Универсальный фермент |
Используется в приготовлении различных блюд. На вид меловое. |
||||
Винегретная заправка |
|
Простая заправка для салатов, приготовленная из масла, уксуса и приправ. На вид кислое. |
|||
Мука |
Используется в выпечке. На вид порошкообразное. |
| |||
Витамины |
Содержатся в здоровом, полноценном питании. На вид меловое. |
| |||
Кукурузная мука |
Используется в выпечке. На вид порошкообразное. |
| |||
Протеины |
|
11 Вода |
Также известные как белки. Содержатся в некоторых блюдах, полезны для здоровья организма. На вид комковатое. |
| |
|
0.5 Протеины | ||||
10 Масло |
|
||||
|
|||||
20 Кровь |
|
11 Вода | |||
Смешной сироп |
Продукт отжима смешного горошка. Он шипуч и, похоже, меняет вкус в зависимости от того, с чем его употребляют! На вид смешное. |
||||
Овёс |
Используется для различных вкусных целей. На вид грубое. |
| |||
Мякоть тыквы |
Кашеобразные, сладкие остатки тыквы. На вид непрозрачное. |
| |||
Хрен |
Пакетик душистого хрена. На вид очень мощное. |
||||
Холодный соус |
Заставляет язык онеметь. На вид холодное. |
||||
Уксус |
|
2 Уксус |
Часто используется как приправа к пище. На вид кислое. |
| |
Сырое яйцо |
Используется в выпечке. На вид слизеподобное. |
| |||
Оливковое масло |
Вязкое и ароматное. На вид масляное. |
| |||
Чёрный перец |
Часто используется как приправа к пище, или чтобы заставить людей чихать. На вид зернистое. |
||||
Сахар |
|
Вкусный космический сахар! На вид сладкое. |
| ||
|
11 Вода | ||||
20 Кровь |
|
11 Вода | |||
|
|||||
|
|||||
|
|||||
|
|||||
10 Ядерная кола |
|
||||
Астротем |
Слаще тысячи ложек сахара, но без калорий. На вид сахаристое. |
||||
Кукурузное масло |
Кукурузное масло. Вкусное масло, используемое в готовке. Изготавливается из кукурузы. На вид масляное. |
||||
Острый соус |
|
Вкус просто огонь. На вид острое. |
|||
Майонез |
|
15 Майонез |
Жирный соус, приготовленный из масла, яиц, и какой-либо (пищевой) кислоты. На вид густое. |
||
5 Масло |
|
15 Майонез | |||
Сливочное масло |
Предположительно, сливочное! На вид сливочное. |
| |||
Капсаициновое масло |
Капсаициновое масло - это ингредиент, содержащийся в различных сортах острого перца. На вид масляное. |
| |||
Масло |
|
3 Масло |
Используется поварами для приготовления пищи. На вид масляное. |
||
Приготовленное яйцо |
0.5 Сырое яйцо |
|
Приготовленный зародыш курицы, вкусно. На вид пушистое. |
|