MainMenuBlocks/Item: различия между версиями

Материал из Space Station 14 Вики
Нет описания правки
Нет описания правки
 
(не показана 1 промежуточная версия этого же участника)
Строка 1: Строка 1:
== <center>Рецепты</center> ==
== <center>Рецепты</center> ==
local prototypes = mw.loadData("Module:Meals Lookup/data")
=== <center>Смешиваемые рецепты</center> ===
local chem = mw.loadData("Module:Chemistry Lookup/data")
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
{{#invoke:Meals LookupF|buildixablerecipes}}
</div>


local p = {}
p.meals = prototypes.meals
p.chemicals = chem.react


--#region universal
=== <center>Handmade рецепты</center> ===
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
{{#invoke:Meals LookupF|buildtoolmaderecipes}}
</div>


function table.containsv(table, value) -- FUCKING LUA
=== <center>Жареное</center> ===
    -- containsv = contains value
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
    for _, v in pairs(table) do
{{#invoke:Meals LookupF|buildheatrecipes}}
        if v == value then
</div>
            return true
=== <center>Рецепты для микроволновки</center> ===
        end
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
    end
{{#invoke:Meals LookupF|buildmicrowaverecipes}}
    return false
</div>
end
=== <center>Рецепты для нарезки</center> ===
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
{{#invoke:Meals LookupF|buildslicerecipes}}
</div>
<!--
<div class="mw-collapsible mw-collapsed">
<h2 style="text-align:center;">Рецепты для измельчителя</h2>
<div class="mw-collapsible-content" style="display: flex; flex-flow: row wrap; justify-content: center;">
{{#invoke:Meals Lookup|buildgrindrecipes}}
</div></div>
-->


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("{{Recipe Component|item={{#invoke:Entity Lookup|getname|" ..
                solid .. "}}|image=" .. getimage(frame, solid) .. "|amount=" .. amount .. "}}")
    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("{{Chem Recipe Component|reagent=" .. item .. "|amount=" .. amount .. "}}")
    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:'''<br>"
    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]]<br>"
                    if #recipe["solids"] > 0 then
                        do
                            for solid in pairs(getmicrowaverecipesolids(recipe)) do
                                out = out .. solid .. ": [[:File:" .. solid .. ".png]]<br>"
                            end
                        end
                    end
                end
            end
            if cat == "sliceableRecipes" or cat == "heatableRecipes" or cat == "toolmadeRecipes" then
                do
                    out = out .. recipe["result"] .. ": [[:File:" .. recipe["result"] .. ".png]]<br>"
                    out = out .. recipe["input"] .. ": [[:File:" .. recipe["input"] .. ".png]]<br>"
                end
            end
            if cat == "grindableRecipes" then
                do
                    out = out .. recipe["input"] .. ": [[:File:" .. recipe["input"] .. ".png]]<br>"
                end
            end
        end
    end
    out = out .. "<br><hr>"
    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) -- {{#invoke:Meals Lookup|buildmicrowaverecipebox|MicrowaveRecipeID}}
    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={{#invoke:Entity Lookup|getname|" .. recipe["result"] .. "}}" ..
        "|component-1=" .. solids .. "\n" .. reagents ..
        "|transformer={{Recipe Transformers|microwaveRecipes|" .. recipe["time"] .. "}}" ..
        "|result=" ..
        frame:preprocess("{{Result Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["result"] .. "}}|image=" .. getimage(frame, recipe["result"]) .. "}}") ..
        "}}")
    return out
end
function p.buildmicrowaverecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "microwaveRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildmicrowaverecipebox|" .. id .. "}}") .. "\n"
    end
    return out
end
--#endregion microwaveRecipes
--#region sliceableRecipes
function p.buildslicerecipebox(frame) -- {{#invoke:Meals Lookup|buildslicerecipebox|SliceableRecipeID}}
    local out = ""
    local id = frame.args[1]:gsub(' ', '')
    local recipe = getrecipe(frame, "sliceableRecipes", id)
    out = frame:preprocess("{{Recipe Box" ..
        "|name={{#invoke:Entity Lookup|getname|" .. recipe["result"] .. "}}" ..
        "|component-1=" ..
        frame:preprocess("{{Recipe Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["input"] .. "}}|image=" .. getimage(frame, recipe["input"]) .. "}}") ..
        "|transformer={{Recipe Transformers|sliceableRecipes}}" ..
        "|result=" ..
        frame:preprocess("{{Result Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["result"] .. "}}|image=" .. getimage(frame, recipe["result"]) .. "|amount=" .. recipe["count"] .. "}}") ..
        "}}")
    return out
end
function p.buildslicerecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "sliceableRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildslicerecipebox|" .. id .. "}}") .. "\n"
    end
    return out
end
--#endregion sliceableRecipes
--#region grindableRecipes
function p.buildgrindrecipebox(frame) -- {{#invoke:Meals Lookup|buildgrindrecipebox|GrindableRecipeID}}
    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={{#invoke:Entity Lookup|getname|" .. recipe["id"] .. "}}" ..
        "|component-1=" ..
        frame:preprocess("{{Result Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["input"] .. "}}|image=" .. getimage(frame, recipe["input"]) .. "}}") ..
        "|transformer={{Recipe Transformers|grindableRecipes}}" ..
        "|result=" .. reagents ..
        "}}")
    return out
end
function p.buildgrindrecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "grindableRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildgrindrecipebox|" .. id .. "}}") .. "\n"
    end
    return out
end
--#endregion grindableRecipes
--#region heatableRecipes
function p.buildheatrecipebox(frame) -- {{#invoke:Meals Lookup|buildheatrecipebox|HeatableRecipeID}}
    local out = ""
    local id = frame.args[1]:gsub(' ', '')
    local recipe = getrecipe(frame, "heatableRecipes", id)
    out = frame:preprocess("{{Recipe Box" ..
        "|name={{#invoke:Entity Lookup|getname|" .. recipe["result"] .. "}}" ..
        "|component-1=" ..
        frame:preprocess("{{Recipe Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["input"] .. "}}|image=" .. getimage(frame, recipe["input"]) .. "}}") ..
        "|transformer={{Recipe Transformers|heatableRecipes|" .. recipe["minTemp"] .. "}}" ..
        "|result=" ..
        frame:preprocess("{{Result Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["result"] .. "}}|image=" .. getimage(frame, recipe["result"]) .. "}}") ..
        "}}")
    return out
end
function p.buildheatrecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "heatableRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildheatrecipebox|" .. id .. "}}") .. "\n"
    end
    return out
end
--#endregion heatableRecipes
--#region toolmadeRecipes
function p.buildtoolmaderecipebox(frame) -- {{#invoke:Meals Lookup|buildtoolmaderecipebox|ToolmadeRecipeID}}
    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={{#invoke:Entity Lookup|getname|" .. recipe["result"] .. "}}" ..
        "|component-1=" ..
        frame:preprocess("{{Recipe Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["input"] .. "}}|image=" .. getimage(frame, recipe["input"]) .. "}}") ..
        "|transformer={{Recipe Transformers|" .. transformer .. "}}" ..
        "|result=" ..
        frame:preprocess("{{Result Component|item={{#invoke:Entity Lookup|getname|" ..
            recipe["result"] .. "}}|image=" .. getimage(frame, recipe["result"]) .. "}}") ..
        "}}")
    return out
end
function p.buildtoolmaderecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "toolmadeRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildtoolmaderecipebox|" .. id .. "}}") .. "\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) -- {{#invoke:Meals Lookup|buildmixablerecipebox|MixableRecipeID}}
    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={{Recipe Transformers|mixableRecipes}}" ..
        "|result=" .. result .. "}}")
    return out
end
function p.buildixablerecipes(frame)
    local out = ""
    for id in pairs(getrecipesfromtype(frame, "mixableRecipes")) do
        out = out .. frame:preprocess("{{#invoke:Meals Lookup|buildmixablerecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildmicrowaverecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildmixablerecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildslicerecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildgrindrecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildheatrecipebox|" .. id .. "}}") .. "\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("{{#invoke:Meals Lookup|buildtoolmaderecipebox|" .. id .. "}}") .. "\n"
                end
            end
        end
    end
    return out
end
-- you should not use this for building recipes inside lua
function p.buildnamedrecipes(frame) -- {{#invoke:Meals Lookup|buildnamedrecipes|[Pattern1 | Pattern2 | Pattern3 | ...]}}
    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) -- {{#invoke:Meals Lookup|buildotherrecipes|[Pattern1 | Pattern2 | Pattern3 | ...]}}
    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) -- {{#invoke:Meals Lookup|buildnamedrecipes|[Pattern1 | Pattern2 | Pattern3 | ...]}}
    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) -- {{#invoke:Meals Lookup|buildotherrecipes|[Pattern1 | Pattern2 | Pattern3 | ...]}}
    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
== Соусы & Продукты ==
== Соусы & Продукты ==
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
<div style="display: flex; flex-flow: row wrap; justify-content: center;gap: 0.5em">
{{Таблица химических веществ|group=Foods|additional=Water,Milk}}
{{Таблица химических веществ|group=Foods|additional=Water,Milk}}
</div>
</div>

Текущая версия от 19:09, 14 января 2025

Рецепты

Смешиваемые рецепты

Ошибка Lua в Модуль:Meals_LookupF на строке 1: attempt to index global 'MW' (a nil value).


Handmade рецепты

Ошибка Lua в Модуль:Meals_LookupF на строке 1: attempt to index global 'MW' (a nil value).

Жареное

Ошибка Lua в Модуль:Meals_LookupF на строке 1: attempt to index global 'MW' (a nil value).

Рецепты для микроволновки

Ошибка Lua в Модуль:Meals_LookupF на строке 1: attempt to index global 'MW' (a nil value).

Рецепты для нарезки

Ошибка Lua в Модуль:Meals_LookupF на строке 1: attempt to index global 'MW' (a nil value).

Соусы & Продукты

Вещество

Ингредиенты

Действие

Результат

Описание

Эффект

Вода

10 Ядерная кола


центрифугирование

2 Ипекак
2 Сахар
1 Уран
2 Вода

Бесцветная жидкость, необходимая человекам для выживания. На вид прозрачное.

  • Drink (0.5 единиц в секунду)
    • Утоляет жажду на 1,333x от обычного.

4 Витамины


центрифугирование

1 Вода
2 Азот
1 Углерод

5 Слизь


центрифугирование

4 Вода
1 Азот

20 Голубая кровь


центрифугирование

11 Вода
2 Сахар
0.5 Медь
4 Протеины
3 Диоксид углерода

4 Аллицин


центрифугирование

1 Вода
2 Сера
1 Углерод

20 Кровь


центрифугирование

11 Вода
2 Сахар
3 Диоксид углерода
0.5 Железо
4 Протеины

5 Питательные вещества


центрифугирование

2 Вода
1 Сахар
2 Углерод

10 Масло


центрифугирование

3 Вода
1 Протеины
6 Жир

10 Древесный сок


центрифугирование

9 Вода
1 Сахар

Молоко

Непрозрачная белая жидкость, вырабатываемая молочными железами млекопитающих. На вид непрозрачное.

  • Drink (0.5 единиц в секунду)
    • Утоляет жажду на 1,333x от обычного.

Tea powder

Finely ground tea leaves, used for making tea. На вид порошкообразное.

  • Food (0.5 единиц в секунду)
    • Утоляет жажду на -0,067x от обычного.
    • Добавляют 0,1ед. от питательные вещества к раствора.

Питательные вещества

Все необходимые организму витамины, минералы и углеводы в чистом виде. На вид непрозрачное.

  • Food (0.5 единиц в секунду)
    • Насыщает голод средне.

Рис

Твёрдые, маленькие белые зёрнышки. На вид жевательное.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,4ед. от сахар к раствора.
    • Добавляют 0,1ед. от питательные вещества к раствора.

Кетчуп

1 Сахар
2 Томатный сок


смешивание

3 Кетчуп

Приготовлен из томатного пюре с добавлением специй. На вид пикантное.

Столовая соль

1 Натрий
1 Хлор


смешивание выше 370К

2 Столовая соль

Хлорид натрия, широко известный как соль, часто используется в качестве пищевой приправы или для мгновенного уничтожения мозговых червей. На вид зернистое.

  • Food (0.5 единиц в секунду)
    • Утоляет жажду на -0,167x от обычного.

Аллицин

Сероорганическое соединение, содержащееся в растениях-аллиумах, таких, как чеснок, лук и других. На вид жгучее.

  • Poison (0.05 единиц в секунду)
    • Наносит 0,06 ед. Яды , пока в кровеносной системе имеется по крайней мере 1ед. этот реагент and метаболизирующий орган это Животное орган.

Кетчунез

1 Майонез
1 Кетчуп


смешивание

2 Кетчунез

Так называемый Русский соус, популярный среди космо-американцев. На вид соусное.

Непрожаренные животные протеины

Крайне опасны для желудков более слабых форм жизни. На вид комковатое.

  • Food (0.5 единиц в секунду)
    • Имеет 10% шанс вызывают рвоту , пока метаболизирующий орган это не Животное орган.
    • Добавляют 0,5ед. от протеины к раствора , пока метаболизирующий орган это Животное орган.
    • Наносит 1 ед. Яды , пока метаболизирующий орган это не Животное орган.

Горчица

1 Аммиак
1 Отбеливатель


смешивание

2 Горчица

Простая горчица жёлтого цвета, изготовленная из семян горчицы. На вид густое.

Соевый соус

2 Соевое молоко
1 Серная кислота


смешивание

3 Соевый соус

Солёная приправа на основе сои. На вид солёное.

  • Food (0.5 единиц в секунду)
    • Насыщает голод на 0,167x от обычного.
    • Утоляет жажду на -0,167x от обычного.

Какао-порошок

Из лучших сортов какао-бобов. На вид порошкообразное.

  • Food (0.5 единиц в секунду)
    • Насыщает голод на 0,333x от обычного , пока в кровеносной системе имеется по крайней мере 0,1ед. питательные вещества.

Сироп

1.2 Древесный сок


смешивание выше 377К

0.1 Сироп
Создаёт 3 моль газа gases-water-vapor.

Вкуснейший сироп, получаемый из древесного сока, и который по своим свойствам липче клея. На вид липкое.

  • Food (0.5 единиц в секунду)
    • Насыщает голод на 2x от обычного.

Соус барбекю

1 Кетчуп
1 Сахар
1 Уксус


смешивание

3 Соус барбекю

Салфетки в комплект не входят. На вид вязкое.

Универсальный фермент

Используется в приготовлении различных блюд. На вид меловое.

Винегретная заправка

1 Уксус
1 Чёрный перец
1 Оливковое масло


смешивание

3 Винегретная заправка

Простая заправка для салатов, приготовленная из масла, уксуса и приправ. На вид кислое.

Мука

Используется в выпечке. На вид порошкообразное.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,4ед. от сахар к раствора.
    • Утоляет жажду на -0,067x от обычного.
    • Добавляют 0,1ед. от питательные вещества к раствора.

Витамины

Содержатся в здоровом, полноценном питании. На вид меловое.

  • Food (0.5 единиц в секунду)
    • Имеет 50% шанс излечивать 0,5 ед. Механические and 0,5 ед. Физические.
    • Ослабляет кровотечение.
    • Насыщает голод средне.

Кукурузная мука

Используется в выпечке. На вид порошкообразное.

  • Food (0.5 единиц в секунду)
    • Утоляет жажду на -0,067x от обычного.
    • Добавляют 0,1ед. от питательные вещества к раствора.

Протеины

20 Голубая кровь


центрифугирование

11 Вода
2 Сахар
0.5 Медь
4 Протеины
3 Диоксид углерода

Также известные как белки. Содержатся в некоторых блюдах, полезны для здоровья организма. На вид комковатое.

  • Food (0.5 единиц в секунду)
    • Имеет 50% шанс излечивать 0,4 ед. Механические.
    • Повышает уровень крови в организме.
    • Насыщает голод средне.

0.5 Непрожаренные животные протеины


смешивание выше 347К

0.5 Протеины

10 Масло


центрифугирование

3 Вода
1 Протеины
6 Жир

4 Кровь зомби


центрифугирование

1 Токсин
2 Плесень
1 Протеины

20 Кровь


центрифугирование

11 Вода
2 Сахар
3 Диоксид углерода
0.5 Железо
4 Протеины

Смешной сироп

Продукт отжима смешного горошка. Он шипуч и, похоже, меняет вкус в зависимости от того, с чем его употребляют! На вид смешное.

Овёс

Используется для различных вкусных целей. На вид грубое.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,2ед. от сахар к раствора.
    • Добавляют 0,3ед. от питательные вещества к раствора.

Мякоть тыквы

Кашеобразные, сладкие остатки тыквы. На вид непрозрачное.

  • Food (0.5 единиц в секунду)
    • Насыщает голод средне.

Хрен

Пакетик душистого хрена. На вид очень мощное.

Холодный соус

Заставляет язык онеметь. На вид холодное.

Уксус

1 Этанол
1 Кислород


смешивание

2 Уксус

Часто используется как приправа к пище. На вид кислое.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,4ед. от вода к раствора.
    • Добавляют 0,1ед. от витамины к раствора.
    • Имеет 10% шанс вызывают рвоту , пока в кровеносной системе имеется по крайней мере 6ед. этот реагент.

Сырое яйцо

Используется в выпечке. На вид слизеподобное.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,5ед. от непрожаренные животные протеины к раствора.

Оливковое масло

Вязкое и ароматное. На вид масляное.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,75ед. от питательные вещества к раствора.

Чёрный перец

Часто используется как приправа к пище, или чтобы заставить людей чихать. На вид зернистое.

Сахар

10 Древесный сок


центрифугирование

9 Вода
1 Сахар

Вкусный космический сахар! На вид сладкое.

  • Food (0.5 единиц в секунду)
    • Насыщает голод на 0,333x от обычного , пока в кровеносной системе имеется по крайней мере 0,1ед. питательные вещества.

20 Голубая кровь


центрифугирование

11 Вода
2 Сахар
0.5 Медь
4 Протеины
3 Диоксид углерода

20 Кровь


центрифугирование

11 Вода
2 Сахар
3 Диоксид углерода
0.5 Железо
4 Протеины

5 Волокно
10 Вода (катализатор)


центрифугирование

2 Сахар
3 Углерод

3 Целлюлозные волокна


электролиз

1 Углерод
2 Сахар

10 Банановый сок


центрифугирование

5 Калий
5 Сахар

5 Питательные вещества


центрифугирование

2 Вода
1 Сахар
2 Углерод

10 Ядерная кола


центрифугирование

2 Ипекак
2 Сахар
1 Уран
2 Вода

Астротем

Слаще тысячи ложек сахара, но без калорий. На вид сахаристое.

Кукурузное масло

Кукурузное масло. Вкусное масло, используемое в готовке. Изготавливается из кукурузы. На вид масляное.

Острый соус

1 Столовая соль
1 Капсаициновое масло
1 Томатный сок


смешивание

3 Острый соус

Вкус просто огонь. На вид острое.

Майонез

5 Масло
6 Сырое яйцо
5 Лимонный сок


смешивание

15 Майонез

Жирный соус, приготовленный из масла, яиц, и какой-либо (пищевой) кислоты. На вид густое.

5 Масло
5 Уксус
6 Сырое яйцо


смешивание

15 Майонез

Сливочное масло

Предположительно, сливочное! На вид сливочное.

  • Food (0.5 единиц в секунду)
    • Добавляют 0,75ед. от питательные вещества к раствора.

Капсаициновое масло

Капсаициновое масло - это ингредиент, содержащийся в различных сортах острого перца. На вид масляное.

  • Poison (0.5 единиц в секунду)
    • Добавляют 250,0 Дж тепла к телу, в котором он метабилизируется.
    • Наносит 1 ед. Кислотные , пока в кровеносной системе имеется по крайней мере 5ед. этот реагент.
  • Food (0.5 единиц в секунду)
    • Добавляют 0,75ед. от питательные вещества к раствора.

Масло

1 Водород
1 Углерод
1 Сварочное топливо


смешивание

3 Масло

Используется поварами для приготовления пищи. На вид масляное.

Приготовленное яйцо

0.5 Сырое яйцо


смешивание выше 344К

0.5 Приготовленное яйцо

Приготовленный зародыш курицы, вкусно. На вид пушистое.

  • Food (0.5 единиц в секунду)
    • Добавляют 1ед. от протеины к раствора.