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?
|
return unless @_activeModVersion?
|
||||||
@_activeModVersion.findName slug
|
@_activeModVersion.findName slug
|
||||||
|
|
||||||
|
findRecipes: (slug, result=[])->
|
||||||
|
return result unless @_activeModVersion?
|
||||||
|
@_activeModVersion.findRecipes slug, result
|
||||||
|
|
||||||
# Property Methods #############################################################################
|
# Property Methods #############################################################################
|
||||||
|
|
||||||
addModVersion: (modVersion)->
|
addModVersion: (modVersion)->
|
||||||
|
|||||||
@@ -40,14 +40,6 @@ module.exports = class ModPack extends BaseModel
|
|||||||
|
|
||||||
return null
|
return null
|
||||||
|
|
||||||
findName: (slug)->
|
|
||||||
for mod in @_mods
|
|
||||||
continue unless mod.enabled
|
|
||||||
name = mod.findName slug
|
|
||||||
return name if name
|
|
||||||
|
|
||||||
return null
|
|
||||||
|
|
||||||
findItemDisplay: (slug)->
|
findItemDisplay: (slug)->
|
||||||
result = {}
|
result = {}
|
||||||
item = @findItem slug
|
item = @findItem slug
|
||||||
@@ -66,6 +58,27 @@ module.exports = class ModPack extends BaseModel
|
|||||||
result.itemUrl = Url.item result
|
result.itemUrl = Url.item result
|
||||||
return 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)->
|
isValidName: (name)->
|
||||||
slug = _.slugify name
|
slug = _.slugify name
|
||||||
for mod in @_mods
|
for mod in @_mods
|
||||||
|
|||||||
@@ -65,6 +65,15 @@ module.exports = class ModVersion extends BaseModel
|
|||||||
findName: (slug)->
|
findName: (slug)->
|
||||||
return @_names[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)->
|
registerSlug: (slug, name)->
|
||||||
hasSlug = @_names[slug]?
|
hasSlug = @_names[slug]?
|
||||||
@_names[slug] = name
|
@_names[slug] = name
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ mod = null
|
|||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
describe 'Mod', ->
|
describe 'mod.coffee', ->
|
||||||
|
|
||||||
beforeEach -> mod = new Mod name:'Test', slug:'test'
|
beforeEach -> mod = new Mod name:'Test', slug:'test'
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ buildcraft = industrialCraft = minecraft = modPack = null
|
|||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
describe 'ModPack', ->
|
describe 'mod_pack.coffee', ->
|
||||||
|
|
||||||
beforeEach ->
|
beforeEach ->
|
||||||
minecraft = new Mod slug:'minecraft'
|
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'
|
beforeEach -> modVersion = new ModVersion modSlug:'test', version:'0.0'
|
||||||
|
|
||||||
@@ -45,3 +45,21 @@ describe 'ModVersion', ->
|
|||||||
it 'locates items by slugified name', ->
|
it 'locates items by slugified name', ->
|
||||||
modVersion.addItem new Item name:'Crafting Table'
|
modVersion.addItem new Item name:'Crafting Table'
|
||||||
modVersion.findItemByName('Crafting Table').slug.should.equal '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