diff --git a/src/data/ic2_classic/recipes.json b/src/data/ic2_classic/recipes.json index 0b9f19445..18fabbd16 100644 --- a/src/data/ic2_classic/recipes.json +++ b/src/data/ic2_classic/recipes.json @@ -209,7 +209,7 @@ "tools": "Macerator" }, { "output": "Coal Ball", - "input": [[8, "Coal Dust"], "1 Flint"], + "input": [[8, "Coal Dust"], "Flint"], "pattern": "000 010 000", "tools": "Crafting Table" }, { diff --git a/src/scripts/controllers/inventory_controller.coffee b/src/scripts/controllers/inventory_controller.coffee index 9f9262e7f..2dc0d991e 100644 --- a/src/scripts/controllers/inventory_controller.coffee +++ b/src/scripts/controllers/inventory_controller.coffee @@ -21,10 +21,11 @@ module.exports = class InventoryController extends BaseController if not options.model? then throw new Error 'options.model is required' if not options.modPack? then throw new Error 'options.modPack is required' - options.icon ?= '/images/chest_front.png' - options.editable ?= true - options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png' - options.title ?= 'Inventory' + options.icon ?= '/images/chest_front.png' + options.editable ?= true + options.imageLoader ?= new ImageLoader defaultUrl:'/images/unknown.png' + options.gatherNames ?= -> @modPack.gatherNames() + options.title ?= 'Inventory' options.templateName = 'inventory' super options @@ -33,6 +34,7 @@ module.exports = class InventoryController extends BaseController @icon = options.icon @imageLoader = options.imageLoader @modPack = options.modPack + @gatherNames = options.gatherNames @title = options.title @_stackControllers = [] @@ -42,14 +44,15 @@ module.exports = class InventoryController extends BaseController # Event Methods ################################################################################ onAddButtonClicked: -> - item = @modPack.findItemByName @$nameField.val() - return unless item? + name = @$nameField.val() + return unless @modPack.isValidName name - @model.add item.slug, parseInt(@$quantityField.val()) + @model.add _.slugify(name), parseInt(@$quantityField.val()) @$nameField.val '' @$quantityField.val '1' @$scrollbox.scrollTop @$scrollbox.prop 'scrollHeight' + @$nameField.autocomplete 'close' onClearButtonClicked: -> @model.clear() @@ -163,7 +166,7 @@ module.exports = class InventoryController extends BaseController onSelected = => @onItemSelected() @$nameField.autocomplete - source: @modPack.gatherRecipeNames() + source: @gatherNames() delay: 0 minLength: 0 change: onChanged diff --git a/src/scripts/controllers/item_page_controller.coffee b/src/scripts/controllers/item_page_controller.coffee index 4b272379e..cf7b4d86a 100644 --- a/src/scripts/controllers/item_page_controller.coffee +++ b/src/scripts/controllers/item_page_controller.coffee @@ -25,27 +25,28 @@ module.exports = class ItemPageController extends BaseController # BaseController Overrides ##################################################################### onDidRender: -> + @wantController = @addChild InventoryController, '.want', + editable: true + icon: '/images/fishing_rod.png' + imageLoader: @imageLoader + model: @model.plan.want + modPack: @model.modPack + title: 'Items you want' + @haveController = @addChild InventoryController, '.have', editable: true, imageLoader: @imageLoader - model: @model.plan.have, - modPack: @model.modPack, + model: @model.plan.have + modPack: @model.modPack + gatherNames: -> @modPack.gatherNames includeGatherable:true title: 'Items you have' - @wantController = @addChild InventoryController, '.want', - editable: true - icon: '/images/fishing_rod.png', - imageLoader: @imageLoader - model: @model.plan.want, - modPack: @model.modPack, - title: 'Items you want' - @needController = @addChild InventoryController, '.need', editable: false - icon: '/images/boots.png', + icon: '/images/boots.png' imageLoader: @imageLoader - model: @model.plan.need, - modPack: @model.modPack, + model: @model.plan.need + modPack: @model.modPack title: "Items you'll need" @craftingTableController = @addChild CraftingTableController, '.view__crafting_table', diff --git a/src/scripts/models/mod_pack.coffee b/src/scripts/models/mod_pack.coffee index 3b9dc637a..4fc72a442 100644 --- a/src/scripts/models/mod_pack.coffee +++ b/src/scripts/models/mod_pack.coffee @@ -76,13 +76,14 @@ module.exports = class ModPack extends BaseModel result.itemUrl = Url.item result return result - gatherRecipeNames: (options={})-> + gatherNames: (options={})-> + options.includeGatherable ?= false options.includeDisabled ?= false nameData = {} for modVersion in @modVersions continue unless modVersion.enabled or options.includeDisabled - modVersion.gatherRecipeNames nameData + modVersion.gatherNames nameData, options result = [] names = _.keys(nameData).sort() @@ -102,6 +103,17 @@ module.exports = class ModPack extends BaseModel isLoading: -> return @loading.inspect().state isnt 'pending' + isValidName: (name, options={})-> + options.includeDisabled ?= false + + slug = _.slugify name + for modVersion in @modVersions + continue unless modVersion.enabled or options.includeDisabled + name = modVersion.findName slug + return true if name + + return false + loadModVersion: (url)-> promise = w.promise (resolve, reject)=> @trigger Event.load.started, this, url diff --git a/src/scripts/models/mod_version.coffee b/src/scripts/models/mod_version.coffee index 77dd9c436..f53c7942f 100644 --- a/src/scripts/models/mod_version.coffee +++ b/src/scripts/models/mod_version.coffee @@ -53,12 +53,20 @@ module.exports = class ModVersion extends BaseModel findName: (slug)-> return @names[slug] - gatherRecipeNames: (result={})-> + gatherNames: (result={}, options={})-> + options.includeGatherable ?= false + for slug, item of @items continue if result[item.slug] - continue unless item.isCraftable + if item.isGatherable + continue unless options.includeGatherable result[item.slug] = value:item.name, label:"#{item.name} (from #{@name} #{@version})" + if options.includeGatherable + for slug, name of @names + continue if result[slug] + result[slug] = value:name, label:"#{name} (from #{@name} #{@version})" + return result hasRecipe: (name)-> diff --git a/src/templates/item_page.jade b/src/templates/item_page.jade index b6c099765..cd4cf2d60 100644 --- a/src/templates/item_page.jade +++ b/src/templates/item_page.jade @@ -6,8 +6,8 @@ //- .view__item_page - .view__inventory.have .view__inventory.want + .view__inventory.have .view__inventory.need .view__crafting_table