Add links to tool names under crafting grids
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
.pattern
|
||||
table.view__crafting_grid
|
||||
.tool: p
|
||||
.tool: a
|
||||
|
||||
.output
|
||||
h3: p Produces
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
.view__minimal_recipe
|
||||
.input
|
||||
table.view__crafting_grid
|
||||
.tool: p
|
||||
.tool
|
||||
.output
|
||||
a: img
|
||||
p.quantity
|
||||
|
||||
Reference in New Issue
Block a user