diff --git a/src/pocketmine/inventory/CraftingManager.php b/src/pocketmine/inventory/CraftingManager.php index 41e1f2a63..06795986a 100644 --- a/src/pocketmine/inventory/CraftingManager.php +++ b/src/pocketmine/inventory/CraftingManager.php @@ -54,39 +54,34 @@ class CraftingManager{ $recipes = json_decode(file_get_contents(\pocketmine\RESOURCE_PATH . "vanilla" . DIRECTORY_SEPARATOR . "recipes.json"), true); $itemDeserializerFunc = \Closure::fromCallable([Item::class, 'jsonDeserialize']); - foreach($recipes as $recipe){ - switch($recipe["type"]){ - case "shapeless": - if($recipe["block"] !== "crafting_table"){ //TODO: filter others out for now to avoid breaking economics - break; - } - $this->registerShapelessRecipe(new ShapelessRecipe( - array_map($itemDeserializerFunc, $recipe["input"]), - array_map($itemDeserializerFunc, $recipe["output"]) - )); - break; - case "shaped": - if($recipe["block"] !== "crafting_table"){ //TODO: filter others out for now to avoid breaking economics - break; - } - $this->registerShapedRecipe(new ShapedRecipe( - $recipe["shape"], - array_map($itemDeserializerFunc, $recipe["input"]), - array_map($itemDeserializerFunc, $recipe["output"]) - )); - break; - case "smelting": - if($recipe["block"] !== "furnace"){ //TODO: filter others out for now to avoid breaking economics - break; - } - $this->registerFurnaceRecipe(new FurnaceRecipe( - Item::jsonDeserialize($recipe["output"]), - Item::jsonDeserialize($recipe["input"])) - ); - break; - default: - break; + + foreach($recipes["shapeless"] as $recipe){ + if($recipe["block"] !== "crafting_table"){ //TODO: filter others out for now to avoid breaking economics + continue; } + $this->registerShapelessRecipe(new ShapelessRecipe( + array_map($itemDeserializerFunc, $recipe["input"]), + array_map($itemDeserializerFunc, $recipe["output"]) + )); + } + foreach($recipes["shaped"] as $recipe){ + if($recipe["block"] !== "crafting_table"){ //TODO: filter others out for now to avoid breaking economics + continue; + } + $this->registerShapedRecipe(new ShapedRecipe( + $recipe["shape"], + array_map($itemDeserializerFunc, $recipe["input"]), + array_map($itemDeserializerFunc, $recipe["output"]) + )); + } + foreach($recipes["smelting"] as $recipe){ + if($recipe["block"] !== "furnace"){ //TODO: filter others out for now to avoid breaking economics + continue; + } + $this->registerFurnaceRecipe(new FurnaceRecipe( + Item::jsonDeserialize($recipe["output"]), + Item::jsonDeserialize($recipe["input"])) + ); } $this->buildCraftingDataCache(); diff --git a/src/pocketmine/resources/vanilla b/src/pocketmine/resources/vanilla index 43edcfde6..767676e2b 160000 --- a/src/pocketmine/resources/vanilla +++ b/src/pocketmine/resources/vanilla @@ -1 +1 @@ -Subproject commit 43edcfde6b9611b7c7d643be52332707cc10cd1b +Subproject commit 767676e2b97843072220bad719c076b169c28fd3