Recipe component can show multiblock recipes
This commit is contained in:
@@ -7,9 +7,7 @@
|
||||
|
||||
.view__step
|
||||
h3
|
||||
.main_content
|
||||
.view__inventory
|
||||
.view__recipe
|
||||
.view__recipe
|
||||
.buttons
|
||||
a.button.tool: .bezel: p <span class="full">show plan for </span>tools
|
||||
.button.complete: .bezel: p complete<span class="full"> step</span>
|
||||
|
||||
@@ -25,24 +25,7 @@
|
||||
margin-bottom: 1em;
|
||||
}
|
||||
|
||||
.main_content {
|
||||
display: flex;
|
||||
|
||||
.view__inventory {
|
||||
flex: 50%;
|
||||
margin-left: $size-margin-large;
|
||||
|
||||
.buttons {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.view__recipe {
|
||||
flex: 50%;
|
||||
}
|
||||
}
|
||||
|
||||
.buttons {
|
||||
& > .buttons {
|
||||
margin-top: $size-margin-large;
|
||||
|
||||
opacity: 0;
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
# All rights reserved.
|
||||
#
|
||||
|
||||
BaseController = require '../../base_controller'
|
||||
BaseController = require "../../base_controller"
|
||||
{Inventory} = require("crafting-guide-common").models
|
||||
{CraftingPlanStep} = require("crafting-guide-common").crafting
|
||||
InventoryController = require '../../common/inventory/inventory_controller'
|
||||
RecipeController = require '../../common/recipe/recipe_controller'
|
||||
InventoryController = require "../../common/inventory/inventory_controller"
|
||||
RecipeController = require "../../common/recipe/recipe_controller"
|
||||
RecipeDisplay = require "../../../models/site/recipe_display"
|
||||
|
||||
|
||||
########################################################################################################################
|
||||
@@ -19,9 +20,9 @@ module.exports = class StepController extends BaseController
|
||||
constructor: (options={})->
|
||||
if options.model?.constructor isnt CraftingPlanStep
|
||||
throw new Error "options.model must be a CraftingPlanStep"
|
||||
if not options.modPack? then throw new Error 'options.modPack is required'
|
||||
if not options.imageLoader? then throw new Error 'options.imageLoader is required'
|
||||
options.templateName = 'craft_page/step'
|
||||
if not options.modPack? then throw new Error "options.modPack is required"
|
||||
if not options.imageLoader? then throw new Error "options.imageLoader is required"
|
||||
options.templateName = "craft_page/step"
|
||||
super options
|
||||
|
||||
@_imageLoader = options.imageLoader
|
||||
@@ -36,57 +37,45 @@ module.exports = class StepController extends BaseController
|
||||
# Public Methods ###############################################################################
|
||||
|
||||
markComplete: (targetInventory)->
|
||||
@$el.addClass 'complete'
|
||||
@$completeButton.addClass 'disabled'
|
||||
@$el.addClass "complete"
|
||||
@$completeButton.addClass "disabled"
|
||||
@model.completeInto targetInventory
|
||||
|
||||
# Event Methods ################################################################################
|
||||
|
||||
onCompleteButtonClicked: (event)->
|
||||
return false if @$completeButton.hasClass 'disabled'
|
||||
tracker.trackEvent c.tracking.category.craft, 'mark-complete', null, @model.count
|
||||
return false if @$completeButton.hasClass "disabled"
|
||||
tracker.trackEvent c.tracking.category.craft, "mark-complete", null, @model.count
|
||||
@onComplete this
|
||||
|
||||
onShowToolPlan: (event)->
|
||||
return false if @$toolButton.hasClass 'disabled'
|
||||
tracker.trackEvent c.tracking.category.navigate, 'show-tool-plan', @$toolButton.attr 'target'
|
||||
return false if @$toolButton.hasClass "disabled"
|
||||
tracker.trackEvent c.tracking.category.navigate, "show-tool-plan", @$toolButton.attr "target"
|
||||
return true
|
||||
|
||||
# BaseController Overrides #####################################################################
|
||||
|
||||
onDidRender: ->
|
||||
@inventoryController = @addChild InventoryController, '.view__inventory',
|
||||
editable: false
|
||||
imageLoader: @_imageLoader
|
||||
model: @model.inputInventory
|
||||
modPack: @_modPack
|
||||
router: @_router
|
||||
options = imageLoader:@_imageLoader, modPack:@_modPack, router:@_router
|
||||
@recipeController = @addChild RecipeController, ".view__recipe", options
|
||||
|
||||
@recipeController = @addChild RecipeController, '.view__recipe',
|
||||
imageLoader: @_imageLoader
|
||||
model: @model.recipe
|
||||
modPack: @_modPack
|
||||
router: @_router
|
||||
|
||||
@$completeButton = @$('.button.complete')
|
||||
@$header = @$('h3')
|
||||
@$toolButton = @$('.button.tool')
|
||||
@$toolButtonLabel = @$('.button.tool p')
|
||||
@$completeButton = @$(".button.complete")
|
||||
@$header = @$("h3")
|
||||
@$toolButton = @$(".button.tool")
|
||||
@$toolButtonLabel = @$(".button.tool p")
|
||||
super
|
||||
|
||||
onWillChangeModel: (oldModel, newModel)->
|
||||
if not newModel? then throw new Error 'model cannot be null'
|
||||
if not newModel? then throw new Error "model cannot be null"
|
||||
if @rendered
|
||||
@$el.removeClass 'complete'
|
||||
@$completeButton.removeClass 'disabled'
|
||||
@$el.removeClass "complete"
|
||||
@$completeButton.removeClass "disabled"
|
||||
return super
|
||||
|
||||
refresh: ->
|
||||
@$header.html "#{@model.number}. #{@model.recipe.output.item.displayName}"
|
||||
|
||||
@inventoryController.model = @model.inputInventory
|
||||
@recipeController.model = @model.recipe
|
||||
@recipeController.multiplier = @model.count
|
||||
@recipeController.model = new RecipeDisplay recipe:@model.recipe, multiplier:@model.count
|
||||
|
||||
@_refreshCompleteButton()
|
||||
@_refreshToolButton()
|
||||
@@ -97,8 +86,8 @@ module.exports = class StepController extends BaseController
|
||||
|
||||
events: ->
|
||||
return _.extend super,
|
||||
'click .button.complete': 'onCompleteButtonClicked'
|
||||
'click .button.tool': 'onShowToolPlan'
|
||||
"click .button.complete": "onCompleteButtonClicked"
|
||||
"click .button.tool": "onShowToolPlan"
|
||||
|
||||
# Private Methods ##############################################################################
|
||||
|
||||
@@ -108,16 +97,16 @@ module.exports = class StepController extends BaseController
|
||||
inventory.add item
|
||||
|
||||
inventoryText = inventory.toUrlString()
|
||||
@$toolButton.attr 'href', "/craft/#{inventoryText}"
|
||||
@$toolButton.attr 'target', inventoryText
|
||||
@$toolButton.attr "href", "/craft/#{inventoryText}"
|
||||
@$toolButton.attr "target", inventoryText
|
||||
|
||||
if @canAddTools this
|
||||
@$toolButton.removeClass 'disabled'
|
||||
@$toolButton.removeClass "disabled"
|
||||
else
|
||||
@$toolButton.addClass 'disabled'
|
||||
@$toolButton.addClass "disabled"
|
||||
|
||||
_refreshCompleteButton: ->
|
||||
if @canComplete this
|
||||
@$completeButton.removeClass 'disabled'
|
||||
@$completeButton.removeClass "disabled"
|
||||
else
|
||||
@$completeButton.addClass 'disabled'
|
||||
@$completeButton.addClass "disabled"
|
||||
|
||||
Reference in New Issue
Block a user