Recognize CraftingGuide 1.0 query parameters
This commit is contained in:
@@ -46,6 +46,8 @@ module.exports = (grunt)->
|
|||||||
files: [expand:true, cwd:'./src/fonts', src:'**/*.ttf', dest:'./dist/fonts']
|
files: [expand:true, cwd:'./src/fonts', src:'**/*.ttf', dest:'./dist/fonts']
|
||||||
images:
|
images:
|
||||||
files: [expand:true, cwd:'./src/images/', src:['**/*.png', '**/*.jpg'], dest:'./dist/images']
|
files: [expand:true, cwd:'./src/images/', src:['**/*.png', '**/*.jpg'], dest:'./dist/images']
|
||||||
|
jquery_ui_images:
|
||||||
|
files: [expand:true, cwd:'./lib/jquery-ui/images', src:['*.png'], dest:'./dist/css/images']
|
||||||
scripts:
|
scripts:
|
||||||
files:
|
files:
|
||||||
'./dist/js/backbone.js': ['./node_modules/backbone/backbone.js']
|
'./dist/js/backbone.js': ['./node_modules/backbone/backbone.js']
|
||||||
|
|||||||
+1
-3
@@ -1,6 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
pushd dist &>/dev/null
|
http-server dist -p 8000 -c-1 --cors
|
||||||
python -m SimpleHTTPServer
|
|
||||||
popd &>/dev/null
|
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"version": 1,
|
"version": 1,
|
||||||
"mod_name": "Minecraft",
|
"mod_name": "Minecraft",
|
||||||
"mod_version": "1.6.4",
|
"mod_version": "1.6.4",
|
||||||
"description": "Crafting recipes from vanilla Minecraft (in progress)",
|
"description": "Crafting recipes from vanilla Minecraft",
|
||||||
"recipes": [
|
"recipes": [
|
||||||
{
|
{
|
||||||
"output": [[4, "Arrow"]],
|
"output": [[4, "Arrow"]],
|
||||||
|
|||||||
@@ -5,16 +5,22 @@
|
|||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
|
exports.DefaultBookUrls = DefaultBookUrls = [
|
||||||
|
'/data/vanilla.json'
|
||||||
|
'/data/applied_energetics.json'
|
||||||
|
'/data/buildcraft.json'
|
||||||
|
'/data/gravisuite.json'
|
||||||
|
'/data/industrial_craft.json'
|
||||||
|
'/data/more_blocks.json'
|
||||||
|
'/data/thermal_expansion.json'
|
||||||
|
]
|
||||||
|
|
||||||
exports.Duration = Duration = {}
|
exports.Duration = Duration = {}
|
||||||
Duration.snap = 100
|
Duration.snap = 100
|
||||||
Duration.fast = Duration.snap * 2
|
Duration.fast = Duration.snap * 2
|
||||||
Duration.normal = Duration.fast * 2
|
Duration.normal = Duration.fast * 2
|
||||||
Duration.slow = Duration.normal * 2
|
Duration.slow = Duration.normal * 2
|
||||||
|
|
||||||
exports.Opacity = Opacity = {}
|
|
||||||
Opacity.hidden = 1e-6
|
|
||||||
Opacity.shown = 1
|
|
||||||
|
|
||||||
exports.Event = Event = {}
|
exports.Event = Event = {}
|
||||||
Event.add = 'add' # collection, item...
|
Event.add = 'add' # collection, item...
|
||||||
Event.change = 'change' # model
|
Event.change = 'change' # model
|
||||||
@@ -25,12 +31,11 @@ Event.load.failed = 'load:failed' # controller, error message
|
|||||||
Event.load.finished = 'load:finished' # controller
|
Event.load.finished = 'load:finished' # controller
|
||||||
Event.remove = 'remove' # collection, item...
|
Event.remove = 'remove' # collection, item...
|
||||||
|
|
||||||
exports.DefaultBookUrls = DefaultBookUrls = [
|
exports.Opacity = Opacity = {}
|
||||||
'/data/vanilla.json'
|
Opacity.hidden = 1e-6
|
||||||
'/data/applied_energetics.json'
|
Opacity.shown = 1
|
||||||
'/data/buildcraft.json'
|
|
||||||
'/data/gravisuite.json'
|
exports.UrlParam = UrlParam = {}
|
||||||
'/data/industrial_craft.json'
|
UrlParam.quantity = 'count'
|
||||||
'/data/more_blocks.json'
|
UrlParam.recipe = 'recipeName'
|
||||||
'/data/thermal_expansion.json'
|
UrlParam.includingTools = 'tools'
|
||||||
]
|
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
BaseController = require './base_controller'
|
BaseController = require './base_controller'
|
||||||
{Event} = require '../constants'
|
{Event} = require '../constants'
|
||||||
InventoryParser = require '../models/inventory_parser'
|
InventoryParser = require '../models/inventory_parser'
|
||||||
|
url = require 'url'
|
||||||
|
{UrlParam} = require '../constants'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
@@ -27,23 +29,24 @@ module.exports = class CraftingTableController extends BaseController
|
|||||||
onCatalogChanged: ->
|
onCatalogChanged: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
@_updateNameAutocomplete()
|
@_updateNameAutocomplete()
|
||||||
|
@_parseUrlParameters()
|
||||||
|
|
||||||
onHaveFieldChanged: ->
|
onHaveFieldChanged: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
|
|
||||||
@model.have.clear()
|
@model.have.clear()
|
||||||
@_parser.parse @$haveField.val(), @model.have
|
@_parser.parse @$haveField.val(), @model.have
|
||||||
@model.craft()
|
@_craft()
|
||||||
|
|
||||||
onIncludingToolsFieldChanged: ->
|
onIncludingToolsFieldChanged: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
@model.includingTools = @$('input[name="including_tools"]:checked').length > 0
|
@model.includingTools = @$('input[name="including_tools"]:checked').length > 0
|
||||||
@model.craft()
|
@_craft()
|
||||||
|
|
||||||
onNameFieldChanged: ->
|
onNameFieldChanged: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
@model.name = @$nameField.val()
|
@model.name = @$nameField.val()
|
||||||
@model.craft()
|
@_craft()
|
||||||
|
|
||||||
onNameFieldFocused: ->
|
onNameFieldFocused: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
@@ -52,7 +55,7 @@ module.exports = class CraftingTableController extends BaseController
|
|||||||
onQuantityFieldChanged: ->
|
onQuantityFieldChanged: ->
|
||||||
return unless @rendered
|
return unless @rendered
|
||||||
@model.quantity = parseInt @$quantityField.find(":selected").val()
|
@model.quantity = parseInt @$quantityField.find(":selected").val()
|
||||||
@model.craft()
|
@_craft()
|
||||||
|
|
||||||
# BaseController Overrides #####################################################################
|
# BaseController Overrides #####################################################################
|
||||||
|
|
||||||
@@ -69,13 +72,7 @@ module.exports = class CraftingTableController extends BaseController
|
|||||||
super
|
super
|
||||||
|
|
||||||
@_updateNameAutocomplete()
|
@_updateNameAutocomplete()
|
||||||
|
@_parseUrlParameters()
|
||||||
@onHaveFieldChanged()
|
|
||||||
@onIncludingToolsFieldChanged()
|
|
||||||
@onQuantityFieldChanged()
|
|
||||||
|
|
||||||
# do last so others are no-op until all is set
|
|
||||||
@onNameFieldChanged()
|
|
||||||
|
|
||||||
refresh: ->
|
refresh: ->
|
||||||
@$needList.empty()
|
@$needList.empty()
|
||||||
@@ -103,6 +100,37 @@ module.exports = class CraftingTableController extends BaseController
|
|||||||
|
|
||||||
# Private Methods ##############################################################################
|
# Private Methods ##############################################################################
|
||||||
|
|
||||||
|
_craft: ->
|
||||||
|
@model.craft()
|
||||||
|
|
||||||
|
_parseUrlParameters: ->
|
||||||
|
params = url.parse(window.location.href, true).query
|
||||||
|
|
||||||
|
if params[UrlParam.includingTools]?
|
||||||
|
param = params[UrlParam.includingTools]
|
||||||
|
if param in ['true', 'yes']
|
||||||
|
@$includingToolsField.attr 'checked', 'checked'
|
||||||
|
else if param in ['false', 'no']
|
||||||
|
@$includingToolsField.removeAttr 'checked'
|
||||||
|
else
|
||||||
|
console.log "invalid including tools value in URL param: #{params[UrlParam.includingTools]}"
|
||||||
|
@onIncludingToolsFieldChanged()
|
||||||
|
|
||||||
|
if params[UrlParam.quantity]?
|
||||||
|
@$quantityField.val parseInt params[UrlParam.quantity]
|
||||||
|
if @$quantityField.find(':selected').length is 0
|
||||||
|
console.log "invalid quantity in URL param: #{params[UrlParam.quantity]}"
|
||||||
|
@onQuantityFieldChanged()
|
||||||
|
|
||||||
|
# Do this check last to avoid recalculting the recipe multiple times
|
||||||
|
if params[UrlParam.recipe]?
|
||||||
|
recipeName = params[UrlParam.recipe]
|
||||||
|
if @model.catalog.findRecipes(recipeName).length > 0
|
||||||
|
@$nameField.val recipeName
|
||||||
|
else
|
||||||
|
console.log "invalid recipe name in URL param: #{params[UrlParam.recipe]}"
|
||||||
|
@onNameFieldChanged()
|
||||||
|
|
||||||
_updateNameAutocomplete: ->
|
_updateNameAutocomplete: ->
|
||||||
onChanged = => @onNameFieldChanged()
|
onChanged = => @onNameFieldChanged()
|
||||||
|
|
||||||
|
|||||||
@@ -5,9 +5,9 @@
|
|||||||
# All rights reserved.
|
# All rights reserved.
|
||||||
###
|
###
|
||||||
|
|
||||||
BaseModel = require './base_model'
|
BaseModel = require './base_model'
|
||||||
{Event} = require '../constants'
|
{Event} = require '../constants'
|
||||||
RecipeBookParser = require './recipe_book_parser'
|
RecipeBookParser = require './recipe_book_parser'
|
||||||
|
|
||||||
########################################################################################################################
|
########################################################################################################################
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user