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;
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'
Inventory = require '../models/inventory'
InventoryTableController = require './inventory_table_controller'
StringBuilder = require '../models/string_builder'
########################################################################################################################
@@ -44,17 +45,17 @@ module.exports = class FullRecipeController extends BaseController
model: new Inventory
modPack: @modPack
@$tool = @$('.tool p')
@$toolContainer = @$('.tool')
super
refresh: ->
@gridController.model = @model
@$tool.html @_findToolNames().join ', '
@$el.tooltip show:{delay:Duration.normal, duration:Duration.normal}
@_refreshInputs()
@_refreshOutputs()
@_refreshTools()
super
@@ -66,14 +67,6 @@ module.exports = class FullRecipeController extends BaseController
# 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: ->
inputs = @inputController.model
inputs.clear()
@@ -90,3 +83,13 @@ module.exports = class FullRecipeController extends BaseController
if @model?
for stack in @model.output
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'
{Duration} = require '../constants'
ImageLoader = require './image_loader'
StringBuilder = require '../models/string_builder'
########################################################################################################################
@@ -20,25 +21,24 @@ module.exports = class MinimalRecipeController extends BaseController
options.templateName = 'minimal_recipe'
super options
@_imageLoader = options.imageLoader
@_modPack = options.modPack
@imageLoader = options.imageLoader
@modPack = options.modPack
# BaseController Overrides #####################################################################
onDidRender: ->
@gridController = @addChild CraftingGridController, '.view__crafting_grid',
modPack: @_modPack
imageLoader: @_imageLoader
modPack: @modPack
imageLoader: @imageLoader
@$outputImg = @$('.output img')
@$outputLink = @$('.output a')
@$outputQuantity = @$('.quantity')
@$tool = @$('.tool p')
@$toolContainer = @$('.tool')
super
refresh: ->
@gridController.model = @model
@$tool.html @_findToolNames().join ', '
@$outputImg.attr 'src', '/images/empty.png'
@$outputImg.removeAttr 'alt'
@@ -48,16 +48,17 @@ module.exports = class MinimalRecipeController extends BaseController
if @model?
outputStack = @model.output[0]
if outputStack?
display = @_modPack.findItemDisplay outputStack.itemSlug
display = @modPack.findItemDisplay outputStack.itemSlug
@$outputLink.attr 'href', display.itemUrl
@$outputLink.attr 'title', display.itemName
@$outputImg.attr 'alt', display.itemName
@$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}
@_refreshTools()
super
# Backbone.View Methods ########################################################################
@@ -68,10 +69,12 @@ module.exports = class MinimalRecipeController extends BaseController
# Private Methods ##############################################################################
_findToolNames: ->
result = []
if @model?
for stack in @model.tools
item = @_modPack.findItem stack.itemSlug
result.push item.name if item?
return result
_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()
+1 -1
View File
@@ -13,7 +13,7 @@
.pattern
table.view__crafting_grid
.tool: p
.tool: a
.output
h3: p Produces
+1 -1
View File
@@ -8,7 +8,7 @@
.view__minimal_recipe
.input
table.view__crafting_grid
.tool: p
.tool
.output
a: img
p.quantity