From c4709c28bd035bb22ba7b35700da2c4706ac7813 Mon Sep 17 00:00:00 2001 From: Andrew Miner Date: Sun, 18 Aug 2013 01:13:32 -0700 Subject: [PATCH] Added initial version of styling to the UI --- .gitignore | 1 + html/crafting.js | 111 +++++++++---- html/css/960.css | 1 + html/css/main.css | 19 +++ html/css/reset.css | 1 + html/css/text.css | 1 + html/data/buildcraft.json | 140 ++++++++++++++++ html/data/vanilla.json | 259 ++++++++++++++++++++++++++++-- html/images/bedrock.png | Bin 0 -> 469 bytes html/images/bookshelf.png | Bin 0 -> 610 bytes html/images/chest.png | Bin 0 -> 6167 bytes html/images/ctm.png | Bin 0 -> 20423 bytes html/images/dirt.png | Bin 0 -> 1138 bytes html/images/grass_side.png | Bin 0 -> 1429 bytes html/images/ice.png | Bin 0 -> 206 bytes html/images/stone_brick.png | Bin 0 -> 860 bytes html/images/stone_brick_light.png | Bin 0 -> 9246 bytes html/images/workbench_front.png | Bin 0 -> 801 bytes html/index.html | 81 +++++----- 19 files changed, 532 insertions(+), 82 deletions(-) create mode 100644 .gitignore create mode 100755 html/css/960.css create mode 100644 html/css/main.css create mode 100755 html/css/reset.css create mode 100755 html/css/text.css create mode 100644 html/data/buildcraft.json create mode 100755 html/images/bedrock.png create mode 100755 html/images/bookshelf.png create mode 100755 html/images/chest.png create mode 100755 html/images/ctm.png create mode 100755 html/images/dirt.png create mode 100755 html/images/grass_side.png create mode 100755 html/images/ice.png create mode 100755 html/images/stone_brick.png create mode 100755 html/images/stone_brick_light.png create mode 100755 html/images/workbench_front.png diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..e43b0f988 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store diff --git a/html/crafting.js b/html/crafting.js index 56cbe057d..1fd845819 100644 --- a/html/crafting.js +++ b/html/crafting.js @@ -3,18 +3,22 @@ var FADE_DURATION = 250; // ms var ERROR_DISPLAY_DURATION = 5000; // ms +// Global Variables /////////////////////////////////////////////////////////////////////////////////////////////////// + +var __recipebooks = []; + // UI Functions /////////////////////////////////////////////////////////////////////////////////////////////////////// -function onPageLoad() { - $("#recipe_load_button").click(onRecipeLoadButtonClicked); +$(function() { + $("#recipebook_load_button").click(onRecipeLoadButtonClicked); $("#crafting_selector").change(onCraftingSelectorChanged); - loadRecipes("data/vanilla.json"); -} + loadRecipebook("data/vanilla.json"); +}); function onCraftingSelectorChanged() { var recipeName = $("#crafting_selector option:selected").val(); - var recipe = __recipes[recipeName]; + var recipe = findRecipe(recipeName); if (recipe === undefined) { $("#crafting_error").html("Cannot find recipe for " + recipeName); $("#crafting_error").fadeIn(FADE_DURATION).delay(ERROR_DISPLAY_DURATION).fadeOut(FADE_DURATION); @@ -28,24 +32,30 @@ function onCraftingSelectorChanged() { } function onRecipeLoadButtonClicked() { - loadRecipes($("#recipe_url").val()); + $("#reipebook_load_button").attr("disabled", true); + loadRecipebook($("#recipebook_url").val(), function() { + $("#recipebook_url").val(""); + $("#reipebook_load_button").removeAttr("disabled"); + }); } // UI Helper Functions //////////////////////////////////////////////////////////////////////////////////////////////// -function loadRecipes(recipeUrl) { +function loadRecipebook(recipebookUrl, onSuccess) { $.ajax({ - url: recipeUrl, + url: recipebookUrl, dataType: "text", - success: function(data) { + success: function(text) { try { - recipeData = $.parseJSON(data)["recipes"]; - __recipes = parseRecipeData(recipeData); - $("#loaded_recipes ul").append("
  • " + recipeUrl + "
  • "); - $("#loaded_recipes").fadeIn(FADE_DURATION); + var recipebook = createRecipebook(recipebookUrl, $.parseJSON(text)); + __recipebooks.push(recipebook); + + recipebook.asTableRow().insertBefore($("#recipebook_table tr").last()); updateCraftingSelector(); $("#crafting").fadeIn(FADE_DURATION); + + if (onSuccess !== undefined) onSuccess(); } catch (e) { $("#load_error").html(e); $("#load_error").slideDown(FADE_DURATION).delay(ERROR_DISPLAY_DURATION).slideUp(FADE_DURATION); @@ -60,13 +70,20 @@ function loadRecipes(recipeUrl) { function updateCraftingSelector() { var $selector = $("#crafting_selector"); - if (__recipes.length == 0) { + $selector.html(""); + + if (__recipebooks.length == 0) { $selector.attr("disabled", "disabled"); + $selector.html(""); } else { - for (var name in __recipes) { - if (!__recipes.hasOwnProperty(name)) continue; - $selector.append(""); - } + $(__recipebooks).each(function(i, recipebook) { + var $optgroup = $(""); + $selector.append($optgroup); + + for (var name in recipebook.recipes) { + $optgroup.append(""); + } + }); $selector.removeAttr("disabled"); } } @@ -116,17 +133,6 @@ function createManifest() { // Recipe Object ////////////////////////////////////////////////////////////////////////////////////////////////////// -function parseRecipeData(recipeData) { - var recipes = {}; - $.each(recipeData, function(i, data) { - var recipe = createRecipe(data); - $.each(recipe.output, function(j, output) { - recipes[output.name] = recipe - }); - }); - return recipes; -} - function createRecipe(data) { var object = {output: [], input: [], tools: data.tools}; @@ -146,7 +152,7 @@ function createRecipe(data) { var queue = []; function craftItem(ingredient) { - var recipe = __recipes[ingredient.name]; + var recipe = findRecipe(ingredient.name); if (recipe === undefined) { missingMaterials.add(1, ingredient.name); ingredient.count -= 1 @@ -159,7 +165,12 @@ function createRecipe(data) { }); $.each(recipe.tools, function(j, tool) { if (! inventory.contains(1, tool)) { - craftItem({count: 1, name: tool}); + if (findRecipe(tool) === undefined) { + inventory.add(1, tool); + missingMaterials.add(1, tool); + } else { + craftItem({count: 1, name: tool}); + } } }); } @@ -185,3 +196,41 @@ function createRecipe(data) { return object; } + +// RecipeBook Object ////////////////////////////////////////////////////////////////////////////////////////////////// + +function createRecipebook(sourceUrl, data) { + var object = { + name: data.name, + description: data.description, + sourceUrl: sourceUrl, + recipes: {} + }; + + $(data.recipes).each(function(i, data) { + var recipe = createRecipe(data); + $(recipe.output).each(function(j, output) { + object.recipes[output.name] = recipe + }); + }); + + object.asTableRow = function() { + return $( + "" + + "" + object.name + "" + + "" + object.description + "" + + "" + ); + }; + + return object; +} + +function findRecipe(name) { + for (var i = 0; i < __recipebooks.length; i++) { + var recipe = __recipebooks[i].recipes[name]; + if (recipe !== undefined) return recipe; + } + return undefined; +} + diff --git a/html/css/960.css b/html/css/960.css new file mode 100755 index 000000000..635d7ba5f --- /dev/null +++ b/html/css/960.css @@ -0,0 +1 @@ +body{min-width:960px}.container_12,.container_16{margin-left:auto;margin-right:auto;width:960px}.grid_1,.grid_2,.grid_3,.grid_4,.grid_5,.grid_6,.grid_7,.grid_8,.grid_9,.grid_10,.grid_11,.grid_12,.grid_13,.grid_14,.grid_15,.grid_16{display:inline;float:left;margin-left:10px;margin-right:10px}.push_1,.pull_1,.push_2,.pull_2,.push_3,.pull_3,.push_4,.pull_4,.push_5,.pull_5,.push_6,.pull_6,.push_7,.pull_7,.push_8,.pull_8,.push_9,.pull_9,.push_10,.pull_10,.push_11,.pull_11,.push_12,.pull_12,.push_13,.pull_13,.push_14,.pull_14,.push_15,.pull_15{position:relative}.container_12 .grid_3,.container_16 .grid_4{width:220px}.container_12 .grid_6,.container_16 .grid_8{width:460px}.container_12 .grid_9,.container_16 .grid_12{width:700px}.container_12 .grid_12,.container_16 .grid_16{width:940px}.alpha{margin-left:0}.omega{margin-right:0}.container_12 .grid_1{width:60px}.container_12 .grid_2{width:140px}.container_12 .grid_4{width:300px}.container_12 .grid_5{width:380px}.container_12 .grid_7{width:540px}.container_12 .grid_8{width:620px}.container_12 .grid_10{width:780px}.container_12 .grid_11{width:860px}.container_16 .grid_1{width:40px}.container_16 .grid_2{width:100px}.container_16 .grid_3{width:160px}.container_16 .grid_5{width:280px}.container_16 .grid_6{width:340px}.container_16 .grid_7{width:400px}.container_16 .grid_9{width:520px}.container_16 .grid_10{width:580px}.container_16 .grid_11{width:640px}.container_16 .grid_13{width:760px}.container_16 .grid_14{width:820px}.container_16 .grid_15{width:880px}.container_12 .prefix_3,.container_16 .prefix_4{padding-left:240px}.container_12 .prefix_6,.container_16 .prefix_8{padding-left:480px}.container_12 .prefix_9,.container_16 .prefix_12{padding-left:720px}.container_12 .prefix_1{padding-left:80px}.container_12 .prefix_2{padding-left:160px}.container_12 .prefix_4{padding-left:320px}.container_12 .prefix_5{padding-left:400px}.container_12 .prefix_7{padding-left:560px}.container_12 .prefix_8{padding-left:640px}.container_12 .prefix_10{padding-left:800px}.container_12 .prefix_11{padding-left:880px}.container_16 .prefix_1{padding-left:60px}.container_16 .prefix_2{padding-left:120px}.container_16 .prefix_3{padding-left:180px}.container_16 .prefix_5{padding-left:300px}.container_16 .prefix_6{padding-left:360px}.container_16 .prefix_7{padding-left:420px}.container_16 .prefix_9{padding-left:540px}.container_16 .prefix_10{padding-left:600px}.container_16 .prefix_11{padding-left:660px}.container_16 .prefix_13{padding-left:780px}.container_16 .prefix_14{padding-left:840px}.container_16 .prefix_15{padding-left:900px}.container_12 .suffix_3,.container_16 .suffix_4{padding-right:240px}.container_12 .suffix_6,.container_16 .suffix_8{padding-right:480px}.container_12 .suffix_9,.container_16 .suffix_12{padding-right:720px}.container_12 .suffix_1{padding-right:80px}.container_12 .suffix_2{padding-right:160px}.container_12 .suffix_4{padding-right:320px}.container_12 .suffix_5{padding-right:400px}.container_12 .suffix_7{padding-right:560px}.container_12 .suffix_8{padding-right:640px}.container_12 .suffix_10{padding-right:800px}.container_12 .suffix_11{padding-right:880px}.container_16 .suffix_1{padding-right:60px}.container_16 .suffix_2{padding-right:120px}.container_16 .suffix_3{padding-right:180px}.container_16 .suffix_5{padding-right:300px}.container_16 .suffix_6{padding-right:360px}.container_16 .suffix_7{padding-right:420px}.container_16 .suffix_9{padding-right:540px}.container_16 .suffix_10{padding-right:600px}.container_16 .suffix_11{padding-right:660px}.container_16 .suffix_13{padding-right:780px}.container_16 .suffix_14{padding-right:840px}.container_16 .suffix_15{padding-right:900px}.container_12 .push_3,.container_16 .push_4{left:240px}.container_12 .push_6,.container_16 .push_8{left:480px}.container_12 .push_9,.container_16 .push_12{left:720px}.container_12 .push_1{left:80px}.container_12 .push_2{left:160px}.container_12 .push_4{left:320px}.container_12 .push_5{left:400px}.container_12 .push_7{left:560px}.container_12 .push_8{left:640px}.container_12 .push_10{left:800px}.container_12 .push_11{left:880px}.container_16 .push_1{left:60px}.container_16 .push_2{left:120px}.container_16 .push_3{left:180px}.container_16 .push_5{left:300px}.container_16 .push_6{left:360px}.container_16 .push_7{left:420px}.container_16 .push_9{left:540px}.container_16 .push_10{left:600px}.container_16 .push_11{left:660px}.container_16 .push_13{left:780px}.container_16 .push_14{left:840px}.container_16 .push_15{left:900px}.container_12 .pull_3,.container_16 .pull_4{left:-240px}.container_12 .pull_6,.container_16 .pull_8{left:-480px}.container_12 .pull_9,.container_16 .pull_12{left:-720px}.container_12 .pull_1{left:-80px}.container_12 .pull_2{left:-160px}.container_12 .pull_4{left:-320px}.container_12 .pull_5{left:-400px}.container_12 .pull_7{left:-560px}.container_12 .pull_8{left:-640px}.container_12 .pull_10{left:-800px}.container_12 .pull_11{left:-880px}.container_16 .pull_1{left:-60px}.container_16 .pull_2{left:-120px}.container_16 .pull_3{left:-180px}.container_16 .pull_5{left:-300px}.container_16 .pull_6{left:-360px}.container_16 .pull_7{left:-420px}.container_16 .pull_9{left:-540px}.container_16 .pull_10{left:-600px}.container_16 .pull_11{left:-660px}.container_16 .pull_13{left:-780px}.container_16 .pull_14{left:-840px}.container_16 .pull_15{left:-900px}.clear{clear:both;display:block;overflow:hidden;visibility:hidden;width:0;height:0}.clearfix:before,.clearfix:after,.container_12:before,.container_12:after,.container_16:before,.container_16:after{content:'.';display:block;overflow:hidden;visibility:hidden;font-size:0;line-height:0;width:0;height:0}.clearfix:after,.container_12:after,.container_16:after{clear:both}.clearfix,.container_12,.container_16{zoom:1} \ No newline at end of file diff --git a/html/css/main.css b/html/css/main.css new file mode 100644 index 000000000..02331ea39 --- /dev/null +++ b/html/css/main.css @@ -0,0 +1,19 @@ +.disabled { color: gray; } +.centered { text-align: center; } +.error { color: red; display: none; font-weight: bold; width: 100%; } +.hidden { display: none; } +.padded { margin: 10px; } + +body { background: url("../images/ice.png"); margin-bottom: 100px; } +h1 { font-family: 'Press Start 2P', cursive; margin-left: 10px; } +h1 img { height: 64px; width: 64px; vertical-align: bottom; } +p { margin-left: 10px; margin-right: 10px; } + +#body { background: rgba(230, 230, 230, 0.90); box-shadow: 10px 10px 20px #666; margin-top: 50px; } +#header { background: url("../images/stone_brick_light.png"); height: 64px; } +#header img { height: 96px; width: 96px; margin-left: -32px; margin-top: -32px; } +#header_border { background: url("../images/stone_brick.png"); height: 32px; margin-bottom: 32px; } +#recipebook_load_button { margin-left: 5px; width: 60px; } +#recipebook_table { margin-left: 10px; width: 920px; } +#recipebook_table td { background: #f8f8f8; border-left: 1px solid #bbb; padding: 10px; } +#recipebook_url { width: 600px; } diff --git a/html/css/reset.css b/html/css/reset.css new file mode 100755 index 000000000..6e42b6e04 --- /dev/null +++ b/html/css/reset.css @@ -0,0 +1 @@ +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,dialog,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,meter,nav,object,ol,output,p,pre,progress,q,rp,rt,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video,xmp{border:0;margin:0;padding:0;font-size:100%}html,body{height:100%}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}b,strong{font-weight:bold}img{color:transparent;font-size:0;vertical-align:middle;-ms-interpolation-mode:bicubic}ol,ul{list-style:none}li{display:list-item}table{border-collapse:collapse;border-spacing:0}th,td,caption{font-weight:normal;vertical-align:top;text-align:left}q{quotes:none}q:before,q:after{content:'';content:none}sub,sup,small{font-size:75%}sub,sup{line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}svg{overflow:hidden} \ No newline at end of file diff --git a/html/css/text.css b/html/css/text.css new file mode 100755 index 000000000..a136b541e --- /dev/null +++ b/html/css/text.css @@ -0,0 +1 @@ +body{font:13px/1.5 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif}pre,code{font-family:'DejaVu Sans Mono',Menlo,Consolas,monospace}hr{border:0 #ccc solid;border-top-width:1px;clear:both;height:0}h1{font-size:25px}h2{font-size:23px}h3{font-size:21px}h4{font-size:19px}h5{font-size:17px}h6{font-size:15px}ol{list-style:decimal}ul{list-style:disc}li{margin-left:30px}p,dl,hr,h1,h2,h3,h4,h5,h6,ol,ul,pre,table,address,fieldset,figure{margin-bottom:20px} \ No newline at end of file diff --git a/html/data/buildcraft.json b/html/data/buildcraft.json new file mode 100644 index 000000000..4390c2fd9 --- /dev/null +++ b/html/data/buildcraft.json @@ -0,0 +1,140 @@ +{ + "name": "BuildCraft", + "description": "Crafting recipes from BuildCraft 3, by SpaceToad", + "recipes": [ + { + "output": [[1, "Wooden Pipe"]], + "input": [[2, "Oak Plank"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Cobblestone Pipe"]], + "input": [[2, "Cobblestone"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Stone Pipe"]], + "input": [[2, "Stone"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Iron Pipe"]], + "input": [[2, "Iron Ingot"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Pipe"]], + "input": [[2, "Gold Ingot"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Diamond Pipe"]], + "input": [[2, "Diamond"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Obsidian Pipe"]], + "input": [[2, "Obsidian"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Sandstone Pipe"]], + "input": [[2, "Sandstone"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Emerald Pipe"]], + "input": [[2, "Emerald"], [1, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Wooden Conductive Pipe"]], + "input": [[1, "Wooden Pipe"], [1, "Redstone"]], + "tools": [] + }, { + "output": [[1, "Cobblestone Conductive Pipe"]], + "input": [[1, "Cobblestone Pipe"], [1, "Redstone"]], + "tools": [] + }, { + "output": [[1, "Stone Conductive Pipe"]], + "input": [[1, "Stone Pipe"], [1, "Redstone"]], + "tools": [] + }, { + "output": [[1, "Gold Conductive Pipe"]], + "input": [[1, "Gold Pipe"], [1, "Redstone"]], + "tools": [] + }, { + "output": [[1, "Diamond Conductive Pipe"]], + "input": [[1, "Diamond Pipe"], [1, "Redstone"]], + "tools": [] + }, { + "output": [[1, "Stripe Pipe"]], + "input": [[1, "Ink Sac"], [1, "Glass"], [1, "Dandelion Yellow"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Void Pipe"]], + "input": [[1, "Ink Sac"], [1, "Glass"], [1, "Redstone"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Structure Pipe"]], + "input": [[1, "Cobblestone Pipe"], [1, "Gravel"]], + "tools": [] + }, { + "output": [[1, "Wooden Gear"]], + "input": [[4, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Cobblestone Gear"]], + "input": [[1, "Wooden Gear"], [4, "Cobblestone"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Iron Gear"]], + "input": [[1, "Cobblestone Gear"], [4, "Iron Ingot"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Gear"]], + "input": [[1, "Iron Gear"], [4, "Gold Ingot"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Diamond Gear"]], + "input": [[1, "Gold Gear"], [4, "Diamond"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Mining Well"]], + "input": [[6, "Iron Ingot"], [1, "Iron Gear"], [1, "Iron Pickaxe"], [1, "Redstone"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Tank"]], + "input": [[8, "Glass"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Pump"]], + "input": [[6, "Mining Well"], [1, "Tank"]], + "tools": [] + }, { + "output": [[1, "Landmark"]], + "input": [[1, "Redstone Torch"], [1, "Lapis Lazuli"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Redstone Engine"]], + "input": [[3, "Oak Plank"], [2, "Wooden Gear"], [1, "Glass"], [1, "Piston"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Stirling Engine"]], + "input": [[3, "Cobblestone"], [2, "Cobblestone Gear"], [1, "Glass"], [1, "Piston"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Combustion Engine"]], + "input": [[3, "Iron Ingot"], [2, "Iron Gear"], [1, "Glass"], [1, "Piston"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Chute"]], + "input": [[5, "Iron Ingot"], [1, "Cobblestone Gear"], [1, "Chest"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Quarry"]], + "input": [[3, "Iron Gear"], [2, "Gold Gear"], [2, "Diamond Gear"], [1, "Diamond Pickaxe"], [1, "Redstone"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Automatic Crafting Table"]], + "input": [[4, "Wooden Gear"], [1, "Crafting Table"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Filler"]], + "input": [[2, "Dandelion Yellow"], [2, "Ink Sac"], [1, "Landmark"], [1, "Chest"], [1, "Crafting Table"], [2, "Gold Gear"]], + "tools": ["Crafting Table"] + } + ] +} + diff --git a/html/data/vanilla.json b/html/data/vanilla.json index 8b0573d4f..a862a312c 100644 --- a/html/data/vanilla.json +++ b/html/data/vanilla.json @@ -1,24 +1,161 @@ - { + "name": "Vanilla Recipes", + "description": "Crafting recipes from vanilla Minecraft", "recipes": [ { + "output": [[1, "Baked Potato"]], + "input": [[1, "Potato"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { "output": [[1, "Boat"]], "input": [[5, "Oak Plank"]], "tools": ["Crafting Table"] + }, { + "output": [[3, "Bone Meal"]], + "input": [[1, "Bone"]], + "tools": [] + }, { + "output": [[1, "Book"]], + "input": [[1, "Leather"], [3, "Paper"]], + "tools": [] + }, { + "output": [[1, "Bookshelf"]], + "input": [[6, "Oak Plank"], [3, "Book"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Bowl"]], + "input": [[3, "Oak Plank"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Bread"]], + "input": [[3, "Wheat"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Brick"]], + "input": [[1, "Clay"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Bucket"]], + "input": [[3, "Iron Ingot"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Cactus Green"]], + "input": [[1, "Cactus"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Cake"]], + "input": [[3, "Milk"], [2, "Sugar"], [3, "Wheat"], [1, "Egg"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Chest"]], + "input": [[8, "Oak Plank"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Cooked Chicken"]], + "input": [[1, "Raw Chicken"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Cooked Fish"]], + "input": [[1, "Raw Fish"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Cooked Porkchop"]], + "input": [[1, "Raw Porkchop"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Cookie"]], + "input": [[1, "Cocoa Beans"], [2, "Wheat"]], + "tools": ["Crafting Table"] }, { "output": [[1, "Crafting Table"]], "input": [[4, "Oak Plank"]], "tools": [] + }, { + "output": [[2, "Cyan Dye"]], + "input": [[1, "Cactus Green"], [1, "Lapis Lazuli"]], + "tools": [] + }, { + "output": [[2, "Dandelion Yellow"]], + "input": [[1, "Dandelion"]], + "tools": [] + }, { + "output": [[1, "Diamond Axe"]], + "input": [[3, "Diamond"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Diamond Hoe"]], + "input": [[2, "Diamond"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Diamond Pickaxe"]], + "input": [[3, "Diamond"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Diamond Sword"]], + "input": [[2, "Diamond"], [1, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Eye of Ender"]], + "input": [[1, "Ender Pearl"], [1, "Blaze Powder"]], + "tools": [] + }, { + "output": [[1, "Fermented Spider Eye"]], + "input": [[1, "Spider Eye"], [1, "Brown Mushroom"], [1, "Sugar"]], + "tools": [] }, { "output": [[1, "Furnace"]], "input": [[8, "Cobblestone"]], "tools": ["Crafting Table"] }, { - "output": [[1, "Iron Ingot"]], - "input": [[1, "Iron Ore"], [1, "Furnace Fuel"]], + "output": [[1, "Glass"]], + "input": [[1, "Sand"], [125, "milli-coal"]], "tools": ["Furnace"] }, { - "output": [[1, "Iron Ax"]], + "output": [[3, "Glass Bottle"]], + "input": [[3, "Glass"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Glistering Melon"]], + "input": [[1, "Melon"], [9, "Gold Nugget"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Axe"]], + "input": [[3, "Gold Ingot"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Hoe"]], + "input": [[2, "Gold Ingot"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Ingot"]], + "input": [[1, "Gold Ore"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[9, "Gold Nugget"]], + "input": [[1, "Gold Ingot"]], + "tools": [] + }, { + "output": [[1, "Gold Pickaxe"]], + "input": [[3, "Gold Ingot"], [2, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Gold Sword"]], + "input": [[2, "Gold Ingot"], [1, "Stick"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Golden Apple"]], + "input": [[9, "Gold Ingot"], [1, "Apple"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Golden Carrot"]], + "input": [[8, "Gold Nugget"], [1, "Carrot"]], + "tools": ["Crafting Table"] + }, { + "output": [[2, "Gray Dye"]], + "input": [[1, "Bone Meal"], [1, "Ink Sac"]], + "tools": [] + }, { + "output": [[1, "Iron Axe"]], "input": [[3, "Iron Ingot"], [2, "Stick"]], "tools": ["Crafting Table"] }, { @@ -26,23 +163,127 @@ "input": [[2, "Iron Ingot"], [2, "Stick"]], "tools": ["Crafting Table"] }, { - "output": [[1, "Iron Pick"]], + "output": [[1, "Iron Ingot"]], + "input": [[1, "Iron Ore"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[9, "Iron Nugget"]], + "input": [[1, "Iron Ingot"]], + "tools": [] + }, { + "output": [[1, "Iron Pickaxe"]], "input": [[3, "Iron Ingot"], [2, "Stick"]], "tools": ["Crafting Table"] }, { "output": [[1, "Iron Sword"]], "input": [[2, "Iron Ingot"], [1, "Stick"]], "tools": ["Crafting Table"] + }, { + "output": [[2, "Light Blue Dye"]], + "input": [[1, "Bone Meal"], [1, "Lapis Lazuli"]], + "tools": [] + }, { + "output": [[3, "Light Gray Dye"]], + "input": [[2, "Bone Meal"], [1, "Ink Sac"]], + "tools": [] + }, { + "output": [[2, "Light Gray Dye"]], + "input": [[1, "Bone Meal"], [1, "Gray Dye"]], + "tools": [] + }, { + "output": [[2, "Lime Dye"]], + "input": [[1, "Bone Meal"], [1, "Cactus Green"]], + "tools": [] + }, { + "output": [[2, "Magenta Dye"]], + "input": [[1, "Pink Dye"], [1, "Purple Dye"]], + "tools": [] + }, { + "output": [[3, "Magenta Dye"]], + "input": [[1, "Rose Red"], [1, "Pink Dye"], [1, "Lapis Lazuli"]], + "tools": [] + }, { + "output": [[4, "Magenta Dye"]], + "input": [[2, "Rose Red"], [1, "Bone Meal"], [1, "Lapis Lazuli"]], + "tools": [] + }, { + "output": [[1, "Magma Cream"]], + "input": [[1, "Slimeball"], [1, "Blaze Powder"]], + "tools": [] + }, { + "output": [[1, "Milk"]], + "input": [[1, "Bucket"]], + "tools": ["Cow"] + }, { + "output": [[1, "Mushroom Stew"]], + "input": [[1, "Bowl"], [1, "Red Mushroom"], [1, "Brown Mushroom"]], + "tools": [] + }, { + "output": [[1, "Nether Brick (item)"]], + "input": [[1, "Netherrack"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Nether Brick (block)"]], + "input": [[4, "Nether Brick (item)"]], + "tools": [] }, { "output": [[4, "Oak Plank"]], "input": [[1, "Oak Log"]], "tools": [] + }, { + "output": [[2, "Orange Dye"]], + "input": [[1, "Dandelion Yellow"], [1, "Rose Red"]], + "tools": [] + }, { + "output": [[3, "Paper"]], + "input": [[3, "Sugar Cane"]], + "tools": [] + }, { + "output": [[2, "Pink Dye"]], + "input": [[1, "Bone Meal"], [1, "Rose Red"]], + "tools": [] + }, { + "output": [[1, "Piston"]], + "input": [[4, "Cobblestone"], [3, "Oak Plank"], [1, "Iron Ingot"], [1, "Redstone"]], + "tools": ["Crafting Table"] + }, { + "output": [[1, "Pumpkin Pie"]], + "input": [[1, "Sugar"], [1, "Pumpkin"], [1, "Egg"]], + "tools": [] + }, { + "output": [[2, "Purple Dye"]], + "input": [[1, "Rose Red"], [1, "Lapis Lazuli"]], + "tools": [] + }, { + "output": [[1, "Redstone Torch"]], + "input": [[1, "Redstone"], [1, "Stick"]], + "tools": [] + }, { + "output": [[2, "Rose Red"]], + "input": [[1, "Rose"]], + "tools": [] + }, { + "output": [[1, "Steak"]], + "input": [[1, "Raw Beef"], [125, "milli-coal"]], + "tools": ["Furnace"] }, { "output": [[4, "Stick"]], "input": [[2, "Oak Plank"]], "tools": [] }, { - "output": [[1, "Stone Ax"]], + "output": [[1, "Sticky Piston"]], + "input": [[1, "Piston"], [1, "Slimeball"]], + "tools": [] + }, { + "output": [[1, "Sugar"]], + "input": [[1, "Sugar Cane"]], + "tools": [] + }, { + "output": [[1, "Stone"]], + "input": [[1, "Cobblestone"], [125, "milli-coal"]], + "tools": ["Furnace"] + }, { + "output": [[1, "Stone Axe"]], "input": [[3, "Cobblestone"], [2, "Stick"]], "tools": ["Crafting Table"] }, { @@ -50,7 +291,7 @@ "input": [[2, "Cobblestone"], [2, "Stick"]], "tools": ["Crafting Table"] }, { - "output": [[1, "Stone Pick"]], + "output": [[1, "Stone Pickaxe"]], "input": [[3, "Cobblestone"], [2, "Stick"]], "tools": ["Crafting Table"] }, { @@ -58,7 +299,7 @@ "input": [[2, "Cobblestone"], [1, "Stick"]], "tools": ["Crafting Table"] }, { - "output": [[1, "Wooden Ax"]], + "output": [[1, "Wooden Axe"]], "input": [[3, "Oak Plank"], [2, "Stick"]], "tools": ["Crafting Table"] }, { @@ -66,7 +307,7 @@ "input": [[2, "Oak Plank"], [2, "Stick"]], "tools": ["Crafting Table"] }, { - "output": [[1, "Wooden Pick"]], + "output": [[1, "Wooden Pickaxe"]], "input": [[3, "Oak Plank"], [2, "Stick"]], "tools": ["Crafting Table"] }, { diff --git a/html/images/bedrock.png b/html/images/bedrock.png new file mode 100755 index 0000000000000000000000000000000000000000..a2618b86db76551d02504dc2c9f8c7c680a79f04 GIT binary patch literal 469 zcmV;`0V@89P)a-U-W{C(!vVub1 zqQ&koRy0!pT@Wr>3xE=z?!{S(SP-$6EaogSQWaP%RQ5k)7T+17#i~Bf^RbRFWq?%* z5UgQd&>;d~IaZ8yfmlU()?O;VRgqF5Vg=agh)PKnTc)VO)TkX{I>3+#LoH`{QaShN zCzqoclhDpGq2@$Kq`rpHRQXu{PYQ7)#q3?iQfF640Wc73SUCgLJYel^OhTicPsFCv z9ZQH1KvhUe<5i@J8GAE!Rjw!B1nuvF36NNn%J;)STq?7us!^-vLRB}Ws-JyWu-Oqi zqO+#kWchfrjxnE72PQyNgq?1(&ZvzGixQT&w*LgcbRFyLkpBDup?&OLbR{~500000 LNkvXXu0mjfeHPA2 literal 0 HcmV?d00001 diff --git a/html/images/bookshelf.png b/html/images/bookshelf.png new file mode 100755 index 0000000000000000000000000000000000000000..896c30e19014a861572f279173219b586d1a79f9 GIT binary patch literal 610 zcmV-o0-gPdP)) zZvEd*@5u`<*Ie?N2IKHeQ*w9jlY1|B7wJ9Mz)4>ZJJzqfSD#6>8*6`TKz3$I2=Co=)-vF@nSjIFI8;w2ZN57Gs*M1^w{QaB0#X2V@j)d3FclcMmrlcH zDh2P!Bs>}h6f!BH#oZRrYCvZF!Vy5)s-kvIHva=ao&gFV1M31%a2-%v2D;rY zbUGbqx7%QvCK#0#0XT4Khw&13`w+jXintcQ!Dc=b0JOu;l|2I-K&4WFa=8qp zQVEL1qRmg;1`0r5P^|g0HhTti0q{+nvY-Rt`V|BXK(_$b#2OTM2Bg0ZfUgX2m5}=D z0EjanOK}(gVhe)Kfc&qW0sI!FuqNnA^&2DxwU4O1*-hNM;AVqzn+WZUs*l$gygkL><$fH@>nPjK9S0Jph5rmdW`GOK zbvrKrZk}K>&@4pZCO-z}xnCV+M`3S%#1jC&cc*59erQhtWPPy!@G}Vuz^VfnNEZMD zVxS-Zta)IN3`hW3Ze=<4y#<4w0Sf(L@Y^691fT6Y^2!OtM wK-Fb!MF@Mi{FV3WGj#^w=7QDbS#~b?2A&CuK34i}>Hq)$07*qoM6N<$f?!1f4gdfE literal 0 HcmV?d00001 diff --git a/html/images/chest.png b/html/images/chest.png new file mode 100755 index 0000000000000000000000000000000000000000..a205626f587397af702bbd23fbc01265674aae74 GIT binary patch literal 6167 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 literal 0 HcmV?d00001 diff --git a/html/images/dirt.png b/html/images/dirt.png new file mode 100755 index 0000000000000000000000000000000000000000..28f300b8a51295e27d31e765edb8f41961fc1d40 GIT binary patch literal 1138 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 Nv9z@){_W1g{{Y*m{?Gsb literal 0 HcmV?d00001 diff --git a/html/images/workbench_front.png b/html/images/workbench_front.png new file mode 100755 index 0000000000000000000000000000000000000000..ec3ba9bf82299c99117c8cf5a4762635b3213af8 GIT binary patch literal 801 zcmV++1K#|JP)Y`~h7`H(m7~Bs+gd z{>_vVIKz2o?wc7GC-aeaKi)m}-Fv6=cw@Er{`p{ui?df*3|~GfX20H-I3I2$(EqTO zI_m)29sIz+?Vk_DzrT}WcKx-)k8k7h{_^7}aU$mc)<7R*pp#I&K;i%%U>r~(hejfD z0RO>JHI&l}U7-U_z*-n`2N?GM(UUk(xAVK7#|b@*gc>J}3Q~A8J*-3}%z=n|;P;o; ziDHdJ6n2+&`BoHA0e7#Uf+w46OX%)l3>(0@-F`QL+DRhtcK>NH{WMAdCGQTNmG_R5 z@$=FF-19wU+&BSSl&_6|@0^@+r;r(Jub0Wkh>>sKwLgbBpon-^YQQ@kz`e`C76Vo||-K96%iIiwpvR2^>=OwEQ7?!n@MgkeNO|1^oPa@h zAdCRdvDN`P;PrvX)d5|Dn&1v_ZKV$QG4u#H1#HjS2O_FkdO42~d@Q02W~X%tjXatxW7fbymAql#yBAR0mlMuB?5Q{b%< zK%(I45uk#8uUj6&+$_P$s1$^~AlJ`n%z1_k9cY>dKv^vXb@M=7A$s^=r7{mhWgDfr zu@3kw5S?qU19X7$(cHj#fGZr}?9n(6 - + Crafting Guide + + + + + - -
    -

    Recipes

    -

    - - -

    -
    -

    Loaded recipes:

    -
      -
      -

      -
      -
      -

      Crafting

      - -
      -

      You'll need:

      -
        -

        You'll get:

        -
          -
          -
          -
          + +
          + +
           
          + +
          +

          Recipe Books

          + + + + + +
            + + +
          +

          +
          + + +
          -