163 lines
No EOL
5.5 KiB
Lua
163 lines
No EOL
5.5 KiB
Lua
local BioInd = require('common')('Bio_Industries_2')
|
|
|
|
if not thxbob.lib.recipe then thxbob.lib.recipe = {} end
|
|
|
|
|
|
function thxbob.lib.recipe.replace_ingredient(recipe, old, new)
|
|
local retval = false
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(new) then
|
|
|
|
local amount = 0
|
|
if data.raw.recipe[recipe].ingredients then
|
|
for i, ingredient in pairs(data.raw.recipe[recipe].ingredients) do
|
|
local item = thxbob.lib.item.basic_item(ingredient)
|
|
if item.name == old then
|
|
amount = item.amount + amount
|
|
end
|
|
end
|
|
if amount > 0 then
|
|
if thxbob.lib.item.get_type(old) == "fluid" and thxbob.lib.item.get_type(new) == "item" then
|
|
amount = math.ceil(amount / 10)
|
|
end
|
|
if thxbob.lib.item.get_type(old) == "item" and thxbob.lib.item.get_type(new) == "fluid" then
|
|
amount = amount * 10
|
|
end
|
|
thxbob.lib.recipe.remove_ingredient(recipe, old)
|
|
thxbob.lib.recipe.add_ingredient(recipe, {new, amount})
|
|
return true
|
|
else
|
|
return false
|
|
end
|
|
end
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_type(new) then
|
|
BioInd.writeDebug("Ingredient %s does not exist.", {new})
|
|
end
|
|
end
|
|
|
|
return retval
|
|
end
|
|
|
|
|
|
function thxbob.lib.recipe.replace_ingredient_in_all(old, new)
|
|
if thxbob.lib.item.get_basic_type(new) then
|
|
for i, recipe in pairs(data.raw.recipe) do
|
|
thxbob.lib.recipe.replace_ingredient(recipe.name, old, new)
|
|
end
|
|
else
|
|
BioInd.writeDebug("Ingredient %s does not exist.", {new})
|
|
end
|
|
end
|
|
|
|
|
|
function thxbob.lib.recipe.remove_ingredient(recipe, item)
|
|
if data.raw.recipe[recipe] then
|
|
if data.raw.recipe[recipe].ingredients then
|
|
thxbob.lib.item.remove(data.raw.recipe[recipe].ingredients, item)
|
|
end
|
|
|
|
else
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
end
|
|
|
|
|
|
function thxbob.lib.recipe.add_new_ingredient(recipe, item)
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then
|
|
if data.raw.recipe[recipe].ingredients then
|
|
thxbob.lib.item.add_new(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item))
|
|
end
|
|
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_type(item) then
|
|
BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name})
|
|
end
|
|
end
|
|
end
|
|
|
|
function thxbob.lib.recipe.add_ingredient(recipe, item)
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then
|
|
if data.raw.recipe[recipe].ingredients then
|
|
thxbob.lib.item.add(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item))
|
|
end
|
|
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then
|
|
BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name})
|
|
end
|
|
end
|
|
end
|
|
|
|
function thxbob.lib.recipe.set_ingredient(recipe, item)
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then
|
|
if data.raw.recipe[recipe].ingredients then
|
|
thxbob.lib.item.set(data.raw.recipe[recipe].ingredients, thxbob.lib.item.basic_item(item))
|
|
end
|
|
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then
|
|
BioInd.writeDebug("Ingredient %s does not exist.", {thxbob.lib.item.basic_item(item).name})
|
|
end
|
|
end
|
|
end
|
|
|
|
|
|
function thxbob.lib.recipe.add_result(recipe, item)
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then
|
|
if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then
|
|
thxbob.lib.result_check(data.raw.recipe[recipe])
|
|
thxbob.lib.item.add(data.raw.recipe[recipe].results, item)
|
|
end
|
|
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then
|
|
BioInd.writeDebug("Item %s does not exist.", {thxbob.lib.item.basic_item(item).name})
|
|
end
|
|
end
|
|
end
|
|
|
|
function thxbob.lib.recipe.set_result(recipe, item)
|
|
if data.raw.recipe[recipe] and thxbob.lib.item.get_type(thxbob.lib.item.basic_item(item).name) then
|
|
if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then
|
|
thxbob.lib.result_check(data.raw.recipe[recipe])
|
|
thxbob.lib.item.set(data.raw.recipe[recipe].results, item)
|
|
end
|
|
|
|
else
|
|
if not data.raw.recipe[recipe] then
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
if not thxbob.lib.item.get_basic_type(thxbob.lib.item.basic_item(item).name) then
|
|
BioInd.writeDebug("Item %s does not exist.", {thxbob.lib.item.basic_item(item).name})
|
|
end
|
|
end
|
|
end
|
|
|
|
function thxbob.lib.recipe.remove_result(recipe, item)
|
|
local f_name = "remove_result"
|
|
BioInd.writeDebug("Entered function %s(%s, %s)", {f_name, recipe, item})
|
|
if data.raw.recipe[recipe] then
|
|
if data.raw.recipe[recipe].result or data.raw.recipe[recipe].results then
|
|
thxbob.lib.result_check(data.raw.recipe[recipe])
|
|
thxbob.lib.item.remove(data.raw.recipe[recipe].results, item)
|
|
end
|
|
|
|
else
|
|
BioInd.writeDebug("Recipe %s does not exist.", {recipe})
|
|
end
|
|
end |