Complete the Crafting Table view/controller

* Add output box to the crafting table view
* Add remaining crafting patterns to all MC 1.7.10 recipes
* Add all crafting patterns to Buildcraft 6.2.6
* Disable mods which don't have patterns yet
* Add the Url constants for computing urls from templates
* Add the `findItemDisplay` to ModPack (along with tests) and remove
  all replace all uses of `getPathSlugs` with it
This commit is contained in:
Andrew Miner
2015-01-09 10:08:02 -08:00
parent b8d60ac245
commit b8a0918541
19 changed files with 278 additions and 97 deletions
+2
View File
@@ -33,6 +33,8 @@ $color-footer-text: white;
$color-gray-faint: #F2F2F2; $color-gray-faint: #F2F2F2;
$color-gray-light: #CCCCCC; $color-gray-light: #CCCCCC;
$color-gray-medium: #A6A6A6; $color-gray-medium: #A6A6A6;
$color-gray-dark: #8B8B8B;
$color-gray-shadow: #444444;
$color-table-background: white; $color-table-background: white;
$color-toolbar-background: rgba(255, 255, 255, 0.75); $color-toolbar-background: rgba(255, 255, 255, 0.75);
+4 -1
View File
@@ -6,12 +6,15 @@ All rights reserved.
*/ */
.view__crafting_grid { .view__crafting_grid {
border: 0.4em solid $color-gray-medium;
img { img {
position: relative; height:4.8em; width: 4.8em; position: relative; height:4.8em; width: 4.8em;
} }
td { td {
border: 1px solid $color-gray-light; background: $color-gray-dark;
border: 0.1em solid $color-gray-light;
padding: 0.1em;
} }
} }
+28
View File
@@ -39,6 +39,34 @@ All rights reserved.
} }
} }
.output {
position: absolute; top: 50%; right: 16.5%; height: 5.3em; width: 5.3em;
@include transform(translate(-50%, -50%));
background: $color-gray-medium;
border: 0.4em solid $color-gray-medium;
padding: 0.1em;
a {
position: absolute; top: 50%; left: 50%; height: 4.8em; width: 4.8em;
@include transform(translate(-50%, -50%));
}
.multiplier {
position: absolute; bottom: -3em; left: 0; right: 0; height: 1.5em;
font-family: PressStart;
font-size: $font-size-large;
text-align: center;
}
.quantity {
position: absolute; right: 0; bottom: 0;
color: white;
font-family: PressStart;
font-size: $font-size-large;
}
}
.next { .next {
background: url('/images/arrow-right-disabled.png'); background: url('/images/arrow-right-disabled.png');
position: absolute; top: 50%; right: 1em; height: 8em; width: 4em; position: absolute; top: 50%; right: 1em; height: 8em; width: 4em;

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

+113 -25
View File
@@ -7,347 +7,435 @@
{ {
"output": "Advanced Crafting Table", "output": "Advanced Crafting Table",
"input": [[6, "Obsidian"], "Chest", "Crafting Table", "Redstone Chipset"], "input": [[6, "Obsidian"], "Chest", "Crafting Table", "Redstone Chipset"],
"pattern": "020 010 030",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Architect Table", "output": "Architect Table",
"input": [[2, "Dandelion Yellow"], [2, "Diamond Gear"], [2, "Ink Sac"], "Blueprint", "Crafting Table", "Landmark"], "input": [[2, "Dandelion Yellow"], [2, "Diamond Gear"], [2, "Ink Sac"], "Blueprint", "Crafting Table", "Landmark"],
"pattern": "252 040 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Assembly Table", "output": "Assembly Table",
"input": [[6, "Obsidian"], "Diamond", "Diamond Gear", "Redstone"], "input": [[6, "Obsidian"], "Diamond", "Diamond Gear", "Redstone"],
"pattern": "030 010 020",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Auto Workbench", "output": "Auto Workbench",
"input": [[4, "Wooden Gear"], "Crafting Table"], "input": [[4, "Wooden Gear"], "Crafting Table"],
"pattern": ".0. 010 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Basic Gate", "output": "Basic Gate",
"input": ["Red Pipe Wire", "Redstone Chipset"], "input": ["Red Pipe Wire", "Redstone Chipset"],
"pattern": "... .1. .0.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": [[8, "Blue Pipe Wire"]], "output": [[8, "Blue Pipe Wire"]],
"input": ["Iron Ingot", "Lapis Lazuli", "Redstone"], "input": ["Iron Ingot", "Lapis Lazuli", "Redstone"],
"pattern": ".2. .1. .0.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Blueprint", "output": "Blueprint",
"input": [[8, "Paper"], "Lapis Lazuli"], "input": [[8, "Paper"], "Lapis Lazuli"],
"pattern": "000 010 000",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Blueprint Library", "output": "Blueprint Library",
"input": [[8, "Blueprint"], "Bookshelf"], "input": [[8, "Blueprint"], "Bookshelf"],
"pattern": "000 010 000",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Builder", "output": "Builder",
"input": [[2, "Dandelion Yellow"], [2, "Diamond Gear"], [2, "Ink Sac"], "Chest", "Crafting Table", "Landmark"], "input": [[2, "Dandelion Yellow"], [2, "Diamond Gear"], [2, "Ink Sac"], "Chest", "Crafting Table", "Landmark"],
"pattern": "252 040 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Charging Table", "output": "Charging Table",
"input": [[6, "Obsidian"], "Gold Gear", "Redstone", "Redstone Chipset"], "input": [[6, "Obsidian"], "Gold Gear", "Redstone", "Redstone Chipset"],
"pattern": "020 030 010",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Chute", "output": "Chute",
"input": [[5, "Iron Ingot"], "Chest", "Cobblestone Gear"], "input": [[5, "Iron Ingot"], "Chest", "Cobblestone Gear"],
"pattern": "010 020 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Cobblestone Fluid Pipe", "output": "Cobblestone Fluid Pipe",
"input": ["Cobblestone Transport Pipe", "Pipe Sealant"] "input": ["Cobblestone Transport Pipe", "Pipe Sealant"],
"pattern": "... .0. .1."
}, { }, {
"output": "Cobblestone Gear", "output": "Cobblestone Gear",
"input": [[4, "Cobblestone"], "Wooden Gear"], "input": [[4, "Cobblestone"], "Wooden Gear"],
"pattern": ".0. 010 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Cobblestone Kinesis Pipe", "output": "Cobblestone Kinesis Pipe",
"input": ["Cobblestone Transport Pipe", "Redstone"] "input": ["Cobblestone Transport Pipe", "Redstone"],
"pattern": "... .0. .1."
}, { }, {
"output": [[8, "Cobblestone Transport Pipe"]], "output": [[8, "Cobblestone Transport Pipe"]],
"input": [[2, "Cobblestone"], "Glass"], "input": [[2, "Cobblestone"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Combustion Engine", "output": "Combustion Engine",
"input": [[3, "Iron Ingot"], [2, "Iron Gear"], "Glass", "Piston"], "input": [[3, "Iron Ingot"], [2, "Iron Gear"], "Glass", "Piston"],
"pattern": "000 .2. 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Daizuli Transport Pipe"]], "output": [[8, "Daizuli Transport Pipe"]],
"input": ["Block of Lapis Lazuli", "Diamond", "Glass"], "input": ["Block of Lapis Lazuli", "Diamond", "Glass"],
"pattern": "... 021 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Diamond AND Gate", "output": "Diamond AND Gate",
"input": ["Blue Pipe Wire", "Diamond Chipset", "Green Pipe Wire", "Red Pipe Wire", "Yellow Pipe Wire"], "input": ["Blue Pipe Wire", "Diamond Chipset", "Green Pipe Wire", "Red Pipe Wire", "Yellow Pipe Wire"],
"pattern": "1.. 34. 02.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Diamond Chipset", "output": "Diamond Chipset",
"input": ["Diamond", "Redstone"], "input": ["Diamond", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Diamond Fluid Pipe", "output": "Diamond Fluid Pipe",
"input": ["Diamond Transport Pipe", "Pipe Sealant"] "input": ["Diamond Transport Pipe", "Pipe Sealant"],
"pattern": "... .0. .1."
}, { }, {
"output": "Diamond Gear", "output": "Diamond Gear",
"input": [[4, "Diamond"], "Gold Gear"], "input": [[4, "Diamond"], "Gold Gear"],
"pattern": ".0. 010 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Diamond Kinesis Pipe", "output": "Diamond Kinesis Pipe",
"input": ["Diamond Transport Pipe", "Redstone"] "input": ["Diamond Transport Pipe", "Redstone"],
"pattern": "... .0. .1."
}, { }, {
"output": "Diamond OR Gate", "output": "Diamond OR Gate",
"input": ["Blue Pipe Wire", "Diamond Chipset", "Green Pipe Wire", "Red Pipe Wire", "Yellow Pipe Wire"], "input": ["Blue Pipe Wire", "Diamond Chipset", "Green Pipe Wire", "Red Pipe Wire", "Yellow Pipe Wire"],
"pattern": "1.. 34. 02.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Diamond Transport Pipe", "output": "Diamond Transport Pipe",
"input": [[2, "Diamond"], "Glass"], "input": [[2, "Diamond"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Docking Station", "output": "Docking Station",
"input": [[3, "Iron Ingot"], "Gold Chipset"], "input": [[3, "Iron Ingot"], "Gold Chipset"],
"pattern": "... .0. 010",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Emerald Chipset", "output": "Emerald Chipset",
"input": ["Emerald", "Redstone"], "input": ["Emerald", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Emerald Fluid Pipe", "output": "Emerald Fluid Pipe",
"input": ["Emerald Transport Pipe", "Pipe Sealant"] "input": ["Emerald Transport Pipe", "Pipe Sealant"],
"pattern": "... .0. .1."
}, { }, {
"output": "Emerald Kinesis Pipe", "output": "Emerald Kinesis Pipe",
"input": ["Emerald Transport Pipe", "Redstone"] "input": ["Emerald Transport Pipe", "Redstone"],
"pattern": "... .1. .0."
}, { }, {
"output": [[8, "Emerald Transport Pipe"]], "output": [[8, "Emerald Transport Pipe"]],
"input": [[2, "Emerald"], "Glass"], "input": [[2, "Emerald"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Emzuli Transport Pipe"]], "output": [[8, "Emzuli Transport Pipe"]],
"input": ["Block of Lapis Lazuli", "Emerald", "Glass"], "input": ["Block of Lapis Lazuli", "Emerald", "Glass"],
"pattern": "... 021 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Facade", "output": "Facade",
"input": [[3, "Structure Pipe"], "source block"], "input": [[3, "Structure Pipe"], "source block"],
"pattern": "... .1. 000",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Filler", "output": "Filler",
"input": [[2, "Dandelion Yellow"], [2, "Gold Gear"], [2, "Ink Sac"], "Chest", "Crafting Table", "Landmark"], "input": [[2, "Dandelion Yellow"], [2, "Gold Gear"], [2, "Ink Sac"], "Chest", "Crafting Table", "Landmark"],
"pattern": "252 040 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Filtered Buffer", "output": "Filtered Buffer",
"input": [[6, "Oak Wood Planks"], "Chest", "Diamond Transport Pipe", "Piston"], "input": [[6, "Oak Wood Planks"], "Chest", "Diamond Transport Pipe", "Piston"],
"pattern": "020 010 030",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Flood Gate", "output": "Flood Gate",
"input": [[4, "Iron Ingot"], [3, "Iron Bars"], "Iron Gear", "Tank"], "input": [[4, "Iron Ingot"], [3, "Iron Bars"], "Iron Gear", "Tank"],
"pattern": "020 131 010",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Gate Copier", "output": "Gate Copier",
"input": ["Redstone Chipset", "Wrench"] "input": ["Redstone Chipset", "Wrench"],
"pattern": "... .0. .1."
}, { }, {
"output": "Gold AND Gate", "output": "Gold AND Gate",
"input": ["Blue Pipe Wire", "Gold Chipset", "Red Pipe Wire"], "input": ["Blue Pipe Wire", "Gold Chipset", "Red Pipe Wire"],
"pattern": "1.. 20. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Gold Chipset", "output": "Gold Chipset",
"input": ["Gold Ingot", "Redstone"], "input": ["Gold Ingot", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Gold Gear", "output": "Gold Gear",
"input": [[4, "Gold Ingot"], "Iron Gear"], "input": [[4, "Gold Ingot"], "Iron Gear"],
"pattern": ".0. 010 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Gold OR Gate", "output": "Gold OR Gate",
"input": ["Blue Pipe Wire", "Gold Chipset", "Red Pipe Wire"], "input": ["Blue Pipe Wire", "Gold Chipset", "Red Pipe Wire"],
"pattern": "1.. 20. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Golden Fluid Pipe", "output": "Golden Fluid Pipe",
"input": ["Golden Transport Pipe", "Pipe Sealant"] "input": ["Golden Transport Pipe", "Pipe Sealant"],
"pattern": "... .0. .1."
}, { }, {
"output": "Golden Kinesis Pipe", "output": "Golden Kinesis Pipe",
"input": ["Golden Transport Pipe", "Redstone"] "input": ["Golden Transport Pipe", "Redstone"],
"pattern": "... .0. .1."
}, { }, {
"output": [[8, "Golden Transport Pipe"]], "output": [[8, "Golden Transport Pipe"]],
"input": [[2, "Gold Ingot"], "Glass"], "input": [[2, "Gold Ingot"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Green Pipe Wire"]], "output": [[8, "Green Pipe Wire"]],
"input": ["Cactus Green", "Iron Ingot", "Redstone"], "input": ["Cactus Green", "Iron Ingot", "Redstone"],
"pattern": ".0. .2. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Integration Table", "output": "Integration Table",
"input": [[6, "Obsidian"], "Diamond Gear", "Redstone", "Redstone Chipset"], "input": [[6, "Obsidian"], "Diamond Gear", "Redstone", "Redstone Chipset"],
"pattern": "020 030 010",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Iron AND Gate", "output": "Iron AND Gate",
"input": ["Iron Chipset", "Red Pipe Wire"], "input": ["Iron Chipset", "Red Pipe Wire"],
"pattern": "0.. 1.. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Iron Chipset", "output": "Iron Chipset",
"input": ["Iron Ingot", "Redstone"], "input": ["Iron Ingot", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Iron Fluid Pipe", "output": "Iron Fluid Pipe",
"input": ["Iron Transport Pipe", "Pipe Sealant"] "input": ["Iron Transport Pipe", "Pipe Sealant"],
"pattern": "... .0. .1."
}, { }, {
"output": "Iron Gear", "output": "Iron Gear",
"input": [[4, "Iron Ingot"], "Cobblestone Gear"], "input": [[4, "Iron Ingot"], "Cobblestone Gear"],
"pattern": ".0. 010 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Iron Kinesis Pipe", "output": "Iron Kinesis Pipe",
"input": ["Iron Transport Pipe", "Redstone"] "input": ["Iron Transport Pipe", "Redstone"],
"pattern": "... .0. .1."
}, { }, {
"output": "Iron OR Gate", "output": "Iron OR Gate",
"input": ["Iron Chipset", "Red Pipe Wire"], "input": ["Iron Chipset", "Red Pipe Wire"],
"pattern": "0.. 1.. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": [[8, "Iron Transport Pipe"]], "output": [[8, "Iron Transport Pipe"]],
"input": [[2, "Iron Ingot"], "Glass"], "input": [[2, "Iron Ingot"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Landmark", "output": "Landmark",
"input": ["Lapis Lazuli", "Redstone Torch"], "input": ["Lapis Lazuli", "Redstone Torch"],
"pattern": "... .0. .1.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Laser", "output": "Laser",
"input": [[5, "Redstone"], [2, "Diamond"], [2, "Obsidian"]], "input": [[5, "Redstone"], [2, "Diamond"], [2, "Obsidian"]],
"pattern": "200 110 200",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Lazuli Transport Pipe"]], "output": [[8, "Lazuli Transport Pipe"]],
"input": [[2, "Block of Lapis Lazuli"], "Glass"], "input": [[2, "Block of Lapis Lazuli"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Mining Well", "output": "Mining Well",
"input": [[6, "Iron Ingot"], "Iron Gear", "Iron Pickaxe", "Redstone"], "input": [[6, "Iron Ingot"], "Iron Gear", "Iron Pickaxe", "Redstone"],
"pattern": "030 010 020",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Obsidian Transport Pipe"]], "output": [[8, "Obsidian Transport Pipe"]],
"input": [[2, "Obsidian"], "Glass"], "input": [[2, "Obsidian"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Path Mark", "output": "Path Mark",
"input": ["Cactus Green", "Redstone Torch"] "input": ["Cactus Green", "Redstone Torch"],
"pattern": "... .0. .1."
}, { }, {
"output": [[6, "Pipe Facade"]], "output": [[6, "Pipe Facade"]],
"input": [[3, "Support Pipe"], "Stone"], "input": [[3, "Support Pipe"], "Stone"],
"pattern": "... .1. 000",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Pipe Plug", "output": "Pipe Plug",
"input": "Support Pipe", "input": "Support Pipe",
"pattern": "... .0. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Pipe Sealant", "output": "Pipe Sealant",
"input": "Cactus Green" "input": "Cactus Green",
"pattern": "... .0. ..."
}, { }, {
"output": "Pulsating Chipset", "output": "Pulsating Chipset",
"input": ["Ender Pearl", "Redstone"], "input": ["Ender Pearl", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Pump", "output": "Pump",
"input": ["Mining Well", "Tank"] "input": ["Mining Well", "Tank"],
"pattern": "... .1. .0."
}, { }, {
"output": "Quarry", "output": "Quarry",
"input": [[3, "Iron Gear"], [2, "Diamond Gear"], [2, "Gold Gear"], "Diamond Pickaxe", "Redstone"], "input": [[3, "Iron Gear"], [2, "Diamond Gear"], [2, "Gold Gear"], "Diamond Pickaxe", "Redstone"],
"pattern": "040 202 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Quartz Chipset", "output": "Quartz Chipset",
"input": ["Nether Quartz", "Redstone"], "input": ["Nether Quartz", "Redstone"],
"pattern": "... .0. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Quartz Kinesis Pipe", "output": "Quartz Kinesis Pipe",
"input": ["Quartz Transport Pipe", "Redstone"] "input": ["Quartz Transport Pipe", "Redstone"],
"pattern": "... .0. .1."
}, { }, {
"output": [[8, "Quartz Transport Pipe"]], "output": [[8, "Quartz Transport Pipe"]],
"input": [[2, "Block of Quartz"], "Glass"], "input": [[2, "Block of Quartz"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Red Pipe Wire"]], "output": [[8, "Red Pipe Wire"]],
"input": ["Iron Ingot", "Redstone", "Rose Red"], "input": ["Iron Ingot", "Redstone", "Rose Red"],
"pattern": ".2. .1. .0.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Redstone Chipset", "output": "Redstone Chipset",
"input": "Redstone", "input": "Redstone",
"pattern": "... .0. ...",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Redstone Comp Chipset", "output": "Redstone Comp Chipset",
"input": ["Redstone", "Redstone Comparator"], "input": ["Redstone", "Redstone Comparator"],
"pattern": "... .1. .0.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Redstone Engine", "output": "Redstone Engine",
"input": [[3, "Oak Wood Planks"], [2, "Wooden Gear"], "Glass", "Piston"], "input": [[3, "Oak Wood Planks"], [2, "Wooden Gear"], "Glass", "Piston"],
"pattern": "000 .2. 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Refinery", "output": "Refinery",
"input": [[3, "Tank"], [2, "Redstone Torch"], "Diamond Gear"], "input": [[3, "Tank"], [2, "Redstone Torch"], "Diamond Gear"],
"pattern": "... 101 020",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Requester", "output": "Requester",
"input": [[4, "Iron Ingot"], [2, "Iron Gear"], "Chest", "Piston", "Redstone"], "input": [[4, "Iron Ingot"], [2, "Iron Gear"], "Chest", "Piston", "Redstone"],
"pattern": "030 121 040",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Sandstone Fluid Pipe", "output": "Sandstone Fluid Pipe",
"input": ["Pipe Sealant", "Sandstone Transport Pipe"] "input": ["Pipe Sealant", "Sandstone Transport Pipe"],
"pattern": "... .1. .0."
}, { }, {
"output": [[8, "Sandstone Transport Pipe"]], "output": [[8, "Sandstone Transport Pipe"]],
"input": [[2, "Sandstone"], "Glass"], "input": [[2, "Sandstone"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Stirling Engine", "output": "Stirling Engine",
"input": [[3, "Cobblestone"], [2, "Cobblestone Gear"], "Glass", "Piston"], "input": [[3, "Cobblestone"], [2, "Cobblestone Gear"], "Glass", "Piston"],
"pattern": "000 .2. 131",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Stone Fluid Pipe", "output": "Stone Fluid Pipe",
"input": ["Pipe Sealant", "Stone Transport Pipe"] "input": ["Pipe Sealant", "Stone Transport Pipe"],
"pattern": "... .1. .0."
}, { }, {
"output": "Stone Kinesis Pipe", "output": "Stone Kinesis Pipe",
"input": ["Redstone", "Stone Transport Pipe"] "input": ["Redstone", "Stone Transport Pipe"],
"pattern": "... .1. .0."
}, { }, {
"output": [[8, "Stone Pipe"]], "output": [[8, "Stone Pipe"]],
"input": [[2, "Stone"], "Glass"], "input": [[2, "Stone"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Stripes Transport Pipe"]], "output": [[8, "Stripes Transport Pipe"]],
"input": [[2, "Gold Gear"], "Glass"], "input": [[2, "Gold Gear"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Support Pipe", "output": "Support Pipe",
"input": ["Cobblestone Transport Pipe", "Gravel"] "input": ["Cobblestone Transport Pipe", "Gravel"],
"pattern": "... .1. .0."
}, { }, {
"output": "Tank", "output": "Tank",
"input": [[8, "Glass"]], "input": [[8, "Glass"]],
"pattern": "000 0.0 000",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Template", "output": "Template",
"input": [[8, "Paper"], "Ink Sac"], "input": [[8, "Paper"], "Ink Sac"],
"pattern": "000 010 000",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Void Fluid Pipe", "output": "Void Fluid Pipe",
"input": ["Pipe Sealant", "Void Transport Pipe"] "input": ["Pipe Sealant", "Void Transport Pipe"],
"pattern": "... .1. .0."
}, { }, {
"output": [[8, "Void Transport Pipe"]], "output": [[8, "Void Transport Pipe"]],
"input": ["Glass", "Ink Sac", "Redstone"], "input": ["Glass", "Ink Sac", "Redstone"],
"pattern": "... 102 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Wooden Fluid Pipe", "output": "Wooden Fluid Pipe",
"input": ["Pipe Sealant", "Wooden Transport Pipe"] "input": ["Pipe Sealant", "Wooden Transport Pipe"],
"pattern": "... .1. .0."
}, { }, {
"output": "Wooden Gear", "output": "Wooden Gear",
"input": [[4, "Stick"]], "input": [[4, "Stick"]],
"pattern": ".0. 0.0 .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Wooden Kinesis Pipe", "output": "Wooden Kinesis Pipe",
"input": ["Redstone", "Wooden Transport Pipe"] "input": ["Redstone", "Wooden Transport Pipe"],
}, { "pattern": "... .1. .0."
"output": "Wooden Kinesis Pipe",
"input": ["Redstone", "Wooden Transport Pipe"]
}, { }, {
"output": [[8, "Wooden Transport Pipe"]], "output": [[8, "Wooden Transport Pipe"]],
"input": [[2, "Oak Wood Planks"], "Glass"], "input": [[2, "Oak Wood Planks"], "Glass"],
"pattern": "... 010 ...",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": "Wrench", "output": "Wrench",
"input": [[3, "Iron Ingot"], "Cobblestone Gear"], "input": [[3, "Iron Ingot"], "Cobblestone Gear"],
"pattern": "0.0 .1. .0.",
"tools": "Crafting Table" "tools": "Crafting Table"
}, { }, {
"output": [[8, "Yellow Pipe Wire"]], "output": [[8, "Yellow Pipe Wire"]],
"input": ["Dandelion Yellow", "Iron Ingot", "Redstone"], "input": ["Dandelion Yellow", "Iron Ingot", "Redstone"],
"pattern": ".0. .2. .1.",
"tools": ["Assembly Table", "Laser"] "tools": ["Assembly Table", "Laser"]
}, { }, {
"output": "Zone Planner", "output": "Zone Planner",
"input": [[4, "Iron Ingot"], [2, "Gold Gear"], "Diamond Gear", "Empty Map", "Redstone"], "input": [[4, "Iron Ingot"], [2, "Gold Gear"], "Diamond Gear", "Empty Map", "Redstone"],
"pattern": "040 131 020",
"tools": "Crafting Table" "tools": "Crafting Table"
} }
] ]
+10 -6
View File
@@ -7,12 +7,14 @@ All rights reserved.
exports.DefaultBookUrls = DefaultBookUrls = [ exports.DefaultBookUrls = DefaultBookUrls = [
'/data/minecraft/recipes.json' '/data/minecraft/recipes.json'
'/data/applied_energetics/recipes.json'
'/data/buildcraft/recipes.json' '/data/buildcraft/recipes.json'
'/data/gravisuite/recipes.json'
'/data/industrial_craft/recipes.json' # Disabled until shaped crafting can be added -- aminer 2015-01-09
'/data/more_blocks/recipes.json' # '/data/applied_energetics/recipes.json'
'/data/thermal_expansion/recipes.json' # '/data/gravisuite/recipes.json'
# '/data/industrial_craft/recipes.json'
# '/data/more_blocks/recipes.json'
# '/data/thermal_expansion/recipes.json'
] ]
exports.Duration = Duration = {} exports.Duration = Duration = {}
@@ -31,7 +33,9 @@ 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.ImageUrl = _.template "/data/<%= modSlug %>/images/<%= itemSlug %>.png" exports.Url = Url = {}
Url.itemIcon = _.template "/data/<%= modSlug %>/images/<%= itemSlug %>.png"
Url.item = _.template "/item/<%= encodeURIComponent(itemName) %>"
exports.Key = Key = {} exports.Key = Key = {}
Key.Return = 13 Key.Return = 13
@@ -7,15 +7,11 @@ All rights reserved.
BaseController = require './base_controller' BaseController = require './base_controller'
ImageLoader = require './image_loader' ImageLoader = require './image_loader'
{ImageUrl} = require '../constants'
util = require 'util'
######################################################################################################################## ########################################################################################################################
module.exports = class CraftingGridController extends BaseController module.exports = class CraftingGridController extends BaseController
@EMPTY_IMAGE = '/images/empty.png'
constructor: (options={})-> constructor: (options={})->
if not options.model? then throw new Error 'options.model is required' if not options.model? then throw new Error 'options.model is required'
options.imageLoader ?= new ImageLoader default:'/images/unknown.png' options.imageLoader ?= new ImageLoader default:'/images/unknown.png'
@@ -39,14 +35,14 @@ module.exports = class CraftingGridController extends BaseController
slot.a.addClass 'empty' slot.a.addClass 'empty'
slot.a.removeAttr 'href' slot.a.removeAttr 'href'
slot.img.attr 'src', CraftingGridController.EMPTY_IMAGE slot.img.attr 'src', '/images/empty.png'
slot.img.removeAttr 'alt' slot.img.removeAttr 'alt'
itemData = @model.getItemDataAt index display = @model.getItemDisplayAt index
if itemData? if display?
slot.a.removeClass 'empty' slot.a.removeClass 'empty'
slot.a.attr 'href', "/items/#{encodeURIComponent(itemData.name)}" slot.a.attr 'href', display.itemUrl
logger.debug "item data: #{util.inspect(itemData)}" @_imageLoader.load display.iconUrl, slot.img
@_imageLoader.load ImageUrl(itemData), slot.img slot.img.attr 'alt', display.itemName
slot.img.attr 'alt', itemData.name
super super
@@ -7,6 +7,7 @@ All rights reserved.
BaseController = require './base_controller' BaseController = require './base_controller'
CraftingGridController = require './crafting_grid_controller' CraftingGridController = require './crafting_grid_controller'
ImageLoader = require './image_loader'
######################################################################################################################## ########################################################################################################################
@@ -14,9 +15,14 @@ module.exports = class CraftingTableController extends BaseController
constructor: (options={})-> constructor: (options={})->
if not options.model? then throw new Error 'options.model is required' if not options.model? then throw new Error 'options.model is required'
if not options.modPack? then throw new Error 'options.modPack is required'
options.imageLoader ?= new ImageLoader default:'/images/unknown.png'
options.templateName = 'crafting_table' options.templateName = 'crafting_table'
super options super options
@imageLoader = options.imageLoader
@modPack = options.modPack
# Event Methods ################################################################################ # Event Methods ################################################################################
onNextClicked: -> onNextClicked: ->
@@ -30,7 +36,11 @@ module.exports = class CraftingTableController extends BaseController
onDidRender: -> onDidRender: ->
@gridController = @addChild CraftingGridController, '.view__crafting_grid', model:@model.grid @gridController = @addChild CraftingGridController, '.view__crafting_grid', model:@model.grid
@$multiplier = @$('.multiplier')
@$next = @$('.next') @$next = @$('.next')
@$outputImg = @$('.output img')
@$outputLink = @$('.output a')
@$outputQuantity = @$('.quantity')
@$prev = @$('.prev') @$prev = @$('.prev')
@$tool = @$('.tool p') @$tool = @$('.tool p')
super super
@@ -45,6 +55,25 @@ module.exports = class CraftingTableController extends BaseController
@$tool.html @model.toolNames @$tool.html @model.toolNames
@$outputImg.attr 'src', '/images/empty.png'
@$outputImg.removeAttr 'alt'
@$outputLink.removeAttr 'href'
@$outputQuantity.html ''
outputStack = @model.output
if outputStack?
display = @modPack.findItemDisplay outputStack.itemSlug
@$outputLink.attr 'href', display.itemUrl
@$outputImg.attr 'alt', display.itemName
@$outputQuantity.html outputStack.quantity if outputStack.quantity > 1
@imageLoader.load display.iconUrl, @$outputImg
if @model.multiplier > 1
@$multiplier.html "×#{@model.multiplier}"
else
@$multiplier.html ''
super super
# Backbone.View Overrides ###################################################################### # Backbone.View Overrides ######################################################################
@@ -36,32 +36,32 @@ module.exports = class ItemPageController extends BaseController
# BaseController Overrides ##################################################################### # BaseController Overrides #####################################################################
onDidRender: -> onDidRender: ->
options = @haveController = @addChild InventoryController, '.have',
editable: true, editable: true,
imageLoader: @imageLoader imageLoader: @imageLoader
model: @model.plan.have, model: @model.plan.have,
modPack: @model.modPack, modPack: @model.modPack,
title: 'Items you have' title: 'Items you have'
@haveController = @addChild InventoryController, '.have', options
options = @wantController = @addChild InventoryController, '.want',
editable: true editable: true
icon: '/images/fishing_rod.png', icon: '/images/fishing_rod.png',
imageLoader: @imageLoader imageLoader: @imageLoader
model: @model.plan.want, model: @model.plan.want,
modPack: @model.modPack, modPack: @model.modPack,
title: 'Items you want' title: 'Items you want'
@wantController = @addChild InventoryController, '.want', options
options = @needController = @addChild InventoryController, '.need',
editable: false editable: false
icon: '/images/boots.png', icon: '/images/boots.png',
imageLoader: @imageLoader imageLoader: @imageLoader
model: @model.plan.need, model: @model.plan.need,
modPack: @model.modPack, modPack: @model.modPack,
title: "Items you'll need" title: "Items you'll need"
@needController = @addChild InventoryController, '.need', options
@craftingTableController = @addChild CraftingTableController, '.view__crafting_table', model:@model.table @craftingTableController = @addChild CraftingTableController, '.view__crafting_table',
model: @model.table
modPack: @model.modPack
@modPackController = @addChild ModPackController, '.view__mod_pack', model:@model.modPack @modPackController = @addChild ModPackController, '.view__mod_pack', model:@model.modPack
super super
@@ -6,7 +6,6 @@ All rights reserved.
### ###
BaseController = require './base_controller' BaseController = require './base_controller'
{ImageUrl} = require '../constants'
ImageLoader = require './image_loader' ImageLoader = require './image_loader'
######################################################################################################################## ########################################################################################################################
@@ -32,24 +31,9 @@ module.exports = class StackController extends BaseController
super super
refresh: -> refresh: ->
{itemName, itemSlug, modSlug} = @_gatherData() display = @modPack.findItemDisplay @model.itemSlug
imageUrl = ImageUrl itemSlug:itemSlug, modSlug:modSlug
@$nameField.html itemName @$nameField.html display.itemName
@$quantityField.html @model.quantity @$quantityField.html @model.quantity
@_imageLoader.load imageUrl, @$image @_imageLoader.load display.iconUrl, @$image
super super
# Private Methods ##############################################################################
_gatherData: ->
itemSlug = @model.itemSlug
item = @modPack.findItem @model.itemSlug
if item?
itemName = item.name
modSlug = item.modVersion.slug
else
itemName = @modPack.findName @model.itemSlug
modSlug = 'minecraft'
return itemName:itemName, itemSlug:itemSlug, modSlug:modSlug
+2 -1
View File
@@ -14,9 +14,10 @@ CraftingGuideRouter = require './crafting_guide_router'
if typeof(global) is 'undefined' if typeof(global) is 'undefined'
window.global = window window.global = window
global.views = views
global.logger = new Logger level:Logger.TRACE global.logger = new Logger level:Logger.TRACE
global.router = new CraftingGuideRouter global.router = new CraftingGuideRouter
global.util = require 'util'
global.views = views
logger.info "CraftingGuide is ready" logger.info "CraftingGuide is ready"
Backbone.history.start pushState:true Backbone.history.start pushState:true
+3 -11
View File
@@ -6,7 +6,6 @@ All rights reserved.
### ###
BaseModel = require './base_model' BaseModel = require './base_model'
util = require 'util'
######################################################################################################################## ########################################################################################################################
@@ -23,19 +22,12 @@ module.exports = class CraftingGrid extends BaseModel
# Public Methods ############################################################################### # Public Methods ###############################################################################
getItemDataAt: (index)-> getItemDisplayAt: (index)->
if index >= @slotCount then throw new Error "index (#{index}) must be less than #{@slotCount}" if index >= @slotCount then throw new Error "index (#{index}) must be less than #{@slotCount}"
return null unless @recipe? return null unless @recipe?
logger.debug "recipe: #{@recipe}"
itemSlug = @recipe.getItemSlugAt index itemSlug = @recipe.getItemSlugAt index
return null unless itemSlug? return null unless itemSlug?
item = @modPack.findItem itemSlug itemDisplay = @modPack.findItemDisplay itemSlug
if item? return itemDisplay
itemData = item.pathSlugs
itemData.name = item.name
return itemData
else
return modSlug:'minecraft', itemSlug:itemSlug, name:@modPack.findName(itemSlug)
+15 -3
View File
@@ -26,6 +26,8 @@ module.exports = class CraftingTable extends BaseModel
hasNextStep: { get:@hasNextStep } hasNextStep: { get:@hasNextStep }
hasPrevStep: { get:@hasPrevStep } hasPrevStep: { get:@hasPrevStep }
hasSteps: { get:@hasSteps } hasSteps: { get:@hasSteps }
multiplier: { get:@getMultiplier }
output: { get:@getOutput }
step: { get:@getStep, set:@setStep } step: { get:@getStep, set:@setStep }
toolNames: { get:@getToolNames } toolNames: { get:@getToolNames }
} }
@@ -46,6 +48,19 @@ module.exports = class CraftingTable extends BaseModel
hasPrevStep: -> hasPrevStep: ->
return @_step > 0 return @_step > 0
hasSteps: ->
return @_steps.length > 0
getMultiplier: ->
step = @_steps[@_step]
return unless step?
return step.multiplier
getOutput: ->
step = @_steps[@_step]
return unless step?
return step.recipe.output[0]
getStep: -> getStep: ->
return @_step return @_step
@@ -58,9 +73,6 @@ module.exports = class CraftingTable extends BaseModel
return this return this
hasSteps: ->
return @_steps.length > 0
getToolNames: -> getToolNames: ->
recipe = @_steps[@_step]?.recipe recipe = @_steps[@_step]?.recipe
return '' unless recipe? return '' unless recipe?
-5
View File
@@ -25,8 +25,6 @@ module.exports = class Item extends BaseModel
Object.defineProperty @prototype, 'isCraftable', get:-> @recipes.length > 0 Object.defineProperty @prototype, 'isCraftable', get:-> @recipes.length > 0
Object.defineProperty @prototype, 'pathSlugs', get:-> @getPathSlugs()
# Public Methods ############################################################################### # Public Methods ###############################################################################
addRecipe: (recipe)-> addRecipe: (recipe)->
@@ -40,9 +38,6 @@ module.exports = class Item extends BaseModel
return if this.name < that.name then -1 else +1 return if this.name < that.name then -1 else +1
return 0 return 0
getPathSlugs: ->
return modSlug:@modVersion.slug, itemSlug:@slug
# Object Overrides ############################################################################# # Object Overrides #############################################################################
toString: -> toString: ->
+18 -1
View File
@@ -9,7 +9,7 @@ BaseModel = require './base_model'
{Event} = require '../constants' {Event} = require '../constants'
ModVersionParser = require './mod_version_parser' ModVersionParser = require './mod_version_parser'
{RequiredMods} = require '../constants' {RequiredMods} = require '../constants'
util = require 'util' {Url} = require '../constants'
######################################################################################################################## ########################################################################################################################
@@ -59,6 +59,22 @@ module.exports = class ModPack extends BaseModel
return slug return slug
findItemDisplay: (slug)->
result = {}
item = @findItem slug, includeDisabled:true
if item?
result.modSlug = item.modVersion.slug
result.itemSlug = item.slug
result.itemName = item.name
else
result.modSlug = _.slugify RequiredMods[0]
result.itemSlug = slug
result.itemName = @findName slug, includeDisabled:true
result.iconUrl = Url.itemIcon result
result.itemUrl = Url.item result
return result
gatherRecipeNames: (options={})-> gatherRecipeNames: (options={})->
options.includeDisabled ?= false options.includeDisabled ?= false
@@ -110,6 +126,7 @@ module.exports = class ModPack extends BaseModel
onModVersionLoaded: (url, data, status, xhr)-> onModVersionLoaded: (url, data, status, xhr)->
try try
modVersion = @loadModVersionData data modVersion = @loadModVersionData data
modVersion.enabled = true
logger.info "loaded ModVersion from #{url}: #{modVersion}" logger.info "loaded ModVersion from #{url}: #{modVersion}"
@trigger Event.load.succeeded, this, modVersion @trigger Event.load.succeeded, this, modVersion
@@ -10,7 +10,6 @@ Logger = require '../logger'
ModVersion = require './mod_version' ModVersion = require './mod_version'
Recipe = require './recipe' Recipe = require './recipe'
Stack = require './stack' Stack = require './stack'
util = require 'util'
######################################################################################################################## ########################################################################################################################
+3 -1
View File
@@ -16,5 +16,7 @@
table.view__crafting_grid table.view__crafting_grid
.tool: p .tool: p
.output .output
a: img
p.quantity
p.multiplier
.next .next
+1 -1
View File
@@ -32,7 +32,7 @@ describe 'CraftingPlan', ->
] ]
} }
plan = new CraftingPlan modPack plan = new CraftingPlan modPack:modPack
describe 'craft', -> describe 'craft', ->
+29
View File
@@ -21,6 +21,7 @@ describe 'ModPack', ->
minecraft = new ModVersion name:'Minecraft', version:'1.7.10' minecraft = new ModVersion name:'Minecraft', version:'1.7.10'
minecraft.addItem new Item name:'Wool' minecraft.addItem new Item name:'Wool'
minecraft.addItem new Item name:'Bed', recipes:[''] minecraft.addItem new Item name:'Bed', recipes:['']
minecraft.registerSlug 'iron_chestplate', 'Iron Chestplate'
buildcraft = new ModVersion name:'Buildcraft', version:'4.0' buildcraft = new ModVersion name:'Buildcraft', version:'4.0'
buildcraft.addItem new Item name:'Stone Gear', recipes:[''] buildcraft.addItem new Item name:'Stone Gear', recipes:['']
@@ -70,6 +71,34 @@ describe 'ModPack', ->
item = modPack.findItemByName 'Stone Gear', includeDisabled:true item = modPack.findItemByName 'Stone Gear', includeDisabled:true
item.name.should.equal 'Stone Gear' item.name.should.equal 'Stone Gear'
describe 'findItemDisplay', ->
it 'returns all data for a regular Minecraft item', ->
display = modPack.findItemDisplay 'bed'
display.iconUrl.should.equal '/data/minecraft/images/bed.png'
display.itemUrl.should.equal '/item/Bed'
display.itemName.should.equal 'Bed'
display.modSlug.should.equal 'minecraft'
it 'returns all data for an item in an enabled mod', ->
buildcraft.enabled = true
display = modPack.findItemDisplay 'stone_gear'
display.iconUrl.should.equal '/data/buildcraft/images/stone_gear.png'
display.itemUrl.should.equal '/item/Stone%20Gear'
display.itemName.should.equal 'Stone Gear'
display.modSlug.should.equal 'buildcraft'
it 'returns data even for a disabled mod', ->
display = modPack.findItemDisplay 'stone_gear'
display.itemName.should.equal 'Stone Gear'
it 'assumes an unfound item is from Minecraft', ->
display = modPack.findItemDisplay 'iron_chestplate'
display.iconUrl.should.equal '/data/minecraft/images/iron_chestplate.png'
display.itemUrl.should.equal '/item/Iron%20Chestplate'
display.itemName.should.equal 'Iron Chestplate'
display.modSlug.should.equal 'minecraft'
describe 'gatherRecipeNames', -> describe 'gatherRecipeNames', ->
it 'finds all registered item names', -> it 'finds all registered item names', ->