Switched to using JSON recipes
This commit is contained in:
parent
962f1d0db5
commit
93475aafd6
206 changed files with 3935 additions and 204 deletions
|
@ -33,204 +33,9 @@ public class ModCrafting
|
|||
public static void init()
|
||||
{
|
||||
addOreRegistration();
|
||||
addCraftingRecipies();
|
||||
addSmeltingRecipes();
|
||||
}
|
||||
|
||||
|
||||
private static void addCraftingRecipies()
|
||||
{
|
||||
|
||||
/*** Dyes ***/
|
||||
|
||||
// Flower1
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.SILVER.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.CLOVER));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.CYAN.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.SWAMPFLOWER));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.black_dye, 2), BlockBOPFlower.paging.getVariantItem(BOPFlowers.DEATHBLOOM));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.CYAN.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.GLOWFLOWER));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.LIGHT_BLUE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.BLUE_HYDRANGEA));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.ORANGE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.ORANGE_COSMOS));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.PINK.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.PINK_DAFFODIL));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.MAGENTA.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.WILDFLOWER));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.PURPLE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.VIOLET));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.white_dye, 2), BlockBOPFlower.paging.getVariantItem(BOPFlowers.WHITE_ANEMONE));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.black_dye, 2), BlockBOPFlower.paging.getVariantItem(BOPFlowers.ENDERLOTUS));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.RED.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.BROMELIAD));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.GRAY.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.WILTED_LILY));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.PINK.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.PINK_HIBISCUS));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.white_dye, 2), BlockBOPFlower.paging.getVariantItem(BOPFlowers.LILY_OF_THE_VALLEY));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.ORANGE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.BURNING_BLOSSOM));
|
||||
|
||||
// Flower 2
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.PURPLE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.LAVENDER));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.YELLOW.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.GOLDENROD));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.blue_dye, 2), BlockBOPFlower.paging.getVariantItem(BOPFlowers.BLUEBELLS));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.PINK.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.MINERS_DELIGHT));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.LIGHT_BLUE.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.ICY_IRIS));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.RED.getDyeDamage()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.ROSE));
|
||||
|
||||
// Others
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.GRAY.getDyeDamage()), new ItemStack(BOPItems.ash));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.LIME.getDyeDamage()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.GLOWSHROOM.ordinal()));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.brown_dye, 2), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.FLAT_MUSHROOM.ordinal()));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.blue_dye, 2), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.BLUE_MILK_CAP.ordinal()));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.brown_dye, 2), BlockBOPPlant.paging.getVariantItem(BOPPlants.CATTAIL));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.brown_dye, 2), ((BlockBOPDoublePlant)BOPBlocks.double_plant).getVariantItem(BlockBOPDoublePlant.DoublePlantType.TALL_CATTAIL));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.LIGHT_BLUE.getDyeDamage()), ((BlockBOPDoublePlant)BOPBlocks.double_plant).getVariantItem(BlockBOPDoublePlant.DoublePlantType.FLAX));
|
||||
addShapelessRecipe(new ItemStack(Items.DYE, 2, EnumDyeColor.RED.getDyeDamage()), BlockBOPPlant.paging.getVariantItem(BOPPlants.RAFFLESIA));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.brown_dye, 2), new ItemStack(BOPItems.pinecone));
|
||||
|
||||
/*** BOP brick and stone stairs and slabs ***/
|
||||
|
||||
for (BlockBOPHalfOtherSlab.SlabType slabType : BlockBOPHalfOtherSlab.SlabType.values())
|
||||
{
|
||||
BlockBOPHalfOtherSlab otherSlab = (BlockBOPHalfOtherSlab)BOPBlocks.other_slab;
|
||||
addShapedRecipe(otherSlab.getVariantItem(slabType, 6), "RRR", 'R', otherSlab.getFullBlockVariantItem(slabType));
|
||||
}
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.mud_brick_stairs, 4), " R", " RR", "RRR", 'R', BOPBlocks.mud_brick_block);
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.mud_brick_stairs, 4), "R ", "RR ", "RRR", 'R', BOPBlocks.mud_brick_block);
|
||||
|
||||
addShapedRecipe(new ItemStack(Blocks.TNT, 1), "GSG", "SGS", "GSG", 'S', BOPBlocks.white_sand, 'G', Items.GUNPOWDER);
|
||||
|
||||
// White Sandstone
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.white_sandstone_stairs, 4), " R", " RR", "RRR", 'R', BOPBlocks.white_sandstone);
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.white_sandstone_stairs, 4), "R ", "RR ", "RRR", 'R', BOPBlocks.white_sandstone);
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.white_sandstone, 1), "RR", "RR", 'R', BOPBlocks.white_sand);
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.white_sandstone, 4, BlockBOPWhiteSandstone.StoneType.SMOOTH.ordinal()), "RR", "RR", 'R', BOPBlocks.white_sandstone);
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.white_sandstone, 1, BlockBOPWhiteSandstone.StoneType.CHISELED.ordinal()), "R", "R", 'R', new ItemStack(BOPBlocks.other_slab, 1, BlockBOPHalfOtherSlab.SlabType.WHITE_SANDSTONE.ordinal()));
|
||||
|
||||
/*** Wood stairs and slabs ***/
|
||||
|
||||
// Make sticks from any BOP plank
|
||||
addShapedRecipe(new ItemStack(Items.STICK, 4), "#", "#", '#', BOPBlocks.planks_0);
|
||||
|
||||
// Note you can't make planks (and therefore doors, fences etc) from GIANT_FLOWER and DEAD logs
|
||||
|
||||
for (BOPWoods wood : BOPWoods.values())
|
||||
{
|
||||
if (!wood.hasPlanks()) {continue;}
|
||||
addShapelessRecipe(BlockBOPPlanks.paging.getVariantItem(wood, 4), BlockBOPLog.paging.getVariantItem(wood));
|
||||
addShapedRecipe(BlockBOPHalfWoodSlab.paging.getVariantItem(wood, 6), "###", '#', BlockBOPPlanks.paging.getVariantItem(wood));
|
||||
addShapedRecipe(new ItemStack(BlockBOPWoodStairs.getBlock(wood), 4), "# ", "## ", "###", '#', BlockBOPPlanks.paging.getVariantItem(wood));
|
||||
addShapedRecipe(new ItemStack(BlockBOPDoor.getBlock(wood).getDoorItem(), 3), "##", "##", "##", '#', BlockBOPPlanks.paging.getVariantItem(wood));
|
||||
addShapedRecipe(new ItemStack(BlockBOPFence.getBlock(wood), 3), "W#W", "W#W", '#', Items.STICK, 'W', BlockBOPPlanks.paging.getVariantItem(wood));
|
||||
addShapedRecipe(new ItemStack(BlockBOPFenceGate.getBlock(wood), 1), "#W#", "#W#", '#', Items.STICK, 'W', BlockBOPPlanks.paging.getVariantItem(wood));
|
||||
}
|
||||
|
||||
|
||||
/*** Gems and Gem Blocks ***/
|
||||
|
||||
for (BOPGems gem : BOPGems.values())
|
||||
{
|
||||
addShapelessRecipe(new ItemStack(BOPItems.gem, 9, gem.ordinal()), new ItemStack(BOPBlocks.gem_block, 1, gem.ordinal()));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.gem_block, 1, gem.ordinal()), "AAA", "AAA", "AAA", 'A', new ItemStack(BOPItems.gem, 1, gem.ordinal()));
|
||||
}
|
||||
|
||||
/*** Tools, weapons, armor ***/
|
||||
|
||||
/*** Biome Finder ***/
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPItems.biome_finder), " A ", "AOA", " A ", 'A', new ItemStack(BOPItems.gem, 1, BOPGems.AMETHYST.ordinal()), 'O', new ItemStack(BOPItems.terrestrial_artifact));
|
||||
addRecipe("biome_essence", new BiomeEssenceRecipe());
|
||||
|
||||
/*** Flower Basket ***/
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPItems.flower_basket), " S ", "S S", "SSS", 'S', "stickWood");
|
||||
|
||||
/*** Misc Others ***/
|
||||
|
||||
// Overgrown Netherrack
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK.ordinal()), "SSS", "SNS", "SSS", 'S', Items.WHEAT_SEEDS, 'N', Blocks.NETHERRACK);
|
||||
|
||||
// Cattail Wool
|
||||
addShapedRecipe(new ItemStack(Blocks.WOOL), "CCC", "CCC", "CCC", 'C', "plantCattail");
|
||||
|
||||
// Ash Coal
|
||||
addShapedRecipe(new ItemStack(Items.COAL), "AAA", "AAA", "AAA", 'A', new ItemStack(BOPItems.ash));
|
||||
|
||||
// Ash Block
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.ash_block), "AA", "AA", 'A', new ItemStack(BOPItems.ash));
|
||||
|
||||
// Mud Block
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.mud, 1), "MM", "MM", 'M', "ballMud");
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.mud), "dirt", new ItemStack(Items.WATER_BUCKET));
|
||||
|
||||
// Mud Brick Blcok
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.mud_brick_block), "MM", "MM", 'M', new ItemStack(BOPItems.mud_brick));
|
||||
|
||||
// Celestial Crystal Block
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.crystal), "CC", "CC", 'C', new ItemStack(BOPItems.crystal_shard));
|
||||
|
||||
//Coarse Dirts
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.LOAMY).withProperty(BlockBOPDirt.COARSE, true))), "GD", "DG", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.LOAMY.ordinal()));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.LOAMY).withProperty(BlockBOPDirt.COARSE, true))), "DG", "GD", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.LOAMY.ordinal()));
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SANDY).withProperty(BlockBOPDirt.COARSE, true))), "GD", "DG", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.SANDY.ordinal()));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SANDY).withProperty(BlockBOPDirt.COARSE, true))), "DG", "GD", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.SANDY.ordinal()));
|
||||
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY).withProperty(BlockBOPDirt.COARSE, true))), "GD", "DG", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.SILTY.ordinal()));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.dirt, 4, BOPBlocks.dirt.getMetaFromState(BOPBlocks.dirt.getDefaultState().withProperty(BlockBOPDirt.VARIANT, BlockBOPDirt.BOPDirtType.SILTY).withProperty(BlockBOPDirt.COARSE, true))), "DG", "GD", 'G', Blocks.GRAVEL, 'D', new ItemStack(BOPBlocks.dirt, 4, BlockBOPDirt.BOPDirtType.SILTY.ordinal()));
|
||||
|
||||
// Records
|
||||
addShapedRecipe(new ItemStack(BOPItems.record_wanderer), "TTT", "TRT", "TTT", 'T', BOPItems.terrestrial_artifact, 'R', "record");
|
||||
|
||||
// Bamboo Thatching
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.bamboo_thatching), "##", "##", '#', BOPBlocks.bamboo);
|
||||
|
||||
// Bamboo
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.bamboo, 8), " #", "# ", '#', new ItemStack(BOPBlocks.bamboo_thatching));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.bamboo, 8), "# ", " #", '#', new ItemStack(BOPBlocks.bamboo_thatching));
|
||||
|
||||
// Empty Jar
|
||||
addShapedRecipe(new ItemStack(BOPItems.jar_empty, 3, 0), "# #", "# #", "###", '#', Blocks.GLASS);
|
||||
|
||||
// Ambrosia
|
||||
addShapelessRecipe(new ItemStack(BOPItems.ambrosia), new ItemStack(BOPItems.pixie_dust), new ItemStack(Items.POTIONITEM, 1, 0), new ItemStack(BOPItems.ichor), new ItemStack(BOPBlocks.seaweed, 1, BlockBOPSeaweed.SeaweedType.KELP.ordinal()), BlockBOPPlant.paging.getVariantItem(BOPPlants.ROOT), new ItemStack(BOPItems.crystal_shard), new ItemStack(BOPItems.jar_filled, 1, ItemJarFilled.JarContents.HONEY.ordinal()), new ItemStack(BOPItems.berries), Items.SUGAR);
|
||||
|
||||
// Oranmental Artifact
|
||||
addShapelessRecipe(new ItemStack(BOPItems.terrestrial_artifact), new ItemStack(BOPItems.gem, 1, BOPGems.RUBY.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.TOPAZ.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.AMBER.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.PERIDOT.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.MALACHITE.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.SAPPHIRE.ordinal()), new ItemStack(BOPItems.gem, 1, BOPGems.TANZANITE.ordinal()), Items.EMERALD);
|
||||
|
||||
// Flesh Block
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.flesh), "##", "##", '#', new ItemStack(BOPItems.fleshchunk));
|
||||
|
||||
// Honeycombs
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.hive, 1, BlockBOPHive.HiveType.HONEYCOMB.ordinal()), "##", "##", '#', new ItemStack(BOPItems.honeycomb));
|
||||
addShapedRecipe(new ItemStack(BOPBlocks.hive, 1, BlockBOPHive.HiveType.FILLED_HONEYCOMB.ordinal()), "##", "##", '#', new ItemStack(BOPItems.filled_honeycomb));
|
||||
|
||||
// Food
|
||||
addShapelessRecipe(new ItemStack(BOPItems.shroompowder), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.TOADSTOOL.ordinal()));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.ricebowl), Items.BOWL, BlockBOPPlant.paging.getVariantItem(BOPPlants.WILDRICE));
|
||||
addShapelessRecipe(new ItemStack(BOPItems.saladfruit), Items.BOWL, BOPItems.peach, Items.APPLE, BOPItems.pear);
|
||||
addShapelessRecipe(new ItemStack(BOPItems.saladveggie), Items.BOWL, BOPItems.turnip, Items.CARROT, Items.POTATO);
|
||||
addShapelessRecipe(new ItemStack(BOPItems.saladshroom), Items.BOWL, new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.TOADSTOOL.ordinal()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.PORTOBELLO.ordinal()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.BLUE_MILK_CAP.ordinal()));
|
||||
|
||||
// Terrariums
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.FERN.ordinal()), "grass", new ItemStack(Blocks.TALLGRASS, 1, 2), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.MUSHROOM.ordinal()), "grass", new ItemStack(Blocks.RED_MUSHROOM), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.CACTUS.ordinal()), "grass", BlockBOPPlant.paging.getVariantItem(BOPPlants.TINYCACTUS), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.FLAX.ordinal()), "grass", ((BlockBOPDoublePlant)BOPBlocks.double_plant).getVariantItem(BlockBOPDoublePlant.DoublePlantType.FLAX), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.SAPLING.ordinal()), "grass", "treeSapling", new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.KORU.ordinal()), "grass", BlockBOPPlant.paging.getVariantItem(BOPPlants.KORU), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.FLOWER.ordinal()), "grass", new ItemStack(Blocks.RED_FLOWER), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.FLOWER.ordinal()), "grass", new ItemStack(Blocks.YELLOW_FLOWER), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.BAMBOO.ordinal()), new ItemStack(Blocks.DIRT, 1, 2), new ItemStack(BOPBlocks.bamboo), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.DEAD.ordinal()), "grass", new ItemStack(Blocks.DEADBUSH), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.GLOWSHROOM.ordinal()), new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.OVERGROWN_STONE.ordinal()), new ItemStack(BOPBlocks.mushroom, 1, BlockBOPMushroom.MushroomType.GLOWSHROOM.ordinal()), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.MYSTIC.ordinal()), "grass", BlockBOPFlower.paging.getVariantItem(BOPFlowers.GLOWFLOWER), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.OMINOUS.ordinal()), "grass", BlockBOPFlower.paging.getVariantItem(BOPFlowers.DEATHBLOOM), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.ORIGIN.ordinal()), new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.ORIGIN.ordinal()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.ROSE), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.WASTELAND.ordinal()), new ItemStack(BOPBlocks.dried_sand), BlockBOPFlower.paging.getVariantItem(BOPFlowers.WILTED_LILY), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.NETHER.ordinal()), new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.OVERGROWN_NETHERRACK.ordinal()), BlockBOPFlower.paging.getVariantItem(BOPFlowers.BURNING_BLOSSOM), new ItemStack(BOPItems.jar_empty));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.terrarium, 1, BlockBOPTerrarium.TerrariumType.ENDER.ordinal()), new ItemStack(BOPBlocks.grass, 1, BlockBOPGrass.BOPGrassType.SPECTRAL_MOSS.ordinal()), BlockBOPPlant.paging.getVariantItem(BOPPlants.SPECTRALFERN), new ItemStack(BOPItems.jar_empty));
|
||||
|
||||
// Vanilla convenience recipes
|
||||
addShapelessRecipe(new ItemStack(Blocks.SAND), new ItemStack(BOPBlocks.dried_sand), new ItemStack(Items.WATER_BUCKET));
|
||||
addShapelessRecipe(new ItemStack(BOPBlocks.plant_0, 1, BOPPlants.LEAFPILE.ordinal()), "treeLeaves");
|
||||
}
|
||||
|
||||
|
||||
private static void addSmeltingRecipes()
|
||||
{
|
||||
|
||||
|
|
|
@ -8,25 +8,49 @@
|
|||
package biomesoplenty.common.util.inventory;
|
||||
|
||||
import biomesoplenty.core.BiomesOPlenty;
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import com.google.gson.Gson;
|
||||
import com.google.gson.GsonBuilder;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.Item;
|
||||
import com.google.common.base.Charsets;
|
||||
import com.google.common.collect.*;
|
||||
import com.google.gson.*;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.item.crafting.*;
|
||||
import net.minecraft.util.NonNullList;
|
||||
import net.minecraft.util.ResourceLocation;
|
||||
import net.minecraftforge.common.crafting.CraftingHelper;
|
||||
import net.minecraftforge.fml.common.registry.GameData;
|
||||
import net.minecraftforge.oredict.OreIngredient;
|
||||
import org.apache.commons.io.FileUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* Utilities for adding recipes and generating
|
||||
* json files programmatically in 1.12+.
|
||||
*/
|
||||
public class CraftingUtil
|
||||
{
|
||||
private static final Gson SERIALIZER = new GsonBuilder().setPrettyPrinting().create();
|
||||
public static final File RECIPES_DIR = new File(BiomesOPlenty.configDirectory, "recipes");;
|
||||
|
||||
// We should no longer need this now we've switched over to JSON, however
|
||||
// it might be handy to keep around for future reference
|
||||
public static boolean doRegistration = false;
|
||||
public static boolean generateJson = false;
|
||||
|
||||
private static Map<OreIngredient, String> ingredientOreMap = Maps.newHashMap();
|
||||
|
||||
static
|
||||
{
|
||||
// remove any existing auto-generated recipe files
|
||||
try
|
||||
{
|
||||
FileUtils.deleteDirectory(RECIPES_DIR);
|
||||
RECIPES_DIR.mkdir();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
BiomesOPlenty.logger.error("Could not delete default biome config directory!");
|
||||
}
|
||||
}
|
||||
|
||||
public static void addShapelessRecipe(ItemStack output, Object... inputs)
|
||||
{
|
||||
|
@ -34,7 +58,14 @@ public class CraftingUtil
|
|||
|
||||
for (Object input : inputs)
|
||||
{
|
||||
ingredients.add(CraftingHelper.getIngredient(input));
|
||||
Ingredient ingredient = CraftingHelper.getIngredient(input);
|
||||
// keep track of the origin of ore ingredients since they don't do so themselves
|
||||
if (ingredient instanceof OreIngredient)
|
||||
{
|
||||
ingredientOreMap.put((OreIngredient)ingredient, (String)input);
|
||||
}
|
||||
|
||||
ingredients.add(ingredient);
|
||||
}
|
||||
|
||||
if (ingredients.isEmpty())
|
||||
|
@ -72,6 +103,26 @@ public class CraftingUtil
|
|||
|
||||
private static void registerRecipe(ResourceLocation location, IRecipe recipe)
|
||||
{
|
||||
// only generate json if enabled and it isn't a custom recipe implementation
|
||||
if (generateJson && (recipe instanceof ShapedRecipes || recipe instanceof ShapelessRecipes))
|
||||
{
|
||||
String json = createJsonRecipe(recipe);
|
||||
File recipeFile = new File(RECIPES_DIR, location.getResourcePath() + ".json");
|
||||
|
||||
try
|
||||
{
|
||||
FileUtils.writeStringToFile(recipeFile, json, Charsets.US_ASCII);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
BiomesOPlenty.logger.error("Could not write recipe to file " + recipeFile.getName());
|
||||
}
|
||||
}
|
||||
|
||||
// don't register if it has been disabled
|
||||
// mainly for debugging whilst switching to json files
|
||||
if (!doRegistration) return;
|
||||
|
||||
if (CraftingManager.REGISTRY.containsKey(location))
|
||||
{
|
||||
throw new IllegalStateException("Duplicate recipe ignored with ID " + location);
|
||||
|
@ -110,7 +161,14 @@ public class CraftingUtil
|
|||
}
|
||||
else if (obj instanceof Character)
|
||||
{
|
||||
key.put(((Character)obj).toString(), CraftingHelper.getIngredient(itr.next()));
|
||||
Object next = itr.next();
|
||||
Ingredient ingredient = CraftingHelper.getIngredient(next);
|
||||
// keep track of the origin of ore ingredients since they don't do so themselves
|
||||
if (ingredient instanceof OreIngredient)
|
||||
{
|
||||
ingredientOreMap.put((OreIngredient)ingredient, (String)next);
|
||||
}
|
||||
key.put(((Character)obj).toString(), ingredient);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -124,6 +182,8 @@ public class CraftingUtil
|
|||
private static ResourceLocation unusedLocForOutput(ItemStack output)
|
||||
{
|
||||
ResourceLocation baseLoc = new ResourceLocation(BiomesOPlenty.MOD_ID, output.getItem().getRegistryName().getResourcePath());
|
||||
// purely for generating some nicer names for json files
|
||||
//ResourceLocation baseLoc = new ResourceLocation(BiomesOPlenty.MOD_ID, output.getDisplayName().toLowerCase().replace(" ", "_"));
|
||||
ResourceLocation recipeLoc = baseLoc;
|
||||
int index = 0;
|
||||
|
||||
|
@ -136,4 +196,220 @@ public class CraftingUtil
|
|||
|
||||
return recipeLoc;
|
||||
}
|
||||
|
||||
private static String createJsonRecipe(IRecipe recipe)
|
||||
{
|
||||
JsonObject root = new JsonObject();
|
||||
|
||||
if (!recipe.getGroup().isEmpty())
|
||||
root.add("group", new JsonPrimitive(recipe.getGroup()));
|
||||
|
||||
if (recipe instanceof ShapedRecipes)
|
||||
{
|
||||
ShapedRecipes shapedRecipe = (ShapedRecipes)recipe;
|
||||
BiMap<String, Ingredient> keyMap = createShapedRecipeKey(recipe.getIngredients());
|
||||
String[] pattern = createShapedPattern(shapedRecipe, keyMap);
|
||||
|
||||
String type = "minecraft:crafting_shaped";
|
||||
|
||||
// create the pattern and add it to the generated json
|
||||
JsonArray patternJsonArray = new JsonArray();
|
||||
for (String row : pattern)
|
||||
{
|
||||
patternJsonArray.add(row);
|
||||
}
|
||||
|
||||
// create the key and add it to the generated json
|
||||
JsonObject keyObj = new JsonObject();
|
||||
for (String key : keyMap.keySet())
|
||||
{
|
||||
// get the ingredient for the corresponding key
|
||||
Ingredient ingredient = keyMap.get(key);
|
||||
|
||||
if (ingredient instanceof OreIngredient)
|
||||
{
|
||||
type = "forge:ore_shaped";
|
||||
}
|
||||
|
||||
// add the ingredient to the key map
|
||||
keyObj.add(key, createJsonIngredient(ingredient));
|
||||
}
|
||||
|
||||
// add in this order to look nice
|
||||
root.add("type", new JsonPrimitive(type));
|
||||
root.add("pattern", patternJsonArray);
|
||||
root.add("key", keyObj);
|
||||
}
|
||||
else if (recipe instanceof ShapelessRecipes)
|
||||
{
|
||||
String type = "minecraft:crafting_shapeless";
|
||||
|
||||
JsonArray ingredientsArray = new JsonArray();
|
||||
for (Ingredient ingredient : recipe.getIngredients())
|
||||
{
|
||||
// validate the ingredient - we only cover json generation for the cases we use
|
||||
if (ingredient.getMatchingStacks().length > 1 && !(ingredient instanceof OreIngredient))
|
||||
{
|
||||
throw new IllegalArgumentException("Cannot create key for ingredient matching multiple stacks!");
|
||||
}
|
||||
else if (ingredient.getMatchingStacks().length == 0)
|
||||
{
|
||||
// skip ingredients which are 'empty'
|
||||
continue;
|
||||
}
|
||||
|
||||
if (ingredient instanceof OreIngredient)
|
||||
{
|
||||
type = "forge:ore_shapeless";
|
||||
}
|
||||
|
||||
ingredientsArray.add(createJsonIngredient(ingredient));
|
||||
}
|
||||
|
||||
root.add("type", new JsonPrimitive(type));
|
||||
root.add("ingredients", ingredientsArray);
|
||||
}
|
||||
root.add("result", createJsonItemStack(recipe.getRecipeOutput()));
|
||||
|
||||
return SERIALIZER.toJson(root);
|
||||
}
|
||||
|
||||
private static JsonObject createJsonIngredient(Ingredient ingredient)
|
||||
{
|
||||
JsonObject ret;
|
||||
if (ingredient instanceof OreIngredient)
|
||||
{
|
||||
ret = new JsonObject();
|
||||
ret.add("type", new JsonPrimitive("forge:ore_dict"));
|
||||
ret.add("ore", new JsonPrimitive(ingredientOreMap.get(ingredient)));
|
||||
}
|
||||
else
|
||||
{
|
||||
ret = createJsonItemStack(ingredient.getMatchingStacks()[0]);
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static JsonObject createJsonItemStack(ItemStack stack)
|
||||
{
|
||||
JsonObject ret = new JsonObject();
|
||||
ret.add("item", new JsonPrimitive(stack.getItem().getRegistryName().toString()));
|
||||
if (stack.getCount() != 1) ret.add("count", new JsonPrimitive(stack.getCount()));
|
||||
if (stack.getMetadata() != 0 || stack.getHasSubtypes()) ret.add("data", new JsonPrimitive(stack.getMetadata()));
|
||||
return ret;
|
||||
}
|
||||
|
||||
private static String[] createShapedPattern(ShapedRecipes recipe, BiMap<String, Ingredient> keyMap)
|
||||
{
|
||||
String[] pattern = new String[recipe.recipeHeight];
|
||||
|
||||
// initialize the pattern rows
|
||||
for (int i = 0; i < pattern.length; i++)
|
||||
{
|
||||
pattern[i] = "";
|
||||
}
|
||||
|
||||
// don't bother with ore dict recipes yet
|
||||
if (keyMap.isEmpty())
|
||||
{
|
||||
return pattern;
|
||||
}
|
||||
|
||||
// iterate over the recipe ingredients
|
||||
for (int i = 0; i < recipe.getIngredients().size(); i++)
|
||||
{
|
||||
Ingredient ingredient = recipe.getIngredients().get(i);
|
||||
String key = " ";
|
||||
|
||||
if (ingredient.getMatchingStacks().length > 1 && !(ingredient instanceof OreIngredient))
|
||||
{
|
||||
throw new IllegalArgumentException("Cannot generate json for a recipe matching multiple stacks!");
|
||||
}
|
||||
else if (ingredient.getMatchingStacks().length != 0) // blank spaces just use the default key value
|
||||
{
|
||||
key = keyMap.inverse().get(ingredient);
|
||||
}
|
||||
|
||||
int row = i / recipe.recipeWidth;
|
||||
pattern[row] += key;
|
||||
}
|
||||
|
||||
return pattern;
|
||||
}
|
||||
|
||||
private static BiMap<String, Ingredient> createShapedRecipeKey(NonNullList<Ingredient> ingredients)
|
||||
{
|
||||
Set<Ingredient> ingredientsSet = Sets.newHashSet(ingredients);
|
||||
BiMap<String, Ingredient> key = HashBiMap.create();
|
||||
int fallbackCount = 0;
|
||||
|
||||
for (Ingredient ingredient : ingredientsSet)
|
||||
{
|
||||
// validate the ingredient - we only cover json generation for the cases we use
|
||||
if (ingredient.getMatchingStacks().length > 1 && !(ingredient instanceof OreIngredient))
|
||||
{
|
||||
throw new IllegalArgumentException("Cannot create key for ingredient matching multiple stacks!");
|
||||
}
|
||||
else if (ingredient.getMatchingStacks().length == 0)
|
||||
{
|
||||
// skip ingredients which are 'empty'
|
||||
continue;
|
||||
}
|
||||
|
||||
// default to using # (completely arbitrary)
|
||||
if (fallbackCount == 0)
|
||||
{
|
||||
key.put(getFallbackRecipeKey(fallbackCount), ingredient);
|
||||
fallbackCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
String letterKey = ingredient.getMatchingStacks()[0].getItem().getRegistryName().getResourcePath().substring(0, 1).toUpperCase();
|
||||
|
||||
if (!key.containsKey(letterKey))
|
||||
{
|
||||
key.put(letterKey, ingredient);
|
||||
}
|
||||
else
|
||||
{
|
||||
String fallbackKey = getFallbackRecipeKey(fallbackCount);
|
||||
|
||||
// this should never happen
|
||||
if (key.containsKey(fallbackKey))
|
||||
{
|
||||
throw new RuntimeException("Fallback key " + fallbackKey + " is already present!");
|
||||
}
|
||||
|
||||
key.put(fallbackKey, ingredient);
|
||||
fallbackCount++;
|
||||
}
|
||||
}
|
||||
|
||||
return key;
|
||||
}
|
||||
|
||||
private static String getFallbackRecipeKey(int index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case 1:
|
||||
return "*";
|
||||
case 2:
|
||||
return "@";
|
||||
case 3:
|
||||
return "%";
|
||||
case 4:
|
||||
return "+";
|
||||
case 5:
|
||||
return "-";
|
||||
case 6:
|
||||
return "~";
|
||||
case 7:
|
||||
return "=";
|
||||
case 8:
|
||||
return "?";
|
||||
default:
|
||||
return "#";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
14
src/main/resources/assets/biomesoplenty/recipes/amber.json
Normal file
14
src/main/resources/assets/biomesoplenty/recipes/amber.json
Normal file
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 7
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"count": 9,
|
||||
"data": 7
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:pixie_dust"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:potion"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:seaweed",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:plant_1",
|
||||
"data": 9
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:crystal_shard"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_filled",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:berries"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:sugar",
|
||||
"data": 32767
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:ambrosia"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:ash"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ash_block",
|
||||
"data": 0
|
||||
}
|
||||
}
|
18
src/main/resources/assets/biomesoplenty/recipes/bamboo.json
Normal file
18
src/main/resources/assets/biomesoplenty/recipes/bamboo.json
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" #",
|
||||
"# "
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:bamboo_thatching",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:bamboo",
|
||||
"count": 8,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
" #"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:bamboo_thatching",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:bamboo",
|
||||
"count": 8,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:dirt",
|
||||
"data": 2
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:bamboo",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:bamboo",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:bamboo_thatching",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
" # ",
|
||||
"#T#",
|
||||
" # "
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 0
|
||||
},
|
||||
"T": {
|
||||
"item": "biomesoplenty:terrestrial_artifact"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:biome_finder"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_0",
|
||||
"data": 2
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:black_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_0",
|
||||
"data": 10
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:black_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 7
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 7
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 5
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 5
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 2
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 6
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_1",
|
||||
"data": 2
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:blue_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:mushroom",
|
||||
"data": 2
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:blue_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:bowl",
|
||||
"data": 32767
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:plant_1",
|
||||
"data": 3
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:ricebowl"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:mushroom",
|
||||
"data": 4
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:brown_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:plant_1",
|
||||
"data": 4
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:brown_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:double_plant",
|
||||
"data": 1
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:brown_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:pinecone"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:brown_dye",
|
||||
"count": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:plant_1",
|
||||
"data": 6
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 2
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:crystal_shard"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:crystal",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:cherry_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#S#",
|
||||
"#S#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 1
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:cherry_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"S#S",
|
||||
"S#S"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 1
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:cherry_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_0",
|
||||
"data": 5
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_0",
|
||||
"count": 6,
|
||||
"data": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:cherry_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#",
|
||||
"#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:other_slab",
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:white_sandstone",
|
||||
"data": 1
|
||||
}
|
||||
}
|
17
src/main/resources/assets/biomesoplenty/recipes/coal.json
Normal file
17
src/main/resources/assets/biomesoplenty/recipes/coal.json
Normal file
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###",
|
||||
"###",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:ash"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "minecraft:coal",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#D",
|
||||
"D#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
},
|
||||
"D": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 8
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#G",
|
||||
"G#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
},
|
||||
"G": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 8
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#D",
|
||||
"D#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
},
|
||||
"D": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 1
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#G",
|
||||
"G#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 1
|
||||
},
|
||||
"G": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#D",
|
||||
"D#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
},
|
||||
"D": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 2
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 10
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"D#",
|
||||
"#D"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:gravel",
|
||||
"data": 32767
|
||||
},
|
||||
"D": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 2
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:dirt",
|
||||
"count": 4,
|
||||
"data": 10
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_0",
|
||||
"data": 1
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "minecraft:dye",
|
||||
"count": 2,
|
||||
"data": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_0",
|
||||
"data": 3
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "minecraft:dye",
|
||||
"count": 2,
|
||||
"data": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_1",
|
||||
"data": 1
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "minecraft:dye",
|
||||
"count": 2,
|
||||
"data": 11
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:deadbush"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 9
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 14
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ebony_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#S#",
|
||||
"#S#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 14
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ebony_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#P#",
|
||||
"#P#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 14
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ebony_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_3",
|
||||
"data": 6
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 14
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 14
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_1",
|
||||
"count": 6,
|
||||
"data": 6
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 14
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ebony_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# #",
|
||||
"# #",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:glass",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:jar_empty",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:gem_block",
|
||||
"data": 0
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:gem",
|
||||
"count": 9,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:grass",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:plant_1",
|
||||
"data": 1
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 15
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ethereal_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"P#P",
|
||||
"P#P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ethereal_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#P#",
|
||||
"#P#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ethereal_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_1",
|
||||
"data": 4
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_0",
|
||||
"count": 6,
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 4
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:ethereal_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 15
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:eucalyptus_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#S#",
|
||||
"#S#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 15
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:eucalyptus_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#P#",
|
||||
"#P#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 15
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:eucalyptus_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_3",
|
||||
"data": 7
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 15
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 15
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_1",
|
||||
"count": 6,
|
||||
"data": 7
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 15
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:eucalyptus_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:tallgrass",
|
||||
"data": 2
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:filled_honeycomb"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hive",
|
||||
"data": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:fir_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"P#P",
|
||||
"P#P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:fir_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#P#",
|
||||
"#P#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:fir_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_0",
|
||||
"data": 7
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_0",
|
||||
"count": 6,
|
||||
"data": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 3
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:fir_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:double_plant",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 3
|
||||
}
|
||||
}
|
16
src/main/resources/assets/biomesoplenty/recipes/flesh.json
Normal file
16
src/main/resources/assets/biomesoplenty/recipes/flesh.json
Normal file
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:fleshchunk"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:flesh",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "forge:ore_shaped",
|
||||
"pattern": [
|
||||
" # ",
|
||||
"# #",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "stickWood"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:flower_basket"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:red_flower",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "minecraft:yellow_flower",
|
||||
"data": 0
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "minecraft:bowl",
|
||||
"data": 32767
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:peach",
|
||||
"data": 32767
|
||||
},
|
||||
{
|
||||
"item": "minecraft:apple",
|
||||
"data": 32767
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:pear",
|
||||
"data": 32767
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:saladfruit"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:grass",
|
||||
"data": 1
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:mushroom",
|
||||
"data": 3
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 8
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:flower_0",
|
||||
"data": 12
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "minecraft:dye",
|
||||
"count": 2,
|
||||
"data": 8
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:ash"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "minecraft:dye",
|
||||
"count": 2,
|
||||
"data": 8
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 11
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hellbark_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#S#",
|
||||
"#S#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 11
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hellbark_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"#P#",
|
||||
"#P#"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 11
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hellbark_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_2",
|
||||
"data": 7
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 11
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 11
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_1",
|
||||
"count": 6,
|
||||
"data": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 11
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hellbark_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:honeycomb"
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:hive",
|
||||
"data": 1
|
||||
}
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"##",
|
||||
"##",
|
||||
"##"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 12
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:jacaranda_door",
|
||||
"count": 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"P#P",
|
||||
"P#P"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
},
|
||||
"P": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 12
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:jacaranda_fence",
|
||||
"count": 3,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"S#S",
|
||||
"S#S"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 12
|
||||
},
|
||||
"S": {
|
||||
"item": "minecraft:stick",
|
||||
"data": 32767
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:jacaranda_fence_gate",
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"item": "biomesoplenty:log_3",
|
||||
"data": 4
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"count": 4,
|
||||
"data": 12
|
||||
}
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 12
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:wood_slab_1",
|
||||
"count": 6,
|
||||
"data": 4
|
||||
}
|
||||
}
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"type": "minecraft:crafting_shaped",
|
||||
"pattern": [
|
||||
"# ",
|
||||
"## ",
|
||||
"###"
|
||||
],
|
||||
"key": {
|
||||
"#": {
|
||||
"item": "biomesoplenty:planks_0",
|
||||
"data": 12
|
||||
}
|
||||
},
|
||||
"result": {
|
||||
"item": "biomesoplenty:jacaranda_stairs",
|
||||
"count": 4,
|
||||
"data": 0
|
||||
}
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "grass"
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:plant_0",
|
||||
"data": 9
|
||||
},
|
||||
{
|
||||
"item": "biomesoplenty:jar_empty"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:terrarium",
|
||||
"data": 5
|
||||
}
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"type": "forge:ore_shapeless",
|
||||
"ingredients": [
|
||||
{
|
||||
"type": "forge:ore_dict",
|
||||
"ore": "treeLeaves"
|
||||
}
|
||||
],
|
||||
"result": {
|
||||
"item": "biomesoplenty:plant_0",
|
||||
"data": 11
|
||||
}
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue