Further fixes of how passthrough items are handled

* When evaluating a plan, only give the pass-through treatment to
  items if the step they're part of was actually executed
* When marking a step "complete", ignore passthrough items
This commit is contained in:
Andrew Miner
2016-04-16 20:33:05 -07:00
parent 88e57b1200
commit 93c98e16ac
5 changed files with 26 additions and 17 deletions
@@ -46,16 +46,21 @@ module.exports = class CraftingPlan
recipe = step.recipe
for stack in step.recipe.output
continue if recipe.isPassThroughFor stack.itemSlug
qualifiedSlug = @_modPack.qualifySlug stack.itemSlug
if recipe.isPassThroughFor stack.itemSlug
while @_need.quantityOf(qualifiedSlug) > 0
@_executeStep step
if step.multiplier > 0
for stack in step.recipe.output
qualifiedSlug = @_modPack.qualifySlug stack.itemSlug
continue unless recipe.isPassThroughFor stack.itemSlug
continue if @_made.hasAtLeast qualifiedSlug, 1
continue if @_need.hasAtLeast qualifiedSlug, 1
continue if @_tools.hasAtLeast qualifiedSlug, 1
@_need.add qualifiedSlug, 1
@_tools.add qualifiedSlug, 1
else
while @_need.quantityOf(qualifiedSlug) > 0
@_executeStep step
@_made.addInventory @_want
@_made.addInventory @_tools