Add the findRecipes method to Mod/Pack/Version
This commit is contained in:
@@ -74,6 +74,10 @@ module.exports = class Mod extends BaseModel
|
||||
return unless @_activeModVersion?
|
||||
@_activeModVersion.findName slug
|
||||
|
||||
findRecipes: (slug, result=[])->
|
||||
return result unless @_activeModVersion?
|
||||
@_activeModVersion.findRecipes slug, result
|
||||
|
||||
# Property Methods #############################################################################
|
||||
|
||||
addModVersion: (modVersion)->
|
||||
|
||||
@@ -40,14 +40,6 @@ module.exports = class ModPack extends BaseModel
|
||||
|
||||
return null
|
||||
|
||||
findName: (slug)->
|
||||
for mod in @_mods
|
||||
continue unless mod.enabled
|
||||
name = mod.findName slug
|
||||
return name if name
|
||||
|
||||
return null
|
||||
|
||||
findItemDisplay: (slug)->
|
||||
result = {}
|
||||
item = @findItem slug
|
||||
@@ -66,6 +58,27 @@ module.exports = class ModPack extends BaseModel
|
||||
result.itemUrl = Url.item result
|
||||
return result
|
||||
|
||||
findName: (slug)->
|
||||
for mod in @_mods
|
||||
continue unless mod.enabled
|
||||
name = mod.findName slug
|
||||
return name if name
|
||||
|
||||
return null
|
||||
|
||||
findRecipes: (slug, result=[])->
|
||||
for mod in @_mods
|
||||
continue unless mod.enabled
|
||||
mod.findRecipes slug, result
|
||||
return result
|
||||
|
||||
isGatherable: (slug)->
|
||||
item = @findItem slug
|
||||
return true if not item?
|
||||
return true if item.isGatherable
|
||||
return false if item.isCraftable
|
||||
return true
|
||||
|
||||
isValidName: (name)->
|
||||
slug = _.slugify name
|
||||
for mod in @_mods
|
||||
|
||||
@@ -65,6 +65,15 @@ module.exports = class ModVersion extends BaseModel
|
||||
findName: (slug)->
|
||||
return @_names[slug]
|
||||
|
||||
findRecipes: (itemSlug, result=[])->
|
||||
for slug in @_slugs
|
||||
item = @_items[slug]
|
||||
continue unless item?
|
||||
|
||||
item.eachRecipe (recipe)->
|
||||
result.push recipe if recipe.doesProduce itemSlug
|
||||
return result
|
||||
|
||||
registerSlug: (slug, name)->
|
||||
hasSlug = @_names[slug]?
|
||||
@_names[slug] = name
|
||||
|
||||
@@ -13,7 +13,7 @@ mod = null
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
describe 'Mod', ->
|
||||
describe 'mod.coffee', ->
|
||||
|
||||
beforeEach -> mod = new Mod name:'Test', slug:'test'
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ buildcraft = industrialCraft = minecraft = modPack = null
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
describe 'ModPack', ->
|
||||
describe 'mod_pack.coffee', ->
|
||||
|
||||
beforeEach ->
|
||||
minecraft = new Mod slug:'minecraft'
|
||||
|
||||
@@ -14,7 +14,7 @@ modVersion = null
|
||||
|
||||
########################################################################################################################
|
||||
|
||||
describe 'ModVersion', ->
|
||||
describe 'mod_version.coffee', ->
|
||||
|
||||
beforeEach -> modVersion = new ModVersion modSlug:'test', version:'0.0'
|
||||
|
||||
@@ -45,3 +45,21 @@ describe 'ModVersion', ->
|
||||
it 'locates items by slugified name', ->
|
||||
modVersion.addItem new Item name:'Crafting Table'
|
||||
modVersion.findItemByName('Crafting Table').slug.should.equal 'crafting_table'
|
||||
|
||||
describe 'findRecipes', ->
|
||||
|
||||
beforeEach ->
|
||||
modVersion = new ModVersion modSlug:'test', version:'1.0'
|
||||
modVersion.parse """
|
||||
schema:1
|
||||
|
||||
item: Cake
|
||||
recipe:; input: Milk, Sugar, Egg, Wheat; pattern: 000 121 333; extras: 3 Bucket
|
||||
recipe:; input: Milk, Cocoa Beans, Egg, Wheat; pattern: 000 121 333; extras: 3 Bucket
|
||||
item: Bucket
|
||||
recipe:; input: Iron Ingot; pattern: ... 0.0 .0.
|
||||
"""
|
||||
|
||||
it 'finds all recipes which list item as output', ->
|
||||
recipes = modVersion.findRecipes 'bucket'
|
||||
(r.output[0].slug for r in recipes).sort().should.eql ['bucket', 'cake', 'cake']
|
||||
|
||||
Reference in New Issue
Block a user