up
This commit is contained in:
parent
fd2238a623
commit
4fbade6499
1 changed files with 100 additions and 19 deletions
119
data-util.lua
119
data-util.lua
|
|
@ -282,27 +282,49 @@ function add_product(recipe, product)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
function util.replace_ingredient_add_to(recipe_name, old, new)
|
-- Get the amount of the ingredient, will check base/normal not expensive
|
||||||
if me.bypass[recipe_name] then return end
|
function util.get_ingredient_amount(recipe_name, ingredient_name)
|
||||||
if data.raw.recipe[recipe_name] and (data.raw.item[new] or data.raw.fluid[new]) then
|
local recipe = data.raw.recipe[recipe_name]
|
||||||
me.add_modified(recipe_name)
|
if recipe then
|
||||||
replace_ingredient_add_to(data.raw.recipe[recipe_name], old, new)
|
if recipe.normal and recipe.normal.ingredients then
|
||||||
replace_ingredient_add_to(data.raw.recipe[recipe_name].normal, old, new)
|
for i, ingredient in pairs(recipe.normal.ingredients) do
|
||||||
replace_ingredient_add_to(data.raw.recipe[recipe_name].expensive, old, new)
|
if ingredient[1] == ingredient_name then return ingredient[2] end
|
||||||
end
|
if ingredient.name == ingredient_name then return ingredient.amount end
|
||||||
end
|
end
|
||||||
|
elseif recipe.ingredients then
|
||||||
function replace_ingredient_add_to(recipe, old, new)
|
for i, ingredient in pairs(recipe.ingredients) do
|
||||||
if recipe ~= nil and recipe.ingredients ~= nil then
|
if ingredient[1] == ingredient_name then return ingredient[2] end
|
||||||
for i, existing in pairs(recipe.ingredients) do
|
if ingredient.name == ingredient_name then return ingredient.amount end
|
||||||
if existing[1] == new or existing.name == new then
|
|
||||||
add_to_ingredient(recipe, new, existing[2] and existing[2] or existing.amount)
|
|
||||||
remove_ingredient(recipe, old)
|
|
||||||
return
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
replace_ingredient(recipe, old, new)
|
return 1
|
||||||
end
|
end
|
||||||
|
return 0
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Get the amount of the result, will check base/normal not expensive
|
||||||
|
function util.get_amount(recipe_name, product)
|
||||||
|
if not product then product = recipe_name end
|
||||||
|
local recipe = data.raw.recipe[recipe_name]
|
||||||
|
if recipe then
|
||||||
|
if recipe.normal and recipe.normal.results then
|
||||||
|
for i, result in pairs(recipe.normal.results) do
|
||||||
|
if result[1] == product then return result[2] end
|
||||||
|
if result.name == product then return result.amount end
|
||||||
|
end
|
||||||
|
elseif recipe.normal and recipe.normal.result_count then
|
||||||
|
return recipe.normal.result_count
|
||||||
|
elseif recipe.results then
|
||||||
|
for i, result in pairs(recipe.results) do
|
||||||
|
if result[1] == product then return result[2] end
|
||||||
|
if result.name == product then return result.amount end
|
||||||
|
end
|
||||||
|
elseif recipe.result_count then
|
||||||
|
return recipe.result_count
|
||||||
|
end
|
||||||
|
return 1
|
||||||
|
end
|
||||||
|
return 0
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Replace one ingredient with another in a recipe
|
-- Replace one ingredient with another in a recipe
|
||||||
|
|
@ -393,6 +415,46 @@ function replace_some_ingredient(recipe, old, old_amount, new, new_amount, is_fl
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- set the amount of a product.
|
||||||
|
function util.set_product_amount(recipe_name, product, amount)
|
||||||
|
me.add_modified(recipe_name)
|
||||||
|
if data.raw.recipe[recipe_name] then
|
||||||
|
if me.bypass[recipe_name] then return end
|
||||||
|
set_product_amount(data.raw.recipe[recipe_name], product, amount)
|
||||||
|
set_product_amount(data.raw.recipe[recipe_name].normal, product, amount)
|
||||||
|
set_product_amount(data.raw.recipe[recipe_name].expensive, product, amount)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function set_product_amount(recipe, product, amount)
|
||||||
|
if recipe then
|
||||||
|
if recipe.result_count then
|
||||||
|
recipe.result_count = amount
|
||||||
|
end
|
||||||
|
if recipe.results then
|
||||||
|
for i, result in pairs(recipe.results) do
|
||||||
|
if result.name == product then
|
||||||
|
if result.amount then
|
||||||
|
result.amount = amount
|
||||||
|
end
|
||||||
|
if result.amount_min ~= nil then
|
||||||
|
result.amount_min = nil
|
||||||
|
result.amount_max = nil
|
||||||
|
result.amount = amount
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if result[1] == product then
|
||||||
|
result[2] = amount
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not recipe.results and not recipe.result_count then
|
||||||
|
-- implicit one item result
|
||||||
|
recipe.result_count = amount
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- multiply the cost, energy, and results of a recipe by a multiple
|
-- multiply the cost, energy, and results of a recipe by a multiple
|
||||||
function util.multiply_recipe(recipe_name, multiple)
|
function util.multiply_recipe(recipe_name, multiple)
|
||||||
me.add_modified(recipe_name)
|
me.add_modified(recipe_name)
|
||||||
|
|
@ -549,6 +611,25 @@ function util.remove_raw(t, name)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Set energy required
|
||||||
|
function util.set_recipe_time(recipe_name, time)
|
||||||
|
me.add_modified(recipe_name)
|
||||||
|
if data.raw.recipe[recipe_name] then
|
||||||
|
if me.bypass[recipe_name] then return end
|
||||||
|
set_recipe_time(data.raw.recipe[recipe_name], time)
|
||||||
|
set_recipe_time(data.raw.recipe[recipe_name].normal, time)
|
||||||
|
set_recipe_time(data.raw.recipe[recipe_name].expensive, time)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function set_recipe_time(recipe, time)
|
||||||
|
if recipe then
|
||||||
|
if recipe.energy_required then
|
||||||
|
recipe.energy_required = time
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Multiply energy required
|
-- Multiply energy required
|
||||||
function util.multiply_time(recipe_name, factor)
|
function util.multiply_time(recipe_name, factor)
|
||||||
me.add_modified(recipe_name)
|
me.add_modified(recipe_name)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue