Add Recipe:addResult
This commit is contained in:
parent
7a18ca0c3b
commit
a9782564bf
1 changed files with 39 additions and 3 deletions
|
|
@ -112,14 +112,50 @@ function Recipe:removeIngredient(ingredientName)
|
||||||
return self
|
return self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Adds a result to the recipe
|
||||||
|
--- @param resultName string The name of the result
|
||||||
|
--- @param amount number|table The amount of the result (default: 1) or a table with custom properties
|
||||||
|
function Recipe:addResult(resultName, amount)
|
||||||
|
local props = amount
|
||||||
|
if type(props) == "string" then
|
||||||
|
props = { amount = props }
|
||||||
|
end
|
||||||
|
if not props.amount then
|
||||||
|
props.amount = 1
|
||||||
|
end
|
||||||
|
local resultType = data.raw.item[resultName] and "item"
|
||||||
|
or data.raw.module[resultName] and "item"
|
||||||
|
or data.raw.fluid[resultName] and "fluid"
|
||||||
|
or nil
|
||||||
|
if not resultType then
|
||||||
|
log("Unknown result: " .. resultName)
|
||||||
|
return
|
||||||
|
end
|
||||||
|
self.prototype.results = self.prototype.results or {}
|
||||||
|
for _, result in pairs(self.prototype.results) do
|
||||||
|
if result.name == resultName then
|
||||||
|
result.amount = nil
|
||||||
|
result.amount_min = nil
|
||||||
|
result.amount_max = nil
|
||||||
|
result.probability = nil
|
||||||
|
for k, v in pairs(props) do
|
||||||
|
result[k] = v
|
||||||
|
end
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
end
|
||||||
|
props.name = resultName
|
||||||
|
props.type = resultType
|
||||||
|
table.insert(self.prototype.results, props)
|
||||||
|
return self
|
||||||
|
end
|
||||||
|
|
||||||
--- Replaces an existing result by name with a new result
|
--- Replaces an existing result by name with a new result
|
||||||
--- @param old string The name of the existing result
|
--- @param old string The name of the existing result
|
||||||
--- @param new? string The name of the new result
|
--- @param new? string The name of the new result
|
||||||
--- @param amount? number The amount of the new result (keeps the old value if not set)
|
--- @param amount? number The amount of the new result (keeps the old value if not set)
|
||||||
--- @param expensiveAmount? number The amount of the new result for the expensive recipe (uses amount if not set)
|
function Recipe:replaceResult(old, new, amount)
|
||||||
function Recipe:replaceResult(old, new, amount, expensiveAmount)
|
|
||||||
if type(new) == "number" then
|
if type(new) == "number" then
|
||||||
expensiveAmount = amount
|
|
||||||
amount = new
|
amount = new
|
||||||
new = old
|
new = old
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue