diff --git a/src/css/templates/full_recipe.scss b/src/css/templates/full_recipe.scss
index 1a0f523f5..9e0352c67 100644
--- a/src/css/templates/full_recipe.scss
+++ b/src/css/templates/full_recipe.scss
@@ -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;
+ }
+ }
}
}
diff --git a/src/css/templates/minimal_recipe.scss b/src/css/templates/minimal_recipe.scss
index 7a31dac6d..a783e60c6 100644
--- a/src/css/templates/minimal_recipe.scss
+++ b/src/css/templates/minimal_recipe.scss
@@ -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;
+ }
+ }
}
}
diff --git a/src/scripts/controllers/full_recipe_controller.coffee b/src/scripts/controllers/full_recipe_controller.coffee
index 4d387a7ff..1dae94800 100644
--- a/src/scripts/controllers/full_recipe_controller.coffee
+++ b/src/scripts/controllers/full_recipe_controller.coffee
@@ -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 "#{display.itemName}"
+ @$toolContainer.html builder.toString()
diff --git a/src/scripts/controllers/minimal_recipe_controller.coffee b/src/scripts/controllers/minimal_recipe_controller.coffee
index 5f99e157f..6bf2d5d4e 100644
--- a/src/scripts/controllers/minimal_recipe_controller.coffee
+++ b/src/scripts/controllers/minimal_recipe_controller.coffee
@@ -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 "#{display.itemName}"
+ @$toolContainer.html builder.toString()
diff --git a/src/templates/full_recipe.jade b/src/templates/full_recipe.jade
index 780c4c2fa..c55ff417e 100644
--- a/src/templates/full_recipe.jade
+++ b/src/templates/full_recipe.jade
@@ -13,7 +13,7 @@
.pattern
table.view__crafting_grid
- .tool: p
+ .tool: a
.output
h3: p Produces
diff --git a/src/templates/minimal_recipe.jade b/src/templates/minimal_recipe.jade
index 751191308..077a9425c 100644
--- a/src/templates/minimal_recipe.jade
+++ b/src/templates/minimal_recipe.jade
@@ -8,7 +8,7 @@
.view__minimal_recipe
.input
table.view__crafting_grid
- .tool: p
+ .tool
.output
a: img
p.quantity