Add links to tool names under crafting grids

This commit is contained in:
Andrew Miner
2015-02-23 19:25:35 -08:00
parent aa42053c6e
commit 8f82072af3
6 changed files with 58 additions and 29 deletions
+13 -1
View File
@@ -36,6 +36,18 @@ All rights reserved.
} }
} }
.output { .tool {
a {
color: $color-text;
font-family: $font-family-normal;
font-size: $font-size-normal;
font-weight: bold;
text-decoration: none;
&:hover {
color: $color-link;
text-decoration: underline;
}
}
} }
} }
+12 -1
View File
@@ -16,7 +16,18 @@ All rights reserved.
position: absolute; right: 0; bottom: -2em; left: 0; height: 1.5em; position: absolute; right: 0; bottom: -2em; left: 0; height: 1.5em;
text-align: center; text-align: center;
p { font-weight: bold; } a {
color: $color-text;
font-family: $font-family-normal;
font-size: $font-size-normal;
font-weight: bold;
text-decoration: none;
&:hover {
color: $color-link;
text-decoration: underline;
}
}
} }
} }
@@ -11,6 +11,7 @@ CraftingGridController = require './crafting_grid_controller'
ImageLoader = require './image_loader' ImageLoader = require './image_loader'
Inventory = require '../models/inventory' Inventory = require '../models/inventory'
InventoryTableController = require './inventory_table_controller' InventoryTableController = require './inventory_table_controller'
StringBuilder = require '../models/string_builder'
######################################################################################################################## ########################################################################################################################
@@ -44,17 +45,17 @@ module.exports = class FullRecipeController extends BaseController
model: new Inventory model: new Inventory
modPack: @modPack modPack: @modPack
@$tool = @$('.tool p') @$toolContainer = @$('.tool')
super super
refresh: -> refresh: ->
@gridController.model = @model @gridController.model = @model
@$tool.html @_findToolNames().join ', '
@$el.tooltip show:{delay:Duration.normal, duration:Duration.normal} @$el.tooltip show:{delay:Duration.normal, duration:Duration.normal}
@_refreshInputs() @_refreshInputs()
@_refreshOutputs() @_refreshOutputs()
@_refreshTools()
super super
@@ -66,14 +67,6 @@ module.exports = class FullRecipeController extends BaseController
# Private Methods ############################################################################## # Private Methods ##############################################################################
_findToolNames: ->
result = []
if @model?
for stack in @model.tools
item = @modPack.findItem stack.itemSlug
result.push item.name if item?
return result
_refreshInputs: -> _refreshInputs: ->
inputs = @inputController.model inputs = @inputController.model
inputs.clear() inputs.clear()
@@ -90,3 +83,13 @@ module.exports = class FullRecipeController extends BaseController
if @model? if @model?
for stack in @model.output for stack in @model.output
outputs.add stack.itemSlug, stack.quantity outputs.add stack.itemSlug, stack.quantity
_refreshTools: ->
@$toolContainer.empty()
return unless @model?
builder = new StringBuilder
builder.loop @model.tools, delimiter:', ', onEach:(b, stack)=>
display = @modPack.findItemDisplay stack.itemSlug
b.push "<a href=\"#{display.itemUrl}\">#{display.itemName}</a>"
@$toolContainer.html builder.toString()
@@ -9,6 +9,7 @@ BaseController = require './base_controller'
CraftingGridController = require './crafting_grid_controller' CraftingGridController = require './crafting_grid_controller'
{Duration} = require '../constants' {Duration} = require '../constants'
ImageLoader = require './image_loader' ImageLoader = require './image_loader'
StringBuilder = require '../models/string_builder'
######################################################################################################################## ########################################################################################################################
@@ -20,25 +21,24 @@ module.exports = class MinimalRecipeController extends BaseController
options.templateName = 'minimal_recipe' options.templateName = 'minimal_recipe'
super options super options
@_imageLoader = options.imageLoader @imageLoader = options.imageLoader
@_modPack = options.modPack @modPack = options.modPack
# BaseController Overrides ##################################################################### # BaseController Overrides #####################################################################
onDidRender: -> onDidRender: ->
@gridController = @addChild CraftingGridController, '.view__crafting_grid', @gridController = @addChild CraftingGridController, '.view__crafting_grid',
modPack: @_modPack modPack: @modPack
imageLoader: @_imageLoader imageLoader: @imageLoader
@$outputImg = @$('.output img') @$outputImg = @$('.output img')
@$outputLink = @$('.output a') @$outputLink = @$('.output a')
@$outputQuantity = @$('.quantity') @$outputQuantity = @$('.quantity')
@$tool = @$('.tool p') @$toolContainer = @$('.tool')
super super
refresh: -> refresh: ->
@gridController.model = @model @gridController.model = @model
@$tool.html @_findToolNames().join ', '
@$outputImg.attr 'src', '/images/empty.png' @$outputImg.attr 'src', '/images/empty.png'
@$outputImg.removeAttr 'alt' @$outputImg.removeAttr 'alt'
@@ -48,16 +48,17 @@ module.exports = class MinimalRecipeController extends BaseController
if @model? if @model?
outputStack = @model.output[0] outputStack = @model.output[0]
if outputStack? if outputStack?
display = @_modPack.findItemDisplay outputStack.itemSlug display = @modPack.findItemDisplay outputStack.itemSlug
@$outputLink.attr 'href', display.itemUrl @$outputLink.attr 'href', display.itemUrl
@$outputLink.attr 'title', display.itemName @$outputLink.attr 'title', display.itemName
@$outputImg.attr 'alt', display.itemName @$outputImg.attr 'alt', display.itemName
@$outputQuantity.html outputStack.quantity if outputStack.quantity > 1 @$outputQuantity.html outputStack.quantity if outputStack.quantity > 1
@_imageLoader.load display.iconUrl, @$outputImg @imageLoader.load display.iconUrl, @$outputImg
@$el.tooltip show:{delay:Duration.snap, duration:Duration.fast} @$el.tooltip show:{delay:Duration.snap, duration:Duration.fast}
@_refreshTools()
super super
# Backbone.View Methods ######################################################################## # Backbone.View Methods ########################################################################
@@ -68,10 +69,12 @@ module.exports = class MinimalRecipeController extends BaseController
# Private Methods ############################################################################## # Private Methods ##############################################################################
_findToolNames: -> _refreshTools: ->
result = [] @$toolContainer.empty()
if @model? return unless @model?
for stack in @model.tools
item = @_modPack.findItem stack.itemSlug builder = new StringBuilder
result.push item.name if item? builder.loop @model.tools, delimiter:', ', onEach:(b, stack)=>
return result display = @modPack.findItemDisplay stack.itemSlug
b.push "<a href=\"#{display.itemUrl}\">#{display.itemName}</a>"
@$toolContainer.html builder.toString()
+1 -1
View File
@@ -13,7 +13,7 @@
.pattern .pattern
table.view__crafting_grid table.view__crafting_grid
.tool: p .tool: a
.output .output
h3: p Produces h3: p Produces
+1 -1
View File
@@ -8,7 +8,7 @@
.view__minimal_recipe .view__minimal_recipe
.input .input
table.view__crafting_grid table.view__crafting_grid
.tool: p .tool
.output .output
a: img a: img
p.quantity p.quantity