Don't show pass-through recipes

A pass-through recipe is one which requires an item as input which is
carried through to the output (e.g., using a Golden Railway Ticket to
create a regular Railway Ticket in Railcraft). As these aren't really
recipes, they should not be listed as such in the item detail page.
This commit is contained in:
Andrew Miner
2015-03-13 19:06:33 -07:00
parent 1333132cd8
commit 8894124520
+15 -2
View File
@@ -99,13 +99,26 @@ module.exports = class Recipe extends BaseModel
return 0 return 0
isPassThroughFor: (itemSlug)->
amountCreated = 0
for stack in @output
if stack.itemSlug.matches itemSlug
amountCreated += stack.quantity
for stack in @input
if stack.itemSlug.matches itemSlug
amountCreated -= stack.quantity
return amountCreated <= 0
produces: (itemSlug)-> produces: (itemSlug)->
if not @_produces? if not @_produces?
@_produces = {} @_produces = {}
for stack in @output for stack in @output
@_produces[stack.itemSlug.qualified] = true actuallyProduces = not @isPassThroughFor stack.itemSlug
@_produces[stack.itemSlug.item] = true @_produces[stack.itemSlug.qualified] = actuallyProduces
@_produces[stack.itemSlug.item] = actuallyProduces
return @_produces[itemSlug.qualified] or @_produces[itemSlug.item] return @_produces[itemSlug.qualified] or @_produces[itemSlug.item]