From c3368e6dba2263a6e3b35424af206e9cf062cc1a Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Sat, 29 Aug 2026 13:08:49 +0100 Subject: [PATCH 1/3] Port Mineralogy 6.1.0 to Minecraft 1.18.2 --- .github/workflows/ci.yml | 82 + .github/workflows/codeql-analysis.yml | 47 + .github/workflows/release-on-tag.yml | 92 + .github/workflows/validate-gradle-build.yml | 23 + CHANGELOG.txt | 97 +- README.md | 83 +- build.gradle | 1221 +++++++---- ci-fixtures/tools/LICENSE-MAVENIZER.txt | 504 +++++ ci-fixtures/tools/README.md | 23 + .../minecraft-1.18-holder-accessor.patch | 43 + ...necraft-mavenizer-0.5.21-orespawn-1.18.jar | Bin 0 -> 2558104 bytes docs/AGENTS.md | 26 - docs/CONTENT_CONFIG.md | 131 +- docs/DEVELOPER_GUIDE.md | 187 +- docs/PLAYER_GUIDE.md | 232 ++- docs/PROVIDER.md | 116 +- docs/README.md | 27 +- docs/VERSIONS.md | 177 ++ gradle.properties | 73 +- gradle/stage-orespawn-release.sh | 39 + gradle/wrapper/gradle-wrapper.jar | Bin 60756 -> 54413 bytes gradle/wrapper/gradle-wrapper.properties | 3 +- gradlew | 286 +-- gradlew.bat | 175 +- scripts/generate-locales.ps1 | 56 + scripts/generate-recipes.ps1 | 1169 +++++++++++ settings.gradle | 2 +- .../moddev/mc/mineralogy/ContentPolicy.java | 27 + .../mc/mineralogy/CreativeTabPolicy.java | 24 + .../zone/moddev/mc/mineralogy/Mineralogy.java | 21 +- .../mc/mineralogy/MineralogyConfig.java | 663 +++--- .../zone/moddev/mc/mineralogy/RockType.java | 11 - .../moddev/mc/mineralogy/blocks/Chert.java | 10 +- .../mc/mineralogy/blocks/DoubleSlab.java | 15 + .../moddev/mc/mineralogy/blocks/Rock.java | 11 +- .../mc/mineralogy/blocks/RockSaltLamp.java | 9 +- .../mc/mineralogy/blocks/RockStairs.java | 1 - .../moddev/mc/mineralogy/blocks/RockWall.java | 1 - .../mc/mineralogy/client/ClientSetup.java | 25 +- .../compat/CobblestoneTagPolicy.java | 118 ++ .../moddev/mc/mineralogy/data/Material.java | 19 +- .../mc/mineralogy/data/MaterialData.java | 61 +- .../documentation/DocumentationExporter.java | 158 +- .../moddev/mc/mineralogy/init/Blocks.java | 56 +- .../zone/moddev/mc/mineralogy/init/Items.java | 14 +- .../mc/mineralogy/init/MineralogyFluids.java | 11 +- .../mineralogy/init/MineralogyItemGroups.java | 41 +- .../mineralogy/init/MineralogyRegistry.java | 10 - .../LegacyMineralogy6ConfigMigrator.java | 251 +++ .../migration/LegacyOreConfigMigrator.java | 203 ++ .../LegacyTileEntityIdNormalizer.java | 107 + .../patching/LegacyWorldDataHook.java | 73 +- .../mc/mineralogy/patching/PatchHandler.java | 28 +- src/main/resources/META-INF/mods.toml | 98 +- .../assets/mineralogy/lang/de_au.json | 1806 ++++++++--------- .../assets/mineralogy/lang/de_de.json | 1806 ++++++++--------- .../assets/mineralogy/lang/en_ca.json | 12 +- .../assets/mineralogy/lang/en_en.json | 12 +- .../assets/mineralogy/lang/en_gb.json | 12 +- .../assets/mineralogy/lang/en_pt.json | 12 +- .../assets/mineralogy/lang/en_us.json | 12 +- .../assets/mineralogy/lang/es_es.json | 1740 ++++++++-------- .../assets/mineralogy/lang/es_mx.json | 1740 ++++++++-------- .../assets/mineralogy/lang/fr_ca.json | 1796 ++++++++-------- .../assets/mineralogy/lang/fr_fr.json | 1796 ++++++++-------- .../assets/mineralogy/lang/ja_jp.json | 1684 +++++++-------- .../assets/mineralogy/lang/ko_kr.json | 1670 +++++++-------- .../assets/mineralogy/lang/pt_br.json | 1768 ++++++++-------- .../assets/mineralogy/lang/pt_pt.json | 940 +++++++++ .../assets/mineralogy/lang/ru_ru.json | 1788 ++++++++-------- .../assets/mineralogy/lang/zh_cn.json | 1630 +++++++-------- .../textures/items/crude_oil_bucket.png | Bin 0 -> 416 bytes .../data/forge/tags/blocks/cobblestone.json | 29 +- .../data/forge/tags/fluids/crude_oil.json | 3 +- .../data/forge/tags/items/cobblestone.json | 29 +- .../data/forge/tags/items/dusts/coal.json | 4 + .../tags/items/paper.json} | 2 +- .../resources/data/forge/tags/items/sand.json | 7 + .../recipes/brewing/brewing_stand.json | 91 + .../recipes/building_blocks/andesite.json | 91 + .../recipes/building_blocks/diorite.json | 91 + .../mossy_cobblestone_from_moss_block.json | 91 + .../mossy_cobblestone_from_vine.json | 91 + .../building_blocks/polished_andesite.json | 50 + .../building_blocks/polished_basalt.json | 50 + .../building_blocks/polished_diorite.json | 50 + .../building_blocks/polished_granite.json | 50 + .../recipes/combat/stone_sword.json | 87 + .../recipes/decorations/furnace.json | 87 + .../recipes/redstone/dispenser.json | 91 + .../recipes/redstone/dropper.json | 91 + .../advancements/recipes/redstone/lever.json | 87 + .../recipes/redstone/observer.json | 91 + .../advancements/recipes/redstone/piston.json | 91 + .../advancements/recipes/tools/stone_axe.json | 87 + .../advancements/recipes/tools/stone_hoe.json | 87 + .../recipes/tools/stone_pickaxe.json | 87 + .../recipes/tools/stone_shovel.json | 87 + .../data/minecraft/recipes/andesite.json | 65 +- .../data/minecraft/recipes/andesite_slab.json | 54 + ...esite_slab_from_andesite_stonecutting.json | 40 + .../data/minecraft/recipes/brewing_stand.json | 60 + .../data/minecraft/recipes/diorite.json | 77 +- .../data/minecraft/recipes/diorite_slab.json | 54 + ...iorite_slab_from_diorite_stonecutting.json | 40 + .../data/minecraft/recipes/dispenser.json | 86 +- .../data/minecraft/recipes/dropper.json | 77 +- .../data/minecraft/recipes/furnace.json | 68 +- .../data/minecraft/recipes/granite_slab.json | 54 + ...ranite_slab_from_granite_stonecutting.json | 40 + .../data/minecraft/recipes/lever.json | 74 +- .../mossy_cobblestone_from_moss_block.json | 65 +- .../recipes/mossy_cobblestone_from_vine.json | 65 +- .../data/minecraft/recipes/observer.json | 86 +- .../data/minecraft/recipes/piston.json | 95 +- .../minecraft/recipes/polished_andesite.json | 15 + .../recipes/polished_andesite_slab.json | 54 + ...esite_slab_from_andesite_stonecutting.json | 40 + ...b_from_polished_andesite_stonecutting.json | 40 + .../minecraft/recipes/polished_basalt.json | 15 + .../minecraft/recipes/polished_diorite.json | 15 + .../recipes/polished_diorite_slab.json | 54 + ...iorite_slab_from_diorite_stonecutting.json | 40 + ...ab_from_polished_diorite_stonecutting.json | 40 + .../minecraft/recipes/polished_granite.json | 15 + .../recipes/polished_granite_slab.json | 54 + ...ranite_slab_from_granite_stonecutting.json | 40 + ...ab_from_polished_granite_stonecutting.json | 40 + .../data/minecraft/recipes/stone.json | 9 - .../data/minecraft/recipes/stone_axe.json | 62 + .../data/minecraft/recipes/stone_hoe.json | 62 + .../data/minecraft/recipes/stone_pickaxe.json | 62 + .../data/minecraft/recipes/stone_shovel.json | 62 + .../data/minecraft/recipes/stone_sword.json | 62 + .../tags/blocks/base_stone_overworld.json | 11 - .../tags/blocks/mineable/pickaxe.json | 2 +- .../tags/blocks/needs_iron_tool.json | 2 +- .../tags/blocks/needs_stone_tool.json | 2 +- .../tags/blocks/stone_ore_replaceables.json | 11 - .../recipes/amphibolite_brick.json | 66 +- .../amphibolite_brick_block_polishing.json | 72 + .../recipes/amphibolite_brick_furnace.json | 68 +- .../recipes/amphibolite_brick_slab.json | 70 +- .../amphibolite_brick_slab_polishing.json | 72 + .../amphibolite_brick_slab_recombination.json | 43 + .../recipes/amphibolite_brick_stairs.json | 68 +- .../amphibolite_brick_stairs_polishing.json | 72 + .../recipes/amphibolite_brick_wall.json | 68 +- .../amphibolite_brick_wall_polishing.json | 72 + .../recipes/amphibolite_cobblestone.json | 34 + .../recipes/amphibolite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + ...phibolite_polished_slab_recombination.json | 43 + .../amphibolite_polished_slabs_to_brick.json | 43 + .../amphibolite_polished_stairs_to_brick.json | 43 + .../amphibolite_polished_walls_to_brick.json | 43 + .../amphibolite_raw_slab_polishing.json | 72 + .../amphibolite_raw_slab_recombination.json | 43 + .../amphibolite_raw_slabs_to_brick.json | 43 + .../amphibolite_raw_stairs_polishing.json | 72 + .../amphibolite_raw_stairs_to_brick.json | 43 + .../amphibolite_raw_wall_polishing.json | 72 + .../amphibolite_raw_walls_to_brick.json | 43 + .../recipes/amphibolite_relief_axe.json | 70 +- .../recipes/amphibolite_relief_blank.json | 70 +- .../recipes/amphibolite_relief_cross.json | 70 +- .../recipes/amphibolite_relief_hammer.json | 70 +- .../recipes/amphibolite_relief_hoe.json | 70 +- .../amphibolite_relief_horizontal.json | 70 +- .../recipes/amphibolite_relief_i.json | 70 +- .../recipes/amphibolite_relief_left.json | 70 +- .../recipes/amphibolite_relief_pickaxe.json | 70 +- .../recipes/amphibolite_relief_plus.json | 70 +- .../recipes/amphibolite_relief_right.json | 70 +- .../recipes/amphibolite_relief_sword.json | 70 +- .../recipes/amphibolite_relief_vertical.json | 70 +- .../recipes/amphibolite_slab.json | 68 +- .../recipes/amphibolite_smooth.json | 82 +- .../recipes/amphibolite_smooth_brick.json | 68 +- .../amphibolite_smooth_brick_furnace.json | 69 +- .../amphibolite_smooth_brick_slab.json | 71 +- .../amphibolite_smooth_brick_stairs.json | 69 +- .../amphibolite_smooth_brick_wall.json | 69 +- .../recipes/amphibolite_smooth_furnace.json | 68 +- .../recipes/amphibolite_smooth_slab.json | 70 +- .../recipes/amphibolite_smooth_stairs.json | 68 +- .../recipes/amphibolite_smooth_wall.json | 68 +- .../recipes/amphibolite_stairs.json | 66 +- .../recipes/amphibolite_to_stone.json | 33 + .../recipes/amphibolite_wall.json | 66 +- .../advancements/recipes/andesite_brick.json | 66 +- .../andesite_brick_block_polishing.json | 72 + .../recipes/andesite_brick_furnace.json | 68 +- .../recipes/andesite_brick_slab.json | 70 +- .../andesite_brick_slab_polishing.json | 72 + .../andesite_brick_slab_recombination.json | 43 + .../recipes/andesite_brick_stairs.json | 68 +- .../andesite_brick_stairs_polishing.json | 72 + .../recipes/andesite_brick_wall.json | 68 +- .../andesite_brick_wall_polishing.json | 72 + .../recipes/andesite_cobblestone.json | 34 + .../recipes/andesite_furnace.json | 64 +- ...ite_polished_brick_slab_recombination.json | 43 + .../andesite_polished_slab_recombination.json | 43 + .../andesite_polished_slabs_to_brick.json | 43 + .../andesite_polished_stairs_to_brick.json | 43 + .../andesite_polished_walls_to_brick.json | 43 + .../recipes/andesite_raw_slab_polishing.json | 72 + .../andesite_raw_slab_recombination.json | 43 + .../recipes/andesite_raw_slabs_to_brick.json | 43 + .../andesite_raw_stairs_polishing.json | 72 + .../recipes/andesite_raw_stairs_to_brick.json | 43 + .../recipes/andesite_raw_wall_polishing.json | 72 + .../recipes/andesite_raw_walls_to_brick.json | 43 + .../recipes/andesite_relief_axe.json | 70 +- .../recipes/andesite_relief_blank.json | 68 +- .../recipes/andesite_relief_cross.json | 70 +- .../recipes/andesite_relief_hammer.json | 70 +- .../recipes/andesite_relief_hoe.json | 70 +- .../recipes/andesite_relief_horizontal.json | 70 +- .../recipes/andesite_relief_i.json | 70 +- .../recipes/andesite_relief_left.json | 70 +- .../recipes/andesite_relief_pickaxe.json | 70 +- .../recipes/andesite_relief_plus.json | 70 +- .../recipes/andesite_relief_right.json | 70 +- .../recipes/andesite_relief_sword.json | 70 +- .../recipes/andesite_relief_vertical.json | 70 +- .../advancements/recipes/andesite_slab.json | 68 +- .../recipes/andesite_slab_from_vanilla.json | 43 + .../recipes/andesite_slab_to_vanilla.json | 43 + .../advancements/recipes/andesite_smooth.json | 82 +- .../recipes/andesite_smooth_brick.json | 68 +- .../andesite_smooth_brick_furnace.json | 69 +- .../recipes/andesite_smooth_brick_slab.json | 71 +- .../recipes/andesite_smooth_brick_stairs.json | 69 +- .../recipes/andesite_smooth_brick_wall.json | 69 +- .../recipes/andesite_smooth_furnace.json | 68 +- .../recipes/andesite_smooth_slab.json | 70 +- .../andesite_smooth_slab_from_vanilla.json | 43 + .../andesite_smooth_slab_to_vanilla.json | 43 + .../recipes/andesite_smooth_stairs.json | 70 +- .../recipes/andesite_smooth_wall.json | 68 +- .../advancements/recipes/andesite_stairs.json | 68 +- .../recipes/andesite_to_stone.json | 33 + .../advancements/recipes/andesite_wall.json | 68 +- .../advancements/recipes/basalt_brick.json | 66 +- .../recipes/basalt_brick_block_polishing.json | 72 + .../recipes/basalt_brick_furnace.json | 68 +- .../recipes/basalt_brick_slab.json | 70 +- .../recipes/basalt_brick_slab_polishing.json | 72 + .../basalt_brick_slab_recombination.json | 43 + .../recipes/basalt_brick_stairs.json | 68 +- .../basalt_brick_stairs_polishing.json | 72 + .../recipes/basalt_brick_wall.json | 68 +- .../recipes/basalt_brick_wall_polishing.json | 72 + .../recipes/basalt_cobblestone.json | 34 + .../advancements/recipes/basalt_furnace.json | 64 +- ...alt_polished_brick_slab_recombination.json | 43 + .../basalt_polished_slab_recombination.json | 43 + .../basalt_polished_slabs_to_brick.json | 43 + .../basalt_polished_stairs_to_brick.json | 43 + .../basalt_polished_walls_to_brick.json | 43 + .../recipes/basalt_raw_slab_polishing.json | 72 + .../basalt_raw_slab_recombination.json | 43 + .../recipes/basalt_raw_slabs_to_brick.json | 43 + .../recipes/basalt_raw_stairs_polishing.json | 72 + .../recipes/basalt_raw_stairs_to_brick.json | 43 + .../recipes/basalt_raw_wall_polishing.json | 72 + .../recipes/basalt_raw_walls_to_brick.json | 43 + .../recipes/basalt_relief_axe.json | 70 +- .../recipes/basalt_relief_blank.json | 68 +- .../recipes/basalt_relief_cross.json | 70 +- .../recipes/basalt_relief_hammer.json | 70 +- .../recipes/basalt_relief_hoe.json | 70 +- .../recipes/basalt_relief_horizontal.json | 70 +- .../advancements/recipes/basalt_relief_i.json | 70 +- .../recipes/basalt_relief_left.json | 70 +- .../recipes/basalt_relief_pickaxe.json | 70 +- .../recipes/basalt_relief_plus.json | 70 +- .../recipes/basalt_relief_right.json | 70 +- .../recipes/basalt_relief_sword.json | 70 +- .../recipes/basalt_relief_vertical.json | 70 +- .../advancements/recipes/basalt_slab.json | 64 +- .../advancements/recipes/basalt_smooth.json | 82 +- .../recipes/basalt_smooth_brick.json | 68 +- .../recipes/basalt_smooth_brick_furnace.json | 69 +- .../recipes/basalt_smooth_brick_slab.json | 71 +- .../recipes/basalt_smooth_brick_stairs.json | 69 +- .../recipes/basalt_smooth_brick_wall.json | 69 +- .../recipes/basalt_smooth_furnace.json | 68 +- .../recipes/basalt_smooth_slab.json | 68 +- .../recipes/basalt_smooth_stairs.json | 68 +- .../recipes/basalt_smooth_wall.json | 68 +- .../advancements/recipes/basalt_stairs.json | 64 +- .../advancements/recipes/basalt_to_stone.json | 33 + .../advancements/recipes/basalt_wall.json | 64 +- .../recipes/basaltic_glass_brick.json | 66 +- .../basaltic_glass_brick_block_polishing.json | 72 + .../recipes/basaltic_glass_brick_furnace.json | 68 +- .../recipes/basaltic_glass_brick_slab.json | 70 +- .../basaltic_glass_brick_slab_polishing.json | 72 + ...saltic_glass_brick_slab_recombination.json | 43 + .../recipes/basaltic_glass_brick_stairs.json | 68 +- ...basaltic_glass_brick_stairs_polishing.json | 72 + .../recipes/basaltic_glass_brick_wall.json | 68 +- .../basaltic_glass_brick_wall_polishing.json | 72 + .../recipes/basaltic_glass_cobblestone.json | 34 + .../recipes/basaltic_glass_furnace.json | 66 +- ...ass_polished_brick_slab_recombination.json | 43 + ...tic_glass_polished_slab_recombination.json | 43 + ...asaltic_glass_polished_slabs_to_brick.json | 43 + ...saltic_glass_polished_stairs_to_brick.json | 43 + ...asaltic_glass_polished_walls_to_brick.json | 43 + .../basaltic_glass_raw_slab_polishing.json | 72 + ...basaltic_glass_raw_slab_recombination.json | 43 + .../basaltic_glass_raw_slabs_to_brick.json | 43 + .../basaltic_glass_raw_stairs_polishing.json | 72 + .../basaltic_glass_raw_stairs_to_brick.json | 43 + .../basaltic_glass_raw_wall_polishing.json | 72 + .../basaltic_glass_raw_walls_to_brick.json | 43 + .../recipes/basaltic_glass_relief_axe.json | 70 +- .../recipes/basaltic_glass_relief_blank.json | 70 +- .../recipes/basaltic_glass_relief_cross.json | 70 +- .../recipes/basaltic_glass_relief_hammer.json | 70 +- .../recipes/basaltic_glass_relief_hoe.json | 70 +- .../basaltic_glass_relief_horizontal.json | 70 +- .../recipes/basaltic_glass_relief_i.json | 70 +- .../recipes/basaltic_glass_relief_left.json | 70 +- .../basaltic_glass_relief_pickaxe.json | 70 +- .../recipes/basaltic_glass_relief_plus.json | 70 +- .../recipes/basaltic_glass_relief_right.json | 70 +- .../recipes/basaltic_glass_relief_sword.json | 70 +- .../basaltic_glass_relief_vertical.json | 70 +- .../recipes/basaltic_glass_slab.json | 68 +- .../recipes/basaltic_glass_smooth.json | 82 +- .../recipes/basaltic_glass_smooth_brick.json | 68 +- .../basaltic_glass_smooth_brick_furnace.json | 69 +- .../basaltic_glass_smooth_brick_slab.json | 71 +- .../basaltic_glass_smooth_brick_stairs.json | 69 +- .../basaltic_glass_smooth_brick_wall.json | 69 +- .../basaltic_glass_smooth_furnace.json | 68 +- .../recipes/basaltic_glass_smooth_slab.json | 70 +- .../recipes/basaltic_glass_smooth_stairs.json | 68 +- .../recipes/basaltic_glass_smooth_wall.json | 68 +- .../recipes/basaltic_glass_stairs.json | 66 +- .../recipes/basaltic_glass_to_stone.json | 33 + .../recipes/basaltic_glass_wall.json | 66 +- .../advancements/recipes/chalk.json | 39 + .../advancements/recipes/chalk_dust.json | 39 + .../advancements/recipes/cobblestone.json | 36 + .../recipes/conglomerate_brick.json | 66 +- .../conglomerate_brick_block_polishing.json | 72 + .../recipes/conglomerate_brick_furnace.json | 68 +- .../recipes/conglomerate_brick_slab.json | 70 +- .../conglomerate_brick_slab_polishing.json | 72 + ...conglomerate_brick_slab_recombination.json | 43 + .../recipes/conglomerate_brick_stairs.json | 68 +- .../conglomerate_brick_stairs_polishing.json | 72 + .../recipes/conglomerate_brick_wall.json | 68 +- .../conglomerate_brick_wall_polishing.json | 72 + .../recipes/conglomerate_cobblestone.json | 34 + .../recipes/conglomerate_furnace.json | 66 +- ...ate_polished_brick_slab_recombination.json | 43 + ...glomerate_polished_slab_recombination.json | 43 + .../conglomerate_polished_slabs_to_brick.json | 43 + ...conglomerate_polished_stairs_to_brick.json | 43 + .../conglomerate_polished_walls_to_brick.json | 43 + .../conglomerate_raw_slab_polishing.json | 72 + .../conglomerate_raw_slab_recombination.json | 43 + .../conglomerate_raw_slabs_to_brick.json | 43 + .../conglomerate_raw_stairs_polishing.json | 72 + .../conglomerate_raw_stairs_to_brick.json | 43 + .../conglomerate_raw_wall_polishing.json | 72 + .../conglomerate_raw_walls_to_brick.json | 43 + .../recipes/conglomerate_relief_axe.json | 70 +- .../recipes/conglomerate_relief_blank.json | 70 +- .../recipes/conglomerate_relief_cross.json | 70 +- .../recipes/conglomerate_relief_hammer.json | 70 +- .../recipes/conglomerate_relief_hoe.json | 70 +- .../conglomerate_relief_horizontal.json | 70 +- .../recipes/conglomerate_relief_i.json | 70 +- .../recipes/conglomerate_relief_left.json | 70 +- .../recipes/conglomerate_relief_pickaxe.json | 70 +- .../recipes/conglomerate_relief_plus.json | 70 +- .../recipes/conglomerate_relief_right.json | 70 +- .../recipes/conglomerate_relief_sword.json | 70 +- .../recipes/conglomerate_relief_vertical.json | 70 +- .../recipes/conglomerate_slab.json | 68 +- .../recipes/conglomerate_smooth.json | 82 +- .../recipes/conglomerate_smooth_brick.json | 68 +- .../conglomerate_smooth_brick_furnace.json | 69 +- .../conglomerate_smooth_brick_slab.json | 71 +- .../conglomerate_smooth_brick_stairs.json | 69 +- .../conglomerate_smooth_brick_wall.json | 69 +- .../recipes/conglomerate_smooth_furnace.json | 68 +- .../recipes/conglomerate_smooth_slab.json | 70 +- .../recipes/conglomerate_smooth_stairs.json | 68 +- .../recipes/conglomerate_smooth_wall.json | 68 +- .../recipes/conglomerate_stairs.json | 66 +- .../recipes/conglomerate_to_stone.json | 33 + .../recipes/conglomerate_wall.json | 66 +- .../advancements/recipes/diabase_brick.json | 66 +- .../diabase_brick_block_polishing.json | 72 + .../recipes/diabase_brick_furnace.json | 68 +- .../recipes/diabase_brick_slab.json | 70 +- .../recipes/diabase_brick_slab_polishing.json | 72 + .../diabase_brick_slab_recombination.json | 43 + .../recipes/diabase_brick_stairs.json | 68 +- .../diabase_brick_stairs_polishing.json | 72 + .../recipes/diabase_brick_wall.json | 68 +- .../recipes/diabase_brick_wall_polishing.json | 72 + .../recipes/diabase_cobblestone.json | 34 + .../advancements/recipes/diabase_furnace.json | 66 +- ...ase_polished_brick_slab_recombination.json | 43 + .../diabase_polished_slab_recombination.json | 43 + .../diabase_polished_slabs_to_brick.json | 43 + .../diabase_polished_stairs_to_brick.json | 43 + .../diabase_polished_walls_to_brick.json | 43 + .../recipes/diabase_raw_slab_polishing.json | 72 + .../diabase_raw_slab_recombination.json | 43 + .../recipes/diabase_raw_slabs_to_brick.json | 43 + .../recipes/diabase_raw_stairs_polishing.json | 72 + .../recipes/diabase_raw_stairs_to_brick.json | 43 + .../recipes/diabase_raw_wall_polishing.json | 72 + .../recipes/diabase_raw_walls_to_brick.json | 43 + .../recipes/diabase_relief_axe.json | 70 +- .../recipes/diabase_relief_blank.json | 70 +- .../recipes/diabase_relief_cross.json | 70 +- .../recipes/diabase_relief_hammer.json | 70 +- .../recipes/diabase_relief_hoe.json | 70 +- .../recipes/diabase_relief_horizontal.json | 70 +- .../recipes/diabase_relief_i.json | 70 +- .../recipes/diabase_relief_left.json | 70 +- .../recipes/diabase_relief_pickaxe.json | 70 +- .../recipes/diabase_relief_plus.json | 70 +- .../recipes/diabase_relief_right.json | 70 +- .../recipes/diabase_relief_sword.json | 70 +- .../recipes/diabase_relief_vertical.json | 70 +- .../advancements/recipes/diabase_slab.json | 68 +- .../advancements/recipes/diabase_smooth.json | 82 +- .../recipes/diabase_smooth_brick.json | 68 +- .../recipes/diabase_smooth_brick_furnace.json | 69 +- .../recipes/diabase_smooth_brick_slab.json | 71 +- .../recipes/diabase_smooth_brick_stairs.json | 69 +- .../recipes/diabase_smooth_brick_wall.json | 69 +- .../recipes/diabase_smooth_furnace.json | 68 +- .../recipes/diabase_smooth_slab.json | 70 +- .../recipes/diabase_smooth_stairs.json | 68 +- .../recipes/diabase_smooth_wall.json | 68 +- .../advancements/recipes/diabase_stairs.json | 66 +- .../recipes/diabase_to_stone.json | 33 + .../advancements/recipes/diabase_wall.json | 66 +- .../advancements/recipes/diorite_brick.json | 66 +- .../diorite_brick_block_polishing.json | 72 + .../recipes/diorite_brick_furnace.json | 68 +- .../recipes/diorite_brick_slab.json | 70 +- .../recipes/diorite_brick_slab_polishing.json | 72 + .../diorite_brick_slab_recombination.json | 43 + .../recipes/diorite_brick_stairs.json | 68 +- .../diorite_brick_stairs_polishing.json | 72 + .../recipes/diorite_brick_wall.json | 68 +- .../recipes/diorite_brick_wall_polishing.json | 72 + .../recipes/diorite_cobblestone.json | 34 + .../advancements/recipes/diorite_furnace.json | 64 +- ...ite_polished_brick_slab_recombination.json | 43 + .../diorite_polished_slab_recombination.json | 43 + .../diorite_polished_slabs_to_brick.json | 43 + .../diorite_polished_stairs_to_brick.json | 43 + .../diorite_polished_walls_to_brick.json | 43 + .../recipes/diorite_raw_slab_polishing.json | 72 + .../diorite_raw_slab_recombination.json | 43 + .../recipes/diorite_raw_slabs_to_brick.json | 43 + .../recipes/diorite_raw_stairs_polishing.json | 72 + .../recipes/diorite_raw_stairs_to_brick.json | 43 + .../recipes/diorite_raw_wall_polishing.json | 72 + .../recipes/diorite_raw_walls_to_brick.json | 43 + .../recipes/diorite_relief_axe.json | 70 +- .../recipes/diorite_relief_blank.json | 68 +- .../recipes/diorite_relief_cross.json | 70 +- .../recipes/diorite_relief_hammer.json | 70 +- .../recipes/diorite_relief_hoe.json | 70 +- .../recipes/diorite_relief_horizontal.json | 70 +- .../recipes/diorite_relief_i.json | 70 +- .../recipes/diorite_relief_left.json | 70 +- .../recipes/diorite_relief_pickaxe.json | 70 +- .../recipes/diorite_relief_plus.json | 70 +- .../recipes/diorite_relief_right.json | 70 +- .../recipes/diorite_relief_sword.json | 70 +- .../recipes/diorite_relief_vertical.json | 70 +- .../advancements/recipes/diorite_slab.json | 68 +- .../recipes/diorite_slab_from_vanilla.json | 43 + .../recipes/diorite_slab_to_vanilla.json | 43 + .../advancements/recipes/diorite_smooth.json | 82 +- .../recipes/diorite_smooth_brick.json | 68 +- .../recipes/diorite_smooth_brick_furnace.json | 69 +- .../recipes/diorite_smooth_brick_slab.json | 71 +- .../recipes/diorite_smooth_brick_stairs.json | 69 +- .../recipes/diorite_smooth_brick_wall.json | 69 +- .../recipes/diorite_smooth_furnace.json | 68 +- .../recipes/diorite_smooth_slab.json | 70 +- .../diorite_smooth_slab_from_vanilla.json | 43 + .../diorite_smooth_slab_to_vanilla.json | 43 + .../recipes/diorite_smooth_stairs.json | 70 +- .../recipes/diorite_smooth_wall.json | 68 +- .../advancements/recipes/diorite_stairs.json | 68 +- .../recipes/diorite_to_stone.json | 33 + .../advancements/recipes/diorite_wall.json | 68 +- .../advancements/recipes/dolomite_brick.json | 66 +- .../dolomite_brick_block_polishing.json | 72 + .../recipes/dolomite_brick_furnace.json | 68 +- .../recipes/dolomite_brick_slab.json | 70 +- .../dolomite_brick_slab_polishing.json | 72 + .../dolomite_brick_slab_recombination.json | 43 + .../recipes/dolomite_brick_stairs.json | 68 +- .../dolomite_brick_stairs_polishing.json | 72 + .../recipes/dolomite_brick_wall.json | 68 +- .../dolomite_brick_wall_polishing.json | 72 + .../recipes/dolomite_cobblestone.json | 34 + .../recipes/dolomite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + .../dolomite_polished_slab_recombination.json | 43 + .../dolomite_polished_slabs_to_brick.json | 43 + .../dolomite_polished_stairs_to_brick.json | 43 + .../dolomite_polished_walls_to_brick.json | 43 + .../recipes/dolomite_raw_slab_polishing.json | 72 + .../dolomite_raw_slab_recombination.json | 43 + .../recipes/dolomite_raw_slabs_to_brick.json | 43 + .../dolomite_raw_stairs_polishing.json | 72 + .../recipes/dolomite_raw_stairs_to_brick.json | 43 + .../recipes/dolomite_raw_wall_polishing.json | 72 + .../recipes/dolomite_raw_walls_to_brick.json | 43 + .../recipes/dolomite_relief_axe.json | 70 +- .../recipes/dolomite_relief_blank.json | 70 +- .../recipes/dolomite_relief_cross.json | 70 +- .../recipes/dolomite_relief_hammer.json | 70 +- .../recipes/dolomite_relief_hoe.json | 70 +- .../recipes/dolomite_relief_horizontal.json | 70 +- .../recipes/dolomite_relief_i.json | 70 +- .../recipes/dolomite_relief_left.json | 70 +- .../recipes/dolomite_relief_pickaxe.json | 70 +- .../recipes/dolomite_relief_plus.json | 70 +- .../recipes/dolomite_relief_right.json | 70 +- .../recipes/dolomite_relief_sword.json | 70 +- .../recipes/dolomite_relief_vertical.json | 70 +- .../advancements/recipes/dolomite_slab.json | 68 +- .../advancements/recipes/dolomite_smooth.json | 82 +- .../recipes/dolomite_smooth_brick.json | 68 +- .../dolomite_smooth_brick_furnace.json | 69 +- .../recipes/dolomite_smooth_brick_slab.json | 71 +- .../recipes/dolomite_smooth_brick_stairs.json | 69 +- .../recipes/dolomite_smooth_brick_wall.json | 69 +- .../recipes/dolomite_smooth_furnace.json | 68 +- .../recipes/dolomite_smooth_slab.json | 70 +- .../recipes/dolomite_smooth_stairs.json | 68 +- .../recipes/dolomite_smooth_wall.json | 68 +- .../advancements/recipes/dolomite_stairs.json | 66 +- .../recipes/dolomite_to_stone.json | 33 + .../advancements/recipes/dolomite_wall.json | 66 +- .../advancements/recipes/drywall.json | 43 + .../advancements/recipes/drywall_black.json | 43 + .../advancements/recipes/drywall_blue.json | 43 + .../advancements/recipes/drywall_brown.json | 43 + .../advancements/recipes/drywall_cyan.json | 43 + .../advancements/recipes/drywall_gray.json | 43 + .../advancements/recipes/drywall_green.json | 43 + .../recipes/drywall_light_blue.json | 43 + .../advancements/recipes/drywall_lime.json | 43 + .../advancements/recipes/drywall_magenta.json | 43 + .../advancements/recipes/drywall_orange.json | 43 + .../advancements/recipes/drywall_pink.json | 43 + .../advancements/recipes/drywall_purple.json | 43 + .../advancements/recipes/drywall_red.json | 43 + .../advancements/recipes/drywall_silver.json | 43 + .../advancements/recipes/drywall_white.json | 43 + .../advancements/recipes/drywall_yellow.json | 43 + .../advancements/recipes/gabbro_brick.json | 66 +- .../recipes/gabbro_brick_block_polishing.json | 72 + .../recipes/gabbro_brick_furnace.json | 68 +- .../recipes/gabbro_brick_slab.json | 70 +- .../recipes/gabbro_brick_slab_polishing.json | 72 + .../gabbro_brick_slab_recombination.json | 43 + .../recipes/gabbro_brick_stairs.json | 68 +- .../gabbro_brick_stairs_polishing.json | 72 + .../recipes/gabbro_brick_wall.json | 68 +- .../recipes/gabbro_brick_wall_polishing.json | 72 + .../recipes/gabbro_cobblestone.json | 34 + .../advancements/recipes/gabbro_furnace.json | 66 +- ...bro_polished_brick_slab_recombination.json | 43 + .../gabbro_polished_slab_recombination.json | 43 + .../gabbro_polished_slabs_to_brick.json | 43 + .../gabbro_polished_stairs_to_brick.json | 43 + .../gabbro_polished_walls_to_brick.json | 43 + .../recipes/gabbro_raw_slab_polishing.json | 72 + .../gabbro_raw_slab_recombination.json | 43 + .../recipes/gabbro_raw_slabs_to_brick.json | 43 + .../recipes/gabbro_raw_stairs_polishing.json | 72 + .../recipes/gabbro_raw_stairs_to_brick.json | 43 + .../recipes/gabbro_raw_wall_polishing.json | 72 + .../recipes/gabbro_raw_walls_to_brick.json | 43 + .../recipes/gabbro_relief_axe.json | 70 +- .../recipes/gabbro_relief_blank.json | 70 +- .../recipes/gabbro_relief_cross.json | 70 +- .../recipes/gabbro_relief_hammer.json | 70 +- .../recipes/gabbro_relief_hoe.json | 70 +- .../recipes/gabbro_relief_horizontal.json | 70 +- .../advancements/recipes/gabbro_relief_i.json | 70 +- .../recipes/gabbro_relief_left.json | 70 +- .../recipes/gabbro_relief_pickaxe.json | 70 +- .../recipes/gabbro_relief_plus.json | 70 +- .../recipes/gabbro_relief_right.json | 70 +- .../recipes/gabbro_relief_sword.json | 70 +- .../recipes/gabbro_relief_vertical.json | 70 +- .../advancements/recipes/gabbro_slab.json | 68 +- .../advancements/recipes/gabbro_smooth.json | 82 +- .../recipes/gabbro_smooth_brick.json | 68 +- .../recipes/gabbro_smooth_brick_furnace.json | 69 +- .../recipes/gabbro_smooth_brick_slab.json | 71 +- .../recipes/gabbro_smooth_brick_stairs.json | 69 +- .../recipes/gabbro_smooth_brick_wall.json | 69 +- .../recipes/gabbro_smooth_furnace.json | 68 +- .../recipes/gabbro_smooth_slab.json | 70 +- .../recipes/gabbro_smooth_stairs.json | 68 +- .../recipes/gabbro_smooth_wall.json | 68 +- .../advancements/recipes/gabbro_stairs.json | 66 +- .../advancements/recipes/gabbro_to_stone.json | 33 + .../advancements/recipes/gabbro_wall.json | 66 +- .../advancements/recipes/gneiss_brick.json | 66 +- .../recipes/gneiss_brick_block_polishing.json | 72 + .../recipes/gneiss_brick_furnace.json | 68 +- .../recipes/gneiss_brick_slab.json | 70 +- .../recipes/gneiss_brick_slab_polishing.json | 72 + .../gneiss_brick_slab_recombination.json | 43 + .../recipes/gneiss_brick_stairs.json | 68 +- .../gneiss_brick_stairs_polishing.json | 72 + .../recipes/gneiss_brick_wall.json | 68 +- .../recipes/gneiss_brick_wall_polishing.json | 72 + .../recipes/gneiss_cobblestone.json | 34 + .../advancements/recipes/gneiss_furnace.json | 66 +- ...iss_polished_brick_slab_recombination.json | 43 + .../gneiss_polished_slab_recombination.json | 43 + .../gneiss_polished_slabs_to_brick.json | 43 + .../gneiss_polished_stairs_to_brick.json | 43 + .../gneiss_polished_walls_to_brick.json | 43 + .../recipes/gneiss_raw_slab_polishing.json | 72 + .../gneiss_raw_slab_recombination.json | 43 + .../recipes/gneiss_raw_slabs_to_brick.json | 43 + .../recipes/gneiss_raw_stairs_polishing.json | 72 + .../recipes/gneiss_raw_stairs_to_brick.json | 43 + .../recipes/gneiss_raw_wall_polishing.json | 72 + .../recipes/gneiss_raw_walls_to_brick.json | 43 + .../recipes/gneiss_relief_axe.json | 70 +- .../recipes/gneiss_relief_blank.json | 70 +- .../recipes/gneiss_relief_cross.json | 70 +- .../recipes/gneiss_relief_hammer.json | 70 +- .../recipes/gneiss_relief_hoe.json | 70 +- .../recipes/gneiss_relief_horizontal.json | 70 +- .../advancements/recipes/gneiss_relief_i.json | 70 +- .../recipes/gneiss_relief_left.json | 70 +- .../recipes/gneiss_relief_pickaxe.json | 70 +- .../recipes/gneiss_relief_plus.json | 70 +- .../recipes/gneiss_relief_right.json | 70 +- .../recipes/gneiss_relief_sword.json | 70 +- .../recipes/gneiss_relief_vertical.json | 70 +- .../advancements/recipes/gneiss_slab.json | 68 +- .../advancements/recipes/gneiss_smooth.json | 82 +- .../recipes/gneiss_smooth_brick.json | 68 +- .../recipes/gneiss_smooth_brick_furnace.json | 69 +- .../recipes/gneiss_smooth_brick_slab.json | 71 +- .../recipes/gneiss_smooth_brick_stairs.json | 69 +- .../recipes/gneiss_smooth_brick_wall.json | 69 +- .../recipes/gneiss_smooth_furnace.json | 68 +- .../recipes/gneiss_smooth_slab.json | 70 +- .../recipes/gneiss_smooth_stairs.json | 68 +- .../recipes/gneiss_smooth_wall.json | 68 +- .../advancements/recipes/gneiss_stairs.json | 66 +- .../advancements/recipes/gneiss_to_stone.json | 33 + .../advancements/recipes/gneiss_wall.json | 66 +- .../advancements/recipes/granite_brick.json | 66 +- .../granite_brick_block_polishing.json | 72 + .../recipes/granite_brick_furnace.json | 68 +- .../recipes/granite_brick_slab.json | 70 +- .../recipes/granite_brick_slab_polishing.json | 72 + .../granite_brick_slab_recombination.json | 43 + .../recipes/granite_brick_stairs.json | 68 +- .../granite_brick_stairs_polishing.json | 72 + .../recipes/granite_brick_wall.json | 68 +- .../recipes/granite_brick_wall_polishing.json | 72 + .../recipes/granite_cobblestone.json | 34 + .../advancements/recipes/granite_furnace.json | 64 +- ...ite_polished_brick_slab_recombination.json | 43 + .../granite_polished_slab_recombination.json | 43 + .../granite_polished_slabs_to_brick.json | 43 + .../granite_polished_stairs_to_brick.json | 43 + .../granite_polished_walls_to_brick.json | 43 + .../recipes/granite_raw_slab_polishing.json | 72 + .../granite_raw_slab_recombination.json | 43 + .../recipes/granite_raw_slabs_to_brick.json | 43 + .../recipes/granite_raw_stairs_polishing.json | 72 + .../recipes/granite_raw_stairs_to_brick.json | 43 + .../recipes/granite_raw_wall_polishing.json | 72 + .../recipes/granite_raw_walls_to_brick.json | 43 + .../recipes/granite_relief_axe.json | 70 +- .../recipes/granite_relief_blank.json | 68 +- .../recipes/granite_relief_cross.json | 70 +- .../recipes/granite_relief_hammer.json | 70 +- .../recipes/granite_relief_hoe.json | 70 +- .../recipes/granite_relief_horizontal.json | 70 +- .../recipes/granite_relief_i.json | 70 +- .../recipes/granite_relief_left.json | 70 +- .../recipes/granite_relief_pickaxe.json | 70 +- .../recipes/granite_relief_plus.json | 70 +- .../recipes/granite_relief_right.json | 70 +- .../recipes/granite_relief_sword.json | 70 +- .../recipes/granite_relief_vertical.json | 70 +- .../advancements/recipes/granite_slab.json | 68 +- .../recipes/granite_slab_from_vanilla.json | 43 + .../recipes/granite_slab_to_vanilla.json | 43 + .../advancements/recipes/granite_smooth.json | 82 +- .../recipes/granite_smooth_brick.json | 68 +- .../recipes/granite_smooth_brick_furnace.json | 69 +- .../recipes/granite_smooth_brick_slab.json | 71 +- .../recipes/granite_smooth_brick_stairs.json | 69 +- .../recipes/granite_smooth_brick_wall.json | 69 +- .../recipes/granite_smooth_furnace.json | 68 +- .../recipes/granite_smooth_slab.json | 70 +- .../granite_smooth_slab_from_vanilla.json | 43 + .../granite_smooth_slab_to_vanilla.json | 43 + .../recipes/granite_smooth_stairs.json | 70 +- .../recipes/granite_smooth_wall.json | 68 +- .../advancements/recipes/granite_stairs.json | 68 +- .../recipes/granite_to_stone.json | 33 + .../advancements/recipes/granite_wall.json | 68 +- .../advancements/recipes/gravel_to_stone.json | 39 + .../recipes/gunpowder_from_carbon_dust.json | 46 + .../recipes/gunpowder_from_charcoal.json | 39 + .../recipes/gunpowder_from_coal_dust.json | 46 + .../recipes/gunpowder_from_sugar.json | 39 + .../advancements/recipes/gypsum.json | 39 + .../advancements/recipes/gypsum_dust.json | 39 + .../advancements/recipes/hornfels_brick.json | 66 +- .../hornfels_brick_block_polishing.json | 72 + .../recipes/hornfels_brick_furnace.json | 68 +- .../recipes/hornfels_brick_slab.json | 70 +- .../hornfels_brick_slab_polishing.json | 72 + .../hornfels_brick_slab_recombination.json | 43 + .../recipes/hornfels_brick_stairs.json | 68 +- .../hornfels_brick_stairs_polishing.json | 72 + .../recipes/hornfels_brick_wall.json | 68 +- .../hornfels_brick_wall_polishing.json | 72 + .../recipes/hornfels_cobblestone.json | 34 + .../recipes/hornfels_furnace.json | 66 +- ...els_polished_brick_slab_recombination.json | 43 + .../hornfels_polished_slab_recombination.json | 43 + .../hornfels_polished_slabs_to_brick.json | 43 + .../hornfels_polished_stairs_to_brick.json | 43 + .../hornfels_polished_walls_to_brick.json | 43 + .../recipes/hornfels_raw_slab_polishing.json | 72 + .../hornfels_raw_slab_recombination.json | 43 + .../recipes/hornfels_raw_slabs_to_brick.json | 43 + .../hornfels_raw_stairs_polishing.json | 72 + .../recipes/hornfels_raw_stairs_to_brick.json | 43 + .../recipes/hornfels_raw_wall_polishing.json | 72 + .../recipes/hornfels_raw_walls_to_brick.json | 43 + .../recipes/hornfels_relief_axe.json | 70 +- .../recipes/hornfels_relief_blank.json | 70 +- .../recipes/hornfels_relief_cross.json | 70 +- .../recipes/hornfels_relief_hammer.json | 70 +- .../recipes/hornfels_relief_hoe.json | 70 +- .../recipes/hornfels_relief_horizontal.json | 70 +- .../recipes/hornfels_relief_i.json | 70 +- .../recipes/hornfels_relief_left.json | 70 +- .../recipes/hornfels_relief_pickaxe.json | 70 +- .../recipes/hornfels_relief_plus.json | 70 +- .../recipes/hornfels_relief_right.json | 70 +- .../recipes/hornfels_relief_sword.json | 70 +- .../recipes/hornfels_relief_vertical.json | 70 +- .../advancements/recipes/hornfels_slab.json | 68 +- .../advancements/recipes/hornfels_smooth.json | 82 +- .../recipes/hornfels_smooth_brick.json | 68 +- .../hornfels_smooth_brick_furnace.json | 69 +- .../recipes/hornfels_smooth_brick_slab.json | 71 +- .../recipes/hornfels_smooth_brick_stairs.json | 69 +- .../recipes/hornfels_smooth_brick_wall.json | 69 +- .../recipes/hornfels_smooth_furnace.json | 68 +- .../recipes/hornfels_smooth_slab.json | 70 +- .../recipes/hornfels_smooth_stairs.json | 68 +- .../recipes/hornfels_smooth_wall.json | 68 +- .../advancements/recipes/hornfels_stairs.json | 66 +- .../recipes/hornfels_to_stone.json | 33 + .../advancements/recipes/hornfels_wall.json | 66 +- .../advancements/recipes/limestone_brick.json | 66 +- .../limestone_brick_block_polishing.json | 72 + .../recipes/limestone_brick_furnace.json | 68 +- .../recipes/limestone_brick_slab.json | 70 +- .../limestone_brick_slab_polishing.json | 72 + .../limestone_brick_slab_recombination.json | 43 + .../recipes/limestone_brick_stairs.json | 68 +- .../limestone_brick_stairs_polishing.json | 72 + .../recipes/limestone_brick_wall.json | 68 +- .../limestone_brick_wall_polishing.json | 72 + .../recipes/limestone_cobblestone.json | 34 + .../recipes/limestone_furnace.json | 66 +- ...one_polished_brick_slab_recombination.json | 43 + ...limestone_polished_slab_recombination.json | 43 + .../limestone_polished_slabs_to_brick.json | 43 + .../limestone_polished_stairs_to_brick.json | 43 + .../limestone_polished_walls_to_brick.json | 43 + .../recipes/limestone_raw_slab_polishing.json | 72 + .../limestone_raw_slab_recombination.json | 43 + .../recipes/limestone_raw_slabs_to_brick.json | 43 + .../limestone_raw_stairs_polishing.json | 72 + .../limestone_raw_stairs_to_brick.json | 43 + .../recipes/limestone_raw_wall_polishing.json | 72 + .../recipes/limestone_raw_walls_to_brick.json | 43 + .../recipes/limestone_relief_axe.json | 70 +- .../recipes/limestone_relief_blank.json | 70 +- .../recipes/limestone_relief_cross.json | 70 +- .../recipes/limestone_relief_hammer.json | 70 +- .../recipes/limestone_relief_hoe.json | 70 +- .../recipes/limestone_relief_horizontal.json | 70 +- .../recipes/limestone_relief_i.json | 70 +- .../recipes/limestone_relief_left.json | 70 +- .../recipes/limestone_relief_pickaxe.json | 70 +- .../recipes/limestone_relief_plus.json | 70 +- .../recipes/limestone_relief_right.json | 70 +- .../recipes/limestone_relief_sword.json | 70 +- .../recipes/limestone_relief_vertical.json | 70 +- .../advancements/recipes/limestone_slab.json | 68 +- .../recipes/limestone_smooth.json | 82 +- .../recipes/limestone_smooth_brick.json | 68 +- .../limestone_smooth_brick_furnace.json | 69 +- .../recipes/limestone_smooth_brick_slab.json | 71 +- .../limestone_smooth_brick_stairs.json | 69 +- .../recipes/limestone_smooth_brick_wall.json | 69 +- .../recipes/limestone_smooth_furnace.json | 68 +- .../recipes/limestone_smooth_slab.json | 70 +- .../recipes/limestone_smooth_stairs.json | 68 +- .../recipes/limestone_smooth_wall.json | 68 +- .../recipes/limestone_stairs.json | 66 +- .../recipes/limestone_to_stone.json | 33 + .../advancements/recipes/limestone_wall.json | 66 +- .../advancements/recipes/marble_brick.json | 66 +- .../recipes/marble_brick_block_polishing.json | 72 + .../recipes/marble_brick_furnace.json | 68 +- .../recipes/marble_brick_slab.json | 70 +- .../recipes/marble_brick_slab_polishing.json | 72 + .../marble_brick_slab_recombination.json | 43 + .../recipes/marble_brick_stairs.json | 68 +- .../marble_brick_stairs_polishing.json | 72 + .../recipes/marble_brick_wall.json | 68 +- .../recipes/marble_brick_wall_polishing.json | 72 + .../recipes/marble_cobblestone.json | 34 + .../advancements/recipes/marble_furnace.json | 66 +- ...ble_polished_brick_slab_recombination.json | 43 + .../marble_polished_slab_recombination.json | 43 + .../marble_polished_slabs_to_brick.json | 43 + .../marble_polished_stairs_to_brick.json | 43 + .../marble_polished_walls_to_brick.json | 43 + .../recipes/marble_raw_slab_polishing.json | 72 + .../marble_raw_slab_recombination.json | 43 + .../recipes/marble_raw_slabs_to_brick.json | 43 + .../recipes/marble_raw_stairs_polishing.json | 72 + .../recipes/marble_raw_stairs_to_brick.json | 43 + .../recipes/marble_raw_wall_polishing.json | 72 + .../recipes/marble_raw_walls_to_brick.json | 43 + .../recipes/marble_relief_axe.json | 70 +- .../recipes/marble_relief_blank.json | 70 +- .../recipes/marble_relief_cross.json | 70 +- .../recipes/marble_relief_hammer.json | 70 +- .../recipes/marble_relief_hoe.json | 70 +- .../recipes/marble_relief_horizontal.json | 70 +- .../advancements/recipes/marble_relief_i.json | 70 +- .../recipes/marble_relief_left.json | 70 +- .../recipes/marble_relief_pickaxe.json | 70 +- .../recipes/marble_relief_plus.json | 70 +- .../recipes/marble_relief_right.json | 70 +- .../recipes/marble_relief_sword.json | 70 +- .../recipes/marble_relief_vertical.json | 70 +- .../advancements/recipes/marble_slab.json | 68 +- .../advancements/recipes/marble_smooth.json | 82 +- .../recipes/marble_smooth_brick.json | 68 +- .../recipes/marble_smooth_brick_furnace.json | 69 +- .../recipes/marble_smooth_brick_slab.json | 71 +- .../recipes/marble_smooth_brick_stairs.json | 69 +- .../recipes/marble_smooth_brick_wall.json | 69 +- .../recipes/marble_smooth_furnace.json | 68 +- .../recipes/marble_smooth_slab.json | 70 +- .../recipes/marble_smooth_stairs.json | 68 +- .../recipes/marble_smooth_wall.json | 68 +- .../advancements/recipes/marble_stairs.json | 66 +- .../advancements/recipes/marble_to_stone.json | 33 + .../advancements/recipes/marble_wall.json | 66 +- .../recipes/mineralfertilizer.json | 43 + .../advancements/recipes/nitrate_block.json | 43 + .../advancements/recipes/nitrate_dust.json | 43 + .../recipes/novaculite_brick.json | 66 +- .../novaculite_brick_block_polishing.json | 72 + .../recipes/novaculite_brick_furnace.json | 68 +- .../recipes/novaculite_brick_slab.json | 70 +- .../novaculite_brick_slab_polishing.json | 72 + .../novaculite_brick_slab_recombination.json | 43 + .../recipes/novaculite_brick_stairs.json | 68 +- .../novaculite_brick_stairs_polishing.json | 72 + .../recipes/novaculite_brick_wall.json | 68 +- .../novaculite_brick_wall_polishing.json | 72 + .../recipes/novaculite_cobblestone.json | 34 + .../recipes/novaculite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + ...ovaculite_polished_slab_recombination.json | 43 + .../novaculite_polished_slabs_to_brick.json | 43 + .../novaculite_polished_stairs_to_brick.json | 43 + .../novaculite_polished_walls_to_brick.json | 43 + .../novaculite_raw_slab_polishing.json | 72 + .../novaculite_raw_slab_recombination.json | 43 + .../novaculite_raw_slabs_to_brick.json | 43 + .../novaculite_raw_stairs_polishing.json | 72 + .../novaculite_raw_stairs_to_brick.json | 43 + .../novaculite_raw_wall_polishing.json | 72 + .../novaculite_raw_walls_to_brick.json | 43 + .../recipes/novaculite_relief_axe.json | 70 +- .../recipes/novaculite_relief_blank.json | 70 +- .../recipes/novaculite_relief_cross.json | 70 +- .../recipes/novaculite_relief_hammer.json | 70 +- .../recipes/novaculite_relief_hoe.json | 70 +- .../recipes/novaculite_relief_horizontal.json | 70 +- .../recipes/novaculite_relief_i.json | 70 +- .../recipes/novaculite_relief_left.json | 70 +- .../recipes/novaculite_relief_pickaxe.json | 70 +- .../recipes/novaculite_relief_plus.json | 70 +- .../recipes/novaculite_relief_right.json | 70 +- .../recipes/novaculite_relief_sword.json | 70 +- .../recipes/novaculite_relief_vertical.json | 70 +- .../advancements/recipes/novaculite_slab.json | 68 +- .../recipes/novaculite_smooth.json | 82 +- .../recipes/novaculite_smooth_brick.json | 68 +- .../novaculite_smooth_brick_furnace.json | 69 +- .../recipes/novaculite_smooth_brick_slab.json | 71 +- .../novaculite_smooth_brick_stairs.json | 69 +- .../recipes/novaculite_smooth_brick_wall.json | 69 +- .../recipes/novaculite_smooth_furnace.json | 68 +- .../recipes/novaculite_smooth_slab.json | 70 +- .../recipes/novaculite_smooth_stairs.json | 68 +- .../recipes/novaculite_smooth_wall.json | 68 +- .../recipes/novaculite_stairs.json | 66 +- .../recipes/novaculite_to_stone.json | 33 + .../advancements/recipes/novaculite_wall.json | 66 +- .../advancements/recipes/pegmatite_brick.json | 66 +- .../pegmatite_brick_block_polishing.json | 72 + .../recipes/pegmatite_brick_furnace.json | 68 +- .../recipes/pegmatite_brick_slab.json | 70 +- .../pegmatite_brick_slab_polishing.json | 72 + .../pegmatite_brick_slab_recombination.json | 43 + .../recipes/pegmatite_brick_stairs.json | 68 +- .../pegmatite_brick_stairs_polishing.json | 72 + .../recipes/pegmatite_brick_wall.json | 68 +- .../pegmatite_brick_wall_polishing.json | 72 + .../recipes/pegmatite_cobblestone.json | 34 + .../recipes/pegmatite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + ...pegmatite_polished_slab_recombination.json | 43 + .../pegmatite_polished_slabs_to_brick.json | 43 + .../pegmatite_polished_stairs_to_brick.json | 43 + .../pegmatite_polished_walls_to_brick.json | 43 + .../recipes/pegmatite_raw_slab_polishing.json | 72 + .../pegmatite_raw_slab_recombination.json | 43 + .../recipes/pegmatite_raw_slabs_to_brick.json | 43 + .../pegmatite_raw_stairs_polishing.json | 72 + .../pegmatite_raw_stairs_to_brick.json | 43 + .../recipes/pegmatite_raw_wall_polishing.json | 72 + .../recipes/pegmatite_raw_walls_to_brick.json | 43 + .../recipes/pegmatite_relief_axe.json | 70 +- .../recipes/pegmatite_relief_blank.json | 70 +- .../recipes/pegmatite_relief_cross.json | 70 +- .../recipes/pegmatite_relief_hammer.json | 70 +- .../recipes/pegmatite_relief_hoe.json | 70 +- .../recipes/pegmatite_relief_horizontal.json | 70 +- .../recipes/pegmatite_relief_i.json | 70 +- .../recipes/pegmatite_relief_left.json | 70 +- .../recipes/pegmatite_relief_pickaxe.json | 70 +- .../recipes/pegmatite_relief_plus.json | 70 +- .../recipes/pegmatite_relief_right.json | 70 +- .../recipes/pegmatite_relief_sword.json | 70 +- .../recipes/pegmatite_relief_vertical.json | 70 +- .../advancements/recipes/pegmatite_slab.json | 68 +- .../recipes/pegmatite_smooth.json | 82 +- .../recipes/pegmatite_smooth_brick.json | 68 +- .../pegmatite_smooth_brick_furnace.json | 69 +- .../recipes/pegmatite_smooth_brick_slab.json | 71 +- .../pegmatite_smooth_brick_stairs.json | 69 +- .../recipes/pegmatite_smooth_brick_wall.json | 69 +- .../recipes/pegmatite_smooth_furnace.json | 68 +- .../recipes/pegmatite_smooth_slab.json | 70 +- .../recipes/pegmatite_smooth_stairs.json | 68 +- .../recipes/pegmatite_smooth_wall.json | 68 +- .../recipes/pegmatite_stairs.json | 66 +- .../recipes/pegmatite_to_stone.json | 33 + .../advancements/recipes/pegmatite_wall.json | 66 +- .../recipes/peridotite_brick.json | 66 +- .../peridotite_brick_block_polishing.json | 72 + .../recipes/peridotite_brick_furnace.json | 68 +- .../recipes/peridotite_brick_slab.json | 70 +- .../peridotite_brick_slab_polishing.json | 72 + .../peridotite_brick_slab_recombination.json | 43 + .../recipes/peridotite_brick_stairs.json | 68 +- .../peridotite_brick_stairs_polishing.json | 72 + .../recipes/peridotite_brick_wall.json | 68 +- .../peridotite_brick_wall_polishing.json | 72 + .../recipes/peridotite_cobblestone.json | 34 + .../recipes/peridotite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + ...eridotite_polished_slab_recombination.json | 43 + .../peridotite_polished_slabs_to_brick.json | 43 + .../peridotite_polished_stairs_to_brick.json | 43 + .../peridotite_polished_walls_to_brick.json | 43 + .../peridotite_raw_slab_polishing.json | 72 + .../peridotite_raw_slab_recombination.json | 43 + .../peridotite_raw_slabs_to_brick.json | 43 + .../peridotite_raw_stairs_polishing.json | 72 + .../peridotite_raw_stairs_to_brick.json | 43 + .../peridotite_raw_wall_polishing.json | 72 + .../peridotite_raw_walls_to_brick.json | 43 + .../recipes/peridotite_relief_axe.json | 70 +- .../recipes/peridotite_relief_blank.json | 70 +- .../recipes/peridotite_relief_cross.json | 70 +- .../recipes/peridotite_relief_hammer.json | 70 +- .../recipes/peridotite_relief_hoe.json | 70 +- .../recipes/peridotite_relief_horizontal.json | 70 +- .../recipes/peridotite_relief_i.json | 70 +- .../recipes/peridotite_relief_left.json | 70 +- .../recipes/peridotite_relief_pickaxe.json | 70 +- .../recipes/peridotite_relief_plus.json | 70 +- .../recipes/peridotite_relief_right.json | 70 +- .../recipes/peridotite_relief_sword.json | 70 +- .../recipes/peridotite_relief_vertical.json | 70 +- .../advancements/recipes/peridotite_slab.json | 68 +- .../recipes/peridotite_smooth.json | 82 +- .../recipes/peridotite_smooth_brick.json | 68 +- .../peridotite_smooth_brick_furnace.json | 69 +- .../recipes/peridotite_smooth_brick_slab.json | 71 +- .../peridotite_smooth_brick_stairs.json | 69 +- .../recipes/peridotite_smooth_brick_wall.json | 69 +- .../recipes/peridotite_smooth_furnace.json | 68 +- .../recipes/peridotite_smooth_slab.json | 70 +- .../recipes/peridotite_smooth_stairs.json | 68 +- .../recipes/peridotite_smooth_wall.json | 68 +- .../recipes/peridotite_stairs.json | 66 +- .../recipes/peridotite_to_stone.json | 33 + .../advancements/recipes/peridotite_wall.json | 66 +- .../recipes/phosphorous_block.json | 43 + .../recipes/phosphorous_dust.json | 43 + .../advancements/recipes/phyllite_brick.json | 66 +- .../phyllite_brick_block_polishing.json | 72 + .../recipes/phyllite_brick_furnace.json | 68 +- .../recipes/phyllite_brick_slab.json | 70 +- .../phyllite_brick_slab_polishing.json | 72 + .../phyllite_brick_slab_recombination.json | 43 + .../recipes/phyllite_brick_stairs.json | 68 +- .../phyllite_brick_stairs_polishing.json | 72 + .../recipes/phyllite_brick_wall.json | 68 +- .../phyllite_brick_wall_polishing.json | 72 + .../recipes/phyllite_cobblestone.json | 34 + .../recipes/phyllite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + .../phyllite_polished_slab_recombination.json | 43 + .../phyllite_polished_slabs_to_brick.json | 43 + .../phyllite_polished_stairs_to_brick.json | 43 + .../phyllite_polished_walls_to_brick.json | 43 + .../recipes/phyllite_raw_slab_polishing.json | 72 + .../phyllite_raw_slab_recombination.json | 43 + .../recipes/phyllite_raw_slabs_to_brick.json | 43 + .../phyllite_raw_stairs_polishing.json | 72 + .../recipes/phyllite_raw_stairs_to_brick.json | 43 + .../recipes/phyllite_raw_wall_polishing.json | 72 + .../recipes/phyllite_raw_walls_to_brick.json | 43 + .../recipes/phyllite_relief_axe.json | 70 +- .../recipes/phyllite_relief_blank.json | 70 +- .../recipes/phyllite_relief_cross.json | 70 +- .../recipes/phyllite_relief_hammer.json | 70 +- .../recipes/phyllite_relief_hoe.json | 70 +- .../recipes/phyllite_relief_horizontal.json | 70 +- .../recipes/phyllite_relief_i.json | 70 +- .../recipes/phyllite_relief_left.json | 70 +- .../recipes/phyllite_relief_pickaxe.json | 70 +- .../recipes/phyllite_relief_plus.json | 70 +- .../recipes/phyllite_relief_right.json | 70 +- .../recipes/phyllite_relief_sword.json | 70 +- .../recipes/phyllite_relief_vertical.json | 70 +- .../advancements/recipes/phyllite_slab.json | 68 +- .../advancements/recipes/phyllite_smooth.json | 82 +- .../recipes/phyllite_smooth_brick.json | 68 +- .../phyllite_smooth_brick_furnace.json | 69 +- .../recipes/phyllite_smooth_brick_slab.json | 71 +- .../recipes/phyllite_smooth_brick_stairs.json | 69 +- .../recipes/phyllite_smooth_brick_wall.json | 69 +- .../recipes/phyllite_smooth_furnace.json | 68 +- .../recipes/phyllite_smooth_slab.json | 70 +- .../recipes/phyllite_smooth_stairs.json | 68 +- .../recipes/phyllite_smooth_wall.json | 68 +- .../advancements/recipes/phyllite_stairs.json | 66 +- .../recipes/phyllite_to_stone.json | 33 + .../advancements/recipes/phyllite_wall.json | 66 +- .../advancements/recipes/quartzite_brick.json | 66 +- .../quartzite_brick_block_polishing.json | 72 + .../recipes/quartzite_brick_furnace.json | 68 +- .../recipes/quartzite_brick_slab.json | 70 +- .../quartzite_brick_slab_polishing.json | 72 + .../quartzite_brick_slab_recombination.json | 43 + .../recipes/quartzite_brick_stairs.json | 68 +- .../quartzite_brick_stairs_polishing.json | 72 + .../recipes/quartzite_brick_wall.json | 68 +- .../quartzite_brick_wall_polishing.json | 72 + .../recipes/quartzite_cobblestone.json | 34 + .../recipes/quartzite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + ...quartzite_polished_slab_recombination.json | 43 + .../quartzite_polished_slabs_to_brick.json | 43 + .../quartzite_polished_stairs_to_brick.json | 43 + .../quartzite_polished_walls_to_brick.json | 43 + .../recipes/quartzite_raw_slab_polishing.json | 72 + .../quartzite_raw_slab_recombination.json | 43 + .../recipes/quartzite_raw_slabs_to_brick.json | 43 + .../quartzite_raw_stairs_polishing.json | 72 + .../quartzite_raw_stairs_to_brick.json | 43 + .../recipes/quartzite_raw_wall_polishing.json | 72 + .../recipes/quartzite_raw_walls_to_brick.json | 43 + .../recipes/quartzite_relief_axe.json | 70 +- .../recipes/quartzite_relief_blank.json | 70 +- .../recipes/quartzite_relief_cross.json | 70 +- .../recipes/quartzite_relief_hammer.json | 70 +- .../recipes/quartzite_relief_hoe.json | 70 +- .../recipes/quartzite_relief_horizontal.json | 70 +- .../recipes/quartzite_relief_i.json | 70 +- .../recipes/quartzite_relief_left.json | 70 +- .../recipes/quartzite_relief_pickaxe.json | 70 +- .../recipes/quartzite_relief_plus.json | 70 +- .../recipes/quartzite_relief_right.json | 70 +- .../recipes/quartzite_relief_sword.json | 70 +- .../recipes/quartzite_relief_vertical.json | 70 +- .../advancements/recipes/quartzite_slab.json | 68 +- .../recipes/quartzite_smooth.json | 82 +- .../recipes/quartzite_smooth_brick.json | 68 +- .../quartzite_smooth_brick_furnace.json | 69 +- .../recipes/quartzite_smooth_brick_slab.json | 71 +- .../quartzite_smooth_brick_stairs.json | 69 +- .../recipes/quartzite_smooth_brick_wall.json | 69 +- .../recipes/quartzite_smooth_furnace.json | 68 +- .../recipes/quartzite_smooth_slab.json | 70 +- .../recipes/quartzite_smooth_stairs.json | 68 +- .../recipes/quartzite_smooth_wall.json | 68 +- .../recipes/quartzite_stairs.json | 66 +- .../recipes/quartzite_to_stone.json | 33 + .../advancements/recipes/quartzite_wall.json | 66 +- .../advancements/recipes/rhyolite_brick.json | 66 +- .../rhyolite_brick_block_polishing.json | 72 + .../recipes/rhyolite_brick_furnace.json | 68 +- .../recipes/rhyolite_brick_slab.json | 70 +- .../rhyolite_brick_slab_polishing.json | 72 + .../rhyolite_brick_slab_recombination.json | 43 + .../recipes/rhyolite_brick_stairs.json | 68 +- .../rhyolite_brick_stairs_polishing.json | 72 + .../recipes/rhyolite_brick_wall.json | 68 +- .../rhyolite_brick_wall_polishing.json | 72 + .../recipes/rhyolite_cobblestone.json | 34 + .../recipes/rhyolite_furnace.json | 66 +- ...ite_polished_brick_slab_recombination.json | 43 + .../rhyolite_polished_slab_recombination.json | 43 + .../rhyolite_polished_slabs_to_brick.json | 43 + .../rhyolite_polished_stairs_to_brick.json | 43 + .../rhyolite_polished_walls_to_brick.json | 43 + .../recipes/rhyolite_raw_slab_polishing.json | 72 + .../rhyolite_raw_slab_recombination.json | 43 + .../recipes/rhyolite_raw_slabs_to_brick.json | 43 + .../rhyolite_raw_stairs_polishing.json | 72 + .../recipes/rhyolite_raw_stairs_to_brick.json | 43 + .../recipes/rhyolite_raw_wall_polishing.json | 72 + .../recipes/rhyolite_raw_walls_to_brick.json | 43 + .../recipes/rhyolite_relief_axe.json | 70 +- .../recipes/rhyolite_relief_blank.json | 70 +- .../recipes/rhyolite_relief_cross.json | 70 +- .../recipes/rhyolite_relief_hammer.json | 70 +- .../recipes/rhyolite_relief_hoe.json | 70 +- .../recipes/rhyolite_relief_horizontal.json | 70 +- .../recipes/rhyolite_relief_i.json | 70 +- .../recipes/rhyolite_relief_left.json | 70 +- .../recipes/rhyolite_relief_pickaxe.json | 70 +- .../recipes/rhyolite_relief_plus.json | 70 +- .../recipes/rhyolite_relief_right.json | 70 +- .../recipes/rhyolite_relief_sword.json | 70 +- .../recipes/rhyolite_relief_vertical.json | 70 +- .../advancements/recipes/rhyolite_slab.json | 68 +- .../advancements/recipes/rhyolite_smooth.json | 82 +- .../recipes/rhyolite_smooth_brick.json | 68 +- .../rhyolite_smooth_brick_furnace.json | 69 +- .../recipes/rhyolite_smooth_brick_slab.json | 71 +- .../recipes/rhyolite_smooth_brick_stairs.json | 69 +- .../recipes/rhyolite_smooth_brick_wall.json | 69 +- .../recipes/rhyolite_smooth_furnace.json | 68 +- .../recipes/rhyolite_smooth_slab.json | 70 +- .../recipes/rhyolite_smooth_stairs.json | 68 +- .../recipes/rhyolite_smooth_wall.json | 68 +- .../advancements/recipes/rhyolite_stairs.json | 66 +- .../recipes/rhyolite_to_stone.json | 33 + .../advancements/recipes/rhyolite_wall.json | 66 +- .../advancements/recipes/rock_salt.json | 39 + .../advancements/recipes/rock_salt_brick.json | 66 +- .../rock_salt_brick_block_polishing.json | 72 + .../recipes/rock_salt_brick_furnace.json | 68 +- .../recipes/rock_salt_brick_slab.json | 70 +- .../rock_salt_brick_slab_polishing.json | 72 + .../rock_salt_brick_slab_recombination.json | 43 + .../recipes/rock_salt_brick_stairs.json | 68 +- .../rock_salt_brick_stairs_polishing.json | 72 + .../recipes/rock_salt_brick_wall.json | 68 +- .../rock_salt_brick_wall_polishing.json | 72 + .../recipes/rock_salt_cobblestone.json | 34 + .../advancements/recipes/rock_salt_dust.json | 39 + .../recipes/rock_salt_furnace.json | 66 +- ...alt_polished_brick_slab_recombination.json | 43 + ...rock_salt_polished_slab_recombination.json | 43 + .../rock_salt_polished_slabs_to_brick.json | 43 + .../rock_salt_polished_stairs_to_brick.json | 43 + .../rock_salt_polished_walls_to_brick.json | 43 + .../recipes/rock_salt_raw_slab_polishing.json | 72 + .../rock_salt_raw_slab_recombination.json | 43 + .../recipes/rock_salt_raw_slabs_to_brick.json | 43 + .../rock_salt_raw_stairs_polishing.json | 72 + .../rock_salt_raw_stairs_to_brick.json | 43 + .../recipes/rock_salt_raw_wall_polishing.json | 72 + .../recipes/rock_salt_raw_walls_to_brick.json | 43 + .../recipes/rock_salt_relief_axe.json | 70 +- .../recipes/rock_salt_relief_blank.json | 70 +- .../recipes/rock_salt_relief_cross.json | 70 +- .../recipes/rock_salt_relief_hammer.json | 70 +- .../recipes/rock_salt_relief_hoe.json | 70 +- .../recipes/rock_salt_relief_horizontal.json | 70 +- .../recipes/rock_salt_relief_i.json | 70 +- .../recipes/rock_salt_relief_left.json | 70 +- .../recipes/rock_salt_relief_pickaxe.json | 70 +- .../recipes/rock_salt_relief_plus.json | 70 +- .../recipes/rock_salt_relief_right.json | 70 +- .../recipes/rock_salt_relief_sword.json | 70 +- .../recipes/rock_salt_relief_vertical.json | 70 +- .../advancements/recipes/rock_salt_slab.json | 68 +- .../recipes/rock_salt_smooth.json | 82 +- .../recipes/rock_salt_smooth_brick.json | 68 +- .../rock_salt_smooth_brick_furnace.json | 69 +- .../recipes/rock_salt_smooth_brick_slab.json | 71 +- .../rock_salt_smooth_brick_stairs.json | 69 +- .../recipes/rock_salt_smooth_brick_wall.json | 69 +- .../recipes/rock_salt_smooth_furnace.json | 68 +- .../recipes/rock_salt_smooth_slab.json | 70 +- .../recipes/rock_salt_smooth_stairs.json | 68 +- .../recipes/rock_salt_smooth_wall.json | 68 +- .../recipes/rock_salt_stairs.json | 66 +- .../recipes/rock_salt_to_stone.json | 33 + .../advancements/recipes/rock_salt_wall.json | 66 +- .../advancements/recipes/rocksaltlamp.json | 72 +- .../recipes/rocksaltstreetlamp.json | 72 +- .../advancements/recipes/schist_brick.json | 66 +- .../recipes/schist_brick_block_polishing.json | 72 + .../recipes/schist_brick_furnace.json | 68 +- .../recipes/schist_brick_slab.json | 70 +- .../recipes/schist_brick_slab_polishing.json | 72 + .../schist_brick_slab_recombination.json | 43 + .../recipes/schist_brick_stairs.json | 68 +- .../schist_brick_stairs_polishing.json | 72 + .../recipes/schist_brick_wall.json | 68 +- .../recipes/schist_brick_wall_polishing.json | 72 + .../recipes/schist_cobblestone.json | 34 + .../advancements/recipes/schist_furnace.json | 66 +- ...ist_polished_brick_slab_recombination.json | 43 + .../schist_polished_slab_recombination.json | 43 + .../schist_polished_slabs_to_brick.json | 43 + .../schist_polished_stairs_to_brick.json | 43 + .../schist_polished_walls_to_brick.json | 43 + .../recipes/schist_raw_slab_polishing.json | 72 + .../schist_raw_slab_recombination.json | 43 + .../recipes/schist_raw_slabs_to_brick.json | 43 + .../recipes/schist_raw_stairs_polishing.json | 72 + .../recipes/schist_raw_stairs_to_brick.json | 43 + .../recipes/schist_raw_wall_polishing.json | 72 + .../recipes/schist_raw_walls_to_brick.json | 43 + .../recipes/schist_relief_axe.json | 70 +- .../recipes/schist_relief_blank.json | 70 +- .../recipes/schist_relief_cross.json | 70 +- .../recipes/schist_relief_hammer.json | 70 +- .../recipes/schist_relief_hoe.json | 70 +- .../recipes/schist_relief_horizontal.json | 70 +- .../advancements/recipes/schist_relief_i.json | 70 +- .../recipes/schist_relief_left.json | 70 +- .../recipes/schist_relief_pickaxe.json | 70 +- .../recipes/schist_relief_plus.json | 70 +- .../recipes/schist_relief_right.json | 70 +- .../recipes/schist_relief_sword.json | 70 +- .../recipes/schist_relief_vertical.json | 70 +- .../advancements/recipes/schist_slab.json | 68 +- .../advancements/recipes/schist_smooth.json | 82 +- .../recipes/schist_smooth_brick.json | 68 +- .../recipes/schist_smooth_brick_furnace.json | 69 +- .../recipes/schist_smooth_brick_slab.json | 71 +- .../recipes/schist_smooth_brick_stairs.json | 69 +- .../recipes/schist_smooth_brick_wall.json | 69 +- .../recipes/schist_smooth_furnace.json | 68 +- .../recipes/schist_smooth_slab.json | 70 +- .../recipes/schist_smooth_stairs.json | 68 +- .../recipes/schist_smooth_wall.json | 68 +- .../advancements/recipes/schist_stairs.json | 66 +- .../advancements/recipes/schist_to_stone.json | 33 + .../advancements/recipes/schist_wall.json | 66 +- .../advancements/recipes/scoria_brick.json | 66 +- .../recipes/scoria_brick_block_polishing.json | 72 + .../recipes/scoria_brick_furnace.json | 68 +- .../recipes/scoria_brick_slab.json | 70 +- .../recipes/scoria_brick_slab_polishing.json | 72 + .../scoria_brick_slab_recombination.json | 43 + .../recipes/scoria_brick_stairs.json | 68 +- .../scoria_brick_stairs_polishing.json | 72 + .../recipes/scoria_brick_wall.json | 68 +- .../recipes/scoria_brick_wall_polishing.json | 72 + .../recipes/scoria_cobblestone.json | 34 + .../advancements/recipes/scoria_furnace.json | 66 +- ...ria_polished_brick_slab_recombination.json | 43 + .../scoria_polished_slab_recombination.json | 43 + .../scoria_polished_slabs_to_brick.json | 43 + .../scoria_polished_stairs_to_brick.json | 43 + .../scoria_polished_walls_to_brick.json | 43 + .../recipes/scoria_raw_slab_polishing.json | 72 + .../scoria_raw_slab_recombination.json | 43 + .../recipes/scoria_raw_slabs_to_brick.json | 43 + .../recipes/scoria_raw_stairs_polishing.json | 72 + .../recipes/scoria_raw_stairs_to_brick.json | 43 + .../recipes/scoria_raw_wall_polishing.json | 72 + .../recipes/scoria_raw_walls_to_brick.json | 43 + .../recipes/scoria_relief_axe.json | 70 +- .../recipes/scoria_relief_blank.json | 70 +- .../recipes/scoria_relief_cross.json | 70 +- .../recipes/scoria_relief_hammer.json | 70 +- .../recipes/scoria_relief_hoe.json | 70 +- .../recipes/scoria_relief_horizontal.json | 70 +- .../advancements/recipes/scoria_relief_i.json | 70 +- .../recipes/scoria_relief_left.json | 70 +- .../recipes/scoria_relief_pickaxe.json | 70 +- .../recipes/scoria_relief_plus.json | 70 +- .../recipes/scoria_relief_right.json | 70 +- .../recipes/scoria_relief_sword.json | 70 +- .../recipes/scoria_relief_vertical.json | 70 +- .../advancements/recipes/scoria_slab.json | 68 +- .../advancements/recipes/scoria_smooth.json | 82 +- .../recipes/scoria_smooth_brick.json | 68 +- .../recipes/scoria_smooth_brick_furnace.json | 69 +- .../recipes/scoria_smooth_brick_slab.json | 71 +- .../recipes/scoria_smooth_brick_stairs.json | 69 +- .../recipes/scoria_smooth_brick_wall.json | 69 +- .../recipes/scoria_smooth_furnace.json | 68 +- .../recipes/scoria_smooth_slab.json | 70 +- .../recipes/scoria_smooth_stairs.json | 68 +- .../recipes/scoria_smooth_wall.json | 68 +- .../advancements/recipes/scoria_stairs.json | 66 +- .../advancements/recipes/scoria_to_stone.json | 33 + .../advancements/recipes/scoria_wall.json | 66 +- .../advancements/recipes/shale_brick.json | 66 +- .../recipes/shale_brick_block_polishing.json | 72 + .../recipes/shale_brick_furnace.json | 68 +- .../recipes/shale_brick_slab.json | 70 +- .../recipes/shale_brick_slab_polishing.json | 72 + .../shale_brick_slab_recombination.json | 43 + .../recipes/shale_brick_stairs.json | 68 +- .../recipes/shale_brick_stairs_polishing.json | 72 + .../recipes/shale_brick_wall.json | 68 +- .../recipes/shale_brick_wall_polishing.json | 72 + .../recipes/shale_cobblestone.json | 34 + .../advancements/recipes/shale_furnace.json | 66 +- ...ale_polished_brick_slab_recombination.json | 43 + .../shale_polished_slab_recombination.json | 43 + .../shale_polished_slabs_to_brick.json | 43 + .../shale_polished_stairs_to_brick.json | 43 + .../shale_polished_walls_to_brick.json | 43 + .../recipes/shale_raw_slab_polishing.json | 72 + .../recipes/shale_raw_slab_recombination.json | 43 + .../recipes/shale_raw_slabs_to_brick.json | 43 + .../recipes/shale_raw_stairs_polishing.json | 72 + .../recipes/shale_raw_stairs_to_brick.json | 43 + .../recipes/shale_raw_wall_polishing.json | 72 + .../recipes/shale_raw_walls_to_brick.json | 43 + .../recipes/shale_relief_axe.json | 70 +- .../recipes/shale_relief_blank.json | 70 +- .../recipes/shale_relief_cross.json | 70 +- .../recipes/shale_relief_hammer.json | 70 +- .../recipes/shale_relief_hoe.json | 70 +- .../recipes/shale_relief_horizontal.json | 70 +- .../advancements/recipes/shale_relief_i.json | 70 +- .../recipes/shale_relief_left.json | 70 +- .../recipes/shale_relief_pickaxe.json | 70 +- .../recipes/shale_relief_plus.json | 70 +- .../recipes/shale_relief_right.json | 70 +- .../recipes/shale_relief_sword.json | 70 +- .../recipes/shale_relief_vertical.json | 70 +- .../advancements/recipes/shale_slab.json | 68 +- .../advancements/recipes/shale_smooth.json | 82 +- .../recipes/shale_smooth_brick.json | 68 +- .../recipes/shale_smooth_brick_furnace.json | 69 +- .../recipes/shale_smooth_brick_slab.json | 71 +- .../recipes/shale_smooth_brick_stairs.json | 69 +- .../recipes/shale_smooth_brick_wall.json | 69 +- .../recipes/shale_smooth_furnace.json | 68 +- .../recipes/shale_smooth_slab.json | 70 +- .../recipes/shale_smooth_stairs.json | 68 +- .../recipes/shale_smooth_wall.json | 68 +- .../advancements/recipes/shale_stairs.json | 66 +- .../advancements/recipes/shale_to_stone.json | 33 + .../advancements/recipes/shale_wall.json | 66 +- .../advancements/recipes/siltstone_brick.json | 66 +- .../siltstone_brick_block_polishing.json | 72 + .../recipes/siltstone_brick_furnace.json | 68 +- .../recipes/siltstone_brick_slab.json | 70 +- .../siltstone_brick_slab_polishing.json | 72 + .../siltstone_brick_slab_recombination.json | 43 + .../recipes/siltstone_brick_stairs.json | 68 +- .../siltstone_brick_stairs_polishing.json | 72 + .../recipes/siltstone_brick_wall.json | 68 +- .../siltstone_brick_wall_polishing.json | 72 + .../recipes/siltstone_cobblestone.json | 34 + .../recipes/siltstone_furnace.json | 66 +- ...one_polished_brick_slab_recombination.json | 43 + ...siltstone_polished_slab_recombination.json | 43 + .../siltstone_polished_slabs_to_brick.json | 43 + .../siltstone_polished_stairs_to_brick.json | 43 + .../siltstone_polished_walls_to_brick.json | 43 + .../recipes/siltstone_raw_slab_polishing.json | 72 + .../siltstone_raw_slab_recombination.json | 43 + .../recipes/siltstone_raw_slabs_to_brick.json | 43 + .../siltstone_raw_stairs_polishing.json | 72 + .../siltstone_raw_stairs_to_brick.json | 43 + .../recipes/siltstone_raw_wall_polishing.json | 72 + .../recipes/siltstone_raw_walls_to_brick.json | 43 + .../recipes/siltstone_relief_axe.json | 70 +- .../recipes/siltstone_relief_blank.json | 70 +- .../recipes/siltstone_relief_cross.json | 70 +- .../recipes/siltstone_relief_hammer.json | 70 +- .../recipes/siltstone_relief_hoe.json | 70 +- .../recipes/siltstone_relief_horizontal.json | 70 +- .../recipes/siltstone_relief_i.json | 70 +- .../recipes/siltstone_relief_left.json | 70 +- .../recipes/siltstone_relief_pickaxe.json | 70 +- .../recipes/siltstone_relief_plus.json | 70 +- .../recipes/siltstone_relief_right.json | 70 +- .../recipes/siltstone_relief_sword.json | 70 +- .../recipes/siltstone_relief_vertical.json | 70 +- .../advancements/recipes/siltstone_slab.json | 68 +- .../recipes/siltstone_smooth.json | 82 +- .../recipes/siltstone_smooth_brick.json | 68 +- .../siltstone_smooth_brick_furnace.json | 69 +- .../recipes/siltstone_smooth_brick_slab.json | 71 +- .../siltstone_smooth_brick_stairs.json | 69 +- .../recipes/siltstone_smooth_brick_wall.json | 69 +- .../recipes/siltstone_smooth_furnace.json | 68 +- .../recipes/siltstone_smooth_slab.json | 70 +- .../recipes/siltstone_smooth_stairs.json | 68 +- .../recipes/siltstone_smooth_wall.json | 68 +- .../recipes/siltstone_stairs.json | 66 +- .../recipes/siltstone_to_stone.json | 33 + .../advancements/recipes/siltstone_wall.json | 66 +- .../advancements/recipes/slate_brick.json | 66 +- .../recipes/slate_brick_block_polishing.json | 72 + .../recipes/slate_brick_furnace.json | 68 +- .../recipes/slate_brick_slab.json | 70 +- .../recipes/slate_brick_slab_polishing.json | 72 + .../slate_brick_slab_recombination.json | 43 + .../recipes/slate_brick_stairs.json | 68 +- .../recipes/slate_brick_stairs_polishing.json | 72 + .../recipes/slate_brick_wall.json | 68 +- .../recipes/slate_brick_wall_polishing.json | 72 + .../recipes/slate_cobblestone.json | 34 + .../advancements/recipes/slate_furnace.json | 66 +- ...ate_polished_brick_slab_recombination.json | 43 + .../slate_polished_slab_recombination.json | 43 + .../slate_polished_slabs_to_brick.json | 43 + .../slate_polished_stairs_to_brick.json | 43 + .../slate_polished_walls_to_brick.json | 43 + .../recipes/slate_raw_slab_polishing.json | 72 + .../recipes/slate_raw_slab_recombination.json | 43 + .../recipes/slate_raw_slabs_to_brick.json | 43 + .../recipes/slate_raw_stairs_polishing.json | 72 + .../recipes/slate_raw_stairs_to_brick.json | 43 + .../recipes/slate_raw_wall_polishing.json | 72 + .../recipes/slate_raw_walls_to_brick.json | 43 + .../recipes/slate_relief_axe.json | 70 +- .../recipes/slate_relief_blank.json | 70 +- .../recipes/slate_relief_cross.json | 70 +- .../recipes/slate_relief_hammer.json | 70 +- .../recipes/slate_relief_hoe.json | 70 +- .../recipes/slate_relief_horizontal.json | 70 +- .../advancements/recipes/slate_relief_i.json | 70 +- .../recipes/slate_relief_left.json | 70 +- .../recipes/slate_relief_pickaxe.json | 70 +- .../recipes/slate_relief_plus.json | 70 +- .../recipes/slate_relief_right.json | 70 +- .../recipes/slate_relief_sword.json | 70 +- .../recipes/slate_relief_vertical.json | 70 +- .../advancements/recipes/slate_slab.json | 68 +- .../advancements/recipes/slate_smooth.json | 82 +- .../recipes/slate_smooth_brick.json | 68 +- .../recipes/slate_smooth_brick_furnace.json | 69 +- .../recipes/slate_smooth_brick_slab.json | 71 +- .../recipes/slate_smooth_brick_stairs.json | 69 +- .../recipes/slate_smooth_brick_wall.json | 69 +- .../recipes/slate_smooth_furnace.json | 68 +- .../recipes/slate_smooth_slab.json | 70 +- .../recipes/slate_smooth_stairs.json | 68 +- .../recipes/slate_smooth_wall.json | 68 +- .../advancements/recipes/slate_stairs.json | 66 +- .../advancements/recipes/slate_to_stone.json | 33 + .../advancements/recipes/slate_wall.json | 66 +- .../advancements/recipes/sulfur_block.json | 43 + .../advancements/recipes/sulfur_dust.json | 43 + .../advancements/recipes/tuff_brick.json | 64 +- .../recipes/tuff_brick_block_polishing.json | 72 + .../recipes/tuff_brick_furnace.json | 68 +- .../advancements/recipes/tuff_brick_slab.json | 70 +- .../recipes/tuff_brick_slab_polishing.json | 72 + .../tuff_brick_slab_recombination.json | 43 + .../recipes/tuff_brick_stairs.json | 68 +- .../recipes/tuff_brick_stairs_polishing.json | 72 + .../advancements/recipes/tuff_brick_wall.json | 68 +- .../recipes/tuff_brick_wall_polishing.json | 72 + .../recipes/tuff_cobblestone.json | 34 + .../advancements/recipes/tuff_furnace.json | 64 +- ...uff_polished_brick_slab_recombination.json | 43 + .../tuff_polished_slab_recombination.json | 43 + .../recipes/tuff_polished_slabs_to_brick.json | 43 + .../tuff_polished_stairs_to_brick.json | 43 + .../recipes/tuff_polished_walls_to_brick.json | 43 + .../recipes/tuff_raw_slab_polishing.json | 72 + .../recipes/tuff_raw_slab_recombination.json | 43 + .../recipes/tuff_raw_slabs_to_brick.json | 43 + .../recipes/tuff_raw_stairs_polishing.json | 72 + .../recipes/tuff_raw_stairs_to_brick.json | 43 + .../recipes/tuff_raw_wall_polishing.json | 72 + .../recipes/tuff_raw_walls_to_brick.json | 43 + .../advancements/recipes/tuff_relief_axe.json | 70 +- .../recipes/tuff_relief_blank.json | 68 +- .../recipes/tuff_relief_cross.json | 70 +- .../recipes/tuff_relief_hammer.json | 70 +- .../advancements/recipes/tuff_relief_hoe.json | 70 +- .../recipes/tuff_relief_horizontal.json | 70 +- .../advancements/recipes/tuff_relief_i.json | 70 +- .../recipes/tuff_relief_left.json | 70 +- .../recipes/tuff_relief_pickaxe.json | 70 +- .../recipes/tuff_relief_plus.json | 70 +- .../recipes/tuff_relief_right.json | 70 +- .../recipes/tuff_relief_sword.json | 70 +- .../recipes/tuff_relief_vertical.json | 70 +- .../advancements/recipes/tuff_slab.json | 64 +- .../advancements/recipes/tuff_smooth.json | 80 +- .../recipes/tuff_smooth_brick.json | 68 +- .../recipes/tuff_smooth_brick_furnace.json | 69 +- .../recipes/tuff_smooth_brick_slab.json | 71 +- .../recipes/tuff_smooth_brick_stairs.json | 69 +- .../recipes/tuff_smooth_brick_wall.json | 69 +- .../recipes/tuff_smooth_furnace.json | 68 +- .../recipes/tuff_smooth_slab.json | 68 +- .../recipes/tuff_smooth_stairs.json | 68 +- .../recipes/tuff_smooth_wall.json | 68 +- .../advancements/recipes/tuff_stairs.json | 64 +- .../advancements/recipes/tuff_to_stone.json | 33 + .../advancements/recipes/tuff_wall.json | 64 +- .../data/mineralogy/orespawn/provider.json | 1288 ++++++------ .../mineralogy/recipes/amphibolite_brick.json | 47 +- .../amphibolite_brick_block_polishing.json | 25 + .../recipes/amphibolite_brick_furnace.json | 62 +- .../recipes/amphibolite_brick_slab.json | 49 +- .../amphibolite_brick_slab_polishing.json | 25 + .../amphibolite_brick_slab_recombination.json | 25 + .../recipes/amphibolite_brick_stairs.json | 53 +- .../amphibolite_brick_stairs_polishing.json | 25 + .../recipes/amphibolite_brick_wall.json | 51 +- .../amphibolite_brick_wall_polishing.json | 25 + .../recipes/amphibolite_cobblestone.json | 41 +- .../recipes/amphibolite_furnace.json | 58 +- .../amphibolite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + ...phibolite_polished_slab_recombination.json | 25 + .../amphibolite_polished_slabs_to_brick.json | 26 + .../amphibolite_polished_stairs_to_brick.json | 26 + .../amphibolite_polished_walls_to_brick.json | 26 + .../amphibolite_raw_slab_polishing.json | 25 + .../amphibolite_raw_slab_recombination.json | 25 + .../amphibolite_raw_slabs_to_brick.json | 26 + .../amphibolite_raw_stairs_polishing.json | 25 + .../amphibolite_raw_stairs_to_brick.json | 26 + .../amphibolite_raw_wall_polishing.json | 25 + .../amphibolite_raw_walls_to_brick.json | 26 + .../recipes/amphibolite_relief_axe.json | 91 +- .../recipes/amphibolite_relief_blank.json | 53 +- .../recipes/amphibolite_relief_cross.json | 53 +- .../recipes/amphibolite_relief_hammer.json | 65 +- .../recipes/amphibolite_relief_hoe.json | 91 +- .../amphibolite_relief_horizontal.json | 49 +- .../recipes/amphibolite_relief_i.json | 53 +- .../recipes/amphibolite_relief_left.json | 53 +- .../recipes/amphibolite_relief_pickaxe.json | 91 +- .../recipes/amphibolite_relief_plus.json | 53 +- .../recipes/amphibolite_relief_right.json | 51 +- .../recipes/amphibolite_relief_sword.json | 91 +- .../recipes/amphibolite_relief_vertical.json | 53 +- .../mineralogy/recipes/amphibolite_slab.json | 45 +- ...te_slab_from_amphibolite_stonecutting.json | 21 - .../recipes/amphibolite_smooth.json | 44 +- .../recipes/amphibolite_smooth_brick.json | 51 +- .../amphibolite_smooth_brick_furnace.json | 66 +- .../amphibolite_smooth_brick_slab.json | 53 +- .../amphibolite_smooth_brick_stairs.json | 57 +- .../amphibolite_smooth_brick_wall.json | 55 +- .../recipes/amphibolite_smooth_furnace.json | 62 +- .../recipes/amphibolite_smooth_slab.json | 49 +- .../recipes/amphibolite_smooth_stairs.json | 53 +- .../recipes/amphibolite_smooth_wall.json | 51 +- .../recipes/amphibolite_stairs.json | 49 +- ..._stairs_from_amphibolite_stonecutting.json | 21 - .../mineralogy/recipes/amphibolite_wall.json | 47 +- ...te_wall_from_amphibolite_stonecutting.json | 21 - .../mineralogy/recipes/andesite_brick.json | 47 +- .../andesite_brick_block_polishing.json | 25 + .../recipes/andesite_brick_furnace.json | 62 +- .../recipes/andesite_brick_slab.json | 49 +- .../andesite_brick_slab_polishing.json | 25 + .../andesite_brick_slab_recombination.json | 25 + .../recipes/andesite_brick_stairs.json | 53 +- .../andesite_brick_stairs_polishing.json | 25 + .../recipes/andesite_brick_wall.json | 51 +- .../andesite_brick_wall_polishing.json | 25 + .../recipes/andesite_cobblestone.json | 41 +- .../mineralogy/recipes/andesite_furnace.json | 58 +- .../recipes/andesite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../andesite_polished_slab_recombination.json | 25 + .../andesite_polished_slabs_to_brick.json | 26 + .../andesite_polished_stairs_to_brick.json | 26 + .../andesite_polished_walls_to_brick.json | 26 + .../recipes/andesite_raw_slab_polishing.json | 25 + .../andesite_raw_slab_recombination.json | 25 + .../recipes/andesite_raw_slabs_to_brick.json | 26 + .../andesite_raw_stairs_polishing.json | 25 + .../recipes/andesite_raw_stairs_to_brick.json | 26 + .../recipes/andesite_raw_wall_polishing.json | 25 + .../recipes/andesite_raw_walls_to_brick.json | 26 + .../recipes/andesite_relief_axe.json | 91 +- .../recipes/andesite_relief_blank.json | 53 +- .../recipes/andesite_relief_cross.json | 53 +- .../recipes/andesite_relief_hammer.json | 65 +- .../recipes/andesite_relief_hoe.json | 91 +- .../recipes/andesite_relief_horizontal.json | 49 +- .../mineralogy/recipes/andesite_relief_i.json | 53 +- .../recipes/andesite_relief_left.json | 53 +- .../recipes/andesite_relief_pickaxe.json | 91 +- .../recipes/andesite_relief_plus.json | 53 +- .../recipes/andesite_relief_right.json | 51 +- .../recipes/andesite_relief_sword.json | 91 +- .../recipes/andesite_relief_vertical.json | 53 +- .../mineralogy/recipes/andesite_slab.json | 45 +- ...esite_slab_from_andesite_stonecutting.json | 21 - .../recipes/andesite_slab_from_vanilla.json | 22 + .../recipes/andesite_slab_to_vanilla.json | 22 + .../mineralogy/recipes/andesite_smooth.json | 44 +- .../recipes/andesite_smooth_brick.json | 51 +- .../andesite_smooth_brick_furnace.json | 66 +- .../recipes/andesite_smooth_brick_slab.json | 53 +- .../recipes/andesite_smooth_brick_stairs.json | 57 +- .../recipes/andesite_smooth_brick_wall.json | 55 +- .../recipes/andesite_smooth_furnace.json | 62 +- .../recipes/andesite_smooth_slab.json | 49 +- .../andesite_smooth_slab_from_vanilla.json | 22 + .../andesite_smooth_slab_to_vanilla.json | 22 + .../recipes/andesite_smooth_stairs.json | 53 +- .../recipes/andesite_smooth_wall.json | 51 +- .../mineralogy/recipes/andesite_stairs.json | 49 +- ...ite_stairs_from_andesite_stonecutting.json | 21 - .../mineralogy/recipes/andesite_wall.json | 47 +- ...esite_wall_from_andesite_stonecutting.json | 21 - .../data/mineralogy/recipes/basalt_brick.json | 47 +- .../recipes/basalt_brick_block_polishing.json | 25 + .../recipes/basalt_brick_furnace.json | 62 +- .../mineralogy/recipes/basalt_brick_slab.json | 49 +- .../recipes/basalt_brick_slab_polishing.json | 25 + .../basalt_brick_slab_recombination.json | 25 + .../recipes/basalt_brick_stairs.json | 53 +- .../basalt_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/basalt_brick_wall.json | 51 +- .../recipes/basalt_brick_wall_polishing.json | 25 + .../recipes/basalt_cobblestone.json | 41 +- .../mineralogy/recipes/basalt_furnace.json | 58 +- .../recipes/basalt_furnace_from_rock.json | 29 - ...alt_polished_brick_slab_recombination.json | 25 + .../basalt_polished_slab_recombination.json | 25 + .../basalt_polished_slabs_to_brick.json | 26 + .../basalt_polished_stairs_to_brick.json | 26 + .../basalt_polished_walls_to_brick.json | 26 + .../recipes/basalt_raw_slab_polishing.json | 25 + .../basalt_raw_slab_recombination.json | 25 + .../recipes/basalt_raw_slabs_to_brick.json | 26 + .../recipes/basalt_raw_stairs_polishing.json | 25 + .../recipes/basalt_raw_stairs_to_brick.json | 26 + .../recipes/basalt_raw_wall_polishing.json | 25 + .../recipes/basalt_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/basalt_relief_axe.json | 91 +- .../recipes/basalt_relief_blank.json | 53 +- .../recipes/basalt_relief_cross.json | 53 +- .../recipes/basalt_relief_hammer.json | 65 +- .../mineralogy/recipes/basalt_relief_hoe.json | 91 +- .../recipes/basalt_relief_horizontal.json | 49 +- .../mineralogy/recipes/basalt_relief_i.json | 53 +- .../recipes/basalt_relief_left.json | 53 +- .../recipes/basalt_relief_pickaxe.json | 91 +- .../recipes/basalt_relief_plus.json | 53 +- .../recipes/basalt_relief_right.json | 51 +- .../recipes/basalt_relief_sword.json | 91 +- .../recipes/basalt_relief_vertical.json | 53 +- .../data/mineralogy/recipes/basalt_slab.json | 45 +- .../basalt_slab_from_basalt_stonecutting.json | 21 - .../mineralogy/recipes/basalt_smooth.json | 44 +- .../recipes/basalt_smooth_brick.json | 51 +- .../recipes/basalt_smooth_brick_furnace.json | 66 +- .../recipes/basalt_smooth_brick_slab.json | 53 +- .../recipes/basalt_smooth_brick_stairs.json | 57 +- .../recipes/basalt_smooth_brick_wall.json | 55 +- .../recipes/basalt_smooth_furnace.json | 62 +- .../recipes/basalt_smooth_slab.json | 49 +- .../recipes/basalt_smooth_stairs.json | 53 +- .../recipes/basalt_smooth_wall.json | 51 +- .../mineralogy/recipes/basalt_stairs.json | 49 +- ...asalt_stairs_from_basalt_stonecutting.json | 21 - .../data/mineralogy/recipes/basalt_wall.json | 47 +- .../basalt_wall_from_basalt_stonecutting.json | 21 - .../recipes/basaltic_glass_brick.json | 47 +- .../basaltic_glass_brick_block_polishing.json | 25 + .../recipes/basaltic_glass_brick_furnace.json | 62 +- .../recipes/basaltic_glass_brick_slab.json | 49 +- .../basaltic_glass_brick_slab_polishing.json | 25 + ...saltic_glass_brick_slab_recombination.json | 25 + .../recipes/basaltic_glass_brick_stairs.json | 53 +- ...basaltic_glass_brick_stairs_polishing.json | 25 + .../recipes/basaltic_glass_brick_wall.json | 51 +- .../basaltic_glass_brick_wall_polishing.json | 25 + .../recipes/basaltic_glass_cobblestone.json | 41 +- .../recipes/basaltic_glass_furnace.json | 58 +- .../basaltic_glass_furnace_from_rock.json | 29 - ...ass_polished_brick_slab_recombination.json | 25 + ...tic_glass_polished_slab_recombination.json | 25 + ...asaltic_glass_polished_slabs_to_brick.json | 26 + ...saltic_glass_polished_stairs_to_brick.json | 26 + ...asaltic_glass_polished_walls_to_brick.json | 26 + .../basaltic_glass_raw_slab_polishing.json | 25 + ...basaltic_glass_raw_slab_recombination.json | 25 + .../basaltic_glass_raw_slabs_to_brick.json | 26 + .../basaltic_glass_raw_stairs_polishing.json | 25 + .../basaltic_glass_raw_stairs_to_brick.json | 26 + .../basaltic_glass_raw_wall_polishing.json | 25 + .../basaltic_glass_raw_walls_to_brick.json | 26 + .../recipes/basaltic_glass_relief_axe.json | 91 +- .../recipes/basaltic_glass_relief_blank.json | 53 +- .../recipes/basaltic_glass_relief_cross.json | 53 +- .../recipes/basaltic_glass_relief_hammer.json | 65 +- .../recipes/basaltic_glass_relief_hoe.json | 91 +- .../basaltic_glass_relief_horizontal.json | 49 +- .../recipes/basaltic_glass_relief_i.json | 53 +- .../recipes/basaltic_glass_relief_left.json | 53 +- .../basaltic_glass_relief_pickaxe.json | 91 +- .../recipes/basaltic_glass_relief_plus.json | 53 +- .../recipes/basaltic_glass_relief_right.json | 51 +- .../recipes/basaltic_glass_relief_sword.json | 91 +- .../basaltic_glass_relief_vertical.json | 53 +- .../recipes/basaltic_glass_slab.json | 45 +- ...slab_from_basaltic_glass_stonecutting.json | 21 - .../recipes/basaltic_glass_smooth.json | 44 +- .../recipes/basaltic_glass_smooth_brick.json | 51 +- .../basaltic_glass_smooth_brick_furnace.json | 66 +- .../basaltic_glass_smooth_brick_slab.json | 53 +- .../basaltic_glass_smooth_brick_stairs.json | 57 +- .../basaltic_glass_smooth_brick_wall.json | 55 +- .../basaltic_glass_smooth_furnace.json | 62 +- .../recipes/basaltic_glass_smooth_slab.json | 49 +- .../recipes/basaltic_glass_smooth_stairs.json | 53 +- .../recipes/basaltic_glass_smooth_wall.json | 51 +- .../recipes/basaltic_glass_stairs.json | 49 +- ...airs_from_basaltic_glass_stonecutting.json | 21 - .../recipes/basaltic_glass_wall.json | 47 +- ...wall_from_basaltic_glass_stonecutting.json | 21 - .../data/mineralogy/recipes/chalk.json | 33 +- .../data/mineralogy/recipes/chalk_dust.json | 26 +- .../data/mineralogy/recipes/cobblestone.json | 41 +- .../recipes/conglomerate_brick.json | 47 +- .../conglomerate_brick_block_polishing.json | 25 + .../recipes/conglomerate_brick_furnace.json | 62 +- .../recipes/conglomerate_brick_slab.json | 49 +- .../conglomerate_brick_slab_polishing.json | 25 + ...conglomerate_brick_slab_recombination.json | 25 + .../recipes/conglomerate_brick_stairs.json | 53 +- .../conglomerate_brick_stairs_polishing.json | 25 + .../recipes/conglomerate_brick_wall.json | 51 +- .../conglomerate_brick_wall_polishing.json | 25 + .../recipes/conglomerate_cobblestone.json | 41 +- .../recipes/conglomerate_furnace.json | 58 +- .../conglomerate_furnace_from_rock.json | 29 - ...ate_polished_brick_slab_recombination.json | 25 + ...glomerate_polished_slab_recombination.json | 25 + .../conglomerate_polished_slabs_to_brick.json | 26 + ...conglomerate_polished_stairs_to_brick.json | 26 + .../conglomerate_polished_walls_to_brick.json | 26 + .../conglomerate_raw_slab_polishing.json | 25 + .../conglomerate_raw_slab_recombination.json | 25 + .../conglomerate_raw_slabs_to_brick.json | 26 + .../conglomerate_raw_stairs_polishing.json | 25 + .../conglomerate_raw_stairs_to_brick.json | 26 + .../conglomerate_raw_wall_polishing.json | 25 + .../conglomerate_raw_walls_to_brick.json | 26 + .../recipes/conglomerate_relief_axe.json | 91 +- .../recipes/conglomerate_relief_blank.json | 53 +- .../recipes/conglomerate_relief_cross.json | 53 +- .../recipes/conglomerate_relief_hammer.json | 65 +- .../recipes/conglomerate_relief_hoe.json | 91 +- .../conglomerate_relief_horizontal.json | 49 +- .../recipes/conglomerate_relief_i.json | 53 +- .../recipes/conglomerate_relief_left.json | 53 +- .../recipes/conglomerate_relief_pickaxe.json | 91 +- .../recipes/conglomerate_relief_plus.json | 53 +- .../recipes/conglomerate_relief_right.json | 51 +- .../recipes/conglomerate_relief_sword.json | 91 +- .../recipes/conglomerate_relief_vertical.json | 53 +- .../mineralogy/recipes/conglomerate_slab.json | 45 +- ...e_slab_from_conglomerate_stonecutting.json | 21 - .../recipes/conglomerate_smooth.json | 44 +- .../recipes/conglomerate_smooth_brick.json | 51 +- .../conglomerate_smooth_brick_furnace.json | 66 +- .../conglomerate_smooth_brick_slab.json | 53 +- .../conglomerate_smooth_brick_stairs.json | 57 +- .../conglomerate_smooth_brick_wall.json | 55 +- .../recipes/conglomerate_smooth_furnace.json | 62 +- .../recipes/conglomerate_smooth_slab.json | 49 +- .../recipes/conglomerate_smooth_stairs.json | 53 +- .../recipes/conglomerate_smooth_wall.json | 51 +- .../recipes/conglomerate_stairs.json | 49 +- ...stairs_from_conglomerate_stonecutting.json | 21 - .../mineralogy/recipes/conglomerate_wall.json | 47 +- ...e_wall_from_conglomerate_stonecutting.json | 21 - .../mineralogy/recipes/diabase_brick.json | 47 +- .../diabase_brick_block_polishing.json | 25 + .../recipes/diabase_brick_furnace.json | 62 +- .../recipes/diabase_brick_slab.json | 49 +- .../recipes/diabase_brick_slab_polishing.json | 25 + .../diabase_brick_slab_recombination.json | 25 + .../recipes/diabase_brick_stairs.json | 53 +- .../diabase_brick_stairs_polishing.json | 25 + .../recipes/diabase_brick_wall.json | 51 +- .../recipes/diabase_brick_wall_polishing.json | 25 + .../recipes/diabase_cobblestone.json | 41 +- .../mineralogy/recipes/diabase_furnace.json | 58 +- .../recipes/diabase_furnace_from_rock.json | 29 - ...ase_polished_brick_slab_recombination.json | 25 + .../diabase_polished_slab_recombination.json | 25 + .../diabase_polished_slabs_to_brick.json | 26 + .../diabase_polished_stairs_to_brick.json | 26 + .../diabase_polished_walls_to_brick.json | 26 + .../recipes/diabase_raw_slab_polishing.json | 25 + .../diabase_raw_slab_recombination.json | 25 + .../recipes/diabase_raw_slabs_to_brick.json | 26 + .../recipes/diabase_raw_stairs_polishing.json | 25 + .../recipes/diabase_raw_stairs_to_brick.json | 26 + .../recipes/diabase_raw_wall_polishing.json | 25 + .../recipes/diabase_raw_walls_to_brick.json | 26 + .../recipes/diabase_relief_axe.json | 91 +- .../recipes/diabase_relief_blank.json | 53 +- .../recipes/diabase_relief_cross.json | 53 +- .../recipes/diabase_relief_hammer.json | 65 +- .../recipes/diabase_relief_hoe.json | 91 +- .../recipes/diabase_relief_horizontal.json | 49 +- .../mineralogy/recipes/diabase_relief_i.json | 53 +- .../recipes/diabase_relief_left.json | 53 +- .../recipes/diabase_relief_pickaxe.json | 91 +- .../recipes/diabase_relief_plus.json | 53 +- .../recipes/diabase_relief_right.json | 51 +- .../recipes/diabase_relief_sword.json | 91 +- .../recipes/diabase_relief_vertical.json | 53 +- .../data/mineralogy/recipes/diabase_slab.json | 45 +- ...iabase_slab_from_diabase_stonecutting.json | 21 - .../mineralogy/recipes/diabase_smooth.json | 44 +- .../recipes/diabase_smooth_brick.json | 51 +- .../recipes/diabase_smooth_brick_furnace.json | 66 +- .../recipes/diabase_smooth_brick_slab.json | 53 +- .../recipes/diabase_smooth_brick_stairs.json | 57 +- .../recipes/diabase_smooth_brick_wall.json | 55 +- .../recipes/diabase_smooth_furnace.json | 62 +- .../recipes/diabase_smooth_slab.json | 49 +- .../recipes/diabase_smooth_stairs.json | 53 +- .../recipes/diabase_smooth_wall.json | 51 +- .../mineralogy/recipes/diabase_stairs.json | 49 +- ...base_stairs_from_diabase_stonecutting.json | 21 - .../data/mineralogy/recipes/diabase_wall.json | 47 +- ...iabase_wall_from_diabase_stonecutting.json | 21 - .../mineralogy/recipes/diorite_brick.json | 47 +- .../diorite_brick_block_polishing.json | 25 + .../recipes/diorite_brick_furnace.json | 62 +- .../recipes/diorite_brick_slab.json | 49 +- .../recipes/diorite_brick_slab_polishing.json | 25 + .../diorite_brick_slab_recombination.json | 25 + .../recipes/diorite_brick_stairs.json | 53 +- .../diorite_brick_stairs_polishing.json | 25 + .../recipes/diorite_brick_wall.json | 51 +- .../recipes/diorite_brick_wall_polishing.json | 25 + .../recipes/diorite_cobblestone.json | 41 +- .../mineralogy/recipes/diorite_furnace.json | 58 +- .../recipes/diorite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../diorite_polished_slab_recombination.json | 25 + .../diorite_polished_slabs_to_brick.json | 26 + .../diorite_polished_stairs_to_brick.json | 26 + .../diorite_polished_walls_to_brick.json | 26 + .../recipes/diorite_raw_slab_polishing.json | 25 + .../diorite_raw_slab_recombination.json | 25 + .../recipes/diorite_raw_slabs_to_brick.json | 26 + .../recipes/diorite_raw_stairs_polishing.json | 25 + .../recipes/diorite_raw_stairs_to_brick.json | 26 + .../recipes/diorite_raw_wall_polishing.json | 25 + .../recipes/diorite_raw_walls_to_brick.json | 26 + .../recipes/diorite_relief_axe.json | 91 +- .../recipes/diorite_relief_blank.json | 53 +- .../recipes/diorite_relief_cross.json | 53 +- .../recipes/diorite_relief_hammer.json | 65 +- .../recipes/diorite_relief_hoe.json | 91 +- .../recipes/diorite_relief_horizontal.json | 49 +- .../mineralogy/recipes/diorite_relief_i.json | 53 +- .../recipes/diorite_relief_left.json | 53 +- .../recipes/diorite_relief_pickaxe.json | 91 +- .../recipes/diorite_relief_plus.json | 53 +- .../recipes/diorite_relief_right.json | 51 +- .../recipes/diorite_relief_sword.json | 91 +- .../recipes/diorite_relief_vertical.json | 53 +- .../data/mineralogy/recipes/diorite_slab.json | 45 +- ...iorite_slab_from_diorite_stonecutting.json | 21 - .../recipes/diorite_slab_from_vanilla.json | 22 + .../recipes/diorite_slab_to_vanilla.json | 22 + .../mineralogy/recipes/diorite_smooth.json | 44 +- .../recipes/diorite_smooth_brick.json | 51 +- .../recipes/diorite_smooth_brick_furnace.json | 66 +- .../recipes/diorite_smooth_brick_slab.json | 53 +- .../recipes/diorite_smooth_brick_stairs.json | 57 +- .../recipes/diorite_smooth_brick_wall.json | 55 +- .../recipes/diorite_smooth_furnace.json | 62 +- .../recipes/diorite_smooth_slab.json | 49 +- .../diorite_smooth_slab_from_vanilla.json | 22 + .../diorite_smooth_slab_to_vanilla.json | 22 + .../recipes/diorite_smooth_stairs.json | 53 +- .../recipes/diorite_smooth_wall.json | 51 +- .../mineralogy/recipes/diorite_stairs.json | 49 +- ...rite_stairs_from_diorite_stonecutting.json | 21 - .../data/mineralogy/recipes/diorite_wall.json | 47 +- ...iorite_wall_from_diorite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_brick.json | 47 +- .../dolomite_brick_block_polishing.json | 25 + .../recipes/dolomite_brick_furnace.json | 62 +- .../recipes/dolomite_brick_slab.json | 49 +- .../dolomite_brick_slab_polishing.json | 25 + .../dolomite_brick_slab_recombination.json | 25 + .../recipes/dolomite_brick_stairs.json | 53 +- .../dolomite_brick_stairs_polishing.json | 25 + .../recipes/dolomite_brick_wall.json | 51 +- .../dolomite_brick_wall_polishing.json | 25 + .../recipes/dolomite_cobblestone.json | 41 +- .../mineralogy/recipes/dolomite_furnace.json | 58 +- .../recipes/dolomite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../dolomite_polished_slab_recombination.json | 25 + .../dolomite_polished_slabs_to_brick.json | 26 + .../dolomite_polished_stairs_to_brick.json | 26 + .../dolomite_polished_walls_to_brick.json | 26 + .../recipes/dolomite_raw_slab_polishing.json | 25 + .../dolomite_raw_slab_recombination.json | 25 + .../recipes/dolomite_raw_slabs_to_brick.json | 26 + .../dolomite_raw_stairs_polishing.json | 25 + .../recipes/dolomite_raw_stairs_to_brick.json | 26 + .../recipes/dolomite_raw_wall_polishing.json | 25 + .../recipes/dolomite_raw_walls_to_brick.json | 26 + .../recipes/dolomite_relief_axe.json | 91 +- .../recipes/dolomite_relief_blank.json | 53 +- .../recipes/dolomite_relief_cross.json | 53 +- .../recipes/dolomite_relief_hammer.json | 65 +- .../recipes/dolomite_relief_hoe.json | 91 +- .../recipes/dolomite_relief_horizontal.json | 49 +- .../mineralogy/recipes/dolomite_relief_i.json | 53 +- .../recipes/dolomite_relief_left.json | 53 +- .../recipes/dolomite_relief_pickaxe.json | 91 +- .../recipes/dolomite_relief_plus.json | 53 +- .../recipes/dolomite_relief_right.json | 51 +- .../recipes/dolomite_relief_sword.json | 91 +- .../recipes/dolomite_relief_vertical.json | 53 +- .../mineralogy/recipes/dolomite_slab.json | 45 +- ...omite_slab_from_dolomite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_smooth.json | 44 +- .../recipes/dolomite_smooth_brick.json | 51 +- .../dolomite_smooth_brick_furnace.json | 66 +- .../recipes/dolomite_smooth_brick_slab.json | 53 +- .../recipes/dolomite_smooth_brick_stairs.json | 57 +- .../recipes/dolomite_smooth_brick_wall.json | 55 +- .../recipes/dolomite_smooth_furnace.json | 62 +- .../recipes/dolomite_smooth_slab.json | 49 +- .../recipes/dolomite_smooth_stairs.json | 53 +- .../recipes/dolomite_smooth_wall.json | 51 +- .../mineralogy/recipes/dolomite_stairs.json | 49 +- ...ite_stairs_from_dolomite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_wall.json | 47 +- ...omite_wall_from_dolomite_stonecutting.json | 21 - .../data/mineralogy/recipes/drywall.json | 46 +- .../mineralogy/recipes/drywall_black.json | 35 +- .../data/mineralogy/recipes/drywall_blue.json | 35 +- .../mineralogy/recipes/drywall_brown.json | 35 +- .../data/mineralogy/recipes/drywall_cyan.json | 35 +- .../data/mineralogy/recipes/drywall_gray.json | 35 +- .../mineralogy/recipes/drywall_green.json | 35 +- .../recipes/drywall_light_blue.json | 35 +- .../data/mineralogy/recipes/drywall_lime.json | 35 +- .../mineralogy/recipes/drywall_magenta.json | 35 +- .../mineralogy/recipes/drywall_orange.json | 35 +- .../data/mineralogy/recipes/drywall_pink.json | 35 +- .../mineralogy/recipes/drywall_purple.json | 35 +- .../data/mineralogy/recipes/drywall_red.json | 35 +- .../mineralogy/recipes/drywall_silver.json | 35 +- .../mineralogy/recipes/drywall_white.json | 35 +- .../mineralogy/recipes/drywall_yellow.json | 35 +- .../data/mineralogy/recipes/gabbro_brick.json | 47 +- .../recipes/gabbro_brick_block_polishing.json | 25 + .../recipes/gabbro_brick_furnace.json | 62 +- .../mineralogy/recipes/gabbro_brick_slab.json | 49 +- .../recipes/gabbro_brick_slab_polishing.json | 25 + .../gabbro_brick_slab_recombination.json | 25 + .../recipes/gabbro_brick_stairs.json | 53 +- .../gabbro_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/gabbro_brick_wall.json | 51 +- .../recipes/gabbro_brick_wall_polishing.json | 25 + .../recipes/gabbro_cobblestone.json | 41 +- .../mineralogy/recipes/gabbro_furnace.json | 58 +- .../recipes/gabbro_furnace_from_rock.json | 29 - ...bro_polished_brick_slab_recombination.json | 25 + .../gabbro_polished_slab_recombination.json | 25 + .../gabbro_polished_slabs_to_brick.json | 26 + .../gabbro_polished_stairs_to_brick.json | 26 + .../gabbro_polished_walls_to_brick.json | 26 + .../recipes/gabbro_raw_slab_polishing.json | 25 + .../gabbro_raw_slab_recombination.json | 25 + .../recipes/gabbro_raw_slabs_to_brick.json | 26 + .../recipes/gabbro_raw_stairs_polishing.json | 25 + .../recipes/gabbro_raw_stairs_to_brick.json | 26 + .../recipes/gabbro_raw_wall_polishing.json | 25 + .../recipes/gabbro_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/gabbro_relief_axe.json | 91 +- .../recipes/gabbro_relief_blank.json | 53 +- .../recipes/gabbro_relief_cross.json | 53 +- .../recipes/gabbro_relief_hammer.json | 65 +- .../mineralogy/recipes/gabbro_relief_hoe.json | 91 +- .../recipes/gabbro_relief_horizontal.json | 49 +- .../mineralogy/recipes/gabbro_relief_i.json | 53 +- .../recipes/gabbro_relief_left.json | 53 +- .../recipes/gabbro_relief_pickaxe.json | 91 +- .../recipes/gabbro_relief_plus.json | 53 +- .../recipes/gabbro_relief_right.json | 51 +- .../recipes/gabbro_relief_sword.json | 91 +- .../recipes/gabbro_relief_vertical.json | 53 +- .../data/mineralogy/recipes/gabbro_slab.json | 45 +- .../gabbro_slab_from_gabbro_stonecutting.json | 21 - .../mineralogy/recipes/gabbro_smooth.json | 44 +- .../recipes/gabbro_smooth_brick.json | 51 +- .../recipes/gabbro_smooth_brick_furnace.json | 66 +- .../recipes/gabbro_smooth_brick_slab.json | 53 +- .../recipes/gabbro_smooth_brick_stairs.json | 57 +- .../recipes/gabbro_smooth_brick_wall.json | 55 +- .../recipes/gabbro_smooth_furnace.json | 62 +- .../recipes/gabbro_smooth_slab.json | 49 +- .../recipes/gabbro_smooth_stairs.json | 53 +- .../recipes/gabbro_smooth_wall.json | 51 +- .../mineralogy/recipes/gabbro_stairs.json | 49 +- ...abbro_stairs_from_gabbro_stonecutting.json | 21 - .../data/mineralogy/recipes/gabbro_wall.json | 47 +- .../gabbro_wall_from_gabbro_stonecutting.json | 21 - .../data/mineralogy/recipes/gneiss_brick.json | 47 +- .../recipes/gneiss_brick_block_polishing.json | 25 + .../recipes/gneiss_brick_furnace.json | 62 +- .../mineralogy/recipes/gneiss_brick_slab.json | 49 +- .../recipes/gneiss_brick_slab_polishing.json | 25 + .../gneiss_brick_slab_recombination.json | 25 + .../recipes/gneiss_brick_stairs.json | 53 +- .../gneiss_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/gneiss_brick_wall.json | 51 +- .../recipes/gneiss_brick_wall_polishing.json | 25 + .../recipes/gneiss_cobblestone.json | 41 +- .../mineralogy/recipes/gneiss_furnace.json | 58 +- .../recipes/gneiss_furnace_from_rock.json | 29 - ...iss_polished_brick_slab_recombination.json | 25 + .../gneiss_polished_slab_recombination.json | 25 + .../gneiss_polished_slabs_to_brick.json | 26 + .../gneiss_polished_stairs_to_brick.json | 26 + .../gneiss_polished_walls_to_brick.json | 26 + .../recipes/gneiss_raw_slab_polishing.json | 25 + .../gneiss_raw_slab_recombination.json | 25 + .../recipes/gneiss_raw_slabs_to_brick.json | 26 + .../recipes/gneiss_raw_stairs_polishing.json | 25 + .../recipes/gneiss_raw_stairs_to_brick.json | 26 + .../recipes/gneiss_raw_wall_polishing.json | 25 + .../recipes/gneiss_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/gneiss_relief_axe.json | 91 +- .../recipes/gneiss_relief_blank.json | 53 +- .../recipes/gneiss_relief_cross.json | 53 +- .../recipes/gneiss_relief_hammer.json | 65 +- .../mineralogy/recipes/gneiss_relief_hoe.json | 91 +- .../recipes/gneiss_relief_horizontal.json | 49 +- .../mineralogy/recipes/gneiss_relief_i.json | 53 +- .../recipes/gneiss_relief_left.json | 53 +- .../recipes/gneiss_relief_pickaxe.json | 91 +- .../recipes/gneiss_relief_plus.json | 53 +- .../recipes/gneiss_relief_right.json | 51 +- .../recipes/gneiss_relief_sword.json | 91 +- .../recipes/gneiss_relief_vertical.json | 53 +- .../data/mineralogy/recipes/gneiss_slab.json | 45 +- .../gneiss_slab_from_gneiss_stonecutting.json | 21 - .../mineralogy/recipes/gneiss_smooth.json | 44 +- .../recipes/gneiss_smooth_brick.json | 51 +- .../recipes/gneiss_smooth_brick_furnace.json | 66 +- .../recipes/gneiss_smooth_brick_slab.json | 53 +- .../recipes/gneiss_smooth_brick_stairs.json | 57 +- .../recipes/gneiss_smooth_brick_wall.json | 55 +- .../recipes/gneiss_smooth_furnace.json | 62 +- .../recipes/gneiss_smooth_slab.json | 49 +- .../recipes/gneiss_smooth_stairs.json | 53 +- .../recipes/gneiss_smooth_wall.json | 51 +- .../mineralogy/recipes/gneiss_stairs.json | 49 +- ...neiss_stairs_from_gneiss_stonecutting.json | 21 - .../data/mineralogy/recipes/gneiss_wall.json | 47 +- .../gneiss_wall_from_gneiss_stonecutting.json | 21 - .../mineralogy/recipes/granite_brick.json | 47 +- .../granite_brick_block_polishing.json | 25 + .../recipes/granite_brick_furnace.json | 62 +- .../recipes/granite_brick_slab.json | 49 +- .../recipes/granite_brick_slab_polishing.json | 25 + .../granite_brick_slab_recombination.json | 25 + .../recipes/granite_brick_stairs.json | 53 +- .../granite_brick_stairs_polishing.json | 25 + .../recipes/granite_brick_wall.json | 51 +- .../recipes/granite_brick_wall_polishing.json | 25 + .../recipes/granite_cobblestone.json | 41 +- .../mineralogy/recipes/granite_furnace.json | 58 +- .../recipes/granite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../granite_polished_slab_recombination.json | 25 + .../granite_polished_slabs_to_brick.json | 26 + .../granite_polished_stairs_to_brick.json | 26 + .../granite_polished_walls_to_brick.json | 26 + .../recipes/granite_raw_slab_polishing.json | 25 + .../granite_raw_slab_recombination.json | 25 + .../recipes/granite_raw_slabs_to_brick.json | 26 + .../recipes/granite_raw_stairs_polishing.json | 25 + .../recipes/granite_raw_stairs_to_brick.json | 26 + .../recipes/granite_raw_wall_polishing.json | 25 + .../recipes/granite_raw_walls_to_brick.json | 26 + .../recipes/granite_relief_axe.json | 91 +- .../recipes/granite_relief_blank.json | 53 +- .../recipes/granite_relief_cross.json | 53 +- .../recipes/granite_relief_hammer.json | 65 +- .../recipes/granite_relief_hoe.json | 91 +- .../recipes/granite_relief_horizontal.json | 49 +- .../mineralogy/recipes/granite_relief_i.json | 53 +- .../recipes/granite_relief_left.json | 53 +- .../recipes/granite_relief_pickaxe.json | 91 +- .../recipes/granite_relief_plus.json | 53 +- .../recipes/granite_relief_right.json | 51 +- .../recipes/granite_relief_sword.json | 91 +- .../recipes/granite_relief_vertical.json | 53 +- .../data/mineralogy/recipes/granite_slab.json | 45 +- ...ranite_slab_from_granite_stonecutting.json | 21 - .../recipes/granite_slab_from_vanilla.json | 22 + .../recipes/granite_slab_to_vanilla.json | 22 + .../mineralogy/recipes/granite_smooth.json | 44 +- .../recipes/granite_smooth_brick.json | 51 +- .../recipes/granite_smooth_brick_furnace.json | 66 +- .../recipes/granite_smooth_brick_slab.json | 53 +- .../recipes/granite_smooth_brick_stairs.json | 57 +- .../recipes/granite_smooth_brick_wall.json | 55 +- .../recipes/granite_smooth_furnace.json | 62 +- .../recipes/granite_smooth_slab.json | 49 +- .../granite_smooth_slab_from_vanilla.json | 22 + .../granite_smooth_slab_to_vanilla.json | 22 + .../recipes/granite_smooth_stairs.json | 53 +- .../recipes/granite_smooth_wall.json | 51 +- .../mineralogy/recipes/granite_stairs.json | 49 +- ...nite_stairs_from_granite_stonecutting.json | 21 - .../data/mineralogy/recipes/granite_wall.json | 47 +- ...ranite_wall_from_granite_stonecutting.json | 21 - .../mineralogy/recipes/gravel_to_stone.json | 27 +- .../recipes/gunpowder_from_carbon.json | 18 - .../recipes/gunpowder_from_carbon_dust.json | 31 + .../recipes/gunpowder_from_charcoal.json | 24 + .../recipes/gunpowder_from_coal.json | 18 - .../recipes/gunpowder_from_coal_dust.json | 31 + .../recipes/gunpowder_from_sugar.json | 38 +- .../data/mineralogy/recipes/gypsum.json | 34 +- .../data/mineralogy/recipes/gypsum_dust.json | 26 +- .../mineralogy/recipes/hornfels_brick.json | 47 +- .../hornfels_brick_block_polishing.json | 25 + .../recipes/hornfels_brick_furnace.json | 62 +- .../recipes/hornfels_brick_slab.json | 49 +- .../hornfels_brick_slab_polishing.json | 25 + .../hornfels_brick_slab_recombination.json | 25 + .../recipes/hornfels_brick_stairs.json | 53 +- .../hornfels_brick_stairs_polishing.json | 25 + .../recipes/hornfels_brick_wall.json | 51 +- .../hornfels_brick_wall_polishing.json | 25 + .../recipes/hornfels_cobblestone.json | 41 +- .../mineralogy/recipes/hornfels_furnace.json | 58 +- .../recipes/hornfels_furnace_from_rock.json | 29 - ...els_polished_brick_slab_recombination.json | 25 + .../hornfels_polished_slab_recombination.json | 25 + .../hornfels_polished_slabs_to_brick.json | 26 + .../hornfels_polished_stairs_to_brick.json | 26 + .../hornfels_polished_walls_to_brick.json | 26 + .../recipes/hornfels_raw_slab_polishing.json | 25 + .../hornfels_raw_slab_recombination.json | 25 + .../recipes/hornfels_raw_slabs_to_brick.json | 26 + .../hornfels_raw_stairs_polishing.json | 25 + .../recipes/hornfels_raw_stairs_to_brick.json | 26 + .../recipes/hornfels_raw_wall_polishing.json | 25 + .../recipes/hornfels_raw_walls_to_brick.json | 26 + .../recipes/hornfels_relief_axe.json | 91 +- .../recipes/hornfels_relief_blank.json | 53 +- .../recipes/hornfels_relief_cross.json | 53 +- .../recipes/hornfels_relief_hammer.json | 65 +- .../recipes/hornfels_relief_hoe.json | 91 +- .../recipes/hornfels_relief_horizontal.json | 49 +- .../mineralogy/recipes/hornfels_relief_i.json | 53 +- .../recipes/hornfels_relief_left.json | 53 +- .../recipes/hornfels_relief_pickaxe.json | 91 +- .../recipes/hornfels_relief_plus.json | 53 +- .../recipes/hornfels_relief_right.json | 51 +- .../recipes/hornfels_relief_sword.json | 91 +- .../recipes/hornfels_relief_vertical.json | 53 +- .../mineralogy/recipes/hornfels_slab.json | 45 +- ...nfels_slab_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/hornfels_smooth.json | 44 +- .../recipes/hornfels_smooth_brick.json | 51 +- .../hornfels_smooth_brick_furnace.json | 66 +- .../recipes/hornfels_smooth_brick_slab.json | 53 +- .../recipes/hornfels_smooth_brick_stairs.json | 57 +- .../recipes/hornfels_smooth_brick_wall.json | 55 +- .../recipes/hornfels_smooth_furnace.json | 62 +- .../recipes/hornfels_smooth_slab.json | 49 +- .../recipes/hornfels_smooth_stairs.json | 53 +- .../recipes/hornfels_smooth_wall.json | 51 +- .../mineralogy/recipes/hornfels_stairs.json | 49 +- ...els_stairs_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/hornfels_wall.json | 47 +- ...nfels_wall_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/limestone_brick.json | 47 +- .../limestone_brick_block_polishing.json | 25 + .../recipes/limestone_brick_furnace.json | 62 +- .../recipes/limestone_brick_slab.json | 49 +- .../limestone_brick_slab_polishing.json | 25 + .../limestone_brick_slab_recombination.json | 25 + .../recipes/limestone_brick_stairs.json | 53 +- .../limestone_brick_stairs_polishing.json | 25 + .../recipes/limestone_brick_wall.json | 51 +- .../limestone_brick_wall_polishing.json | 25 + .../recipes/limestone_cobblestone.json | 41 +- .../mineralogy/recipes/limestone_furnace.json | 58 +- .../recipes/limestone_furnace_from_rock.json | 29 - ...one_polished_brick_slab_recombination.json | 25 + ...limestone_polished_slab_recombination.json | 25 + .../limestone_polished_slabs_to_brick.json | 26 + .../limestone_polished_stairs_to_brick.json | 26 + .../limestone_polished_walls_to_brick.json | 26 + .../recipes/limestone_raw_slab_polishing.json | 25 + .../limestone_raw_slab_recombination.json | 25 + .../recipes/limestone_raw_slabs_to_brick.json | 26 + .../limestone_raw_stairs_polishing.json | 25 + .../limestone_raw_stairs_to_brick.json | 26 + .../recipes/limestone_raw_wall_polishing.json | 25 + .../recipes/limestone_raw_walls_to_brick.json | 26 + .../recipes/limestone_relief_axe.json | 91 +- .../recipes/limestone_relief_blank.json | 53 +- .../recipes/limestone_relief_cross.json | 53 +- .../recipes/limestone_relief_hammer.json | 65 +- .../recipes/limestone_relief_hoe.json | 91 +- .../recipes/limestone_relief_horizontal.json | 49 +- .../recipes/limestone_relief_i.json | 53 +- .../recipes/limestone_relief_left.json | 53 +- .../recipes/limestone_relief_pickaxe.json | 91 +- .../recipes/limestone_relief_plus.json | 53 +- .../recipes/limestone_relief_right.json | 51 +- .../recipes/limestone_relief_sword.json | 91 +- .../recipes/limestone_relief_vertical.json | 53 +- .../mineralogy/recipes/limestone_slab.json | 45 +- ...tone_slab_from_limestone_stonecutting.json | 21 - .../mineralogy/recipes/limestone_smooth.json | 44 +- .../recipes/limestone_smooth_brick.json | 51 +- .../limestone_smooth_brick_furnace.json | 66 +- .../recipes/limestone_smooth_brick_slab.json | 53 +- .../limestone_smooth_brick_stairs.json | 57 +- .../recipes/limestone_smooth_brick_wall.json | 55 +- .../recipes/limestone_smooth_furnace.json | 62 +- .../recipes/limestone_smooth_slab.json | 49 +- .../recipes/limestone_smooth_stairs.json | 53 +- .../recipes/limestone_smooth_wall.json | 51 +- .../mineralogy/recipes/limestone_stairs.json | 49 +- ...ne_stairs_from_limestone_stonecutting.json | 21 - .../mineralogy/recipes/limestone_wall.json | 47 +- ...tone_wall_from_limestone_stonecutting.json | 21 - .../data/mineralogy/recipes/marble_brick.json | 47 +- .../recipes/marble_brick_block_polishing.json | 25 + .../recipes/marble_brick_furnace.json | 62 +- .../mineralogy/recipes/marble_brick_slab.json | 49 +- .../recipes/marble_brick_slab_polishing.json | 25 + .../marble_brick_slab_recombination.json | 25 + .../recipes/marble_brick_stairs.json | 53 +- .../marble_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/marble_brick_wall.json | 51 +- .../recipes/marble_brick_wall_polishing.json | 25 + .../recipes/marble_cobblestone.json | 41 +- .../mineralogy/recipes/marble_furnace.json | 58 +- .../recipes/marble_furnace_from_rock.json | 29 - ...ble_polished_brick_slab_recombination.json | 25 + .../marble_polished_slab_recombination.json | 25 + .../marble_polished_slabs_to_brick.json | 26 + .../marble_polished_stairs_to_brick.json | 26 + .../marble_polished_walls_to_brick.json | 26 + .../recipes/marble_raw_slab_polishing.json | 25 + .../marble_raw_slab_recombination.json | 25 + .../recipes/marble_raw_slabs_to_brick.json | 26 + .../recipes/marble_raw_stairs_polishing.json | 25 + .../recipes/marble_raw_stairs_to_brick.json | 26 + .../recipes/marble_raw_wall_polishing.json | 25 + .../recipes/marble_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/marble_relief_axe.json | 91 +- .../recipes/marble_relief_blank.json | 53 +- .../recipes/marble_relief_cross.json | 53 +- .../recipes/marble_relief_hammer.json | 65 +- .../mineralogy/recipes/marble_relief_hoe.json | 91 +- .../recipes/marble_relief_horizontal.json | 49 +- .../mineralogy/recipes/marble_relief_i.json | 53 +- .../recipes/marble_relief_left.json | 53 +- .../recipes/marble_relief_pickaxe.json | 91 +- .../recipes/marble_relief_plus.json | 53 +- .../recipes/marble_relief_right.json | 51 +- .../recipes/marble_relief_sword.json | 91 +- .../recipes/marble_relief_vertical.json | 53 +- .../data/mineralogy/recipes/marble_slab.json | 45 +- .../marble_slab_from_marble_stonecutting.json | 21 - .../mineralogy/recipes/marble_smooth.json | 44 +- .../recipes/marble_smooth_brick.json | 51 +- .../recipes/marble_smooth_brick_furnace.json | 66 +- .../recipes/marble_smooth_brick_slab.json | 53 +- .../recipes/marble_smooth_brick_stairs.json | 57 +- .../recipes/marble_smooth_brick_wall.json | 55 +- .../recipes/marble_smooth_furnace.json | 62 +- .../recipes/marble_smooth_slab.json | 49 +- .../recipes/marble_smooth_stairs.json | 53 +- .../recipes/marble_smooth_wall.json | 51 +- .../mineralogy/recipes/marble_stairs.json | 49 +- ...arble_stairs_from_marble_stonecutting.json | 21 - .../data/mineralogy/recipes/marble_wall.json | 47 +- .../marble_wall_from_marble_stonecutting.json | 21 - .../recipes/mineral_fertilizer.json | 14 - .../mineralogy/recipes/mineralfertilizer.json | 25 + .../mineralogy/recipes/nitrate_block.json | 39 +- .../data/mineralogy/recipes/nitrate_dust.json | 30 +- .../mineralogy/recipes/novaculite_brick.json | 47 +- .../novaculite_brick_block_polishing.json | 25 + .../recipes/novaculite_brick_furnace.json | 62 +- .../recipes/novaculite_brick_slab.json | 49 +- .../novaculite_brick_slab_polishing.json | 25 + .../novaculite_brick_slab_recombination.json | 25 + .../recipes/novaculite_brick_stairs.json | 53 +- .../novaculite_brick_stairs_polishing.json | 25 + .../recipes/novaculite_brick_wall.json | 51 +- .../novaculite_brick_wall_polishing.json | 25 + .../recipes/novaculite_cobblestone.json | 41 +- .../recipes/novaculite_furnace.json | 58 +- .../recipes/novaculite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + ...ovaculite_polished_slab_recombination.json | 25 + .../novaculite_polished_slabs_to_brick.json | 26 + .../novaculite_polished_stairs_to_brick.json | 26 + .../novaculite_polished_walls_to_brick.json | 26 + .../novaculite_raw_slab_polishing.json | 25 + .../novaculite_raw_slab_recombination.json | 25 + .../novaculite_raw_slabs_to_brick.json | 26 + .../novaculite_raw_stairs_polishing.json | 25 + .../novaculite_raw_stairs_to_brick.json | 26 + .../novaculite_raw_wall_polishing.json | 25 + .../novaculite_raw_walls_to_brick.json | 26 + .../recipes/novaculite_relief_axe.json | 91 +- .../recipes/novaculite_relief_blank.json | 53 +- .../recipes/novaculite_relief_cross.json | 53 +- .../recipes/novaculite_relief_hammer.json | 65 +- .../recipes/novaculite_relief_hoe.json | 91 +- .../recipes/novaculite_relief_horizontal.json | 49 +- .../recipes/novaculite_relief_i.json | 53 +- .../recipes/novaculite_relief_left.json | 53 +- .../recipes/novaculite_relief_pickaxe.json | 91 +- .../recipes/novaculite_relief_plus.json | 53 +- .../recipes/novaculite_relief_right.json | 51 +- .../recipes/novaculite_relief_sword.json | 91 +- .../recipes/novaculite_relief_vertical.json | 53 +- .../mineralogy/recipes/novaculite_slab.json | 45 +- ...ite_slab_from_novaculite_stonecutting.json | 21 - .../mineralogy/recipes/novaculite_smooth.json | 44 +- .../recipes/novaculite_smooth_brick.json | 51 +- .../novaculite_smooth_brick_furnace.json | 66 +- .../recipes/novaculite_smooth_brick_slab.json | 53 +- .../novaculite_smooth_brick_stairs.json | 57 +- .../recipes/novaculite_smooth_brick_wall.json | 55 +- .../recipes/novaculite_smooth_furnace.json | 62 +- .../recipes/novaculite_smooth_slab.json | 49 +- .../recipes/novaculite_smooth_stairs.json | 53 +- .../recipes/novaculite_smooth_wall.json | 51 +- .../mineralogy/recipes/novaculite_stairs.json | 49 +- ...e_stairs_from_novaculite_stonecutting.json | 21 - .../mineralogy/recipes/novaculite_wall.json | 47 +- ...ite_wall_from_novaculite_stonecutting.json | 21 - .../mineralogy/recipes/pegmatite_brick.json | 47 +- .../pegmatite_brick_block_polishing.json | 25 + .../recipes/pegmatite_brick_furnace.json | 62 +- .../recipes/pegmatite_brick_slab.json | 49 +- .../pegmatite_brick_slab_polishing.json | 25 + .../pegmatite_brick_slab_recombination.json | 25 + .../recipes/pegmatite_brick_stairs.json | 53 +- .../pegmatite_brick_stairs_polishing.json | 25 + .../recipes/pegmatite_brick_wall.json | 51 +- .../pegmatite_brick_wall_polishing.json | 25 + .../recipes/pegmatite_cobblestone.json | 41 +- .../mineralogy/recipes/pegmatite_furnace.json | 58 +- .../recipes/pegmatite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + ...pegmatite_polished_slab_recombination.json | 25 + .../pegmatite_polished_slabs_to_brick.json | 26 + .../pegmatite_polished_stairs_to_brick.json | 26 + .../pegmatite_polished_walls_to_brick.json | 26 + .../recipes/pegmatite_raw_slab_polishing.json | 25 + .../pegmatite_raw_slab_recombination.json | 25 + .../recipes/pegmatite_raw_slabs_to_brick.json | 26 + .../pegmatite_raw_stairs_polishing.json | 25 + .../pegmatite_raw_stairs_to_brick.json | 26 + .../recipes/pegmatite_raw_wall_polishing.json | 25 + .../recipes/pegmatite_raw_walls_to_brick.json | 26 + .../recipes/pegmatite_relief_axe.json | 91 +- .../recipes/pegmatite_relief_blank.json | 53 +- .../recipes/pegmatite_relief_cross.json | 53 +- .../recipes/pegmatite_relief_hammer.json | 65 +- .../recipes/pegmatite_relief_hoe.json | 91 +- .../recipes/pegmatite_relief_horizontal.json | 49 +- .../recipes/pegmatite_relief_i.json | 53 +- .../recipes/pegmatite_relief_left.json | 53 +- .../recipes/pegmatite_relief_pickaxe.json | 91 +- .../recipes/pegmatite_relief_plus.json | 53 +- .../recipes/pegmatite_relief_right.json | 51 +- .../recipes/pegmatite_relief_sword.json | 91 +- .../recipes/pegmatite_relief_vertical.json | 53 +- .../mineralogy/recipes/pegmatite_slab.json | 45 +- ...tite_slab_from_pegmatite_stonecutting.json | 21 - .../mineralogy/recipes/pegmatite_smooth.json | 44 +- .../recipes/pegmatite_smooth_brick.json | 51 +- .../pegmatite_smooth_brick_furnace.json | 66 +- .../recipes/pegmatite_smooth_brick_slab.json | 53 +- .../pegmatite_smooth_brick_stairs.json | 57 +- .../recipes/pegmatite_smooth_brick_wall.json | 55 +- .../recipes/pegmatite_smooth_furnace.json | 62 +- .../recipes/pegmatite_smooth_slab.json | 49 +- .../recipes/pegmatite_smooth_stairs.json | 53 +- .../recipes/pegmatite_smooth_wall.json | 51 +- .../mineralogy/recipes/pegmatite_stairs.json | 49 +- ...te_stairs_from_pegmatite_stonecutting.json | 21 - .../mineralogy/recipes/pegmatite_wall.json | 47 +- ...tite_wall_from_pegmatite_stonecutting.json | 21 - .../mineralogy/recipes/peridotite_brick.json | 47 +- .../peridotite_brick_block_polishing.json | 25 + .../recipes/peridotite_brick_furnace.json | 62 +- .../recipes/peridotite_brick_slab.json | 49 +- .../peridotite_brick_slab_polishing.json | 25 + .../peridotite_brick_slab_recombination.json | 25 + .../recipes/peridotite_brick_stairs.json | 53 +- .../peridotite_brick_stairs_polishing.json | 25 + .../recipes/peridotite_brick_wall.json | 51 +- .../peridotite_brick_wall_polishing.json | 25 + .../recipes/peridotite_cobblestone.json | 41 +- .../recipes/peridotite_furnace.json | 58 +- .../recipes/peridotite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + ...eridotite_polished_slab_recombination.json | 25 + .../peridotite_polished_slabs_to_brick.json | 26 + .../peridotite_polished_stairs_to_brick.json | 26 + .../peridotite_polished_walls_to_brick.json | 26 + .../peridotite_raw_slab_polishing.json | 25 + .../peridotite_raw_slab_recombination.json | 25 + .../peridotite_raw_slabs_to_brick.json | 26 + .../peridotite_raw_stairs_polishing.json | 25 + .../peridotite_raw_stairs_to_brick.json | 26 + .../peridotite_raw_wall_polishing.json | 25 + .../peridotite_raw_walls_to_brick.json | 26 + .../recipes/peridotite_relief_axe.json | 91 +- .../recipes/peridotite_relief_blank.json | 53 +- .../recipes/peridotite_relief_cross.json | 53 +- .../recipes/peridotite_relief_hammer.json | 65 +- .../recipes/peridotite_relief_hoe.json | 91 +- .../recipes/peridotite_relief_horizontal.json | 49 +- .../recipes/peridotite_relief_i.json | 53 +- .../recipes/peridotite_relief_left.json | 53 +- .../recipes/peridotite_relief_pickaxe.json | 91 +- .../recipes/peridotite_relief_plus.json | 53 +- .../recipes/peridotite_relief_right.json | 51 +- .../recipes/peridotite_relief_sword.json | 91 +- .../recipes/peridotite_relief_vertical.json | 53 +- .../mineralogy/recipes/peridotite_slab.json | 45 +- ...ite_slab_from_peridotite_stonecutting.json | 21 - .../mineralogy/recipes/peridotite_smooth.json | 44 +- .../recipes/peridotite_smooth_brick.json | 51 +- .../peridotite_smooth_brick_furnace.json | 66 +- .../recipes/peridotite_smooth_brick_slab.json | 53 +- .../peridotite_smooth_brick_stairs.json | 57 +- .../recipes/peridotite_smooth_brick_wall.json | 55 +- .../recipes/peridotite_smooth_furnace.json | 62 +- .../recipes/peridotite_smooth_slab.json | 49 +- .../recipes/peridotite_smooth_stairs.json | 53 +- .../recipes/peridotite_smooth_wall.json | 51 +- .../mineralogy/recipes/peridotite_stairs.json | 49 +- ...e_stairs_from_peridotite_stonecutting.json | 21 - .../mineralogy/recipes/peridotite_wall.json | 47 +- ...ite_wall_from_peridotite_stonecutting.json | 21 - .../mineralogy/recipes/phosphorous_block.json | 39 +- .../mineralogy/recipes/phosphorous_dust.json | 30 +- .../mineralogy/recipes/phyllite_brick.json | 47 +- .../phyllite_brick_block_polishing.json | 25 + .../recipes/phyllite_brick_furnace.json | 62 +- .../recipes/phyllite_brick_slab.json | 49 +- .../phyllite_brick_slab_polishing.json | 25 + .../phyllite_brick_slab_recombination.json | 25 + .../recipes/phyllite_brick_stairs.json | 53 +- .../phyllite_brick_stairs_polishing.json | 25 + .../recipes/phyllite_brick_wall.json | 51 +- .../phyllite_brick_wall_polishing.json | 25 + .../recipes/phyllite_cobblestone.json | 41 +- .../mineralogy/recipes/phyllite_furnace.json | 58 +- .../recipes/phyllite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../phyllite_polished_slab_recombination.json | 25 + .../phyllite_polished_slabs_to_brick.json | 26 + .../phyllite_polished_stairs_to_brick.json | 26 + .../phyllite_polished_walls_to_brick.json | 26 + .../recipes/phyllite_raw_slab_polishing.json | 25 + .../phyllite_raw_slab_recombination.json | 25 + .../recipes/phyllite_raw_slabs_to_brick.json | 26 + .../phyllite_raw_stairs_polishing.json | 25 + .../recipes/phyllite_raw_stairs_to_brick.json | 26 + .../recipes/phyllite_raw_wall_polishing.json | 25 + .../recipes/phyllite_raw_walls_to_brick.json | 26 + .../recipes/phyllite_relief_axe.json | 91 +- .../recipes/phyllite_relief_blank.json | 53 +- .../recipes/phyllite_relief_cross.json | 53 +- .../recipes/phyllite_relief_hammer.json | 65 +- .../recipes/phyllite_relief_hoe.json | 91 +- .../recipes/phyllite_relief_horizontal.json | 49 +- .../mineralogy/recipes/phyllite_relief_i.json | 53 +- .../recipes/phyllite_relief_left.json | 53 +- .../recipes/phyllite_relief_pickaxe.json | 91 +- .../recipes/phyllite_relief_plus.json | 53 +- .../recipes/phyllite_relief_right.json | 51 +- .../recipes/phyllite_relief_sword.json | 91 +- .../recipes/phyllite_relief_vertical.json | 53 +- .../mineralogy/recipes/phyllite_slab.json | 45 +- ...llite_slab_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/phyllite_smooth.json | 44 +- .../recipes/phyllite_smooth_brick.json | 51 +- .../phyllite_smooth_brick_furnace.json | 66 +- .../recipes/phyllite_smooth_brick_slab.json | 53 +- .../recipes/phyllite_smooth_brick_stairs.json | 57 +- .../recipes/phyllite_smooth_brick_wall.json | 55 +- .../recipes/phyllite_smooth_furnace.json | 62 +- .../recipes/phyllite_smooth_slab.json | 49 +- .../recipes/phyllite_smooth_stairs.json | 53 +- .../recipes/phyllite_smooth_wall.json | 51 +- .../mineralogy/recipes/phyllite_stairs.json | 49 +- ...ite_stairs_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/phyllite_wall.json | 47 +- ...llite_wall_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/quartzite_brick.json | 47 +- .../quartzite_brick_block_polishing.json | 25 + .../recipes/quartzite_brick_furnace.json | 62 +- .../recipes/quartzite_brick_slab.json | 49 +- .../quartzite_brick_slab_polishing.json | 25 + .../quartzite_brick_slab_recombination.json | 25 + .../recipes/quartzite_brick_stairs.json | 53 +- .../quartzite_brick_stairs_polishing.json | 25 + .../recipes/quartzite_brick_wall.json | 51 +- .../quartzite_brick_wall_polishing.json | 25 + .../recipes/quartzite_cobblestone.json | 41 +- .../mineralogy/recipes/quartzite_furnace.json | 58 +- .../recipes/quartzite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + ...quartzite_polished_slab_recombination.json | 25 + .../quartzite_polished_slabs_to_brick.json | 26 + .../quartzite_polished_stairs_to_brick.json | 26 + .../quartzite_polished_walls_to_brick.json | 26 + .../recipes/quartzite_raw_slab_polishing.json | 25 + .../quartzite_raw_slab_recombination.json | 25 + .../recipes/quartzite_raw_slabs_to_brick.json | 26 + .../quartzite_raw_stairs_polishing.json | 25 + .../quartzite_raw_stairs_to_brick.json | 26 + .../recipes/quartzite_raw_wall_polishing.json | 25 + .../recipes/quartzite_raw_walls_to_brick.json | 26 + .../recipes/quartzite_relief_axe.json | 91 +- .../recipes/quartzite_relief_blank.json | 53 +- .../recipes/quartzite_relief_cross.json | 53 +- .../recipes/quartzite_relief_hammer.json | 65 +- .../recipes/quartzite_relief_hoe.json | 91 +- .../recipes/quartzite_relief_horizontal.json | 49 +- .../recipes/quartzite_relief_i.json | 53 +- .../recipes/quartzite_relief_left.json | 53 +- .../recipes/quartzite_relief_pickaxe.json | 91 +- .../recipes/quartzite_relief_plus.json | 53 +- .../recipes/quartzite_relief_right.json | 51 +- .../recipes/quartzite_relief_sword.json | 91 +- .../recipes/quartzite_relief_vertical.json | 53 +- .../mineralogy/recipes/quartzite_slab.json | 45 +- ...zite_slab_from_quartzite_stonecutting.json | 21 - .../mineralogy/recipes/quartzite_smooth.json | 44 +- .../recipes/quartzite_smooth_brick.json | 51 +- .../quartzite_smooth_brick_furnace.json | 66 +- .../recipes/quartzite_smooth_brick_slab.json | 53 +- .../quartzite_smooth_brick_stairs.json | 57 +- .../recipes/quartzite_smooth_brick_wall.json | 55 +- .../recipes/quartzite_smooth_furnace.json | 62 +- .../recipes/quartzite_smooth_slab.json | 49 +- .../recipes/quartzite_smooth_stairs.json | 53 +- .../recipes/quartzite_smooth_wall.json | 51 +- .../mineralogy/recipes/quartzite_stairs.json | 49 +- ...te_stairs_from_quartzite_stonecutting.json | 21 - .../mineralogy/recipes/quartzite_wall.json | 47 +- ...zite_wall_from_quartzite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_brick.json | 47 +- .../rhyolite_brick_block_polishing.json | 25 + .../recipes/rhyolite_brick_furnace.json | 62 +- .../recipes/rhyolite_brick_slab.json | 49 +- .../rhyolite_brick_slab_polishing.json | 25 + .../rhyolite_brick_slab_recombination.json | 25 + .../recipes/rhyolite_brick_stairs.json | 53 +- .../rhyolite_brick_stairs_polishing.json | 25 + .../recipes/rhyolite_brick_wall.json | 51 +- .../rhyolite_brick_wall_polishing.json | 25 + .../recipes/rhyolite_cobblestone.json | 41 +- .../mineralogy/recipes/rhyolite_furnace.json | 58 +- .../recipes/rhyolite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 25 + .../rhyolite_polished_slab_recombination.json | 25 + .../rhyolite_polished_slabs_to_brick.json | 26 + .../rhyolite_polished_stairs_to_brick.json | 26 + .../rhyolite_polished_walls_to_brick.json | 26 + .../recipes/rhyolite_raw_slab_polishing.json | 25 + .../rhyolite_raw_slab_recombination.json | 25 + .../recipes/rhyolite_raw_slabs_to_brick.json | 26 + .../rhyolite_raw_stairs_polishing.json | 25 + .../recipes/rhyolite_raw_stairs_to_brick.json | 26 + .../recipes/rhyolite_raw_wall_polishing.json | 25 + .../recipes/rhyolite_raw_walls_to_brick.json | 26 + .../recipes/rhyolite_relief_axe.json | 91 +- .../recipes/rhyolite_relief_blank.json | 53 +- .../recipes/rhyolite_relief_cross.json | 53 +- .../recipes/rhyolite_relief_hammer.json | 65 +- .../recipes/rhyolite_relief_hoe.json | 91 +- .../recipes/rhyolite_relief_horizontal.json | 49 +- .../mineralogy/recipes/rhyolite_relief_i.json | 53 +- .../recipes/rhyolite_relief_left.json | 53 +- .../recipes/rhyolite_relief_pickaxe.json | 91 +- .../recipes/rhyolite_relief_plus.json | 53 +- .../recipes/rhyolite_relief_right.json | 51 +- .../recipes/rhyolite_relief_sword.json | 91 +- .../recipes/rhyolite_relief_vertical.json | 53 +- .../mineralogy/recipes/rhyolite_slab.json | 45 +- ...olite_slab_from_rhyolite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_smooth.json | 44 +- .../recipes/rhyolite_smooth_brick.json | 51 +- .../rhyolite_smooth_brick_furnace.json | 66 +- .../recipes/rhyolite_smooth_brick_slab.json | 53 +- .../recipes/rhyolite_smooth_brick_stairs.json | 57 +- .../recipes/rhyolite_smooth_brick_wall.json | 55 +- .../recipes/rhyolite_smooth_furnace.json | 62 +- .../recipes/rhyolite_smooth_slab.json | 49 +- .../recipes/rhyolite_smooth_stairs.json | 53 +- .../recipes/rhyolite_smooth_wall.json | 51 +- .../mineralogy/recipes/rhyolite_stairs.json | 49 +- ...ite_stairs_from_rhyolite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_wall.json | 47 +- ...olite_wall_from_rhyolite_stonecutting.json | 21 - .../data/mineralogy/recipes/rock_salt.json | 33 +- .../mineralogy/recipes/rock_salt_brick.json | 47 +- .../rock_salt_brick_block_polishing.json | 25 + .../recipes/rock_salt_brick_furnace.json | 62 +- .../recipes/rock_salt_brick_slab.json | 49 +- .../rock_salt_brick_slab_polishing.json | 25 + .../rock_salt_brick_slab_recombination.json | 25 + .../recipes/rock_salt_brick_stairs.json | 53 +- .../rock_salt_brick_stairs_polishing.json | 25 + .../recipes/rock_salt_brick_wall.json | 51 +- .../rock_salt_brick_wall_polishing.json | 25 + .../recipes/rock_salt_cobblestone.json | 41 +- .../mineralogy/recipes/rock_salt_dust.json | 26 +- .../mineralogy/recipes/rock_salt_furnace.json | 58 +- .../recipes/rock_salt_furnace_from_rock.json | 29 - ...alt_polished_brick_slab_recombination.json | 25 + ...rock_salt_polished_slab_recombination.json | 25 + .../rock_salt_polished_slabs_to_brick.json | 26 + .../rock_salt_polished_stairs_to_brick.json | 26 + .../rock_salt_polished_walls_to_brick.json | 26 + .../recipes/rock_salt_raw_slab_polishing.json | 25 + .../rock_salt_raw_slab_recombination.json | 25 + .../recipes/rock_salt_raw_slabs_to_brick.json | 26 + .../rock_salt_raw_stairs_polishing.json | 25 + .../rock_salt_raw_stairs_to_brick.json | 26 + .../recipes/rock_salt_raw_wall_polishing.json | 25 + .../recipes/rock_salt_raw_walls_to_brick.json | 26 + .../recipes/rock_salt_relief_axe.json | 91 +- .../recipes/rock_salt_relief_blank.json | 53 +- .../recipes/rock_salt_relief_cross.json | 53 +- .../recipes/rock_salt_relief_hammer.json | 65 +- .../recipes/rock_salt_relief_hoe.json | 91 +- .../recipes/rock_salt_relief_horizontal.json | 49 +- .../recipes/rock_salt_relief_i.json | 53 +- .../recipes/rock_salt_relief_left.json | 53 +- .../recipes/rock_salt_relief_pickaxe.json | 91 +- .../recipes/rock_salt_relief_plus.json | 53 +- .../recipes/rock_salt_relief_right.json | 51 +- .../recipes/rock_salt_relief_sword.json | 91 +- .../recipes/rock_salt_relief_vertical.json | 53 +- .../mineralogy/recipes/rock_salt_slab.json | 45 +- ...salt_slab_from_rock_salt_stonecutting.json | 21 - .../mineralogy/recipes/rock_salt_smooth.json | 44 +- .../recipes/rock_salt_smooth_brick.json | 51 +- .../rock_salt_smooth_brick_furnace.json | 66 +- .../recipes/rock_salt_smooth_brick_slab.json | 53 +- .../rock_salt_smooth_brick_stairs.json | 57 +- .../recipes/rock_salt_smooth_brick_wall.json | 55 +- .../recipes/rock_salt_smooth_furnace.json | 62 +- .../recipes/rock_salt_smooth_slab.json | 49 +- .../recipes/rock_salt_smooth_stairs.json | 53 +- .../recipes/rock_salt_smooth_wall.json | 51 +- .../mineralogy/recipes/rock_salt_stairs.json | 49 +- ...lt_stairs_from_rock_salt_stonecutting.json | 21 - .../mineralogy/recipes/rock_salt_wall.json | 47 +- ...salt_wall_from_rock_salt_stonecutting.json | 21 - .../data/mineralogy/recipes/rocksaltlamp.json | 41 +- .../recipes/rocksaltstreetlamp.json | 45 +- .../data/mineralogy/recipes/schist_brick.json | 47 +- .../recipes/schist_brick_block_polishing.json | 25 + .../recipes/schist_brick_furnace.json | 62 +- .../mineralogy/recipes/schist_brick_slab.json | 49 +- .../recipes/schist_brick_slab_polishing.json | 25 + .../schist_brick_slab_recombination.json | 25 + .../recipes/schist_brick_stairs.json | 53 +- .../schist_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/schist_brick_wall.json | 51 +- .../recipes/schist_brick_wall_polishing.json | 25 + .../recipes/schist_cobblestone.json | 41 +- .../mineralogy/recipes/schist_furnace.json | 58 +- .../recipes/schist_furnace_from_rock.json | 29 - ...ist_polished_brick_slab_recombination.json | 25 + .../schist_polished_slab_recombination.json | 25 + .../schist_polished_slabs_to_brick.json | 26 + .../schist_polished_stairs_to_brick.json | 26 + .../schist_polished_walls_to_brick.json | 26 + .../recipes/schist_raw_slab_polishing.json | 25 + .../schist_raw_slab_recombination.json | 25 + .../recipes/schist_raw_slabs_to_brick.json | 26 + .../recipes/schist_raw_stairs_polishing.json | 25 + .../recipes/schist_raw_stairs_to_brick.json | 26 + .../recipes/schist_raw_wall_polishing.json | 25 + .../recipes/schist_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/schist_relief_axe.json | 91 +- .../recipes/schist_relief_blank.json | 53 +- .../recipes/schist_relief_cross.json | 53 +- .../recipes/schist_relief_hammer.json | 65 +- .../mineralogy/recipes/schist_relief_hoe.json | 91 +- .../recipes/schist_relief_horizontal.json | 49 +- .../mineralogy/recipes/schist_relief_i.json | 53 +- .../recipes/schist_relief_left.json | 53 +- .../recipes/schist_relief_pickaxe.json | 91 +- .../recipes/schist_relief_plus.json | 53 +- .../recipes/schist_relief_right.json | 51 +- .../recipes/schist_relief_sword.json | 91 +- .../recipes/schist_relief_vertical.json | 53 +- .../data/mineralogy/recipes/schist_slab.json | 45 +- .../schist_slab_from_schist_stonecutting.json | 21 - .../mineralogy/recipes/schist_smooth.json | 44 +- .../recipes/schist_smooth_brick.json | 51 +- .../recipes/schist_smooth_brick_furnace.json | 66 +- .../recipes/schist_smooth_brick_slab.json | 53 +- .../recipes/schist_smooth_brick_stairs.json | 57 +- .../recipes/schist_smooth_brick_wall.json | 55 +- .../recipes/schist_smooth_furnace.json | 62 +- .../recipes/schist_smooth_slab.json | 49 +- .../recipes/schist_smooth_stairs.json | 53 +- .../recipes/schist_smooth_wall.json | 51 +- .../mineralogy/recipes/schist_stairs.json | 49 +- ...chist_stairs_from_schist_stonecutting.json | 21 - .../data/mineralogy/recipes/schist_wall.json | 47 +- .../schist_wall_from_schist_stonecutting.json | 21 - .../data/mineralogy/recipes/scoria_brick.json | 47 +- .../recipes/scoria_brick_block_polishing.json | 25 + .../recipes/scoria_brick_furnace.json | 62 +- .../mineralogy/recipes/scoria_brick_slab.json | 49 +- .../recipes/scoria_brick_slab_polishing.json | 25 + .../scoria_brick_slab_recombination.json | 25 + .../recipes/scoria_brick_stairs.json | 53 +- .../scoria_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/scoria_brick_wall.json | 51 +- .../recipes/scoria_brick_wall_polishing.json | 25 + .../recipes/scoria_cobblestone.json | 41 +- .../mineralogy/recipes/scoria_furnace.json | 58 +- .../recipes/scoria_furnace_from_rock.json | 29 - ...ria_polished_brick_slab_recombination.json | 25 + .../scoria_polished_slab_recombination.json | 25 + .../scoria_polished_slabs_to_brick.json | 26 + .../scoria_polished_stairs_to_brick.json | 26 + .../scoria_polished_walls_to_brick.json | 26 + .../recipes/scoria_raw_slab_polishing.json | 25 + .../scoria_raw_slab_recombination.json | 25 + .../recipes/scoria_raw_slabs_to_brick.json | 26 + .../recipes/scoria_raw_stairs_polishing.json | 25 + .../recipes/scoria_raw_stairs_to_brick.json | 26 + .../recipes/scoria_raw_wall_polishing.json | 25 + .../recipes/scoria_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/scoria_relief_axe.json | 91 +- .../recipes/scoria_relief_blank.json | 53 +- .../recipes/scoria_relief_cross.json | 53 +- .../recipes/scoria_relief_hammer.json | 65 +- .../mineralogy/recipes/scoria_relief_hoe.json | 91 +- .../recipes/scoria_relief_horizontal.json | 49 +- .../mineralogy/recipes/scoria_relief_i.json | 53 +- .../recipes/scoria_relief_left.json | 53 +- .../recipes/scoria_relief_pickaxe.json | 91 +- .../recipes/scoria_relief_plus.json | 53 +- .../recipes/scoria_relief_right.json | 51 +- .../recipes/scoria_relief_sword.json | 91 +- .../recipes/scoria_relief_vertical.json | 53 +- .../data/mineralogy/recipes/scoria_slab.json | 45 +- .../scoria_slab_from_scoria_stonecutting.json | 21 - .../mineralogy/recipes/scoria_smooth.json | 44 +- .../recipes/scoria_smooth_brick.json | 51 +- .../recipes/scoria_smooth_brick_furnace.json | 66 +- .../recipes/scoria_smooth_brick_slab.json | 53 +- .../recipes/scoria_smooth_brick_stairs.json | 57 +- .../recipes/scoria_smooth_brick_wall.json | 55 +- .../recipes/scoria_smooth_furnace.json | 62 +- .../recipes/scoria_smooth_slab.json | 49 +- .../recipes/scoria_smooth_stairs.json | 53 +- .../recipes/scoria_smooth_wall.json | 51 +- .../mineralogy/recipes/scoria_stairs.json | 49 +- ...coria_stairs_from_scoria_stonecutting.json | 21 - .../data/mineralogy/recipes/scoria_wall.json | 47 +- .../scoria_wall_from_scoria_stonecutting.json | 21 - .../data/mineralogy/recipes/shale_brick.json | 47 +- .../recipes/shale_brick_block_polishing.json | 25 + .../recipes/shale_brick_furnace.json | 62 +- .../mineralogy/recipes/shale_brick_slab.json | 49 +- .../recipes/shale_brick_slab_polishing.json | 25 + .../shale_brick_slab_recombination.json | 25 + .../recipes/shale_brick_stairs.json | 53 +- .../recipes/shale_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/shale_brick_wall.json | 51 +- .../recipes/shale_brick_wall_polishing.json | 25 + .../mineralogy/recipes/shale_cobblestone.json | 41 +- .../mineralogy/recipes/shale_furnace.json | 58 +- .../recipes/shale_furnace_from_rock.json | 29 - ...ale_polished_brick_slab_recombination.json | 25 + .../shale_polished_slab_recombination.json | 25 + .../shale_polished_slabs_to_brick.json | 26 + .../shale_polished_stairs_to_brick.json | 26 + .../shale_polished_walls_to_brick.json | 26 + .../recipes/shale_raw_slab_polishing.json | 25 + .../recipes/shale_raw_slab_recombination.json | 25 + .../recipes/shale_raw_slabs_to_brick.json | 26 + .../recipes/shale_raw_stairs_polishing.json | 25 + .../recipes/shale_raw_stairs_to_brick.json | 26 + .../recipes/shale_raw_wall_polishing.json | 25 + .../recipes/shale_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/shale_relief_axe.json | 91 +- .../recipes/shale_relief_blank.json | 53 +- .../recipes/shale_relief_cross.json | 53 +- .../recipes/shale_relief_hammer.json | 65 +- .../mineralogy/recipes/shale_relief_hoe.json | 91 +- .../recipes/shale_relief_horizontal.json | 49 +- .../mineralogy/recipes/shale_relief_i.json | 53 +- .../mineralogy/recipes/shale_relief_left.json | 53 +- .../recipes/shale_relief_pickaxe.json | 91 +- .../mineralogy/recipes/shale_relief_plus.json | 53 +- .../recipes/shale_relief_right.json | 51 +- .../recipes/shale_relief_sword.json | 91 +- .../recipes/shale_relief_vertical.json | 53 +- .../data/mineralogy/recipes/shale_slab.json | 45 +- .../shale_slab_from_shale_stonecutting.json | 21 - .../data/mineralogy/recipes/shale_smooth.json | 44 +- .../recipes/shale_smooth_brick.json | 51 +- .../recipes/shale_smooth_brick_furnace.json | 66 +- .../recipes/shale_smooth_brick_slab.json | 53 +- .../recipes/shale_smooth_brick_stairs.json | 57 +- .../recipes/shale_smooth_brick_wall.json | 55 +- .../recipes/shale_smooth_furnace.json | 62 +- .../mineralogy/recipes/shale_smooth_slab.json | 49 +- .../recipes/shale_smooth_stairs.json | 53 +- .../mineralogy/recipes/shale_smooth_wall.json | 51 +- .../data/mineralogy/recipes/shale_stairs.json | 49 +- .../shale_stairs_from_shale_stonecutting.json | 21 - .../data/mineralogy/recipes/shale_wall.json | 47 +- .../shale_wall_from_shale_stonecutting.json | 21 - .../mineralogy/recipes/siltstone_brick.json | 47 +- .../siltstone_brick_block_polishing.json | 25 + .../recipes/siltstone_brick_furnace.json | 62 +- .../recipes/siltstone_brick_slab.json | 49 +- .../siltstone_brick_slab_polishing.json | 25 + .../siltstone_brick_slab_recombination.json | 25 + .../recipes/siltstone_brick_stairs.json | 53 +- .../siltstone_brick_stairs_polishing.json | 25 + .../recipes/siltstone_brick_wall.json | 51 +- .../siltstone_brick_wall_polishing.json | 25 + .../recipes/siltstone_cobblestone.json | 41 +- .../mineralogy/recipes/siltstone_furnace.json | 58 +- .../recipes/siltstone_furnace_from_rock.json | 29 - ...one_polished_brick_slab_recombination.json | 25 + ...siltstone_polished_slab_recombination.json | 25 + .../siltstone_polished_slabs_to_brick.json | 26 + .../siltstone_polished_stairs_to_brick.json | 26 + .../siltstone_polished_walls_to_brick.json | 26 + .../recipes/siltstone_raw_slab_polishing.json | 25 + .../siltstone_raw_slab_recombination.json | 25 + .../recipes/siltstone_raw_slabs_to_brick.json | 26 + .../siltstone_raw_stairs_polishing.json | 25 + .../siltstone_raw_stairs_to_brick.json | 26 + .../recipes/siltstone_raw_wall_polishing.json | 25 + .../recipes/siltstone_raw_walls_to_brick.json | 26 + .../recipes/siltstone_relief_axe.json | 91 +- .../recipes/siltstone_relief_blank.json | 53 +- .../recipes/siltstone_relief_cross.json | 53 +- .../recipes/siltstone_relief_hammer.json | 65 +- .../recipes/siltstone_relief_hoe.json | 91 +- .../recipes/siltstone_relief_horizontal.json | 49 +- .../recipes/siltstone_relief_i.json | 53 +- .../recipes/siltstone_relief_left.json | 53 +- .../recipes/siltstone_relief_pickaxe.json | 91 +- .../recipes/siltstone_relief_plus.json | 53 +- .../recipes/siltstone_relief_right.json | 51 +- .../recipes/siltstone_relief_sword.json | 91 +- .../recipes/siltstone_relief_vertical.json | 53 +- .../mineralogy/recipes/siltstone_slab.json | 45 +- ...tone_slab_from_siltstone_stonecutting.json | 21 - .../mineralogy/recipes/siltstone_smooth.json | 44 +- .../recipes/siltstone_smooth_brick.json | 51 +- .../siltstone_smooth_brick_furnace.json | 66 +- .../recipes/siltstone_smooth_brick_slab.json | 53 +- .../siltstone_smooth_brick_stairs.json | 57 +- .../recipes/siltstone_smooth_brick_wall.json | 55 +- .../recipes/siltstone_smooth_furnace.json | 62 +- .../recipes/siltstone_smooth_slab.json | 49 +- .../recipes/siltstone_smooth_stairs.json | 53 +- .../recipes/siltstone_smooth_wall.json | 51 +- .../mineralogy/recipes/siltstone_stairs.json | 49 +- ...ne_stairs_from_siltstone_stonecutting.json | 21 - .../mineralogy/recipes/siltstone_wall.json | 47 +- ...tone_wall_from_siltstone_stonecutting.json | 21 - .../data/mineralogy/recipes/slate_brick.json | 47 +- .../recipes/slate_brick_block_polishing.json | 25 + .../recipes/slate_brick_furnace.json | 62 +- .../mineralogy/recipes/slate_brick_slab.json | 49 +- .../recipes/slate_brick_slab_polishing.json | 25 + .../slate_brick_slab_recombination.json | 25 + .../recipes/slate_brick_stairs.json | 53 +- .../recipes/slate_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/slate_brick_wall.json | 51 +- .../recipes/slate_brick_wall_polishing.json | 25 + .../mineralogy/recipes/slate_cobblestone.json | 41 +- .../mineralogy/recipes/slate_furnace.json | 58 +- .../recipes/slate_furnace_from_rock.json | 29 - ...ate_polished_brick_slab_recombination.json | 25 + .../slate_polished_slab_recombination.json | 25 + .../slate_polished_slabs_to_brick.json | 26 + .../slate_polished_stairs_to_brick.json | 26 + .../slate_polished_walls_to_brick.json | 26 + .../recipes/slate_raw_slab_polishing.json | 25 + .../recipes/slate_raw_slab_recombination.json | 25 + .../recipes/slate_raw_slabs_to_brick.json | 26 + .../recipes/slate_raw_stairs_polishing.json | 25 + .../recipes/slate_raw_stairs_to_brick.json | 26 + .../recipes/slate_raw_wall_polishing.json | 25 + .../recipes/slate_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/slate_relief_axe.json | 91 +- .../recipes/slate_relief_blank.json | 53 +- .../recipes/slate_relief_cross.json | 53 +- .../recipes/slate_relief_hammer.json | 65 +- .../mineralogy/recipes/slate_relief_hoe.json | 91 +- .../recipes/slate_relief_horizontal.json | 49 +- .../mineralogy/recipes/slate_relief_i.json | 53 +- .../mineralogy/recipes/slate_relief_left.json | 53 +- .../recipes/slate_relief_pickaxe.json | 91 +- .../mineralogy/recipes/slate_relief_plus.json | 53 +- .../recipes/slate_relief_right.json | 51 +- .../recipes/slate_relief_sword.json | 91 +- .../recipes/slate_relief_vertical.json | 53 +- .../data/mineralogy/recipes/slate_slab.json | 45 +- .../slate_slab_from_slate_stonecutting.json | 21 - .../data/mineralogy/recipes/slate_smooth.json | 44 +- .../recipes/slate_smooth_brick.json | 51 +- .../recipes/slate_smooth_brick_furnace.json | 66 +- .../recipes/slate_smooth_brick_slab.json | 53 +- .../recipes/slate_smooth_brick_stairs.json | 57 +- .../recipes/slate_smooth_brick_wall.json | 55 +- .../recipes/slate_smooth_furnace.json | 62 +- .../mineralogy/recipes/slate_smooth_slab.json | 49 +- .../recipes/slate_smooth_stairs.json | 53 +- .../mineralogy/recipes/slate_smooth_wall.json | 51 +- .../data/mineralogy/recipes/slate_stairs.json | 49 +- .../slate_stairs_from_slate_stonecutting.json | 21 - .../data/mineralogy/recipes/slate_wall.json | 47 +- .../slate_wall_from_slate_stonecutting.json | 21 - .../data/mineralogy/recipes/sulfur_block.json | 39 +- .../data/mineralogy/recipes/sulfur_dust.json | 30 +- .../data/mineralogy/recipes/tuff_brick.json | 47 +- .../recipes/tuff_brick_block_polishing.json | 25 + .../recipes/tuff_brick_furnace.json | 62 +- .../mineralogy/recipes/tuff_brick_slab.json | 49 +- .../recipes/tuff_brick_slab_polishing.json | 25 + .../tuff_brick_slab_recombination.json | 25 + .../mineralogy/recipes/tuff_brick_stairs.json | 53 +- .../recipes/tuff_brick_stairs_polishing.json | 25 + .../mineralogy/recipes/tuff_brick_wall.json | 51 +- .../recipes/tuff_brick_wall_polishing.json | 25 + .../mineralogy/recipes/tuff_cobblestone.json | 41 +- .../data/mineralogy/recipes/tuff_furnace.json | 58 +- .../recipes/tuff_furnace_from_rock.json | 29 - ...uff_polished_brick_slab_recombination.json | 25 + .../tuff_polished_slab_recombination.json | 25 + .../recipes/tuff_polished_slabs_to_brick.json | 26 + .../tuff_polished_stairs_to_brick.json | 26 + .../recipes/tuff_polished_walls_to_brick.json | 26 + .../recipes/tuff_raw_slab_polishing.json | 25 + .../recipes/tuff_raw_slab_recombination.json | 25 + .../recipes/tuff_raw_slabs_to_brick.json | 26 + .../recipes/tuff_raw_stairs_polishing.json | 25 + .../recipes/tuff_raw_stairs_to_brick.json | 26 + .../recipes/tuff_raw_wall_polishing.json | 25 + .../recipes/tuff_raw_walls_to_brick.json | 26 + .../mineralogy/recipes/tuff_relief_axe.json | 91 +- .../mineralogy/recipes/tuff_relief_blank.json | 53 +- .../mineralogy/recipes/tuff_relief_cross.json | 53 +- .../recipes/tuff_relief_hammer.json | 65 +- .../mineralogy/recipes/tuff_relief_hoe.json | 91 +- .../recipes/tuff_relief_horizontal.json | 49 +- .../mineralogy/recipes/tuff_relief_i.json | 53 +- .../mineralogy/recipes/tuff_relief_left.json | 53 +- .../recipes/tuff_relief_pickaxe.json | 91 +- .../mineralogy/recipes/tuff_relief_plus.json | 53 +- .../mineralogy/recipes/tuff_relief_right.json | 51 +- .../mineralogy/recipes/tuff_relief_sword.json | 91 +- .../recipes/tuff_relief_vertical.json | 53 +- .../data/mineralogy/recipes/tuff_slab.json | 45 +- .../tuff_slab_from_tuff_stonecutting.json | 21 - .../data/mineralogy/recipes/tuff_smooth.json | 44 +- .../mineralogy/recipes/tuff_smooth_brick.json | 51 +- .../recipes/tuff_smooth_brick_furnace.json | 66 +- .../recipes/tuff_smooth_brick_slab.json | 53 +- .../recipes/tuff_smooth_brick_stairs.json | 57 +- .../recipes/tuff_smooth_brick_wall.json | 55 +- .../recipes/tuff_smooth_furnace.json | 62 +- .../mineralogy/recipes/tuff_smooth_slab.json | 49 +- .../recipes/tuff_smooth_stairs.json | 53 +- .../mineralogy/recipes/tuff_smooth_wall.json | 51 +- .../data/mineralogy/recipes/tuff_stairs.json | 49 +- .../tuff_stairs_from_tuff_stonecutting.json | 21 - .../data/mineralogy/recipes/tuff_wall.json | 47 +- .../tuff_wall_from_tuff_stonecutting.json | 21 - .../data/mineralogy/tags/blocks/rocks.json | 1 - .../tags/blocks/standard_rocks.json | 1 - .../tags/blocks/stones/amphibolite.json | 6 + .../tags/blocks/stones/andesite.json | 7 + .../mineralogy/tags/blocks/stones/basalt.json | 7 + .../tags/blocks/stones/basaltic_glass.json | 6 + .../tags/blocks/stones/conglomerate.json | 6 + .../tags/blocks/stones/diabase.json | 6 + .../tags/blocks/stones/diorite.json | 7 + .../tags/blocks/stones/dolomite.json | 6 + .../mineralogy/tags/blocks/stones/gabbro.json | 6 + .../mineralogy/tags/blocks/stones/gneiss.json | 6 + .../tags/blocks/stones/granite.json | 7 + .../tags/blocks/stones/hornfels.json | 6 + .../tags/blocks/stones/limestone.json | 6 + .../mineralogy/tags/blocks/stones/marble.json | 6 + .../tags/blocks/stones/novaculite.json | 6 + .../tags/blocks/stones/pegmatite.json | 6 + .../tags/blocks/stones/peridotite.json | 6 + .../tags/blocks/stones/phyllite.json | 6 + .../tags/blocks/stones/quartzite.json | 6 + .../tags/blocks/stones/rhyolite.json | 6 + .../tags/blocks/stones/rock_salt.json | 6 + .../mineralogy/tags/blocks/stones/schist.json | 6 + .../mineralogy/tags/blocks/stones/scoria.json | 6 + .../mineralogy/tags/blocks/stones/shale.json | 6 + .../tags/blocks/stones/siltstone.json | 6 + .../mineralogy/tags/blocks/stones/slate.json | 6 + .../mineralogy/tags/blocks/stones/tuff.json | 7 + .../tags/items/cobblestone_equivalents.json | 33 + .../mineralogy/tags/items/drywall/white.json | 6 + .../data/mineralogy/tags/items/rocks.json | 1 - .../tags/items/slabs/amphibolite.json | 6 + .../tags/items/slabs/amphibolite/brick.json | 6 + .../tags/items/slabs/amphibolite/smooth.json | 6 + .../items/slabs/amphibolite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/andesite.json | 7 + .../tags/items/slabs/andesite/brick.json | 6 + .../tags/items/slabs/andesite/smooth.json | 7 + .../items/slabs/andesite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/basalt.json | 6 + .../tags/items/slabs/basalt/brick.json | 6 + .../tags/items/slabs/basalt/smooth.json | 6 + .../tags/items/slabs/basalt/smooth_brick.json | 6 + .../tags/items/slabs/basaltic_glass.json | 6 + .../items/slabs/basaltic_glass/brick.json | 6 + .../items/slabs/basaltic_glass/smooth.json | 6 + .../slabs/basaltic_glass/smooth_brick.json | 6 + .../tags/items/slabs/conglomerate.json | 6 + .../tags/items/slabs/conglomerate/brick.json | 6 + .../tags/items/slabs/conglomerate/smooth.json | 6 + .../slabs/conglomerate/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/diabase.json | 6 + .../tags/items/slabs/diabase/brick.json | 6 + .../tags/items/slabs/diabase/smooth.json | 6 + .../items/slabs/diabase/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/diorite.json | 7 + .../tags/items/slabs/diorite/brick.json | 6 + .../tags/items/slabs/diorite/smooth.json | 7 + .../items/slabs/diorite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/dolomite.json | 6 + .../tags/items/slabs/dolomite/brick.json | 6 + .../tags/items/slabs/dolomite/smooth.json | 6 + .../items/slabs/dolomite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/gabbro.json | 6 + .../tags/items/slabs/gabbro/brick.json | 6 + .../tags/items/slabs/gabbro/smooth.json | 6 + .../tags/items/slabs/gabbro/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/gneiss.json | 6 + .../tags/items/slabs/gneiss/brick.json | 6 + .../tags/items/slabs/gneiss/smooth.json | 6 + .../tags/items/slabs/gneiss/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/granite.json | 7 + .../tags/items/slabs/granite/brick.json | 6 + .../tags/items/slabs/granite/smooth.json | 7 + .../items/slabs/granite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/hornfels.json | 6 + .../tags/items/slabs/hornfels/brick.json | 6 + .../tags/items/slabs/hornfels/smooth.json | 6 + .../items/slabs/hornfels/smooth_brick.json | 6 + .../tags/items/slabs/limestone.json | 6 + .../tags/items/slabs/limestone/brick.json | 6 + .../tags/items/slabs/limestone/smooth.json | 6 + .../items/slabs/limestone/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/marble.json | 6 + .../tags/items/slabs/marble/brick.json | 6 + .../tags/items/slabs/marble/smooth.json | 6 + .../tags/items/slabs/marble/smooth_brick.json | 6 + .../tags/items/slabs/novaculite.json | 6 + .../tags/items/slabs/novaculite/brick.json | 6 + .../tags/items/slabs/novaculite/smooth.json | 6 + .../items/slabs/novaculite/smooth_brick.json | 6 + .../tags/items/slabs/pegmatite.json | 6 + .../tags/items/slabs/pegmatite/brick.json | 6 + .../tags/items/slabs/pegmatite/smooth.json | 6 + .../items/slabs/pegmatite/smooth_brick.json | 6 + .../tags/items/slabs/peridotite.json | 6 + .../tags/items/slabs/peridotite/brick.json | 6 + .../tags/items/slabs/peridotite/smooth.json | 6 + .../items/slabs/peridotite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/phyllite.json | 6 + .../tags/items/slabs/phyllite/brick.json | 6 + .../tags/items/slabs/phyllite/smooth.json | 6 + .../items/slabs/phyllite/smooth_brick.json | 6 + .../tags/items/slabs/quartzite.json | 6 + .../tags/items/slabs/quartzite/brick.json | 6 + .../tags/items/slabs/quartzite/smooth.json | 6 + .../items/slabs/quartzite/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/rhyolite.json | 6 + .../tags/items/slabs/rhyolite/brick.json | 6 + .../tags/items/slabs/rhyolite/smooth.json | 6 + .../items/slabs/rhyolite/smooth_brick.json | 6 + .../tags/items/slabs/rock_salt.json | 6 + .../tags/items/slabs/rock_salt/brick.json | 6 + .../tags/items/slabs/rock_salt/smooth.json | 6 + .../items/slabs/rock_salt/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/schist.json | 6 + .../tags/items/slabs/schist/brick.json | 6 + .../tags/items/slabs/schist/smooth.json | 6 + .../tags/items/slabs/schist/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/scoria.json | 6 + .../tags/items/slabs/scoria/brick.json | 6 + .../tags/items/slabs/scoria/smooth.json | 6 + .../tags/items/slabs/scoria/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/shale.json | 6 + .../tags/items/slabs/shale/brick.json | 6 + .../tags/items/slabs/shale/smooth.json | 6 + .../tags/items/slabs/shale/smooth_brick.json | 6 + .../tags/items/slabs/siltstone.json | 6 + .../tags/items/slabs/siltstone/brick.json | 6 + .../tags/items/slabs/siltstone/smooth.json | 6 + .../items/slabs/siltstone/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/slate.json | 6 + .../tags/items/slabs/slate/brick.json | 6 + .../tags/items/slabs/slate/smooth.json | 6 + .../tags/items/slabs/slate/smooth_brick.json | 6 + .../mineralogy/tags/items/slabs/tuff.json | 6 + .../tags/items/slabs/tuff/brick.json | 6 + .../tags/items/slabs/tuff/smooth.json | 6 + .../tags/items/slabs/tuff/smooth_brick.json | 6 + .../mineralogy/tags/items/standard_rocks.json | 1 - .../tags/items/stone_crafting_materials.json | 33 + .../tags/items/stone_tool_materials.json | 33 + .../tags/items/stones/amphibolite.json | 6 + .../tags/items/stones/amphibolite/brick.json | 6 + .../tags/items/stones/amphibolite/smooth.json | 6 + .../stones/amphibolite/smooth_brick.json | 6 + .../tags/items/stones/andesite.json | 7 + .../tags/items/stones/andesite/brick.json | 6 + .../tags/items/stones/andesite/smooth.json | 7 + .../items/stones/andesite/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/basalt.json | 7 + .../tags/items/stones/basalt/brick.json | 6 + .../tags/items/stones/basalt/smooth.json | 8 + .../items/stones/basalt/smooth_brick.json | 6 + .../tags/items/stones/basaltic_glass.json | 6 + .../items/stones/basaltic_glass/brick.json | 6 + .../items/stones/basaltic_glass/smooth.json | 6 + .../stones/basaltic_glass/smooth_brick.json | 6 + .../tags/items/stones/conglomerate.json | 6 + .../tags/items/stones/conglomerate/brick.json | 6 + .../items/stones/conglomerate/smooth.json | 6 + .../stones/conglomerate/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/diabase.json | 6 + .../tags/items/stones/diabase/brick.json | 6 + .../tags/items/stones/diabase/smooth.json | 6 + .../items/stones/diabase/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/diorite.json | 7 + .../tags/items/stones/diorite/brick.json | 6 + .../tags/items/stones/diorite/smooth.json | 7 + .../items/stones/diorite/smooth_brick.json | 6 + .../tags/items/stones/dolomite.json | 6 + .../tags/items/stones/dolomite/brick.json | 6 + .../tags/items/stones/dolomite/smooth.json | 6 + .../items/stones/dolomite/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/gabbro.json | 6 + .../tags/items/stones/gabbro/brick.json | 6 + .../tags/items/stones/gabbro/smooth.json | 6 + .../items/stones/gabbro/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/gneiss.json | 6 + .../tags/items/stones/gneiss/brick.json | 6 + .../tags/items/stones/gneiss/smooth.json | 6 + .../items/stones/gneiss/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/granite.json | 7 + .../tags/items/stones/granite/brick.json | 6 + .../tags/items/stones/granite/smooth.json | 7 + .../items/stones/granite/smooth_brick.json | 6 + .../tags/items/stones/hornfels.json | 6 + .../tags/items/stones/hornfels/brick.json | 6 + .../tags/items/stones/hornfels/smooth.json | 6 + .../items/stones/hornfels/smooth_brick.json | 6 + .../tags/items/stones/limestone.json | 6 + .../tags/items/stones/limestone/brick.json | 6 + .../tags/items/stones/limestone/smooth.json | 6 + .../items/stones/limestone/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/marble.json | 6 + .../tags/items/stones/marble/brick.json | 6 + .../tags/items/stones/marble/smooth.json | 6 + .../items/stones/marble/smooth_brick.json | 6 + .../tags/items/stones/novaculite.json | 6 + .../tags/items/stones/novaculite/brick.json | 6 + .../tags/items/stones/novaculite/smooth.json | 6 + .../items/stones/novaculite/smooth_brick.json | 6 + .../tags/items/stones/pegmatite.json | 6 + .../tags/items/stones/pegmatite/brick.json | 6 + .../tags/items/stones/pegmatite/smooth.json | 6 + .../items/stones/pegmatite/smooth_brick.json | 6 + .../tags/items/stones/peridotite.json | 6 + .../tags/items/stones/peridotite/brick.json | 6 + .../tags/items/stones/peridotite/smooth.json | 6 + .../items/stones/peridotite/smooth_brick.json | 6 + .../tags/items/stones/phyllite.json | 6 + .../tags/items/stones/phyllite/brick.json | 6 + .../tags/items/stones/phyllite/smooth.json | 6 + .../items/stones/phyllite/smooth_brick.json | 6 + .../tags/items/stones/quartzite.json | 6 + .../tags/items/stones/quartzite/brick.json | 6 + .../tags/items/stones/quartzite/smooth.json | 6 + .../items/stones/quartzite/smooth_brick.json | 6 + .../tags/items/stones/rhyolite.json | 6 + .../tags/items/stones/rhyolite/brick.json | 6 + .../tags/items/stones/rhyolite/smooth.json | 6 + .../items/stones/rhyolite/smooth_brick.json | 6 + .../tags/items/stones/rock_salt.json | 6 + .../tags/items/stones/rock_salt/brick.json | 6 + .../tags/items/stones/rock_salt/smooth.json | 6 + .../items/stones/rock_salt/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/schist.json | 6 + .../tags/items/stones/schist/brick.json | 6 + .../tags/items/stones/schist/smooth.json | 6 + .../items/stones/schist/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/scoria.json | 6 + .../tags/items/stones/scoria/brick.json | 6 + .../tags/items/stones/scoria/smooth.json | 6 + .../items/stones/scoria/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/shale.json | 6 + .../tags/items/stones/shale/brick.json | 6 + .../tags/items/stones/shale/smooth.json | 6 + .../tags/items/stones/shale/smooth_brick.json | 6 + .../tags/items/stones/siltstone.json | 6 + .../tags/items/stones/siltstone/brick.json | 6 + .../tags/items/stones/siltstone/smooth.json | 6 + .../items/stones/siltstone/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/slate.json | 6 + .../tags/items/stones/slate/brick.json | 6 + .../tags/items/stones/slate/smooth.json | 6 + .../tags/items/stones/slate/smooth_brick.json | 6 + .../mineralogy/tags/items/stones/tuff.json | 7 + .../tags/items/stones/tuff/brick.json | 6 + .../tags/items/stones/tuff/smooth.json | 6 + .../tags/items/stones/tuff/smooth_brick.json | 6 + .../tags/items/vanilla_furnace_materials.json | 8 - .../tags/blocks/crusher_inputs/rocks.json | 1 - .../tags/items/crusher_inputs/rocks.json | 1 - src/main/resources/pack.mcmeta | 5 +- .../ConfigurationAndMigrationTest.java | 367 ++++ .../mc/mineralogy/CoremodNamespaceTest.java | 38 - .../mc/mineralogy/GameplayContractTest.java | 177 ++ .../mc/mineralogy/LocalizationParityTest.java | 69 - .../mineralogy/LocalizationQualityTest.java | 179 ++ .../mineralogy/NativeRecipeManagerTest.java | 348 ++++ .../mc/mineralogy/OreSpawnProviderTest.java | 47 - .../mc/mineralogy/ResourceContractTest.java | 766 +++++++ .../mc/mineralogy/WorkflowContractTest.java | 107 + .../compat/CobblestoneTagPolicyTest.java | 57 + .../DocumentationExporterSourceTest.java | 44 + .../DocumentationExporterTest.java | 31 - .../LegacyTileEntityIdNormalizerTest.java | 33 + 3346 files changed, 117880 insertions(+), 73906 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/codeql-analysis.yml create mode 100644 .github/workflows/release-on-tag.yml create mode 100644 .github/workflows/validate-gradle-build.yml create mode 100644 ci-fixtures/tools/LICENSE-MAVENIZER.txt create mode 100644 ci-fixtures/tools/README.md create mode 100644 ci-fixtures/tools/minecraft-1.18-holder-accessor.patch create mode 100644 ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-1.18.jar delete mode 100644 docs/AGENTS.md create mode 100644 docs/VERSIONS.md create mode 100644 gradle/stage-orespawn-release.sh create mode 100644 scripts/generate-locales.ps1 create mode 100644 scripts/generate-recipes.ps1 create mode 100644 src/main/java/zone/moddev/mc/mineralogy/ContentPolicy.java create mode 100644 src/main/java/zone/moddev/mc/mineralogy/CreativeTabPolicy.java delete mode 100644 src/main/java/zone/moddev/mc/mineralogy/RockType.java create mode 100644 src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java create mode 100644 src/main/java/zone/moddev/mc/mineralogy/migration/LegacyMineralogy6ConfigMigrator.java create mode 100644 src/main/java/zone/moddev/mc/mineralogy/migration/LegacyOreConfigMigrator.java create mode 100644 src/main/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizer.java create mode 100644 src/main/resources/assets/mineralogy/lang/pt_pt.json create mode 100644 src/main/resources/assets/mineralogy/textures/items/crude_oil_bucket.png create mode 100644 src/main/resources/data/forge/tags/items/dusts/coal.json rename src/main/resources/data/{minecraft/tags/blocks/deepslate_ore_replaceables.json => forge/tags/items/paper.json} (63%) create mode 100644 src/main/resources/data/forge/tags/items/sand.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/brewing/brewing_stand.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/andesite.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/diorite.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_moss_block.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_vine.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_andesite.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_basalt.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_diorite.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_granite.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/combat/stone_sword.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/decorations/furnace.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/redstone/dispenser.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/redstone/dropper.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/redstone/lever.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/redstone/observer.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/redstone/piston.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/tools/stone_axe.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/tools/stone_hoe.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/tools/stone_pickaxe.json create mode 100644 src/main/resources/data/minecraft/advancements/recipes/tools/stone_shovel.json create mode 100644 src/main/resources/data/minecraft/recipes/andesite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/andesite_slab_from_andesite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/brewing_stand.json create mode 100644 src/main/resources/data/minecraft/recipes/diorite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/diorite_slab_from_diorite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/granite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/granite_slab_from_granite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_andesite.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_andesite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_andesite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_polished_andesite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_basalt.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_diorite.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_diorite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_diorite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_polished_diorite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_granite.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_granite_slab.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_granite_slab_from_granite_stonecutting.json create mode 100644 src/main/resources/data/minecraft/recipes/polished_granite_slab_from_polished_granite_stonecutting.json delete mode 100644 src/main/resources/data/minecraft/recipes/stone.json create mode 100644 src/main/resources/data/minecraft/recipes/stone_axe.json create mode 100644 src/main/resources/data/minecraft/recipes/stone_hoe.json create mode 100644 src/main/resources/data/minecraft/recipes/stone_pickaxe.json create mode 100644 src/main/resources/data/minecraft/recipes/stone_shovel.json create mode 100644 src/main/resources/data/minecraft/recipes/stone_sword.json delete mode 100644 src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json delete mode 100644 src/main/resources/data/minecraft/tags/blocks/stone_ore_replaceables.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/amphibolite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/andesite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basalt_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/chalk.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/chalk_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/conglomerate_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diabase_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/diorite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/dolomite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_black.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_blue.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_brown.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_cyan.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_gray.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_green.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_light_blue.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_lime.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_magenta.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_orange.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_pink.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_purple.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_red.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_silver.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_white.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/drywall_yellow.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gabbro_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gneiss_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/granite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gravel_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_carbon_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_charcoal.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_coal_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_sugar.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gypsum.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/gypsum_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/hornfels_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/limestone_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/marble_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/mineralfertilizer.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/nitrate_block.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/nitrate_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/novaculite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/pegmatite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/peridotite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phosphorous_block.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phosphorous_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/phyllite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/quartzite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rhyolite_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/rock_salt_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/schist_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/scoria_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/shale_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/siltstone_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/slate_to_stone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/sulfur_block.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/sulfur_dust.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_cobblestone.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/advancements/recipes/tuff_to_stone.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_slab_from_amphibolite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_stairs_from_amphibolite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/amphibolite_wall_from_amphibolite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/andesite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/andesite_slab_from_andesite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_to_vanilla.json delete mode 100644 src/main/resources/data/mineralogy/recipes/andesite_stairs_from_andesite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/andesite_wall_from_andesite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basalt_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basalt_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basalt_slab_from_basalt_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basalt_stairs_from_basalt_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basalt_wall_from_basalt_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_slab_from_basaltic_glass_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs_from_basaltic_glass_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/basaltic_glass_wall_from_basaltic_glass_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_slab_from_conglomerate_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_stairs_from_conglomerate_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/conglomerate_wall_from_conglomerate_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diabase_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diabase_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diabase_slab_from_diabase_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diabase_stairs_from_diabase_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diabase_wall_from_diabase_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diorite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diorite_slab_from_diorite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_to_vanilla.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diorite_stairs_from_diorite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/diorite_wall_from_diorite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_slab_from_dolomite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_stairs_from_dolomite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/dolomite_wall_from_dolomite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_slab_from_gabbro_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_stairs_from_gabbro_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gabbro_wall_from_gabbro_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_slab_from_gneiss_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_stairs_from_gneiss_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gneiss_wall_from_gneiss_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/granite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/granite_slab_from_granite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_slab_to_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_smooth_slab_from_vanilla.json create mode 100644 src/main/resources/data/mineralogy/recipes/granite_smooth_slab_to_vanilla.json delete mode 100644 src/main/resources/data/mineralogy/recipes/granite_stairs_from_granite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/granite_wall_from_granite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon.json create mode 100644 src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon_dust.json create mode 100644 src/main/resources/data/mineralogy/recipes/gunpowder_from_charcoal.json delete mode 100644 src/main/resources/data/mineralogy/recipes/gunpowder_from_coal.json create mode 100644 src/main/resources/data/mineralogy/recipes/gunpowder_from_coal_dust.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_slab_from_hornfels_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_stairs_from_hornfels_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/hornfels_wall_from_hornfels_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/limestone_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/limestone_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/limestone_slab_from_limestone_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/limestone_stairs_from_limestone_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/limestone_wall_from_limestone_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/marble_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/marble_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/marble_slab_from_marble_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/marble_stairs_from_marble_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/marble_wall_from_marble_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/mineral_fertilizer.json create mode 100644 src/main/resources/data/mineralogy/recipes/mineralfertilizer.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_slab_from_novaculite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_stairs_from_novaculite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/novaculite_wall_from_novaculite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_slab_from_pegmatite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_stairs_from_pegmatite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/pegmatite_wall_from_pegmatite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_slab_from_peridotite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_stairs_from_peridotite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/peridotite_wall_from_peridotite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_slab_from_phyllite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_stairs_from_phyllite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/phyllite_wall_from_phyllite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_slab_from_quartzite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_stairs_from_quartzite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/quartzite_wall_from_quartzite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_slab_from_rhyolite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_stairs_from_rhyolite_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rhyolite_wall_from_rhyolite_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_slab_from_rock_salt_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_stairs_from_rock_salt_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/rock_salt_wall_from_rock_salt_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/schist_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/schist_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/schist_slab_from_schist_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/schist_stairs_from_schist_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/schist_wall_from_schist_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/scoria_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/scoria_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/scoria_slab_from_scoria_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/scoria_stairs_from_scoria_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/scoria_wall_from_scoria_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/shale_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/shale_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/shale_slab_from_shale_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/shale_stairs_from_shale_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/shale_wall_from_shale_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_slab_from_siltstone_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_stairs_from_siltstone_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/siltstone_wall_from_siltstone_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/slate_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/slate_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/slate_slab_from_slate_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/slate_stairs_from_slate_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/slate_wall_from_slate_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_brick_block_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_brick_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_brick_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_brick_wall_polishing.json delete mode 100644 src/main/resources/data/mineralogy/recipes/tuff_furnace_from_rock.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_polished_brick_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_polished_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_polished_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_polished_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_polished_walls_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_slab_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_slab_recombination.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_slabs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_to_brick.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_wall_polishing.json create mode 100644 src/main/resources/data/mineralogy/recipes/tuff_raw_walls_to_brick.json delete mode 100644 src/main/resources/data/mineralogy/recipes/tuff_slab_from_tuff_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/tuff_stairs_from_tuff_stonecutting.json delete mode 100644 src/main/resources/data/mineralogy/recipes/tuff_wall_from_tuff_stonecutting.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/amphibolite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/andesite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/basalt.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/basaltic_glass.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/conglomerate.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/diabase.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/diorite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/dolomite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/gabbro.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/gneiss.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/granite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/hornfels.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/limestone.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/marble.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/novaculite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/pegmatite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/peridotite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/phyllite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/quartzite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/rhyolite.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/rock_salt.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/schist.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/scoria.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/shale.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/siltstone.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/slate.json create mode 100644 src/main/resources/data/mineralogy/tags/blocks/stones/tuff.json create mode 100644 src/main/resources/data/mineralogy/tags/items/cobblestone_equivalents.json create mode 100644 src/main/resources/data/mineralogy/tags/items/drywall/white.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/amphibolite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/andesite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/andesite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basalt.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basalt/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/conglomerate.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diabase.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diabase/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diorite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diorite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/dolomite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/dolomite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gabbro.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gabbro/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gneiss.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gneiss/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/granite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/granite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/hornfels.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/hornfels/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/limestone.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/limestone/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/marble.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/marble/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/novaculite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/novaculite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/pegmatite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/peridotite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/peridotite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/phyllite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/phyllite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/quartzite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/quartzite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rhyolite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rock_salt.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/schist.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/schist/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/scoria.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/scoria/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/shale.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/shale/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/siltstone.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/siltstone/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/slate.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/slate/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/tuff.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/tuff/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stone_crafting_materials.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stone_tool_materials.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/amphibolite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/amphibolite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/andesite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/andesite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basalt.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basalt/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/conglomerate.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/conglomerate/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diabase.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diabase/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diorite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diorite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/dolomite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/dolomite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gabbro.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gabbro/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gneiss.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gneiss/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/granite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/granite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/granite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/granite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/hornfels.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/hornfels/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/limestone.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/limestone/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/marble.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/marble/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/marble/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/marble/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/novaculite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/novaculite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/pegmatite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/pegmatite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/peridotite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/peridotite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/phyllite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/phyllite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/quartzite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/quartzite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rhyolite.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rhyolite/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rock_salt.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rock_salt/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/schist.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/schist/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/schist/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/schist/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/scoria.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/scoria/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/shale.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/shale/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/shale/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/shale/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/siltstone.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/siltstone/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/slate.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/slate/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/slate/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/slate/smooth_brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/tuff.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/tuff/brick.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth.json create mode 100644 src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth_brick.json delete mode 100644 src/main/resources/data/mineralogy/tags/items/vanilla_furnace_materials.json create mode 100644 src/test/java/zone/moddev/mc/mineralogy/ConfigurationAndMigrationTest.java delete mode 100644 src/test/java/zone/moddev/mc/mineralogy/CoremodNamespaceTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/GameplayContractTest.java delete mode 100644 src/test/java/zone/moddev/mc/mineralogy/LocalizationParityTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/LocalizationQualityTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/NativeRecipeManagerTest.java delete mode 100644 src/test/java/zone/moddev/mc/mineralogy/OreSpawnProviderTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/ResourceContractTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicyTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterSourceTest.java delete mode 100644 src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterTest.java create mode 100644 src/test/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizerTest.java diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..e5ff6692c --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: Mineralogy 1.18.2 CI + +on: + push: + branches: + - master-1.18.2 + - 'feature/**' + pull_request: + branches: + - master-1.18.2 + +permissions: + contents: read + +concurrency: + group: mineralogy-1.18-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + name: Build, test, and audit + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 17 runtime and toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + + - name: Stage exact OreSpawn release dependency + id: orespawn + run: | + mirror="$RUNNER_TEMP/orespawn-mirror" + bash gradle/stage-orespawn-release.sh "$mirror" + echo "repository=$mirror" >> "$GITHUB_OUTPUT" + + - name: Build, test, and audit release artifacts + run: | + chmod +x ./gradlew + ./gradlew clean check build javadoc verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums \ + -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ + --no-daemon --stacktrace + + - name: Generate and audit Eclipse production launches + run: >- + ./gradlew genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath + -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} + --no-daemon --stacktrace + + - name: Upload audited release candidate + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: Mineralogy-1.18.2-${{ github.sha }} + if-no-files-found: error + retention-days: 30 + path: | + build/libs/Mineralogy-6.1.0.118021.jar + build/libs/Mineralogy-6.1.0.118021-sources.jar + build/libs/Mineralogy-6.1.0.118021-javadoc.jar + build/release/SHA256SUMS + CHANGELOG.txt + + - name: Upload diagnostics on failure + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: Mineralogy-1.18.2-diagnostics-${{ github.sha }} + if-no-files-found: ignore + retention-days: 14 + path: | + build/test-results/** + build/reports/** + build/*-run/logs/** + build/problems/** diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 000000000..28a02717d --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,47 @@ +name: CodeQL + +on: + push: + branches: + - master-1.18.2 + - 'feature/**' + pull_request: + branches: + - master-1.18.2 + +permissions: + actions: read + contents: read + security-events: write + +jobs: + analyze: + name: Analyze Java + runs-on: ubuntu-latest + timeout-minutes: 45 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 17 runtime and toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Set up Gradle + uses: gradle/actions/setup-gradle@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 + + - name: Initialize CodeQL + uses: github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 + with: + languages: java-kotlin + + - name: Compile production code + run: | + chmod +x ./gradlew + ./gradlew clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace + + - name: Analyze + uses: github/codeql-action/analyze@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28 # v4 diff --git a/.github/workflows/release-on-tag.yml b/.github/workflows/release-on-tag.yml new file mode 100644 index 000000000..78326a6c9 --- /dev/null +++ b/.github/workflows/release-on-tag.yml @@ -0,0 +1,92 @@ +name: Validate Mineralogy release tag + +on: + push: + tags: + - '*.*.*.*' + +permissions: + actions: read + contents: read + +concurrency: + group: mineralogy-release-tag-${{ github.ref_name }} + cancel-in-progress: false + +jobs: + validate-release-tag: + name: Validate tag for manual release confirmation + if: github.repository == 'MinecraftModDevelopmentMods/MinecraftMineralogy' + runs-on: ubuntu-latest + timeout-minutes: 10 + + steps: + - name: Check out tagged source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + with: + fetch-depth: 0 + + - name: Validate release tag, target metadata, and prior CI + env: + GH_TOKEN: ${{ github.token }} + run: | + set -euo pipefail + + value() { sed -n "s/^$1=//p" gradle.properties; } + release_version="$(value mod_version)" + minecraft_version="$(value minecraft_version)" + loader_name="$(value loader_name)" + loader_code="$(value loader_code)" + + IFS=. read -r mc_major mc_minor mc_patch extra <<<"$minecraft_version" + if [[ -n "${extra:-}" || -z "${mc_major:-}" || -z "${mc_minor:-}" ]]; then + echo "Invalid minecraft_version=$minecraft_version" >&2 + exit 1 + fi + mc_patch="${mc_patch:-0}" + if [[ ! "$mc_major" =~ ^[0-9]+$ || ! "$mc_minor" =~ ^[0-9]+$ || ! "$mc_patch" =~ ^[0-9]+$ ]]; then + echo "Invalid minecraft_version=$minecraft_version" >&2 + exit 1 + fi + case "$loader_name:$loader_code" in + forge:1|neoforge:2) ;; + *) echo "Invalid loader metadata $loader_name/$loader_code" >&2; exit 1 ;; + esac + printf -v minor_padded '%02d' "$((10#$mc_minor))" + printf -v patch_padded '%02d' "$((10#$mc_patch))" + target_suffix="${mc_major}${minor_padded}${patch_padded}${loader_code}" + + if [[ ! "$release_version" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.${target_suffix}$ ]]; then + echo "mod_version $release_version does not match $minecraft_version $loader_name target $target_suffix" >&2 + exit 1 + fi + if [[ "$GITHUB_REF_NAME" != "$release_version" ]]; then + echo "Release tag must equal mod_version $release_version; found $GITHUB_REF_NAME" >&2 + exit 1 + fi + + successful_ci="$(gh api \ + "repos/$GITHUB_REPOSITORY/commits/$GITHUB_SHA/check-runs?per_page=100" \ + --jq '[.check_runs[] | select(.name == "Build, test, and audit" and .conclusion == "success")] | length')" + if [[ "$successful_ci" -lt 1 ]]; then + echo "The tagged commit has no successful Build, test, and audit check" >&2 + exit 1 + fi + + - name: Record the manual publication interface + env: + RELEASE_WORKFLOW_URL: https://github.com/${{ github.repository }}/actions/workflows/deploy-release.yml + run: | + { + echo "## Release tag validated" + echo + echo "Tag \`$GITHUB_REF_NAME\` matches the selected target and has a successful Build, test, and audit check." + echo + echo "If this tag was created outside the release workflow, nothing has been published." + echo + echo "To start or recover publication, open [Release Mineralogy]($RELEASE_WORKFLOW_URL), select **Run workflow**, and enter:" + echo + echo "- release version: \`$GITHUB_REF_NAME\`" + echo "- CurseForge release level: \`release\`, \`beta\`, or \`alpha\`" + echo "- confirm live publication: checked" + } >> "$GITHUB_STEP_SUMMARY" diff --git a/.github/workflows/validate-gradle-build.yml b/.github/workflows/validate-gradle-build.yml new file mode 100644 index 000000000..afe21adc4 --- /dev/null +++ b/.github/workflows/validate-gradle-build.yml @@ -0,0 +1,23 @@ +name: Validate Gradle Wrapper + +on: + push: + branches: + - master-1.18.2 + - 'feature/**' + pull_request: + branches: + - master-1.18.2 + +permissions: + contents: read + +jobs: + validation: + name: Validation + runs-on: ubuntu-latest + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + - name: Validate wrapper integrity + uses: gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb # v6 diff --git a/CHANGELOG.txt b/CHANGELOG.txt index 8067d0f67..2c034b46c 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1 +1,96 @@ -Mineralogy 1.12.x +Mineralogy 6.1.0.118021 for Minecraft 1.18.2 + +- Delegated terrain, strata, ore, and covered fluid-deposit generation to the + released OreSpawn 4.0.10.118021 provider engine, retaining the supported + `[4.0.6,5.0.0)` range; removed Mineralogy's parallel + geology, geome, ore, noise, and stone-replacement generators. +- Preserved all world-facing registry, tile, NBT, recipe, asset, patch, and + pre-flattening conversion identities while moving production packages to + zone.moddev.mc.mineralogy. Existing 1.10/1.12 chunks are protected during + 1.18.2's flattening conversion. Legacy rock-furnace IDs are established + before Mojang data fixing, then all pre-namespaced tile IDs are made safe + before Forge constructs tile entities, so inventories and progress survive + and an uppercase vanilla ID cannot abort the complete chunk load. + Legacy state tables now support the complete 12-bit mod block-ID range in + both development and packaged runtimes, and each selected save reinstalls + its own numeric mapping after the client enumerates multiple old worlds. +- Added compatibility-safe controls for drywall, rock-salt lamps, mineral + dusts, and fertilizer, plus the stable five-way grouped creative tabs. + Disabled content remains registered and usable in established worlds. +- Preserved vertically mounted legacy rock-salt lamps on torch-supporting + blocks such as fences during pre-flattening world conversion. +- Made the historical `COBBLESTONE_EQUIVILENT` option functional through + target-native per-family block and item tags, including vanilla aliases, + reapplied after data reloads by updating the exact immutable tag objects + retained by already-parsed Forge 40 recipe ingredients. Chert and pumice + remain unconditional cobblestone equivalents. +- Added isolated Mineralogy crude-oil source and flowing fluids, block, bucket, + rendering resources, and the covered Ocean deposit declaration. +- Uses Minecraft 1.18's native granite, diorite, andesite, basalt, and tuff for + new OreSpawn terrain while retaining Mineralogy's historical registrations + and conversion aliases. Native smooth basalt joins Mineralogy's smooth-basalt + family without replacing Minecraft's basalt-smelting route. Deepslate remains + a terrain and ore host rather than becoming a construction family. +- Preserved rock-furnace save recovery and novaculite's 3/15/1 properties; + corrected replacement drop semantics and exact full-block Silk Touch results + for double slabs. +- Ported the accepted recipe contract as 1,427 native JSON recipes and matching + advancements: safe 4-to-1 mineral packing, charcoal and Base Metals dust + gunpowder routes, exact slabs, slab recombination, construction-form brick + conversions, progressive sand polishing, matching-slab rock furnaces, and + blank-to-marked relief progression. Each rock-furnace recipe is revealed as + soon as its matching slab is acquired, before a vanilla furnace is crafted. +- Reconciled Minecraft's native andesite, basalt, diorite, and granite with + their retained Mineralogy world-compatibility blocks. Native blocks now + unlock and feed every non-conflicting matching Mineralogy recipe. The four + vanilla 2x2 polished-block recipes are replaced by block-plus-sand routes so + the 2x2 recipes remain available for Mineralogy bricks. The six shared + andesite, diorite and granite slab recipes plus all nine matching stonecutter + routes now produce Mineralogy's more capable slabs, while the vanilla slabs + remain registered and tag-compatible. Twelve exact shapeless compatibility + recipes convert each raw or polished Mineralogy slab to its matching vanilla + slab and back at a lossless 1:1 ratio for modpacks that require an exact + vanilla item. Recipe advancements use the same exact item or family tag as + the recipe they reveal. +- Extended Minecraft 1.18's native stone crafting and tool-material tags so + every enabled cobblestone equivalent, including all 27 legacy rock families + and target-native aliases, works in the complete vanilla contract. Sixteen + conditional JSON overrides cover furnaces, brewing stands, redstone and + conversion recipes, and all stone tools without changing their IDs, + patterns, outputs or other ingredients. Disabled mode restores the native + ingredients and keeps blackstone, chert and pumice valid. Matching-slab + rock-furnace upgrades and vanilla cobblestone construction recipes remain + distinct. +- Prevented Forge 40 from silently reducing optional carbon- or coal-dust + gunpowder recipes to nitrate plus sulfur when their compatibility tag is + empty; every loaded gunpowder recipe now requires all three components. +- Added 17 reviewed UTF-8 JSON locales with the same 938 ordered keys, including + Brazilian and European Portuguese, Canadian French, Japanese, Korean, and + Russian. +- Added first-start player, developer, content, provider, and version guides, + plus an exact provider example. Existing exported guides are never + overwritten. Forge 40 Eclipse launches keep their required merged + `bin/main` mod output; if Eclipse removes Gradle's staged guide copies, the + exporter reads the authoritative source-checkout guides without weakening + packaged-jar validation. +- Added independent, atomic migration of valid non-default legacy ore settings + into a Mineralogy OreSpawn provider override, including deterministic reports + and exclusive-to-inclusive maximum-height conversion. +- Mineralogy 6.0 JSON upgrades now retain the original global and per-world + geology files byte-for-byte while mapping their old block-named rock and ore + entries onto Mineralogy's stable provider rule IDs. This prevents duplicate + ore generation and preserves world-specific geology choices on first start; + established OreSpawn files remain authoritative and reloads are byte-stable. +- Preserved 1.18-native wall tall-side blockstates and models, wall/item tags, + loot tables, fluid APIs, rendering setup, and pack format 9 resources. +- Added reproducible Java 17 main, sources, and Javadoc artifacts, exact released + OreSpawn dependency verification, guarded 1.18.2 CI, and the four-component + release tag `6.1.0.118021`. +- Kept ForgeGradle 7 while sealing Forge 40's required Mavenizer compatibility + fixture by SHA-256. The build-only tool runs on Java 25; Mineralogy compiles + and ships exclusively as Java 17, and release audits reject fixture leakage. +- Isolated CI's verified OreSpawn artifact in an exclusive Gradle repository so + dependency resolution cannot fall through to an unverified public copy. + Release verification also enforces Maven coordinate + `zone.moddev.mc.mineralogy:Mineralogy`, its generated POM, and the jar's + `Maven-Artifact` manifest entry. diff --git a/README.md b/README.md index 85f589796..fd117a663 100644 --- a/README.md +++ b/README.md @@ -1,62 +1,39 @@ -# Minecraft Mineralogy 6 +[![Discord](https://img.shields.io/badge/Discord-MMD-green.svg?style=flat&logo=Discord)](https://discord.moddev.zone) +[![CurseForge downloads](https://cf.way2muchnoise.eu/full_minecraft-mineralogy_downloads.svg)](https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy) +[![Supported Minecraft versions](https://cf.way2muchnoise.eu/versions/Minecraft_minecraft-mineralogy_all.svg)](https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy) +[![Build, test, and audit](https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy/actions/workflows/ci.yml/badge.svg?branch=master-1.18.2)](https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy/actions/workflows/ci.yml?query=branch%3Amaster-1.18.2) -Mineralogy adds real-world rock types to Minecraft 1.18.2, together with -matching slabs, stairs, walls, bricks, polished blocks, reliefs, and furnaces. -It also supplies sulfur, phosphorous, nitrate, rock salt lighting, and crude -oil content. +# Mineralogy 6 for Minecraft 1.18.2 -Mineralogy 6 requires **OreSpawn 4**. Mineralogy owns the blocks, items, -recipes, loot, textures, tags, and old-world compatibility. OreSpawn owns -terrain replacement, geological regions, formations, ore and fluid-deposit placement, -world profiles, configuration screens, retrogen, and the public worldgen API. +Mineralogy adds real-world rock families, matching construction blocks, +mineral ores and dusts, rock furnaces, drywall, rock-salt lighting, fertilizer, +and crude oil. OreSpawn 4 is the sole terrain, strata, ore, and deposit engine; +Mineralogy no longer installs a parallel world generator. -## Players +This branch builds Mineralogy `6.1.0.118021` for Forge `40.3.0` and is built +and tested against OreSpawn `4.0.10.118021`. Its declared compatibility range is +OreSpawn `[4.0.6,5.0.0)`. Install both mods on clients and servers. -Install matching Minecraft 1.18.2 builds of Mineralogy 6 and OreSpawn 4 on the -client and server. When creating a world, open **OreSpawn World Generation** to -choose the recommended settings or tune the geology. Its **Help & Guide** -button explains the controls in game. +## Configuration and help -Mineralogy rocks work as stone or cobblestone where appropriate. Matching -rocks can also make their own furnaces and decorative block families. +Mineralogy's content and recipe switches remain in +`config/mineralogy-common.toml`. Use OreSpawn's world-creation UI or saved world +profile for rock, ore, fluid, dimension, altitude, and terrain-host settings. +Generation changes apply to new chunks only. -Five names now have vanilla equivalents: andesite, basalt, diorite, granite, -and tuff. New terrain uses the vanilla blocks by default. Mineralogy's versions -remain registered so old worlds still load and pack authors can select them. +After the first start, the complete human guide is available under +`config/mineralogy-guide/`. The maintained source is in [docs](docs/README.md) +and covers upgrades, content controls, pack overrides, provider data, and +four-component release versions. -## Configuration +## Compatibility -- `config/mineralogy-common.toml` controls Mineralogy content and recipes. -- `config/orespawn-worldgen.json` controls installed-pack worldgen defaults. -- `/serverconfig/orespawn-worldgen.json` is the world's complete - snapshot and can be copied with the world to a dedicated server. -- `config/mineralogy-orespawn.json` may override Mineralogy's packaged OreSpawn - provider for a modpack. -- `config/mineralogy-guide/` is written on first load with Mineralogy's player, - content, and provider documentation. -- `config/orespawn-guide/` contains the full engine, API, schema, template, and - dimension documentation. +The `mineralogy` mod ID and historical block, item, tile, NBT, recipe, asset, +patch, and pre-flattening world-conversion identities are retained. Existing +Mineralogy 5 configuration is read without being rewritten. Established worlds +continue through OreSpawn's migrated Cyano/geome profile unless their owner +explicitly selects a different engine. -Configuration changes affect newly generated chunks. Existing terrain is not -rewritten. - -## Developers - -Start with [the developer guide](docs/DEVELOPER_GUIDE.md) and -[provider notes](docs/PROVIDER.md). Integrations should use OreSpawn's supported -API and provider format rather than calling Mineralogy internals. - -Mineralogy requires Java 17. Build from the repository root with: - -```powershell -.\gradlew.bat build --no-daemon -``` - -Private `AGENTS.md` and `agent-notes/` files are local workspace context and are -ignored. Tracked public guidance lives under `docs/` and is packaged in the jar. - -## Links - -- [CurseForge](https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy) -- [Issues](https://github.com/SkyBlade1978/MinecraftMineralogy/issues) -- [Minecraft Mod Development Discord](https://discord.mcmoddev.com) +[CurseForge](https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy) · +[Source and issues](https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy) · +[MMD Discord](https://discord.moddev.zone) diff --git a/build.gradle b/build.gradle index 9bd0ccd6b..b2f098a59 100644 --- a/build.gradle +++ b/build.gradle @@ -1,490 +1,937 @@ +import groovy.json.JsonSlurper +import groovy.xml.XmlSlurper +import java.security.MessageDigest +import java.util.zip.ZipFile +import org.apache.tools.ant.filters.FixCrLfFilter + plugins { + id 'java' id 'eclipse' id 'idea' id 'maven-publish' - id 'net.minecraftforge.gradle' version '[6.0,6.2)' + id 'net.minecraftforge.renamer' version '1.1.5' + id 'net.minecraftforge.gradle' version '7.0.34' +} + +def mavenizerCompatibilityJar = layout.projectDirectory.file( + 'ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-1.18.jar') +def mavenizerCompatibilitySha256 = + '28A6697BDF6D9500EC0AF9C1C949B9F3ED7DDFDA649CB5CAC4BEEA2E9567570A' + +// ForgeGradle 7's Mavenizer recompilation rejects a redundant accessor emitted +// by Forge 40's 1.18.2 decompiler. This checksum-sealed build-only variant +// removes that accessor; Mineralogy itself remains Java 17 bytecode. +fgtools.configure('mavenizer') { + classpath.from(mavenizerCompatibilityJar) + mainClass.set('net.minecraftforge.mcmaven.cli.Main') + javaLauncher.set(javaToolchains.launcherFor { + languageVersion = JavaLanguageVersion.of(25) + vendor = JvmVendorSpec.ADOPTIUM + }) } -version = mod_version -group = mod_group_id +version = project.mod_version +group = project.mod_group +base.archivesName = 'Mineralogy' + +// Eclipse imports this nested checkout under its folder name. Keep the +// generated project and Forge launch configurations aligned with that stable +// workspace identity rather than Gradle's publication-facing root name. +def eclipseWorkspaceProjectName = projectDir.name +eclipse { + project { + name = eclipseWorkspaceProjectName + } +} -base { - archivesName = "Mineralogy-${minecraft_version}" +def versionParts = project.mod_version.toString().tokenize('.') +if (versionParts.size() != 4 || !versionParts.every { it ==~ /\d+/ }) { + throw new GradleException("mod_version must use Major.Minor.Bug.Target numeric form: ${project.mod_version}") +} +if (versionParts[3] != '118021') { + throw new GradleException("Mineralogy 1.18.2 Forge releases must use target 118021: ${project.mod_version}") } -// Mojang ships Java 17 to end users in 1.18+, so your mod should target Java 17. java { - toolchain.languageVersion = JavaLanguageVersion.of(17) + toolchain { + languageVersion = JavaLanguageVersion.of(17) + vendor = JvmVendorSpec.ADOPTIUM + } withSourcesJar() withJavadocJar() } -println "Java: ${System.getProperty 'java.version'}, JVM: ${System.getProperty 'java.vm.version'} (${System.getProperty 'java.vendor'}), Arch: ${System.getProperty 'os.arch'}" -minecraft { - // The mappings can be changed at any time and must be in the following format. - // Channel: Version: - // official MCVersion Official field/method names from Mojang mapping files - // parchment YYYY.MM.DD-MCVersion Open community-sourced parameter names and javadocs layered on top of official - // - // You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. - // See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md - // - // Parchment is an unofficial project maintained by ParchmentMC, separate from MinecraftForge - // Additional setup is needed to use their mappings: https://github.com/ParchmentMC/Parchment/wiki/Getting-Started - // - // Use non-default mappings at your own risk. They may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - mappings channel: mapping_channel, version: mapping_version - - // When true, this property will have all Eclipse/IntelliJ IDEA run configurations run the "prepareX" task for the given run configuration before launching the game. - // In most cases, it is not necessary to enable. - // enableEclipsePrepareRuns = true - // enableIdeaPrepareRuns = true - - // This property allows configuring Gradle's ProcessResources task(s) to run on IDE output locations before launching the game. - // It is REQUIRED to be set to true for this template to function. - // See https://docs.gradle.org/current/dsl/org.gradle.language.jvm.tasks.ProcessResources.html - copyIdeResources = true - - // When true, this property will add the folder name of all declared run configurations to generated IDE run configurations. - // The folder name can be set on a run configuration using the "folderName" property. - // By default, the folder name of a run configuration is the name of the Gradle project containing it. - // generateRunFolders = true - - // This property enables access transformers for use in development. - // They will be applied to the Minecraft artifact. - // The access transformer file can be anywhere in the project. - // However, it must be at "META-INF/accesstransformer.cfg" in the final mod jar to be loaded by Forge. - // This default location is a best practice to automatically put the file in the right place in the final jar. - // See https://docs.minecraftforge.net/en/latest/advanced/accesstransformers/ for more information. - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - // applies to all the run configs below - configureEach { - workingDirectory project.file('run') +tasks.named('sourcesJar', Jar) { + includeEmptyDirs = false + exclude 'com/mcmoddev/mineralogy/**' +} - // Recommended logging data for a userdev environment - // The markers can be added/remove as needed separated by commas. - // "SCAN": For mods scan. - // "REGISTRIES": For firing of registry events. - // "REGISTRYDUMP": For getting the contents of all registries. - property 'forge.logging.markers', 'REGISTRIES' +tasks.withType(JavaCompile).configureEach { + javaCompiler = javaToolchains.compilerFor { + languageVersion = JavaLanguageVersion.of(17) + vendor = JvmVendorSpec.ADOPTIUM + } + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + options.encoding = 'UTF-8' + options.compilerArgs.addAll(['-Xlint:deprecation', '-Xmaxerrs', '1000']) +} - // Recommended logging level for the console - // You can set various levels here. - // Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels - property 'forge.logging.console.level', 'debug' +tasks.named('compileTestJava', JavaCompile) { + options.compilerArgs.add('-proc:none') +} - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', mod_id +minecraft { + mappings channel: project.mcp_mappings_channel, version: project.mcp_mappings_version + runs { + configureEach { + workingDir.convention layout.projectDirectory.dir( + providers.gradleProperty('runDirectory').getOrElse('run')) + jvmArgs '--add-opens', 'java.base/java.lang.invoke=ALL-UNNAMED' + systemProperty 'forge.logging.markers', 'REGISTRIES' + systemProperty 'forge.logging.console.level', 'debug' mods { - mineralogy { - source sourceSets.main - } + mineralogy { source sourceSets.main } } } - - client { - // Comma-separated list of namespaces to load gametests from. Empty = all namespaces. - property 'forge.enabledGameTestNamespaces', mod_id - } - - server { - property 'forge.enabledGameTestNamespaces', mod_id + register('client') + register('server') { args '--nogui' } + } +} - // This run config launches GameTestServer and runs all registered gametests, then exits. - // By default, the server will crash when no gametests are provided. - // The gametest system is also enabled by default for other run configs under the /test command. - gameTestServer { - property 'forge.enabledGameTestNamespaces', mod_id - if (providers.gradleProperty('orespawnBenchmarkMode').isPresent()) { - property 'orespawn.worldgenBenchmarkMode', providers.gradleProperty('orespawnBenchmarkMode').get() - property 'orespawn.worldgenBenchmarkRadius', - providers.gradleProperty('orespawnBenchmarkRadius').getOrElse('4') - property 'orespawn.worldgenBenchmarkRepetitions', - providers.gradleProperty('orespawnBenchmarkRepetitions').getOrElse('3') - property 'orespawn.worldgenBenchmarkVanillaOres', - providers.gradleProperty('orespawnBenchmarkVanillaOres').getOrElse('false') - property 'orespawn.worldgenBenchmarkOreAudit', - providers.gradleProperty('orespawnBenchmarkOreAudit').getOrElse('false') - if (providers.gradleProperty('orespawnBenchmarkBlockAudit').isPresent()) { - property 'orespawn.worldgenBenchmarkBlockAudit', - providers.gradleProperty('orespawnBenchmarkBlockAudit').get() - } - property 'orespawn.worldgenBenchmarkCenterX', - providers.gradleProperty('orespawnBenchmarkCenterX').getOrElse('256') - property 'orespawn.worldgenBenchmarkCenterZ', - providers.gradleProperty('orespawnBenchmarkCenterZ').getOrElse('256') - property 'orespawn.worldgenBenchmarkCenterStep', - providers.gradleProperty('orespawnBenchmarkCenterStep').getOrElse('64') - property 'orespawn.worldgenBenchmarkDimension', - providers.gradleProperty('orespawnBenchmarkDimension').getOrElse('overworld') - if (providers.gradleProperty('orespawnBenchmarkBiomeType').isPresent()) { - property 'orespawn.worldgenBenchmarkBiomeType', - providers.gradleProperty('orespawnBenchmarkBiomeType').get() - } - property 'orespawn.worldgenBenchmarkStopServer', 'true' - } - } - - data { - // example of overriding the workingDirectory set in configureEach above - workingDirectory project.file('run-data') +def developmentModOutput = layout.buildDirectory.dir('forge-run-mod-classes/main') +def prepareDevelopmentMod = tasks.register('prepareDevelopmentMod', Sync) { + group = 'ide' + description = 'Merges production classes and resources for Forge 40 development discovery.' + dependsOn tasks.named('classes') + from sourceSets.main.output.classesDirs + from sourceSets.main.output.resourcesDir + into developmentModOutput +} - // Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources. - args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/') +def configureForge40Run = { JavaExec runTask, String launchTarget -> + runTask.dependsOn prepareDevelopmentMod + runTask.environment 'MOD_CLASSES', "mineralogy%%${developmentModOutput.get().asFile}" + runTask.doFirst { + // Forge scans the mods directory before FML creates it and logs an + // otherwise harmless ERROR on a completely fresh run directory. + File modsDirectory = new File(runTask.workingDir, 'mods') + if (!modsDirectory.isDirectory() && !modsDirectory.mkdirs()) { + throw new GradleException("Could not create development mods directory: ${modsDirectory}") } } } -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } +tasks.withType(JavaExec).configureEach { JavaExec runTask -> + String launchTarget = [runClient: 'fmluserdevclient', runServer: 'fmluserdevserver'][runTask.name] + if (launchTarget != null) configureForge40Run(runTask, launchTarget) +} +def orespawnModule = "mmd-orespawn-${project.orespawn_curse_project_id}" +def orespawnVerificationRepository = project.findProperty('orespawnVerificationRepository') repositories { - // Put repositories for dependencies here - // ForgeGradle automatically adds the Forge maven and Maven Central for you - - // If you have mod jar dependencies in ./libs, you can declare them as a repository like so: - flatDir { - dirs rootProject.file('../../OS118/OreSpawn/build/libs') + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() + + // The staged CI mirror is the only permitted source for this exact + // OreSpawn module. Without exclusive routing, a transient HTTP error from + // Maven Central aborts resolution before Gradle reaches the verified jar. + exclusiveContent { + forRepository { + maven { + name = orespawnVerificationRepository == null + ? 'CurseMaven' + : 'OreSpawnReleaseVerificationMirror' + url = orespawnVerificationRepository == null + ? uri('https://www.cursemaven.com') + : uri(orespawnVerificationRepository) + metadataSources { artifact() } + } + } + filter { + includeModule('curse.maven', orespawnModule) + } } } +configurations { + orespawnRelease +} + dependencies { - // Specify the version of Minecraft to use. - // Any artifact can be supplied so long as it has a "userdev" classifier artifact and is a compatible patcher artifact. - // The "userdev" classifier will be requested and setup by ForgeGradle. - // If the group id is "net.minecraft" and the artifact id is one of ["client", "server", "joined"], - // then special handling is done to allow a setup of a vanilla dependency without the use of an external repository. - minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" + implementation minecraft.dependency("net.minecraftforge:forge:${project.mc_version}-${project.forge_version}") + // Development runs need a mapped view of the released, reobfuscated + // OreSpawn jar. ForgeGradle 7 delegates third-party mod remapping to + // Renamer Gradle. The separate verification configuration below still + // resolves and hashes the untouched release file. + runtimeOnly renamer.dependency("curse.maven:mmd-orespawn-${project.orespawn_curse_project_id}:${project.orespawn_curse_file_id}") + orespawnRelease "curse.maven:mmd-orespawn-${project.orespawn_curse_project_id}:${project.orespawn_curse_file_id}" + testImplementation 'junit:junit:4.13.2' +} + +// ForgeGradle 7 exposes mapped third-party mod dependencies through Renamer +// Gradle. Use the same named-to-SRG map as this project's release jar; the +// dependency helper applies it in reverse for the development runtime. +renamer.mappings.from minecraft.dependency.toSrgFile + +configurations.named('testRuntimeClasspath') { + exclude group: 'curse.maven', module: "mmd-orespawn-${project.orespawn_curse_project_id}" +} - // OreSpawn owns all geology and managed ore generation in Mineralogy 6. - runtimeOnly fg.deobf("blank:OreSpawn-${minecraft_version}:${orespawn_version}") +tasks.withType(Test).configureEach { + workingDir = project.projectDir +} + +javadoc { + failOnError = false + options.encoding = 'UTF-8' + options.addStringOption('Xdoclint:none', '-quiet') + options.addBooleanOption('notimestamp', true) +} - testImplementation platform('org.junit:junit-bom:5.10.2') - testImplementation 'org.junit.jupiter:junit-jupiter' +tasks.withType(AbstractArchiveTask).configureEach { + preserveFileTimestamps = false + reproducibleFileOrder = true +} - // Real mod deobf dependency examples - these get remapped to your current mappings - // compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api") // Adds JEI API as a compile dependency - // runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}") // Adds the full JEI mod as a runtime dependency - // implementation fg.deobf("com.tterrag.registrate:Registrate:MC${mc_version}-${registrate_version}") // Adds registrate as a dependency +processResources { + inputs.property 'version', project.version + inputs.property 'mc_version', project.mc_version + inputs.property 'forge_version', project.forge_version - // Example mod dependency using a mod jar from ./libs with a flat dir repository - // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar - // The group id is ignored when searching -- in this case, it is "blank" - // implementation fg.deobf("blank:coolmod-${mc_version}:${coolmod_version}") + filesMatching('META-INF/mods.toml') { + expand version: project.version, + mc_version: project.mc_version, + forge_version: project.forge_version + } - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html + from('docs') { + into 'META-INF/mineralogy/docs' + } + from('src/main/resources/data/mineralogy/orespawn/provider.json') { + into 'META-INF/mineralogy/docs/examples' + rename 'provider.json', 'mineralogy-provider.json' + } } -// Example for how to get properties into the manifest for reading at runtime. -tasks.named('jar', Jar).configure { +tasks.named('jar', Jar) { + archiveClassifier = 'deobf' + destinationDirectory = layout.buildDirectory.dir('libs-dev') manifest { attributes([ - 'Specification-Title' : 'Mineralogy', - 'Specification-Vendor' : 'SkyBlade1978', - 'Specification-Version' : '1', // We are version 1 of ourselves - 'Implementation-Title' : project.name, - 'Implementation-Version' : project.jar.archiveVersion, - 'Implementation-Vendor' : 'SkyBlade1978', - 'Implementation-Timestamp': new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") + 'Maven-Artifact' : "${project.group}:${base.archivesName.get()}:${project.version}", + 'Specification-Title' : 'Mineralogy', + 'Specification-Vendor' : 'SkyBlade1978', + 'Specification-Version' : '1', + 'Implementation-Title' : 'Mineralogy', + 'Implementation-Version': project.version, + 'Implementation-Vendor' : 'SkyBlade1978', + 'Built-On-Java' : '17', + 'Built-On' : "${project.mc_version}-${project.forge_version}" ]) } - - // This is the preferred method to reobfuscate your jar file - finalizedBy 'reobfJar' } -tasks.named('processResources', ProcessResources).configure { - from('docs/AGENTS.md') { - into '' - rename { 'AGENTS.md' } +eclipse { + classpath { + downloadSources = true + downloadJavadoc = true } - from('docs') { - into 'META-INF/mineralogy/docs' + synchronizationTasks 'isolateEclipseProductionRuns' +} + +idea { + module { + downloadSources = true + downloadJavadoc = true } } -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing: -// tasks.named('publish').configure { -// dependsOn 'reobfJar' -// } +def releaseJar = renamer.classes(tasks.named('jar', Jar)) { + map.from minecraft.dependency.toSrgFile + archiveClassifier = null + output = layout.buildDirectory.file( + "libs/${base.archivesName.get()}-${project.version}.jar") +} + +['apiElements', 'runtimeElements'].each { configurationName -> + configurations.named(configurationName) { artifacts.clear() } + artifacts { add(configurationName, releaseJar) } +} + +tasks.named('assemble') { + dependsOn releaseJar + dependsOn tasks.named('sourcesJar') + dependsOn tasks.named('javadocJar') +} + +def mainReleaseName = "Mineralogy-${project.version}.jar" +def sourcesReleaseName = "Mineralogy-${project.version}-sources.jar" +def javadocReleaseName = "Mineralogy-${project.version}-javadoc.jar" +def expectedReleaseNames = [mainReleaseName, sourcesReleaseName, javadocReleaseName] +def expectedMavenGroup = 'zone.moddev.mc.mineralogy' +def expectedMavenArtifact = 'Mineralogy' +def expectedMavenCoordinate = "${expectedMavenGroup}:${expectedMavenArtifact}:${project.version}" +def preparedReleaseDir = project.findProperty('preparedReleaseDir') +def mavenUploadUrl = System.getenv('MAVEN_UPLOAD_URL') ?: 'https://invalid.invalid/missing-maven-upload-url' +def mavenUploadUsername = System.getenv('MAVEN_UPLOAD_USERNAME') ?: '' +def mavenUploadPassword = System.getenv('MAVEN_UPLOAD_PASSWORD') ?: '' publishing { publications { - register('mavenJava', MavenPublication) { - artifact jar - artifact sourcesJar - artifact javadocJar + mavenJava(MavenPublication) { + groupId = project.group + artifactId = expectedMavenArtifact + version = project.version + if (preparedReleaseDir != null) { + artifact new File(preparedReleaseDir.toString(), mainReleaseName) + artifact(new File(preparedReleaseDir.toString(), sourcesReleaseName)) { + classifier = 'sources' + } + artifact(new File(preparedReleaseDir.toString(), javadocReleaseName)) { + classifier = 'javadoc' + } + } + else { + artifact releaseJar + artifact tasks.named('sourcesJar') + artifact tasks.named('javadocJar') + } + pom.withXml { + def root = asNode() + root.appendNode('name', 'Minecraft Mineralogy') + root.appendNode('description', 'Geologically themed rocks, minerals, building blocks, and OreSpawn provider data.') + root.appendNode('url', 'https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy') + def license = root.appendNode('licenses').appendNode('license') + license.appendNode('name', 'GNU Lesser General Public License, Version 2.1') + license.appendNode('url', 'https://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt') + } } } repositories { maven { - url "file://${project.projectDir}/mcmodsrepo" + name = 'release' + url = uri(mavenUploadUrl) + credentials { + username = mavenUploadUsername + password = mavenUploadPassword + } } } } -tasks.withType(JavaCompile).configureEach { - options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation +tasks.register('verifyMavenCoordinates') { + group = 'verification' + description = 'Verifies the generated POM uses Mineralogy\'s mod-specific Maven namespace.' + dependsOn tasks.named('generatePomFileForMavenJavaPublication') + doLast { + File pomFile = file("${buildDir}/publications/mavenJava/pom-default.xml") + if (!pomFile.isFile()) { + throw new GradleException("Generated Maven POM does not exist: ${pomFile}") + } + def pom = new XmlSlurper(false, false).parse(pomFile) + def actual = [pom.groupId.text(), pom.artifactId.text(), pom.version.text()] + def expected = [expectedMavenGroup, expectedMavenArtifact, project.version.toString()] + if (project.group.toString() != expectedMavenGroup || actual != expected) { + throw new GradleException("Expected Maven coordinate ${expected.join(':')}, found ${actual.join(':')}") + } + } } -tasks.named('javadoc', Javadoc).configure { - options.encoding = 'UTF-8' - options.addStringOption('Xdoclint:none', '-quiet') +tasks.register('verifyMavenizerCompatibilityFixture') { + group = 'verification' + description = 'Verifies the sealed Forge 1.18.2 Mavenizer compatibility fixture.' + inputs.file mavenizerCompatibilityJar + doLast { + File fixture = mavenizerCompatibilityJar.asFile + if (!fixture.isFile()) { + throw new GradleException("Missing Mavenizer compatibility fixture: ${fixture}") + } + MessageDigest digest = MessageDigest.getInstance('SHA-256') + fixture.withInputStream { input -> + byte[] buffer = new byte[8192] + for (int read = input.read(buffer); read >= 0; read = input.read(buffer)) { + if (read > 0) digest.update(buffer, 0, read) + } + } + String actual = digest.digest().encodeHex().toString().toUpperCase() + if (actual != mavenizerCompatibilitySha256) { + throw new GradleException("Mavenizer compatibility fixture checksum mismatch: ${actual}") + } + } } -tasks.named('test', Test).configure { - useJUnitPlatform() +tasks.register('verifyReleaseConfiguration') { + group = 'verification' + description = 'Verifies the exact Mineralogy 1.18.2 release identity.' + dependsOn tasks.named('verifyMavenizerCompatibilityFixture') + doLast { + if (project.mod_version != '6.1.0.118021' + || project.mod_group != expectedMavenGroup + || project.minecraft_version != '1.18.2' + || project.forge_version != '40.3.0' + || project.mcp_mappings_channel != 'official' + || project.mcp_mappings_version != '1.18.2') { + throw new GradleException('Unexpected Mineralogy 1.18.2 release identity') + } + } } -// Keep every Eclipse launch input on Buildship's physical Gradle cache. Command-line -// verification may deliberately use a separate cache, which must not leak into Eclipse. -def syncEclipseRunClasspaths = tasks.register('syncEclipseRunClasspaths') { - group = 'IDE' - description = 'Aligns Eclipse project, Buildship, and Forge run classpaths with Eclipse\'s Gradle home.' - +tasks.register('verifyReleaseDependencies') { + group = 'verification' + description = 'Resolves and verifies the exact released OreSpawn dependency.' doLast { - File classpathDir = layout.buildDirectory.dir('classpath').get().asFile - Set classpathFiles = fileTree(classpathDir) { - include '*_minecraftClasspath.txt' - }.files - if (classpathFiles.isEmpty()) { - throw new GradleException('Missing Forge run classpaths. Run genEclipseRuns before launching from Eclipse.') + if (project.mod_version != '6.1.0.118021' + || project.minecraft_version != project.mc_version + || project.mc_version != '1.18.2' + || project.loader_name != 'forge' + || project.loader_code != '1' + || project.java_version != '17' + || project.java_toolchain_version != '17.0.1+12' + || project.gradle_java_version != '17' + || project.curseforge_project_id != '240974') { + throw new GradleException('Unexpected generic release dispatcher metadata') } + if (project.orespawn_version != '4.0.10.118021' || + project.orespawn_curse_project_id != '245586' || + project.orespawn_curse_file_id != '8750114') { + throw new GradleException('Unexpected OreSpawn release coordinates') + } + File artifact = configurations.orespawnRelease.resolvedConfiguration.resolvedArtifacts + .find { it.moduleVersion.id.group == 'curse.maven' && it.file.name.endsWith('.jar') }?.file + if (artifact == null || !artifact.isFile()) { + throw new GradleException('Released OreSpawn artifact did not resolve') + } + String sha = MessageDigest.getInstance('SHA-256').digest(artifact.bytes).encodeHex().toString().toUpperCase() + if (sha != project.orespawn_sha256) { + throw new GradleException("OreSpawn SHA-256 mismatch: ${sha}") + } + } +} - File buildshipPreferences = file('.settings/org.eclipse.buildship.core.prefs') - Properties buildship = new Properties() - if (buildshipPreferences.isFile()) { - buildshipPreferences.withInputStream { buildship.load(it) } - } - String configuredGradleHome = buildship.getProperty('connection.gradle.user.home', '').trim() - File eclipseProjectClasspath = file('.classpath') - String eclipseGradleHomeOverride = (findProperty('eclipseGradleUserHome') - ?: System.getenv('ECLIPSE_GRADLE_USER_HOME') ?: '').toString().trim() - File eclipseGradleHome = eclipseGradleHomeOverride - ? file(eclipseGradleHomeOverride).canonicalFile - : new File(System.getProperty('user.home'), '.gradle').canonicalFile - Map requiredBuildshipSettings = [ - 'eclipse.preferences.version' : '1', - 'connection.gradle.distribution' : 'GRADLE_DISTRIBUTION(WRAPPER)', - 'connection.gradle.user.home' : eclipseGradleHome.absolutePath, - 'connection.project.dir' : '', - 'override.workspace.settings' : 'false', - 'project.path' : ':' - ] - boolean buildshipChanged = !configuredGradleHome || - file(configuredGradleHome).canonicalFile != eclipseGradleHome - requiredBuildshipSettings.each { String key, String value -> - if (buildship.getProperty(key) != value) { - buildship.setProperty(key, value) - buildshipChanged = true - } - } - if (buildshipChanged) { - buildshipPreferences.parentFile.mkdirs() - buildshipPreferences.withOutputStream { - buildship.store(it, - 'Generated by syncEclipseRunClasspaths; keep Eclipse launch inputs on the Buildship cache.') - } - } - File eclipseCache = new File(eclipseGradleHome, 'caches').canonicalFile - File eclipseClasspathDir = file('.settings/mineralogy-run-classpaths') - eclipseClasspathDir.mkdirs() - - Closure mapCacheReferences = { String value -> - value.replaceAll(/(?i)[A-Z]:[\\\/]\S*?[\\\/]caches(?=[\\\/])/) { String cacheRoot -> - cacheRoot.contains('/') - ? eclipseCache.absolutePath.replace('\\', '/') - : eclipseCache.absolutePath - } - } - - Map stableClasspaths = [:] - classpathFiles.each { File classpathFile -> - List original = classpathFile.readLines('UTF-8') - List synced = original.collect { String entry -> - String mapped = mapCacheReferences(entry) - String portable = mapped.replace('\\', '/') - int marker = portable.indexOf('/caches/') - if (marker < 0) { - return mapped - } - - File target = file(mapped).canonicalFile - if (!target.isFile()) { - throw new GradleException("Missing Eclipse run dependency in configured Gradle cache: ${target}") +tasks.register('verifyReleaseArtifacts') { + group = 'verification' + description = 'Audits the three distributable jars and their production contents.' + dependsOn tasks.named('verifyReleaseConfiguration') + dependsOn tasks.named('assemble') + doLast { + File libs = file("${buildDir}/libs") + def actual = fileTree(libs) { include 'Mineralogy-*.jar' }.files.collect { it.name }.sort() + def expectedSorted = expectedReleaseNames.collect().sort() + if (actual != expectedSorted) { + throw new GradleException("Expected exactly ${expectedSorted}, found ${actual}") + } + expectedReleaseNames.each { artifactName -> + ZipFile artifactZip = new ZipFile(new File(libs, artifactName)) + try { + def artifactNames = artifactZip.entries().collect { it.name } + if (artifactNames.any { it.startsWith('com/mcmoddev/mineralogy/') || + it.startsWith('zone/moddev/mc/mineralogy/worldgen/') || + it.startsWith('zone/moddev/mc/mineralogy/probe/') || + it.startsWith('zone/moddev/mc/mineralogy/test/') || + it.startsWith('ci-fixtures/') || it.contains('minecraft-mavenizer') || + it.startsWith('src/test/') || + it == 'AGENTS.md' || it.contains('/agent-notes/') }) { + throw new GradleException("${artifactName} contains a retired, test, probe, or agent-only path") } - return target.absolutePath } - - File stableClasspath = new File(eclipseClasspathDir, classpathFile.name) - stableClasspath.setText(synced.join(System.lineSeparator()) + System.lineSeparator(), 'UTF-8') - stableClasspaths.put(classpathFile.canonicalFile, stableClasspath.canonicalFile) + finally { + artifactZip.close() + } } - - int changedProjectClasspath = 0 - int changedResourceExclusions = 0 - if (eclipseProjectClasspath.isFile()) { - String original = eclipseProjectClasspath.getText('UTF-8') - def parsedClasspath = new XmlParser(false, false).parseText(original) - parsedClasspath.classpathentry.each { entry -> - ['path', 'sourcepath'].each { String attribute -> - String value = entry.attribute(attribute) - if (!value) { - return - } - String mapped = mapCacheReferences(value) - if (mapped == value) { - return - } - File mappedTarget = file(mapped).canonicalFile - if (mappedTarget.exists()) { - entry.attributes().put(attribute, mappedTarget.absolutePath) - changedProjectClasspath = 1 - } else { - // Test-only libraries may have been resolved by command-line Gradle - // but not yet by Buildship. They are not part of the Forge launch - // module path, so retaining the existing valid path is safe. - File existingTarget = file(value).canonicalFile - if (!existingTarget.exists()) { - throw new GradleException("Missing Eclipse project dependency in both Gradle caches: ${mappedTarget}") - } - } + File main = new File(libs, mainReleaseName) + ZipFile zip = new ZipFile(main) + try { + def names = zip.entries().collect { it.name } as Set + [ + 'META-INF/mods.toml', + 'data/mineralogy/orespawn/provider.json', + 'META-INF/mineralogy/docs/README.md', + 'META-INF/mineralogy/docs/examples/mineralogy-provider.json', + 'assets/mineralogy/lang/en_us.json' + ].each { required -> + if (!names.contains(required)) throw new GradleException("Release jar is missing ${required}") + } + def manifestEntry = zip.getEntry('META-INF/MANIFEST.MF') + if (manifestEntry == null) throw new GradleException('Release jar is missing META-INF/MANIFEST.MF') + def manifestStream = zip.getInputStream(manifestEntry) + try { + def manifest = new java.util.jar.Manifest(manifestStream) + def actualMavenCoordinate = manifest.mainAttributes.getValue('Maven-Artifact') + if (actualMavenCoordinate != expectedMavenCoordinate) { + throw new GradleException("Expected manifest Maven-Artifact ${expectedMavenCoordinate}, found ${actualMavenCoordinate}") } } - parsedClasspath.classpathentry.findAll { entry -> - entry.attribute('kind') == 'src' && entry.attribute('path') == 'src/main/resources' - }.each { entry -> - List exclusions = (entry.attribute('excluding') ?: '') - .split(/\|/) - .findAll { !it.isEmpty() } - ['META-INF/mods.toml', 'pack.mcmeta'].each { String metadataFile -> - if (exclusions.remove(metadataFile)) { - changedResourceExclusions = 1 + finally { + manifestStream.close() + } + if (names.any { it.startsWith('com/mcmoddev/mineralogy/') || + it.startsWith('zone/moddev/mc/mineralogy/worldgen/') || + it.startsWith('zone/moddev/mc/mineralogy/probe/') || + it.startsWith('zone/moddev/mc/mineralogy/test/') || + it.startsWith('ci-fixtures/') || it.contains('minecraft-mavenizer') || + it == 'AGENTS.md' || it.contains('/agent-notes/') }) { + throw new GradleException('Release jar contains a retired, test, probe, or agent-only path') + } + def locales = names.findAll { it ==~ /assets\/mineralogy\/lang\/[a-z_]+\.json/ } + if (locales.size() != 17) { + throw new GradleException("Release jar must contain 17 locales, found ${locales.size()}") + } + zip.entries().findAll { !it.directory && it.name.endsWith('.class') }.each { entry -> + byte[] header = new byte[8] + def stream = zip.getInputStream(entry) + try { + if (stream.read(header) != 8 || header[0..3] != [(byte) 0xca, (byte) 0xfe, (byte) 0xba, (byte) 0xbe]) { + throw new GradleException("Invalid class header in ${entry.name}") } + int major = ((header[6] & 0xff) << 8) | (header[7] & 0xff) + if (major != 61) throw new GradleException("${entry.name} is class version ${major}, expected Java 17 (61)") } - if (exclusions.isEmpty()) { - entry.attributes().remove('excluding') - } else { - entry.attributes().put('excluding', exclusions.join('|')) + finally { + stream.close() } } - if (changedProjectClasspath || changedResourceExclusions) { - eclipseProjectClasspath.setText(groovy.xml.XmlUtil.serialize(parsedClasspath), 'UTF-8') + def provider = new JsonSlurper().parse(zip.getInputStream(zip.getEntry('data/mineralogy/orespawn/provider.json'))) + if (provider.schema_version != 4 || provider.provider_revision != 3 || + provider.rocks.size() != 32 || provider.ores.size() != 3 || provider.fluid_deposits.size() != 1) { + throw new GradleException('Packaged provider contract is invalid') } - - parsedClasspath.classpathentry.each { entry -> - ['path', 'sourcepath'].each { String attribute -> - String value = entry.attribute(attribute) - if (value && value.replace('\\', '/').contains('/caches/')) { - File target = file(value).canonicalFile - if (!target.exists()) { - throw new GradleException("Missing Eclipse project dependency in configured Gradle cache: ${target}") + def oil = provider.fluid_deposits['mineralogy:fluid_deposit/crude_oil'] + ?.dimensions?.get('minecraft:overworld') + if (!provider.rocks.values().every { it.min_y == -64 && it.max_y == 319 } + || oil?.min_y != -48 || oil?.max_y != 48) { + throw new GradleException('Packaged provider does not use Minecraft 1.18.2 world heights') + } + if (provider.rocks['mineralogy:rock/minecraft/basalt']?.block != 'minecraft:basalt' || + provider.rocks['mineralogy:rock/minecraft/tuff']?.block != 'minecraft:tuff' || + provider.profile_defaults?.worldgen_aliases != [ + 'mineralogy:andesite': 'minecraft:andesite', + 'mineralogy:basalt': 'minecraft:basalt', + 'mineralogy:diorite': 'minecraft:diorite', + 'mineralogy:granite': 'minecraft:granite', + 'mineralogy:tuff': 'minecraft:tuff' + ] || provider.profile_defaults?.terrain_dimensions?.get('minecraft:overworld')?.host_blocks != + ['minecraft:stone', 'minecraft:deepslate'] || + !provider.ores.values().every { ore -> + ore.dimensions?.get('minecraft:overworld')?.host_tags == + ['minecraft:stone_ore_replaceables', 'minecraft:deepslate_ore_replaceables'] + }) { + throw new GradleException('Packaged provider does not use the Minecraft 1.18.2 native-rock and deepslate contract') + } + byte[] providerBytes = zip.getInputStream( + zip.getEntry('data/mineralogy/orespawn/provider.json')).bytes + byte[] exampleBytes = zip.getInputStream(zip.getEntry( + 'META-INF/mineralogy/docs/examples/mineralogy-provider.json')).bytes + if (!java.util.Arrays.equals(providerBytes, exampleBytes)) { + throw new GradleException('Packaged provider example differs from the authoritative provider') + } + String recipePrefix = 'data/mineralogy/recipes/' + String advancementPrefix = 'data/mineralogy/advancements/recipes/' + def recipes = names.findAll { it.startsWith(recipePrefix) && it.endsWith('.json') && + !it.substring(recipePrefix.length()).contains('/') } + def advancements = names.findAll { it.startsWith(advancementPrefix) && it.endsWith('.json') && + !it.substring(advancementPrefix.length()).contains('/') } + if (recipes.size() != 1427 || advancements.size() != 1427) { + throw new GradleException("Release jar must contain 1427 recipes and advancements, found ${recipes.size()} and ${advancements.size()}") + } + def verifyAdvancementPredicates = { advancement, String source -> + advancement.criteria?.each { criterionName, criterion -> + if (criterion.trigger == 'minecraft:inventory_changed') { + def predicates = criterion.conditions?.items + if (!(predicates instanceof Collection) || predicates.any { predicate -> + predicate.item != null || (predicate.tag == null && + (!(predicate.items instanceof Collection) || predicate.items.isEmpty())) + }) { + throw new GradleException("Invalid Minecraft 1.18.2 item predicate in ${source}: ${criterionName}") } } } } - } - - File eclipseLaunchDir = file('.eclipse/configurations') - int changedPrepareLaunches = 0 - if (eclipseLaunchDir.isDirectory()) { - boolean windows = System.getProperty('os.name', '').toLowerCase().contains('windows') - File gradleWrapper = file(windows ? 'gradlew.bat' : 'gradlew').canonicalFile - String launcher = windows - ? (System.getenv('ComSpec') ?: new File(System.getenv('SystemRoot') ?: 'C:\\Windows', - 'System32\\cmd.exe').absolutePath) - : '/bin/sh' - String arguments = windows - ? "/d /s /c \"\\\"${gradleWrapper.absolutePath}\\\" copyEclipseResources --console plain\"" - : "-c \"'${gradleWrapper.absolutePath.replace("'", "'\\''")}' copyEclipseResources --console plain\"" - - fileTree(eclipseLaunchDir) { - include '*prepareRun*.launch' - }.files.each { File launchFile -> - StringWriter output = new StringWriter() - def xml = new groovy.xml.MarkupBuilder(output) - xml.mkp.xmlDeclaration(version: '1.0', encoding: 'UTF-8', standalone: 'no') - xml.launchConfiguration(type: 'org.eclipse.ui.externaltools.ProgramLaunchConfigurationType') { - booleanAttribute(key: 'org.eclipse.debug.ui.ATTR_LAUNCH_IN_BACKGROUND', value: 'true') - booleanAttribute(key: 'org.eclipse.ui.externaltools.ATTR_CAPTURE_OUTPUT', value: 'true') - stringAttribute(key: 'org.eclipse.ui.externaltools.ATTR_LOCATION', value: launcher) - booleanAttribute(key: 'org.eclipse.ui.externaltools.ATTR_SHOW_CONSOLE', value: 'true') - stringAttribute(key: 'org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS', value: arguments) - stringAttribute(key: 'org.eclipse.ui.externaltools.ATTR_WORKING_DIRECTORY', - value: projectDir.canonicalPath) - mapAttribute(key: 'org.eclipse.debug.core.environmentVariables') { - mapEntry(key: 'GRADLE_USER_HOME', value: eclipseGradleHome.absolutePath) - mapEntry(key: 'JAVA_HOME', value: System.getProperty('java.home')) - } + names.findAll { + it.startsWith('data/mineralogy/advancements/') && it.endsWith('.json') && + !it.endsWith('/_factories.json') + }.each { entryName -> + def advancement = new JsonSlurper().parse(zip.getInputStream(zip.getEntry(entryName))) + if (advancement.criteria != null) verifyAdvancementPredicates(advancement, entryName) + } + def slabBridges = ['andesite', 'diorite', 'granite'].collectMany { family -> + [ + [name: "${family}_slab_to_vanilla", source: "mineralogy:${family}_slab", result: "minecraft:${family}_slab"], + [name: "${family}_slab_from_vanilla", source: "minecraft:${family}_slab", result: "mineralogy:${family}_slab"], + [name: "${family}_smooth_slab_to_vanilla", source: "mineralogy:${family}_smooth_slab", result: "minecraft:polished_${family}_slab"], + [name: "${family}_smooth_slab_from_vanilla", source: "minecraft:polished_${family}_slab", result: "mineralogy:${family}_smooth_slab"] + ] + } + slabBridges.each { bridge -> + def recipe = new JsonSlurper().parse(zip.getInputStream(zip.getEntry( + "data/mineralogy/recipes/${bridge.name}.json"))) + def advancement = new JsonSlurper().parse(zip.getInputStream(zip.getEntry( + "data/mineralogy/advancements/recipes/${bridge.name}.json"))) + if (recipe.type != 'minecraft:crafting_shapeless' || recipe.ingredients?.size() != 1 || + recipe.ingredients[0].item != bridge.source || recipe.result?.item != bridge.result || + recipe.result?.count != 1 || recipe.conditions?.size() != 2 || + advancement.conditions != recipe.conditions || + advancement.criteria?.has_rock?.conditions?.items?.getAt(0)?.items?.getAt(0) != bridge.source) { + throw new GradleException("Invalid native/Mineralogy slab conversion: ${bridge.name}") + } + } + def minecraftRecipes = names.findAll { it.startsWith('data/minecraft/recipes/') && it.endsWith('.json') } + def cobblestoneOverrides = ['furnace', 'brewing_stand', 'lever', 'piston', + 'dispenser', 'dropper', 'observer', 'mossy_cobblestone_from_vine', + 'mossy_cobblestone_from_moss_block', 'andesite', 'diorite', 'stone_axe', + 'stone_hoe', 'stone_pickaxe', 'stone_shovel', 'stone_sword'] + def slabOverrides = ['andesite', 'diorite', 'granite'].collectMany { family -> + ["${family}_slab", "polished_${family}_slab", + "${family}_slab_from_${family}_stonecutting", + "polished_${family}_slab_from_${family}_stonecutting", + "polished_${family}_slab_from_polished_${family}_stonecutting"] + } + def polishedOverrides = ['andesite', 'basalt', 'diorite', 'granite'].collect { + "polished_${it}" + } + def expectedMinecraftRecipes = (cobblestoneOverrides + slabOverrides + polishedOverrides).collect { + "data/minecraft/recipes/${it}.json" + } as Set + if ((minecraftRecipes as Set) != expectedMinecraftRecipes || minecraftRecipes.size() != 35) { + throw new GradleException('Release jar must contain exactly 16 cobblestone, 15 slab, and four polished-block recipe overrides') + } + cobblestoneOverrides.each { recipe -> + def data = new JsonSlurper().parse(zip.getInputStream(zip.getEntry("data/minecraft/recipes/${recipe}.json"))) + if (data.type != 'forge:conditional' || data.recipes?.size() != 2 || + data.recipes[0].conditions?.getAt(0)?.type != 'mineralogy:config' || + data.recipes[0].conditions?.getAt(0)?.flag != 'COBBLESTONE_EQUIVILENT' || + data.recipes[1].conditions?.getAt(0)?.type != 'forge:not') { + throw new GradleException("Invalid conditional cobblestone override: ${recipe}") } - String replacement = output.toString() + System.lineSeparator() - if (launchFile.getText('UTF-8') != replacement) { - launchFile.setText(replacement, 'UTF-8') - changedPrepareLaunches++ + if (recipe.startsWith('mossy_cobblestone_from_') && + !data.recipes.every { it.recipe?.group == 'mossy_cobblestone' }) { + throw new GradleException("Mossy cobblestone override lost its vanilla recipe group: ${recipe}") } } - } - - int changedLaunches = 0 - if (eclipseLaunchDir.isDirectory()) { - File eclipseClasses = file('bin/main').canonicalFile - String modClasses = "${mod_id}%%${eclipseClasses.absolutePath}" - fileTree(eclipseLaunchDir) { - include '*Slim.launch' - }.files.each { File launchFile -> - String original = launchFile.getText('UTF-8') - String synced = mapCacheReferences(original) - stableClasspaths.each { File generated, File stable -> - synced = synced - .replace(generated.absolutePath, stable.absolutePath) - .replace(generated.absolutePath.replace('\\', '/'), stable.absolutePath.replace('\\', '/')) + slabOverrides.each { recipe -> + def data = new JsonSlurper().parse(zip.getInputStream(zip.getEntry("data/minecraft/recipes/${recipe}.json"))) + if (data.type != 'forge:conditional' || data.recipes?.size() != 2 || + data.recipes[0].conditions?.getAt(0)?.type != 'forge:item_exists' || + data.recipes[1].conditions?.getAt(0)?.type != 'forge:not') { + throw new GradleException("Invalid conditional Mineralogy slab override: ${recipe}") } - synced = synced.replaceFirst( - //) { - "" + } + def families = ['andesite', 'basalt', 'diorite', 'granite', 'rhyolite', + 'pegmatite', 'diabase', 'gabbro', 'peridotite', 'basaltic_glass', + 'scoria', 'tuff', 'shale', 'conglomerate', 'dolomite', 'limestone', + 'siltstone', 'marble', 'slate', 'schist', 'gneiss', 'phyllite', + 'amphibolite', 'hornfels', 'quartzite', 'novaculite', 'rock_salt'] + def unionTags = [ + cobblestone_equivalents: '#forge:cobblestone', + stone_crafting_materials: '#minecraft:stone_crafting_materials', + stone_tool_materials: '#minecraft:stone_tool_materials' + ] + unionTags.each { tag, base -> + def entry = zip.getEntry("data/mineralogy/tags/items/${tag}.json") + def values = entry == null ? [] : new JsonSlurper().parse(zip.getInputStream(entry)).values + def expected = [base] + families.collect { "#mineralogy:stones/${it}" } + if (values != expected) throw new GradleException("Invalid Mineralogy recipe union tag: ${tag}") + } + if (!families.every { names.contains("data/mineralogy/tags/blocks/stones/${it}.json".toString()) }) { + throw new GradleException('Release jar must contain all 27 raw-rock family block tags') + } + def advancementCategories = [ + furnace: 'decorations', brewing_stand: 'brewing', lever: 'redstone', + piston: 'redstone', dispenser: 'redstone', dropper: 'redstone', + observer: 'redstone', mossy_cobblestone_from_vine: 'building_blocks', + mossy_cobblestone_from_moss_block: 'building_blocks', + andesite: 'building_blocks', diorite: 'building_blocks', + stone_axe: 'tools', stone_hoe: 'tools', stone_pickaxe: 'tools', + stone_shovel: 'tools', stone_sword: 'combat' + ] + def expectedMinecraftAdvancements = advancementCategories.collect { recipe, category -> + "data/minecraft/advancements/recipes/${category}/${recipe}.json" + } as Set + expectedMinecraftAdvancements.addAll(['andesite', 'basalt', 'diorite', 'granite'].collect { + "data/minecraft/advancements/recipes/building_blocks/polished_${it}.json" + }) + def minecraftAdvancements = names.findAll { + it.startsWith('data/minecraft/advancements/recipes/') && it.endsWith('.json') + } as Set + if (minecraftAdvancements != expectedMinecraftAdvancements) { + throw new GradleException('Release jar must contain exactly 16 cobblestone and four polished-block advancement overrides') + } + advancementCategories.each { recipe, category -> + def data = new JsonSlurper().parse(zip.getInputStream(zip.getEntry( + "data/minecraft/advancements/recipes/${category}/${recipe}.json"))) + if (data.advancements?.size() != 2 || + data.advancements[0].conditions?.getAt(0)?.type != 'mineralogy:config' || + data.advancements[1].conditions?.getAt(0)?.type != 'forge:not') { + throw new GradleException("Invalid conditional advancement override: ${recipe}") } - if (original != synced) { - launchFile.setText(synced, 'UTF-8') - changedLaunches++ + data.advancements.eachWithIndex { branch, index -> + verifyAdvancementPredicates(branch.advancement, + "minecraft:${category}/${recipe} branch ${index}") } } + ['andesite', 'basalt', 'diorite', 'granite'].each { family -> + String entryName = "data/minecraft/advancements/recipes/building_blocks/polished_${family}.json" + def advancement = new JsonSlurper().parse(zip.getInputStream(zip.getEntry(entryName))) + verifyAdvancementPredicates(advancement, entryName) + } + def wallBlockstates = names.findAll { it ==~ /assets\/mineralogy\/blockstates\/.+_wall\.json/ } + def tallWallModels = names.findAll { it ==~ /assets\/mineralogy\/models\/block\/.+_wall_side_tall\.json/ } + if (wallBlockstates.size() != 108 || tallWallModels.size() != 108) { + throw new GradleException("Release jar must contain all 108 Forge 40 wall blockstates and tall-side models") + } + } + finally { + zip.close() + } + } +} + +tasks.register('writeReleaseChecksums') { + group = 'verification' + dependsOn tasks.named('verifyReleaseArtifacts') + doLast { + File output = file("${buildDir}/release/SHA256SUMS") + output.parentFile.mkdirs() + output.setText(expectedReleaseNames.collect().sort().collect { name -> + File artifact = file("${buildDir}/libs/${name}") + String hash = MessageDigest.getInstance('SHA-256').digest(artifact.bytes).encodeHex().toString() + "${hash} ${name}" + }.join('\n') + '\n', 'UTF-8') + } +} + +tasks.register('verifyPreparedReleaseArtifacts') { + group = 'verification' + description = 'Verifies the immutable artifact bundle supplied to Maven publication.' + inputs.files { + preparedReleaseDir == null ? [] : + (expectedReleaseNames + ['SHA256SUMS', 'CHANGELOG.txt']).collect { + new File(preparedReleaseDir.toString(), it) + } + } + doLast { + if (preparedReleaseDir == null) { + throw new GradleException('preparedReleaseDir is required for prepared artifact publication') + } + File prepared = file(preparedReleaseDir.toString()) + if (!prepared.isDirectory()) { + throw new GradleException("Prepared release directory does not exist: ${prepared}") } - // ForgeGradle's launch group lets Java start even if its Buildship - // preparation step changed caches or failed. Publish the synchronized - // Java launch directly; Eclipse already copies resources into bin/main. - int changedLaunchGroups = 0 - fileTree(projectDir) { - include 'run*.launch' - }.files.each { File launchFile -> - String runName = launchFile.name.substring(0, launchFile.name.length() - '.launch'.length()) - File slimLaunch = new File(eclipseLaunchDir, "${project.name} - ${runName}Slim.launch") - if (!slimLaunch.isFile()) { - return + def expectedBundleNames = (expectedReleaseNames + ['SHA256SUMS', 'CHANGELOG.txt']).sort() + def actualBundleNames = prepared.listFiles().findAll { it.isFile() }.collect { it.name }.sort() + if (actualBundleNames != expectedBundleNames) { + throw new GradleException("Expected prepared bundle ${expectedBundleNames}, found ${actualBundleNames}") + } + + File checksumFile = new File(prepared, 'SHA256SUMS') + def declaredChecksums = [:] + checksumFile.readLines('UTF-8').findAll { !it.trim().isEmpty() }.each { line -> + def match = line =~ /^([0-9a-fA-F]{64}) (.+)$/ + if (!match.matches()) { + throw new GradleException("Invalid prepared checksum line: ${line}") } - String replacement = slimLaunch.getText('UTF-8') - if (launchFile.getText('UTF-8') != replacement) { - launchFile.setText(replacement, 'UTF-8') - changedLaunchGroups++ + declaredChecksums[match[0][2]] = match[0][1].toLowerCase() + } + if (declaredChecksums.keySet().sort() != expectedReleaseNames.sort()) { + throw new GradleException('Prepared checksums do not declare exactly the three release jars') + } + declaredChecksums.each { name, expectedHash -> + File artifact = new File(prepared, name) + String actualHash = MessageDigest.getInstance('SHA-256') + .digest(artifact.bytes).encodeHex().toString() + if (actualHash != expectedHash) { + throw new GradleException("Prepared checksum mismatch for ${name}") } } - logger.lifecycle("Eclipse runtime paths aligned with ${eclipseCache} (${stableClasspaths.size()} Forge classpaths, ${changedProjectClasspath} project classpath, ${changedResourceExclusions} metadata exclusion, ${changedPrepareLaunches} prepare launches, ${changedLaunches} slim launches, ${changedLaunchGroups} direct project launches updated)") } } -tasks.configureEach { - if (name in ['copyEclipseResources', 'genEclipseRuns', 'eclipse', - 'prepareRunClient', 'prepareRunServer', 'prepareRunData', 'prepareRunGameTestServer']) { - finalizedBy syncEclipseRunClasspaths +tasks.register('validateMavenReleaseCredentials') { + group = 'publishing' + description = 'Prevents Maven publication from silently targeting a local or incomplete repository.' + doLast { + if (!System.getenv('MAVEN_UPLOAD_URL') + || !System.getenv('MAVEN_UPLOAD_USERNAME') + || !System.getenv('MAVEN_UPLOAD_PASSWORD')) { + throw new GradleException('MAVEN_UPLOAD_URL, MAVEN_UPLOAD_USERNAME, and MAVEN_UPLOAD_PASSWORD are required') + } + if (System.getenv('MAVEN_UPLOAD_URL').startsWith('file:')) { + throw new GradleException('Maven release publication must use a remote repository') + } + } +} + +tasks.withType(PublishToMavenRepository).configureEach { + dependsOn tasks.named('validateMavenReleaseCredentials') + dependsOn tasks.named('verifyMavenCoordinates') + dependsOn(preparedReleaseDir == null + ? tasks.named('verifyReleaseArtifacts') + : tasks.named('verifyPreparedReleaseArtifacts')) +} + +tasks.register('syncForge40EclipseLaunches') { + group = 'ide' + dependsOn tasks.named('processResources') + doLast { + String mainClass = 'net.minecraftforge.userdev.LaunchTesting' + String mainOutput = new File(projectDir, 'bin/main').absolutePath + String modClasses = "mineralogy%%${mainOutput}" + String eclipseGradleJavaHome = System.getenv('JAVA_HOME') ?: System.getProperty('java.home') + def escapePreference = { String value -> + value.replace('\\', '\\\\').replace(':', '\\:') + } + File buildshipPreferences = file('.settings/org.eclipse.buildship.core.prefs') + if (!buildshipPreferences.parentFile.isDirectory() + && !buildshipPreferences.parentFile.mkdirs()) { + throw new GradleException("Could not create ${buildshipPreferences.parentFile}") + } + buildshipPreferences.setText([ + 'arguments=', + 'auto.sync=false', + 'build.scans.enabled=false', + 'connection.gradle.distribution=GRADLE_DISTRIBUTION(WRAPPER)', + "connection.gradle.user.home=${escapePreference(gradle.gradleUserHomeDir.absolutePath)}", + 'connection.project.dir=', + 'eclipse.preferences.version=1', + "gradle.user.home=${escapePreference(gradle.gradleUserHomeDir.absolutePath)}", + "java.home=${escapePreference(eclipseGradleJavaHome)}", + 'jvm.arguments=', + 'offline.mode=false', + 'override.workspace.settings=true', + 'show.console.view=false', + 'show.executions.view=false', + '' + ].join('\r\n'), 'UTF-8') + // Forge 40 loads the mod solely from Eclipse's merged bin/main output. + // Copy the processed production resources as a normal doLast action so + // token-expanded metadata and externally edited JSON cannot lag behind + // the source tree without making bin/main a Gradle-owned task output. + File processedResources = sourceSets.main.output.resourcesDir + copy { + from processedResources + into mainOutput + } + ['Client', 'Server'].each { String runName -> + File launch = file("run${runName}.launch") + if (!launch.isFile()) throw new GradleException("Missing generated Eclipse launch ${launch}") + String text = launch.getText('UTF-8') + if (text.contains('')) { + String entries = + " \r\n" + text = text.replace( + '', + '\r\n' + + entries + '') + } + text = text.replace('', + "") + text = text.replaceFirst( + //, + java.util.regex.Matcher.quoteReplacement( + "")) + text = text.replaceFirst(//, + java.util.regex.Matcher.quoteReplacement("")) + if (!text.contains('ATTR_EXCLUDE_TEST_CODE')) { + text = text.replace('', + ' \r\n' + + '') + } + launch.setText(text, 'UTF-8') + } } } + +tasks.register('verifyEclipseProductionClasspath') { + group = 'verification' + dependsOn tasks.named('syncForge40EclipseLaunches') + doLast { + File classpath = file('.classpath') + if (!classpath.isFile()) throw new GradleException('Eclipse .classpath was not generated') + File eclipseProject = file('.project') + if (!eclipseProject.isFile() + || !eclipseProject.getText('UTF-8').contains("${eclipseWorkspaceProjectName}")) { + throw new GradleException("Eclipse project is not named ${eclipseWorkspaceProjectName}") + } + File buildshipPreferences = file('.settings/org.eclipse.buildship.core.prefs') + String expectedJavaHome = (System.getenv('JAVA_HOME') ?: System.getProperty('java.home')) + .replace('\\', '\\\\').replace(':', '\\:') + if (!buildshipPreferences.isFile() + || !buildshipPreferences.getText('UTF-8').contains("java.home=${expectedJavaHome}") + || !buildshipPreferences.getText('UTF-8').contains('override.workspace.settings=true')) { + throw new GradleException('Eclipse Buildship is not bound to the Gradle-compatible Java runtime') + } + String cp = classpath.getText('UTF-8') + def classpathXml = new XmlSlurper(false, false).parse(classpath) + classpathXml.classpathentry.each { entry -> + String path = entry.@path.text() + boolean testSource = path.replace('\\', '/').startsWith('src/test/') + boolean testLibrary = path ==~ /(?i).*\/(junit|hamcrest|mockito|byte-buddy)[^\/]*\/.*\.jar/ + if (testSource) { + String scope = entry.attributes.attribute.find { it.@name.text() == 'gradle_scope' }?.@value?.text() + if (entry.@output.text() != 'bin/test' || scope != 'test') { + throw new GradleException("Eclipse test source is not isolated: ${path}") + } + } + if (testLibrary) { + String scope = entry.attributes.attribute.find { it.@name.text() == 'gradle_used_by_scope' }?.@value?.text() + if (scope != 'test') { + throw new GradleException("Eclipse production classpath exposes test dependency: ${path}") + } + } + } + ['runClient.launch', 'runServer.launch'].each { name -> + String launch = file(name).getText('UTF-8') + if (!launch.contains('ATTR_EXCLUDE_TEST_CODE') || launch =~ /(?i)(junit|mockito|src\/test)/) { + throw new GradleException("Eclipse launch is not production-only: ${name}") + } + if (!launch.contains("key=\"org.eclipse.jdt.launching.PROJECT_ATTR\" value=\"${eclipseWorkspaceProjectName}\"")) { + throw new GradleException("Eclipse launch targets the wrong workspace project: ${name}") + } + String mainOutput = new File(projectDir, 'bin/main').absolutePath + String expectedModClasses = "mineralogy%%${mainOutput}" + if (!launch.contains(expectedModClasses)) { + throw new GradleException("Eclipse launch is not using Forge 40's merged production output: ${name}") + } + } + ['README.md', 'PLAYER_GUIDE.md', 'DEVELOPER_GUIDE.md', 'CONTENT_CONFIG.md', + 'PROVIDER.md', 'VERSIONS.md', 'examples/mineralogy-provider.json'].each { name -> + File guide = new File(projectDir, "bin/main/META-INF/mineralogy/docs/${name}") + if (!guide.isFile()) { + throw new GradleException("Eclipse output is missing bundled documentation: ${name}") + } + } + File processedProvider = new File(sourceSets.main.output.resourcesDir, + 'data/mineralogy/orespawn/provider.json') + File eclipseProvider = new File(projectDir, + 'bin/main/data/mineralogy/orespawn/provider.json') + if (!eclipseProvider.isFile() + || !java.util.Arrays.equals(eclipseProvider.getBytes(), processedProvider.getBytes())) { + throw new GradleException('Eclipse output contains stale processed production resources') + } + } +} + +tasks.matching { it.name == 'genEclipseRuns' }.configureEach { + finalizedBy tasks.named('syncForge40EclipseLaunches') +} + +tasks.register('isolateEclipseProductionRuns') { + group = 'ide' + dependsOn tasks.named('genEclipseRuns') + dependsOn tasks.named('syncForge40EclipseLaunches') +} + +tasks.matching { it.name == 'eclipse' }.configureEach { + finalizedBy tasks.named('syncForge40EclipseLaunches') +} + +tasks.named('check') { + dependsOn tasks.named('verifyReleaseDependencies') + dependsOn tasks.named('verifyMavenCoordinates') +} diff --git a/ci-fixtures/tools/LICENSE-MAVENIZER.txt b/ci-fixtures/tools/LICENSE-MAVENIZER.txt new file mode 100644 index 000000000..8000a6faa --- /dev/null +++ b/ci-fixtures/tools/LICENSE-MAVENIZER.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +not price. Our General Public Licenses are designed to make sure that +you have the freedom to distribute copies of free software (and charge +for this service if you wish); that you receive source code or can get +it if you want it; that you can change the software and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be distributed need not include anything that is +normally distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties with +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 + USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random + Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ci-fixtures/tools/README.md b/ci-fixtures/tools/README.md new file mode 100644 index 000000000..766eb6c68 --- /dev/null +++ b/ci-fixtures/tools/README.md @@ -0,0 +1,23 @@ +# Forge 1.18.2 Mavenizer compatibility fixture + +`minecraft-mavenizer-0.5.21-orespawn-1.18.jar` is a build-only derivative of +MinecraftForge MinecraftMavenizer `0.5.21`, source commit +`6968241ce7a0a902cdc1c534b976e8373a423091`. + +Forge 40's 1.18.2 decompiler emits a redundant explicit `Holder.Direct#value` +record accessor. The complete patched Minecraft source tree is rejected by +modern `javac`; removing that method is safe because the record generates the +same public accessor automatically. The derivative also honors +`ORESPAWN_MAVENIZER_OFFLINE=true` by adding Mavenizer's native `--offline` +argument. This closes ForgeGradle 7's failure to propagate Gradle offline mode +to the subprocess; it does not alter normal online builds. + +`minecraft-1.18-holder-accessor.patch` documents the complete two-file source +change. + +The fixture is used only while ForgeGradle prepares the development dependency. +It is checksum-verified by the build and excluded from every Mineralogy artifact. +MinecraftMavenizer remains licensed LGPL-2.1-only; see `LICENSE-MAVENIZER.txt`. + +SHA-256: +`28A6697BDF6D9500EC0AF9C1C949B9F3ED7DDFDA649CB5CAC4BEEA2E9567570A` diff --git a/ci-fixtures/tools/minecraft-1.18-holder-accessor.patch b/ci-fixtures/tools/minecraft-1.18-holder-accessor.patch new file mode 100644 index 000000000..57fd2b27d --- /dev/null +++ b/ci-fixtures/tools/minecraft-1.18-holder-accessor.patch @@ -0,0 +1,43 @@ +diff --git a/src/main/java/net/minecraftforge/mcmaven/cli/Main.java b/src/main/java/net/minecraftforge/mcmaven/cli/Main.java +index eeda8a0..4762951 100644 +--- a/src/main/java/net/minecraftforge/mcmaven/cli/Main.java ++++ b/src/main/java/net/minecraftforge/mcmaven/cli/Main.java +@@ -14,0 +15 @@ import java.util.ArrayList; ++import java.util.Arrays; +@@ -39,0 +41,6 @@ public class Main { ++ if ("true".equalsIgnoreCase(System.getenv("ORESPAWN_MAVENIZER_OFFLINE")) ++ && Arrays.stream(args).noneMatch("--offline"::equals)) { ++ var offlineArgs = Arrays.copyOf(args, args.length + 1); ++ offlineArgs[args.length] = "--offline"; ++ args = offlineArgs; ++ } +diff --git a/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java b/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java +index 9fa2888..be7f6be 100644 +--- a/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java ++++ b/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java +@@ -307,0 +308,2 @@ public final class ProcessUtils { ++ patchMinecraft118HolderAccessor(sourcesOutput); ++ +@@ -368,0 +371,22 @@ public final class ProcessUtils { ++ private static void patchMinecraft118HolderAccessor(File sourcesOutput) { ++ var holder = new File(sourcesOutput, "net/minecraft/core/Holder.java"); ++ if (!holder.isFile()) ++ return; ++ ++ try { ++ var source = Files.readString(holder.toPath()); ++ var record = "public static record Direct(T value) implements Holder"; ++ var accessor = "\n public T value() {\n return this.value;\n }\n"; ++ if (!source.contains(record) || !source.contains(accessor)) ++ return; ++ ++ var patched = source.replace(accessor, "\n"); ++ if (patched.contains(accessor)) ++ throw new IllegalStateException("Holder.Direct accessor compatibility patch was ambiguous"); ++ Files.writeString(holder.toPath(), patched); ++ LOGGER.info("Applied Minecraft 1.18.2 Holder.Direct javac compatibility patch"); ++ } catch (IOException e) { ++ throw new RuntimeException("Failed to patch Minecraft 1.18.2 Holder source", e); ++ } ++ } ++ diff --git a/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-1.18.jar b/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-1.18.jar new file mode 100644 index 0000000000000000000000000000000000000000..f88af85f84fede0a87df57bf5a00cf26705cc691 GIT binary patch literal 2558104 zcma&NV{9%?{O!BjUE8*8w@+=`wyj<6+P3}Fws&pYw(a)({<$|fukN{LlF3ZInKv_; zWIiivjiStNFtlG#P*A^q{Sx}G|L=zO-&9UaRft|nUYt=*NM1@@OhuJJPCO-kO8Pf5 zTF6U4mxw-5hPopwZ#h)Ruvp5qh?h9Sp@rnN>s%?PP<3kL?tAu)PnwNhA#}qwt!;497GGa)dwy zWU&cDk=J?AIWlE1-;3szdsf!7!N3Zou6`TKOY53{wm{nCR)@e5zM>2y6spjK!Nh-C zEeHAaOY#5nFj)UvVQ=QjXlG?_X5wsQ?rQGfY+=S|XJTjMZf4JDVr#`HZRD(O=ImnS zU@v8F?!aJTYvkh6t?_1nJA(d$fTB&z2tkH0(U#7|5qhL}NnwQ(e(_g|9v626tKEHl zI7-tnrm3<@y?Bk(7upcdKPn#q1Y8LH2@0BRXEE(jRJ`>VH7%y;Y7!<`Tz0}$0UFHfLm3{b zNJvO@h`$UpD0Ppb0cci??>n8-nDd7;LC)fdd_cOG)qFqux)_eqVO@Pbvk|=TEjxkZ zWU}dceiMCR3X6@qzQlFhP1eRQed$tTZji^AoR4}Svl(CCK?(WjX}Q6zJQiA8tw{>R zoFk37A@s=J>gWjp9kTfE{1ZJqq?#*>kPdf%D)R6KSonFJ;6M|*%_K5hBXXu^cs(D9 z;fp%Yb8ps}O#O8cO>BXLVXs*yCTzxJF>CHr`vj=MqN%LGkt$gCsY-tN>4>0IpeI-| z5%xf)2c~Ht89E%aYcgsK#^hwxo+wke1Xd0zXx}zj7GHR4r6*ck0u~^R^pv{1B3;`m zozXeH+b=AV@>V{Q?GOD|j%y@x!L3@7M~)g|<2iDGNVf?uEmV-Rz$&0|bBeB1jW0$i zpw7nOeP>+5}KD(x{-&J_n8z~e1X z)a-4@`Swon+@vNoBPL7JR=lsJ%K-gxI4MVZg#v2&ttmcp0{wylc38~z2!qQ*?`YV7c>h>~w8R%k@cL*{DKc($%l zR=SV2$|T~(gk8fPXfK@cq^!tUW~JU@erpxLcEyzKr>~b-0)49SkmsB}%b0|-BmLRr z_h~n5H(!?2mNDNp6`SBbu!^#-ljWOta}6w}w8y!QF3M8pFL0ozcy%=%knEdt7D{uK zn8B&pOO~|hF>HfQWGqA)bpdXuSx&vGkp|qF#~G0q^P0!jQNBqt?CI^q11%%t!Hqd$Sba4Xt z05y?RT(XbW8PA%M+JM6UqKjeIO{li=r6d0G7TtOT{T=Gf<%RLLTQHnSzCJMb&8x`` zs@fktlA|tC+|DtD1O>5%1UPh|F;_DrQW@?bgqFx4P6lQHfEI)DDn1a7&Gh-75ro_N zf%r5bc4b1TGS0MzS^4c61c@eNt@5TLd@b`>X91+(-T;^}HL z%pscZ-){4?8yR0@5@x#T@3;H-aFIHcWY|n`S7JiaNgiM9%!t zg{tw=En3U1`zm`XFg|rb`z!jPE@89P%kpi{2bTTp%V@7xpad?zW^*NSlDFk647!4j zEivKMuLYqK;R9C2ZPQaZJV7j9?Apj_1@$hhIw0>@w=sPJy(ma4MU?!D54EUgG)Bd=Hh}KBmq|@W}J-Y zzRZvAW#gNgxGqgJE-rSHc4`?W&CG=VmGp64EYyxY=_iFgm6gAw#mgaye<14qd_S!4 zesm}8@V@xdA5hj&%pC7125t@9+G}zNXp8f3$ZZz1mo+V z+5m}ZriLu6)3Sn_+O66f9jX`W>tdB{P3V{uAfip$R!hs;8}BO}Zf@l%>&qqd<3Bkc z<`hY$4S(r}IA6BBuiH;@zcxM2So5wuqr;D}N3x33#cSh4QSS_O*bY^fBvAV#J1dKcdhubzIEFNWP2^3A$?^Dhtel+&0c>Co zIys7qA|e?SGw{Pj#NIA^@s{wzzvl@pUG|+ihoD#YfPY=|nUFCj2k2=Ek!68ftEYdN zfbC{(7gsUvYNH6Ps_bOOeU376H@Vbq-OqDKZa50|h@qL;nlWjSR>e|9bTkEXvIpA`zfWca*C{{W@27~ zT5L9MeVAFaxjbi}61ON-q$`!0rmECJdY7Dh;}(JRV46hwd1K$jN;M>}&GPd#4jVNA zPhz>F??UK!a=JOw)Fd&5;NWk$1i3xM!R5k8v2`NaQAVsdHgQmQw$p+lp(=3|@?C;V zXdt9ce|p}qAKt>}TY_d0D&jvr&<@VOKR5ySHtZXHieiQ;Hg)yvNG|&gXM#*sLa6R| zO#jeq5X0&r5!G1H+51}73*#-!vKAl$0c=s_Eq+C)QQ%qGZNR$w$Cd|B_ejV9Dl+i* zAS1fcGX)cxOYeRWN@jdgZBn)lUl889vI0M;d}b8+RUu-i zbku4u%;`T&!Gf&20mr65;_GCqi-Ux^u;V}}dkHfYrsIM)M{IXGWZTdy&r>uYbd*in zvUvYgU#egS;e@EMTwh%dQgW1G$f^+^)#-Wq@Ns%PwgKqloZ%ug_`vRuGL=21YllHN zgbpoe#MGQ2X+cHK6^UQVuE4O=0NU#)sR`o0xg8e;DYB&bXwN)Q z~CM z_-YWwWhQD|AKsudsJR&QC3>C9<8w?8f+}Y8J zTMqUg&ibV&D2>&K5wttkWpIVcJS#O6WWoaB1OcJ5WICJ~gV>1HZ%O=!50!omV6?t5_b&O&M0E z3`CLzOAz1nzE`H>nZg}^8Q9K9q8NZP%yQ7Y5fvPk<|dQ&@_!fT<<)ddvbyJ>HO4M0 zhUP`F#F1#rDh=uk30&K&7)Gj|MVVC5Bb%BG5!KvY!68Fu$z98((zIN;^#VMZ+pL&W zsc!lmSywr=`_*Vb>A}5G3=>USm!LRnn@*!#(fPzwA;`Lx!xDs&%_tUa!V)r>%}Nv> z%%XZo{)A$?2qVx9z`E<2%r(z*(#5JZA5^0w(!%{zh^;KZ?{i-&cB<^qkzD9tdkv!s z`4x$AN)6tFylpl$Gsw4Z>BP^4FQm=7X9c&^vf{6c^>WSVWXOAMpFj=ylA@;ZXwdnf5t`q0>TmfiV-~yYUw=t=wBjqwF)7qjtLfyN2CZ$ zBUpz4G9q;JpcjMF(5mE;{Tflx%6R4}DV}xzyQ$G;nF0SI@!U5r1!60a62LIgl$?#o}iuJ~4 zFiLN?Q9z3Evw+dX zL_+NFoaOJR)h?Te9TeYQQstPma+De*G#zXVPCPTgoNEf-ZMOYOlME0gjML&Ud~ zu;A5?6k@({f^-cP2 z!XfQ+I9PIn8ihv_zw8$kfn6d&abv>MQB~UIHCD^%8`6{pAN9aRm`XB42FGB76JCMc zPvI@g(6l;H))nTC8*)$5z=EGPApYK(>1ugcz&Clghk?l)`EcKptY%r6h>~xOOyI&^ z0v-|GE^f0|}gf}lr5F%P`^WE_5NV0ltIt++z=yBzD7B$Tn z71hbELlvPecvw0AXXKRhwWa(g?UyGKL$fDdTv&SMf)&mEWy2=81>?;q=^ql;^xw*r zFW!pvUF;ZZWYATo2yq2`Nr)*2X>?~{oLq9Ht9R<*lM_i)3Wt7eLlTbIWiA)g$<=jN z*S4(K1g^^gBhIbD+M#}o3VSeX;^h0r@&=2gchwmU%A-{cuadb4PswKK=7`}%0?yXK zxkYsRnQ;N#B9iTBzl*4 zPFvSZmL9d|mS6hG3PR*R*tedZ$eVF8>0~;!ucHG|2|Bll1U+@VCPTW@p5;TO^?0bF zCh{(~e2cK%d$Rh|Y=skDX(M=$VtHw}R5KDGUE});f7l({D04=K8%0E5I&?BOHwl)l z98-!Fuk4(w#%$i;l4hD->G-p(j{Bft=fLV*gbO-$JJRuCc}87-n|(1vlLhT@{x%ZQO>=S_Gh5?z^sZE9&kfT-BBJfWJA9&WsN))BDZ=!u_!T}V zm_`lBYRJg3apl;s6wA(a(h`JHN-+|NjRuvB{GW=c8Dft0c<9{7^rE=@)H0{1Bx!_@L&_K!Uao(Y~R zvCBn@es@J`YUhCg+dU!oDIZJI^5HgMUVYRs4;+~OBTotgF?dwv@*98N=P-rOhtYp- zzw%XP*PLqJGOXji)bIRiTaVy75>JO4S_cIUnqfurw8LG|=qMjw7cEjah-_Q|of zT+~T>a+?h0GjoVD@)f4<+w2)A<~}Kb;T~I{L)XI&SVXevi$C-ZOfB=qt1mI4?3{F_U>tUL?*TgY zai#Ro?#l5f4sC)PS~^BEh{NMZN|M#*E&|3A9_djCK#&YRoK*CFWH9i&v<)fTA|AO2 zb@}PJc;h|Q6=!k_#8%zis;t=xnm`Pa>G-bi0~(eJsFAtlSpQB-h>;Xqc*)N@ccU`?>fddH;c{w%*l+1q1j%$@w9j(y$>FLff z*@_chPsfdd)Rw*6(0zAbs>IT!4rfn76LL)WH@zx+TD(RW3e$u^-Cri!_t_X#5Hj4* z`)wS0(0xbYA-{SB3Fhcry`qTz3izrVy1CPLq^(M-xE|rn7#R80>u|T@#twa+x@s32 z7kQ?2S4*h*N$gM7oQE1SVb!<(+mU}wM>1>_SjEat7<1?!!S^%es@HqXbYYk;vFHBl z@UiR_0;&GeFK;OCwsba%$rCiFy=-Q(dIo?{CJDJeAu$G`4E+NOQ<7W)mqJPSSEs;I z_Jr`1Tf8Nk-$ghdhRzJQ<&lHGvKA_VPBK+4wp=K{WTgI&{qAotT8AineO*++Y>lON zms*}n&ZW{o0NJ${D5q_7C=KYUMY%D%G6EV&S?v9|JjN~xUEO4Wrx)X|AXO8(BMp-T zw8)2YJ(}_jAvKHJW9#ga;Yw)9DsT<2cMHjij)JngieFc3OT>@~3T`5%G|A5r2*JYs z*VXgUE~c4WwJ+V)i9C2EZ9IWiGk?dX1F*LHFqLf(R(m@Af8CW)LjkPZ=FOw+?o0S_ zNSS%^Y3SMIblsns8@z*v^JAM9UD5NtIjV2ylY2eo)RY~u#YT4+BD`8oTC}-zR6wH#cTV{Ex zR)tUj5WzLfMsjtJf_HflJPyxtt*gY%#rh-%aPt@fKY_`h^^dLGKHsYDJHcvC-@`pr5 zuZo`%^U)Ui&1{W8`lJr9a4|XZZ)1r(wL`T*m74sR=T3YSzh-a({@mHg`*yLUeBdo) zFQ(5EsjS03O^}yjB|t~*B4_Zw#{+Jp^0KC{g8ZsHI@-!ufy|k_8n>`N)KF$sz9|Y* z0QhkduNB0-krksBt?8{vM=>%K%g$}@-ljpy%vj4&I5Tyg4=S_1vCLh6B;1MzHqJdH z&5M!zqFS0A9y4BMv8(~#XF5{+Nk1(Vpwrl413HGo?I7Fz`cXh{V6U+p6!d#j7flXr zqCAb3B&bXJWV@(RPEJP8N2XW)^e0g6S&idG8vHo@+9KwCGNit}4@)0rA@Af5)m`V_c#4qAZ)7b^TVynMxfKp9XC|pepXqnZNqB`OAmI)U(1SkkHI$8X*s9c1L54&( z==agXFi+YmAqcZ(caeEHhP}dzjqJ7LPb+ef;CiHO?^QERY6Ma~UDqh3e{%Hx?v}sf zqY;@E6CkAj0@h!BQI*^ymjs@VMmbO()h>a_8?h{@vRSk(N`(lv2^)T$g8f|9+Q{=8 zN@i*P4Rb5Q>0$}zzP3Xp%l*6`p6BI!TFgaZ3NHV_cPoRUZ9U{O>{>Sy#;$xC(bZyI zq?kt_@Xx>Kinhq8#ol+S5Df%I#h<%*{pJ~Ehq4{?a)qbXq2FdDBSf088fP<_hI*4G zR6rx$ljErK}D2jtSfaAXhy6j%1s+>mL?~ITpW6_q48PC*Lqt9Y-gL=7a^p45v8kB9=@y zP@jIEmQTDKPs_9d2h+UkpKRSC?YUYU@~qAz51C6V7xZ>lr4FI{=&#fCOLhcS1kM;z zIj!bVDX-%|}(K1rp^&;PG_zQp%i66o( z$aPn-;%L2<2-Du8q0EuKNrjRTPD(2CRGDzf7Ho&S4tHuZ>z%Qr&hv)L&&L(K->hE4 zPy1Ir*tEG3*X5wK-VkRDcKglD(^Gl4RCTry&InN}Hkyj;f#%`XSJ1ecBfKog`h-dN zC|RB^4M|DOKOKVU8%8mb7p)JhZz)heRP`0(<6Ol>;kQrFKOOWQ^d2?g@mZK1 z>m6-?A8=R?P}T1d>!9a8a|>gTRErJxE)bl}EPe`v3#WMNw~7`kX;tc(N*T?ODjc3b}Bl}Awy1UMsNO@Isps{}TkX@|_%^=y8=2_!??*qJY zM+~aM{I=QItl<=o1B^`|yW`nSiXlGD)Mu!+9xAJH6XoBZ5Z>j~XHM}SotJH_yw>K) zzT6?ZQ*rJ;k{;jf*i@h2AbWe0z7GjEmL4#FG#^iMNMYBcyfr?eJmx>*!~9htzXlBU z39lHh@)0XX-bTpJ43-YQN)$|>n_kAuL*GW;z5;JlqNBZoQ*OY1UaxcwXKB99U)&m+ zLlDYy>yjjD7>*OW^!Uu13o@4D59`07@%fBAhSZG@h!2!ZI6tTq^yI+O>hPv_Rk@OR z8Z4<}ip|(U)&GH47g}qJP%dDk0o9PORqBdP3=q6%jp(oYDGl>A|l&s__TZoS>fB@a5SbdUZss z%uj7fw$_OloIv>onYi*ANbVd~o^JS%`i2qa^LkQljm<20yrFkQ?Et-#g%lzL9F%Dxn zu25Vd^Du#1V@C*F1;@2=YsCgt+%yw|ih%@eUS`bHIqtc8+fN&^@{VYp6emv9V(aX^ zVwe)JCq|vvl0j`pXhMb&YhV%I625?QY2;kKiO$QQyR-+EPGn6`-4*ja^p5H&x&ya* z&xg;iHD7J;q5d0iu5T*KSs})T+cz?TSVroGMRS~E-Ozzpo$$%wUv@2FlMHifpIO@@ zL0%C^2qd2^n>)wqQSc?~#49?!vpa`82f43A|0Hji!>P324>>HWR)wj_EhkV#oa4H6 zFY&^18L5=`S8QXc8A-drqAO+ImI$VytM6*+nJ{@vlCdWy5sHbAt?wG2vMzM# z5#{?M7@-fPp&ZgyD&%`+EsbZL>rR+k=ex z+=#ZBr43K_c7dH3xl{qduf`;wdyd?=RGQk&1?ayw;$L@D`^p zdHa9;v=y*m0lkKhwPe!wIGAJHqdJ~?%$y$17w!nO!d2J(T9XmZ9&0gD{QkV8SA8~L z2;YJEZ7jIA6F7BAwbOwe46x@yMhRe4VEH6`KTx6F(gSA-P>K%o#E%$i^BYi#H$MSwy9mNw$3 zPENP909eNd0vh?Lb%a*R{mt{9o$ZjLV>-H>bMi3<50LEya8C`!e;cf{l4y$!_)+=d zlE}c>UMmWBwmkj-Jb@A&%ih$Cqw9&3jAIse8bj&tGkNO|!qOK1-pyrAGz5lgijxGTovk@NGc@8#5f{}-U$G4HcCkf{?K?><)e7mEMB^uZgsO6vn- zx;=TNFsFUd3Q+yhkgOx;6L)O;p%}+8z~JdbN-91N`4D#rJpCIIXuaTIf5Hhq13mAR zCM69Y*PGvgbOill2l?|mv?Gd9s77mbcI+n@_TI!2(w~m@tF*&#;(H4{XsB6$lOf$4 zLL*W<8jTDccDi`nAh4@L^Upl?yZez@W=5%5L1>DGyOa>RnUv6ZaMzV}aG{z`S=)Nn z)Ah@^@WaA#L8zIlMlD;#i*#d>wX1Rp#nK=h|F)7|or;{a%UVdLE_FJ*e}F)*2)?>q z2W)c6g!s4~N$IoPVZ1F#*rmMObwd^3vom+10$ILpwLj`7UvK1&#+%!l+@B>IGWxxO z!@WJW)F?}sxO^N2AUIzl9@)7NL&3$W0;eN2VDtb9Yj}YcFMs6^%9R+(4+tT`5pUp8 zk1e;tkx3gUt^CoSS3pRq6F}o`jW1{A0Z!48%>W|Y=1p@OrtCy$Z9?~VWW^i)=XZ*Q z6`=Pw0+XafS?Ll1RilW?Qrunvz%lWx2a?rS<&@j4{&|+YN#qO6_pRyI*$?Yq+WhX@ zv6+e!BpAjbo+p)mM-R=eiSHTF_v)Etxf%j1sV`C#1U`YqH{ke){6h0Dpt{jv0*bx= z;DWjz5uXa*$vr81dPPTI0)EsWzBQOc>L*j!ObKJyv8jjV4(EEl#J*lou5NzM@3umH z*SHgASQg$f$E?ROrRBj-C5C6ScO8;;NcyRi^7e*~8H5z8^77|~;D`Top=mp=65Pv* zRkyO6ErqH5D@;?RP#aSHOjA{RcP(sC!B?w_mC%rL(=QRIRmn-et`(zH25V+=NYn0G z_mo`Xbge+IjMpk_)-eRWZJm#gyJ}_RG0<8e)sPEBc9D95 zJlYb=ortj|DU_flI8E-6vmp-cXzNR#IR0k8x0>xWd;Ftc<7Uj^eyUjRCG|x}7Tpaz z3Q=#y?VWpvH_!i7n(u|}3t=pUZ~X2+%$P7HIo|qA+?&Mb-Bcdi(l_TMCXEoLcLH60 zBvn;vq(VE$Q%b(Xol{{|dHl9?J%;PfDx{)%Eo^>@1#FIUlW9^tOSLSYOF1=aUU@gL z^PO1|_YYm_at_Ybt|s_IDw~&IQt#0l$^f2QluFxboG_Cwg#gkR=4H~_7Miq1^OWr{ zHtjMv7jKl6JUQ~gw{;N2-hGtyfI+$#>ZSpILt2dICS?d4xDBf6q*w9G)Wlb{G|co)%_je7@M88Wjb? zPEQmwtl&5!qm94#S)TNbEv2LD%U_(zUn1WBggX`UE318$F>i52!o(ECWDGkU{`mio z>kkh0FC?4r*RO7w|C8%a{eR*58(G=^zm~t|A5T0p?4Ry66L-!9iY*SiR{E=F$+0y% z5$O2fc{Yix1}W<#3bMau4ZKpJm(z5-jaE@q1ZrhOyGkWxRBF+MWz|@TB;ZPXNVoZs zkTBbnWuA(4O+7o86mnT|nIk86c{vU}H{CriU)>{@sFZPd;Io1{KBEC5fhwV}_QK!I zkuOnKfFtP_c#k2!wpM(zj!yAwCd)HV77!55VGTPQ^PhH0(mF z^(V!1gMF}Fb}7*=D$pZsI&h?Dy47nFE>%SCBz3V>pW-nT28E}L%k^q0w4B=99*#q= zf(sonYLZKagqe$K6-a!L75VUksOv5tS*hL)Xz2Svp=VUAyVH6xIQ%q$l zDK8g?&=#r~rjL`##WY|C)W$~2>G|Wkpk&J6|_$_Y~a5|H7(`i(zlaz=9Dae=7E7B_vFPsX3 zrLi&hj01Pf8?iJB-c?ylT1_8YnAT4tdSA%&lwoA3o%IL6M;>?3vm|KT9l~X*M!%(44azX<0%^_4GoF}N_ zXfSq+Sz9D66YJGpo$N7~!8C-s{vc7%aqDRJ8bf$pOImy z8dEnnYXsL?kr1$;EeT7sM$@wLtS^QaNZ8@;A6jEOpiwr=5=2>L1WmPxhXxYJTYRL_ z^-#b@QtXrKc~+F(|4BA6BUh<_q_a`Fcn)o`YtEtP&9dRe(a!9^ZMm_vvxVbqW(!wd zViXx@uF5hgKM&GHX(0BzPeo)NBtK<=Bb%mkQODtbJ9ncdH|Kad6IZS_>5@;t-{L1T zlCCo?X5yk4uMut@D{cs@zu;iy(o|t<#94@Tf^DV+nmA}E-`;;#!T!I@}RR3byjhEQz3Lc)tAmwHrzG| zeu2wzwR(B9>Z3k<;wZ4v0OE$o88pU;ENT#cCnl7Pt2QO6+}I4=N|1U-&i8Lpn$1f+ zGnQPdH6J(ij!4`yc#baRBP;=}#L>8i&Fq<5CU%z?+92Vs?v(C(jO-GDVT=CUUS^h` z*Xm|s3|C#YozBN z-C@SyyJ=wRu=-vaX0QqhXjO0Goy})xAI4tcVv#5WQ~`EMyqX&}1jn<-Yj?0f_}WF> z2?58VO()-;y@G+Af}bPZu%5O_r5rAY)si`1lj zlNwchFYwqb%i#^w4nv|*OUhLCp8XPoUXYDF;(jK*bwq*7FQcGfdHJ|$mAfk1Vyk3f z1p?t0VIxLg!Z3K4zw~H$Iitv7!#v>O6PrW2WxS48ONdLR_0S~EGORk-?8K7YHfYO2 zd+0@YomqFKF^$2=Q9S*HY*^UWh=bJ{__7Rv(Pr=UU`?@`KQLQ3NjgUoF@3@qWrfWR zVJA+5t%S>Nl&c|V8xudodQ34;2j*L-)%+e)mJtVeud6z(LSLOgP3Bd=3+O#2-7A23 zh64}TsJ!27+LpjnE)m5Xb7j^O)^u7Ilp|z=SX9)Eco9WUt$u8f5>MoHw)ffJNJ7=I z4W+gl#~{#Yv#Ex8pp>OaFeAx`R1)3y=asF@&TaL)FE2~7i&W(ueKfb-DM!lWYry?+o^<-4mV06V<cmm=f*ee&GPX=?mswVe~vr+4?8Xy~Gekxv_T8g7MgJS=*$oh`(_b>s<_6ZvDG>bi z`CX8z{FC$D8G4ss-;DAXW>)%h^EpRa#MnqT%x4(p9&HF;P~Ipe=15x^o;PH zg#Uc^PaZfn3Z}aWaCn~ZK3*mQt1hk4a92JJ1m}{>L6oiD-x*@y6uG6iImU*U6+8V9}eRCIxb4 zSu&z@Mt_UpiBQN!gziaO;WK$*ViI=8*BEugD1%q@TKzjG?AdGW)I@f-DP)I3NcRjY zJM^wps<4x_&@MC0R(G8zcGrRASG3K?Az`q*4)G54ag&?+5ri|PWJ_8tQ-pzuE+WoOf6{ahP-A8g&_sZ4viQ+~}mTDV9KF@T5LT-?S;Jt1X6}At>zFkpoGG zHSN zDVIifb~?(llq!``uV^Lt=70@ylne!k5qGKkx| z7?7}XF~bx81tTLZLi2-yfuRaRi$*Lyn;%oOGr8P&-ry50S`)S`Ew?C#MA}uaL-Ok^ z;s_Qux2W0J>{Q#eb~aakoZ7c`Zfv!5)+~Kbw|o4T9}eCM9%Bwj%^jE*uCB)dxIj}R!~nHiDmT8 zzL1c2+OK-hUEnpn{X$_2$Xo< z!SsPymSnM(b<0Pc(2>1%$CaJA_6Tle=>tx#l_j%&=22HjON|L!1zHJ^!;uc%-x1nE zoXZOsX?o9;m|<&)*>7icC|*IEv>kTLv{4K@Q<_vn8juz!3Zj?;lVTyK? ziM!zTTE|^qz#Fg?R?}8^!DXH#CtJy=f}3%NV4GRig@B_k^6oIl79Sq9lwDsD+OGe= z15k1;piPc|_78RgS9+J)TKps~uc3g18W#r({i3)S+p&Ds}qjI=IKPSRW z53mT!4WBN-YRzn!qw{StLQI} z-m}K`u1#rnJ0pqBNm^tD+LYSK&15m_PDx$%6Kiwqo4`z8s>VyuvD+}wOFiozEijeO zE#ij2T}Fdqwk4IF#`-fbj-|fNwn?!ue(#F82f$CP(P?3})5)F2UOZm_%hX-lJYpt%Xvvzm{vmax{>_!iTHo%uedZgm_HlR?T4zOc$1d8ykqMt`n2d zwuRoDb(LsvHX0KyFybGN<59-8E}R7x)wh9)Jh*za>N@)_H+8o(@`kp$bg+ET#r`$+ zc|=;SZOvi32yBN3jq_jVJd$@Z7v9)#0Di3L)<|MzT1lxo1y3Z&$@ifE!$}6LN{v%7 zuXif*5x*|KFHgKe=T zJxHfE9k1=HR)AA7v0ek(4fCZ@D-B|UZ*Z1&?fQI&n~C?uu^qh~wcW=uhtppME{;`J zaWV6D(W8V$Rn)c787dsuj(_tm;)T1Wn6I?PWk)bIlz&*NU0dRri!U0KT{=41LccaA zU&p$n7%y2Hf!AvRh~cDzfdH<2K8sM+0Go*^{0vgV__YK|G9MHkGd-#9BU+!)yt1EWl$j7$ zwT^aN8NvL+n$}0UREx2KQ07`gHE=sH<+&2m<-;$K=3RWnZl7byIYa_W9*z?^*Q&k= zqrJ(_Qta?rzfmEz)`y>0aZyYOezU9rk_GlM1b{cY9pC+El!}6IcH%RA28iv>;%ovF z9iMT5)Rmu;Y4)3$=qxvFh-39Du%L!bw`ELicxw0@>*XISKI;G(Q~j`%Jb^-oGa@uxk>EK))h=<_Kw0}d?B=4jd+yC3M3nQ;0}PRB z48#LiB_E|eCBA-hy!l@;GbpRwq6f5(JwN{DI2)m7#afn^%-{z72f9bAG}D5meMgqg zBHSbj%=^rEar?o6l#b5n)<>aOA9UV%Qz_N+DwFkJ_r1ac?X30)nAXP58EH;IPZzWO*#>{ROOfDu^#RuFCjEKCi zP9Ll>&9I7|SBqhpPr^@4;LYBL59`cXCp^Mk)3x4Mftq#1o4dwYEW4L9*cu}GCzOCW zHJ39qX6)Dj4HPi&wlFYn-(s@YUym|-XO@GeE-a%ty)MZ{wh!RJ8*6&*fc6RMf3ef8 z(|$)vXUR3d;S>_Rp9Z7fU(026ID`vsBsH*P;!R-KTHfby>x|}KyGwW*XWJ_+Sw-2x zOPSAk4u{)0ve){0LiH`ycXM0ogU-9)2Gsj|?02`QxV2nwBtpBRjI&O2nOJCX)x)1k zyf&N{db{X9&?|9A2=o2-$Fwuf4wp9d%c^K;;^pE@jFbK95JNp~M4IJMw{iBE5d9O{ z{}?nL6LufDIEZ)BQ^YFB9|Xpo%^lkQTcVG4pPlO5acV`c$M74YmgY4oz0wK3cA(ce z{A>k1FkRi#tJ?BrXebbqs#sBzPIfmW=3bd7ZB0)K;~5Kn9{r2_)iDlm{HQ&N+QthUTMWjm|Gm@OkmUjGq1O=UIA z@*KCz&2>c)UoLJQE@YoAX_gHL>rfwL2r-oOYX^&F_*HAp8Y6pB-4bES>>wQNz@v~f zNrPFBsRcOe)8|@EbqwMKPhb2_l~Xj^-V~nm!p7$ac*6I?-I+^=$jIh#%wu1Rg-3^LtFIUCiJY%s=8H=95-;DO(i<&s0s_8q6A5))K}v#0 zI8oI#9$yz?q{TYwX{9j{X`Sd}ix8pI7H6$HRI?q|6cM1eog1`7C|nbUtjMd8HEp2d zVt0!^qJi|NWp8q?eNaXnot+Xm9rtac`7?f%!WUM*(_l*f6*P4jvk1s3!jRxvsU+9z zZpW`fO-ySe^~W;vC-+8Z8Xf;H%HHui)9`82?HC=~w$rg~+qR94ZQJSCHafO#J+YG~ zc6R^Xnc4f(yfgd5{RiB&u2r?_tU8Zk|2e}Ajk}|YP>JRbbxIFwhhC%iXfML*PGa0j z-JIL$Inmzw$6_1#wRtVZb@fkNt@4}%4|EMWCyvQa#V5rr zhXqQtwEIl;1fb{IqoA9=1XLrZU$Zmf8hRFIlxx!>vaIX%)Q2e|KkShPNRG%e)y?7) zNWx&!h>FBFhh^{(J^N}C9J`^Sj;XKfl@js*~*@tncs4FkQgQpi04PHy zc50*3GUh~MgQsV4ak1-nc(YE5SJ4CYK+a-i{&t&NzA6HgV9GTEJ7U6nvFQSXzDd(e%OVy6U{6M&ID3^Qe%S4o8OY@8}r`IhhP zSGIXXgw<7p2QCQxx0=;ohF&uAEhRtgfYYB|TtCy{EsZuVwS2)dDXpXJ>H-D zo`a176=?|K^ZSZIP_f90%||Tq`jSHiPtoQUL&|Ptt<`;2V0bC_R+cV@<^%Y-s$2-Sctei;_x$aueS znz1=AN?#K>-P|aPs@{g?RUKi!D1aWgu2TMl6>Cv3F<&Kps#Y{d3G>jAlEoogqpkaM zsZ&}oQ2T@>^i@m`A;}ACacFJz)F~@1%L9B_Lf@Z)|3<4k2A5WPm=^dunDs(SHg@(P zw7i!|@?P1PlbQdFlU~wFj1cKWmY_HcHN{XLV+a$xn+|zyu}2GY1XI3%Y_f??jWD0E z4v{f_RU+*t3&HQtcS@_HxOPPYcp1MW21BU>m-X)Z_<1oWdWO@g?g2uTkN64{herg+ zGGPDcX_BGpNjz58b=5Ui3v^rv=LL#{*aC`HBtpNTCxUUtq?Q#(X(0hiJv0tZqA;jU zJsM8~9Cmfzqh{#yf$&z8`Bq>wkceT>BnAko4J2XTPj3fhG-2_Jukl3RjHu5YIiSf3 zv(JjmZT_*U2Jamued z+wlPT24Y_*0612JCWMn43KwpAb>X*%q3@Rv!Q5L>goP5maI&yOODJ2)}yhk%Ye@*%rnlmi&@VRge5_2G3PP`9ct6ukI7=mtM` zgB?N$2but*K;0LM7xNc0UcxW19`r9#edyk}8}a=YBhkTllIYumG3O65XKei#+W`gA zP2l~Q{D-hA%o`bw)=cVy`vP-zNp%r{vh8RXj8ef1l=@vva)o? zJ>AE_q(C#4c`&giu7p@Dy1~g6+5vF9C`FRbvY1Z2b_$gJPZeCjL{!FLKI3+V=TtkH zA6&dR4&;hN3QkV>;Fjlo3xvEFMHbHz=LTI#|01%SLKWzoem;N` zGPce^F-Ln44A_R5hks3Fy&;LX44f>4y8aY#8H{a4NnZ?Sj=y@QqI-j8ZQcKTP%7ok zzha5AF9FjOBs6K^pXGgBX|FMj-DDD&ySgIZCZIceGL&kAlIi4AUAQVpvPW#R_l@0& z+Ys~)m)_t}UDzo|dO~P;^7+K0J3BFy5`dC7C z4JwQfKTB51;W;mppIIHx2i%iVB8mbX(aHie>P_ydI4PrcsiKshG3g?WiNC2dZu2#m zYoL1|)##8GIo;-Iq2)4xIR6+kMa8b?=yV6VL>u&l3Ps{RX9HT*I(PWT-+@E>A#~Wu z%Qo1sNiRndn2d={sIM#;HUiQmcoE#KFt;cdUm9@VSu6mDdMw6CdAa*DX~Lk89iiv3 zYx@3;-tey0cq!Nd!>gTzjlbRQWrysl9HIQA?|riiCm-?&{Ift`(Feaj6-Y%=Z2M8D z%?XIN6+vZc(NI>=)wbE$LE6spDitZB`^XsO_wurmL!^zkMYJ7JAF2;IfM4VGCXx0h zIeti!PSCVKC+hXrZua!gXOJ0mVQ5S82>xbmgE0IwEbU@Dsd}YGnfBQy{*xP@ljD*`Oas*l35J5OdyX!0V$w$5`w}3 zm!{697mFGWii$sMfiISl)z?H5>T?=28^M2e>oY?`o}jp%j5*+po+)hNI{3w1)WjH9 zbeHR5ki>4MJu!M4oc=z;_q^pY>vw(7Quo9U_9qR&a*PyC4%&6-Tm~>WLXkTd!5_2HDdm$y$ZIqg zocGZNtVr;c;^FUccDQ2UUH%4I4*gnNAg$TSFlr$OAJiR&eQssq&wlU}Zuo1u)hNok zKXf+L0bdRmwl6PBM3;q(PI@lQht~?jR6T%e4W!7ZP?Q;iQ!jpk5nE^%Ug`QZM4Ohi z(~iwvJqJ5nkr9KcW}8hrh#?`)~uP{l2Kq(8mE;Z$H|R}0u|04y#1Jww3T^lq>o8-0KudF#$;JH2M_5WPPECpy?J2aVrp5=- z0ROvj6!U;?YIUyM1Z2ki;AZz%nnRViHUj#tOvfTGM*OhwuUPk9Ntc2+m$|89 zq-2;#ba-ThaPmwDcA5A%y3#}@vC5MR&7hy6RpOjh?9CDSUdaXu zh;#KRj;0>;Q6~^?8HUziudH~@g@9tS8513oqtukArLJsL;p{l1G+@JK?2)+~D+*I} zC|;arN_|X(=st7DRy(ES49?0tL*5N^168h}6*tMaztPImnwrZlB zt#Bdm0b+xZwP9b>pD{zum`R%CLgs8n(q*@1JNXwi76?+aGMv);#`rd(Vy{3l?*(m6 z*6PWmdioa<5|c1>}cPEbuWWt6h~RIxq9hnRlX3r-x@ zfWGNkB?D6Rq0;S)#b!jefBU5*m9hYS{O1FZxX!e{vnhkc6#!!D^$<1mzvse8?liDzI?|vKWYhCtprFKwl;9Vt z^R>an3;fPe_W-b3e0sH{3_If~U$t3Mk~w|o#aD(G(C1m7QN+Ld1X@@pts!PO^90Eok&7VB83Q{P_SyiJP95>#=osPhUeAdfjWght;z|F4^y~I8iBboaWglK$WB-Mo+4XpS*t-<-H z;S3qMZK({;3(m;n@NcPvhWLOIsU&Ar@9Qa%t3;X9Tkhc)6FAxrjr?4*TL~$B$%^nzb5cjrMw_B#Ll5}A!(E==9Z-@CFzWyI^1wXC7N1m%5xRP zAJ0Q`#X`hIpo16s*5O;KRHHFtEm>pUV`m=klaXnc?9GpJUEu(0*pSIE(um8};#2KL znU%OzcX?x8ESBx^qw~N^Sh`vFLE|ct82a&Td-v6d=&+>pNnCCr?nnMQYK-RLBHGxJ z3b0sdLdl9cZUPSVXo(I>GQ45dun}w3LKSK!2w&0GMJEl+#zQnEgd~y1Zf|$kYsOO8 z$|cJjdH(&G)os*J6*>+Zm-WP@+!+!rrzrWd1yAZFbj~gXNe;Xr{F|IX8MI|5+NFW( zDv}?$;;61!RP+7wNuV$PL;{Ojp;)xirMS;2NUQzoENWJ@BJ12zDMHoXl2um>if`l` zy0#sxN!D&z#7;E3(2(0y7<;x^Me~{5%Syh4pCvicT6gOoBS1M0(n!;s>;_IA5|7*M zpGdWtf0zC&@^Z_(MsBy5vEmzviYf2;0jibCAY5BT^_FcLhb^>1;U7!5l_=@S5+=o_ zn2f3h6I0I7TzQ|KnnYu%8JBeHbX*DTf8Q2Xv?wDfKrSqZO!_Ju@ZPtEquUmEB~rm-=jv$%fQjyXbtEWfV9%c2$)TwS`q|8^w!kuJrxcvFXff zaQqs-?rlz%)mE1nD)=ni4?yL+LK5AebdE83{_2-GAbEVp{TPIq_FXe#ukI>wE7+82 z*B0YAcTLu9;6%amVe2Hn!d=%&+M9F}=%5;fDEaIdm_@TG6w>ER@HTd_Z}hFeHZV+f zUX=>m8G6j_E(<^)-JyxgG{IzmRDHqh#G}V-a2i%-%;SGzOsK<%{D3W&0I?8aLOZyx{qdAzG8(A`#cLhFubOEDzfJCx?4rhjeWPS)fcZ=rD7Mu|E=fkPv(liSyaTyJ4m^4kmvyR} z&&9bS!dpE-)&$9fWht1ir30IpityPKuKqbL6U-9hQK3I<9DJ@nki4wv)-i{iVpb_n z@crG9K8AMIauz0aJ)d${_RwmEAasPGm)CEmwr!-3<5~l8R3Dk(d7HS6E0+iOqDw?J zbzi1KFl*qD`S$Q@D@p!Jhnr}SadDc9c0*?i(YdJf|EYEHNuV6xpHX5~@t**m5Mt`KRru|p{y-6xn z<0~QAZv{eg9HdSN%tZyHQOx>*O&_T6YTC!hVX(!v{)6%H!rCBYO&(sECra|RY zfNixx2jN~GJuYv3!q;VC@0`L+31w)^jka){ z&+I*c7##%m&6$FoWeCLc5@q%CRp5bs+!&R`#v1`i@r&WQJgh)b)=Pd^WFz*z9usnBK)HL8 zmOn6Zc21h1c^>O&eX%~q+?b2)PcDOCi0sg*`_3n~&Z8^T_PE2Z&gkp3Z-YVndp=jj zJEj<%Q~plE*YZMXuK!Zo883S6v5yxLK6g z)FS!>r{2{1@B?&wRAz7aFU4H0g;OOjIIz>rsUgo&o0~UJ^Hs`UUHpmbkC9Wgo1UM^ z-Oi}6i1n5^IChlq#q%mS;$~l<2799LEh44Xw*-BzaAUEfR51x(Hn+Sp+G%4I^#i2u zTh6W3>w(8EN0Bdvt!~t|)YPj!yGv+~>!H8STfAoCqfKM|5BTj75WdW`uJDiml$;6U ztROe(>4PgiD~_L9U$SZwL~JM!M-_=wqy~ViBb5&{(p@N$0FR8@Vz6gR(tNs9)or`k0sxA zvA1JeW5X*R>&k)WhKTnt$=Oay3)dO@hJ=EMb+VkNs@5j6E7w(-#oERMbtGbHi`?Pf zJzYF(eTMZJ7Xf;uTJJ*KNyK`FxwOJkI++H zSaEoR+Po2OHpk;23aLHTTjRyqZwlwt;wJc93p2{f3=vaN*-dg{c)#IgDGxGaCB%{eF14;4iU`h8ka|Nu&rjqjoIc6QuDg(3|RsZS?-Hm-lreDr5IcC z^sn#K-Pt6z+LWs3=G4lUbLu7q<;-SovKz|pb|%EE4I*{3AD>v0R=$t~ z#xXV33*p!|%+)7~O^L(4hy)5%;lQxPpARHFkKzQ8g|K26nf3K@k-1B!V#K zBV%y1v83mF2dCaNg@0!bcMgXN3K8Ut&0wN&$&4L^87zqHWF!(`Fi zO>8$iBk3vc2wiBl5scbzB!tZx6CEt-j{0?WbNTb=t+!{_CNl|g*a8aw5XlgyTKS?y z@Y9HbEVusv>BN4O23hPwm{`{zRIx4M0RYH&(_{jaXFezota9Q$@%-}vYO_wt{(0#4 zpmqM(Al+l*ujIN>8Y#vU_b_sJGP`9Qswq1ON~4h4*~+7kZ-L6;;VK;w{P`8D{UQRg zFmIM+a%_zA50oE2ZfXBJf$jeS_5L48&4oMxL(a{eu zIZuU7K=5G1QAsE~7Z#bU*qf$i?9CzfH+f%v5SrPtE7d-gRCZP-*Vf&{EBs*5H9tkR z=c829nWZ>&)8;5JRm;}CS))Cu_L_G>9aXv7lFpV3<2O=0%TS6A}cRWD(_Lv1ecozFmpo2>+fixp9kQWPYdN{#XEiC$9J%6L>1CYQTh9hO{$C z9fqF=5Uxjx4~d6-Mf^`NNixXEFaK$g+W###pXUFpR{mEo|A$AdM*Uj_R}AeNPpX{^ zk35zhE$UGemN>OkZAlxc!0L}BN__#9*znO>Nbsaycb6hi=OSHTY$4Fy(e*{Lr`L(;vVb|Nk|D)xZCjib*eZKI|?y+B`?Z%d));uG(ePr2$c&42* zkC~>qb>44WeQ?+y9AQf}qzO3&(>qwm#%Ur62-a$1l0SjEUh-3$td_<*iP_^83vHBT z$LVF}jhR83JS7ES%n;V!1Ex>%rGE?^E4XBohJZ;?8DT7(GJZH|CN2;bC?e}_t>elV zO)?ehsc!Z!#halnG@Wb@d%W1br3npHW{o}L)in9^G@i8c0rEOi_u{zV5W8$w3zkI? zLPW0yD~=#_RF?QGc8i1>bD5k`IoR3}3$+HzbK$F0W9+nqz>Zp+elfUmtfhp$grE%7 z^0(5|32w+H=u-2$#r4bqdI;bpK+X9KMPGxt8t_Z`{T9-X8)J9;ABim6oFEaNEY2D4 zAob7RN&tMf)RUfmLq`9w`r?^Mn;^*YE&EP^>DrzSR2+f2m&Tx5jPh}UmQ5%&F08Vg znUH@cLIUfJ6&7aehI)rZyZJB&K2MBd&Yi#VAbjySe490GyEKRZwl5Yo1nJ_|F~faF z8H--!IU49Fi|^?6LZry-73z6%tpi3TzsKy@f#Zrl%K+3@dFBoPXU|Dj zwert6%t4$~J>#>}+G}My9`s$7N%ZJ4b2B|9I=<^T_hw_hD0oepiNc`>5+JCA^S+#? zh$dxJRG*&|{Ha*|gD$?P)ag&fRM=OsKcD2tLUnPyn8O-t%D|Q|hufN<9*cjrDmjbb zvc~G}#tAA0*%T&pj^VB?&i5u}v5P<2SPsnIsj`n2_!dRlTohto@SMGBfN#47^Sjrz zf}$!CblB2a>gi_eZ0)d*t;h+u8;i()ZchgG78P^>n)X{CHJY!iyCHOIQoW_LZ_F{3+B~(CL2}Uc(jls*Cdz4QOB~4xgS^ z<6IN_;C&0z!cia~T$CVwAbkhJoiB|1M*lr$P+X?INa6>W)H6y4M+~81a|I{ULKkv| z!jjcL_l?;xb;f*SfAdI;p&t$Na594;9S7j+%D6*$Fg@M&DVK%hl16WHD(sv+;0e|> zSEF(%8B2+abVqV7nUbIgolTz+nX(#lw)3YxQp0f9w1I`+FqJ|L45w_^&h>S(wpV z{lC{pj4M?PJ zSbk7uN8#JMWJA5)c7Ar3^=l@Z2Vl{tyqAjC;IXp3En}IqR1scwU7E**DiOI4Fk&zLD zb3~FulUbgbvi!#sUCq-3(p=NBu%i9$2V-s1kj8JjJa^Y9_TJp$pks6O{^{3igZ{S5 zGfDAJu=QbL`7a3ieg1cjH={xhr#qftmnM=JHYiRIw=nci)oZ4an6PFeM2-izOD2^( zLC;h(ogM2yLAk4AXHmsk;z|=p*Ff#f2b^DNcBRfE2^@!qVbfur8L_V@!8C!Ma?Zvz`ivIqgVQb9q@3v^sR9d?IahGxknpp-!Di^{ ze^nxE3gYf53a=Vd6>yS#vOA8U(~!t^ zbKz>}7aR-vE@4I~3zSI}Iiy(TFR&|=7%hsYz%eCVH+;g(C;pxnm6&Q@N>r&QVUMBq|vx>{K+TU2|dD=h-JhB+q^UsU=F5zxHFsp_& zUu0AXl$mLTgmt%mCl>|dR^GeR8Z2G?wa0zdZJ}@C3GOB@2XkwJgq74mp2|Qs9ImV~ zVK`3BV;X(RSbz*N5B*dOm2Jvziy!wOi92P{h$gOe!yy@WEUi-Sx=3sgynQTh<|I2R zZ^cYSFYVIhwna5bVcuSwdEbd&=jP1l+YzVn&p%~4C(D&d2eW8qo`YvY!S2h<1yJL* z@2}!2sPWaCY#Eo^)M0nGb-3A?8c{CfFI)>=we+lsTb071#5}WKWnn4COg7puS$Mc` z+hUNr(7V#(!+me9lWBE*m^kki8N~%s1WHac@C`OSO&6dUH9jT$MId`gT|I^Fa_h8BtN07C>pmVYxu4=@=+!#0aS>mTlvP=uaD(4 zKwlZ~Z$@&5hRrOs2ut8iu&P^g?oMs-tXH78x^iG*cZ}pDWufjBtYmy#Pbp2j0njd(qQ`pD(O8ma zw0o6~yhV@tWrd&LZxJa0SfbMq}vxB$#$Yt{=-KsH% zO@rO23NEcgI@y{2Ai^T;oP*BM z^x@DhmJ73)AM0FBF$e9tWt^21P@fu-J*UQ=L#&X?*g<79BFWn%6IK=T1DCY0A5^w} z(-yK{XI*$)qMOyFws|QzzdPY;^X_W$f3Id5%e%uY+GKAiiG<6ee=Jn_MX z=X6gO=ChcVEDlo-&or89Tb$kGujp7VC~l-KN|1=C&peJ{EfC*i*&Qb&DtO~xS}!3U z%0lu!yDBHhhVn9G8rv^Foa@k6%uOb@1CEZIh`E+`lUzzi9U&KmJeDRVdNN22fu@nQ z;w2l(cPv<2j_O~zB_4@t6|R6|)GN2Uj+8UP4s(p3W*s@B-PLY*@wnmrvBBZrLL4MP zG16qBqK+=L8Ju1mQc58ityL=7Z`kAwo9%L?hjC1Ode%D*!A2QELijDorJj-MWvch&NroPeHZ1Lan4*B+bE6&Z<_5`RIs#0dHHOmX`!IRcKk^mBlc3V3fhi1|zv6=9u<9TitFFu=VVY`PPGwKb z`J-xl>Rpj@B_XEDy@c4H953U9zzI_E-*QjzrgvlDV8-()_y$YrgtUA|%$b#{CIk_U z)yYUavc zl&B?nQh)ZwA%A8pqa0V;y}(on9lOH`l)#-|SbU(s2L6Vg_CtVy7Z3=9@PP#qstVA4 z-@x?tG5)0fodsD86Hc}kzAl4UV8iH2((J_e`{Bnn;b>Y>dk>uVJhc!f_yN`wD3ch| zM`EoB7In;!xD}}j_=IC^F0R0p|-MkTz@APDq z9V^BgN)lV2 zg!-&9x5!;urlLC%r9U&jxN%EtHU9j@%x=gP-k5&y!&|f20P&s!1 zO(;0YX>S9o5gN~79XKM%i?aGu)I)<8Uu{WK2dkD!IDq?PTze?>TkRHWhYrMB20Lil zn}lpC*&Ecy&k$r%ByDhWc`XR0JxkMyh<*ZE9FIME&1l;KW)r?WO7$j0W{wxs9SpLZ zB}i{+N6vUllWbm1GeUrA#Cb-)tPp-)9rJ69F%91ByO`=NhNQ|p2^$txjA-xo)M|Z_ zzk;AfVF@Ky7v~3I2#w|Q?90z9$;Us#{*OiMFlVRH|XmdlWXG^j{g?*uGS+~dV+tV~KO2X>wAHz3f z9!V(g?f6?_qc`TlH%8mtP`E&S^`-6VyiZT;YZH#&0(AOd{~%A?qJOobz>#OHN1B?^ zier~w2+bN(<1zNKBQIb^T|yi{E9XH~zt-+UCv@U&?;~v54F>y@w_ZuXr@zHIb4VoF zu!X_%OYjM2P#^Y8ox%_iCgxUgeJvH0JgzWLaPs=-+X)GY0XwFQ^Sb+~3C z4eYjy6oLwaFD-trEH&x!S&S{h9Qs?@iRETAl}Zl{^D2c_euMp|4a&Y4_Ns*Y@dN9> zHFk6V-?TyhYf13G`XMr9BYO+8|4E9{*!DpEr^3lKp4ktkr6|%s9Ek`eHB%@ehb|fG z^e8VVZ)gWbbxO5Ow~pJdZL9V>412`y<`o4n77`Hb;ZaAOyqpI6r+8X;B(q<&8iu&A z^RReae_a3V?eH+ae-`lg26sfu4?z}G3?U*7p$J>iGSinrNB5;*t2~Bxi7Kd&SY+!; zC&r3aU=dfLuwesFzvRG23Hc&oR<10y>7+z9zvyYf`k434U zKx(udZpPkdiav&nQPyHk)m4&nA-ymYZ4doZsSw%#qJ)fV)@-Db8*kEDamI3J((@<7 zH-u{F7Z9ZOJ0oWL^iO7C2BMP5SZWP#W8yOJ`(pZIH-%WnOu`=k&#yA%+u$gxky&fE@<*Y|?0K zGfYkCi@><|Cqm@c!l{wvy-T_?(GA>^Q?SvZa#5Lcll6}L zD2q~Ml0J4g5GB|Yci9IwW;$9CN{@Mbe(%LI%YEjNJBd62AWdDCb-*w@U!ABCg&I`> zY@kHD3=)^ex16H%vtJ6-r_%^rgeQJdg#HV@$z8kwVPYM!P*l8;B86rZb9@@9z?r=x zm{@}n#AzV+b}FrE++v&j7|TxyD>9i;b9fS#(ump|!2*{~m}SEkn}?IrS5t((y&`Qb zp1(>LOY!cyU5}o9Or52t1u8RL={}>%x-Cr|om>HsZaBpwhTBXJzWuBLLy0*n;2kWH zzriVb+>SXP)iAXwd?`~YpI`@V@R&P?oc$~; zYB)FQ@)}#fbxdPi?s@0(t||{BbTlR^QzPE0JA-{iCH3$P?WNv&of2*mL&;q7i=#6# z>fA!irq^iA6@=ET?VJvVy*KqWT_}s;6M7l?Q=3H2lQt&0oowF@`({sXB0+3cjzfdj zoR=(UT&*A5o}OG|@g$au?T98%@u8y7T1g+rCDqyMXr@|s%mo->eI!?7i)+5krm0Fd z31#AJcj2ZXZ0COzQ(ILER-w#EOerJgGgki|Xp9VG9&BwjDOyZdrs|2ox72fx0jPg2mz?BZo@TbM? z4yQ132y`QqnxEGno!Fg)Se0C-a1*1R^c||WDYyR`;_?lHq$|!G=OawBtX`GOaUP${ zVMTZgGI1xr04(2xwugwZhs>|1@cqLkr-UEz@Ae}kqe;*P0~ru@Mp4ni>VYPUdyVf> zRB#9~F$EM2hVR)EE|2OoN_6PPsnDl5x>HzAI(~G9Ov{PmfVZV?UIEl5m?i1|@3q{qVcncY;&1)4+`gfpY0A8DzQ@1&purL1M=9v4@Ul>$CrMZ_5 zK%_;RO?D^09~OcAQ7AwhUa$c7>>i-4uV}o_pbw7GW@^>anM&oa@sBPt)wC3T9j@*C7B`AZ!$8R#%n8H7J7W8 zmVaU!aWk*o5U$>ibGN6fY$1gK47Gdpub0zzKoBdV7xK^s!_4V~q2npKP_Rticx3fU z{v}w5+8Ok_TcVL_S~>*C-?|6p6Eb=F@?V^gnLlrPC;!Ao2&Df`Rb&1CT~7W-AzAi? z`9}+R{N{S@8PAs0e*(u6#6kiW7XFcF1_~Q8OavpT39gEl6bL74zCRTr<|O1OR-vP& zsME61yaFFWEQp>?v(ag@ykXs<-4d-{)xrS%?Q-qSk}O4G`s2HI_v9qJ`}a+c_blJ@ zj!Vx;P8YAgx8rQl52j`IF%ZyVge(yDF~Kn%fYuT9vp4AEPp%#V~1|0o!8pjHom-=t8qn;58|KDu8Z!`B{ z5i?U-i)9MA!Azd!QOeWE`Mq0&x;qjL5Anx3%rXgO4@#5mEVhEypX`V zV#axbCNd4c1oNcH3eo-a3Q!5pgM0|uQKk7CMr7I3*GMGnRH=Q8`J+K!@L(=|-PNg8 zjQZSN(4SL390U?B1QjXFefiNXuM^VYH@QJ%pdu4i0U-7fel6Hw9u5po(7!m(h=BTBR$ERLLhNx`dgx zv4*B)6P^iOxHPMa+dPgv~tx(QOZ3y>{u7p{B+>IhS2kZ?afn;$wphv4d0=EH+n6iIV)_~JE zya}nZLpS;Syc6{-#;X^h}%x^ zbS)usygG?}y}znG_qgJI$y=}ZVA5xDo8ghL>c)9xJ4W`l9~NI7XD@t&m8_NfNgf1; zneZP%kS$sKi0lG&5gum_{3OY9**m*C&pDj=FuWGw)im2~Y~_J~eKWm%Tb z1hxuZ6HIh==hVu&(2wYqt3igOp_?w{Ts)C`H^9viM3^}BHtBo{$PO{sBgu4VQZbdA zNj6zIBnGKFb#>A6?{S_36|D6S?%#O}TJHIX35%#tI)(z^b11uZFwKc`2=12N|9%`R zgE1U%JUJHsK7&(`H0vD*pasx`_{1kQu#<>yuldDv^esc`4nj1hR~WHNXeGWSf~?*p z9A}WSlH$SLj&bgJwF`yg!oM(YCN(yLyD3xc7r|O)T$$RIh6hc{$)1>l*&C5?ldpK< zz?d}}(V9HhK%1xt`e>Ji!tC1jDP+_KL(e{k4HSR5w+Gi-x>JpP3cu<)Nx2RW+th5b zFvj$GCNtI!at=9Vnh71Y#& zl@FWF7a8v~{cb!GXJeX2=Bp#0yy6v+o9{}%?!e8M^=fE$UW7(NXnm87coNzJmX=hV zYgb&AB~+}fS01IPG>)?Uel%n^I3sFWmRt-i(}39b;I!>*JwhGHgTukEgvEv&B);bE zj(OY&Sv{2#yC^E8H@<;WEX-OVu)$#6p8BdMLBN- z;9e+wgsCw9ggh~eviMdA z|0a3hhSN6h*SLiryrA6D+vNPkZP@pW2W^U)xK2O-y*P8!M;tZPZil_YX39925;7oI zk%XhM@-A$IZ`V+&lQ$WJ^qd36wq#X5H{+Xsx#4)*296JDPCUO_x;j%?AfKm&X-j87 z0LSp`J(-?dL!VDzo{#Rrq%q11cAt2urBo?9BumCAvJJ<_d#hk=EMoE2c%L~;0v64s z-Lm`|Y*ZJwZSuFSan=qRLc_%#%3Y)^kgoyr5e0_K!#rY&N~f2=t|}(oFt_i(c&YqI zt!ZCc@khty*|T7J;Ag$S@-=*@rnWSK!`&tdr3W??7AKO`mMtJ)wJFKxSf2B2jocki zmWU9FNW*sy7XdD+d0s^3r`{Ex0#6#zLj_EydZvD8v|Ou0=B&;Q36c|a5(3@uFZ^(9 z&A7ouCW>(eU;x(;6>%H1@+B*&8LKZVc*Qj7IN$BdKPYCXBDV~e8w19_enEo>E3(bY zs>#2Ec5O&o){d;>CcX$BFW97_30JPyS9Qaw#&{sgc0LxJJC4HzCb1&Y8-1 ziA-Gy{+LR>2H*^GreFI``(nxFW{XHzEX#K_aX+C_HYdDz_a_`L7-lJRT&Y$hE63}( z!s8OKSu%c{g;Fh#y{VFYXNWxcL~S}pIUA3EtT$PX&bO-&7R<|+R`zCSU*E~VK6Xo%XJZIGXgyQHZhpX%IZpEbFm_JCnML2W zk8O9@v2EM7-LY-kcJc)s+qP{xUu<{KN&4pe&&#d4Rp*|nUF%`J?OnU(-gB-oeuMDT zxGAX0kzE@b?TvcZ3}7Bm%tKhrLHKz_Antkjt-J%opW?M6Q4bP04P%VkR{s<)!)A zKq)1{Y%DR41D^SLGFus~$VxG)e?$qlj3VPIp z@OsAq?l6`=Pn8sa{!~}Qk?+B#@;n67MsQnDU!>|lN|>rNALsGom9=}zHH_X=8_*iZ zG1C+;c*`U#3}ZWHs1y*3!{Iz!k4lQ~$@nGn-Gz7OtD7AqjVTWojiDh!?}i{Zvinhi zu3uZ&QR5C@vni;(jT@783?qSiR2B#v*&)=Dc-UaOEX!~_jAvy@8|&=oaNzqOY){=} zW9ez=j}g2_1|U!JJTJ3JmzT?&`r_wsUg^HlKaOY3eJ=S?72n|Ek=OfjL==Ced|Yn^ zGL`rlEuKF)1snYZl#dUe-gyxiGTn*$Qnv`X3I{`&s1KIt`eMi-)c0qrXXAK78m`>4 zg9jwkk>>i^9*v{EBxNy3G0#Oh0Et|Er}_nf`QyJ8lod090hKhlcjJc|;<{LH93*lI zYwfNw(H2hk1mOQ-Z<9F(dJn6umMUqgC}#9j_^tk2Rc4U|A(Wb9Je?9m_@Kl) zwVmS9Z5N7rUG5J!usC{U_w;0*(L8;8MYor~M&64RpPuVO{0PnyAHoK-xN5t!&x-Dn z^t~no88ZKV!}{I*fomJDw#JSr6l68n%Y3K%N5rLkkwc(79vbD{J@a>E9LhOIgBLOC z!0kR_7l_Jq!HS7?TOYwF}bd%9L2H|HjQVg2jYdm5^3!2yr zqEG0bON|@^g&C(Pr4X9XAHvAQf6vcl)UaKlhoxu$&^RVPUmWbOm$@IyW}`e}!6~AJ z!*S@sQHcB%xl}OAUuqA`oB{IXz%@}sWtvGUEo4qcMBS?Mk*7w|9Cu{}7$@`3H&aF~ z7o5-7-oU8@reUdYq@D$I;wr3@W@WiYGQebwjCdppUNOUH>7@+qKd)9!CB-n)+FsFE zRQm@wamcM$QpCh76EMU(IK@aHlT$P?MWr7No0969ST|^kKP81~&fvg_5<%O!H}eRJ zDmS*`mWGOE_y%+7g8=gmN?A0`#fN)L0Suzmpj#zWDc)07rCg6wHnDlMHJCCIrMx6V z+&enk;&4l9_XEkVRN2@UnMCnv7C*2SMLj6_Mnjyr#G&8{#Ea~-Wco&>vq!BFKd~&eDG=U}@ zWwK%^pr}svCdw@~ujGn_0|)?;fy9hoInB&Nsd^EXSXHhKn?iM3E}4Fc6J#oi5Jcp> zNcAy~2u{6PlBB{Q%595q*kdh3QEae{W6nM8i62HzsDls9-62FqGGX1*-uimMOaf-( ziE3&CtsQPfJX(8KFG%%&w5W2r7Em&xr#y>7e4UqU^Vd5ZX;Gy+JQ-@G2<(f;CP7** z$QUGdh&iIF+??WwIbw)Pf+q5kkC;TMHz4&7XAjEj+3Qp zx))Fc&6jE+mv0j6f##yyB(3!)*{mxBZ7vmWas~mek-8&xo$WjQm_W*gYuqSl-^Gqa zH9S@obkl85oo!>I-gZ_{JAx_l)jO?}0Q1N$FEAN+Rn9ZuDGdLX?O$6YG2b}YwM_>9 zASTD`i0HL065%y#11i^%QV~7ot7Cd9B&US-j8pOVCNuwphDU!TfK zIE3f8bnbzvkm3y!QY=+L~5Sx<&{A?G<%`^g{kf zA~Ornpwz-q)^9Dugvzp2y^i!z;BDUd#DwSxO`KQS=QXfU->jFJB$vIRO+>WacSIJeD@-8U3 znEg@2vfk{Tj{7NhAMB}&&G-Xob`KX!%S{An9OSK7E|8SJ$!BqKm6bwM#*pPLp?Ga$|afswJmDRlm+g31`D*p`@CB)D{P_c+LcU7&AN&R<_co!{T zc_bg<{*N)QAOobvsV)GtY<(o(DiQsnaT{;{c|3G9Gnz%B+aj{B{-sEK+^R9AL;JP; zwTf5(gGgDYr;U0VkF<*e)$X&l6<+DYfBv0=H5qbV|6>Lv0Q=uQ;OX@frmIt9@JM`v zjR0?Cj=7^cs#Gc0ti~Zj6K%uApZ?1*BRP=V93f7Z2UG15yD&2>sNgoqNY2*OFy~*7oN8oo$v4BI zOYRIhPJS|1*7^GyZ&YV!qCUbvfUlqov9CM&sJF;;$H~I`9Q#Y1rd)pB8o9?kYl@&S zxUNx(?wux(5a__x-PoTP#@7v*LPJ}&y2_BnYoQ{4-K_0WSvK1+WwL8L>!M$z?M}(4 z{pV+XCB3YjyJ^{Fz!X5kV(u>Vs?npm={#yJn1~L95@Vx8w#0`d*2H}yUuWJwzg0ii z0EB-=BG+hKcsnxIDusqpK1&CrCsQJ-$avOr-Hck@CS0EZI(5Pr17^Z`7g=pZq1Kg~ z#OhE!=e&LQK@2=vJPW)J{ROMv2|wki9}h{7VGP$f*EL1<_?Z8m4{fBo0y-yo_OPfal^ zVJO3KuFOpzrBSj7^&Hy9H7sV)QnaVkz!W0#qIvGAmI;-hPA$6J8Gm3CojsaoO%XY_ z5)R;ZK<0%cLoCiU8{c?v^*%0BsIPYU+9!_LI#h_SW zvm6)a`)f*xqLMP??nQB{p-RZj>e5P_!K73H`8IqN{X|vPwJUqjps$h`PpSpkgI|8* zG=AJDoFNcif@u}06rluC_%&Ym5@}OWkSOwwxG}zUM*x6{>t8&HLKRe3=Bki)4z)8Gw5;0KpyNK*(&{Wl0w7N4ws(Xk$((wW?%yAy^ zNcS*h9$U)4WlIEbhw&IYQ0WPfYn5@7DA@mLpi=n#AZ(B{0q3cyS;4>JW)PnzXRJ_W z`<$jT*V6wg{F?^ z9xs;{F z9e+fDk(J4JEAEt}6Hq+mYc(IJz3snzFN$fX^b`3rxwI@d5-O1 z(kN9~@=e1O-81K+dPyaY6&|vWhMem_Io>XZB?O2f6t>U#EQHV=%86el#-wIp$CBd} z^H{h_FfvWG7fK=%ZTW)cDb*QV7;mh0TOc0$jN#{aPg%-V#-G9@&q&`U07bd}WKvlZ^os@lL5)%4HG^OdYh3 zY*0B_6B*;`I2BWxDDg4Rr$;TQb=e`TSxjcT#D-86Q+t#L-bJ8rt`_P!J?Dva(gGJh z_tfyncxhgI^?TFei?ZVLM8AZ;q9%Is*3HFiTaOhGzgQpU!hJP+C5`Z$6?q`XoUh;d4ILC+*@h9 zd5C_Ael2Z3j^rtj|3$dz9#0%eaeK3}O`c>)n=pNXy>Ly+$9vdIF2c)sU_JA=15Rvb zE7q5Tyie94@Tq=j)<_W@G)qpBHv1iOhJR@IOClc3&$#w0@;Ps+%U$?@|CtDZQBClb zDK%a0jwCTfL~!bqDEu2us@=`I8U>Y4f#_5j?rXt1tk;`U{@t}NT;*Ni);8K8x%}QP zH~xK%$wMz+^-(Fmdnm`Cm+ zGG{h1tO;9@tj@IIzUN%c8o9r=ijf~1FdbMhhW~EeZL?Vx8~*Z+OL^aJA#P zAcM^)G~ewSL$8JTop94kn(qN5wJRQ(xaL&sT=^Jrzq)ci zWMb9a?jZ(#Yrbt3hUJ-}rCAu&8EC|Li&bI6lH>N!aBV57m0GEthh%?Y>P_94U!5AD zH^xyCNAI$f+D7_Ix=ME>gnWg)sez$)Areg9rtSCB-A2;1R`;xycEuznp(FkN1MPTAL&%SX-*`PGb(h z;Q_WUj6{~e^GL0T8}eT-D|O0SqnL|x&!Nkdyq!0Fvy|U(iW1U|>LK{Oi+N}X;A+WE z#o3S_fA!A$4@RBvl?TOAM%(ZnYf;_DMzdb_ZpJ}t*Ap5=s#Q?$6f1$n^XOT-_)2E~ zUq&)CD?BU><~=^I0bdAP4I4Y+GEWtxo?Eh|IxHL>Db~vyY-pk?Ia{d(q?*fha#&HV zo`8`Frx)?}kg1L1<9k=4&jeFU>NMivSa(@|c*VEXyNQ2}z9*C;WQfPk z%g~o-OH1c#;OlgrVjxWg5tm2JLKj*>cV(_I*rZi4+}tJjb`_E+|8q@o-QbB zSq*=B+PSnkO8U8Ukwwv&#+r9KB%4FVB+ZZt=iG{`P!YelM)+=>uOw&oDAgh4Ao8F zA0s3A5>8ba$Q2or849J7jBQmJtfjfD#Na*K#;aETb&ET-zu1I1G_-+cRo>bqy&73^ zSq3-CjHYlv1&Y5m5M?oan}bAGE)|S_w7IbkwcW3k)mQPEZOUK&Vw%emv33o7(B-F1 z5RiU^dTYxTod6Xd$=jYdAu7*C`CiF5MYrZyyXSB=^_3E#A>FS%s8`==M!5b6>v!`{ z%%}kNpL8K5u*#@NO?BY+EQyOf(>)J^3~`^s1Ev~{hFuukE`HC zgbZ%%Zx>cghtDw-c;?iDfZ(F8oMBX={kpMb9F*z6am3eZuH?jx%J%eLl~ zH>7r&iz`8Ai+>aI{zac`ihr$Y<^Qr$cH3CC*|ePuz^2{_Q2H8Kwpq1pwjiU1yMJhv zt*ndrEUy)oKUTbs>3ukax2DDX6SXr^|J%nyYqBOF>_|SE(_d~t4U?eY3v!KnJ2z~6 zl(^9{H*rJ>SAYhyX0+RJ1pMS>z*o7beD>B))mFcQ9HcJ=QE&d2tsDjyKx?w2*HC?! zK}*Z?#$hJD_(DZ%vR6=jcDFMTU5qTN0g)m=krgv96ae}TzpzL1&YSSXP~7+Y)Ry$c zP}V2^)W*#@1cijR8ET&bg|WpJ3L2&S2U6qv=aGKN%s-3k#$$U?L#R5I0ts*di}G>+ z${I3|HX|P)SeC4oNV%%|>lP@Qhy}ZgqbuvJFDyUlxbB*x-)4r(5kXITPU@_2lQoI2 z)B-TOui=Ta%Ln}Zx7Yn-n5|COYm2R)d|iLM?(C)uFrI3|B+JuA%4&Mj*wbl^4K6BS zehja_j<`ZJ_lV}y!+v1Dr%vMdF|8^TkrAjykOJIB$@-`i3dEP8m?&(qtLzXkY7&4f z%_1ThmwBfX4)+q#XnQWk`HK@@l^lWEwPH6`a<3oV&M6UZ$QuwlSU5aEx+Fir^jm1h zoexsS3Nh9m&+uf10s^;^qNmD)ouusH1O08?;1=pMVu|tleKed*oO}KHip3BgV{mFpjcS zxU#FD3g%tgE@Rw5jWhWUIEBM8>rf3YKjdjy493}Y@W(B_3m+rl9Lc|gT%;0=E}V3~ zyf@@-S<*Ph+sN!zihgeu5MLk4BrEl|4sHnGK3(?A2(KXVz?065llYy~$ zj>ggrz38hM7+W5Lqi7Z<3hmv)=j*UJGP&Bk#*ZAhaPqXJmmBkWwJik$dQ=p7;60~|CB*y;T?j!50egs+@*;-Ng#!QOOGjDN^)!uy@^ zL0i@#5Op|<`~lqKIvzF9{0n(#dTJhYogzC8cQS5cz^V#fEY+M&Q_vYD54xhxPE+ER zDqgH5Ikz#ei|?Im?d%j9S8dm|r1G5Q+GRMCxAWP;=VCp0;zJbno%w+>QKXA`!?6|~ zImzO`;ul2HPXUG65rh$ue}^nEQe`7}r}{#o!gLr(4AUXMVnDOc7)1hX&Kw9n_2mNa z&Td)WyOO_Z3;S#sp=3wAY27Bl7vyRDE>4sLanHd5+;=_{&-E7r%;Bv4hC^J*E84uWGkNj|Ifj8JYT?T}I`W(mu zPw6?6))525fG2Y>_B+y(_nO7&alo!VQa-5s&TF+KKTh9KMfA5D_};(PoW37sLvqQCD5mOODE^1LyS?8D^V#r5j3+0FeQ8Kxb#+Ds|XV@)^=;dJ}YXPa*j+J>^u zUBwzASX~U^pMFml^RakV;Jy%@ggfM+q6SIXli=k)lqiv(z9d0}vHCdOY%Gj`L zfUp5wC=n5LvG)Ydq#i-A6Vn@Ez|&nZ6tNfl7i8}gzvyOKO~%KMkJC)O!`XEi#O=yG z(s95kQ!Z8fxG4bKq%ppykGQM&KB8P&S9+mYF{%$tWk*CKiav3OMK3Z$%UOG4o1@Gw zfX*#4*+Q2ViClQL;7A1jpt*r?-x|w>b}K43E{!sp5-|?Q)z*uxs4a!200i%Hq><*@ z$(MmkoG=%o?nmoYg=1Q{UXM|S&x_ah%;ufSY9X+YaQb7HxZr%&a?O0O~c2D0k8=j|8efT8%gH*M<<2&|jf~hIdyc51; zIU?b~@sEu55)CATG~Js&C600<*-szz+l|A&i=%2ZEqJaCwAG+qAzI7 zA!m)?iK8+A&eFS_s0h8Jzt z&h>~82BB*}yJDoa1I5=hm8Z1>vQ7ahnnx7aIrlSAQ`O=p#i6D zlcA}zP)(R$215gPK6DXl_rE;BErxR1L3RgA?l@`#JsdHGFU0Q%4d8DNv0ek){fKnW zUJP*0{vMF}!U&8;95}o}Aih-HDf+?-3@GlaelYq{K=?Ai?ZZQo+zN35T^c!ZKlbch*P+JRGpm<&k2doDd;`3?4db$MFT?8*q{`P=7T8}OhM2t z;)4_`dC>vh`yOzOwh+QZmZmLEiG_g|zk>Nk%1$UuYucA+fZK7^AEAW(%1@ zY&fItB2ELKR20M9AUm#fGyE{%8yWqoFhji&#t7nC>WTl@j{=b2CJ$flev+G}MX5p; z5Rso)a3KwFc{>o}fUc#$4U{`ph$~>mWvC{kx+FmcY$UFj83#HD`y#gXQtJ9oPAunU z?3w~oi4fDym!YMzC(GJ&8)bac^z1|gTfX!?!LUyw>wY_BGR)sBgm~H zg{q2tO1*2k{Wr5VLD=Cs6B+G~^Ld6U*8E>9`bt2$dO~|QYzj-epbwS7n!!e@ubI3( zFbguOHm_$7fA+#<;8RKsis}1fO_ZFWb15N0i5HyAKO12y_*koul+?8>#Q;cZ$4084 z6!E_t=B85voVxqCH&1mtS<9Jn_EEn>mE&`g!b1OCtuohnm5AnPS7J)Qt0~har~I3p zAeHsvi~OYfBHuN2=sRi?_qp#16UDsTLkBw?@Pnw(RtWjRXO>!lc`^tNxr6J5Gkj$H zLh#r(g=k1PK>x52zKSTu1Tjof`O5hD2QPTt0oJ6CG?HJ6_?b9UrqfU~X0#d~xGJL_#GnM`#fC2UcD#uvas+0bfc(!e{#D%Dw`^#r zS1b6_5#i5Rg(u(a0H`Mt((sBWm_c;Ny*Ylct`n7$uEaB>)2jISVj6u;7y%2B zev1~E{GuqZNew3yU{P}1Z@MW4*3D-TQ3Z1N8t}~TG5E~k?X6HOU zB3Kiae;5I>4mTEs)G?MLEzrG^OChIJo>EMkMu<1<#`O!B4`%3t@2gG=WAHemb3R+0 z7NnuWRtfyC%Nzv}%&;5ZTWjA3#+)*DnBW_&ed(F-t_gP~**T7R#TVm@k-yZkB$d1G zgHv=!%hSt!hSI{$*<+#>Jdb0*4RYkr>jgt0th@w5s&} z`3wFRHn4C}Ls%i|x00pr3rc-8c2yKDKrmAxS%4tdlcwD0vCbGD-Z=Kk9h zy3E655is<=#~xgFLX^Cx*`=tcSP3B}`aoAb`U(@1QeZj$z@?m$AA&)4Lbp2Pu%7U} zNRxScrnqt);w%5f%H@cyvZ>4)4Z2)N!15!=VM(^(o(>HYBcsu?0DR~Z}4#ks>9VFOqo zA4v-LgYS0=8|}^?tTTz1+>2=yFE#5iTpksL$tFpN@le%K+mwR@`tUvVzEYR;!)bfW z0TI-qOnI^Kzmx7Ktst6h&=z+JeQ zm*^>Mo;ZD=j7Kl)oc=zYr>korzP_5Cnw}@NoFf(ncAP6VZ%p2sveOC}z*GRB-R=(0 z6$vr|5Pz!mjA$RQzEN-*8YQviehOuENN9&GP`4$|h{E}#_6h^mVx1k%ZqeRoYfJ7Jdy;cYXsSNBBZ^z+Oc-~h>&0G<+jRi+Qt>86+JBTC(0f94kO_BVG8Vr+(FFJ6 zQOoQEdnBefQ{I$ZvU+m%M!xLpzPdO|d|N-iM2-#^#RWe)aKys>AOwDn0z*u|?90;m z$S4ju8gM+Ko18MZh;&E1x9K^6ge7%#%8_@V)2r67A_y#7W-P@sVJ6YLl_TbMgjo+3 z1==}`3_*O%KXNz0t`Wd0tM<)MOVPM7QUpLz?TE8d7fcGAX|9y0y)9$*^_*4AW9aOd zceu;1+ids_QpM@%R%caOAP@34H(WCiLx!pBq9n>mW+|zD(eQ|hZ0mQZ0jxS`GqS5_ zF6g`1Rd&3}k>ZLb-Aq6`C{CKy+q4**MT?*9se4Sxct9X&yt^Wb%E29T8AkC#m46|l z>VLxZMNH68Or8Iu$G{J^yGo=ot+1uaE-8!F|)c`BE11iL5XDsjGTx zl=#%lgKQ+6MzL^YgYwsB=ND)QQAsS^3xAv<%7Oc+;NQGO+rUhi0IcP@CtbIr(U zUmG+Ja)FuIH5*hr1hHm?jhF$83$KhS@dLU_vh}}+pzjS_LU#Y7}UT%Cp^jf^*H=;eO7?-=3H3&Q5R{~+-MzY7B z&D(64rZvH<1{}+iq&zq>p-fkPnhSxuE~Ve&XAP2tSe9b|G8&=Kk%en2T3*|oC$^~A zhI>QGkW9b#c@awKE=-s<4x=aS^J1yz z3b19$*lT-C4m)KD%kXQaLu|%R_!60HqA(W%@ zRAacq%zx4(L2|-_`_nWU=ZpvOFQ+I*@p(#M^j{XCd{KQnbMvJ^d{`0CbJRZ+K5>a6 zJb=Jw1-)*A=on2l1_NX*pgQ83Hn0T_S1NO~8I_UMtb^QONSId)@lvk4Hv)Y+YX)3N z!D_F5;pmpbgT!&H4Z9t*0z%;lB*(Fo-m#2GVjs#Kqy4Z8t6g3nRuB4T6zp~>DQ5cs zY!F_u%6>Q@R93s#VAl@hldp6kZ%zv_AV|)KtLxdl)T;TYggfm7Lm|;QhAI^ z>lS2WZ>k~V&nZQnp9I>g=A|HdIeY4=l28b>W=hrGO(^|T2>L2Q3y-8edRGX$H{qE^ zD;wl4=0`Mv(xX#|soOPAd07x5n6OFq+7y}@yP>a6Kpyk{!fmK@>S+xgG%H-3KGMreq zq~y^ks60VRMycCt9QgDQ^jaG>BL-M>(x*$s$4z6E0O3_t0a#fm!o90%>ht(GLOK2WF^ntE%u=##VPW2b9tO>AmerFXK5nHCyf zC%<|xMs?}PvsoiAWMyI}Qfr$A8XeEd^{qwu)Xf7k-)Ih`JVWl8M6D3zE@d$hFV31| zbt{j2nun5rL^5oNudUWIOUKz{){M$CgH9ArzzJSPtQq@iq% z3TzX;A?6|`l)X>AqVB{xDX2ZNsV7j|A4$T6Rs$!1E{p`H@5lup57ZBT)Y4d-#P(<= zT-Lxi!AOS351m56Nj7Y?&8L{O>r4#<$nn{elve+CKUS$*Zk}XkH&gZ^zC=7fCAZfQ zU(KU+pQ?grcjMkPnAXKOYLPNsK3k5t?mA8g>(CdrCvG}T{QceY<|5HfVU+#mnwmD@ ziraZ8TR#26YlO1*FSgNwcOvvl)thi;)F zb(k~$Xqr3Bacj#Yv=-jWWCZq28n5)b$8~a-#{|FfTjZkT+pj`j8k(2K>&LJM@y;Du zLyCQ`G|u;{w7Po^khgb(H|SkL;(s`4w_F6uZyDDQpXDDpyfIa~w1V1Now8psy1?n^ z$+=t!HUEjO@WvY6kkcN|3=w1t4jViq3Vl4$O%5c*QR#aSXI6a0O?N^|ps!=3+b<}F zP!lKACv@zTPXlC3vKiH3sB%oa16wERYLpCNEj=XcXxe=^Cvsaf%>i@o0Mg?;$t#C~+$zr!6m0NLa{89QH%Zu7>oj zv~fNNaKs2b&E^I@5lzPJtungu{elFQE$qJ(8VkU%CTXeZ(M$Vn?P}Z!&o@A{O7avP zuDNiatS_74)vDFd*P3uKi;HA-5Fhya%c5dRt)|Q)iRZxy0nM zXwfH)6K&i&gfnueW_#jaxnMrsI?`_YLad6z_JV6}iM1?h{9UOEr=Z>5Vi^oqTdLgN zqJuNevEt}7YbN@88rX&f4^@p)E7&l1&fhXRDv8p}%Vizez zU9IVz$=Cy?VvO`b?JlmlIbE!dRRa${AE(b{7D2&Ld+7C-1e*i59tALvrWKq}FE#J#3i9QzZdS)$CfLUB&wlEOB~ zb8U{Ukuna*K+;}v=nPwAP}rcwE?uL=Q^7LGH#nG5!P?CAo-haSAiVDbZk?ZC3SkCy_|13-d*MCBC;w@bfmg`kt?1( zNEkeIDC)~DZ*fhG_g#94`Fydj$K_qe=lvF+*$+BjzNy%v2$Du(0?BDe={?5!$8{*o ztphk+xI46$OTo=eF)x|5#|UU+TV>J(F%jTxn8VbQL3m+qInrqs9kUN)2fk%m!}rkG zH|OOQ(^|Xht~tW#q}9`yeWsrmV&4__y$jRk#Zr(HFQh~Vey4`G$%1g2DZwl=g2nS5 zWQ!nPN+8sjaDWNfD07T48QGAGsAqrY`ufbOub@nEK-`JRx=(G*@Vow8yccxZtFA?? zxRrI@sI2W=bZY7oDX;lmytj7>ST!Y?^Of+|@K*r>s%qydF5xfUlRJBhYU?U4FDs{W zHgz|*G|oMmU#h$MEN?6L0$Koqjevi(wg1%C6jz>E@gy4ruJ<-GHUpaLn*UiF+U!~G zS?^gvH{Z5|w2JJX$I@B9xaulPP^1UXX&~_5f0JTY5nlu1-g9es@BS4sOs$%dgjp9Q z)L`=`G(5LHe@jitGPd3qACFB^W*|Szp6^@z6Rj>C@QiptbN~H^%DQYtzT?0P0&<)9 zKN)&i{uhSc{}&&arZ^xoB!uF(W!)C1emN2&Ig;Wo*sqET4=QZgXM{#!d}xm5&iTfL z>>o%(UK@F)3~jy}!g-7M_~+{ZZXdJ^7d;H`z*2`+&%4rO+<9I*U@TcouE0et6;;_#eVXHM8?i;P>;f`X9Nr{~!M1e?Wt# z#-^5LjH3Uw{q9X;c+q>8HF^llk8%S zEj(R4xn#1{(iG{F{QK`L>O&;gcM!jFg}GWYQ{++7GQnc~n%TErmyITie{U~G4j?ag zvM_#k(sxrZ1^L9j1%wqc((HfI?C2eIAj7|!?ayZ6LKv~;kbXvj!V>=oN&Jx~Al};b|)KD{IcbK6y`5||;p@xvx#3F{_;MdH9Z=5pC9|CbyT=;7tFy2t| z?Su3(91fGyC8q_MjJqAP_Rm#a>QFWez?5Q#auq^=+niYf`?62RM?z(!1*t1t&D457 ze|UlED(QGV?qlQyFjo-_`b%yU+!oDIxh3Y(JZQFfgfNJcdzSRa58H)>@}9~{a-OVJ zZ&9m;8|fRNDc*`#`0$EauNaGS{OT>fTw=i3inBr!prQkYmm;+E_ivOC*=}GD*e`BcO)Jv8>CP?r zjWQ4T1>IIxRlC#5AZ#kFrkO&-=1};Jy+_Zo@NdSdQ0Ugt@V^y{%0am!E0wtM2CLhz zouSPR&WLz8yUnFiobl75&I&LBN^v66O%^PrURpJJo`-!X9E7Bb6Q9C6+R2_m3T-w z#-i^+2$XHO>O*g>gAT{Kurm8dGzknO6(_lT$h?E%TA)vKs7_zcuGKq6m+Xw!j7v_G z_l0kjN!?P|XjL4bD_qzR$1VC<$|N$Z31=5K$uDXjIOk_NdFN;HQ=Wdj2A?2SoW3S& zxQFR7hDKG@MhPyh&k@Kj_oGdiN=0>;B9NaXpel%cj$!0m?&G9b5T9dbiVilWb=ogA zo|l>}$xoGv^Z1&Kq64v60m&c+5BpG3uw=8WkZ7Qv5EA8n{>LZQQ4&Zr#*i;G#gn7xaHoi#kQ_JD(vyK$wvJr?1lg z1~c*BHC0AT_WvrYE!wcY7{{3Z0;Jt7QV>wUAV?zNA>>5{X)>~ZMi2}AgoR;)Sv76s zl}^998QzfQy3p6XHvY!7+UVBMuNX){qLpJmTh`cJn>pCEyy$Oz<0hW|nVWNNkeL(+ z!uCyY-umqM-1^-9+x^B^9RB0?6%3SE(Fx@{vZ0#)W*8Ozide7^LzAdvZ7lSQ_~C{T zEPGhd-Xurd*H~GDLX2TewWy4sZ|pzmN;2U&8M`SFv1GiFXHND*9@o#D22Jq~8HqCK zrkTWQjn3Xr@G#i$!^{c7u~>FpRKr3A~?`{fq8%fn6Y*R1Hl2Yvf2Eh`uXyHW*f_;*)Z-Nyq z#^@3r4-eWe_m|!t99F07@cQr6y_$MQ4CSKtMZ&F%n6g8S$!1asMZU&(F^@K^FesCI z*JTwg%`BVKKb0rwNo`Jv8jK3%D8El=a(xz6qN$D%2-3=d_Pp}m&L(E6>a|I@C)9Gd zp;CvnfcGOHh>AXs}I7Qnv0mKsr@wRO|&OidmJ+Y_`rBC|dD4+c;i*{1O7v z<6_LxUoD-<9K7y)E7F(N^-4^gQiYw)M;|DY=?q(&R?SP>l^h$(XapAU&0}x#kAa$@ zF8>J!RLRW%&9(5EWacIR(#cOcW9M|GN8Yh+@SoSLc%pw=oo)>AV$V6ErkYq)A)lPSI5n^e-u5m zhcRSg!;Cyjf;?>qMSc8fyV#VqwSJz>L940MDMjSi(!JAPUMnvT!J{~#w6!<$bjk3g&jLG4l3Q`=dp~9tB0llp?k!a7}X;zH5{m zs7-b;w_ykd z@(z+@ksfL6G~W3d;zCl`Q9s|>mQZ#`&PH6?P}&4qsY*X&hBc#0sSsM5QFBA_rVR_0 zlb})g91f=3$FX)s2mPMmCdDy@t0EVzNUn-`E{)Sy5h&xk_H^xfLiL48 zhIr+5%X=!c)*C#gLQTVXfxhe>%wQt>L7BDa4GybL{JTXcEUHI4S7|$i_vBH89iW`n zo;mSthXmYiqxvY(yrtK93})OmIlerQ+o2v-o^A0j3Ia`z{vbB%gebNdX49ZFQs7_E1tbV z^-8~%Zj5*I=%zF$D9Zf1vrG0uYlYp5Yy9xx>17l*NI}rgk{TaYXK`w%eoKlclFfbi zL7DYd5ublxRk6uztU*PjBZ{X5C)XCesD~&>v@p(M7;}g4Ad5Qe!s8!hxPU*F+Su(_ z{xjd>Nv3as!_?{ASa0rAV$9*5w=~g?qDG)8N;sF@TAxTyqooHXpr45SLwYR#9{b&= znZ9@=DE(SW21)Q?IAG>AC;qeq00BIAYp^f;5FHa7dGuafH{P%-r6cfm#45S9<#Z#pOc3dvQS!6u9Jk^wno%`8GtaK#vPAZ| zTdtM@fOr!$s{bxw88tm(dN2K!DWT*^7u_z)vFt?fRgXAc%hjsZ_1L4w1wD5vRTA~3_YJgqKBW5wOgPZJ?r7hu$jSOuXH zPX0rlmEBoo5+Y{|)raTDRQl&$G7AHibVbsZr{5vFMX^nK{Pb00Xp(Kh4@~a0foN9D z)dYLI$R6#Pa#om?qv)yxEpG zg9(vU#3urBRbu5)6zh0e%Xa`8dF8wM>})G+m?iCiI5B&^pZ)K>vIii+pCm184HAIC z*=(i`wt?BT9624Sxp!%~BOgKQ3?LLWjc`>8@lO+TzKcft1ne!_qKP)|l8=XbILoGo zOWd(*mizj-i48#xkqZ2J10v0Kq9gl4CK?|faXHrGS8e(ko1I1!&)9W>0t0@kx@Pgk zii&*R7?L!->Bf&I6}}Yk1NHmAe;0J=KL#Tu25>?;LT>XrY8ws#D&wC%Elvr?6|ZQHhO z+qPAewr$(CZQE9*?aAlG*E8|OJkinJbK;!1f1ZeYZLDkWeeET${|I(zf_kQ8>14#B zl!5j7IB?$GSu5*75#9ahMx(zyn?L}tA?Z6RfHATqbXYU9z!BJLxK>q^hHQe9t<0m= zGQkFkuXECi!zIfTF0iZXHQwJXPmxW+PLpVxr2ZQ2l^)oN^-~;jhnVN9znRDumB7^I z0iP}rmam-0&wd?7zwbwa(lqC9@x{AW`bOMhoSqC%EqU5IcZfj%$C56rz?7)bk{vUe z?BadosRVa{8(l2__w@3BAs^o%>w9I<4OculZ(5Rz@i3US0SeWKOZsPn1cd_6aL*DB zT_j~$-jMmHMlAlxrqf`0+!FQx5ZLE)zYeeCc7@^gjXUvBzI|`uf?)A^I{riQ>7T~x zj^j$c5OTUR^`?y?>=IpyanWmcDvrh>pp(U?Ylio${8UFZMjpIV=sk5@Tp>Y8X`=8Y ztD?6Vr$A;C`;n%d0^>Sdb8Wb&GfS+$3!1pVh5@!p_->ngw3;61q*B9i*FfzG`zl+)7z>w;mf}4!_u`r<7LXHAp>{IEl6Nl{JgW2PS(ib^fPkK3B21S+ zjJ?VuTo=p}6mhV6tivE|Xki}>uk^j9nk%$0&F8iZT^D#_RxKw1x>9JN~By zM|CHfHB{F+d2&r~z1c7!Yf`qT?DFTL%)Mxgk){a4RP{hr;tY}9n_|l0C2P`bE$zsc z2m+l~{2yAfxW6{da$76e#x!^4ffw#tekcE)9C%ex4uM=`vr?R|)n42|V4X`xtMpeZ zV?s9Iimt;zEhDh##I#hdjpJNH;5yjD)6Glk{UJ+(`m@6>L4kx{`qXjJE$Vg=822cv zA+Dk!6s)Bs6}s}-IKkX(Md-Q1Px5)eZeFq_qV4ZY$dn(IaHk3MJh<{faYpq+m(651r)XZW5$qtEgQ|dEr9d?ap;hm>HfBDONoHbe(A|*O``_pgMyv zAA$tmQ~TjHK^?NL$%&OC!b_rgBf|*nBIw)Vu6T&RLs1QCJpdFH;1I0 zTmf#8371__y=-ixxa32eS$R~qW6cdevuF%`{o_Qg7%m%xCJ047h}0F-*o{(lvMM81 zo1L-!mZ=IUU=bgQV~7D^25zpV|ARLQ4(NhgwOrJN2S1aQRz&{pw`PfsK$&tWs9sb`)$ij(*f_S!zpT|@P$>2M$ef8Mib4&G~~k; z^zp?tJ^ZVTb7jb}uYa6*q6}9<+QHlHKndcvCTK~6GPp1Z?o6=(A zrz%4#V`|1V7%X-U2Zg|hKOP`8qL3gM95{H~Z$Aw#BGS6!bfB4%Ere>kL=Fqwe{i7!LrltM=26Ue6yTw*Y4al2yD&G9Ey>cit{N)6oT zQNorV30L*k4oITYLjVp1C`v^xsXjI zYMO&d5FXQf8n2^N-My#W(!0bd5#%UEYh?XQ{N`I4etv4jdKNE!^bGGQzNsiv3YF6+ zQs|2{#=|nr+~j0bx;2A+RKA(zmgvyj!$awIQ9BhlrpcPP;Z2;Ql>MVNO$g$oX;NTE zkwATZ@$K(mcqJGaq%ApKTvE3vD|z>AJwsYrWMmf8a3sIdU{Y=Ku^@r7TGlZU6EZsz z0wsDICm=u=v+754dc=&%w6`aWLa~{i3VzBi%ls1tQX$x zRH(U!dKb;qqij-dSsP+*Nh%l_&PsRU-~eVEliiy0v$hz&V5yo9QLdxJSVvTbbwuR( zgEz@Rj(0FD;G^5qYDl!_!XDe^rdk$UVY#w?`Dk%4LrrX5 zP?K)7QmJBginZTD2$o4z0OiN-qZQ55xCUL^(>pMjZq)&8TO84n9wO{ApIb$VOWT#{ zv8=RnKSVjiy6#pCXa!#rDO0DZ?A{!yd5v>h<6VT_s$J>F zYHLZe^RS_32KEs4`!m{QL(TTk_X(ue58S*a6%~O8-Z@h{!!fK;_9(c|J2_I8V&iPi za=%uodhT42g(q?vZT?9l!$lQH#rvbh9na6xdV|%V#-unnv`rNF z%VicTga}Cz!%ne^@^H;6^S#Z;^o7@wNZV6TQb&Jh&J*v_g7Pl8p))HPaGYURDzD`s z#Iv3|k|vs$+1*PqXZ7bSJr^3VO7Gc%de(DHlrG*qCL;$!Ntq4yC|t9JmVQ|-AEW(Y z2zh(9*|}BpTrb|NAz5lJ!+q1TH#f3KT?l)45*pSr7YcvWX$p5A{FZkngfYySQYe(H zhkf_=u|7x^pGx7GK1Fgify}hU)Sy>XNdHo)WJ2vzXXo+m+M8&%*j3f1K>(g23=CCt z-LrA#{m^rtZOCaH&IaZU%84^LiMec*ZX);DEv`o^Z znvH^}84sy?-EG`1&C z$7&gk8fem}(5AA$czIlg4j@z!OWs+;RoK27gWEJ8P*cGuWoc0Ghc_;1Gh?I$lEws* zYC7b%Dke|asfG;$!%T)E7h))r=ts%A6(mUb`wR`*!r>rrNdY%$*`xjkY9G znX1;sZ&9Zbi6IdLVWFzpLk)Mzn@z!4xqfnvDrFq#a1Z%WZpmfV>iS!#I*7}5+9!@mXRKtLt?mx3Baw424X|qoBNoUQi6}1-P{#Q@mLnluPp#a0dIeM~_@eSa3b=B12*4Ymg5pdI>4{GnOca7dcBCO2|p+4->z9~`pSsKJE?#?Km@Ea2BspV)Q z_1KN(KZm-6tV{5gtW&Hy553Fqledh+)rij=RgkEG%!tR5Jy=^FGI!$ zN8PNXSq9px(%${z9t-z3T`&kGTP^G8Bs4hEDqK3*=4p8un;N$-E~bdyFKh&|xy81^ zoo3zlAy)O#jlrYqJ5;g`rv6fu+M{K%(WQWBc>E;M7O9 z@|m>T9_V0+sY?s8Tsizq>aqFn1{Fwg^QX-!tdAwU`s8c7vph>)NxhMPgc&kRe& zL_cYS%lx1{QlR2iL~N$!cwVADrQ(YdWV3cgO(Xl4v3rfE%p@d`uep0$3Gqw_Rz^#_ zvs-QdY)ri606#h1Nt@Kgsvt}Kfp~hX<6foYy&i`>6is?hDfWH=_qI*2fI_X+wh6L7 z%_grSEtfqA`kd%tf?i^ujS5LmSw{-Lka+0&O!n&tO&c9X_jx$~B{xYWe-~<@Zl{HJ>t%7 zDf>rHxcVz3zNYc(=H|xno`56mFrcGum@%BWX*(asGuDtylO+Bt=a20cueP{yH#geS zl8Q1PI0v+)<;egUoriwFnvACyr&{G$9Ewc@P$^4N;n1dt8Nm7Ga0{d|xX_##Fmd@_ z0^~{oKpes%p+Tgh5Or|OWDI)AIsbYCiGO|>4H|4q?`P8Ut=3cJC5eZ!?x#EtJ^Yi! zGM-$|WYbeSn~%$wL&Sf`id1fFR`2CKm=+|Z4H^O`IS4}}xYi6$yS`Dv7`wX-;x!6x{eA*F1O923+O!0LGx!>V zToa||-^3c^wYHUDgR1I9!RyY!n@PRkoDJ$k1MP-~UC_vvmd<3|Io zK=S2=p-WeaCn!eA2gbyJhD8g^qS*j)3)Zp$cj!WZs~*r+pvguU%EqW+0f7_rlLz%w zGVtuR{eqNuo$`b`Br$Qj{^?fz^TqUDGjI6zCza3Jya_Y4aNP)+8;NM4>Uz8mwc%N( z)jV^MJmk25Z(!t+Zcm?)>+>)x9_Q_{m0T6KT%MPXl2`z8i?*jOKx6`1;7%l4?t5HvVSpDn)CO@Y{eopz0%Vz>NhtKAu=es)G(_m2a!OM4bZdut8v)aSFfA1TL zwAAgN`@A5sgddg_VQ0PAg(yEXc`QB1ssQ&q$jrb8{iHz3+%(YNE`Ke5<`Lkjz#l^+ zjJwps>^lPI=vDd<#|JV{CyBGJp25aVsk4)q1h_Q0%fk0UVMAQuag|sBT(H1x?aac$ z@wLWbFU!?OLFdN2B57#08{mm@tJZhJ+?wWl$+bc^r?&_pF8<*NE=bMHfJujZUV^PD~cx66p=L%dimnV zS%i!4H%~T5ArGVk8RS?3mfTuhPQ#%;gZ-S_{qnFA6}4NEEHQAgbbm>k4YI!(Bc}Gx znj110i|vjwe6A9o=g1h*U=S{#=OcYA2xM{ypr3Y+{%m=ZhJtQT5jER1d^sn2yd>w( z`POUCCX+QLZdd)NfWnLwgZSHcK5hV8 zK3)lynAm__Ki-YNc&EWeE<9n-251EbefLP6#+-lP27U;R;F7^SqbFSTDbOfb-@lP& zeolkPMTQ4o+p`6B=09J60ep#1y}|BxM{OF2e_f+&3d%q9@^=h4 zf7uaV`9C`fGw;vqmN{$sKU+4&8F1|XG2sd=HVTvKzkwpZB%n_4Dnw$%7Cj}0rLW!G*mYi2*!yiXcN3(C?PagWCyYBT)9 zJ-Z`&)e_Z*0#~o)o@`j8WPIu8DrwOJetf-zapgu4`}j;N%;Wbe-~quc9(9HYJTIb} zg7{cEWboszJfmN)$W$gzy7JSx!?Joqx^f5J=t*8`^K`;k#}CHR79^6+^q^)MT($wq zf^Bj5N{3|gKMVC5d{PS#53~}*;rQ97cMzp$R#UR9%Y9T5#(^_u!j*$@Y% z>0?-(_S=w*B)qkM0j9P`w9em^w|3B6B55w{CluYH_-U5uXJu}=6w_W(=r9@Rnj+v$ zILn|nN+4;X>ChEenFlict`GgaVh&xxc$7|`axA-XpyL|4`0GjkC^ED?HSILs>yD*^ zJ2Ms{t%Z3KhSp-WK9{2TIu`k~uh=3@ivceg=XVlcU0JII-;&$qa9Nqa{25w|h{mcB zRb)YGhO=+eQc<{SQX57MI>?6vUQ+W%|MVzZe3~Pv_y`9DW;19 zN-fJF)7M~JShuclg}QN!n5On#2#$kO+|RPp$^xzLKdG`Q;}ToB8sMIAePd8s9fblx zC>9go+FLM4((-GqLqK*wN0G#a?t)Mi(wY{Rz3$xVvN zsWd0RK-&BrVC-p9*cuIK)qTiF7bu;q;G6rUKK|9MSLhH>W^`x^u2YXwjlvGk1IM83 zkJ}fgojBT&`_rE~_eC=4Jn**PK?Ld99xl&NEuU6A$=~-UC{=%*(?Q5B829 zRjoYcRl|qoW2wU4ON>VE3z}5ZBh!bdcVUO@?m9YrJGOsKS%iH($G{)~04)Bkygl!K zzT)_QC`A2lrN>H@7gbDUq)#1iDY0UZ+)C?Bvp|SImxiUt1rPx>3&2IWn7pN7I%1$v zsf<)7`|T(1?WaRkNp9-1+5PEH`Lm~>7y)q#?%{rYhPy5Ar>(2@^|$jY-7kQcfoS;( z#FFv$`nl9uIQW%wHQ(4~?D6}9+MSg1Ni~tJiShj;!<83-DKb!(DY2F)Trtw?{1Qa7 zQBeNgE0%~1?nCkEruR-`=-e(3A^B?jB13K`-}TS&Ao9rye)!+rE{2-DC`Y< zymiI;+ZHB=gUJ!#tc!_(^2(K}S=-}^=fajXdX;GDl?wgvsPS6moaVJvb96DoCD+V5 zuSoSQS>no4I;`T?4Mdr##CgD2Kd3rD>2mH!dVzIkEniBIy!k_*h)TLq@Z$; zv}s9V*)$b?-;i7oPNqK#_S70697_r6!7p$n57?4ZHxmwNqV-vx0y48k!*z?XrRw8Q zCxbL3!w$nrbB*UGJvKH4A_&~2`KLk_CCTdb_QZZ@Ycqw0u#XIVOXBOWUcPCMQG^uw zRm=83kMe^ElxHCZCWTQDO!NWPE7kiX8&oyD%@A|(zURbsbBJ)EXf}h^7;Vl2_Ix=v z0w92CrpOL+1&!1fp+cgCC5^ir?N zr|L3zcB>#INI^bOW@roa0sfX?25Quggedq+g(9G!aZeBps?zTnoQ#5aB4OQ0sC(k4 zVuort`a=*NMP96`P$yXu>(UpK5}~J zW03)xY|IEMO58Yp3v`A3z~%MEg<3&+#f7ZiI$7$@wzqO+q_JFS9kyhQ986qzHH;6s z!)U>VJ8UCoHT3OD8;3v?j3ed)2S0p6A0^l*Dy56ccEeP637U=4&jkq&hw^$$GeQ&7 z&7s_poVcJwDE3Sbp#eQdJ_{!z0feE4oilpGeap)-oxBYLHia3(w+z@XT0&CgQp#|9 z^D%JdZ`iW*3bh)>ixGdW9!n--8haNYdb9AOFG5<)j)7ovh7|*!jrXTj5N(*dqy`}| zL!sU&Cb5>iR-_?Skvke9DQ*`Iip4a#lj)3}tPQzkNN_C^3+69s>%Qr=!{N45Zf<0h z(Z#o@3hn@Ue+6qdIjcmoCnp6Wu%;^_-!fO7>C6HASUy6^2durV3OoG4sM@Ax_b1|8 zZ3%^YUIU9+laj7QHC5mJDNdO8+6dnoMBO#*sTLMpLs|U~H+5bv4DRqXIM3pBszqEj zWJ8wepi5M{qe`hf_2Z!*|vX=LVJr!+ie3$JDMi;`0>uD`iy|*wEvlrz|6Uhul7i!DvUY^Bg zU|$E1kb5-1l74&J*R6GXTjDhPOz_X_T}Bj} zCiz|(uJLB-@IE(~X`tP8NTsojW9rMnxG^q^=bubhRj2Rhlcu#7#ZJqBRWFFvyz;;$ z#cSncc~DkR!nOxvKCkYIW(9$k=ciwiZtP6US}e;Es@D|G9YaqXA^sQ-LJP{F4ouWd z4vk5kk6cxp;Zw43>zk|2Fhi%?Gc3K0RU(EstXYH9$98YmI1*kFms21c?9oKsm!HUl zJ+vbgK;0x9FSsw*uu=;X`(`FTmY$>4wy{@H@RM%li3gpAdeBJdQ~?*T=Ws|zfXsR> z%npc4k-1NVXo=(B&x+sSWTEUhU z+3}kdw$ruB!NFSrV~2i~(C6WoQndh|MOfw%yNED7l1?jsn{M$T5oMEp)p z4(0~VPXC&~PK@T4{2pNs+-^v-Hdui81cvpnzuAZn(cnMN-SJM75*)h}abf+i$9ezp zNoJp)<41aYt9RsS>t=gJTMbY}uZ#w7B9qrt89#Q%QN_6((v)~u$+o#>nr|6ZVavTN zg45Q<>fnH$Z>#E!6o}pD)UUY|q@9neidjm)&y0X-6=>(>;qv9EOOkDA5+DwkwQ~O} zq&h$dX}szwaif8RUbK5V8`ddIO)TV&Mkvs`Z?IbvZjAGIKo=c`9}xemDiI#c5QlgETJeT|2Q=OUB%^caC6YD zCY0EA^7B5QqN*5P*Z@c%$?KB4?I~-2_+j!8`FHe+4Iv+)K#Cr?bWo!s&wlEjM_gva zl<*~5+Eqc)C6J(@sViE3Ae#VZF9SkQ6$%Yy0ZQwk>E*;q=tx+{4r4B(x|A}@QIu&m z6)vT{)lecrwMS731~rqkPMVscG&;uz=c1x%VU|4xTZw@ zsFE>q|9U2`=sR>hrxBQ^2^E^kn^Oe8azwz#kf?;4CdskINag*DAJnF+Izz|R*YIdN z)Piwz09nF6^}^`Y{ZGIrQL^C*z&V5%Jx}-3!PLs3>v; z{xP1e@DJgjSEUJH*nq6-;aMe*q+GYshB{TK*7*5ce*{5I$#KELLeqhjC_=_qu6qIc z__XqC=AEt@ziss0pSSq8@q8?tA`p}xkD87;CUz!s0~B*mHdnT%Js5?g)E3bQ$j{o@ z_}iggbITqLHQ51#=2-(|nLCdJvcQ7+N@=uV?r(VpLFZd%IHSVGaKuCL%@o+1YAV^q zS?Chp=<9D}O)xHKG@qRbxoe9WX)<_wYC|xO=o*x2rew4?ds+d8Y)&RK`8*T@XiKOg zbNz}H3Pbf+WEtMSJ56y}$WZF{7+J_wjsX|sNGEb*OSPqUfHaQaIE7yR zAv8$$cPh48=V$Nz@#-+nwQ^A~oLEWh)qF1MuEN`7)?$;0lX;o&GaiRbXhGZF(K zM;?CI31lIYWuA$xJNmx&?)LDj=U~Ss=0=S$S{RAeqQ^sZ%1x5Rad?3jR9D0;i@f~U z9Q87-igQ=$SL$93=SGG~m^JS- zL-|uL13Z;Rf|wcWcY~=K3~HMEoxL z=2rR!R>u7Q3ci&J?J_|0a2b>S{%~LcPvv|PKaeuW;K9hl1o$9w0SaAdWb6*^gn4v7 zeW!B;@^*lp$p*IIe^7^*n7VYf*IT|_d>kV4A$k%Y#5~E7<%gj6&520`R0pEJHh0EC zVd)=fp&!zKz4-T61*;3piya4#jr4^1VhXvCeb9jo3SsC58eTjFBKnMnbtSRN^Ul^S zA*+DzTReoyY1}tdI39Z$Fz2p)E_FDnr0$~UvNgyvnB35nle!_A8zQ3%@*X!jjNtvg z54wA>+!k=#NI%EY5Mqe#xk8fh>F&|hO3U(Pi1?>}zxXEv-bC&|1Y(g|)?ObH`3II2 z>gpXME*TEDe^$zYoPIivKThpH$9w8;VZ>%wHGn;(2C% zfdR$vk@!zpr%0@fs`DQ>5RkWp0)={iUdxBnhJt;gx|P1V>TVnT6ury}ki0^T?_c4s zh3-xTS7u0$Tt$07(s>?TXbKK#DnaQfGjfT0kA(z=s-eLur{N(2bwS5OcnYe6SESHR zk@9@Wr?#tuPJex9%@*RldIFvw&=gse64G^>=uLDWN)kaD;NeNL)+lm1OO9VGj0ZlY zlqMFK203Zh6DX1H%xOQ9e57;looWTky;}^JF&)PKmO~&={(-BqDpQI%G!##r2vz;@ zhgV_(5ds^1^_;E_W(j<_JBc{KwjrtLG@L9h)}Oj>G<))H(7S%_9dE_I{|efOpDb@6 zqK2*i7K;1@94nd4aUN>~x9fLSs!`1Zy*em&ZePdy;%^Fz(;bhsM!!X*<(ghK)230c zbYW~0PBI_BzwrF|i&;bM8&AK##Z%$Gg{P3Qow1FPv5lcSk+7Sgm9x>m*k`4}xJ(}( z61Qs44Sh)j7Ur`k`Tzqw_I#XX-?vK^4Vzz->o3M4=`ORLAMo zYIawfqy4)J>>l!_vJ?US95q4k`G6Nu_Ba``#w#sYoJ33Tc~M`OKlHgZ^R0+vh#ng1 zq!0}bksZxXwKs`~t+80-7r?W0PF&`Nj^9k9tb9dMaIq_%BxbEic0tZu*8Hi}`}H8G zv>1$dd*C!?=FdmSwi=?@SIlDmJD@-M5KjN5o;z~GMEudt;hweC{MY0CvJhX9KiI85R-Sx33 z+&~I=1)|KSA!bK_xM)POzctvWN`es0P{hvmgs*2y!E#LJN{1r ztYl{HU?ivS;N<=nG1hl7|ED7p@jEz~o9G)lDH>ZD8#>uK{L`~LRW=pBD`#KYaW43q z5_~y@DgkjxL=BsHDwU-x2xK|pInafHD(90&peT=oms@nV#rM*O0q8Nx&pD|diE@{vi z6Or{Lg7Q_Vm*euGYMo4U1S$RZAvsJC- z@5`Vy3yxZC?Ny70gtc3gchk;GTaCx7ryO*vj=77c3YBZEB&&+6-sZ~e6_Wy`k3D?= zF$^*T9#dejhr!`krR7PD3Z3+MiJ;9_hZLh*rSPF>m6kB7$f>89Z?iC&uy&6T%tRFg zgQH|RrefUjx0_D~;as1~^hSyy*YA?o??xtM-dG@-HAP`%VlQ6*6Y&OOUMhD9JZ| z&rn{dV;?85=&x~sRiqJ@NSPZk8977kbM*%TDF^XuBGe&?tS3%!(QYx(oY5s%W=fG} z<;g=5a%`zU4x8hDLBWBES@5RM*{Z(?mm+6c~?AE)rCW3Uin^ z7AqW*S0}X%Tu<`HKZZFbr50C!#0u$3u3A19wdj|MaWrK)$Op}Le4?9N?(~s|5WzY0a!R59j@}WCo*qo;f zV+S#&>ruN-Y9fo^S8xOlEZR)#7R%T*N&K>oq+45<=s|J?w}_!|+p@^dT4&dAS!WYP zygo!p7rpFct#@Rewr;l)=eMqwZLhlSS0@34zR%QhKW&?_ie!V%rjNiC@hwee1%cM3 z+xX&r3)&s1q8z>8F3cUXdkk#j2a?|E>XbeeU1J&o@TR18f(`XA-Db3x`k)fzK$~^M zS4MHl%zNS_LKi}xC0rHNK(F6b?Y?${dCPU%i{H$a`s5RPQ_BYTR_t- zpy>}H(eGim3s*B*!=y>dug0#pHx$nw}~+y(9E6DgNxO(~eK9~byT!K3o@Z;WkI z^LJ>ZxCQ|QJaMlA<}n37;y?vT(+iNqOXcSFw()V^vb2T-(2Bvnw=&+>wWAq8woIVJ znm)-9Wcn@1x?m%1h$0n@9Y`V7?1|ja_jZVQQ5yU*_noX92`3>tubx0WcnA)$2}p-?ncWi^ zBV)iZb}9|{1r7oHKx1Ba;OVP!CEs|7_{2W@bHKjjZ5Bu=Bn{XDyz}cHiA>a*R#No) zPNg;E-yQD^{vXG=e}y%rahv(?#D>_ONzxLHBw?O=&p-FAHW9OuGXt@38yDx7PzD(g zL-JUVxg%ObD*Te*17Oe(3JyL1*qanBpp{NlhJ=E*7U(_Q>1uMB%EzFIZY=Ys~m93MGz;a*omND?6 zk|h*l_ilELF+R4>${EqU43r+4t;KGKRmkOUn=1520#P2h(0E>%V-bdQeJjzSS9vtc zDC3~?U!9bo=k{VW;&aLDl11YMWZmv#+M4Af)b=7s9blmwW;u0Zog~95nIY}U3Bmgiluy2Fq|Ni~Q=YNcgsTeyrn%mm^n`2AM zV$#ETll%}&OXA}tlUoyT1b|V)Dkq@fgH#ZMEp>2pA?+PGm$s%w;4Lqf;JyZW%`cmx zp+uflq@=mq;+i(g8vcAaABO&o*kP#;3LR>KS)YPb~C;O-4%KLDD=V7ra7gPz66a-CPE(K`;IT07M;^h$YDy*hwtk{%Jaih|~zjyZf53c@CyBJhGcSI6~`;w*^-NMGa{SAi`_5)D-67VMlSPG_lOeOUXXjwwZc(_4F?B5uOS zrsqw|981kIOB62eoaf-}%qcSJb)~+to%{7*{gvm&$23 za-7u!@TVh0S+1Z6{<0;nVS;{pUCS>SW`Ks~_?G|0>VED?Ft<4x=ppM5O4@p{v9zV` zN>Jvw?Eiq0rzv$LA`KjuyBI$z&?k9yTSD~W6D3@tTj1O?l4(&Wi02v?g_@5EN>fy% zD_*uMWHrx>BB?Mni`fr~=NZ9f&um~+r-8O5aDNpt?_g5W`sImjU1ow!ZAJ`-&O;v8 zl(=^rgFhVVNL-5l=UBtWWoq-B93hl!&uqR%ewc&^&B9dsR5Y4SC2qY{T*@(a2L=2| z9$FJEYFqkBq!v9F>;q@17J1zaHYS9AOwmCu1-Q=z?N2+#cF~kO=xDrtK;Fu?xi*}y zgu(C8DO@KW-(E#;0VW!Ge~uMluRr{!YkD=GIdzVw;|?fD~`Iyk%5gfB0KcV zcm7eu_=7zF@s-J|PQ|b38~JN@o>r1eIH1E$Cw^lT>;^{}i9d`BYZj2ywhB{tiXTcD zf10&RciDreT{{5U2FXt55@Dtv!P#w!H|eGr)aoHQ_P@0QCM#MiXR86cdB{FE)HL_4 zmGb^hG!sRpiB{6hV9>yu5r0Zu{D#$$*fJujG%^&TNjc#X>15Y{O z?osQqH5;UwOP8BS9ajS_6WI}ii|X@2o@)ckC-{Wp(vNcRL4*~qYN>YJp5pA7JEm&( zb#3X|Jnpm_YFw6sY?XGPo5kXg_Fl{t`aKKVy8Q1&`2c15gTGGo8Pc1~3hSYvv*{|n zM01y}(fiK=g~?Ul`qTuI)zB9w;prYq2%<`lqeM?5_h(JT!f4?3#(P3B!G}(%W3Oc4 zm(}o+No4dE;`3F1%tGv)B#M5~TM&mZEMm4pxy+_B$b3mu-?5_IFMI!x(wkE>%p*+U zLK+z~;1$TP4(m#zRFg0&lvQ~%qK++J0nkb@-F*UttnC0P3ju`WEeR%{^;LVvbQ=D} z|IF34$4j_TEY&pY3Q~Kwk{6*^K4w{|__)pmwNR$|kH_3tx3K$(rvmz|UIh`JUWAUT zv6%_JmGPli9mKt2w%?MNL*q&m6u;sPIv5|tl%F(R{ea@j+fNUH_C(rJ81SBA^QyFZ z3H+9*!CK1|uLB00j9!gJ#Oz){)H}X2IT=2J88swlsbL9~!yjr#LO9(~76jhT zKWTSIt82(`+Wm@YcGcbmaCS8`NYtSFDo~h>+}Jh!oUO=NYK>2fpilHEA>eR-L!P#h zgktGG!Hdd0l5#KyFl$^UG^5LWE7=v>4i^%a{CB1IKeCdbt&O9TgTDE9`S<_eFO3TSAAb>( zd?qWrM;!5elnXah9w7cmn7famI9puJ1SYIzZR`|#r;DL<1d*dK{GLxtK*ea!W*G|sJ&;jphZQ-0kmYL>ez;feC#Bh-2ugkCO z)SB!iI$AFQTd7r>hhfC5ab9pG4F-GB+n1C1|&6FhV4U|EtB?vFIXHCLN71uRdsn~%yeIW zCxODKg09s}x4L9{KriW7YSfK42UP-}?6U3CAAU~Y)`kvGxS$c&Yg1|eqr*)K zl|fbdO=P_PmdGgmkDJUtDNUo|s14$GYX_S%bpS0cr6!PhN6Z(98U{-)PiumL9dvYL zZ;eqAog?kEsm+t>Mm-~j?fQooQl5uZtuEiL!b4eG(N?+q;xR2Q?+-V>O_-z^iJ40S zbV@)>Qi~#^QYn1hBGLp9-$Wp5CpILri_J_THDok&h`PBThT^FHT4#_^it>esh=s+5 zgjNU%9!Cn=(~%=*@sCgkjntW6Qi=@hsed+mFmN;Gg2K z-3u=z!ssy=r`WSwPjLVFZx}*fM#$~K)uC+7f%6r;_E9%*ZV`ek%=NpBSm_DxOYh%q z+X+^+k<)PGG<26!kaqCNE6sMTrEPu}L%M^`kLwxTz0WA&;%FB&-IFEJjn#j}n_HtT z_V#b%x%yk<5&CZ#kBGU|ziQN(%GR!k!r!V*?yDy161rqzdz8p=(*0{Zi5;GlxgWrbAMZvwEdAIvsk)A}sdt-FZ1#?5WpRQyFZ+EA{8D3iW7kRT%}$N457=C+7FNT}%0UsK4)DO6pj$xHT9pSoe&nz_yQXu75ApP(zvKBWn* zpty48bxhGE>8wqrY^d0iKy~;lB9S_E<;Dd+WzWW#jNI$jA+lF3?&*(fK4vEYm_n%`;E4mg^s%=x8RLB!mC_|9OPWF>9Vk?6lAXBW z;+nD9?f@2{%Y2x2U>XHN`9DOp<68$gcw9wRVdI@nXnaY&%Q4W?G)5bVOSDr_%CA*W z>1p+2ZBE6{gdet6Ti34U-(sLJQDLa{4S!te$+DJj7->U=&LDdEd$~MaNKjsP?>Vnl z41P?CXG9h}xiW3;RBY!Iu_+YP6w0*I_#uPir7tzNmg_*Sa)#fO9KsbRzrwrzb`@?+Wai>T!ZV5GZ6r+v(gdxTLXu(74OlTNG%TI7~(_}QDI`YxjvzIBJY znz@JWo`O+C)MwTUO9Sk>vcItL42=Pxb&Hw`M8 z?AlPy2^32Q+eefwLTR=t7vi)#R8RM`MkfYu*IUev_J~X-wEPB$8Iy_Z4>b!UT4|1K zw+h{c<%OYDO94}@vm5|?@=kaW1-oZ11u;;%_ZWQo0ey-gK6CDV#Sdqz4eGW8{!&sl zCEtf+^F`jkD^RX0YZ1p-yl$9V53?*{QojS>Ils9{**S4#DakDoH(}P2j=4(PyLR-- zJxD$PiHI8#Z^kzT5(O&#=hT!7#>8adcSu0}`FAwrKQrz7f2AS+D(cM+ZvehZ8NbF zOb()SvKmeVto)wnOgB9EV{B1dY1^@OYvd(j-7PUJy0FEOI_flMx_ojnBx93!+E6PL zk=k`5?TL>LyTYhhGgoD<8LGcNhUyR$Z#CrnToQzX-996!ny8HB2rXJvx1g2Z0iT+M zy0Y4guja)e(*0PURDd0k^yl3XMB&Psl?P)A7GZ zd&l5fqp#cZoY;1OZQlKFK=x22P;IxE5)vq7$2K@WrWuH+YG4HDd>( zP~K3X+BY&e{!w68eO?%a*|=ZNUZj+hhgQtAL00n|;CYs9x}1?@hI@kPDcyhUl+lL{ z0%yhkhbu%`VJw_?APcqSI3UJ0h+OXkA@<7d&KiJ3CY<<6RI;KP+JKaZn7tH>$Xer8 zBgbGd5Ia;M4sb9mnWmqYE>ZE;r*opzjoZy+Qc`c@iF^}Ui4~zP?w4l~?UWBKt~49V zs4vj4E!mVxBC)yYFYpBx^D|Idp4L?*L_NvWfWU(2@ZVBy<5E%Fat4^GQ+vg|WrtEm z+ytJRwf(H5fqw<@X2P=3{qPn^+@?;A44I}io8jwx_xrZ0tNPu9<- z-QmbFeAzJJp3eG2l7H19#*u*UIu1>MJn}nVqaTDgg-oRgebiBBu}Qb?HqSxm=1jGc z+O@$geaXGIJ$DY2LZaN7RmtFUr)SCT?MnThb>=UlyIJ)?xsn>=N^wvi4M|08LcY#r3N_5zx$hSj%#EsS` zFys?%anF9P}&66f!mMms?cBUlrf|Mw4BtcuRi{i7l)D3 zswiwA7|x zQZs?8)uiG)P#nqDHmD%aec+=V^=U=I-vF!u5M`d&B<;m=t z;O05H-2?hUfAzdjCbF^3IkqT%n!2{ZV+*E^nTzV=*%m4vMI5dosx`RC9e>8;al-GF z^PW1sQLH@pzAZfdZhF}r8l7-#yNcORlIC~c!s(Cf?E>B|ZkS0@7g6T-2TLRq#hz*K zVb{<1#8u2O;~rlAK&4|dFJUv}h8CR+ApPRp2=k!x2Wo164Pwk*e``FXR z5ZzL3`y%q_13n`~`F*F;L8kVS%>}ZcT+8zhD&hFK4&(lW@$r+5fO{smKX=F&XBjs< zqnFYOlEY;8dNbu$a4L#WCr(n*@3bdAQ+j>jH0^tw^xpq=@Q|?gxNWe}r0I&fmZcaB zA|-$Y2+C5UX?ecGv`?4m4G?}aY~8c%p=EwEu9L2BHoP$aAupK8@4T-}P1*T9+v?Z( zTywCxp}BP4W&6062?Ha#{pPqKaNZRmLUo}<N3 z75$Z9Nfmqo+T|WsGl&471T6UFQGXt;psao{gnOA~3Y0C#-KzD(cy-_(k_=h||Mjxp z!HKL-t%iH1ILCC>C^4f>x_#K;lv1^j111BCV8-8oqPzmy{XRjR7K z|EK!+Dxy;RM~zUH7~=2C_b;*TPdNWCs$Kjwv3oS2`xmJM?{age&1Kab({#YN_|x5ITN2gB?AwL|ysm2jOtQ{MbwV!%8C zQYcQMkeOitm*oWxr)d$V-wfDzQ->5#)Mf40Y3kI_SyFjAqHqM5)-cQjimFw5R$QYc z!{Hdd&4^uy6k+<lVGsahc^N>yLKY)t{TINYGxE=xz`3>y>cbrXX}Qw}wUKTzSkiaebVr_8fvTd& z-ma+8pnK$6 zl@V%ToSD}e0PQaJejr=>8`L=@+WMgeY|K$zcM8Ni3YL)p+vRMf5XvCoayhYmrdY2z zx_y?0wq3uNG1wX=4Ia%fIO^~ltL#>I;mkn_Nx}xV((W-Sgd}v)1a^InqD3+}3!0!U zH~Pksz*%8V4B1(k1<@UPm2ZBN3Vac4X6>@Ta7g9QV`lXLP;(N@#FQxJ_ux}J*Fu$7 zWIj<5XP^;DClmlQA1uKUuS{vChruG^4>q$=}hh>0kK z>-d)8pHAPb7QTI9zL-Q#3`EsQxyV(d-r)ut^bd|e3wIhJ0CalcCbnnkpPEQ}_}mz& zjPOQ8Tv8$%o2e0{jbc9`P-i2d6`ey-CiCS&iMZNyQnHkD4CI53_JpbJpT!$N zErx1c3s-sF??c}3D{kG^Q>}{V{4-M$uJViZVvxG;;vm!3o~Ja-tC;BWT};0<72(Fw z$`JW9{(oxk7l-^f(7O&m>ED|HTpv=p^5vZK%tE`-HWQ>07iw|(D zr=B2O_57|%fIyvjz5cKrSm~Ck{jFb!+fe&f9r?Rjfa_f^zrv*bI3x5-#QBpa3Q9B4 zB;@FEg4y^=@AvYzL{u2^+AgUz#`G9xjww-mme)el4cWJS!Qe&vr5p=62nm`Yb^7k+<7bwt>cL%8Qrj^O7-`T$w_^h+z~h)c9#3v((f-p8>9 zozj;8etNk!vExVwppsifa=RWc*)phOwiHgpNE`pCLg|Djb9P~1O+IJyer$H2G`jW{ zZbJZ)83~O}6We2WbXTj-7EFqoxkv|YOJv-KN38=gbOSU_;f7EF*VKDYoDe$@nSIje zT{oQL=M*6LPBD6#ebkO<_!WmhI;{!KPlU5@tRay^+{58q<7nu8o4kCpa+tx913-#Fx~^lWX-tW6wfqy%K8{_FRD)zs=g$ns^kZ=bm;V#*4?@i>o;ZwbD@Q>9+b>`M=dznJoDa)0-`f}R4AGh0BrGpO%|;R?@=GD ztHHVW6%T4eB~}(Z>M=hNJToQvkk?2XwVtTpxEZtbi46DB?sJk*SRp2c34f|~!FsJ2 z!r=<%k5c2dGO;NPOIEk)AsNoqqXB(beAunR#jC=|!GJ~p3%m5K9HBY--04X{+IRwc zB!sp6aEn@v@o&Sm7-3WYMt18Tu*V;^qGAv{bL^@k&)f2=u{5<1hSflW;tIM(mjUsA zw@*-%@}L~KQ<&HfczfkFxY$3<2Fn2}|6sKi#F4;+Q8Y~l(nb$PnF0{tBycW9_ch6u zTOy){>Eh)X@)nO(Qk8cS zs9t)G$sy%Q!-8IqXrw~s3Vnkp>0D~F-=4>fHLS}?3o-{tCdG<`%>x>S#WJ~|F(LFIK5fOY+hmeYfs`C5BH(C#elr7dj7}C~7$-06WKE6C5onT+U zRkq*55oaiLC(B|_xzB`{$AwCu6H|gB18>d_Wf(+Vf1}2VfvTmp(yL1j<_K-lRlm@7jNL`ag z&P3|yXi8j@CjFKRuJfbFv{cB3#_SDbJ@6D2>Yl&%yVY9HJ9u~I+OfhZZ#R-|%4zX_ zJaSUxl;av{Oad?L{3(p>nSo|2W(JJgQcZ{pdt!j=eijJpF%0A*Ujq`D=hVaKd$Mb+ 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

kg;XrORxnde}G!EzQ}_I~a#Jq^dpJ@!m<8n-b9O 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

Cd)*imfVCb6`g~FxL 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

  • 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 z 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

    MO(4_7num04Q&+ym) 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�#{v@XX6QDEZIzw>t~r_#eC{R$$gBkfT+IshSx_ zsBZIX;&5J>fnH^V-Ws%+m{GG-9-3G^<-TjO%v;_knxD;@#ZA0-s^^Ozm%k ztL5;F?RSB*XY|bNj{%?I@C@pQfwO0B%Rt(Hxk3hS2e&FFE=Y(3HVU7?*oof16aAz$ zz4;T;*ILdI5#QVQ;{e|CD#(N85wu5ce#WFB??q#W2VekJVF4Q4lc;yI4MK2#=>I`e zVb@7ZZIpK6RB1u_N0_ba2C*`cYJXT>bAA3EBs3nOFA)L0vET+IX9a=nT4HTkZA2a7 zvNWwO-S(0+s$`u=TH2k^wV%jp*7au0jo7>?;9^ygqBtQS{jyhCVlZeek5X>qPltuMOCq05>_gnq?9 z)3tCCYAYwSM{?0k2IZU8=dWS(#(S#9dp0r<$2TRh`1LsDU_*ge(y{YV(O{-e)RP}~ z?+G%BvvEKAS8a^ETKmr1BWOJVIjP5Cm##4pm)v}38CMx3k^z3)!D!^c&di!8Z?NtB zA+;m3|S~s=?tip4`$HT6QhJQtyf6eZ?l9SYe7- z6T6#!c%2e~wr?reYfZB~@oW%tOJvZa#-x%Gy4X`r7x`v}_x=fz-p24I6Q=c?mL-AP40_paBRqjTM_9V56v}E*zv&geg4p??c zMP8UuO3M!Z~~4}gJ+E|YPkL#w2tOj?;s>BWb;18qH2xOZWp0V<{2J$PSd1uz|a`u8M5~(^HlndwV2qvV{DgLp6EOj{&OAF zwX&b)P?C3$vs!ZN?oIQ$RMKm4A+(Y`8}L7~k9>&gFoMuOeh{GjCxpuJUn5j2_kZ<` za@2KHR5Vck!tgJ=9<-rNq|Wr> z8i1!ltBJNkvx~+;qrgm4%Qo$*EzG$EM8c1tq2)w#sJSxrlosj?pW|M`EpMyN4ZfsC zszf{7|K@SuP$v8^8HB$0Yihcs8B0A2*t@lC5GXBEo=Xni@AqWA)M4G5lT^-=n;}nh zQQ8jfsW#A(CQpq?P9U_|4orw7J)6SJL2cUJmT)E{JRBn&?;HLxo-m6zUT>t2MSw%Z zwM(F3NaAJY7^y~81{euf*=)d{WQ<6aSvPTF>nQBQGZitAjhlHDJ}pMdJ3m-W`n&Tg z7_KZJH-BWcs*f!bU<`oPz$WdTo7!__2u9c)Q#4~YoJ&st0Z zKW0SH+Iu4os+kPOImHJ<1Dl6qlT9@8-pViH79P>nRj^1rAm#1ar8-awWXVXy;D)J5 z^TLK!TjT0>UJDm>QwF|X1a$Bg6jvq{bq~VCzb|Z zMIvOGk(yDGjT_$b)?7PnwMi#KRJ%d^qwa5c1Rn%Ra< ziDEoa@aQ?T9kar6@ykhaE*xA}Z2)`yYa^#fu^(k<7puCOmHwpS7VF+27G)TP39M>$ zy8Lgyn#@o|zC1;4ka0-f6qq{;1ud>i_`yn%~C`U_?=K0qB-r+sW8tMWN>AjxYN z_DjmfdbjSYb^76(Pi180UZR6Zz{(!DFeGBFxo=sUrGb<&q8~n7jzaL+bRM+D<4RgE z)79+L&+JMmUMW9+QeD;@;6Om?$l0>ohDK1x*>cnm4#}f*%3iS7j}ECsm+z&Ly1E1a z*HYty&8u;?i3nb!Sv7}#>`w`6iOi9NcNSA|ip-Drh$)QuLo#GM(NQMi%eM~u5G+g7 z)%nelzZ<(!}!)L8@g8QJKVdM7pc`*>!Lf}AQ*cwwz zg!+igI%lUq;3l;ko8CCFykOlm)Rka;NCu^wp*G?U7YdJ5=kvv8M~xfk(i@2*D2ZdM z-{0^Hn;Sm_zt4DabuhWERWbM>W8=V4Lx>xY5KbUl33 zGf>kFxAX?jvZA(?R!Ed19M8(mU-%a3$<1})*VAzV=wozd4>Yr|@*wIbqhG6W?oL1S z9yTeg??>08Lefe3b<=_F#pw?wZZUZ-5hM3LquRI}nP#5QUzv2S$y3=9%}Rd8Dy+2F zfRqVvI93`eD8=dRAwIz%Sf8$wbb0Z2DrO$CPG)b38Q~TH{SENeE=uy8HHyET$09D|+9$r|NJO$HOXi_v| z=y6SYSKv8wZREPKRu9lTil?bu;is-4Y1A)f>aIByN6}IX8_A&i2pid;s}z?L8bVZtU zr~Fgbvfd_{<`4Gc2NcYI+TwZtt1VvC!NcCx!N^p~-rV7z&4_N*b^8TDM85O3KSOMC zl+Qkt1w-!I6dPoS3^no8VyIB65fn{MIXlbsQJ1OyFa|+|3` za>C|)6J4@@Q33XRNPV)k3kQwRtufW`prxcR+*_8zVyFX~O z<&E84mOfB5VqWFkr zJt91?@gKQcG2NZDJ$+|4v5OuKx%FbXHB!4IZa;r}~u_QB-Qm>A1*GLDu6uI4ZIU%YS?==in=9dRr7fVDPPEX1^=UXZo0ZZ!$K4sNj$w^VOZ z`(k6XR%W9JEW>xH;6@#l`q#1j!wIZjnEVTO2|L(u4etepXHY+M2YFt80^mOqv;45> zZ%_2>*XkAWjX&)cR1J*N&ndaN=Xuhj;Yd++mv3lv=Wc91#0MR2dBA#CZXl+V4p?=E zy8vKaQW$JGljf|tgFevcY`UX~eIn;T-p=Oc8;&oapTN@+ZjrN|-8L&cTvdN%cVo|2 z-W^LD^#|d)e(ioww(p`7e6#=rcHs|Ab=IqQ9rHoYmj4vt)Ea0#MPD3Kx;ndH@?qzW zo1c`u({v(luab3i`_d?4#g~E2BOQew zRTx6+Ha%@) zVOiCl=(9A5(MwM8DwZ|h2({mJUjItvkH9NbLhS0cKwK=be6W^$MS6-1M`P!S(UK`Z zZ>kqEA&w1Cq<-j;!JaeOq#GGp-~#=w13R7eCr{|av_o$$1es*`J;iA=RDt}q7tK-0-s zlX@cQ+W-!tl!9Blr{F}W4^QNYcOjjty0V(j+z@)}=G2~bkcem{!MtN*D0qPPtu|;7 z?~NPL){oi>w0FqC2etkqOhD=vRC$zYx3cSCuOG^c;D!|RjM&v-Y|BD3?sqf!xk}8V zj#V?@be->{(3-a)Q{DCqJe{n(%^TO?Ie8h<(CNO;Q*KwWxp`W3t0xja+Z1)P@^Yk~ zymvSHg?Q2PfLP^Kb|GBC8_xYF1{^!=kO-kY^FqB47bNt;*~)Iy22;pt&hVvfv)HqUi|Kejzzb{ zFnk?R5S#>#y6#Yqgs$)rvG1@L-(aRZ($Id_6|qXA2*$Z-oj zDDU6_=s!_`ypeJZaliqv>xU|4{LL2S0FMS+^2J+K9uLC?sxze8B^f zC~iG61_TbRl*scQ>8mn?bBQ~pItr0}6)~kQhQlxiSc;v%P&lPXcJ&NFn&i~JghGOo zgH__baLCAF&PB^PUBsfdt6X8@Zw(y0H1l1+kI3-wyT>Jw52eFi~M^g6uO(@R8{ilQV z-`Fqy8+u;W!Nkbb!TJ9SpVU)85klo#NVV^*MZHD2)tRNEo=giAmXw8pwptVw0p?FP z>MRjy*);c%8Bid+?S~-nz3I;jRA5W|hYRC~PnuZf&oJtDMwjE?T*q5HE*}1$e{WIx zP>=||+zpIwyh9`{;%u7SuFh^61rwl$Vt{Nr3Jn?wG31l!}t}Ph8JXw?WImeGgnvlMNL)G@( zQ1zT4TLbmM%3}xa<#UyE8sI~uHEq?POE|p9DJA8so@&QHtj5)pU|VXNpV{@` zQl{4WIiTK|%+*T7GDn@vjkJeaG81k`e|1_5+kOiR#}ccxK?j-Lvj*uCylO6_y2n(W z$bsuffociJp-xw+>ls6by8(U1tlZg!nOPy}O;f^PQRXWcc4cwS6rD#Q$Qd@^z#l&b zUtKWRwCF4s-r;3Y@-V3lnt&{%??zjIjda-er_Xdz@bWGRjiX zoTE6SchW=dbILft1Ymd5E&j;oY-+GXXMK)tBI-#<5Eh8haxZmv%C+795eU;J>w>Sr zh?wMnl-aw%uWVyi{5*z^_kj@FMp6KwAZ!6uLpGOJCv#%M0663uK@$B(_MGp( zy1XcU2d)}fn32j_+1vbUwdW|w$qWi2`q>B+GOcOXXwUFzA^?I33q30!g_R2CZC1(G z+w3}Y*rh)8azPRP{`iXg4x5Pq`*n6Wo%P4d!NOu&z+n4F_D-J|6c2nRygOFcD=U04 z_BkO(V!>SA4cIeEt#Lp+R>htRp!720AxWAw4w!`4N;I8Gm7zHC51Ghm9g8XDvnwg4 zwO_@M9X}4#eV;@`T`Bj$cs!2Py;*%W-^5}+e~8P>AXQw&(IzFCEW@r9wK4#jOO7h{ zF=gxn>kj}B*I3V9e{-4Lzj5+YwuC$-fNVjrHBJ9gSh}$jBqvKzSH`DI=K)uz0s^86 zw(QH*y!?yy%$~KtkJFOL_3L7E_O%&YuX^@4C>}i=n(6JQndy^Qs7>;#7`$q%eqSz3 zkc?*Y@I1tFgwHk{YHQ@Zc+h&ek}cwTA3po|R0FrR!9OZ?wh!}1;+yjp_^#T&$Nc|Y zNAX`3`zP!#QP)z`F+=@pZ;$TWt_Y1Pm(bGG3XdiIjfU!iao&2rY*S>(=peB?k#HAw0N{a!*G6eROlzZinDAsy*T(SVW>>c1m=Eek)Vr={ARj`WN&YxNW(Zu#_rJ zY*xS1rYz=dI;d4z=-zHn0+#}n1spyMV8j>%Dd$Wwj1(0P8;P$}3~C8U%E1xFTsWSWStuf1Q1h2P$hX%p5JJHpYo#?q^13E#~~0dv&rhm8+*d;0X>`{j}B zv+G=$f{sdaKpf`2HzOC5^rPN@>#h>Bdoe7OoR=$oV%t+-LVg)0wv6^A7aa?|k%;_K zlTrwcGI$DgRNPrxtS&b&-OR)-Qnl5pm`HT?V@#BU8E;* z{i)LqRsojj^u31yz6CzHWrLaFK{_y=jCLRUmoae}M&0W>TWB;}eOA=91N3M(bLGY$ z%k4LzkrcPd(hh~@XmXlmdse(fg}KcZTI+yI>Xy6ZW6r0pNOj%X!k>H$b;n|88avWx zb`=Ln)ZFzdViFU+Qet>rx<}Y(5KiG7&rTrkY7hHn82U!9l`v)DfcxAOmtRE-Q~v45 z)EM5G$eA#{2?tBMnV&d!?^K5=@q1H(xwxX&s@~{OXEl>PyF8tU(k`LoPbVnI?&!J< zSsTf-q8@K3gk==W5-!NxFjpiYv^MBw(nnvoM$9M8H%H8n&tIuXs9jVXYdHa1Q+g#C z#S{g5z*~oQZd}hH+HWViP*7EhLgyu#5_u!Y%Y!!K+(dpiIt}_m3?d<9AjCcWcX@`+ zjThubD9u_=>P9FCFR8nKt z`KtaH_^;hwOB&&45Y^p@VcA)Z&4FC>hM5(a`?T1SoEG)DM%gTma!U8=fwxhh{&TP! z#EfAEVk&}v<8K6rKjP|hJM5ALGFBv9%n4!+NCylIb;-aqXm=tl^5ung1)tjTkT#A% zpNIGMTM9jZ(i2f-D*~x<`V*;=9SL!cWP)EK4SV!)0s7i7eaR(;snF>qER=b|SP%_H zJw)jaP)D7^M%+%9z>H{A>C!+dTp?yEf*voUq-jU{lWr4GFww0x)5A ziPq|`r(dknnsr=^r}uLE!~&mr{lgSiU0$VV_wlG!VUr$DZir1ec_#Ws-dcs zr=y^>I&)daGn*mhEzI29ypS#n5D>Jzc2r1Dr3zBP-B(l?o}|8Lt(IT@zOC%UOUdpd z+t1pwwE@#BUs5*k&R2TCr~=+ozfI zyV6SbfS@alMXpC=(b3OMxX%*(93o;%2t(QA|AHvb7>OJggB+#vju)$71gEVqVUr@* zUEJ{(b~k~uvf1r7Z)k1unU!~j7^hF%yv+S)|5Gi(ZkzTSJ`^GTrvvHV`1<@Cto*M7 z>HoApbCf#ezX3!x3=qU<{Ea`mB&uK#4kB1McxWgpkTRm3D_7n$*%Kc3x{xnA8ZsC` zp9IlztXFclxrK$h!*Zwpm!}_yW1t)cil$TDkzq~&Ql+MKt|Z{~cVJu_feYU2<`gv^ z9t$n#gml6q@O`<-V2Hjw+TaF;f;=!U#sm?`!F&2f>gs z`DFD!RD(mmukb`Zr$CEaxTPnncu!?~Cf}W2gT!xMVs+GRq^m8Ssm(069GMOhx)uux z{-kNk_@Ljjrl|6sS!TRKy+Tb6(z3EA`q$fD_h%+Zrxe(K>6Q%Ge%%#3Zq|<1#A8%q z9;V{G4~rn+o8#It;{Kh?EckS}IR6_cKUMc`L1SAW9)RR1h|x!C<~jnM^F4qiuW_Qj zS{;wZqnJ&0l!lwW;REDTS`0uRt`M&NRUp^SVc&;~KKZ7Ml~yl!qFe(|n=*Mr`3JhF zr^b*n{YDp-{}EjX{8xBT+04b!!QRD;RME)U#mxDiC?iF2QXW_cv0B^^=sR7AARl*U zPjp|5NgovjE<(I5%W1(jm6jzd<7eM5uN#mLN|TWOki>GA^sCy6+S=UK=QNEUWvd8v zNQPO8vsRf?kfYP~mJ-wr?9!TITi9+C8Wg)oS=F0o@Q*v^^5 z%P&9NgxfJB#4SulLqiN6-u#d(^&e&epbcuXml{nl?&Pw=JrB8`3ivV?fG?1L!&+FQ z;=t$Nn}VDZtKW~7E&lnw#uD;0pIGrWC=4@j;5Xf0K$egRmv3Pc>65MbJcaHhD!*Ta zIks81Z%vtczdcd`JwZ}@wTfGQwpU0J9xw_dQ&bZ%s0mee?TCRU9x5V#u+S7WgrBb_ zYNl03;@Lt|uNSG){*ypXnAjB{{VoX6e=NvV1&QA7RemYtVcpsFco z0@am{Su0Hm%(sk6X@J6{o{wDqWXk~*BxNwNP@!VzI&Eugcx>?RaA}MFR_gVN9qsKC z7~Xf^&XQUvE=av2y54-=+T6b0;&{ExBM1Pl!`~jV>YxCyZ{Q62?NE!Gj2Y8L#$pc4 z4m0A5z&I;CL=F3+iK9Xo&oUMaL>EB4V$!a{QSRhp;-cAutnISphfAS_g+2{3>4y69 zDXAE95=U?R+5-Zd=x@@krdF|7^3ch6w4`sixoHfCz`FUg?VrJiWUlC?9fwopa`jPo ztsSV-^Br&jQqD~@+gmNY#PzqWX<4~RQ`D`Ji#*OHfh6;SV6$zit-T)%hpwQ>vHmJ`<3S@ z{KPpZdAxyWemVB?-oc!DRdNp~vB2ZMictae)@Iz)akSmdldF(+VB4t9p*4$#4Q*XD zG3})i2@V3i~1>EPa7N zGmBySb`00cBAuHj9MvD^7-5;`=$Dm|5?IP#*QW8vcdS~QPm~tCzfh2AybWY5G-`h1 zFxbu5|Fm;qm+`V?^zwI&rntO4zy?g`xM=_GGMi_^poEQPe8d#7u)|$S42Sz8Mp5O! zAxaW8PFss^ySU7ua@m$U2-E52(93tkzO;L5&MUOQ1gEe^1-H4Hzh?zEv!ew-v-rh? zHe=<9&tU0^#9-x#^~=%|&4;xMu!5DEx|w;J20Pj6a%WY&*|-h^+;%DN*oy7G6O))M zTS=>!pyl*HzLW%LbOCC52Majg_YePHponj*Wy;g^rsyYyRqqVgv6@Qc~C(UDR6_0MAH&W7^4k)FK zBgoy2+$Hgys%yE|HKOT>;4fGS!hj}k=i_WeL|>?xh!b21{#gO+$u47{G45tlPMW52 zsy^yW0$1Evvdr(-7sKQ3pGL|-dofumE=B#$^_XtPcF=j1zmR=3PCLW*nP<@)L<+Hi z?3_BbMB7%3QQh!Bxa^wHQ9e&KQqB}ozZ{9LIe>4aNVO>RSw~?;*;Yq}k@DG`jmgih zZpOxm(vWowu_f&MYfl9(Zx;qm1haIWk_B_Qn6IFWrNKl+;9#FuhDdP@`|dC$^4E#i z)asLHec#Qytpo^|Kh0);4U>vT62HZEmtX}VDnU*Z&x71=hIO`QR~U|Iq7F&v>6M2a z21#TnG5kU1hZYY!hky}aztP13(DuX1-=2@c=Tt-Oo@*Xv}fkYGe%fWB&!dh}}*+%sA zE^+LQ9UN1i6I$taiGaYw$gnb`SFqhpzS|C~^3gfch!fT`1;QzCpS^l3)&~H}uECrq z_?l$bEo$nAFSr~@+3W_6RQv~6w_8NVLO2VqL|A?*^G9&1J{!`he0fit3e?%6@5%pRp}ak#DrHa&awkPDP=$=d z@l_x+-03#-6(q6#sc+v3?>UKnj)8u0T?U6Ec`pg*Ltn_xwxA1pGJGc*qzrz6W?^R( zsW%HMZk+s0weXLh@Mu{a6{~j~YnH0@j}ELAtEI;8dBw%t+Z^+8_$tbT^lg$fKaWZm zsYsPKw@t(a9XNnsCxLQ^1=e({EqO(v#tCn*Z1r1{=d=ybPz)0MVeiQBJIHPzxw&~js&;f}=;?HU=4^|iNibB<=Q`}f@U zEm`wKAgHge#ShV$ND1U?Ls5Z)~@dl}MZX#eV71vIxUlu6cCB$vRl zD&eb`y>jY!$(dRMj9FF;{E4QCWJl)hsL;7(mYB;N;>xJKo)Eir%>Hg(mI0$%GOU0Tu2<3zJ7|!i&pMo^M7Ftes)g2}CRUwx<}#pH z!ZMvwc4}`OGm9!|nFzLPTy&@HS~IGEF-69hI3$+Q%Z3wA8#`2P*Cn^>AuX9Kas63R z+q9@A?9*J~o_RLO|A^)mQ&IakCvwK!uFF8<9#UcdFjsU&jx{u$+98JDLyc>Xmbrd# zYm@rcvA99c)+zf4chdA$T5^SW#gTC)ud;bq6mn)yz*lmWFxlgw35 zi(jW&RnlWuaV_}{LH8J6;cihCwnV}_Bq7&4T86LUeB-s_=3m=ay5k z=KH|n7FV%mCX2`KE%D|nad}_y$sFUcNH2pIA9ih4MX{u!JOB%?eP(rf{m%ba@Uu^K z=47ryhdjQ--?Gxe?}5U|e@r4kY36k?Zt-3jM4jQqGTM7imBFlvpepU~E>c%NMX8%S zR3KsUoc|Fpc2vgCO$+X$*-e$!D*MPnkfd_oqPxYk)G7OPnozSlBAMUAy@A+o;>L*^ ztt)rUQ0g5wu8kheCNaRo` zawURz26VPZOwbJ=a?O(!bt~}Myttr%2~}K0fAAm&3p#ACG5s!T0V~EJf=N~EOlZXe zY0O4Da~Yy&6672wWB?PzS{ExEaPX(*VTc33I5;o1YuHr?C3jXB1n?9g?I6-5s$Mw_ z8Wu)^Y~OoOtfmj1Lv=lOk9pwf&@r2_f?P^xD4w5cI14$~VP`}`w=g$h2Qy)!rCrEZ zjXcCDN~mFGl1s+hP{**1HMuZMPJk|qwkmBfk8tAJtd0ci^_N#`F=EFU>N&H6?$>e; zi-PXwfYaS7nhX~z(!wh%_z~jwA%i7-2I)N}wnrF2N})=Ru|BRI@{t#`u*_Q|Oe}?S z1XUoxjbz+;$4**Cuus4)EC=|w2tx>uGNos9TkcESjnKlH*|*N&G30Hmaps~!WIo~| zBKAFlWbBykZ0t@o4_mAN*h4{XQz^;0dPjrt99BLft5~YLzmo`KtkiU7?>}$d-CUg9 zN>ei(NY(3$-A9<1;90{$y?C*?*u5n zyzP#xvlU30jNJDx`^PwqI61?z{REt-xRBwOt=5FC*;}b@%M5Ide5-{o9M#3{@ys|g z?1pMGTm-fPdCMT1#=%`lUP3~I6r4uL3u<<-{qv$AMNW036K^f0h56MJ?UZ zn55iJI()eBYy|`{u>A8@p(nW62*-S=hPz-T6~Zl^K97)FEO|?OSMS;S>~)NVVJwre zgM}}!F1i$AI5KHuxeVFBwc5KRwGe5|6ypv2s;sz7V?L!?E8$_qnyYdJiLBnx|lOOKEv25l(~~M z;jH6YMuHFU0K)}Y4wI*=fW66_v?8VTC~y+%y}@=dKNxmbtjRqB-9Rio!k8c@Okc*L zY&JS$ijaJW{`~!uI4flLe^GXh-IYY`qD{xPZQI;2cWk3$+eXK>ZFX!s>Dabyr*EHo z-g`fuG0tzORbxEQs+x0#R9w6aRHmGR{X-_VeW*>;)>=b&D* zk_U>4GUHY&P|oO6ccsb+Q}!Rf7={h66yeT($%$b4voD3omJuWo&yus@;WRNRYG6eV zkH}_lD{-QX5Lr%+WNNLPUbkQmcNp0gQ)pwk7><<*41=GE@9vNNSpWAyBMU2n5ou)q zrz9uRp|Gqt-of3mrs=PcGc;V%1i8Q~H0D6BJ)L^fiI51+xLrpln$*co&JWMuQ=%T_ zQ-dCD72l)Bl1q8APv$ybzkvD08P6>7&6JgCg`C%mK?UzsHQ%LxhNYb)K^wvuikA1X z_oS($kdz!+`2g9*&My|DB=xj;WA~Dzk}ChTPv7q!DtRt>1FFg;;%dp^z^KjGNZh*) ziwlWI{X@HejPsqA_w=$pPgluO9)N7a~J`34A%3Kb6g@66Vftu!%$|^jY(DDY+*ioi7anc@(#a zV04jM@@A5mOKXI3qxVjYR)9Vj5JR)m& z5hnN-g*?0q)#&H;M?YCr+oCjsrFrca*CDI?iFq3kOtD+`_DVPvj&a*%rQtQJ1}`nx zf9tsna5lg*-5YK&BQzjPjP8RUtjk3e(pE?dv2+T&k+d!>tuX~7%%w0@pmWSkT@4nFKx6*J&2)LZ!OH`N zIcAUc8c3W$qtlV_qSKIT@Mh?5IH0DJY(?V>4ShNIcglL zF;jYjpwAJ`5u9NM61st`!FXk*l&s#s`pO~2ktk}MU#LZk$5C&IO{PFt&V*+QGetKW zI^+n zMqujvB)+P0-fD43L8TA_=PlKqhOwITnxs#e!43e~rwp;ZB^o?}W?8tP_paTq> z19syU+dnLoHU}=owNrRJL+p=Zyx>oVliVf`OP{8)*ctIHI$3oXmWORx&H9Q@5iCfz zAdH0z4>1reN({X0yr%mB#DCVMrK9kVqQqL^zC?QFIj7?%Np(GlZdzl8l{<3n13oY< zDgTT?&4`*>ZgvfC#>?`0fDLC~aO;|l(mz#%%YbK559)Ng7Adayb# zTj9~6JY!eEuTjv@YF9QIHTKag)| zQq_8UD8atBpQ)mBEb&r$@!vvgF*Q-*NZZFjHFL>&GR%7A>Vme^>pwQiGd@AS+d8m2 zfPr4+>J36hp{kdRGNYQI@0Tt^MJ4jl&$o2){wQN-IL+)UV??)%phz|& ze?MWVctSwi@H)#L2QPnhT(p@lHUXFJ?<- zHl$KaUu>yNm|BbQu%gN&=Pme-&8m=9#(S7E`x6!ZFg!`+%27BL@`w9&sIcYH&>lDYZe3}U!d&y|RT;)QWDBX1+|Qkb;%ep`v9a`ygSkblyS>D1rE{DabUF(+>^ zntEwgxovU6?>wZrd(#omZLzx;9(U82DWt-_RUjy&^|U@OfpF3$ZaCO7tB$u`-VXRQ zsTh-9pp}a|XZ^Q!3f8?<>?Zcf)@=-hh8~K!*k?CBx8p(po{q4>RnXwnfWPNNJ;w$p z$#MzP&3!Z%t~|3R)#PRaM2?zK2NfFN5H*A|h{5$EbdWRhO6s*4h_jjw%>9r;I}D2iRgG!1f} znWwRq;{5VCmL71=1KbZ-uhy=&S=-D!(%ev-UxqC9?TB|ew8Qb?rBX6b<+z!)OVeKuK8@0JV zxM*PqzQ5b;(6%>V<=jdH%b^5XE6}6HOumq9^;RG!u{{RPKkmb4deU!*FM}-xb_`2c2SXi z96GRpo#U|Ij^9ktOl&d8}*Zlr&TPW&1^Um zPjr`?5pAq?Dx~2no5d|g`{C|<5tpq2?P;2^p+w=ZxpPJVjPs=U4;&vi8MM%o&Em;Y zQHTG2x+OR!?%54<$;N{YXbj8A5I43P@yrG`ygf2IXXbfX#OV1}L@QMb3$rw$E*B)F zLe@2Usa)nC_L`M)>XY%`%TF686mjDxL>CdCSPj1{E{v;0Sm&aN5d*0732Kq-bU^=}1+r+kJ3rt&R&-`5xc-`+IKg<~m$qMrKZ+QypSd)3%3%tK zxaXz8milwpB(UE$UrZz$8m62V-JIAwfJgt)XU8zEMW9|QR5uar~Ll|5iMjbVaMD$`uZd@ldgvLwP!3L4`1ye(20)4+bWM%UT3bu0!fBBN4> zkC6tsA3PovlC66o{`%Pq4c1i z-h03O6r3~U@6ju}SYLRKg5&~e4_5kOF!Rmlk&DNXNbO%B?AEAjT#z9q{sd9 z)h5V-H8FF33&Q_z`lZGig93jCgoK@cFcZdp7|zD-lIlwCpRuz_?b)RyW0t$I5-#XU z?42(>3A0uNN*1yA6&$em1brt^03Xb!Y^x`);O_&7lv*6{*5z}rFGWn|D5q-2NMsu( z-PWX~AuHJr92pOOF&e`+{u%3Qg&Bk|yS?I(rHLTM?-^#?k>HQQ{zz+5QI|eLJ7l2o z4*HX5q!7QfGzyZK7h(l@^p-5AbS}zrF6p>s5U~JQGx%%b|F!j9OwPtSMndu`Vgm)-0Jf)(ipSce-F67tbbAmYhp0io_z$BOOM-!!LL+Ikr(}#Eh=2fqZ`WO za|Uk)DV=0M1K|t4Jd$`~gw%?-E5^QfvP297uXv z;S(?oQ98)xq`#K9U2T`hrYToH0$urzQqkf26?rXAbHUi*jR|7C8e=5T(f8&h$gE{x zC4{$+2-rL37i5g-8fA0`g3yGNt`!5tBLu5rMqtT$%M5j)Ff`0y+PS3l=VLarh$TDc zeN{(X_`DPp)5?_K^eQOnu{VX$v@LyL4`AbsrYH#`UI?Y?Q`HyN*h3i$a$FE%%DB!} z9(DM=n?9LJQQGvutlKb4E-cvf6sTrnR3*6POgb`37iyZ)dwwvw2hI5Ix?tr1-BsYW zz@|E}bandOxww7sYI;R?3Zd>kNW8#%k!Fh?(bj_ri6rwrW-rhly{&?^nj6!2S0$ky zwYgLfJ@EK3)(?NYB=E9YUW)->N-kWs#t+3mSl(+i)Hjx50o85F8yC>;;pVrp z7NbACLKS`pf{}HNAALgCxWC@fYYb)+%8Mh(1M4BeU|sp~RH>An&0T`Von>n$E z){@vE>q4`GX+~1B*aLL+iv>ak-RjMB4l4gj%pMC7>r<~UPSE==J7a$la%_1AlnN`9 zYGi&_`?`>-lpM7_&q){ByGxy!l$KfQnm!}DVm&>X3(BX6UX$8epLjE)^S91LH+&qu zl{me4nzj3V=k7R%kH`$uqyTzHZ#wfJ-vkKQFBDG%-WfUaKhE`eU72#+1drgZY|x3~ z&!b?wI~u*m%Wf9B{TA}N|EwA ze3gzZC|whf_uS)*J%z>3G$sRQln4bB{Jeg^eUMHSrIly;$l>Q?*7GDJ%K6wZV4T1*iPO%iPkj}Us6}3v?-E*kDD#_hW~t5BlO8uwk-^|Wfh)e|nEJ`?*w-xwtCX3=7*GvSH~dr`0Y6g)GQuDn#cMK17h1ijVoq8gpTMYGf7c z6nnDZ0Z^n0yfGkY|HfJAofUhhlPl?+8-H})eG{}q_==h?@?Y?JM{4tdoT=(NbI!M= z+CsYW4$mNjRBm-dyfQ|!u${Zema_+I-#O9+uk+1U_6_Xue9f5|-X!Wq68bCZK?1re z&L574EX{Fmh)CuolRhMmbpf#wrOR&bT)z!hr&L_OeJIW@(~B`f2*j0?%|g7V*o1h( zkUOL;fAC_6>a|{c5yB1I1ZU*j% zMg3>Ivej3T`{L?QF#NKY2@6x41V50MPQ9UW$jbe~-_zb2*@pqVD0#8p@a30skL={# zRQ9kZi(}NM&-ka91k!qgBooUond-0P3Jp_`qtP6iHkYhtL5dA=sP(yWFg_^S`4P}n zF`PGrE%ztXr^Mo(LFUG=Go|RcMq%c36y9<8IjGJ_Fnw)F44EomO+LL)sUCiGa1TO00z38-N zytOO3=4E<%SW~XlXck%@A9eV`no0ZV+qB^vkfQflUyss2bUYt%^3C}LXXGweho9jFva zK0I&*MyTc=_=EL9vAf^{-pDlO4Sv89k*$8fBa47A4L2rO{Mn=7Pg6MY4EX)lm5g;8 z>;rkzzo1{+KbHE_hVGRLB%jLz#~=RhI}X!{JOHTGrTw(WVTD?!R(8u{MVMEWddKU^ znODZR_jJx!t8%4Vr@xo)6~k4<JU#Qg; z!38!^D_o%zyl%@b4rqYb-IOl*=N7`IMBzp%-T`wUi_Zu$0hbl{%+IPdy~DF0an-US zG+B)11u_%?XAcx7)a{k){j4igPCpRMIU@Z2D8&M2ZOO@$lktgLqUr7S7(kZ!pK$UK zg}F>#`0XLMy;1Wo?pGlR5x?AqP#Rs&xqc@dCvp8~<^!pvG%&pX1>VXo?+OBvg`gK9)9(xOkH8gQCgZ6%Ht2`!!s~ zPG}S}!3+CO>Or_RWoJJ?PQjD|{d?PUVz#TW6Ncp^?FD{{Zn>l`-zAe#uhHBBpjR2S za%}`7jZo7U?0P&OWV$Ni>q+-Uk~oJv0=}J)_#!VG`i1ty%7)pT%rqR2UtpSa!klSt zP9~mKr?R#81@A_lg%1Sx#x#yzSpvbWX+Z4gDXrcO4~en zSydk9u!q&nHD*Na$wDlpF*}Vvq>-OA52@wSYf}?_iPi!#CpB(UPNmJ#fg|RN3U$kB z!LTg7RcMUp^**U)E!A0qn!2Uk{T_G4t@MoEu@dBSr&X4Lg~7)qS1#6a(po&_=Hcb* zXDzi6vGXWb2z}{zfh=5e%sn{Eu5eSkb@MczuH^WwWj6Q>KzZv7z8d~;!zx7i%HQ&Q zN=~H^&AhT@LL_mO4jK<>IqkGVr>NhvqY)WC2r5G7s}cqZZBz-M1E7xK`i_%X_AB1_ z5s{MA;Ok*ZGFpD9D zqQwVA%(ftsn0DR;NX~p3!;T6_dlH7XS-$2sLkK3bsH8jL$fFFkR#y zJ*vdw&(YXu0d2q)#V+UfFey_KR7;Iq*XL@aK^BsaqTVUb*FyeQbi z<>99Tp@GQv08fyy?r)8uI^!dF+$C}6DDy^~6|Jfd>ZEJL)(%BJ-b3^%o;MLAw#&_B zfa!|WHj|c?WQbFL|LoyhPjYwD7snG&&p4Q&St4d1%QJp;1`!P^0u@V9ud;#XKWarR z5zF*mFpkdE(_8DVx^bI5Sa3!rFZvWK$yxTUjY4k{>pXgJ(_vi z_{Hf zgl(&%0<}Td;kbXI3*P5pj#%(lo#0KrNr~Rw;R}A0PlFEj8@7;UOJ&%+-}p&;52CB*wxGJGffvCwDZRg z(g<@yJHcY-H?8%)Fyv?el(RQs!eEpOM6cM+VOj!dkI2k@6?6N_slbr^Uy+c*gVxzm zg}K2j>_MH=HyQxaOU@@E{22rF`Al2N&T-hAo^9$2sK89go)6h^iYRbTvrx#8NB~IE zgENs8EOqiP!Y*aA;4P$EFey&!&AKx&Sb>B(mcH>56wfE?GSu*L$RJ4yin=GTce+nX zo;**h@MZk*9>sRE8i*JKl-}(NVDA~}oDD-;TFrOzdJSz%8t@(8`OAJCg6><<5?+0m zMY*$QgF}i+^3F6RvC8tuti`LZCFC0`VSk@f-T@qC2)$)0?HQGrNvz*aI6zr^4I=Rs zIhQTSiJJudyaL}nHn$LoFi@6v&^Y6UIFruiL_PnP+&HjNZoqezc4%PC`^(>W$TNZ4 z@Bt#w{0>5pOz>W|arUtv=jT9`6S=|Gc*wfNM&C=}!xck&p&)2eBx){g3UJrwM}y2d zsp(Zd-&MUmMCZ#RY~VX%r7eIP>g}`oLao24V@}^0@cl%@z4dO3N6Odm&!?Fv#i31; z*YLH-m?+|?4478>O6s4~3}Jr}If17g)HXN|Wx4R6-9$7@TDFQY;r`YB$aSirCy{Wft?I==e-&TUKl5kC``Y3nP;I75W*wHEjY?OFuk;R-ne| z{WRx$!olTab7R}Y93->al0SYN>U^h#CdRvYT8n3XEevSUlQ4$R3p zFLQe|eY^Fyy-}Wb#cH0;s=Je^eu0(+nZnf5$?L=O9A2b4#(FNn!WG@Sll6&CW~*RX zuwTbSBVT(OUMUIkGO-DR-Gn<@jTCrU+Ac#bacq1X1PLqq{39fjU*a^1`Ze$|h2KmPOyw zY(A1Dazk%efHadL$IWqApkUqXSzpMv5D2{vDi18$9+*t$<6c=Z{$c$5%Hv3Kvfbid za5DICR|mP5$$4Uay12?I*C+M5*+Pj6ozqOeVmbIZH<@R&Q&Wp=sSO*`2{S|35kV@n zi9D6l2tSpSp>2Zvw+ogtDfepBygQDufGnA;Ul&@^#8(hxBHNp?%PN(i%0aF*yKy8c z83M16eI!S3v&Yz#2~mEY^z7~PeloXw-b=-r6#I!{ZRG%JZf@cW{Jxv-CPN8gcp%GH zkG51Loev=~7_hm-w`&K+xWP%7spS!+Fd6J|`n+MF8qupYXWLmch4Z}~dx|8JUgjBY z?oCW+pG|DI6BN~+?s36#cKt2#GOQ+k*Cc=OOS#L36ExIjWs=WTwy4-Z^_Ucvb<$|P-49MF{z^hP^$(fOu~GZO>A}qNi{lB2Yh3#u z9ljg1bBu~bxLNa-+m)XUx-3Tc*oim9pq06o53|Hfzq)&whS+IMt%_@ja14I=SPPywa_Fx6k#Fie z>E#jyu#PuwzKHO=6n!HGaOIvk4=L9LDxd+I*hbWDvy@2HUeb2AE7d{MQs?Z{;B>X+XR0vz{-purs?NZgQvn+0&bho{VU^CF z)!L&+=lr>qpt?2Z?MgK#lwBK<_XPRgATMc4kbVd+D{AqAstBK4%}RKhc(Qe?F_k{- z=za_nP%ex9bpCO9;Ln#MI^A2-#+E&3mX16*rFUb;72$O*#lv7IzS25GC-X0^I#C9a zq4c&4wmvXopVT-&-{j~LfDGxrByaQm>AcD*864_ol!P>sZ>*Rc^I}9*sfrR+=;cN3 z?rB&sZ>(pg2^CeRB(yP6z1$1*$RDAzAr`XG=cICL<|7m0y<`*@(v2HuRa~>oLP zqRz1;xMufJDv8 zf+qZg!gQ+*G-}_~0u7ydXLsfV)$HDiI{7Wih86u@tj{+Z(8o= zd*XnQCTR-2c9jRRm0oe0G7C+rpK|u3!~WZc|4Id2r}Q0j7&h+ROLh2PaV`eD6B2<6-$%&iqLDj8HsUe7GRSPp$$Tir?TFZ6MENXLD#jyD=H2UO zL{P$8=e~*GG<*BKRvMzN-+GzxmX-X_Jil9IXvCM&^(Efg_p8Kom)7ITsE4WS3Fpxa;AbCa&6Xbhm&s}dq z+-p1h1aa1gdcfTF(G$-VQ`aTH(v{B{uZoki2l%O(7`2Te$%mHspoBnPAM)wK7$cO^ ze{(kX$zPGv8;?ZXBx|F&MZ^tfo4RZFGi7AYPKk5!uj+2_^6{=+-m$xUrQ=PMH{tbL z8&-Z?pgie?EW&$_+|+(Lmrjn@L3G05-~Wpte@@B`q0oVV;2Zr<)Yt!tOZkr=;s13E zQvPGSTHtmhkj;V|=vG_@k&bi__JtD>VUQ9IOjGwgg|!y9PU@@l2Bw6;xk4XclG^iIZ|(SDW6DS~8|t(ajiIef~LUKLH3 zgspMV+qpP016FyS+p<((mPo@wjV0GY?^2pak8DLJR#YL~$?Y#qW31!n*8?f+M9y?a znnT8vdT)*NLG}`4Q#Rnd$G;2kWzj^6IHDFvVu&k*M zIS5yc$VHJW34zXT`c?3Yt*xuQ}T(t{_ zfEs5DEI3b!+WIafg(;ms!|-)ECbT6 zy0q9#MUJU^Jl@$%r#|4e{t{7$1b$o&#|Ie^J=3h-41xjhp?9l1m;=HbX2Zh3Gz041Ze3yS z!;#`-vhAgE;@%vjdiZO1vjF^iqfS1PVN^#C8>mlw03VI@djW_Yjax7XL3Bl(dCM&u zdCQFGT$J0PW{)~X<{H;5&ivs-2^(A15-wP333qqejN{}}^xImg(xhdXz)Y!%-2rFt z%_)f>r==Qn`^jh5vt!B{y5R)FDwGxF6ALrto)gF|b^F9ftkzOjy5&&{N0p0~4unR@ zIO$X84>@Dv3~5|;wie!u2t3qbR#{vO`h{)FsvG%IwE2eAU&fp)`B|tDSr#bJ)oUm# z9}GPzy`&l(CCaGmt&G+bD)q}IBl|LG6*`~`qw>&pdrdHFwNF&W<_->`M)dX|fo3VZ z=H`FPgXNi2I({mzYtQ2VfhD*a%HnFBCBvM02Pl<1N`Hz}<`B!1ET^gTv^$>GIJSResC21AwU;%G zJNl=Ta9t1)orlcs{{5Bgl9I~vz-7!@Q_AIn&b)H?oQ+Hw0&p_HQ=iW9=Y~tw< zx_Wwav#AOVj$aVI9wMoh2COP$y)audAjgOS<>4d-<20s8)>T{1WysA6 z$)w@yE80xL9N9W&thmWVp_;op831b`;D$jf)udy_x;1ENKfo!z`#O%R@J()_hFYHG z0h2_3xw9?W$jMA*+n6fr^VGFTTKH-kp!L0^{e^QoKi@Gs5s?j9$ zBs+zD9oM^ za<&AOx6pNcn*;lwJ&N){GVz@!8##8>pbt^B_mNlpN{yQS0-%W3&IY^18ubvk{pFpoO zs+?rd>=T&*97s#0g=~3k%gGlor3&hEOsd)fg`>KxKvn1UR9LpRWhkqxzC`)JJx4z} zOJHf86^gUV;qbzp!p~t6h|{GBer-;ucSh}O+3hwXqwq}P3w!GEqtj69en$kbweWP+ zYf!RPB~el!IG1&uV+&j~s{5w~J&YEqGM}l-w6ehHaT6q#XdHnLU(JE9Uav!t}72T(t-X1K=rTPopJ3Sph zR`xE_^;DR+w8?APd(bULgipj=m5!48Mdzn6g`IWf0-t)7t0?CNx{K`B9=isPn(>LU zQ$Bi?q%ijf^3%NDh*+8|>xsV=Mlu;O2adGr!uc>5&=XO#eN;DtZJn~)lCOZ<~DT%eLb!Am8mw;nm6KNG=}Z1A#FQD zKJa!ucMOY5RC(%Rm>ZLwY^=FIoSoRCah^EXPwWx8g2;?A`_#;J!0y{u;F;J%2a>2> z2lHASC`ck`blS#9DpEP1`fz7Fb2^kJ@ags6soZxyD81v`?5z{mcu?t4D8)`_En99- zIw|X{d8aidHDYw(-PFIhG5UYb?o!)g%qY4C9Lz|*^l^k#W+@##mTm=Qg5A1c~nnV{B~EmYyVdy|E zdtoS~7!$~Qw9Vz35p6Z5@=g@SSOkRF#kN}vZhe}am!#x)j!1jrh)Y`0m6-68-Of~d zflXqNW7v43rP%!PAPA#d{pL-jmFkAvsk#M^dOaKJK{~^4L;!qTb(QDy!B@=s?ec$r zV(`GAf>W{%5o>IsT*rT)C=m5+#+Jjg`(GP%71j7X1ODi^5FI1!twO%oZO-jRK$1-a zYp(8TKVplt?=q6I1SwIKc3K+fd52}uVKuvZwDoik0z;mC%gwt8#1aNKHg{tn;~wNu zXM|xrMYc(XY~=BY?zyY^_Y89#qA2z@KkCJ1$AQ6A$23$>wg6i%Je>kE5yBwpr=kf{ znYL$REeOI9C)j9hr^KeAMkp%aIoF{+?!)sUFdqY9JN^YZmO;K#MMhjQMeL|YgOi%X z^yfW^X*_yG|D0?T1bKb`EYlc;9G8gALAF5L!%bO8geSQK{)x)9NY54Vk$d6*7PItr zm}CZkX%Dq42q-Q9AWq$7oeQB8!>dIHYm?CpsTwwIlh};77!p{exE_7lr`a^5nm;Np zM8vvlQS3~((W2kff{*WcaKHoZfbb9HO2fJJky-L&nqBf7X+68mlU~d4%U3ayFBcUq z_ZKm&I8kAt9g&tUQ^=|_*;W`wj!HjH>-M|Sx3k+vT=HNyjJlw6C`z6pw+{Hyw#n{6 zzIOc#G4qNV;RZ+A!O*SP4gRE)u=v>?(kdp>uhz{&U83sX)8rU30uuW>(*xFtp0p2| zK!fv`QJgXBDOrfo3k(KAW8;WwsigkDngs83Gu-1w@dOIm3$`PEb z$HEf+CYsUzG*>(A{jZ6e>V$>_@t?9d1NVPg;5hy_6Stg^rQQGE-c)s=vhutdfVoD?WGt+0^LH7Ew*lfyN95RN#h~HH{!6?t+dKQPE`~w6hJlx-? zMO0Kcf4^+EJ5RTphwk|MeS_Y@OQ7NslHW2%;1fbf10uNZaS5%dnTKAA6So0_+6Bvd zzIK|r%`uh3dacSftYTHq^@f@?(iE|uc0g`~?S}HiiZ#mC%*_O00Ifu~${FivT{5aX zG%58~4b2{oo(MC6-+s=jybkt{wT)ckml8VLb54D!l_sQi)%Gn|(L>P;5&^0Rk`Jbv z(d~3TzKyOG3)N@KFthbaCj2-OE&<~$=VB|3NR<+>BX>*D>KO(>e8<`>qxNgZhb@wu z7z?b6hMKk$K6HEC5CvN7`@cqhTj$UVMI*X3#xMLDZr-WPJ__0e<>wBd|5SA{%eFf# z!$2G<%?!;}G~#(n0_ueZJyIU@?F!%Of^uUx3IZ7Vc^aCX26q0r`WONNYfW?JS`RV! ztTb5D)gDw*9LwArU$1`Cu1)NFa*hk;ExWtz6HLASr-81uVJ_+g17Xoyt$d~ou!ht^ zT+&C7yPA2V-#2^j%JB=lw>Z3CW?=-HBUa(alCYNAGm6z=zQRYi;`G1MJHQT)p?Pv5 zlBa*)!mw~cOBDvgjLT3T!$rKwytUFaJciKAr67Rz5MKWTwh0S^bE(WkTr68e-oK%n zha(KcuF;Ihg!Rp#OxxOo-te{Iso(4Y#z6}b%L)R9{@ZUx^E-m$pX}o2|F{XV{cq3Z zf3Jbv+Hn6+-i*KgNu%9t?cvdo1j)Q2@gc~h<PkL~RyA?jQH6!grARe0w$S@U%ggRdfXypFheA!~mfn_~d*_B7!^huiepZq_l&>$$ z4DT6%6TXv=>6cgk9iG?syj)MhzO#Efkc+#7K!2pZu(-!NJhZpGr3TS^#_uVPo zGGA{%zM*=#Zo@#nvHal;@d3-rd9s&W5T)TXfJCVXl9JHm43D+sdyrbRLG+}kh@JQV zKMjXWO+VRGM@oH;BWjfqJSP_rHP-&2i&Ahoo{@Otukr*LH2X|er7|K7l2ITvand1p zZ#H#O^9|d(r!oi{MKxU>{%&7#fNTn_o?j+Fp2frq4MB7+AqRMh+!*p_#S~}3>vvJ~7`5*T?#A)gaf^!BhrHU`;N2^!r za?vTdHbQF>Y_ll2nXE60`okuvn8X*fiY3888F=8vdsPf^1otx{y;D(9S+7w-v4b7Q z75pIUCrla7Lg%)0^V-G1B@8D8-_NRucZNPJ56dV#dv)WN$Rz1ZIf}tTlVT?tKrY54$6|MxQ&SGcXcidpv%n5&~KG3 z-Pd%bP#UMa92q_u;c`pSh8ek0uaA9sUtk^(P}N0(n)1Yb*Mr&bNM@=1ku9%Rx^R8z zDD_i3DGTkcm_R_VLrHLaUhAM()y6M%tzw$62bgFHh_Rr*Doxb)A6aTmc*HDeLX$K) zYNL%Bm3B~dE9Fh;a$$KQw%}i_CUXm<)f>~fuV$%EaWuYrH|gjpS;~5^82bJ3 zlNR>sw1%U0shN+fw&{c46|XHu({k)6v^e}%P+tQbZ%$VX1!FpA<%(G+KTB3yi@BbC zc;jbH{dLHdnKJuv7g#)#(t0FJ5Q+liFhW z*3?xlCnSnIBKmw9 zKn>F}r+!m1P{T{RMhCzJ(lSmpJ$!-90>b!jd7~Ci6SM~gXWGX4G{8crO=%5ZQiPoR z#F8#+S;yF_zFW2+yqmyyDg|pd@WGkiFm6Mq6_zqO{lYYO&lhfey^Gk+U>1|cjlMR6 zK$}}6#OANj;aDA>g`AmkPOJo}iX6$t^gIUyRrNIare@tjy5bee2__Y)^vZOv0TT-AWuyMRDo({pVB{&8T0$ z-9o+3K$fO{0RxuPnoyvmK1+jHvcXTS7h(>%q5TmK9hm zk}e&S_So^{xve_gxc9h~sBlYXOtj{WJ5)HU^641bWdLbYw-Af0hgQJa1l!GIUF&hz zhVF9Ge;0}t%A(gvpep)YrtTeQzX<@nM&fq$9de%RnyvHOLL==r4h?kG2ed|hQyF_x z^&b2-owW-aCtiG)5w0(at-rLgQ8aSGjP>?pNvDP|FCuxAfVCQTRMAqi(Q{x*F+ntp z!@8B>o}&Y39*NW)ZRIlyilH*4W ZFa)Wa#9XjuF$jO?yW$MAoRWOD6SMAMkEEY@ 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

    =Y3Y7S@PHE*kARb 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

    v?eZa;9tcPogn*`sfr-ULgL%AWy^%0S7_`yD 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�`ZHQq) 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


    d}hVL0C`h7 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

    !DsQ5tV!c9Cclt zWNe1Jt80k~?NFY@B3Wl0;GhStxA7~feC7}9@-T+z{(%AxtI;9(q&>y!MQnJa8M8ZY z58-o-uaea<(S;Vx&Nad8?1Kps+B5GFPGnyu#l8uvR(sXwH-oe$OkPs09TMcPv8(kq z+BFH@=9~SITDM+B*4O1*xz~aD+)TBCw=OhmJcoMR&pvbRq;inE-It1AT>)PF+7XD( z_&&21F`Eo^*B%yq#ejaZVG+5=seNi3c+Bmu{X!RG9AHIA+tzZ2eTFt|8vQZo3O5Hv zr~r~Z!*T4Xk0;#Y$=O4oPoEG2Q8TxZW`HJ({~0C^+-2%0S&ogvO*-)eSL5AL^b*kl z*|zl%IZ7o89Ob2NbbJMyZ!d27eF#=v8C2ZwV_?N0HN=)AWB>ZAR_ftyS`Nu_XP<1q z-0~d^E(#oUI;ckg*H0Z0Vh&(1#}Xm26q{h9C(;(`evEn{S?`8F>Ap9|<5w@>_=FuD zVi$2RZb+%#N4|IsE{;hkf3Yp;B^<{?Fl`^Gqo*^J5P^bG3W=c`uRKyYPj`_>6Q%`e z6!ud%%b;AhIEXfL=X)YNWtJ++nkR1VLFq_Ge6`^o-apuYJWLhu0 zLE?4q^$OnpSF_Ir4@=-Na{W5(nc8r?wE28{e}?WssvyHBAS5c&`^EsQI9F2YEW&!# zVmY%|XgVpYS*RnM&~|Rra>ZGJ3fJg3j6tVWilSSRch3G}6aM%4a9byu z7vT@%@w%3HwtJ7v_$vpu-9#DY2?ZaCD<1@UkK)Vu$M2OYBPXkdE6;d(n`Wf?eqA5w zu;Tr`2>}wPM)S~c*W`Smvyx9K^j&(fA0P$aEQ^B@IRZ1@qsF@#7JCM4iQyO)daOWQ zyMRv&VL=Tmewk3Uif&=14c$VwNjc!@yp=^K@7OAxvr2x-d);^g~E^;fCBy{dxK06l6LK3EHd- zPRim)Lcw<0O?d?;cL7B*iB|0XjU$42YO+%GRjZLgag4S+li-)KNDX@)R>&h{ggz7C zhlqh#nhm3qN`DY!m81|`6C;HBN{cunDtcQ!YrTZpt%OXJBR7WaFgOS;vOR(aI;(2h zSuq`y@*iUgrnK=$8q7Bb%?4D3%`@~bfdQevq!}E8eLg%tD zhL-Dl&9UL~3}Tsmzcw=7rhN?^K~D7coO8PnEtzTIT1ghozOhYO5;QQc6vTze>Ymgy zqF8FN|0tL@kQ;y&X<4WxvTiKoCWH|BiW-UvBhL1NXzfgyP$!bA6sACcUxf*vD#S*s z4?YVYjJ^f0iloXczeyixNwKCzOjfRLs85gB=M2E96%%13PId_CU1|=_zd&N}U!o5L zObQq*BUTQP!R4Xv2kS@VmM2}#>uW`0ft{h*e`90J=-&8iQd-h=SlHNS;P5-HX>A*w`}BP`8kB-Mz2 zkwizlxPYJ|E7#QYn$d!IBY3uJq@zgG1(j$Kp)k=`DM)nj`lN!0g1)#sRgor)62{v^*)%$^K%ATEI3ZIi*grJE~>;2j1h$_eV@sIU#Id477GQb zbBxgI_S-2;TO}c@{DKt$zv4*xg&nrm#Mk)#+>|NG!pi4o=_A_(f72F15LxFJ^G=<; z$vxfjA43X^H(OqhMHQEwsHte9Ts^UwDaVFOA^h!5+c3 zSF`lO9BL82{KKqp_63(NG4-=KyanqrhYV)lr-GT6?$p5~&IH*`lNW zcB+Y?p(vq}7!fCf^{%KWn8l#VBQqb!W5X&kOdy;{Ch^R!o*j4K_MH>X+?;}q<`}BG zDe=1@e=ZVE`8-}@R@cC~He{n3c|Q!ZACr{6R3uC!ypCkT;+i{eW4i0WYApj;zPHJq zzNy+A`J2=8@uaNlTx&lA+|9N0d{qt#isZ0aLbKX5Mw=M?UdFxEqkVtQvrxfx5@W&L zd2pdWMuM+mf;109=^KT|bL;|hH1kVXrdg!a677w4jWq^sNq4ph?zQqn2NfI7dgB3B zthq`OI_;WXGm7^9U3(crTbQ_L5I*)LgK0|>Lq*v$U(h19;CCu!k@b9I0j38_5|&*` zcdEnYV$rk2(|++vNPTOX=>SkHD{FG(*NODYr9bwM09hE7$J^zt){MkhAZw!Ty|yTI z#+-zQMw3KcE21}?Yt)7|QW@px0h3Nq{5?0N_AaiD4Y>Aiezf&ukl$iIiy$kA;zJqb z%Ii_DtQ>LG2c5YbbfKOg`^}itvM#9eU6#5CwhjTRY<|G_={?fKr^b4kothxOr|H)K!5aH7MU&k3&$tORu+L_R+`rL^!fpzi;n* z&)+I}#nPzXinK*Pq0~MvWb{!gWpj7!6`rr*y_@3$=>mLZMcQp~@d&k>8^Q60M87#2 z%X4YjU*=DB#>2i3o88-c^^xKgQi(7we-d-Za3;`b9nVWq&N9}N;#SSrfk3;2I^E5$ z13Nc>F!ywZk*X&Fw z)I8C2a#u7lR}eA?Ng?W75^XtDdlfi0XvavvOXEAJCq%3gvEJls6i#r8xogbkN&<%d z`5I5~>e~ai(FJnrC`0Qf$}SVOFyVC-qSd?npe}Z0SbuXA&He$YLus06J%=ILOpe4f z$g3>%p~>+S>B$tB1dTy!s*wz5u5F*1URNmVE>UfiXk}$ClUF;C=cWysxH5IlXtV`>jWuU?e=qXF_A3fYJ}vLWM_iXBa7g=bc}$#7?dW9!iqrI#mO zMiz2{n8^+9kIWF_*$`>vUli}2Mr;tiF4-GCV z4K5l}-yfEJewa$Rqi!;!3VS8vx^5OjefaK0i+!Z*ITB}+JuAlX5rdyn&AL#=S9(cE`M7jdsU-#qRNne{jyc{0sa9vLZcZe+>zpX#b8x{PiEv5sJ=s zc2?%b|I2>0G1c7*X&7bLXIC;-?K^8Px|V-D@DBo*{7(T3=&-Ya(12brtPlcowQ($U z{OX7Xi5zyxIU>_}qDN^DGV@VzW@gc7Z0S{O>nPUFkK@m0&dU0)N0nni;62ju-E~BxI%0@070X8BI|SFtt9Z zF~s9UlMO?u=*X(~50;i%4UI4{lQ5bL{q2$4bbp9~m(f4Uit3T$iJwX_eZXyqFyg7k zqi!UEAn1Ef>7Q9{ZBM2W!C3q$ca}bL+duS?r(YCNR|0g`a^ey6JlxWGx8TlNm~_&@ z{o5~31F!_md0|?C%EKsj7!UxOVDZ~te;05=2q1M8nF$;8dP4*T)k*fN@E8^ia%LNf zf!Ue#WKe3{wdKktd0PydXVgaIPF{;+lF=9ceC-ev9`8TyIb=VS0uI88;*#^3g1@$C zI$P!e)S_fyf2Hfk!q6W#mLCZYJ<}6(`|EeTa*Ei&sszC=)nMuxscm^T^1ZTJs{y#f zl$R^j&{22-9Wh?~D;8#0*RiLiNfjybnTFF<)9@=?oE{7>BJ2gk$LqLf|ir)sXnSUYq>t91zj$_MyLg z=rL6?en6~;`?Gg4W!GXCzcTa`(v>>2F$WIxqYoUwH<_XLsQ{~v4GZ+rkZ_O#y-{`V zInKMS0pl5+95Iua=G>fC$4U0vehCc5#tsJ*==v#|bC+t}UH#N1^$1#Fg9taC#lUg; zu^9u*r4|9kei7Ud(5GG46Yh)}&Hnuse*!J~in^#t`UzI?5SUi)GME5E|*J zbR2Y%cSnI3bC*Sq;9Bs7y@PnD|mw;GpZVPWASWH8J)~lbk73z-s_;Dc@=znIP13 z*AO@7fSqwA03}c*z&RXPy^967eNv54NV)AS96$-72!)($W?l z7ZVnRznHNjyP%vDp0ZMQq&Td{M^}%a48F1>wLVc{kkz+!{+203-Q=fZdo&(7pMLv; zsi?N_7rV)x=v^)KeFNY?!NVmuYx=5bedR0CxYmSp#V@x}<7P`qos|K!b6`YlTFe$M zTX5Z`Oz-d84HU`F$=3AY0ec5>OTu-cXJv#Ya*1+p5CQAE;#keVr<{D~`NnNxX~JVM z*U-inZ3dC?S9Qa>ya;203X4*rP|9M{#CuF9qlypYp$V!ubBu^97j3Njc%v;`24{gJ zu`Ou(&6g#*p-|vW`R|X00C7bfS0D{p;hz{i$#?J|XaWa6I-Gv+`VuzcEs*Aj9xbl% zHKOmRr3GL{w3EUdKb7Szi|&KLbawJdmn{Pl$_)D1HTih*0Rd#WM=>2XkMZTyywTqQ z$rEiCF*)H21|Y4zF&90(HHV){|0r-LCnz9P-`0TY6Nd>+)&~g+m9If6aB!Pk2 zM<|Fjr2g`9E;64|We|hM)gwwpN>KO8ifQ~LxmgP8Vm&sJ5l)f_24+^(v2`9E?WXb7 zY+!AgV&*)I8B_;~BIeOwrd#DL^$B`Eq~=E+jqe3|$pf#@#>VC!Q$RuwH8%3v#zpo{ zI@Ik=E#A{CsAA;y>W z5Ym@doD=alV^#8cw&5P|S{g;5L4hw0=LW{U9}S z(n*K1Cl5i$X2yj7B6GA8XFeC)#+c2rY@CX5E~%ZMqPw!+)R@f*|D~Gg1)s8mPNDS^ z6$-cM*YVre+Jd(61O0lo_OqnQ{>rDL5X<>69*8n56gZ5zQJg7UJQYK8HHy^Sl1V0t zUI7X206A^xNnQhaYzMfqA~IlBO_$vDT|(%? zG8@v2vnW4=X#OkuB)YRzZ^9||mQwIr;X5Zm-@ypM&bxUKgy=)@Q|ddvh}8;tvNve% z4-c(RCu2;KXIbLs5>Xz?*3FPMcC6MN#Rg=O;oy-Qbo8joUr{)swd3b+K7k&V<}sBz zu#!?cf#pTlfctmsZaMz0JYTO9X!o2Sdl2{B;fG2w4B&fAx+4KB_|woM(3B&}IuPZL zL0n3pH-z^%gA6Fd`MyHl1aM2f*u~n8>{T@cZ7`ujDjgxxwfQMtFafY3pS;w|gv@oU zkf@bCc`id8%_l3~iKecqb;oqaOOn5G(^h{Eu1#HKt`e~vJW!o@VpNyl3xgXK((TP+ z#;Ae|wW7dM;vY`BQFQ=y%kh^e@WpjU3|a8I5n?vW@YyKv1G-{{E%| z@VPt*WR-k(kAKLhv=1H#iR}|)|%{LJ z4t-VcC#Rl*Iw=H5kT2vQ>yLzy5&ofpn82w0TIv`RZ1VxcxE~U67lp?gfkm1ce}PSb zV1i=x4d(N#(yLCo^Y=?1Ke>zVy4Ym%W4RQJ9jz zn{id(D!KTb_`laiDu`HMMkc)$v|zmdg&feXp@Wr!f~I-$m;3<~bdh)Pi+ z8W8AQI08r)mzD<9@Q}_i#b%|=#ceOYr-4!Qz^5Zqo7hFJ86@Qvc@_9&PC?d{*%V=D3V;4)A8Z&Op*!Ig`*{a~g-h6&K}E`b(vn*xp}K zv~m{qRIKC6eGiLd`o@qUh?E_ES-!z`wu&_{mxRi~=xO^Gh>J0`l5o*HKmJtf`93F* zl^JIY1>m5^)hhPVo+WKj;m8Yg`a)Vh7P4>)RCV`iE@uX^yESmC-ZMZoQ?-EdJ4pGj ziEj|*66}tH4SGENcp!(+4_u2aGJdBJMz}bq*s+!B(*f6y_&O1Mk<$1Dy^n4io2U*O z#e!`s)%$zRn1UdI7035f64Z%yC*&tG_P}})tca4MhCnz|7CYkUVf>}C9mHi)O$zCy z^1V3GEMBNtX+mL#bfNr+?no>dvJgE*E|9>Ia@w|hbE66nHGP1u2$h%8#P>jEND8{5 z3|2tgh6?W**bfy|BUW}uz@Rsbg(XQoqd&u*QzTMsxQA^i8Idr7Ab?1`R*Vm+p@lO) z$-t7e_~hQV%TT#R9wom)dH@ain^4)zb0I5ZHNE{q)iyv})9U-tNL_X4d8N;U_ zL}qi*$VMK0>E}`79 zrzsnHjh}TAn4iquMTq27X4#<2b)*~Tqo}uBI2oml1U8H+sS0r8N){kh$PWFafHCeB zKniXQ8TH!jhvM;%Rw%$VjzUN?h{d!!V3VJm8R7*F8+mE zor{&BGn1B}Gz22{nWIQg3C(&p2`lqZV}rOS3o_sbwNSRYDHuwOJI!-{}Zn^QDcA z6QtItiJ8UgXvHkctb^IDOtL?(&>q3MNtPXW;H!%j6>BXhBPZ5V$-F|BS_Mn#`x3PQZ?u*nz}4HWI3bYBjFPTcq#XBLfBM*KMcj zPiC-^D&8wUHU8}GwKaZ|>Ak!T&giEv!efat`@mNPuaql>SQ5+12^a2rz6Z|#F^DD6 zV=D}ANjibW9E!b@(#<{5yAVinL1Q%wrS57ny*SFjj1H!dy=Td())~rPfqX&(x2;K& zhdgRa!j32}O%TC&v~?P!GVf;m;9pR`E=_o@7)4==8-Qw?_NW2q3VmUZYnou4>^>pZ?^|3C(rJF8Jt?o6g2W|I;weMU}X_RIB*GnvgHClJk8Ot zODs_QSho?mY9A}2k1-)de8WkP4Fv&oirbp=44&Y2sV45wT<8U z;nBoiFjd)6-E2=KL5Q+>es31+QLbN~CX9)8oAOiR{#pB11hA{{-5d5xfbR9D_^@&s zUPKFdCLZohD->!u+7xHuMm8cd7YMK}PK1H@PG9yM_ z!3JJYLIM3dzGKObR*OCR8*EguEnEd{%OaYdC`U;P2TL7E5zzRKpqxEtP#9>zw-9Ca zS1-*QfLm9UmxKBME(ns#tYynF%dOFfWErP8Pmt7OTX+Ut31~;3ncS@n?U$pQ> zcpU?Ut*U9;P}hRw7-?^Gb;@|$%bzV9-E;BA?Lj)KV5snF-B9^?7){ zs(MrK=*{(KR&sm;&GX`ve=Xx^q_eJ=s!~oiJ3BACQ#;sRwRE(hFy3!Pz(WnSvn1!H z_k_CV`)~ryL_uAZbOT1El!~GnZ|I2Nt49tja2cX(IkMmDie5~t(_1Q15er7ckv5kT*cVz36i81N`8fyv0oVsI?l?4?6UOV;iNhl1?4 z`^D#yBEa$c!kFZsNp5z4;JH74j$hb+c5>@);pcsEfFuWvCnyWl3Fe^y`Cc?HB?6Ly_TqMxAimPt2ekzvJIX;qvoAYA8kaExg1=BlfqQ4uzvY|)E(7^7k>IKg z`?~@`e)X1P-jm#9h`fF0?LNqFYeomiWSNUj_wgY&;i#W@YE-2T=_}@h@`sIuIB^~# z`G$78lH>~7!MtG3+e>1_siwzj;_UI|bz?uebQYUsH*6lCX3ZUu3In`#g^2>vQkPiL zdWA1pJ`ZO!MBjn5ZYe2AyNwFS6K5UmJzf-+_8YN|A#W(lSCu?S&uUfbs~Ik~t74=S zZp|+RHW|hR5sMO0^9<099Xq}}nN#3@qlY(B*w7aOiim%KPuP_4T(dqxVVg_u~1edUbwI(qz+)U2E!xxX?K2N5)I@x~*Gfz@ok%@_VwX`RegVFUvs149FYFfcJN z{&KDPCsVAn1*Xdx@MS{)*WdFy|6Xg;*uv1x&eX=4{*Q58z|8)iZ~j_Qii)f8)tJe+UK8PWMwQf|&Bh=~Q+5kLzY)ZuN`pQ)~Cy3v;P zG$_GirK-1Pn{q?w^cw2kdAoCQLQue7CQv&tjH7ywHtJ+AB?z~M;(~eADd)HD>pv4a zQBSS4ZYU6#zxr;}6F&x`C+744=CCxZ_q3Mlp-V&gzIN7&8*ITZB$*%mY9-Opt}{|? zcpdHos1TLMUj8Ck&|b~-T2LPJC9~EqJb7bvD)7#?=1;mHDNwDw8^goWJcvd9G9 z1h>j-LDCd%}|5d@2(ieHDpi=}tLDglc z(^)DW%d*7)zI#enT*~Mlk@7^&F#@WB+ z=e$BQnS4h%vqwR`rw{RzI>eA;qk6RYt4b&!v7I=m;s;KJDJlP z0=~J0DZR11t*yPCGrgrfJpgu`oK0Qm0f_U*tB9#F!0gEBUvlOtO49NJ0vOr*s^$BH zg@wC87|4AV#&@OHz)nKE23_5`vov#Dh%h#-RoU9u)*r zb;jJZIgf1?(z>e~HMaNn5pX_8uIG6e!X*r>Kkv?93YdHtNUTFiXTUZ>UFbXpNl0`X zLD}isjXiD=(-Dj*Z~W@QS9IxWYo{=PEURVb~$h!^Eb>jQ~e%o)o=$^;u5yXyh@z>Eih0cpK+Jo-Y`MTRzeg_ zS|#mR6(KyALW5AX1Cn^^J;AK)E;s{xYhL-r4o5)*Vr^@2Kw}t7^%p^2`!(br_vuqt z#)C5;GQI+6PJbUt{_8yzwfleXX^E<|GO{4T2blmGK>A$-#1k@*Oi%+wlqFo^OFh*Q zA=={~^7K=7R_=kr8=t$V^pQ9;@_00UNv1PoT|$V3rBrL(?@v9sxfz>zy>UH29>MCm zBt&4Dvy-zb2#JOq36mFBymqN2=jqy}D~T4X07sJxdw|5(Pi{@ zms=QUYc=lH`+dm~zgdQlg!hG96Xd;L*7=YC>>+Zt*3d~$99 z0`NG65~i{4+?8!_qkMDsULcfKUv6w`?Dx^`R*%V1n<~Jt^e0lYojBfvUFM~L;XQ1B zlpcMHx<@*!tuhU$<915a?mX>M39*^@37R(1Apa8f$-NtcGCP|)W}9`9pYdKPEgj(l zM{jrVtZ}}Nn^j7jdi$e?RL!>e=pu8SQWZrvgmfk;;Lg)hcg&U^f2c5h=^DftD;LWH zY!`#Ko35qv@EnR6J5dR2Yd7`o%_sC>_h+kq#92r&R6mycZ7jq{LvE`!UCB)FezARL z$en4#iOgG8qmU*)yXRciPHa+RiNq*kQ4LM`^UFZr*XW@oP&U2Jnk!~Fcwj_}F@|XN zCKFg{7~y+iOFY%U2wJH|>Gw>_s#Zf37TN)Nkzf`9d0a}*@YJvO{e2j`MFod+Bgd91 zg-7Rjk|FuZ$wCOfBjV4b-u+WwAdGjZe_{3z`yw>t5b?q!cu~!%l9Z6fllYwki)xZd zbjo*xN}Ohfa*z!+lpe_!wQ9Y=NT$ptz693Dle?Z04$?Tz{|0vh` z_gumM1CIX_@Bb~ytp3kQ=I`jC!retApL~)3AJfcLE{I=$;C2k{g;kA{r|G6 zjsLhRghqmTih7b>34DsQob=r9Ss7`mGt+%zV+8Rj8mZ-ZN$F`dmwCx4nK}d0eUoDZ z;Z<_*#lZ;y)EvD{6r4-6%;c)k0Ra&KAwa+wn5!59-fDkNM;Y$#XSo5E6#0+K`up<% zGeFWzFKBG+YU^tAhnMUhBd}_g&X)hTt?ZJzwKKLlrf)2%W=oSJ3VT`yW5g*(HO-nL zy=42U{u&3<*)g;r&aT006BhVdJUX?Kt>4Sbc@~I;B*ENnyfbQb5@hmw~##Tk1g4>zUt=8E}GB zehxKb17yex`IEy?YrS>Owoo34o5dx{+BsDhpcy?rnuF!$iBH|4tNZQ<&t$n?f4(vsrj0s(TT1+` zd`yLein^%b+&>iP=Q3e2-!h)d_?{ckB(=_K9(U(bi&x3-Ot%sa&x1BjL>Y_>8Ym1Y zV~s%wI7*jqYU-Jes9e-7jm6prNnpyk89wj1b2JxyIhN}sJ9ao`7u9ZfxYaW=)Mr0l z8&dTs(Pt)Uu}IxruDYHs@nA1e``z{;I_wxvE=R%VF;bQoLvRtZ>4%XzdBLdhy1_?D zxE`tQerFYW4Ybf055pD?wuSC-^dHe3v5J{*Ufmco#VE^!HIEhUfU~a0Nrn_dgj>@M zQ7}+8KN-R*b4=aPVPA}=pq%PCnkJiIX7>kKdW#Hd%230s6a0o(jISBv09(uOoP(Zq zfyUk|bn{(WF8O{Tp^g)yD7`}n%WNc+N+!cn@+r;G2nBQ#hvdn}u$uM+igHSWp+vEs7gI@#V~jS_dt z+DHPiM=d=sqxogQti7<)HSD9?Hpa@>5oS~@11?R*eaFK?Ktu{x^V1=mKMx}P&e`cT zS(6d3oPG*(n$u^R$!>9{b+)#(Snn}ecfJ~PgHg0npgDT%sSf58?D^Q?VF$G$`^hoV zTtpKOq*~EIrNhd>E32@B;w*_GnG4_QPcgP7w+x)h9M_VL-8$(kpvbB2 z)fcTsMU_V$r{(e`+LehFzju9H-OIvbr5(u${?c@JDDJ&F)YzJHDOxH19(Ba^Th!$6TD4$5<9jc{Eq>Z5sgCLthVKR}UU;-z_r=J8v6(sjjI~@O zQf_g>iTB@%hJs9FUE7hq{xX&&80)hZ8?=2-&0=2-fD(}EDmJTthgemztfs3FS*7I;bzmW z2eHiERm<)8=HY0yXMf9Q&vrN^l?`8&c_~1CVCb;VSc4+~e3RybZRLg;0mfD9_+86gTkN!)sHUpGmv~X zkRN?QUoTC6JcrPqTiiEcRb6957WRy;D<=0R*uzIQ^-kRo_EK1>gE@HF;yPK)dpSzCyJ~)8%!)b z%kAxvww^_kiCaANesRe52T&a*B>fgo;%n1^y%}fGC;j|o%AVKYUhES6VD zU%SF{MAqZdcwymQISRmh{`w05V{%d;PQ)G&R6EhRcK#sxe0FA;b&9o5IKjg5g${zU zFIWu?BhF#MdwI;D<-c+{zI6}laM?*zmuKpTre4Rr{?V$WVJ+`8G@*cygAd-d7gE3; zFQu2_!g0e}jHDj68E^yM8^Wdg1eoc&^~1b;rE_y!p3&@OmnPp5VRB?uX~xI(?h!KY z{z1?)BI1#={|;t1lGO&vU(D^dXfohoF~GqWAwO=L0U_^L9V1D$pCIM#_J;k{viy~# z(PIJ9+f819G!sM-#b*2HSLUmwGOh(s%4OJ$gKa6Pnjg$^?eg&MKHXJ??80zUQ2V=a z2-pR8=GsY zl1u&bPdMVXIQ&5~;Gr0T?WWMZePN+q;;Gkt%?vC(xPDgO%WRH5XnOj(6gQ8eJeDU~ zX>yH8$ugZJ)p8Fb?H|+HA5t_G=%tdP~84ZY7&J5aM;xJEpL|Q}vEXlx%+=cJkKYc-iClkc;(;-^-)r=)rU9^0!xL zfTj0>*cxi>5>kI+^VGMxeEU;!l4N5G3NKt}FB((QSd$grV_1R?kPBD2^;QntL zdKDHci}?b>u)rd1%fm>`(I#l92lA>6hEe8HT7{($W!;SgZ~+drO4j`T%6!vh4F+IL zVs7McZZ=M@0)dr!=uT9Yoce~;TTW2)juv=7)*Hd2fD1^+PSH`l>vqy4>JSsz;V2)A zg;~1gM?VP>QBxlg)a(xknvi)Q7YmN^J!Fnz1AW|0D6AwBYbp!l{K|>?p{fiQuuRN` zFjtq|{J`belDX^gq{q?jCBoArFTsapM zqE;LzkTGGU#zlKO8ciq+pgrK^#P=_n73t(CtN0Z%_>1#opgu_EF4>@+CYRC2(F(Ly zlUbxdpt`!G)i$;uU>)p2k|{hD#t?!J`U5|(9*ovm&P=ozP8LOTq#&ig!kz+-+`Fwe zDX@?ZA8NP?mGyK4GzJe{bwo@y*c6Zy>w-43Con*T&a~C`~&QK5fc^?hpv1eDpYb&_6+<0 zCTv_51(z9t1xigR(%8cGdz~66s->peRCGp&(TJn;H!*Q6v;|9&B(q#g&vIYEddS20 zIfh!|sO-Q&Z6W5TL!-HChdU<;!Nagwgx}a)HUUd}=z~QI*AxBM^$HSS1K_IEV>N!Z zEA_Gz`Gexh@0A8_%&kh$AVuhA#0D3kXS@a_Of4SWGe1R!n!9?V>KmWilBma@^jM;j zsFRzeB61(=7wg^?05#V)|?`0*nZcw^IL+Zn~2a}f2 zpFW}WOcfQT%VWk;;;G8t?8FsRk+FEEU12*8y*#>h5wUJ`5m2J3X2>?^=eA_K)H(H+ zD{)9= z?I*o}eW}XQ&8)w%HSYT=4m`ore9@(X>&#bcfG)rAd!3Z{QfcvudVY| zJk823w0)=w#B>mB%vxevGDmrS^M>cPcb4jxf7%$* z&kvL0-;lAKA(JX=-?)lYQtJ?=ivixh-4eFG?5(SOq{Hio``S9&6gUXzg`QC1UAvZF z?zGjKqi$RhI)vTepU z6re1YZ-07~zCnFs>x$TN&|S9_5k5__L25@xf$b7@Bt*G;-V!V7pn>Fgq{8Bz=;`FR zJUpcJyxIzLiogNped~&FD;V6lR@Kq^C2**Cw%sb|4B0bTQU^|^?_lN-9?Ki8d0m9V1N!}*r$3`=*c>rHF3{24?n6DXbQUc&TjZYf0YqQy1ybYXaBBYjxV zG*iOrJLRLWH5wurhoC>40+>Q@IX^4dm$G~43`rm#fmLdmn?~*cmxFEZVd8|3I;QQC z?c{dAY2~omPIo8#fJ$N^73mo~G=D)>Cy8E3o9znJYz@9`rJkci9U>yWm5C{cl|tdV z0%td5dLjN$i3QfLSkrWOeqzQ~p`*XOl^XuAt^x|cq`|&;T(})5HU|~;>TU~`i|9vs zc;;<}*6$t2d;$CUus$sPTgz1Qq~dUF$CJq$=-nfM_Z123$_e(gAL>-_t$EU`F0?r^ z)VEox-84LTi&B|S6%I4&fUidwc&k%aQl=t5u08e6$vK&3$*6>F^rgS0jzTlBHwe{T zw;x;QSzGz`uY=Ii#8XHWK-6CRM*(%#|0QbMJ9vs%I++>+ie%4!E0%}VPt{ROF+RJ$ z85&@MXp$;O!cLi@>k!jI(;_xY*wu#@l)#)q1Win{amTwXof$nw>59B+J@nU*qjHzY z<$Yh+`h9%Ib2&LpHzBlooy~XF)p~gI&F=E`OyBSGjoSbGsSud&2^B;IM3Jm+ylG@t zOH4ZU^tzan)3UVDaWFcMMaip6zi|})rx+ErLT7K8pTm=fx&G(Xb;$# zS70Rap$rPjo}q6=U#H3!*f0~&P2e%0Y4t|A_PuDV;iL(>HZvW2k47#NmS9!-f)$jK`oj+^*eZ zN|ryRO*tJc$1MCL{rc%>u794 z+cKR6=@)g3qWYVR(*ieWqNEH=^-_g}23nHq3Y*HQ&J^bYx=s4qQcL3V@-y$nGdnS^ z`S^a(E2u+ZCpGOcqQ)^x`nPkI@@ zlMtvE@bV14A@-7ttR`3Fiz;ss20Gv!$oHIB@rFY=Tgn0t020Cr_Xe^6Du0 z+{8rOZdfZ!1!qKAWl>Uk>XDOVl>f1^#t`@NGoJqt~%XJ`KMWG>cI@+4~sIi z@09X)n-$}V8(52C%1z2^wq(tV@n)D^ZtRsvEvY<9MW*Zb$DdA9n*mXF;r?rTV56s+t#y62|umxH^20L3}^Aw$iwNk097{5giNZmfA^`B8R5zL2=pwo1@WYgZ1g2 z@#ie&jB56`uOmwUcfNEXcZ5yNK~A@Vy3;qSm-0?isaOl8%NhIYtuzpb?a=e*-jK#U}}@lCd6lTHSB2k!f(~yU!+Ov zUhAYoJc{a(wI&In(R5O%cx8D9ukr@r2wHIDO3_>J_KlKMdW%UCF+f&-sld%teoj7s z-bJ9G=7YvHcA;h!{b)ucek9c53~bS2f>mkO3-*34v=3)lZ}0{GXqLQWMRFkL&L{i> zi6`313jL&B+G_0rqTiVVcI+oiZW;tuu__;@ap#-UNI5Xl7&Kixbd#EeP4tMCmi;y! zaGwTNAd-xxB?EXwN!I$R@buX**PSFo9CsiOLkwQJSXX!&3E;mBb8j|dpFiNr&t?<| zm4HW_WA4K%G<*4>A$><)l{a`W=*dAyc?S_AP8tjgR{>stR2y$WXl`E2KRwSQz+F2Z zr=_+6?RVqHjfFh7sty5GGZyMd7240rJzI5JUjz_5IZBw zz1|@c1ND)6Q8;_9C5`5KbQ;sgg@fsz%C>f$Z{|AFz>R6v8x?6vIm@1e)+NM!hK2l0 z9eCCah%uD+SgjnaGdE7DlJML7o(ZSq)34gSLHnwZ9C@KJ;c5~&wW<>@K&Y-6lO0S1iV!`7wc@2kWRC(8sLL515wIv#--#`wh%B-LTgJ3u_i7^sia49r>Z2iIL2 zKvfLkvxJi|Q<%LDiV|cpy4dF$maFY5iKeAXF->+Y(FjQMk@}pdUY&XKd^GM`VxFs)kBS(F#qF2^9jU-UtbUM}*(#_Ypa z-ESa0zm;4=|8Wi(SuHP63|QJO;QIS>NWTAa@&Cuw>yIXZu>D`Z$X~xlGeEO!O%35A zmR7qV0e943zI2w0l%yv>Vm_5bZX8qs3Y9R1Sw^B1{U-zsRh3F2b5ifD-|UC~Lr9og zsf>krrlkIB7N9!iOr^)*?Gwg7YkYino5=+TRDN88^@%?bML-lXk)SdTVKQ}&NDDW{ zEXTI!ZLwnW3BRQ-HN1g_S`@S;_y-0@7e^wN!>r)Ci!8F$Ao^4U1jMK4obYI*n`mwM*Aj804eTM%u`J}KxEKPkY>leQq4N; zYocn_;Ou+^@I)~FHi@p}2y@4nj+9#KF$GUSDs6k#U8{>|)0qv!R^+9lwDGV6K#iKTmkT7`%wn(TuiBFrn;nZlQvGOYy4Z6 z_I{SC>I|56wBRnFr?qB^Ad+I5qM}YR6u&aKmNgF&^s=0_wD(LgXlc-%h%YUXuuP7( z74A~i;ASKPq#D=xd(PXwfsuAHuJ**XU@fQYsWI`HrE^O<$I2}{hA6|%ewyp7=Syn1 zw8(@qcPugCw>+Mdz7CbIk&K_n4c4*4tn7LdB)^r4qOS8OX4bW;n2v=^T3=&sbSQ7_ zTgFjZmg4k|n^UXa#*DODk3@Zu%N*I?++J9O8di4oFAWo-f$jbwxBdElIF^3}zF>(e zdk6*TUB)eC91_1{AhDd?vc}+vA+#yWJ3))Nn4&h}f^Iu_DkWO8V&k zJqYTzWv@t|g{PS1_$*ejXy$&WM7E|QRlG%>uaMg9&`%TkIZib%ST!nq0XkKje_mG>9^VXWYNs<5+l|jMUv+z51rKSs(CK4?}t|tH;G%9ztTJ{?Wg}MhaKdLJ7PKcYX1pFkALjko=nt~OBY^H~`0D#|_4AR!dc8z1&*KE$f< zk0EefjG0%-p0=wYh_EXhc?$EPAJ%5id@os;<9#4Mub^e+n_vz2^AL_bi z$xQ(BrV=m$^!G^e_cFJCbs7H!8YDuN=8^zFH8*wo7moY|BRMKl&M2w~pWTykX8dF( zkdjZ~P+0Llb;p9^{OkOMU>Y2gRMFHSbjY#{-3QKKCMT6FEO&;Z(CPJl`-4|<3{w@L z6sanC+{ZPXJ-TJf*oJG$CQv`u1X$_OGUC>0WI7|OX~eLSLD z^powrbnUn;wpP2wcdbFzXY-sZ;P@GwUb7lXl6C=F6=v{|W)zB!K|-q_K{V6Y4CCf> z#7DRlwyb1DZDqVK-nbY>Bp8OBb5(hQ!HC?VHF5+NL78#naQ(C~R2k1SR3EY`Mv1^vcElkscefq1 zSH5h@g506*`gEp}yWW&+-UrQ{=BAq7rV-|HI1MnrCfL*B5tG*@JM(m(GQp_Uifvy% zugctHHC`f{(pa*^avQv&@r6&R$hSpgF01^sF7@P~Y8LdI7h$Xu4UGUvgr+vxsj0ao zY2lss?-0yle?Ah>v>C>$02jNRPIP3a5i2Yx*eSKIg*E=wLWdBP{fZ~P_ybCK#3?iP zCnN4n3h%-phNx}6N^FYfxiGw$Web>#!PxRf%?b;>HqU;-XRet?A&k|qW4PYhmCu4Y zK#unAOB>50%McFrF|k5seVUKJw-4DfuhcW_@1Zu{T9q`PNZ;F)V?U*nl`A6_jR!rZzdQ;PRW|V!)zo>Y%RM&U?74mNlsy%Nqmmho-+iqs^O??B zE&egrH}-^~9-^(gsy|3>bVibh-6l7WlEWU#tbrJm^MU?HCenX-=(_^I5AT1(4}t$O z6ZwDe<3HpgO0v?xf*8JHQ&YA}ER79Z`-0HF;BbjZDF_ir0ta5t*p7!fkQ=S}3-y!A z3WfRe@lm@g%|P&$g$J*Er(P#tpP%nPfVMF@$&e(lBs4XIG7aUAbEojz*U(!k!M^T; zx2QaH-vw_d3G<_H8BlOEtdO;n-z|{bl6nVQb@&h+7M=PH2T5v=n3mBlpTWVtV{NC7) z2Yo;L)65Qoh$<#V4wLJYsCI`#ialAbYO+M{fh?yZB}5r2)Qk+%&8TGGCq=%*2WcTX zUCst6K{i;GPA@@_Qyp~B^ewJlvgg@?Dr<~;->Yc_RQ)0oraEDH9*$WNr6Js5z~Lk8 zg5~B1ET#oT8|wU5z(6#wOR#JlEDNt)!G3*=?f2pc$Ybs?{HOE>>! z5?}rjuhp#H13^9nvjQ zEjL>4@S5(L)wlPaL$K66P4=8zTh^`s>|eeP-}l>dj)DlgPuk=>G6X5r*k?!eXK|A!ZeY7WH2xe=WiTz2Tb)XyW$v?%MxM9I*sksMG%!r)*FW@xo`Br zn7MYD7{T4bkWy|Q8m?$LbIA_42CM4+(CZy%(ATSNN`za2?TRkqiiIrQgL&>|5Ltv- zU}VxGnUw4*+*3t{<`{O+u!9#WLl41YDA&bv!8Du5YaT&Xu4M^1vL-`QG#d-v6g%P; zvNr2oc4(I~fwj+Sa4+9)dl(J+NImx(X!UARvhlRtT>ITa+*2gVddBtJpyZxkT3QHd zYm*GPp=!!Dup~WpY>}!^a1N~VfRCdnTP;Nj)OnfVU?})udqbxej8?b zeyol}5O_UbRa8OE{_V>iNH4f?oDh#<-wewKk)_$bJ6$1SBk2wCVp=^CqA#c_lG^uX z`}~T|X7jPFfYP(&Tq3_}DI#;c!oI6}+@llS@*i}#YQ^h_H!yEfvA#jEhbTADC|BIw z41N;NNy57tJ%P?1IVR=`h2ZzFOpm3}s!Pm%k>Zqoq8dfu)N(3RQYh_DZZwL1ud#BWsXNZ&;78JXCV!%g>qGUoMk zvFJ>HY02-&5;Xb(;I|IY&iMNr{O_fV{~dz=c)A8lgLaVxhM3-mXG{nf(nV;R+R>CK4_wWdF#xZo1gmbSiwNXLb*8~tF?Uxhzrx6Uv1);P;&H;7^P4?9{kMOAn%mainxp5wjwmgKQsib1K zVnYqH9ze2>%uVDi#dQPbJY)G_GFF9?tLa|Gs3{RMzkchCf=y7(ubQY#9dM{Ytxd9N zUgW?0Ne3s8=`vRYAT!oK#?Jp1ndR*59sV7elWqUB$o({zw-pEH7|DL3DaZcGMV6jk z5J6)>;7lT9cBiXOS5j;(xpG}CBcgA>a{cwGAi7K!)A$0k=cxNI_nYtG`fV@!`}^T2 z{TFMGTrn6&NJv!4Vu*#&mx`L79mZCj=f;Ll!Hc2$8Xwd`T^d%D@dXkRmFfOcV<9`Z z8~pQZw9aeSA(T8qy9>*&x%U2)Q(h!v zskd4)Ie~na7(-@RVP<_7VUG8aBUsE@466LaFs6<#cB+v=2=%_ z3|j;7>}+rS?9kjIs$%e!g) zrPdIi4)!x~)pUQ~_D8Q0jpE)i45NIz;#!@qwYI{i`L6Vf>BXF^JmYV1)+ zj5AI9dXamnDQI&cWwSLgcN1zTeo54Q_`oCFRUgP~PM4_%Nf6j^&M{EA=G98wfs~7Q zP+NduXao?O@iHkGNJIa+1LqgA4fl*Xakeu$k^8M{-h(VRDe5qvna!we#<&jl`!3L$ z75^7_;p{7jTg0wueV(hBKzbpDnVv64K|U^oRgW0*g(%WH&*^G>albt{Re0DaK2V0k zbt2?)pP-H>AUZjR$iQqMqk?K)Rg-?Wn~3eS8h6sclTe49GV1nX16zKfGvowLD?%P^ zWG-Umhbg#*NNFFA%DgQ|?i-Sy^yL|yvZu%n`AM%_%uMx_BrD8~NLjqJb0oIh^e|AaXc0L($*ZLOBgEM0yq>Zy)W>u*CqqzOa; zEkF^ZY|9>*6Pu4Fsleaa3WpZ$hrcQs;%??cKzB7HBY9lse4NZ-zP)*Qf-yiAg@z=7 zEw+Inkfr#3HGrr-U@JMQdfoy>G^#w^ekfh`olB5rFgzYMx#L7IP?>7wg+lunlp9UP z1V)3cp$>BGeer^|hy%sWn`C!c9sf8I-Q${Wr}VB2?juge4g-V4=0RE69J%*$R0vM^ zSF)i{gNmIAM%*uqL5_Z&D*U{&rOMaf>K?2Y${t|})ujxQ-`08rr#WuQq2z_f&Su4> zIy>wlN0#f-rMs!4Xj!N$ml-y=m2yWvzRJrV@&&KZ4>uF6h6xf3ey1;#5CcPlu=cx( zG4K{M?#;WOoxwE>dS`q_LoRKS#3A*l^U2OIP!WtIHgLEHy8GB1Y&*Xpd#;OD#88y`G0T>haACXxg1Q%ymI;6{#l{HfCE7VBO3!)9H$OL zR4hpml1iwU_b9_v9cGy(HVZ}EIWcI0U*cvlPSLB4a$uIu4JHl6%3(P>(@nGUh|ASF zTcJGRrXjV395FQunB7`_I}WKk8D~&v$!Y58SU10d)LP?ZC|rs{Zpn~;ZGrbfkS_hn zToC*EON?$hNsld3Y2a8Y=lug6UO1FEVs^2mw^ zAE5vvKoo7NLZc-$fwe*!3&G;2B9_c}mL&+noi^Q-29uwpYr~&ImFl%eAs|Td0PmRS zTPy7jY4}>+F8i(DS@xTgS)T8=k8kMyOjcAQ2#N@@MmUT@FAAT9)-4xJO^;K;3s;c! zvJ>@h>cJ8PZDj;<8m`@`rTC{K0Tq}Ra|x$S0QlzvbnBPakw@9P9{~ORUkA0R$F8ze zDCI5st!2{srN8o(*%iq zFm_aJDMPlCQg{VB9itntggqOpKdafS>>;U@Sh25aNaBZeK_5i`$9|R&pZzQl*7J_w z?^IAX!JLrlLQMz0Opp~F`{^-BMWx5*C$d?z86DO~54jhbMq8|6?_Z;G&`e@g31wIZ zbH*MOD5OZ2s7VY1K$5n$i_4A~@X)ibug~!kZxC0g-`Za^l({f$Bu=D^83a zgNi;mYT@i~K}z*PsSb2RTQ~oF;N7?iI!wni6T{>5RUMWGif~U^0q6rEu;Yy5vrg(J;9ip^9Qu6O%>JC>*+vFB}10H{8 z)`4#9W&Gxt?jaQ}A9B2v@!^r~5jtEpc&2Q|e;j4b%?UJ@*M?}8%j{fH%iY(7Z1!=G zu2p6>p<(z2aUGU8s64rw;UG2I?!{Sk!#CVEl5Xfd%`wqesn#2CJEQ$$YWu&DSpR4*|0fdbl179w_6p`FFGv*$8-#Hd7CT9cBtzmC zPC8BA^=eJUyiN(80_WkTAL z;j(*$_3RABq>OmOP&q8foSxKNxZ!!t?zE0>H}yW;SP|o#gbO^Ri!B8%p7gYHg>5ts z58;fXv&rBLhTV6u8yCG_U+KT2lv7;@H46+yCf;*;c=9v=gqcSb&PXKyL=Bn#4U;!gB#rG~^`E~>8Pz$%oxn|{WBHtSQ za=JJn9#N%SJru*fabf}V;cV!1H~9zT0L+syyhW19>>%k|7{A^~vNP0Gri#2p3XPEB zZw9(q>U&tkFRCCI^<_Svn*2kcN4I;H$;&z_h1h zqA?jNLi7Y-{*^!Zcf~pdRH^KX(cyOtLF39f{AZLEZ1v1&i4n1~IZ8%piG*CW{J5-( z@53{qO^_i2#7R1lwVb5rPAM=Vv@CZ`!~FJ%K*2#DQn19}O?ToW>9?bRt-gmBy-LqS zVCw>JCc%A00ay?FDPtN4d#SqYg!gUAl1;@hpk|DdiZKrDQ4MemwBu}xh*6MOJ5gsv zYlmi#OuJ!rHy9)D5W-Y&L>f|YCF9Zx_OEvOYW)uXYzxG2^mzsmjxB#e>Y-8Kt2QmI zU}1@?Cc;0^b<`QgkVBARW3ABSI>*2?FxtQQH98j`I;-GOcc`NyFDd?gHU=gWBpKT;(^L#P|gvu0IXf+QiF{`$jo~>MAS5nMTHOH2qpS$*9-Fo?le9mB1;4M{dzq*7c#JU4#o0-g+#7vG>C#g{c7i#yx-X4v zy<%?YFgKuJsG;SLMq7N?XorgjG{>0HYup?jkE@FL-6E+{kpB@!rhGL5zD zlIFZc0U+0|k`KG%Dk%?Iyt@dG?JYiJInpu~mcXh}G^c7WfK8oK>kg)TK4<9fwhIWl zBW+gB!Q1vMCo)h-4l`!U(hgtSPzr#v%O1k6dWXy0h{RMBo0%?{4D)~1Iyr$4_Wj)G z`GI)JFK4=(%`tqY&q%3YsI}nDwT{}{^mGhFOWJr`w5#vE<9=I_x7MLDa{Ozz&>9-o zr?Ooj>7|_mv*|m%OTQBrCTOqz_ru`{ixf47z@}6cD@*NLs({huuKQ#SHqcxx+SqnON}F6(^3M>;wsUz!;)bma%eNtS*Dr;aSvs%+Euw>x2)MZ+`htrY?f|rEZ&rPY&s@9pDODn+EzE`B30}#?7C{ZYqT^lKU*1KcTeDJWQjQLeS*1eEBSv0bNbLju z1>FB@hIY4q?WiqO{3~s9j$7F)mKSh!a~$pe#n?MVX%=)_qE%^IU)r{9+s;bcwr$&X zrES}`?W{C!{-=A~?uWjo?-&s;`z>PZh?r~5HRp1EyT`nc7w8#*)Q8cs1A5+t1i34! z=7}3{Zfp_1`WWP(Y{+GoqTMKXHVdNh2z`rMM=PV#<@beTZG*Dnl)01AquQEwA&}V4 zXqLI+Fd8Xg{U5^|neP*-hm_98a71=AerJ9(3&($FZdIX^j_8&8J6!ncn*WxOa{MG9 zx8T}Yx%D`pMS%_B1tPY2))g_(F{YerOni2#2?!0Py+rkZ+JZjvirqG|g9`jKtpf{h z7piYFu9fLUm%rYG^DNr^5$qV^BdDN9U9VitK`Hu5 zogR^AT^Ls5o8g9>f96B6R`%ju6tOKZU=7`>&7Vv=tTCZNs#Cw|S)O949cr;#ShPpG zcNR>{IyvE;i3b*7qu_&gMkMyr2kRohYsVpqQIqB3^MNsWNwrWM-RBTn~+H{1Ne7i z(9Gkhb&`Qw%1DkgYFSmY$ad)y@FfAz@e(Vi1=bySd9%W>>}|0&DJ9hsE2vJ(ZM2AX zYgl$sgV=FYy%PX8lYEC}TwV4bOU1^D#6JW7V^T54#KJZSi=39Dp&YLW3(oNLmSTo0 zca!a5=%Rn26N!y2_!3f8)Po+NxqpKn70cCYs-qtl5^BR_eH+i7n{kRZ1x`xbbUzSm zwMFjg_Q^K+)=qtgb$dsQ0bNup2Q|sKl5hF`8yzC@`Kw23{4cw zziO~v_%my;)5-h0sA}=>e;MDf<#~vL2^isc;15|v!9>AK!XWgH_CgV-W32v{gjYF8 z&gVY{I6*)2|2x0)Ct8Gv_4hU*`?a>nYz&H@F_%S8<+T-awSshWIp$rHj|5I99W{`)-hwKrs}k3Q)&*)inc?gjUNu&<5eKblA12Q=|?m z=~Hv#(@s$6@xDqn6gNiX`1+{-Htp?w^@!T|W4^<75ynHO@fh({Z#LAmfrHFZ zGRaz%YD#Zl3j%E6^&k(FOS##wjsF|cB8avEWd?0+GKg9lZUpvHp-X8dqepH8+9gsM zG#pHmkAJ@<|ZTQ27{q7GN|J$8x2uuyt$@Tc}9T@bKADp z{U%w4VmZbSA|QkDK-%eDAAhd#u)q~B$)Q3kwd~Q@(ygK|zX;ri1loqR3)m-cvA_kP zfx`U!J}V^9PBytXlI;;nPIA4igu!n)oE4&?eS2<#T4T|cceAxT)=E=Y5KT>+QKUfE z=D*HE;{bVvFapj@LQ%zrtB@pGXuwXx*}%N)@A-Y}4$ z4U`E{jm5P>4fLHN=@{s&#rqPo`bw5XfejR%-7B@D{f%bu)^s{*P_v?yy%sFbe0TFZuR1b<&7k)_#Ow8<nz61QTD@(zq>_{9Bk+$hxgwCD3UQ|VhESGu4M2=m!KcHA&9E9M&A9@Y~)$km>4GT{6m_yxjwCiKO3{BScc=Qb_?W3c!|+!FEc5U(%VjgK?VSxyC!4Y} zBRxwF`*z}LfE!&8r4ULE1lp`p!i(Iv>CuLE}`Kl zs|0SmZVxw}Tpy(&nE(;bTfKSgJP4EFa7uRiU`_5G0_k=SKX^E^5<9nKa+sqcI%c~Q z_d-tFoB;dHX}biQQw|im;{3>vot~6Xn_gGoKnJy{DyWEa>CcQPNouZj%ax(aVqvdR z{*LPO1q`=nA1mSNytz6?#bW7H?T=-p!M*LT)J?&6@>~t%vm%HMXG6)>jj)S3o?fqoBC$K;BL~VY>6# zY?cwad)DE~(f?ZUvsDiWJ&K*1U}gyfY-R$&s+pA}9C`liFkYKE`S@jso)~X>qjJsU z-xFSY4=$Z*3RJetIYau`zC%4}_w(9rgxVpOJKi?xh@Pl8>GbvYcxdqEiKUxUSI3p&+{`FZ&2@lu+kxpl50YX>PN=4wwsvAs5>m|N1!Ho zYf+w5U%eozh+lUNqSX;B6SoBLKBj+aMrE9#4x5$4ed;zz_PlAjNyaL7nSgz3sYNipkd;@Wmvbb+YS3eUzA2~7Z zNn$}XD_uDjMs#_R)Q6xIF-3NJ-rQ77^LxUhLlQf96~FSClRR8Ct+WxFLGTy) z(CWMbf7XdJm6u5OkLR&)CMtZ$55L%YZ#_^t8U&K@cOceR?6rJb+0n+?l}hNcl8I+= zw!p!6#y@23C$DPUPy6~G_+qVr(?s%xsv<;>>_S@a&df@QOA%~i_tb0MBFmAhV$0yC z)HE~|J%<5MD4<6n4Qm{EaXW(QOsO1$mS&TAHAcT2ukh3o!8oLVE#`NO6(b7!u=O z>Gpv14Lh3nxJ72?2lz8+`0>^}_?Ve5@{zJ%vU^h4ScuN~LvHnQiHn;X7gQTzT; zU_rz|sLTc7`3EGvQ!J4ipfstz6fm**=9`T&wgChvYN;7>llbUuEu4m$Id;aQX7PFC zW+GTZroZSsOH_hWG1j&3Dy-TCU9GyTG++$xtg0m~W~Kv9GF%9XuU!*n`{++wL8H;z z>L{59G<01r6HGYQp%;+WH)XXEh3822(gIAJn6x>6ImH?SM7q>Y_ToV~t27>0D0CJ$a&D=#;$ zIEc(RT_#CuGJuxahhUJeCU?t+iaPkwP{diL064!V7o#>%=ZZ2zdbsKu^8>fB|OPLF2bS`N=T|?!V>+)oO(qDXj_ak*{*+UgKS`?2@~!4}oEj9YC@N zStKiSprBUla3D;0xe7xwQmuHOnFL?{)D4n3ktSxIuJxDOvSam=f^7>x^@y=I3c%&_ zmxTA`tLh^$5WJD6vWE$qRaFC6Z46zL(S8%;3D@Ro zk&cCQZP~G1jA*?4_DO2>#E+L|VCrPMVYqoe`3Kz#Olu(x!B)3}vE8s0QCD|ifDsjG za@CopwtUs^p4>f5vF9*?XT=>F?QZUBkSt%e+O>V z|9u$xpFLA?GPn9)A{Uvd|A<^BPD-+soMLzN-5Mdf{mI=BK<|EARKMq28fWun{a5`* zWq>Jif;Q5<+xGP@lT(I92tzGX?X2KQ)YRsRD*Mjb4`s8VmV&WonS32iV+cqIioXGt z`i$KiNs_EVZl-ii%2K*yFg}4}9TFI{QH#r{q*|4vEn*?G1fM7Iv$}x7^ER|;iqt56 zh+7fA=4UicJzgQ{wxA+n3~f#Js<^vq3NPT zCq^cohlfG_@+32glp0t~P^_&zMKtdIepD6Zv*BXP<*(nBgD+dx=>)L^qUfq6Hq$)M zTqj=7+&^u3SGID0T?&)J;8~!&s4NoV*N)Va9eDhalLOo}CQoU$32rv-Bby9|<<4f8 zE5)Q!G{Ry1_yL(lBTl$P*_YEnfIMYzEUb~yucc%xn?AbP)aln}*z8U+T8~do!5rZ% zjFY6|;p{P5ph=fHZS!J^A`pP;OYjgPINt$y*Z_E#nXL0M{4!eaW?|@6N(!-Hip!QOnnyraQFVxNX9mrqP@2sT$Lks{j8SOZ#k)WK=We6;pL?G8 z&l5u&M;nzU)A$XwI!5Y8J%@^E0ez~Cly0*BMPKN8Q18;Ep~JLT0Vl|GM5GlV&{RICL-f9spU4^QfV4|%ce*ymZ?H>TmqLgG2Tq-Tv40IaHXV6TRMRQ zxSK}Q4F2+@Q%W}r+36hbY-mQ78i@nb`Z8CPFjdGwXOU!KIkQ&R?EUxZfOsK_&BNoU zJ=5{i<*#9t>ZW`*C_rEKe6Ou>FJAdp_4Sj;L9fh#@b>ZhKB1<%Xv^yk)XP!F;VeZe zR@>vKUWv8?WPSNO0urMx!exDm8n0k{?MJ}Ek287%)4^AW4s|bJUNJBCqaBE|j0~lP zbC1K@#1uYC4O3L+MMPMYS_|d9PLz7${kn^sbjF*?*e%5o#&^Mr5C;(VhEK-9GH`XzZspS)P4U8W zblSo56St#}KfoIv{FXOn4;bcvu;i9tdJjpCw;%omgKr;sbEvd6bm9dycaP002K)u6 z=RoSipGv)#tpIIj9{d)S$}Uv_e%{g#t>YGnB>0QA5HB=u{z3%1L|N>EJEnG8U$oo5 zFp03PlwJ>+6_1HTPQ76!w4oDEQn43sM13-8>Lmq zF9KrJ3%#4Sru7X3w$1zmSmZc~5sj9-5pL}^@}y}Gk^F}kH5AGApK165<*%y36*MBoQ462?@e7jz$^@K{y2@4j}-nK@Z6VHPi^Ga7;QY{TJ!KGvHl&*vP+ z>$a1etDN_jYw*xqAV2qY26#IJPBXC9-YGo`@=oXGnwgchDZUP-#SJVdQ4?^%h7Mq! zueD0=Icv)T{~QS5*qVlho|c{w^hc)F)`ByG9haTUye@s~gOa3Ds=JwWeqsdct4J`x zzV&n&4ZEeGz0iITnJ4IAOP)C3HcmH~QQ*M7EPWw8`Box?tz{G_n`-z+@WLoWMo-u@b_ZP>5#pT-al;sz-ok|? za>h;jg$gzaLI?c3&rgq_L%GIbbt`1roM3>3*u=Cl|DYOQrpjc7`Pa+@Sp;*}3Rspb z1l{UU>`EAUz6~tv_dg7jgAP(%;&tqEC@1g_9UT8Z+9X#15UN*wC44uDd!)ucuLbP= zG@lBIxr?rcI4SImU zbii>5->QW2jE$A`&CSIHb!g!Or<9 zh;Wo#fx)pFj>aB}_zGvEKOd)?hQ|k;_)7;yRJobMslP)y zI8Lo-XcJgf;3G`Le7UeQ3ha_~c#wx3+$4B0YPkV^XyJe;SVP0#s_qHuYLl}lSUX;t zS!j$)?qKJ1jb!-j70d9jHQZJRFHS3lJmffIBIKuD6!@%tME&pLPjXPZ=#GldUY;&UtYVaR@pSI{{G>4kzs9hj{G=j9Dqc z_)w}4qt2m~i_#MU;I~~xFiuIeGE=Vc;uVExb|^@iVhGsZ=zCxzHUq^=fC-n?`~g{D z+Q10_hD!|5o&|ro1;4o^yf!4>+#V(H-;h`nWu&cjzO$OH&cA@iL`xflOp8Oh?cbp{b_Q%FNJQv9__W;%Le4Tb+CgA^w5`<^^_T z#MlbYNOF>2#fut#6!%lMoskC_17lIiO0bsJ`A{q2*tJXj-C+)SC>bgBFuULh)0&!t zMv$!&y>*rPXao5O!U@R`{`m>U{R_STZ+{067RQ;+Wp&XJzw5Q_N7sw4Ae8y0xn(wZ75)qTf6&Pj>o#-@aDE1PB_5}M4);FWmnP4^1YHhtfCa`4yd!MO-nfMa2j2c+O&(j_hkL25 z!w^+xMGXWt0_%p>9nBjCZw)E<;-;DAA{phtiV>*Un0&4p^REMp8+?YSMx3Y`P6UW6 zaS(9Cz`U8h%?^Wv%`(0*ljO7iEF^-#^`zXTI zVBBK4p~^_&8>}>wBTeImFXr~J>^i^Ta9+mu9(_g0s3|P$VBMAk*-|D9UxSsm|Jwz9 zDg5mlz;{4(BuzeD0M0#lsI+CmkHYYhIwK802hLYg0VYAtt3xyL+{EwtXpw*F&M4w#~VbL%OEj$h6LUYg^$xR z+Q42}561gLefBFCjhoXUilOsR$i$9`&re0(H``mfHj$I^F|%)WWkzMB@VkI*I9SwoeqJ$`7^Rj`^Qu+4q4F zxogw%K!keTv?!n|NO-EYXE3)Ut_4hCw6JaTdJYV0U_4HbX-H&SQ!>C(8;uk>$Q}%9 zhEyFvQ;n?=1}wj62Cq>d&8XIa6;Pc6sc&qkG;rJ$eHD#EVK)vgg`4mp&9JJ>3hVDY z)D_&Wm)hoLpAAw7oBH%Vn*O~?0ZyusCB4xLCgWs7Y+;H~6~LXlsYh;cj+5;UpvIP5 zcDKmWe>)0i;L3E4O^#l$Rq z^!Ax_^FN0&xh*Stv2aeWl038+^sX+HrOqU~38N~xTJ$3ImqP4xp6(kCyPKgD{wcKX z^7V5tR||=QNq9b|5ecUA@~~cl^&8@@s;-Evwo{ za;bny=FN)>fmA_LtxNMk)yOtZp#?6^rCg0|ywkJ$P@bwp=fstTqyalw)5Z4yrh+3% zCe7_+i2I6hA+x9P@FH;;4(E=fRk2kS3>ZKSBiphtmlDz$jKCTc^hc zl5XrULGqQl3+E^MK<|JpzXtBcx;*g{SJKFrfQU(P#-6^%0h=Hd&UYhjp@UgTQ#K;w za0+eYsE6lA39bMsL{z~2=rPt`y%x+%rAyYubb)U;t!b`A(-doOuH$K*OBa{WX?Siu3p~2n>-xakb#JzFjgQjB|l0w@VRI65#?9)qJ z1;4KJ;V&)`1HIF|L3RE%x{S95nf-(95?k1nsj~AkYfAcBECln6@<#2_P4uROTuf!b zE*7OS{ft;?iEvZ@s z_uc`NT~0?&k|0IED8I|1{{= z$UU~_A5%JvOV3LYW{82asC(=A=r4`=Ajy{Sq&0Y$C!r@IrvPQ`-1#oHNK1l~`tA|* zv5Y@s-N6~$%JAA_J_fb9^Sr{phhOurPAl>OVdA#?rW#;9geVfgVhhiXfu8}NNL_3j zB{Ag_NE-+-%hbl9L7(e-H3%ADK=o$hhBfsoPET6n02dN-OsVPpvj#$hOV`zyF8@E~ z!G$mDiQbnoz#eOO7|bweM5V5->J})F-(z~dq%*KAxPADbk zzvZ>1LU}H}UF1IXpWuO~4Ze-&Sil8C6=rG+72zVi@f6>IZe$9Lvr}y>&HM>oUR#LGZXw18ExAssN^mh zfSntXU(_5&9bs~$I6C_Ii~N;ayiNU10GoNK?&rmAEVTi#^lrcDgp2)Xqm~G49A~iS zpG+iM*17)#{U)Ik4JEM@vI4JkaHCK`(B4L!IxuugpB};V!p4hjpm`UK-)Z1#2^Q*` zz4UNj!+?70P|a&sB|({!H>5{;1TFrq7EkP2G|aH#o!d=x<5(~I1(wf6?we-KLgI{P zq!#gS0fskN&RD)gFlEsInezJd1&=yM6n^q#0hTvV4IjK?Ab&f^F^f5XfQD(hYp`(q z8@3uNeAyy!X1{>}mq0TUn1{z7BKWp4M0^K3aE9c~4o=H>Gi;t~X4h1)gq#n-{GaXB z&0TOY-VD0YPLw#J@IvD4?W-5!aDJ!g^#%OgySkJSb%{u0P+v)YEiLHlq7fhIL51K= zMy~O#agqvk^AYj}+e-DYF4gI$L*UB7dqUAOjs3XsGA+2@~oLvAk?KDiTX zFxwNHyMk6>WQTii#D%e3R&`?iH<8Zt8j^JN(2I?09@2V6WvRiGTUfB2Q8vVYzkfL^ z;>K3J3a3fqX0^qY>NphGoT2IrFkQXDb_ByO>LilEBmjo+H~Sc8DS*z*dRt|ERAQ-K z6BPep;M3rLk$@yFE>Z~}mKz2)I(Wv>J5V~y5^X@>SYX>~BjV6Ij1L9;L_MMI%I-!A zUQA-!COV`OsjcqfId_Kfz(78Dbw2M~!@w@rtFeXFX#QSkJI$f=8!C(m+!AyQ!Umtg zZDpBsVVs#P?fmXXA=o!Y512D}m-NN8yqeefPvT1U4!mc2cjaGfp)O5uL22mI9bq_B zHwvE7f&+Yy|IPesG}t$B4`iW>X|PVu6ne}{`6&nw=wo1?7uKxoKmE?)?CV7}+_Yg^ z0%tp_w(HCk)8F;1u{*^>vUU582g%oT#)A%0^Y!6zpreDKt9v*fehA!WS%kb)_R(@PSgjTHXuI{LzG>(koCfl5Wr`NM}feh=XAg0J`n z9O)4F7I9-lq)gNoV0zp^0J9DZ@X;YZdDZmc9mS>#L@TMkM7W%QR^h zGnI&#C?`Lw*Ag8q5ORLY%)f#xtPrYQu>k)$?lGn(ilj@)@=hQ2HN9nfxuLL^>5!ch zR-{up(qXmB`tIBHJ@gfP#7^yGCz4>54Nq4t9QZc4?U}z!8tThf5@OXaRP|+g*?HxY z$5nQA4y26LW=lg);-1XEImDm#1$dx^Q6#w(DLORY5+600YBpbQl4R?bh z-;r^a`SQG$`=!zj&`;ykP@f*-x5ikK@cvM>Oym$OhVC9hFYM#Bvgr{`l`i{SRjfaT zbE6{c<4*t;{!uq}xUnYn5(%R~eQJb`%Cy$XTtWzJ>7vq zHcVDt7NX}{!yR%AXMoS|7^gg9&AI8qQ_4Ae9Fb-gCehfi9}#k^5R)dI4q?9BnkKk3 zp({K@RRS>JT)Og@+!8W>77k7;ho;NmRY>mwqu**4VO;*Jz)V{K%OEu=D&`PcbAq%c zh8s1JawlP`Mb1MQn|c??5u`^O$Rbp(X@SiO#vqqf9{C!g-dkN>Pv#__7m$y$XcbRj zAxv{b==nwjnJdRC3SL2n^7J@)EzjoMMeN)pOTmbq_I*K^X9_S#FG~!``>VCQp3G^I z%<3WBrJf%NCRBxDN>=_7V|_TVux;&|W-)lslPHIiCT9sLT}Ys+ps#Ayakgwv^F7}TtzH7{nJ zz_It|mk*#)t?pN$WDSdMUo{H*Hw1boi3Vvc(qsNezYgm>!Vn`njA0u{&K4Qzw8u1v zHWw~X*Wi?Spr)atRy1;RBL(5Y*qd(Y>`%x&cPugjFs4#l99k|yR($HRK%^fW+DA%4 z)kK9+%{{l@l(z9fY!#{L%Rv(;j|olT-C$Qw5qPLuak4*?mu(+1%)}N57DS0_D%5xc z=Tg9uLH;!JAAIVArzO#bty@4yg{+uS5h+Go$DBsG*B6iQ>YhiyLsZ)fx`qHRQzR7f zFn!&H%t2}D)z#lBQsXlTvm9)K8D}!WT?UC4%TAp=V>6v`cXJQnw(ojrrRCKR!y2Ro zTL@vUO9Hq62MU0MTtUrjPby)^^{q+6lI2vmQq~_73*gs&+Nt8G z`oZ<|6!*AB@@)zbVAR)9ES_CxTtI`Lws@p%B-ZAc|!*wxP_53oN;cy4sp za^GgHm_tSznIi?#UPLmPzs}~bYk&!SxGwE z+{<}Q$oF31+AdS7%@_48kv>mi8RQz7a%(N|Dx2=qeKB2$mm>88gg`1tQP0RHFf!;d za=&O5;=+7%O8x>&4HeM*B9($Qp3ciEugns?b2T?r6LEtUIk>gncF>Yc^1hS8bHjb7 zW~vvRpO`@k_a-K{9?k--BVH-`0mnxA7Dih_o2$f>15b)eG#p&X@mjIDm0 z3~WIK*b@=M@1sm-Tf8t?m>n0*!bOmXpL_ffZPryX)$Nv;n4CdNg_gy4_mZI1pY?i+ zEerGNWe}I|Ton69KSpRmoR#Io_4G~ra>w(SlNRRze-{Zm7BQHcZbSRh*R+h36)(Um z?I*O=Q@z=y7_|Zg>ZqsiVW)b@wO)TLonZv)al=aGB5~@2(w{t3VS$!}54D zsYzH-&7Nf%$wlqV#OGP569P?Ntr##F0-TTb+cPrsk8v8^k++BfdA8_?!P}f zv7n4m;FVgf0Kr%~Qva8*HsC<54^XXYLaTcVO!}Z-uzlPB;?XHXpioQ3knc!h;$%)$ z_Gai`SxSD;GxF6ex zCt<-z#BLrB^R!nU%iIrpZ`k!PWpD;99uLB(F)zvm=e|9?lr|3=pOdVVpPu&iTt#xt zJJnX}l&I7-0(o*lCVJnX?Aw8N+8?J3Th#q0+3^~7;Z(n*sz?kwRzB)%?r z2qm@9y8PO{yq1UOc$inm@{v6hTy) z;lI%vO@@v!fk^d84@i51Y%g~-KHHq_5fH2UC$CkQA#c`!3_f2vE#PYI1{i$UTWvnn zywZ$#+~X$CqQE1}^56^{`0j{3f|c@+GoO%raDJbxS$QXlFE7oFIoRVm%H?&6K59n@lou=)=~GDc+)gT& zx5i`_gr=?8Zt`Nw(ESk$regP!VMhs@f1)ehxO_=$X=P{YN)n(JvNDK&*D#KMoz(o| z$Bil`igaU3iDBJuih>e6mHZy}`{cRS6k>*WQ%Q-e0cztzM5-qJ!1{IF-haEEbtlJH_c z#{Ke^!S3%lGSRYE$Bsu$4Bo%kmw4@#=MHwVw@0~Q(VGNsqnCvUHm0>(qa5kLlQfV| zf%>FFYS(XO$lt)fD)7baD_9Axjnfs=>kq+@t`PoMfa`~`g`te?3;Law4E3%9*|B(O ztiY>^E%e2Rm4bDK-O%p<_Zf)i_J|;LtPIzi?wOchkB!C0ZBQR@jwlytD_(_r7nOzn zPCgwHDIor0tIx;w=fo5Kx5cKR{EDJZc-c9++0uwW4X)p?;?*4Hn}Rgolb^x?<-)i& z@T_JDj>tK;JP2|gprjY(c3&m2F`3ZSFF7DII)soFY;?e8Qx+r(7<0kLH{!Yh|wQR|e9c$*`lW=xBw2pJpoGczlCUl6?>2x2|3rITj zIB|8v*f(P4Fft1SD+%8h-X$D;=oz(xXcPvvCNU1@3Pv-g7c4`|XiQ*Lna0#*;Foq< z+8Uw7bcz3T$pAYmFlqhSG6rJQi+@I}#D1uSQQ~C0Kb+xU>}`7OOw>!=OE{r1?0rb9 z(xnI#YYi8S&##Ph>kBI6)3brJ-szxtt8N*Xh}YkDO5x4wokg=~R3Yo}pD+bbYZk#( zqgvraJwbg05DxrSdng1ZR90>g2(cWUgqCh1vTjuZIuV~?42e`-z_WOPRB(MG?2W4- z>NKJ1+5B7q@^!2jee3#27q#}T^(>QPXm4W?9YlE;Z;Gv%QlV%l1klO27>I!vlc=7b zzb++lE=@97G2%;L9nMe$I6JYJ20DnTI(3vwYnF|vVlp0tY0t|usSNG7{E=AY)mD=v zXu0x_3Di2NlbsCKW)p#39t#e?PLQ^;p|)!5+7$0z*TmmVwI~r!gj!#ocfSqoT%{fx zb`9PsbAu6=$_{P9`@B8#@-zoFU<>MTe5Y3=8@K9(;HGv?!qk=Eqe!m$ZTi31gdjUW zoxiJFWo-h3FBcqs{gZB7{xyx(!>`qMhyxpZ@P4$P%A7cQ0OaO3B{UkomrWBoQml#r z{02!r$f6tj?HbFTn$7>%0Ccke_Dy9pQKQdO9}MQ3VMIt7!Vvc@F}l#ZYo|msHdLhjRCEnVIQ@TT6!DN z0#}Tuo&exX%N-x?{;rh%e2fqF0vYL!ZU9ec<^_{uMcP)~-^Z<^a>fI*0~FTh8q)_| zo^fwIyV_$N2(V4xyCZ%6`30zR0$8ToVWBQsiEay+-&IPszWv+Ib+P^MN@2n~tRY4; ze#RzNX{)K}YM(UByC&sB0da_otl_Faq`nk&b^vyz@`4pO%i3QhYBfT(DFK4K2t00h ze~;TKEXgEMT>o4veyn?>0Z~4_2yBadwjM^6L2=>FABU#Q@IFgV{t2Dk{th;mfuM7t zTkv{LUwyxpZ$0^QP7qt@vh5adZ5B=$+vsTv2YJriZCDXw&VH{N(h;g#4~H!T`lyMZ zeCiW+w~2@PEFo$7u)0lWPdzIcS{_)fq6t&Vj#3!~2T6hfkD zn^q8P@#21mbw{bl2S5*1E?|$T>A%=#Q5MLyt5&Y#jQNr8w(L8j5NnP%5cE8Fr};&u z(=5pLny)+HZ0p|)2;WzxsWwYf-SC&5gP}gr? z0%L@zbNhZ_y}I4sAEFEVeqK9llRwMQW>xu+m9X!cPY2x||EzN2!|KSDiK<&r+%(v> zOgsX*3)z?Uf8pVPdMXyhGh!8JD2rBjX^4wFo-V$6EI^iaHK1=o{K>ItOjcBmGrPo12|lkrf@C_fJ?3{XS#COMC>N%-!PgDJSU8B6r7*3+Qk`96 zJ9Kc#??2RUVsN>3mkti}{342}{l|*Z@Dyk@rC_V^_hE!`si}fisOm5`$nk|{cHCBk;{#>;ncst4bLjJxOB_orLSp%$z3n6k{Mn%xBcVSt;1q-~HSvNASZJK0syb-aU(VHNrQ z8XhCgoE*e^KXzY^-MhM0<0GABFkKV+Vo3K^HkCBnM5-IvH@atlOJ{tadGztr>H!j? zv>_djzkE7n^!t3L)b`W0)-~^P%Lr$D+BE@?MNYv=&V;38e4I}(G5LB41lkU59HN~@ zs025xmZ|866bJR0H?>DmpNFo|NtHlAo$5L$a;86_r`iA>`XJX@W_&cVyy!zId3HE{ zKp*h1>)nxW1iwuw2fM`x`1f4-3xv*Az>-b)D=s-CydKbEMccOegF@w34|7!&f!F+ckA}yr2WT zOd zqhxnp+`3YV)^UCu=QFu;iCViyFwKO+naZ?+G65#-r&eva)SsgcjQ0nxOS#!P9Ybs) z<`lQ5ZFH;fkFs5L1jx-=|F`><;inbZ6O+gt=0k+v zHyG-2Wm&CHB-Dkovbt@r+m~nB_>OS#BRF%GZ;;5xOj+l4fbqwT8UJ_q@Vzy}o$r9m z2Tp5d5BT%_^B#c@5-ysyhwMl&7#$S)2U?9S#Pl#UdL}tHM&?PKM!z1kFfSK+4NX6h z@uLIBzUE!Z3l{B3;4ZrF2v_!0zv(x^j-W&~9D0QBz7AX_#MZvz`t7Q9m+6WU6n0IESoE4LwHv`hi)T^<6EO1&K5$ z_n2Qc3GQi}hw<34Om!9UB2udI5-1!>-ibKstV!mt1gk^WNH^p%SPFj|RnW1&q5~4t4Q;fK}^6i1Xp;*-m8TV#0w!}AIuS;>+>>l z2S=7L8Ul!qa2M@KV~`vV2-hJ{4k@zhP&a~7I8tXE-*OE?nr9!^{=Vy$98FJJ=zy4ZzyK8t_hcP|MHIP& z4gxfzqz$DIW|vH_XgbG|-xi-`dS#P6e8*%*A+c3jrof-u3-09VePq>|kz<4z-c~i`CFI9fx7TM8+%_n$q|I*^p1PV?yz$H@0Cedcp_mFw##5I~QI= zGln^7Wv+RK27Sx-qi5@Q^+ub#ksVi8JHtvQWQ9y^upUx?~i~kZysT8{%GV z44D4ph_o??ZDSXWqLp@Z#i3FAy%U9SD&boD&EaptAyzW6oZ!1nnl=&hl*$M}uJoxb z`{0}fYvXeso=c64sI@!%RN)c9E2umPf>r^njVHh zy=okG>w>FaHFNw}eL|2@D%mq|oI)~18>ao{a1m0Z1c_$;Iy||;`)^7$r6}t3+$eN! zWn|lGB!;aCN*u6TqD+)iG*X?mI2XPfnkO4fLxam30LH(FY=(95YI2T?2rJrV2O{Ys zQLxn>gG;{hxG$@jXtP3cE$mo@bU7*k4ekLV{goDs8HxlMv|V!%wXGDhA6iU$w({GX(%^xn zRXY|OH{gCHBr`i5KqBh~w+wjZxEyGS1Gi8C(c+yhK+_Y5cOUjdC$?zS1Ss;!(lL0e z%3;Jv&k>WKcS#y12rHu8BK#4jRocr(R~UQ>00k}`YrM6gYFcerAf>Qn3QIPNC)|@2 z6DLw&>!gt09+@FV#O{!bq$@c=%NAK4>47;-@$g>rIoygn^5?XKR;#Wm7_iAGx>=Gs zb4fpP@E>83YwaDc)Kt%PvZT=Wz}U-5MIbQ$ajdC+!DuN~q^W-Jpn&Ni*_Vy9ueb<% zT|N5EJI!Sh{FkY7gmhir8+f6HklUmJ>O^d^17q_V%A*MMq===PSV?y{H#%1USsP0~ z(q^>$-8ZS(b^|`ZwrtN8x#k zz~dum%-=&dV!3E-_;cmwu{ko7T^BQAezt?)z91+?V+)eC@*B-f9wLJk%faQb_@j^e zuj=p{WU{2q!zR4CXM^7e%+fHr;5K10tr7W>?^}YhmCrmXvgMY2Ryi~wmNmOarP*R&heM`s?Nl6r3ctJ}oK8E0RU3^vXjup#oPk!N;wBK4<| ztbCq{JDnr+x_;NQ!X?hjXG?w_=)RHztopbDr0J@>{cc(PUEcNaxQG z;Zros`Qh$FR&OClnb^a;IBwVr^Io0^@fxt-#E$o5=(Ms_e!$8wNNp(U_Szw|pM{h3 zh%2FB<&#TN%AuDE>rz)oC5b-v;ak+vl=FhkYOeOShZji8MS<{xoO#yL*TqL?x%?cf~{&)8kzeUO1C8r>j%0xA#NSr<(9P1|2oM`-3@Z`{eYMkwaX z;BFvJG*eOZ;YKI6=$Z&~qYdpw8zF{TaDr~CgmtpcDVi>d4%I4~ROF17=4hWSAk}cG zuaeA+@g((oDCRwlJR{j~7wl745!Dw}E4h1=$ax)sJJ?@0R-e2TvC61|F;D&5%=D}j z12e^6B}geqpzpcIcVO(K`3QHKWUEOcC{mp+{2&yU4${|-o}MH$y6Da@sQH{ zY5N>O%`~Lf28?SDcPN+6$k2(hi9Glgu$V+PzD~Z)sHde@e-J=L!4 ztyXTN)bHHakp8m*UYm_;wViWuEZvw7?E`RSU(|S?8al6)OE~e?Z?s=1}5R$uG6F*tmX_$>Fll(xE^yyBS`*7 z=f`}bP(dA%k!ksL6v~*GIf}B`aT#6ZLfQ)7=yKvwS4AVI1llA@gb`xUQb8lBD@6g{ z;wif~(C0Xr+i-8Wg&^#E?5F6nEx`@8tqE1=ezO`Q6UDE*=aN}Q^SBd|8*>RJ+n^^! z%_I8MMhLMuTy7d{Hodj|Q7rpt(B^hDu?>BlGIxB1mT}!EcX~=&>A=KG)0wj@AoC4m zl;Ifia1L`SbZzs|C$mv$AR?LKN}(uITI3_M6-B@);_dU77$c6$c_Eo#1RLTx zJ)Hod)^nW>cQ#5pmY@4mzHZJ0jP2>U{hMa;u&Zb+8o~`EI>c%#dd-@m zCYJDUpHs?GGe~wck|ZaUj-#V>-eU&n9S@|0sTz+cv>Tbs^V~#iy3Dm&;(e=A+p?^l zP{(%@te@7=s;ktYO|q?n0?NK*(@&7c-N)#d0Zk#}GkPIJCFk>Zo&Kv*J$ z$EBck3R@L(q9Gzm_)lt!*w$`5uJlO9G~%G}|53O3K}t01ds{Q~XTOO;qP}A=Pa{pC zk;Xk)ilvAHUifv8JGE)QE$hEjrC3UN^*a znqAr3na5(<_CPJf{;)|*F4G0vA@gL-+0<)3S$~@khIcWmc|eecc&Y>o9$J0C!!kjo zqo=T=-N-{LKlyYKMDNsU&2%bvZDJ!uh5P3e+30GxW%>9WknN?9NpCmZEDGYe{$3xK zj7og|=J`B^L>9an$}~lzUDK@iKS`r8c%xGS-6(FHqjN+Zx~=TO zXg^0cbc+S?9gj{V=KXgRPezAReVuY{6zZWSJd1Y3YUTZVH&2AGMnmzf>}bTGGqv-j zro5}=K<9N@)+t}pk|$IXc@t$EtJ=3E^#&iO+KgCriSDmlF~v2a6{#JB7QXY?#&mt1 z_9gMg^fIaWTc9|aBf2~0qM3Wm9ZbhrN9LiKE5D(1N0Sd9N;Iuc|DVpG;f*mpu= zDS8_rvt)U{vWfEVcYC07M3olS;HYNW#S?q8!Kn39r4W^Uy&XTGh>A3f^ukW_;Bdzz zGan7#h3qk2`&zgO)ZVbBVH1Z^^XjC|$-@O#Hljj9N!eMl(cn4C^!K3Tjn}4VPt9%V zD*6X&aEQ+_E!ynEm?p^Z^X}8B{UfYfJ&4USESh}#B~0XUx6#K&+BzTx7s&>@UW{fO z+-s}F*Q+jg;70h1>5zTa6ZJ9=D*3!8<&hC_iCkF;s}O6nH=bhb$5fh8>m}mkL_gCB z4P}$SM(9$hUruvU-A(q~gwiXptPL)IAWR25OB~03IYtOBtxkdXHm!9 zA2;-<&W#!6p-QUL0vGv8p`z3wb%p@Jncx5qiS{9Oe7&rI@NE0*vfIdCC1Va#zVE}t zOh>2SK2N9M;5YSf0;8-KY8nX4rDPMcRrOMS%%nIc2U#HETtcn0%&l!so*ln=UR&6| zm6>Pjj6(3(H(*l6dI-cpz}s+K47Mipz!6)gFf^Y7;z{uLH=?ycO^6j0k4;;jO>sTzqEO?}Jv#u$4o(Ve zwlLh;4+WxE88AyVfhrzE2i zGc>Sy;9a)5@Ru)#NkbYTTXI^80BH0+7YdG+{w(Byz-yI(D*!sd5&}2+X=L~fh#1_7 zcC@z#vZ(c6M7eBU{G|M^DbM%6PUh49eGXLK)Y8Vn@Si#S|MUndl{A$Rh0(l-Ln{KP zAj|bk!^0xeXjEm^*MjtbcxS*WYB%m1`04x3j950|20qFjGMbvS?rb*yiMHm5XCj98 zJH5fLXSm|Ly7iip_;7tcv;Nk6t%(6i$W-8v(Ffl@SnLsB1%pFO|juUBFIln05|O>{5T)q4UIT?fMZln%>bwF_E@x;$o%a#K3*9 zYc-)lh6NG5p=RP<)!Ni*QaunpM(f~_qpKhct{U{`XA#=e)o5yjap1g+H~+Ye=T91` zew`64eDQtCDO0p%TO3^ah*AZi+>4a-b!kB=0Gg2Jjl99DUcWsH{;+OKW;4>n?xhr< z+(D!)*Seh}A&=lE3@%*)__Zr2;*&s<*&l)O+JfT6a6tSf*W6{4Fn&meOh1zUEKDqu zi2N@1qVCUOn_o@aU?E&TXV;GYcu6uU7C|d%npW^$QXZ{yc}iyX8Nr%VDtpL7uxSyD^&HteyE7pm*ZbZKF`opi2} z0_ALZHhkI}MczMA8{B@(MrJ`5;k@oW>#^TI4Px6lY#>@KXBWL|L8H{RKHwF(t0CCGUTVR>sEcq>i!Fdla>!zMkGWxV{{8?T> z9$=^H1Wnk*;#&GaVtOYNu4l zUkM)71?fZ$1+TF)kS`cvRR$67p$rfyA?Weg5%pige)=t?Xv6Aibom+RW2cyw=5lgo z!M5^XN#T`Mi28D1H<&_Vhuzn<2oNpT;v6A(f;WNmj-_Ch>0>k68Pj_{+$0jf&5AMr zZ6nl!{2!RD$e5z2;t(wgA0Wwax6+P;B-ppzhhif*A+1UJ)Rija-2;jJ0)eo?jZOI& zN7s#O%e31Uq>+^!8@()N?LLDmi9~v>(GV*=MRwu4csRRs#2+C4?15Wt_^icWOqU(V zzwLqlP5z0zgRYf2pZ<1d(#j5o;yJEjxq~|z_Q17u+sCyx@F0}RmdDkKPrcQ|I z2@gp>PgTm)F$2ZvriYuYAxm@Cre4ZaQ)xq6I#pV9{_(h{MQ&<`~IUT-`I6`Qi<#uRN9;!Y#9HRkr`(w5spTBbhaZW$%6;< z%Tt)&hUv=Xr9qfr+w~d#3i_aA@F#GlXhYxmzesv2ADsO}@0<+rq-8Fs%19ArEn$yn zLg`l=@#}X~?P7LKHn4B}WX<+o`k@kVRr(UWFfjWqqqImoW&=!RT_i55LPeo?dvg!O z>0t)jJYq01R~vIV1iYR*;bqe{lGXuN%UJSC{VqG9afWu<1qHe57?(PJP?MSQOqb~f zpKV)dNh_Cp!D5qigu$jT3@sEKge8DOT_x#;Z33uEx(%~lGXeRkPiPc%C-DXGch&J9 z=Z$}|u9=^*B%S9Z&C*QPQMe>jmk*p`-IEqz2K8ZSpj(}&113Il1&7+8mwfx*(}Y_} zvPkI%HuZO1l|&D~Xb!Pn19bVUQ%jdC2%E@8t*)~V;;p3(P6|6yh0Qw<)^KZGU8@I% zr!g?H^;+_q4?|)##v8I~=a`JwcIAz;U73&9s-`^3B1g=6D_x6J8vOu_^XUm*B~s#5 z=kxP}6y|-u9K;ttqz)7~dz7L6U_hu?=6w($?{ch4wzSp0?vCHWzQW+&k;@ z2Nk&ayc!ImEZ$U{<1CU(O4YLbV38u<`=napZ#p8Ls;0JIr&e(QAK-=Yl(n|wvy^Y@ ziiPM;3Sv~+S23KSk0R*Ui9k^V+os#_C|4j|F>G1G5Hse*?x2jx-?)ZZ?1|R{YfqG}r5v{Az5YWZ%n?a01$ya}ia%c=MJS=`fWY;2j6uU~!>?*b-W2;5=!k*7&S!8&1dowk zf|>d=BU4h|;Z0&3V0KDSX=Ym%=$ufw6Dw)no81Al&Ru2X!JGX zOj=|FaBq^g9)mmdh~g0L;RSipXl**hI(ESfTF#kZ^;{2{bNl^z{_n4!V~512;zGP?!R=cQzNp>+kx9E%RzmqqoOq zZEwUL*$!kM2rlvtVD3Bemis&>(Qsv|eE8|qLXAd^C2=K>UeYsT@t{JUN#dd-hIv)6 z{!?d1E|dUVAY@)&O?W7w0_RcMeF`DoX!9gR=A`l@oa|iTt%9C*Ip%PvBK=bA9N~Em zU)ei&r}7ij@A^Ewy7e6x%S(+LX;LABd8%at99LDO-_?i%*Gfp7NSo|?W|4v;zW?S; zXu?c9a z6qvXQT{Tn(#b};XIOgq;9<&4wws9x$S?BMq%9AZqI*Q=y&FRZakWk0^rMFQg3$|a& z46AAD1@HXb!v_&^EC;>PKxxH8<>!FMqBRcPf zzb!H@N((BkEWBAAbFr#9)SDW2_R5T%LIzEeSY#2fz`L#QtBoHLr#mx)Cox@TLh8hX zak3Q26y+q*{HcLv3seG9zw~zr`X=u}owP&K{kX7FA;Qvj)5$r1*3f_+fE3vYmsQN2 z)Ixjf2v9sQ8Enhdk185upehxvbG4C(kFWHYgw@ONwyU2u9EsU$kYZG z_-IHE}DnEgXC)`lN)pEt!;5XowA=wO%PU|=<6YeA$TPl)K z8xDb0!RL&mC@9Sg{j)9em(M;Fx_CyF&)SM9>ynb(ZKTwjeWe_IXCf6`Ix?G8yk*BM zdMDP>a@)itveprr?CsY1h|CN7(4dKNxfcY4i>E>daxtu$ej1e*dZ)ldeI$4&jv^&*Ot>=*SNJl0LF~z&GCkMngd2FmZwF#q^3ZDPTiE2gp*A>kxXI@H8U=RY`eSJ?41t;)5#B|W zc-Z+@3@G@?ei7oD3T8tjtjVv2**)x8?iKKh*{>gUvnP>O`7q+%Je9jrm?E}7T%uFI zhNLZwBcCn{&%O4ZMPP8#uvQ0ZF}T?;JwZsOg*#bjHzx=Q>pg-n9w|Lle~~a?#5TP@ zl@e}8^LFq#(k`d z^A3thJc8Fjj))fjAWPy4Vo*&|1J@k`37Ad3_=-zUmQ(#L^1_EX$HEcwL6LrUi#*ta~uolQ{;(hM(V2()@y=)RWJ9Lo>h!Ojx+Fv}aX`ka~_xdZO$-7O6%!lF$ zM$?-D4gpMgv@Z0#>W5+V$cpw4qePiFiULFonM1R2pO5iCjN14EAjMtu6q(a@DxdA$ zN9JoXj%hF8OM;njCZu)Wk9DxMXsQhpzo734AGZQ9-Zi}O2~_gvMm%#(baa%3kEs+? zgm1x3@5_UxD?+gFI~2^tOme!|N+c>vo3zfPp2H}VbJe`d!7sOg!wsXcOF!>dT_L!~ z+^X|hjEq-~28D%h&s{Qre>d{G8H^PFj$v>bnSoEXwFgxV!ar%Rm{t_}Zava_;;0*x zNsq8jT1?;#olPYM8t8&a8C8Cm}uIZ85u1GbMA9&Gzh zy#N?Yvkx+YaZce5D5kkS76J`DY;gY0H!P^wkf7yAqr0u_W9S~BsG4Rh6{|g(v8}eL zxy*c9Y;{92qTw={G5>C{8B2*qHhA5|5&o7$q$dTYv+(|envW|deLj_}%4x0W{$21C zouKXS&=H*fMwbOi=UQ<8y85WUnjrs8NWlMjSN~xFIsH8$AjiZ>&#lbLNK1{I1B8IU zpGQegHP1^*PphrVTTaQ$4w3_efx!P~9XnUd|2HduP7eT(08subBVg#;UOn)?9G#s0 zD`2~?8~J-iz?a|k&DzeGM)&KoO$=%Dtt~CBt?X$`t!a$DiYgj=8`FPPSMsj*4u+O8 zcGga&28MS3UT0-0ueu{DB7JVkaf~{UT9Q(UEB2t&ed86NEXaYEE0sbOC6f_IA)a?Q zF(96h2y^W9M16!=7S{IomMnAq`sVVdce-1Y)0ti}p0PAG+5Icqa_Z{$cV6D!RLDvs1laG`YxoDH6^#lQd|6SlHm(FZ z3GqmZCb1%L^M#p$5Kk8Yp6-D64tC~+aawc|xkD_);>3>22K*o(AP6F?zI=t=L?!!h zY;naBN@m3;tpdA4#zEi(ieMrv-i!@91?uMFq)5YW^RE4oHVzYV^J-$Y3n~-{Xh_#B z0s3fqCsp~87WmOvTG_Au6a-7nDd%o-ei6E2>kUQ)5KQ6en~J-KCQ%^d?1@XHL!g{Q zyR32Hk*d9XN~ubG$ET}G`KRVhPmn=dLTlr}@d|aW;)phByyRgeQg;J4ct475g!<-L z#l2*d;;lUC9KiX<_i5xRv*K-VpcZ8Ycj=VOoUejqv&LM&2xT?8$S$O zOlg`S#DfGZhvEtRbb*d1(!-g*b&9Dc7x1c(pIfJ zQo(3|R))Ncysl&kv`u@*gv1QAExTAbA=WGwi>^M>gVScDtV>|m@*O-}NpeNh+|7R0 z+2(|=?6#PKuRjqHyCKk4Ac`ivpr6ZCY zw~VhhSXqxTZX4J+&&Cz|brlj$zi#GvB?*o@`0T%6!Mm6%NKtQ)cz+1gP-+fYEV`$D zXpA!d3C)6QVCS=*Zz=Em0tTUKOg|~lHlvCs*@p3JC!e;%Njjg1ZV={(=Ntp_pJA0R zDp8O1bhPmC+JLx>wQeMSM}y)cCB?_~OabR9<5BPE;-p_!uXrIspy4-PquC$|r<=I= z`6AQWVeT()Bxu<2FG}pwzGFqq$-4tKMUq~!$Ky>Cj z6M&iMhAm4g${c3BYI^T_RSu>%T=lE3{N}Z^kCzs_=4g|m+3ABZ@a}CpS2SD{*0648 z-|B7Gg6t4(kiJIm8c@s&5qQS+0rNLGr~B^};=hr+i@zLs z?D&YG@3012kV>0sGfY9g zb%lx~E8E+62c#h6O6Xa&ga}z+}W|U}o zJmQ6{h}C44<9=1;Vm-{`{B2PNnNmsCUoGf9i3??(!Od0nKrsJB9TLH2V-t7h(M#mKFKOM@J#=c0wb7X#TDe;@}6s4fk2qQ+&y z#_7B%*6GhxZ%jZ8!d^=ez8|SSUti}7Xed)qU*VYRw=20H{hLS-nyh}hjwNW;;8Xox z6$H}-kg4YDJ=k7X9a6A%iI4V)n4^(6&(}6gI6UosljJy{g#wce+3pjRwzr0p`$6CJ zH=={lRTzD~0?b#+@-WxY(mKgG?2XI>4pOs5(N2E^HRi77%Q#eJGOShMM`0Hvb&Sp+ zg-xS1NZr{Wv~yw{d{|(-)TsC3R2k6lw@4r#&WR2;%+v^yGa zs8_b}3z67G{WxE!H;UVLl%O&^&aHx#E^$GSmUWdwYLjzIGONlR@v0TcV@H6BBNuW3 zTX1{01zWI|GLQqW27u)Q?hD^qefP;FuyQUU5*2*(!r;;Hf zYA9dmcHv_gGYlJuG)bUneCl{wXZVYRnS#DEX)hCXBX}@C&~J zQH^q}y)deA5p6NleN?!Rijgz9RbfbT>HDFUWppaDn>`|AKhBP-aMopQoST_Uv*ZUg z>MAW*<@Rhmg!3tS>yiDCWY}RR*XM3JKd4z4CS2k}h^hTOQKl~*Imks*?pznM;@B>) zp7|UyNf6m=t>0F^f_v!32`SCCp`kBY5|aC#iqRM*3{KDF8VW-78O!ioTYSAJ{t?lH zpwS@~G#7KUwc>85y2JWXDHMhg>&OfuIcoA8HM6l}4993m5jsV98}HIZP%IcJQPgen z7AFKhj!!693Mb1Jr^j9k_f3P<3+2Q@D(P@!zG#roIagV>&wA3S;f0?XGZW4*c_tY) zMK&d1eSGQ{v_&*PIyvwqyNl)^)QiHHB=SvSQDcqqa_?K0;)3(J35t_V%H_RBNWpA- z)^y~Zg%7T{e%>?V(EKyPZgd`pcVzFmQPj>iW|3rk7}gx4HlQDhfp%@>+>h5 z+mhKb`~tr6Y=L04-YKI3S18E(DNb>!Hw5-3*-z!8Xi<@ma@90h3XPuCIRlc#yBNme z1+-G_4+gd1h7m%gdE~5tHC)by$JkzfzTvnxbY)=zwd)QWqR3JN*N~4L8)C`X7kAJ< z)h(Xhgl;hBB(~Y8?7TChz%P>24v1RtGjGf69i#>AwrN=!qt1krn>mVBrjZ)M#6i$1 zt8O^HChz?5Cum_pYSsI(P!f8_GpAxsr`g-p-+$RpK6{|$qeT#i@Cz`&>M?Z&pAt-` znh+}U?!Sw>sM^eFNMUI8qW6mSm%Bt3XgTYTK5pe`Pk&!0|KtNRe~bTfBdL3%?)Sbv zCulADV43kA32j1V)HP-JK8(yla9hEUFc>V7FZujihpn?Z&m!BXv(IqzsLraN!$sM~ zBEABe75sBR&nvUC~{_||4vJ=1}YwMbfk~z>d4xAST`yej7^u2e#!Ol zEboPz8y>IR-gIG?-$MXxo_e1GS3Fs^=u+l8+f|jc2uNh#oF=C+Tat8=i6C!i7TJh+ zcKLX4{gc80(PYS6jg(vYL_RIeSUMP)O2{8zZp2saj4wm;rKQ?;?43Gu|p8a*@8T;kdnzF)6yzu7mCMFSU(&ZK?Rrf zA3@wd47P5p#sFNX8 z#am;*I7rc{MGj!%oOr@F0(d8eJD${hcY#8+LzrZ7&Ug4~>7UxLl-zPvR{y93qXY;p zv+#Ya|C_xJz!*!%{_+V15&ovZf4BGlmj+uI{2%hG^6ZT`jQknpA=0$`GXMr0Luy}y zUPwc7J_I3xF0|Bwlo?!N-his|0!;K=ghK8lc8((E4xcOjZoWYh(=8^b0CH$1rlEC> zvGeNH>NDKyWy_>PO}q}9?VY#1zW%oB>ZOaN-tDkkxe90{=yRdppPZ(QX(2~RCqEHA z@?_u5Vg-^%DUh6u?DPgO6s1cWBHu z?GO$ga?N7q!eE78waHC%>U%#RAW$Im}mN1p$Mj zwVWV+R*8-LJOmT!d9{@Ib-IFG(k<$pTA>sj;qi*}z&u5l;GlI|2wS!2;YeFM+imlb zHdDz~50iEg^5nc`i-VdV))APiki^ra)Z+5-KMOzh#ISlxQ1vk+u=2kpP^ef1wK|N6 zr4STxXE3&;+D3(88kD&Bfpmn@kinQn*;x*WsFDD(FqUmdtcjU!3UbF44476%Y(o%2 zrL6849-{GRF4M>rl#wsSQbz+~ONSvBZjv0u`rEIq%GB4#XmYZU0f{KM&>hPCn=ZH% zxVS8HNc~Yezum_e69`q`a1SJ9nDP9&G;G@-p?&i% zA3=u>bsraI@`%6;uQu1-=8@j+wQAZ$wCHE^b+mV`#?$%~)%qk`8wg*gDLiKYW|uOI4>pKXg0zEox{w$OiUZ!So9r9IsE7&XJpOR{+Ww2)upvibh$M$6M9 zOu&?j2vSKdK!NDc4a_o5%KPVoqrw8mNRDj3V;G4KPffujv_qoARItUz+vN`Tx{?<& zHo}a=cx3HQ^#i^O8!Ll=ZOZgo0z~zAH#64U=A*}Rr7`b^`^P<3R(S&m+ozt4_ow^v zRfVG&H8vB^?!@r{L%vYf`L;Eop`wJVI?D8JROPs_V>2cw65TEW9)kEW-@pyca1-07JCYu7zz46UBUUW+_lH4zz z7}GFHqb-xOPc4Q^2V#siInMeFq>@h~}WYvLor8T0f@?5L#} zD7VGj@Zt0fpU5av2b6ptC|nR}Lra2HPAj>i&&r^qU>Xq~sgpmHguN-UdgAXs))|R| zmoAaycG(JPCE>9W?_C4Sp`chac#p9#uABlLJM+Ir)JO7*uNhbK9jfKquH@UK$u})4 zUV#?4LN||V_0quH6Ty;a-D^v}Pr*M<#f33Y6Rcqotc`?-&xJ5c#JFsIr{RnY?ig_G z^(G=?(1X>LaWo^|Okd_KCje0_^AcCrwWgRC(>oi?~i{7H%7nO|z~e zNqKVr83v<9!pn5VTcjZLz1l$!w5k77&nskuASw+xuut8Lfz^y*BMC0Kqgs4fB$mTw z9YvHQ!$6K}g&>g=6}K)Rn`(VAi`x7Lzu0BQ7MUbUVkfiKY431U++{lVp~tigACM@%@t~G+QTJF?H0P=L~u<;iw~ZrJ>pzu=sARVdbb_^!)*&B5wf{7 z%w!FoICxq~7Tfb+7Cr2$BK%P@?!py=em#(1r1%M#LlxPwOKg!!Ofgg8{-!K0qBXo- zDv9wRL|knoc7Q}?Z4ddxDUn0l-38$>xvpn3&jYqdI#CL_i)Q)rTlEar7so!B@zMSb zxLYZIn>ByCd^Y6z0#b<_Z`|f8`#c@IGm6wK%eTB z0sX5dI*wSCl@>}40J_D|(c#|z{^s`i%_h<`0B2Vy-S37as}m~ev}~@-NUk1L70S7i z)*@Gtx^f{bSzI{TSLg(B4`$m=$xg9m@m9zniT22KOX^2e+?}*zN(l&-o0 zV$moij9O$Ok+`Adaloz`O4$0)_rAU1o{OwDXDfXRfx_lJ?~m+^&$j(f&eOHW?T)Lt zcdl2a{6;GY6b(dbFUj+{bHMiikf(X)U2MH?xOxEu!@*Gxw07@wQoy+Se+7y;XvldD?0CB z>~xgz6}Wtv`uzO54)={gL>Qij7L+IqoRPla;s#EGskJe`3iZ)p($GYMma^Zo4?bcL zT9*+Ii;pmjB82`<)PB5X(XxMG5s3>bNWUe$O`ds_B}04DBX)}TwjA)D`iVjE6^3K} z-BPw8-(Po*`l95`$Gp9*Z1wfE>98b=;$5?|ps3~a#4j%H3LtrEL7hE8Elok`DdYDUpBrkgyh`;~9c*7s_3n{>oDM9TbTB)J%tjNV2+>Z@OV;ZcbN5 z1QPfA7g_0o%FcWeEh&rY3iV#D3;1kg1;dtg_GD9CVMDWDH>K+h@rC^-@8lSh;{eQHeW!+S_G8Y&8UN02W%o6x_@e&YsK+g%pXVGuIyJNUdg6C)yyI z2!9#`tuO8B9F+(~e1l!KkdS`=2;@pGV`^S;3$3rP0eiG*njnRc0XIKEKP8UKH#(?w zo@@KXc3HJ*k?G5^s$()EI64ylDTMAml>#~!Jbiw8aPoGh2-i{gdQfDHm&}{;qr96{y4gjecD~Mt& zPYXDx8IWP!xoSZsKUJY|gXmKN>W`y=+4QP^ z`O2}f2MB@2>t0a%<4+aWSp1BH20ThzN}_Uc09p|zn41^UkS&d3hXp~BWs15IALGh_ z_(wBX?MT9shSJx14MCJ`5)se^Ck_QUu@@XcC{&0ff3WGOe7Ykb7OYLq;jsWV2B^YR zT-OYQ!R0y;cuz=!nCdyKt)k`&_--Gm%dzd=7TgKY{!pEUIkEnR{A9Xf3qVrOn#_cK zEZmar3BVAs>zse7P8sEkTW>-u1=DH+aM{aR*`p~taJc0nEFt2EsH0we`1u{3;u#bJ zFN_@h3YEXO#)QIHjX$U51IVXD}$M7P8}F?u0jN1?x` zK#gkHlb0CCq0no?Qnv8|`Okk<8W(n!|4T(GzIr16>qCpbw_X1)CHXfI`OiY4pe{ep zgY?lv1+!p7rc)SVcf*$p@`JYnDbX(7x3uS*6S&7((6`vQ1%q-1?x)|{*Qif>{v!Z( z_Lmd?Ut(PCFgifNc&P^#Q(5m__1kRe+TGnB-)Q|p(fGcbhn$q~Cg`r*Gs9@@9VHp2 zTuw!uKLuT2U^>m_39DqqQa$zU7p34WN7&H`3|kDNM5FbUc6k6AOXlI{ZGqVRKQg)x z5csKcWY((zqz;n&ApGf2HozzZ#vJR=M7r%#0Lc(@lciZdrJ$rU*3iALFt3leMpbIN z>MvGgVtJJMfgZ&z<>Rk7iET9iq{iG#5kaUE_`U?BUnQ>9FKUhF)Mih0N>#5`QZzR? zbI;az^iRb2*p6LxH_cgFhq|n7{0R+Nvp7Sm$cJjU{2Opj~PpvY?$wdy7nEON=P- zD8n29mW1&IHseRFA>!-IDu#lxA40g@e1lklH|L3e&P~ZgKzpuQL9ScSoEFN)hF70B zkoWEa4*StQpNms2C8fUKYZF;+9R&3+d!>s~=3-kJOITY`UtfD$Gc*ET={&QX_*8BP z1joG;RX~)3#VXZTyfB+4)uJDqn2dw`RbY<|j4nIx!swl`=$I1W70k#vF_&!E3DJ5K z(u>K4^gjGt$c$#b5yS|CL{eQktW^#juTr?HB!;NqSmSV9RX1dkn~9|z;FvK{`&eTm#{m>KOK0xDM3 z**od;yH_QjenTK(o*Hj15r=_#r)8Av2BHY#Tuj*mo}4*YLW%Ub$S|S55d12@%TD+M zOhmwX_xU5i6{Zr-SqPPW?f=1H=g!rK(`*+DC+IvHp^i1yI8Awn{%4&@eE1!KeQCn| z*Qw`!z0Mf^Cz>EC{l9BLqN2DwA}{<0ai|4CUWeYbuiw*8I9+59h*;7b69ih(L0~v` zRTLEor&5EOH;RvM9tL(KHfwD)G)Z#H3hE|RCe;G>=cu=`T;k@=k&la!zuXoyCoo_@^019B1Zf@F)^ zif$#XD$?6_709DB=QT-R0#p}|Q42OR)Zl4Z0QT~5>cr!i62a0P@xCqk6Tej>Zm)!Ve|p?UpbnTy>z93em`iY*_KZHW|4{l2_aV2H_FVvW;TueGAsNX@(*-3sEIW z8#D|+89kyf{&;|0r2bHEGX_wo`ql{#X2ldkv<;Ti;!l!ORbfUFPc&o0xoNtH=JazF zS^hh3G3VU1-?pGXU?9yPk)=}C&E2y87*~UxkP7jm`AcmwrmIp?a*d+e-LAGv%e88l zh2~z_wk-zbbv;2W{6D0T&J#p0iOsV`6#@ zdn@Qq{jF-oQ>%RBENiN6O72xVX3!k4Y26a5G_IfkkDf?#?9OAyJ4dgeZOhffIak@9 z`NA>jvf_5s_cwlC&4boHj>Tr8FwDGjuUoFY0YS@zb?Xt_Nc2#Vjpb4tvseF1OAhRK zvLm^x-7nr)MTAi+-fVx??z1 zj#1|x=lr;WdrH~~jpm}mcTdCPQ$`?hsQ?8KUChWDt@pKuCsLv))8Z*q1MzCl!vqD-yKVK=p(=T-d-kDZAy}|F;LwN=>L7E8iiBr5+CoB_v6(2fBjDX zEdoK_?*HQN6IEATS4Gj*cV$d?rHy%Ws0+xc_jhDa8>IaFWrho2xVRi~c`tVEnbbvd zb0x)buDcnppu9i%Y!f>R&Gc%u_Z{AWwQ`Y;QMj&v_$=6*4l+6p&$!LsJno0|KiTFc z3IQA-V9=!^nCO}}DhGMjmRQ;Q);Hbo_3L!bamP50Q45Rcn|!t%M9SkW`PrBw);s6=x0a<*@JJcysHtcgQ`kH8Jj z64`Xs=_GPKehP3*39 zGntw z%Nb}`YmZVK*DC=iroqr)tjU*8Fy3OgW)?b-zW~R!nf=# z5Ux9jugCvx7|FS=DM7M4KaHAzy9@U5DsgK={}yLXm_fN&$(g5^t~`hx|d_`A+A zba{pb0jW=y>Kp!U7sxPcCPl)35SMMj7!6L;0adLw;}X&cEbH^OEXq{JSTME!X4n>` zbeCcK3wS*93pn{TQs^V2NmMZSjcE4{^Hiw75xCV-zR%ACseVTp-4_|;w?%N|qIZ*! zALlR(gZh%y$SA*@U!TF_k^M5}9g>eoOT9(e@s*Crd;#N0o;u09T)n@9^otqBUya$8 z1>}+}E`pxFp%fsG3NtRp$hO>&w*O(BiB|LsK~5tC>|gD}C3N{3k;VBhErkhJA;$9) zZfo?Feky$LKRc9|x>-bIW}M~f_hK8{EZjy4?<+|mPG5nKT*6ArS-kK1`|wdEVG)u) z9{%`04sHKdfmU$*KMQn)=Iaj?4ea;KeBjJM5@;$3V*wtknyetuZ(^J%4-IQwSV$`j z?a(!Stv;EeWqlkzireLAPL9*%#QfH!lU4s9W7M}7bgO&l{o_aK50K!~wTCoZf7?paZD*tuB^KTYm3PS{pdF+r#5g; zp?_BdJa*+9dE>#rE&!AgW_5F$se*VM>wZ#(WJfZ5m0n z(7wi4=Gj(bGLdHVCWtF>c&Rfq&GoPGUlkcM1d4f&E&YB^2QeF?BLC$HZ84X0O%+At zIsC&Fl_9ZhqJ1m7VQCOU`&wClmZ#0)_x_~g7B`C4W1B5^xjIpGUyVwHS7ku#-Oo=u#MJ1%$@qWyqSvv;q4_GNFmw8lw2f zHdR=hu={NL09qcK)oj0Z1ZZf7Xc)5xkt639AmPy1xu|MxmcQkFCBq6~SX(+QAtUJ2 z{VJNeRD^x}*^iz*$C7G%{f|&wbPc&Wbe}sX>OQgG$h$T@2VIVOJJcoomLdFQ-!sG$ zhK^hh9uFG}2cM&JRyTY&Q5|V?HEA^LTC;m_+SYHvo!`;Zt~%>R)Q2DbFVkr&Vl8vo z!qCjsOG`Myj@FMfBBj1UR^LCLW>YkE6RLLWZ{y~sw>uJ`tw_#w2&44u2Y>5~SP0;) z{JDJAUwsMudRok_HuW=3t~Nl8dZVTP+(skrK7p84L=m65&LAS;CLYAE{&9w(cE%*x zcFa>HUT&gZsvt$vXf->x(u)D-0|~(`mXw2E}HM+Yjo34nxMir+Xy{g-N_QbG38zWwCtzT8npG&It4`GQtXnRpMFwFDf9|218?F4)wkl-PpFw#+guGY9q@)6vj(2{D+I@%VP;BYx~fd zp`_UyL;f49I0?BNISju{lgL=%0`jQWrrvMcN9p47EnmIiy@;K`1k>>Zv(unTKO(o; z{Z~!(mTH^w`$b~@WL);+K>R`Izl+(x_CAGol7nQB2pk(EaL`-A;WwiXs-A8Dj zsvguwEL~>-`D7+S0U-^SR)*Q<_?uViEAnD&;-|O#m)jl*(rogJu20waEe9%hvkGI?^@1k1>Kx(MGmg`dFA79>sv`RtiI6U%Eih|#Or1M@ZN+b8>e27OUGrc9 zG(-7OYTD@j5`s~au}MX`K)zd##T!P+3i{CtpTL2e^XoB9C+~9z9kZ7-{D>2IG*^;=TbNoq z<8+iMBAoq>;`+(SJpggCm7r0QsK~FkY8RKq%=uBR+Sr8dc|+H4-4Vvl%J(^𝔔T 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

    bTeRbOk*MyK=M_P{B> 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­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%0D|OQtpu3}5`x6fHS91W&Y7s$1 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 =i=D&5HgO#M5)|8Py zj7L+5#w`+9gOpt@PJo9U7%cGN=g?1yK?9|LT%p7Le^^q)MCcifN+*I=R6he+qo*}d zx1E$Q5nuF3|Ek>vzjlH+5?2EgWLk`xYW+%*vR|`@-}h?t9swt|rC^5{_<|TZCJp@u zO;97Lp{O?vZmL75$Zstr`WaQ3wFkYdz4SyR`soi@IA8huL&+;zN_L4LZ>v5^g2b!H z1&U1uS87SbNgx%LnY?g0oVlt&OzO9+6KYQyuo*3N+HE*4L|1I3#KR`*_U07M>*ifM z0)m**6|2-Q?=d}UK9en)vfr|^-;#Bw*L4}sv>y8wV4>O01nnHcxEz?3THzXc=5=qy#yY zx@>%H4zp!_SMDbiGiiUg^Q>9ZJQEaVPIk46xS3dr80POGPo20UAaRmvWEmU$6t5Mp zcLzkGTypk~l5@`LX^Du4p{%ZG$=_4*E-}JMdJ7gB)IPoUe6Kds;tdy|0Uz; zyAQV|FwrR<=HH}z3KyI~!YM?98jw)>X3jDcO@OoW_}f$QI8hKwurx^al@k)vr$hLb z`9fPbKhD-Tmw#-mJ?v+k203*BwITIFWo@MUqv503zyS};h2Z#mOuDu0mU{$<(eXei zC}+a>#oZWT{%D6M)H}m-VQOS5=od8ym4JtN($`Bogx1VKwnaNgnreH3={G_I1x1QB zZ2pmh0RJ7x!LixOpqbHIkbx;W*|`w0Pu-BrYS6Y?9KtrU!0%0k$9%pQfbv`Th&S;T zSy*i{iF&JqbwfT}$8kf=mS`w8Qy%syg#dyzh#S~nV}HK_gr?3&$sFpp;9enuv?+>!a^C7^?V}_iZg;Ngb(NwO%WcPR3?8zr zRCq;x?9X@NF{#IDVJFn@HS^*i)^d^Y>UTWB87@x3Q?ZD#z;|UT#?NZ`MXLWJcs@W%-T67wG) zhzKAlQ7bt1pXaYr!_YSRIkC+dNXPK(h^*HOJJdC{Z3WXcwQT~nrGF_i)HRCRUA&!4 zu4rH2jk;p9O)+RORkgBAW-A0E^Y@)T!CP9`TJ;zB#OVCKc z?GAd+)IzYERDeRmBas$Sus)ds(gjT{Oq|>b-ZZm~LB*ArnV!`ag(mfyqr#X2TGb+_ zuMI!{qui#o1l~%USqhAS`=KeYZ7;3KO5qn7jaV*C8rYB2F;@jTcepvU`W5RZ4#->c z6?{SGO=q$4%Xy7M#luPA9QsHTuiur0Uqk4+KS65Z-8B?axfw!uL|M6Xn~q-B$53?W zG<=q;pJ3OTy12`a&?fvZV{f6BUx(y~^@>Z1KrN;yk%16ZtOv%wBy4Gq zWQNmkC3)-4GuFw+(_LNG4kQyf8%yJ}vM80`LVkExJk(eSxD81jjJ@?qY%KnOJ)u4u zxIGv=s8^2LB?LYBSu5=MR@YVZq;b$S8X-j?*UpSI2w3AYTWjUvq~NUCo4J5zId+|3 ziz1ASY!d`wD2#kbKY03^P?lZiY%ho}s{kLj)nc@vs@0@-2ZT>o^E77~XZsgQb)G#6 zEOnhOWv9{_ut>yEt09f2fCBGB;O_u*AW$kwU;mB>g)C);5Dm!Ka6#nzId8otdHSP= zzMnjL6d5GVnxH5e(h@Vgm+?*M>D}w`5|Nd=7TAh6FoA$DU&|GL!3UPwi}%(jcLZxu zzT8-#$T9wg2rPt&VQ|N)pv*CuWMZc>u%r34qmMOg-EK{#u5<&psp0?%ijtV7$Pi5d z+O2wnRax;&NK5ft6|q&jxV6^=6?pd3e~lUT(<~7AO<)jj#jWzt%ki;pG;k9YM!~gC zlX~?k1K-8iKcvJQ;kW+FY`gTNS;wj1{Uy zrZeh}NnG3wn!Xk%@CuH&p|9&j1J%AHck&|5Cc)#Xbb@o2Hig2ZalfOsZ}Bq%s~?a<4r$*W zx4iR^d&z*u1fRwJ!0)7%KyZ~~-o0Gr>Rs;3tHc{S@&Lnxf>h&Zjj9O+{Z zpBLBW8?z`MKz<%8jlhP z?84?aZxY2@dzvkKxP8P8F+4!A5FIzXN$KrnetOX0F**GfTeBE#i}N0u(9r!tT#a1DjEz0T;T1B;KfdT};sdN7q=M zBLPjpG5p3rxpyMB$Z}~@cYXqf!Ps^Lze$(LMRwe}u8^+2n6R}^SH~wlad|ng54_?S z?~XO3_3!YFrh29!K}sC5#ErqU(*`)*N?rXDj>CSBQ3;auSwt;sVehX)_*@d`!z=QF z>QXOD8AxDi;XhG_G=sp0Gy|=3hM~J|Qb*aJEPr6STWf8f$4g0c^9)fUTlRh=$(gfk z7W;xc%gZGg>Aw+4Y#?;=R4h~hpb2aY8vTIfTRE|;n^r1c|IUyQ*&U4J3qoVXPO4~B zHxe@?(0!-Og1{q&C|9}E_ie8DTaaB>V3gFG^v{hpE%|+yk$hOaOKp}Ykl`$X28~(D#LQX;%fq)Ao8c+-kU%#0DB@Fn8t&~l2i(%Z;W86_qjK~-0tQ;L-Ux968rWn+u7;afH zZO87_ee*_Hj7sdRqoQu4ZW@l1(FqgZ4SXqyey}*#;`lmpM{1@quwoD-el8IDk8(`B zlFISFu|bRdhyj-{qr13v@Er5H+(xouK6K`lrF%i;l~Ct&c}DHahrP-2+XjcAR<8Hy zZFZHsCr!y?w#rUNfPEBQJBxodBvu?%d6A#dt#;4EHp^!p#6O?^jH1>?C42V}3i3p* z=wG40l*~34dO~HS`Y3xxfwT*_{+oK2ka$tr`TX7eU^bDBSCa-!35zYyqtHaMRVl7Y#puN415^-To+2K>2jV8s>e&?DX7 zZF8%;22X!NL^5@cmm!e8j$Rf~7HJB(jkc4}GmDb*&T^4*w?M-yKSAZG=~l&yta-(COG*VXE7t2PCg)YIV?PpFTVn`T^a z{lT6&(YjU`SOzsq*rZpwEZ{w6q*-Vuz6^`dqGf_lp>-4SV0r5VwNvaUQ0M(`>ikwr zO~C9I-v9E)?l9ed>Im2v(ETO;`}cYmVrdgwGiUSvWz|ctf{fk#7jGMD*x}r^*Tw=m z$X8x4v*o)~jdC)+ICDZFJ|U<8oOx!oA=+|^HJbeN8zOC1d>B8(!%%Q{pPzZUOCSVK z63;{j+w0-Q<@t1?-7vtVQGZZ42{dX7N}Gkg>H!Lh?GO1zd#nmDORyyj(vHVFwQRI1 zF`JtHo(!18Xm&{^1QQ(uT*+wZabhbLywBvD?8C%tz9i&@FvYFdz%FC*d-43>8?A^= zY&;Mz7!f}7XX5cU{3=^|Y7YlS`}+Q6L1F*b%MsXExS+F6YaZ(XFGdgkxhj09I-8K> zRlkM@+TTq7&w|0ZXDISn8PmAj?!Oh%uuErhstTgQT|-mZVuDm$K|`Pzn7C0 z3LGA(M_Xszm?DoBAw)1IQv`O>Z9=di&-U0{U5@kW6njo_<;$$7ZCo;eiiwtZUd$73 zlAv`iot25vXuDVKGWwJj^M>Ja0?KyNOH_WB8lcPFdqmGA6a^-*u1MeauuVEr*=Slk zcBC=)MLF#dFvrr=U2$Ft)t^E`#(r<-2s-@Lr1Rl#XaL~@lbS^VMnccKV@;#)u)j!3 zcCcvAEA$#s*Q7#Fgy+}OFqSM+-f4EecT(f$CTYYa3`=Ns2m>b)Sr^W-5cv%ISAspI zhoHXw)!#t+BXyMj|9p8YoJ|}Jtp9bB{&`SxF*LF>HgWuijFGIcCi$hP$g@@?gH$L( zw@Ftu6UquDrKbXNk|?i0ec#J#V^#KpA(5Ga*>9qD}e?gPkED2NLESCaa8f{>V?Z_D8iDY}dA%pmaTq3c5>>r=YF9 z((JDJXyzpJ^Oa2cB)>RdL?_bQH|;(OnbgOu!Ax=0RT+-w!(5*Q#41LSSDBs!Qh*c^ zn{;FTO=EswcuGZTCJ!$&7*jq11G6u9*@*mGm>g;=MJqpDA)5`KphpNMlliOjk@!## z=b^H^6>tS5@81ZFQQj)bUsC`^f1E4&530A;p8sz8|I6w9b6U}gGID>-Y^>2D*9wX# zB&l-W%b(?Y-sFW0*job44h#g6p{?rYrxekI*k7Z0FvO?1Uw`?_sCJZZLm)ioQymjt zceV9bcr|taUmD1QaEpYuzu-4ZS}dWOP!=E;T;pCCptXpmV>z4)M`E=Iq!9TO@{p2_ zg2o-1p9bUmZ~+}4C3n=04U?SJ8HqmT{b$YfG7d{m!9UYWYrDA$pAvZ0pbwR_`vbWvcS%yK?a7I^W`56ELn zy_u_n?jZE+OOM%1Zsz*`qKmWk0b3~<3i4!{A;aIRG4QGW*+Mv6rMnFE$YgA{y3ktu z4M;ksOre-9Ha#LQZZVbJ4;qS&$X6L<**~5h(f`Tz{yDH z4W5TBg?dc^kwrew!5;w7@Mee9JBif-bJ0~vX$3CDDgm9|vcO>jlf&qTbg3NowbaWT znkl*|y@}*87WcK<^S7RA=e79$R34`(o_4RNOUtYGi`dXufXeMVY}s8&RJp?PoqlY^ z+LrPi>iS7}qcSFD^d<~mLvu^^;dA;1^lFC?S2#Q)vHt219#|ZIi?utio#?si9xTXX zm8~byVt*_U-Mk&7x?k@zSgpVq^z9q=ZL;H*Dp|IZs|fHa{^@fw-vpPxtzB+6r55bM zGA>oBo=7fNFSIvWW=AU}iduz6?SdrBS98*&C+#8oYg^Z0RgKh9=nJQ47HZdWG^`Y8 zB9=&YPWaawcY04YwV&6W7PIfDCC$`TXgypOTaJ4WW}WIDgqLYdsl;R>$!8?nM9jg3 z3QWS<#vAP8fB`AtoT?Oy3d!NyeG}_6bbn1bdwJi@ZXfL3pj$8KpJG{EE3Ml3fb~}{ z6>44Zown6E(UOn|k|5`8M6xH1hR$g?>uPTh9!KrW;+g|8qE!@-TDBbhP zTD$?AI$@vwIrMYN-X8}G1`UICr72*Zlh#P8zm$_#NNxMK-t;6<9 zr{Ug!E)(q&JsbIIj%cRkb z9Ztp3MG$QQFB5{@b<}hA?K4pcg_v|;OqwaqjmM}}!ZL|ooC8(@o#bZJ8wKZV9|>oz zu%-VL@*5{w)IEu$E{`&kNts>RiqtwHr=H-A}wtGLi8(C6Zwf z?}~y%Bczpr<>XgdIgLP1JBaTHBBQimF9_M90bgVBP;h$cY*Lv2d;jyJcQ5 zFfbu7T30YtS1>qHFyG~l{j9g$i4Nzjg@mX#WLGd*QLw?c0_XRHx$}X64(ay@%J;1D zbzz@eay_xsh5fgr1ws@dQ7|x3Fx=^mjs?P_tbyI#1w&CV|H^?n;rFb84riawqRNGR zL{TsgATUUBfM^55?*OD=rud^kK`=1q{1c!_Mj$sJ>|aboaES5x`ti80S7`bA{`bs8 zrvHnV{3rYTx28a}@|x{e{>g*I<*;kr(;#myMNU()FX)irXeU4kmLG;s9N~^nryhfX zrPy8vtNf1K<&Q>89tO_)JyvjHl|Uvw!fLdhsouB*tcFx-o5i|jV+^waJuj3*6}j^8MLW|5*g-%Y&E*#Z~LmvYbAN_b~aEHX2Swg~|6 z)pHk8h7eUmR@jciBZ3BiPjdM-J7jcW0Ft1Vf_-#9f27jdD%28t^&Z%;%=&Ii^jEqW z+!VvwFRA)cz4y(~&6q(MZUu@J{Zy=&o(wU~!u@v~%lnY09fq#Hb53--h|t)ZVMuWy zmRSs0eO!E4i1A7jlE{l@n8etbKU;Qc>afpN&i>IYW&3? z{;!-hTUkd5Q32f-j=Hkasvx9AN2vXg=}(-*w==u;j3Ya)@=be^Mk&S~DO;hfy=ZXa;^uhypK>{Xr#|97M# z9P?pNaPAgzefU(6gpQJBvYuE1rA}+l8VK|dYg#}i+n{0cSSuLUz19*h@y=d*(h>|y zS&7N=aB0O!hOk*@%}Ei(i0TSXA^en4n-S5E;({WU)}Iumta=oV)+Poej(tw>`U%^C znwm_4Fh-lA-(FKNS|GxM5~x?uD|P27Cr}VAmu46(vWI1Gkzn-IZJ(iC_Qb-1!epJp z%>&1iNJT&x28oDwQA<1~!XStU4N;v4ZTH|}+X)L=$P95A5TIM8jT8oexshvwTEfJR z4ZgOV9Oqz8*N{DF&btl_1xhkGU^^P~$?wCT>b5_%V`#>Lz_1Nv=I;gHYQ{H4Ve3>r zMj7PUZeZ;1wSTFK%vC0laqwS1yhu8&sF4NrmS9B)5Rttj(b#fAmcFW!1q#hm5laQO z3kFsYBbHZt4FL%|bzOGIzQBp?C*6y#kkO?Z(hz8|rfQV>E!1I}p>uCA6sYH9|1_0< z@2I#bqti6vu&m4a_?GfR=61QvfrCZMQ1sUvWIoJWh-J`LTH{^^38goy9!t<9Y4d)) z1f^|pHFpmEvm758%q3FbtQ=ZtVztJhbA}(cgsS=k^!LkDry`el)BMgAzIzPR&lxmz zzWg`m!cc8fc?9h92EYA)4;^*a-itofpm!W@M76TCt^l$h5|n+lI7zGMo1ecQ0H@1! z^F13@IJJY=MF{eBtLYcdHZhOj0$Oy|Ga5w2_gG)Pk2m2sYw0ur zH)s^)WK4L%8QT4q|88<;?cMk?sIET-Ddzvz2K7(GD*m4i{EU-C1`_^jt%U^=_$f1g zEAdQ#K%XMKcrqm*UD^O;$adZ@k^Jd*L|u2$0t%qnZ`*9{`*`111|XBl8{t!ynChKO zO?jM_^!&V6fqw=iE0B+jhV4ZKQP@h4!_)Wc)iWOEjj>01d}zjvW*)@^fXMW5gxqB8 zt=Uv~tW`H-x@HP6=q%e}$&BAw#~Kh`*Vypdz~CEg&fo{#v@BWL9e*4`k2~UY))%ui z>uP#l%ywo9D7yH;KJbr02~GGNx?6rNn5D)7SHoGpv7?_j5}Ga1P&b2zWkfHqS*!N} zBba70dcTFa&6eHpJ>a5QPW)M>k2s7{l*d&0aaBr@#-Bh&Ma3T65CjcHyPFVX0-EX| z^5xr<T1K%Jj3U^z?uQ|=zA%q^ zeMEorJ%RDFoA3#cbmrfU zitGY~>=LUw1MnmoixFJ`^RZ zL4`@s%wI5(9-=29b}-e9Uy7i*Y+qWcS|ZVVmYxcL1PmpqO>EWOE=LtQj*{ESK`&H6ks}}OlIG9*jaK>ea!DKyI!AD0VA(?Af>+ZEh zGX_FDJT|&G+fS1o8^NVdod@)5%;s7cY5U637qS=FgS$ZxslL^5YxI@XMfEub>8GYM zW#jrAStV%1-$a{Y#tv)ALXi73AVH{y*sueAn4;P;I-Uq@WYAao_A@BP#JjSPQA9MH z(ZcgGCNo0Cq))F<>LQmVeQh?+lF!_uaVRfFhQk7t!(CFM=x@T}T3Z8!t4bUhE5Np< zxN}6id1To145kQeR&Zg)?&0|o3$umYXu+THRJw}I)}6EGgD8VWHeZ{3fPbAfZ$W#q zU=PxTrQ1V6sj+mAW~(Wb>&Hr4ye8e8yJp>-y{6q%y6Fn}MqjZj1dF$01p99N4#~S{ zkNnLdjOjN_u2suO1YO#F{W&6$_Tggcvt<8r$9ss{R^2%iu=nsjB~_PMGoJe^QDW{4 z)z5lqPv#OVjeCjrYDdsh_+O5id=V=3T zpOWmNG&?{1Fje5{^SOkW)l6xL;4zmkj0NOo@j;nFn39?|0Ew_0p|`=bkj)Z= z8e0%wrLItnAJrU|?v;*5+f zch-Rt9b2de(n7mRtPe5KW2;Wy^_?$hk0@$#Q?^^0kPigeus;ca7$4-%(GzHdq2b7B z#%9B^SgLI~F3Kx{Tuc1k)n9cl0}AwO0u8u|^^Ru8F+(|ZexSW${D9!4%%w2&7`VX; zUEl?nXSS^e=xuf@KT32E2;}NhzG>1zR-tXdWQG?``4dc&7g%*0 zqh|Ma9Fd^3WjCh0sM7qPklk*ymC~Rvn9nc$(%?sYP|@Xdv`szvlVAXna4)P^@N|$> zL|UVQkw(H^51gWBS645Fjm>K+SCSmFqAkt7QeAO1E_!m;3VP7_Lm zA5~qH(>J-6ckr%a3(SDbQ*ml%j4Ig$B~mR)*%=a*&gPEMScgl-sCr}PatRJQM?9(R zDQdROWY)SGS9gwU1rr`G$Bw0x8j+WTo;(jZET;e!&8;fdXI;I9OV3z{h~{)`*r~26 zhK&TLA4a-YHn%Uyv);?UVithWwZ&+vJ>GxyzRMhh&BD~R3U(wyp%8X`>-uL98T=@Q zn(E8*QbPa9`~In>{TC(U|F@bpZ}^u>V2aD%e<)=V!_LspLueU6V{;f$#hq||`lDq2 zJPyGKNiP|tmv*y$2G&W2wR)_CdXgLq9Z%ZEIN5mho?7fY!Z~R!<>LdQ59fMkkFI48 zx#1K`-9r!kK{PrFVkbAm5X{Eji8!nx?Q~BnX6JCvy0sZTZxixl`rB1zI4kB1DE!p$ zhkS=uyQh(Ft9!GvRclKNqaG?eiGQ!)+J$GzS(SQ~j8>tpDCmpjh0Jn2myZ7krN1E- zPN}If!CGbH$~U!r zgek}=9Bt8cf^Z(eD5QP?a-g)i^tvV1?XWc%ro`_|t(2|R8x#$dw#y~yyhtNFHHJIt zoq|2M$D<+L4P8yrr8X&)p`4Ieejf@)u90r`62o<87 zZcK?t#?hH%xvrNQ!l5}9ub=6W*tkpzRV$CNtaWX|vM+wz{vSQe%Q$uMIXXH}S%rJpdk&`1zf(pcqJf+22KCq&`bK(2Jj((sUUl zY`qX5Av%OLK+Mc@C&X_o9trf(t(C@%oU;cZ2*fBdf)B5x_lI2xZjHRcMi!PDCdl^b zZgk8~%yp_UhIsd#lO7Rg^$?=Z2_KOH@K(4glL{pfH0OWw9Isk4egdo(;-GhsHjXuY zAzvSN-(3MQfS4}4EVH{2wrnFyB?|4pQ^W8dXT_wtOL&Ce$nnHwNbm$VhS7!@66n`< zYy9F(=sd2!d*85&KI(^*iD&b#JDuJ+Xw-nf>fNJ|X3ls*uGsG~EwDH9@?WE?#4Zi{ zK^%?aj5(4dk$4f0hS7~ayXCVEeXZ+R@2Akq-wFg5eU^e(eU67CACvq&ue-;PO5$4v=S5~nVEOls$)3LWP=Nz?QSHK0h8G3il<*X9%V^sC2* z_rp2IcY!x_F*MnM7H>>3wmF9TJhl*+mwiXZnCTfh5~dhHm>~)u+Gx4K8_pj9jZU3SE|3ORxVmM%Qs@ewiD3PE4UrW z*qxY-mvbE6Mri1?8l@vKB^LHZ8`S_CL-Oq|VAIjrQ+BS6cg_Pz`V%Txe@f$LrIg;> z97J>;b3AAY4RXBj*mw7Nq zHa6lFtzq&G2*AEN@JkwDLb2BvYWFX<*R&|T@k&ulvh~Od$pb-~x z6{~?^wasKStvv#~wema8ArR%7`*{x8TJw&ESt zA=@(u3_W=2s;qF+lMM87`Q%#HR0rkYBt222?K|sM^o+H{_Q0!7VdUfxwi9${T*1$0x3S?WRRkzqe@nZ?H&V!5HRZ2tmib z-`~9lYJlIM9Ihtr-(%!UuD%8N3Ehpg}2L`k5@jYX;VZh)YFO3tb?()6a39 zsEeH=Nb}4(@RgD+ypCD&&hUt2DVmL`hn7%{6L~)6=zYGvGWdExUvAoWD{dN7B$A5d zcuQ(b6-O=ZgvCcCk%)PyThzgb>6J=Qj+*lu7u|>EhgNvxUJt6uJ+TzBJgcQ8#J1uY z&Si{_5>7Y+nzEO^GDvoL_mmV7hchG*>lI{K4c^I}O2qXLv10=Gh~>duD(!GP9RG|x z3{6Oikx~oPCj{)Ud}a_1NhlwfmU=6iiwXotI4Ry?BI)tO{g&3IQAht&MqO+UMs^Lj z3?p>1lTq{r=|;@?3yX(+981G9O=v3%Ub*ctE}gQ3O*xfjy%PFfm~HgF)a?X z;scVi@|W>E>K*ye}K39by>d}Cb%Am&t zuKMp<2@MCZlOFJ+I zL>mx6ITg#a-SN&+hy^Q-kC&L68>>ub6E`0g_#|I8(WmwZW52mB@x9Qn71&XBkG7Ld zq(2Q4`A!?sz8nMgMRI5#IZEkCkQsUmie~|=kz>3-bwba~)tWyJqc~{3@>(zka%52J zMVk**dDI@`fjJfiA}m+OIhTuP7CE|eC;fq-d5EjW9KLt)rRaf0TF)8gZA+j1l%Y>=2M4gE`EeCC83(Z(noN)F*2tEbX$;wOK8* zN0;>bIc}uOWam>|0~0;rF-Kjn;n9x0@ZL%we4Y4&Ea4Q0;j9R&=9-VJwK?Wg((90i zlRssz#5FZE^heI6j0KqovaYpoTS2gxEvEH-3Nmp>W@{pbZGC_XcuScWB*?vV^6*QU_XSoTS?}H85^;i7&)>Kos3dU#{_jO+qPORqccxLfUjuT;C ztYgA3fEA4lTg>Ic0ZAhT-Ei&T6=G)RK@(mrYLH7W15rwcoV<>y#`anlFT~<5g;FFP zHEA~k-=4*c2Xa#I1T`t^c<$-eQ&ujw{N92dMG~>acw%^805yIjMEi&hd+=T3|%jP-WY zd_gHBDNd6bN3I{3kKpfk;Rz`;y-l}Lr}GeQp6 zMDGf&y;&Ud2DC{VXQ15>3pF;QXTfSH0LEcCOfa#R0HaO9qZs~A2O{LkK6mEJV+{V$ zWBdt!`ZpJmj1KLdxcIQXFZaRvz7~>%Xa1RV+Y~f62L)K1S4;zcKHl^bQ1)g1ttp=Q zBw+z%h;x00gROZ7*D^Ug?~Jt_HmM0Fi@n6FWwJBZ+ID_&ShuY;)Hdca%gb)A0W{*h zE6Z!T^(g0w=jp@eWqouQFfYqyEGXN46;#%}4;14%2ujbzAIMDk851E_d55BaPr_Qy zt(R>(^Kn)Ifa{~@gVLW2;#_Du0N*?EIfwMx2IX=783$;Kf*v z_1e>)7_nLoU@I=FMMSe2SQfEhRp^0PZSs8)={v{-^aLDVl8#yV-s90UZ@C#Yl+@TV<-~ktw)Beog>7%vT zA7>`YuiNA?VPKjwa7Z1?u%LX`ihkSSfq^2s4Sh;lw81hOgOr09uN%c`n_zU5uA@fB z6Hkg?Ga+5&V%Vf0Fj0b*n1&l0iP6|NL0k|o+YkiOM28tfl3@_8DCCI;DQD`>j}hk_ z6r!ftDbtT^4ti8~+(M7{_jz@dcAA3a*|C>VBu=Ow8Xzzw!Zj&f>4K&rHcjs>mj!`Y z=P}n%bDQWpg@OY0fG%4w42NHWg<^IKp)odIlNSq3E^BTpsNKliGX<|J9|U~Uk}jy2 zsPNz48h}-)O>1pmwZ3XlrOTmwMz?iylMAp5Zx;Pc3sz5t5l`zB z`Lk7Y2pNas@WYs>w)a$~;rwzH1J)=mGW@g>Mno{Y5#~!~r9N_r!Y$o;MqVdkBCqV3 zdn%^F4%~D?(!Sl^3)gmwnHXxl#xtHEN&agp4ZN*4=`-0tyt%9S@z<@#7Z6 zEtFGK3qcLrbxo9&$yARYO6OBrWHgXW233cx#pW!+MmnbMZ(S0DsZH^Z2M{LaE$f1- zTAYQo1Lzi0BE|L(tx0F*MMl>1>${`Dd=9C+O%;@g18{^-ha`b)F{hU&aJx(QzVtG2 z<#X);q~;O}CQWC1U&t`*dJfm}O# zMf=d0=Ycwy>(bk(ziN7`t^r|fiS7eIY{{;5dpDQ7o+CGArslFf+fo{jl~Q zLah_QY>z^*q6f%b{AJhzT@h-Ak4yv2Tp}2Q!kLn~s!ko@>J7mgMHj^2sB#+ue>O3k zVoonE;0*yAC>KvcV!W#eLr7)9#PWp^F5M*{ z9V(qlNlAk!ND0zi0*XpEQlcUu;rCu0=RY{$%yoX>T?@Fn*84nr@3YT7`|J}htpTdx z!zx#vD!5GZ)F;cNhLT0uR;*wTg8RJ{RL=D5We=~@2l3OHvcEeJ6DzAKef^TO)O>^Q zfW}WTM1C#}Nt&yy$~M1>RIjw^bG`-q&|H7@7G03Gj<&4!k`#!HpD+-)iqSaoi9z*7 zy*8*u?9J&8mEf~wWtZDW{dGO6t)?%=yY;J=2Q)5EsJ#%5LQL;+|>Autw3% zg+8NWB=iOAc8s0~GBct8im-PZhz&Tg`SY4gf!ln3!VB+J+D{_8M|Xr4qWGR6i@B@6 zKt?mh_v=6!lHct0+f1aLLG>HHDm*hFkIip))%^L&BD-tHO~keL0?kR(3SdPHoG>t2x_ z9`K3|^xeg`%!tVH;VX`_vv40%auDgGjk?#oIA_3valJcV(z{fzRjg1Jl_O0!5_f?wv>?3z)`c9rsV5(!~a!Au}shN*g+8zS?ZZcM_Iw| zo>GtaJMLRlP^U?v^ZF~?lYQbhn?P;aoIve-=Fn9fSexx8bJE>YYr3L|+IG!p-KnNrnUJuH6^Gl>=b9DSUKOk00~Q!#n)#k{^LZj(H`GfjeTa00uJ`*P|O{7}#f!H%cM-oC_oq9N_f zu$T&Ya0ZMBNpY=`2+Bt+mw1ko7b@+EQ*?>@xRR93!|2{dS-KI^Iv-lH%g;%^>+-z* z@LIvZc<4Q>BP!wT>j4O#qH`n6!n$vTR&uC*^IfAusflgE?wqcJ_cEMDQmp~Hv5#|%&Ci_ zL5TCiEu6BsO-E^x_nSf!&nzl*FUz!;mp*jQO_JBv=Xs)3y1axN^P$8-wXSJr0Xpfu*Rd z7Xt^6^Kj!!%(6djG74gh5^2|RF`o?ge!P=k{ptf;2DMZ7;E9E7t&F?ZgIIRvhYGiQ z@d#4!LzWws(=5AUX?r(i^-gbH0~VSOU=4CI0&6jqhVq=*I>AI4NCZBpk1HP0S{NpL ziofH+@-8E`&87Exu%Gut+vNp&;zUJM&iOYKmGI)rOGA@YHW@;DBmoh%l(WJ~iQxr` zsC0oiV#HEj>9gE06AxWnShhRe2N#wej#~{iazz)RL`}GMY@jFwHPC`56#6Q3ZHUO< z;?8P`Bs%Sj?vQr-8=j~=>%df-3b)o=4wHPnm*mB$HQeZ+r3BvzQp+*@B)aqN>5KQf z3wDcKDyw_%8lJQn_F-nN7Ce36`Vo!}xDKR)#6+yM;N7dYYmL{|%zTLbiDF8yK?{;K z*GOLrG;Y~F+wBm-$PWn8lzfeJS*^t*`pCiFbl1mAEddmh`Zk)>i1m6Ut1K(<>a2q- zSw*I}p$8ltILgKPeqeEFZ;5i93GZTF+4}sNw1j5=u%=@Pr;p~bzEkfX9c3OQxL*!8 zknWy&$dKy(8NulN@S`K%&nn}*>GE_>g43h(YITMslzB7<-HPm=<1sSUZ^JK`@QiF# zV+E)nty!+mYcb3ceEMJr=t1T8Le{PJAT}fu2kt-|QUb~yd@m4y2?Ha1`BzI?%)i(H^T&iv z&dkmId)+5myI+g!8qSq#Ztw5Xb;-0fBjjmr&UK_%BERurdM$QYQYKf%6q&0k8S!ob zv&KkBLMVC>+p`@3$~ZPHl*Zf90>wPBeKeGDeez4n3%i+@5Xcy zK0m>lL;5J$frCvGRJvYAD8qRbMZ#QzyqAi6BH3Ms63=(e zTe(#e$sgY@e2DNg3v0bLLpLjkzr{GWOWT;gm!nmp_#mms+hZ z^fUU*<)e%%uY69$?WhgVYHC{5pZudJT zZzU6ikE=6?-mMsq=Hh5Px2Y3v!)|F~!?!ZqfN2(ZW(|`nQX!3!d#8B<_gX=mZ?`ci zKGg}2^Hpz{!P`n|sa;pSgSVuP*Ub;cUwLYLVa`-~OgNSunkQ({-3TF>b1VMEP}BZhFW~Veg}n_ar3=&oLNphxoame~L<_?q%z|I&@lA z^1S#i_LNK`N@hhyCXu)j$I}sZS>jm35ue+Jxnb0IIF*{CVULuVl|Gf8p8gcP|32B0 z3+Xjz#4!xf*|>&P7JW-(@`FAj+jZPYd$3lbdxbW#l&0VF7pnS=j-<&faQ-StDy@tU zXqq)Tf^rYwW}OPMK7HM15cIbndB0Kr_3-PbtE=Lx!|j|iM=&sDiO)nVsSBkkkWe>Y zR$V^;wcCPE?B+8V+90OcCf+NF@Crtoy zkfDxuA(k@2QKLJ;`-d-YqC87=e;%viBc4M^wHs3X1?PqTYfQ?ZSlqhgmhQFPMFcFI zUP-uYD(7^p+IDIl`_R{NsFxYIb*GrD?z=mvo*CWB=lOI*u@@8GM774m6^E9IgBH72j#ykwC~cBnjj zTwZR>#K0RjtoX?M=1qo4!)(ea^5}<&pKtEJEZqAnzafhJvG=s~6ce{Dt^&lxN?87` z4#D;oALWKJ)stHsPW}->GHU$k#5U^r@k3SQ(H@0(H$P1u+Fa%4q-9x-=+SrclqZNxl&=ln-pDUh7-oQh&B`aC+_UY57FPV(Ny&b4dDi0G68Bhf# zhVtzfwE>LIBS7;Ubl{%o^*_CIyiVe10yG>5Sezd2O))!muvpI+$|qlm%*y`FG|Nc#VXT;SXd;+(_a(6HQ%&ClAJW7-am{^pE{8=m@J~#m2q#AplPZ-5 ze`YuEPjB%;F+vul({EsHU^K{X(-{{ueCIf5#d{r|f;RVk+ai(?{3ON!h2Lx-r9?KY zcxVL1!6kdaIaGs_w6y>@^^zTJ_$->q~l}-i=BMfTeR0svA$}|XCob>pE|VMntP6PjBTZZ zs?a7KPDh=+6j%-080jmRkFmzc2M>?5o9n391+PdwM>j{)z({4Qz@n7M$1@McT@Hsu z9lFQavvq}h(5m?MKxu-b0!44!+}*K}MStc_V)TdDtTo~dM0WLh<6~1I5_>dHbafTh zT1Ooh%NfE`%j);&jqdpvNNWnre27W)6IW+0(%)zCEM$MvL9y!tBfjz0b*tBphOF~u z(bnBA&pW*3ocHr|;h)ml5l!6hy{jDd^aEddWLNqTj=}@&u_^iw=SL#@VXZB z5Rv){j;1DC4H-4;*t@o9b`o25_MxEb4?_ zt2_H<8E(YETFw1yLuxnkLg&p)1nZYW*Sw#8XpMmNT=#h8+!Cp)`D{$OAS=qtTJ7YG z5 z$h>%ov||+x!;-n>xJ}`aP*xB9lPGVOaZMQH&dD6)R||QS@Ut&P*dhi;qAKgyBZcQY zBE1IN8vA!_NhkcG@zQTq3OpAQ`CzE}DgBm<)FQkKGv%H0ZQ@lCJzgscomEO72N&UlV%=|Lm=9UY4xTN>LDP%ESRQ+92FF5nN1@vX zPs0P|Ex3J_N`Vz|Ar0Y1k2u@l1DgDjt1zp#;h*C&4TNH^lqjK>q`_e*TC0n<}~5A%$WIsCRlMrFGXDx+IvJyX}noT~fpt3SPU?5OXD zLue=^2SeM8K-;_<%KiY$tdpmk$y+LiS^p|(KnJ`wPKP~Z2tjnfDzQ+qi%;GZzD~C( zURFbhOz>B0gpFfuXDi0pQfVp98@-u``gD6JNb51dymc=6U1HfdWGL4tj)}Pa<IzuC> zC=TtV`7*u?<%T|mTV0V_#@vNEvbwoFWK~TVrCPXVJYs%ana&cKpPH z#+?ifc&IL&IP2rhpxbtXU=N?Yn5UN8X>4b`O@(#cjzaL}Do1Irh-25gz@{;7omad* z(J$i+*Ubzknc__;n+Q&-woHdNtI};N*!|+UzDiB%Vd@dG?mKG34sp(cnRnJwqCO8N zhpiP9K3K|P`k?uG_zJ6CGIHN*znFL*@;&kl2Rl2-q?$oEUdrB@Of_nje0A z{c_UcrH!<$K)6)|lYOn7h3O2}5Knnnk!R|4T|NPgiDEuPczN%agu@}7Zku@?na_O0 zW#Q+_5Q|jqCx-Fdc-0TfKO=n06rTvGi*)q>-7qPiFM2o??RbXzPR!uV+WyUH`g$wu zYyI0epRI_Vn?Ex=>d$+`fcr}SgU16I8Lyp5frDZtRU_2J#qfGL>g#gD5$_|{m^xL< zatJSrdV*kWx3@>P2>N1@So5@X1(Joa+gwJ4;P50@H8&E|WG)Y`39=fyS;WTZn$@{yhk1o z!!Q~->H;@2JRTx+sKLzHnJoFRQ&x#74pt;>D@+Z1>C9c*~A`)ZDUoeyMs^<8<+s9}ik zA#L1q!EurM1G{kf;{sY$1f>eR8!V=?^Q$awcWNW_aK)txDpFHZx>?xoPwS}eu8UyA z0#NLnIexo{eTBAJA3s#Fuu+=m4|MkzmgroSqca-pFZ7-NI6thf=g?>x`G|!TsT0oJ z>T#K1YB;@z!Y(f6jQ%ljTkcnkj@f#C=T7`;%8m+M7};iILPK%VTb;KMMdv(^3r>`c zW`kylU{Am8fP?GpQr5?Sff*(JRUw4>f(eVdvpd+q!{K`Y#6!~!_Pq?x= zQ@@`f$_w16x_<+P)Z5DJk_Vn4p;pmqTmU@BuDox5Q5fQ7vJoBp5uecD!~}oC#IHzH`UZ779m6%xqxpMe*qqhdh}#pawQet8 zZr@~X*5H!5g~ObGb(ESHB}9P0>J|=V=xIUQRI%d?mA2!+@txdhsy*rH`2mYp&({?C zRKuep%^XY2GyF+*gAbCW8k#+NT*^u_0|t^_n`%#gdggM^$4yGKI>~|gwSGH! z*vDI(<`yJ^_DRlTUF`S{WhhCAj(O&JEEb{Qe}BtTpJqSZ(~E$X(f zK78VN*Wv0Z&8>LZTDaR9`sOK8DJ00e96k0u3kTelbVh1vtHf^n^9GNfi>zRX&%_UH z+!ctolHpt>?K=z_f5AUWOB{1JMoRq&GqHvnkL?o|4OeEtCdx{+8J<^SxQ77oQi8VG zba4#V>bP8waCObYt$nL44+@F5rHYL%Jb1+Tk+uOP4Y9~k>%zL%A14+mb@j^V_YEY4 z`j9x?nUq@i@a>Q@Y!6M=3UGx1HLxY(;^R2y-pm7BK%wn!=KkXii3vBHMoo!3hn3L_ zj!CBR$q!o?+#vNotC-=2noj&HH&GKDBOlV+pxYzO`z=k6+d zL36860^IXY8K1HaFWbo4`0(B!hQI&eQptoo_mQIqGiC|+8+^J2dE4t(n-Mjq2-bFV4p z2FX->KhyDkR^6`le#nOVw8>;~)0NLL{$eX1HvC>+CcGpcjBL~MNfK9?i$E=Y49&Xd zde~}@a2Wf?XKm<9tY|mrR|%Tsnk#l_>bZDtDb9mNF~gh^uHiS!Hka?Pa8}4u@Nqic zNp3tA9KJz4%XTE%L8Nlku8t@L{ch($dNSzdBCGiy z??S+_pw)-NBqJIOOvX=7NHQO|XV`E|xNx?o^n{2QJ5=-RJl0R_mLm|Qf==|h z>uhS+$GA4OWKDdvLpPt3_PfN;HC)Lvdnee?>z{uu*}R*$T5q1oY-`{{#$3h&of7!q zw;3~U>=Vr=vazf~ZI++jAkWuq(Zh%UU!G5M=K0)hz;z3!4R~n?(IC;xYYLZF6TYs@ zwI5LHqrCC&_usa{VBBLmNL&e8wDp)J8lIAD@-j+|ZHul;Gzf3AMtr3qlO!*7m$@yK zh33)%of}IBcts_0;@*>*Rxj103{c}T|ImQ>J(eF5>fs>hjGgBybbk~fjUWVl(c9932_%D88~vdtgsWYJy2P1nQhN)ooce4U`dC`VV)fRwH=p6Ufb z{+AFOvqQa%j_dMq_D;Kjj)XS+B>BT3O$RV8TiZpHO+5>eJY^#U<86_}UJDqTdyB}^ zm_>twEfHXZgmAdUer-R|x3Q!1*{*JAPMzTK;Xtepz!iX)wj)L%B|3H*nS)}5cdF^u z-cn6_JV_l6riz+=5oB1_MpN84IRA?8QuS$e*C2Rubj(!Tc`<0RN!(DQeBMB$La!~B zI`X;id_SGHz-zZ2gEgF;PkThTPmfjT1wPX5v$ksIO)Vh=z>4d^gcaY+m%MA!eU)K3 zO;BWyk%fQ5Vk4>$r%!gPCdYIp9!!ST7XxNrvkd#4qX4Ec`<`-mQ*l4UJtWxF^9_kI%X zOC^uGhyJusvS-9~RwLYsT#38yiZ042*ZB2%^lDcYFYHx~o!Ww7WM%vh`pz4r>*u03Nl(bh{liZCDbUl&PN%$lJZbNx zIv;c}mmSBrh|bv@heCIMuJKl{OvV!jO~uIc3}Ne`0l!a~_uf!GZ_a`tmS+eSz>wv- zn{HMuHBZy}GCwpP<$j$5er;XdpaU~USDgq)25xYuC@urt6bPkMeY}RK)YdURs2F3A zWU{30{<2j~f;Gz0WlJ0rAH?t$x%)Ao#E z`l_|j@0T7v)t%t3E+~76OvY$X@S2aQM6%9q-dcZ_vcZ$+-0!x`CdwPH7T1Be8`KvGr-l z$*LcOQ~65uZ|2*+lk@0wyM_jye6rg|g3DIIh30>L~uCZKdmN{VgoPzW`d4&RJB*e2r;ypEcV88pr zhlkedWZBmrd*q~BVuRapS{dsZeK1lkZ(+V`y95`3lhDhFqlQII5qJxuDRRO>1cg=N zrg!MkW$M??@1(^^>iWk-HqFI$QC~RO7>I}O`Y)m6VBZ?2dp9pFlaR#u}sqykS%%}Bh#Cx)vHU(UGP{ag29R^Im?v6 z-*0|fXp!yd2f9nlFNe&35sA-iXbsaHcEXd#KYb;dZY+vq-;ECTG!7Vh^pM!b!r+mr zqInCx!u`p6ub ztB$i}f^vZ+6rNTy1N%+;gEyTvv%ek&AhwufL_fgpLJ4?SyDv2`=*`0kimpAdm$?v`t4p8VlX(A_GOE^cby&?FZFiG`&eOBdTR zAwSEufhAGU_H+3G{RPJ3GP?k9bV9$aSv>r9bsEnI{JJE$_vC?U*7B*_B0c4ZDz}YY((GND z{V|SVC1lZg{p#7y50{%OFjpI43;bm=EYo?djGtzFaa;E_e^y6?W8rZ8XiFco{e&X4 zkO_4`Y!-XxSPoyVH@P%mG?yzb#vJ{rTotA-zUYn|{$y3MPJpe60IzO|(!(_&H#L0t z%U=j*Vsa@(5qGa5Up8S^4V(%c)U>P;zwNbC5lHSfq|(*o-pXg^X?1GQ#mNsGWbQh6 zymq54{(~7l<^0`1hp*Ce^qxhGeu#TU5BWxm7tq@xO2+w;ns4hCs_2ODbQ_N~>FnQ} zXPZ=+o{_&&I#MJV5r}`C`kC5ZSE_wO+Vh8@hrG)Jx2{jZr;j3c`1%C*n8+LTaYi@x z+#X{aVIxten%W1$&1_zF3SXlvmGdT{rmeL4$Ts+!06@NdieoxpK)2vqrO}!HlJG&+lO;a$2qtlN_bAzauHFPd|Tug4hgth zrZF;rLc3x#`TcXI+gH~gNVMsGL0r#0d{TWi4%C5XF^!o#XjPztem_Sk zsl2-4aUEQ;Zc^87c`yCuQjS!KJ8e`=cDh)x<((28)D{+P(qzNLDMOl9_SEy)-AO)K zzDlq9gWH~^hwQ%3yOK3Uj*a6)T|6zRVsRtyh#6NWI?Eb6ZgXs^Zj=9c99iRg#7^PB zkk&9Poa`Gmf~@)19@B;KKfcSy|0E$^t$5U;h*{uY?6>(&`wXR;3A<~3L6(=Q=-+ogl{!X;Y#4#@bAX=#V&>#87k1A% zGxYOR@|1rn64_bl9w zDXmM9L;57bj^4)K(Hb0?+-Z*HrP-bkz9G_u2qH-dCnMD(P9ka&kT$PvQSVZV?R%nh}-3s6S)XR^AAq|ApM&VH>CUoizpCu@G zlJ4HpNX(h^pj~gnF?qNs2fXC_SQ&kLx$ZS;q01- zG~Wy|xn~OU=cM=72k%w;;kzGGFptB zY|^+Dj`8WM{DYvcB{cAiFFHbbqF zfp5{*M=2%X^wP6Eg2l7(ZT!xL_#M^OcIOw|aM`E3bS`ldZx&cUIx zA}C58l~Z(7vT((kPN-IROp^g~wO%MTPi%xu870g znJQ<@Oq0*L5k4tphDq8S;`0F^+MREd%v{skCTJU^#)@B6$KZUdjP&{}Fw0DS$ z+rnT(!bP5j%d4+jkY1uxz>*MAq7@Yv*vSynLQNNmfS<$EHzMBB6W-A>T9B(*fHgh& ze6)bJK5Us^GHZQlrS^c1i<64vBY0K1^p)DW zJcj+9Rxx`oCNz>wK``r9GiYwP{L$l9)22cm*P4N-k9)SndTlgl-kPBj6_H{OiA|oy zdWLL&2)JB3`oN3SeKe%q>WcUNp@ql$1Jj6Ba0jEy$X&z6*1}A=rdJ^S)34$i_Y9TO zjjv=~udpBCA>5K0Yi-HcRzfFja9JV2)TR?vwLxX@58U_)^NC2F%THZ~Hf{C+b~}a@ zrIM3^7W&EO6q*ELlJrdybI z!xKd^he3hzB>Xy0tIM+%+8y}Hz#IGOI2cym-9SNmv$E?AO{z&8>hu#sseaBNsT6`DkOsg zg}<6^pSCs0v$}m!zJnk}Mgk`XcB)FKB)r{-&?5p1E^LUnq&NOXt3anwS|X~_8n+Z- z3DI6U)hm;5Hf`7v_jS?mO8fHEUIC*$Bj2bL`!iR(UDy;MP~^iD~v^yG~=jM^w#3ut>OS zZQOM(5*TvtFFkpotRE|Z?}MmI{3*e^c*&ZocL&isAs#($XsVkAC**?(tq&p#1y(+3 zlod0(vv3>1L#{*e>kX|*B&2q(pJ{tkntJ)8Hbex|DzXv~#?qQO1=S_C;;4AX{kK6# zFYixT=c`5;4&<>AwkFh50-g=o`8$^q{(EsH~jGY1C?xCUd(ouGcTRn&9!8dpm6T za-fSl+^i;9kw5$58Zl!F2}3v+_qfPXlBSM!v~;~<<`=u18j-?Y^*Ldrh$snjB>}A- z*GBj~@hG_3d*xehqL#vQPEl0@S8)nQsh^EXyk%E12KNnIOGQU6uO{KCTEp8<@eV}n zaC~uU6=dJjQ4VJq-CoPO1>^X+u{`l<{F>3JJ!`d_&rp&=5NmJE%oPp<@j6PWh*GW> zU(FAC9JjBKe_c0D%wOgwQI*tw!N*4)jV2kETfv9$4DKqdwy8o3?hd*JrWyKNO}u1k z3=?-y+$7hgtBk3RsY+5C+$HKfxND(z75i7I_D>bQUy=G~>}k_u!1rJLa-gEU(El}@ zyg;rR(mw_(Njp+WV*kbMO&jwK8{YD{mC-~;Y~@RPI=(hGF4Q9uN>sg|+KL{7(p-jk zsyh*sbeSaqXu-R$m=;-|dcHpY_V_2+v zAyK&;^g;4)hH$s3iDFIm@1GR$TbjyabUhHKS>e^^Trd#}=xr&L57-K9oyrjiwnEGG zJ?`7L3!q5%&WMl@h`lU8{Pd{(sp!>1obaaCnHi0F2a69TUH89Om(R~&g=~fv=1gMV zblBfIQY#g<^7j4O6M*Klu&v+7TT%nxXRd|M6M>=hMY}Kc#n*>DJ<3_@@LB|;NM@~v zm@7IdJwki9UD#{wJ2+t;iv;ZBb{tz<5;9rfn?^36fc9bQ+Y@){)GRGxgi%?G45Ng* ziB3%EAB$0&BaOQyDhS_;U$9G7O(w|y#5?R7K>dlpPzg`^LrV;tI-ABbw@W_3a+cDl z*Ru?IH$OGHiz*7M3QveNF6cRL$fK?wcMNt8RxEffxvVf^KqPhdocmy&`XmT zAiSadGQ3e=*u22)cv^onu7}339k8N!%JAe#;wu|#3r4voCSvp(X3Sy2QF?dUvhdjv zH|XsIk{m3w?&}bu+F_l-U)dwv8M%WJEV-j0cI0$$tFHMCldp^E%)bBo?q~ZeN5hpw zFapjN1iD7XK^+bJ_h(se2ZylD<|0Iecko9sv@3}O2yI3uoN~iYTFlAkaaTpQHYH+> z^%^6+n7Jd;h%qEkaA{X5Zi@&zw+Qd0Gvb7uerExxZQZ~KDf#<|#Kd+Xiic)<43`Tl zV~|dE-XtEW*OH7&9*bZhe{dG}JO21!Hl1tgi@GFg>}YGpP}gLpv4P5{2_GLz(PT=s za;GPI{0lleOM+rTuv#6VA1t~7x(?he*i+O!E^i$Z1|DpzE2s>|>Bjeny9K4tx1M#! zP8!&klndiuDr|f=Zy12|e78AsaiKDG`!c0Ni*$Uc)gGga6o^-Ap|&KY&$#5COARZ} zB2u=daC^hkP`ekO6D#6ZcTQdCpNq%kixX&lA%Q<)lGYy!;hCA4DY{Qvq=Ir$0wh%JRT43=J3?6)qQ@CLCDE}R zK&*r~DCPO2qd0Apb5+eYZPGV(CF2e*En@GyxG|sjyd}`A&56Se z+S~Ri)Q`A^M?9XUtJEJJJ$bjZ3ty9Hj*`MUW_M@91e_QYuQjP(iIYoSUv>Sh5)msa zhEP-}5Lzqj+{ zQ#mrSY~B|UMNy9K_tru|G-VpdDtN2TGcwrr;isPm3%oxcDpl3##Y~uVu`XMal@=W2 zp+>YCa5xeymUh+@c&~hL1y}WPeZ1xK%FC<2^yMhSpw6fQiPQ-9gY_2~$U2H2jZ5%8 z!oIxwzR`bJQT0SakF!eiHgeBCW~hrn_GNo2K7}<*j2VQ987cp}6+~dhyApYnBV?>U5Sv7KpS=2EuytI+d$sz^)RGs6Dp4Q z@QGh05yVsxDo`6RLAJKT$`>Egd6ml4ZTlr#Ud3%(hZf<`3XR+#luS!}ENcAc^Ym9+ zZ5~VzV(n}DM87{^Jkg@QF_~~oHGqx^T-oP~e*N)NX_e}G%e;AmG&SVi4|r>keC-kI z*wHjA=Xx00z9NXpm-JPx87O4%TlE&Ijil&xVEIlSjR!rSworD&)Gq33GVZp?qBt;q z<2w5}Jr|*V%OdB|%eL^gcn6bJ6H~9*X}n#_%&#+^>W@|w^RB!AYU$yxLJz&}=RcMm zcave8SU=K#^XiE*2F=@mJ+Ui!Umm9%_qmaJxn-oNDcd*>QE~Pf-qsIap^#)WV=4rb z;99vhWc8vNg!e4bu`4r4Z=&RW&TgfI^b#N9rFU}Ky0y6N1UKmwb9Z7aYH91cB zZ`}*{9~j`dZ=YXxFGr9&rvum#WZ`ONhgS@8w7jV!> zhIc*`G!THvzDWbkGgRl({xAq6VnSsRhJS%)VFtWB2`W^`)fd08^EW9i&D_nP0)-sE z`X^8aGiPV8qqQ4U!2d>CSCF$4RG^SU9seZlH_-1M4UG>#-s1GHpdBonEu0*!z}8Sn z{%>5u-OSDIe{W!kdgcf3>sg;{yPvfj{|cyh*HozLh*OT|FZ++ z8&qhJ{OdxiI()M&G{XH7?t4=~1NTc^q4svhU+MY{&CC^WEl(&No&$jWb8!AXt^)qg z;bz5Q>*Vat{zpymuiv3D0nNWchXxVivOmcS&EvqWwJ;E6{?H4WNAb@-3U&l0CXQy% zg)E%27*IO_B#fLBp1$EgJ){!<0t_0%KpOd%LfN`GIYQO1A%p!-jcnoMz+vs=WNi=Z z76pPRhcyKA+b?KDg$x=01{fMlNSgxEaekK$dYK?D`IqORp@!s;kVm0;1~}yYSGsQ| zG;?%x0yg3T!zFaXI%FXFi|F65eyd+VLgj@(=3qxls8ocM3xACUb;pC0s4j$b1zFjH zEZm`z5z><{1axzOF04R$^3PzuBNWj&IBxE)AT#J)?3{q$=4uVGJ9I7v97TY!1aZ27 zLDmjtuAElD6$=(_o}7S8z(u-HSsXHFI|m7xz60s1e}RDJQAn-?JPOStkXHQ*+Yi;D z_T39i=;aEzrWh)TAakX^hffC}Y_NYz!yJBmg+@(?co&00gG2}*0TlvHGv{w}R-i{f zR z2}}^6KVtlk<^%rn*#fmzR}k>)TLs+N-UDb@=vw1UW$a(EK%)bsocCwD{2Cn^*fRyU z3t^!_gpA3*5)>LNND1vcENC!*i~7!DK=Uva@GvCKSvWz)Gj0JMK28@8GYdP;|EqvN z)w>|w;aogugo2bbe*%H#aY)qo>G3~wa&!1yy&&V;g_zI?M|Ba9g_Av`W&&-7_+uIH zZw>etJXesVxjm#&|3`v4T6nm+f*hesKQ9#2+SSYwm|8%rYxz6*(uEfN3otZ_L;Cl* zP5lQRG+2egbGT{82OiI}~*5U>A1UGh-MJ zRI*)YvmcnyDEcF<`J1BOa|mdlF7#N4tNbx^LxXo=aDw1L1N39z;%_=afPSlU{#ZUf z7tzMu-5IiO{2MC&$j^U?3ytdkN>Cu~*#n8x{~Q;xLJv$M|L3?)b`TRog$tR|pBu3t z{|S*3DzsmE`u|coXL~cqW+>>&@)yR3-&rcSFx0y_xkA?qFGPa6&<&~og55bi9KjA? zPD?lNx77luQ6LHC85C&z6!otUL-XLby%f+H4l=bnBPe8r;G4SUPEPh9GbrafkVN1D zI3ITqbaSVRvA&gkq3TqSE_%LPmQEh#_E1U&=>+GaSplUhcj(lF43g)A0jr?UL0xPy zdnahOv|Vg5Cv#gM>4r|Si!J761N3$1z_QapE%H+1n6k^^1Xvft3$fx4R;Fw{aP;t|N2wrA77kYp|b^~F!?JB{}tC95E{B!Bo7qmmcYgrpmzxHLFLep z6`y}AzcsW*|8ZN*MUL`UhTY0IU$SNK*0>UZ9$O1@K=V0 zKUN<8LJb^DfU?T>V~5CJLB8c2P&L*$ zqF93Lp*+xV4hXQ%4de}#B#@QApW4G7I>&>QQjl1K)~aVPGIy{rKbuLB9Q&bgD|KDay%e>u{*bX(*pX zuue$2cNGA;2eb`j)cx_v55fd6Ar*mNoJ0cdgwXrGMy}{+<@EjV-_Hby2rXe5Kzh)m z3=0naw+fyqCTKw#bIq=CR|4lE~}Z=q4153MkWFfa&! z@gb?ik57J(tm(faI3M>?T4q8W05%W&aQ^@W{^kc|g8mT~*#Bk+RJPf{7kXm)MyGEH z5RQofe*xO|&rg0(wbd`-zn$Jvg`B?w`~EnX`?H%5J@_)W3fKe@Sm+h`6B;6Wquaj# z|IxJHSm?AMce0*uqj50(w38?d%=Ui;7Z-;d@=LpD2}FMf>0o2Ue!l{J9`|Ez&rp8Z>R zB^l*kFx>un5Qhas+m}EmhAhkf_~ZwHdjBoMw|4#o$4Bi*No6F!od6?={~!SV<_Aqo z|7(sjPW212!~8<}MF89sXmQCiWU)*CO!n;zhWxh`K2;}64|@=uZlcLsseN_0G+}a?N(NQiw@X_?GCb(@}c{# z^!Z8_z7DGw16ZT}reyKE|HOJeUG$XX=?#D`8K473l0QHBK{^}1L#Jm3?4WaWr<3$F z1KUGt7LpfO7x@;yfj&SS3=k{*NegjQwypm{EDcO%%)$0xcc1eWmOy_~WCrlg0K8gf zc#pUL3$F~w83d%Hjut+2vfdW<9>B313wtv+x1YUA-hoqD9*ANNz!(Sw_&-1SLDM_` zBYqtlu&bqpnX9`G#KVETjNk1+C+X@AwlcGD*9Jj$6FB{GQ^d~#Hc;g~<^_yH4h%}> ze~Jfbn9k4te+4|>U=l&jXB#Z?;D02~AGzrH{Agy^pHl!4br~3-&pK++ zm;Vj_`Miu68ElaB+#k@}=uA6Yg@yf9%J+X~#?J)TA3gK`990_Fq6$>)fbu)tFD>xV zaz?ljkmNleiOv~GT;TuLlALb~Ptt+G0)U+exI|Lsj06>k|3v~wLVP|W$er>4xV#bu z4w$c<9Y;G+{{!RsWY~urtbu@w`2xwo+3a2z_czGSCkYd) z*98DGE7d=)4mh6&-z~r7DH;q6Jdj77RmOu68lGR0)HCbKUjpVsH-L2iZ1cqNKtZBz zWd*hXc6|R@qdTIlF>F9IyaQNI>Wuec$wEN}L}Uva2O!;$0q%34leRbW^*!H$R!HFo z{Xl>720Z?(x0fjWHlM6L2*Q0nV|S?|t^mL&2gLoe8m_ARHlrLEWN&#sUxmOk!c0KB zDxg10pRs7P+Hdozg4}JKE+7=bc}GtUC`bb+c-ExpTE9)G@qOlazKTJ2FKugZ!ieH=h?=nO;}#WR$Xp#Mav4YmY9!p`~DovcW5t)hd0IlKV_BXNc{(DuL3 zp3ioSKu{=2W<9kEHKl6OMEl3OG>_n#l%*lWqus>!# z=aV^(66WXw*$M}c+@7uPb+kf3c0PEOfgT$%7Ys}&P-O$kZ-0LBgM4QGCHVJykL2We zbb<3}mLSjbiMou%lKBBoUjjV+Y>51V1^18hg}+>|Bq#qzkD}9d20^kTX*0JALZnCN zGJXXrP^GZ~ykT6r{it z2K1=2=@zds^gMrf2T)r8PI8`4=%iJ6`V|QAOTebDvraE;3KgNEBV-TO#Y+~+wqthL zK(<2$1i!0)_AN-UBF7FYA{CIenT3xQ$Pvh|E+~vBG$+{N0}hx91lzM*Wxh~xX+SPp z0=d$0U+fv#u=huv0VE`uFfc-A^kTd9J6z{C6HP{C;uXMpbTmJ+s5SpfmjAmr4VW07 z&mtbc_4)=7m>vOvN#%?#9|nGh1t?np7qxxs#NS&@8FWFdPw=kLwM#rOFtJfTXQ_Q7 z|Bd;4P5XFrjPC+DKMA0%#2HPM;o<*Xe?DW+@9JHY6VqtjeI*TySB?LVwX1-RDp{hz z-Q6Jx4hg{*Scn3F7$hM$49O%6B$+Ui0KtR1v$zL$cXwahT^HBI*?)T?q-MIGO#Ynn z7Iy#n_jXlRS65e8cXu~m(|BY^1)Ez}T!X-uuetM#QR@-$&w$OCO))i7!^rAyW1{$+ z1O3x3`G66(x~O?bT(W*DIN5u65m8A02nPGc@t0dhVX)7K7i&Vga%7WK&>}UAN<&fV zwNU+;o6Ey?Mq;EO6i@!e$3=Lhg4EkB!Hwz-2}8#oPpO3Kjfjh+mdwV`*SDOYfj(IN zv`uabbFF3k{-2HU#6=kfWJ8Qbz5yI8^-K2_O4*LE)0ed4M!^5E9enZ!!OddlLJ3uJ znaA@@+N6ry&n+~JPx-d<3x@_(F~Bga=`<76(RxZgSM^-wMpuD_JELxy##R4~v4)E+ zGx<#UV^YV5?ySa_cL=-2u5$g5xQc2Ax{82vZwX~4+0miH!A>933 zJz>%|uxas`yn7_hnR{1qDH93y2(ULJ>EFjZ3PHw50mEMxcQliC} z+LLu~n1NVc!-XXO;^R7XS4d#m{WY*n_@o8Bt1iqFS8;}E4W7~3#MkG|lgI-LFYa;{ z#2MhJ-IHnAyzhd5NN!PTlFX7AtYXHIyW5^-j~utg5|!F{T#WUMLIKb34RWZ8VKoUR zLUVL3y{xA5(itTrY+q%4*?G`uKXfLgyg$HtN}P2PD|Kk;u{GTwr4OWRLb~z&5UVNu zaW9t?>8EdJp8F$M--OgIjVD%)v6hrS#?yWZUA+-Yk*kObsj~{3u9yki->6j)#GRin z+<5dIPW}@5jHV#_A|g~c4lvkyN5^QwO-p|JrZJHMmu2^;Xx=9<{~72pY9J36rh<$u zk`01AKZljA8sx{Qs{~r=U>Yp3lF}3F3ns81yHH#>&z!XB@30=EbI^TMu_u;VNsRh2 zLG-t3Rk|LmoQiG3d6Hr9WQCPvroK#A$l=Hs-#qQV3_1A%lmVFS=t_C!s?^X*b?EE2 zP9NLBU_T(sM>)T&O%10%Zo7>U3=)T&lcu|Zvm@-5hV{obTFL1T4->9s(O#l8@ip9F zdfe*G}1P9VeeB?bpy=l`uNG!MU{{ zM%(nNLY{=upX7o{qrGpG7FRw(xBjt4OpT2-5xQ_e+U&#V8UGyzEvpEi+1q!wtfc45 z*|GS`QqdSCl`%EC5jkz~WUL|=>!a<(mVWNo6laS;`=r0{3HR@v>T3kqc=&YMftl`G zN66b<}*may2V9azxCL9fyx`&La62 zA9w1#YCb;2-npy(y@0_Ggf68inGU~{QW*5XIB6QlPLbJTH#sI;FfE^R7`5VJSsR1W%_(tQ3rVsmAnOSI-fnyDdgHbtiwiDdb=az7#`DW|lt_ma}gd zY$79uIo+kX-9!zcM{lei;F|ej`Gr-S8w7@%SZ-3)t!%D_#h>jO3c{rAFP2BXhB3q- zaL1NH@-IG48=!)NFTl^e`biU^ruPtn&L`{JD+Fib#@;n161RbQL`E9~6W70M1NKco zZebf%1XPL@omCL=rO0sl&+#uv8zB*s@KXbRr=8SYe zDQxr8#a6n3YT#W^0Lf>#xxMN10hq6{z>(9U(IunQGT>PkKFPk`C!O=46ZV3Lu1-fz zP($LLcom&^`*!97yJerz)fX`Rnkj6u8YU#R6JPW+&(e5!l}bAVvXlV}bv^B8s$$Rw zvx~q5;r;W6*{(N%T{QyJpTulEuzKToZGqV)R!Z6FF3LF)2w+e(=j52#_0iWku zLB+R#4V4OchCrUKkcWDrk?~fLhz(%U$@`7$K~x4rbd4LhR1Fa#1sqW_YVA=xjN%`@ zRAZja{pT=LHy0BGwS_0ktRdsG{5a)(I8S98o8lUC=bC$+3Kl;2{pGp-`Um=I2t5x|bI(_wtEAw|aK6T;=u%ZPmXUcN%QQq(bR*?TS>-gIEdLoE?uoFFPh;08XKZGK6b0a1 zsQdS+q?{&c^T8jl(g;r=IL*kP^9$nkGAQ_@!{$I$)l__G#u)<&w8yZyh1Hbvd(bR`nJZe|6GDPEOY ziw?fjxjE`9ZDL_+wEwTQu!2vDYU`P!8H>XkRKvibuDMfydMbV=rFn2jgfA~lkG&^}oyFag99gS&2AmN2kzC`b9xxdvyqSXk^8xzaU(8FpfnbrG< z6$_S+1!op?7>WdwfAMj5jLJFL%9Jlt{e>}~_5k%cKALPi*;6^b{JjW84)1;Q2pkdU zDmrxD^iswn&+(^ck*0&8t9sBCMrradKCVt|MjJ0rHxD0w4~J-M{g_=7^YURD&m6Fy zpXgZHxc7ZCir*t;&sDpH>k^aJ`bf!?S@GMU#eRZg2<8vE><=EOf`i|SPoF*uNCU~W zAfOxldxpq>n|2a@iy(07r>f^!_6`1GJAzU=m`h=N3twzy8ZskD%op?J7<_Qxk57=H zE~uQ7`;TQH22D^$V`9}B{bM5V$ebV(6VxZ~pc}S0GTg>IA@OjEDmK0_zGVV}wnK>9 z_-Kz8-zEbuZ|hweOdr9(@8HA1jpSc^oYQs*aMOdl^5|{S7oD>Xm}xOu={mQ`4hi&x z2YMUF^yw4J_B*_jO33;8nb6GW(+32h=<3-j{%v2lkyh>i$+tDCN=FG}=!8P!gCuAfDj93<;LpGKN(j z^OfH!+&wEwWo%ZX1E}XO{f}Z6shGEJ&X?|O5W;25W$yXYzgA2Tq&IX&2b-kg%Mra| z&cqWXY;68RU{xil5AbJv+~JQ(Y52(deNH~x0whcOd73wqcvG z{R8wvJK%dh3HXE(G`yIIVhMxRh$W|}hwpTb>{bKbs+dI_{kfPd0n&0YxZ*C%*Yp4# z+!J1Y<*VuIN_)@e@W#7ARe^NCq*8J;?s(>%k2oMal28d^<0F%n1F>$M*-Zgm?!zcu(I}c$zT8^faN& z%H~v`@nd^JaaS;SXu2y;HCY<=cqEFwgS%oM#T(nyI#2dr`0^Aly?XTvxW{q%%$GQC zYbYaXtY;+-ay+M|#P|LQE69rU4PCjr{i%#cjv@42*XC?Td?HwA!hVsvG6s0yt_s!G zVUJ7Ev>;>ky_76VQ-x%@D6K-WcBhvQYye|GU~HCW?cGcnSwcmY$qeip8}t!OQocR- zKiquZ4uSA`z%% zpdt!BtY?)mRp(*c_!h9SK>>O4FFvkWkQ^-YWfJ#1w)(L!4Ck|KSYSbCd$-QA(E2bh zZBMNrpK<-e=bZDc8|I2?vH+>OQ&`sdk-4s%#@L5t!_jh(Lx)nm*g?ZA{$K@UhnM__wisRqV z2qQb(bQu!4B%2Y7?cT&Fcn%U0;lqb^n45wd!VBfQNBb zu<=bj|G{blAAqDkNGcKIXgE|E2_Ls`x_LQkVE8PsGrvE%_i#B}bbzP^#P71N<}Aia zLj)7lzoh+35v=%x*q}-wef(j!!=MQYU3q~bXmNr0Yu`a>GXR#IYoas6^+j^fEO#s@ zhgdy%T3%Ms;|z23A$?bCnH;PpA$T)5x^yujYZ4rt7%3!-f&{Y+GU$ZMqEQV`9O(sZ z{e@viU8D~R2Bp36Z|;OfpfoT-6D``w{_OB@8!jiYxd#POCdbuQG6_nUe#AF>hFcnJ z(p$*1Y^{|{HTa`rQ_waiwmE}MY%`h0;JP!bv{#eQ)K&BJ7;b~G$!)>ZW3!b^wfIcA zX0EK)9|pc3c__M-(RQ14OnjctJ;%N{16wGFEp!iJ^^Nwc9V@dZ(uCsE<08si7r;TE)ePbsEttBX=e>#y^5+Y2e5;-d@dVP_T7%4ebqycy)r z5~Y?~0xQqS(a583dSq}K2=s~gs24o&cc$NuF(kaug`ztLW2i$neN=SS#OEGT{yj<` z;SgoOxd7bttF^d%c>VnP&#z*Nt%jWkx?);+-WsOf5#i<=ez~F+7GY&6W3jYBe31N$ zk9%}8lMQQXVylxTCtuUcTkNVSzE3z@{r>jc7@S?;^^P_+Ws`weeDC&|K(W0)l#n;ohDRk#xx(4q^V{qtzu<&UL!add zpsj?U~^wS(}msv{Ft2s-S^C#vhx?#u_RT z!r-kl8j(A0sqGPi0=AF@CS$V3`Nq)t>w(;?NOGY?`;X_R=qzoAT7O(jVX|B!Od^3o zhGA*9d9B$3s0MrlHMe|)2!oG43H!H__>J~DUHHgsObVy4U?@i{<3~|5$jAh&BxJEm zxZ(S~SXB%#oDMgu+;~x%U{XMwC+wN<>WqvUn!G3+%F2YFK^5>0$-nrx-gX>(+$9vQ zF^D!9npd1M5SQB8=+NLY$xv(vS1ii~GX@)U;yZ%MUny5^Dbge-vFlixz#T2efs>Im zPw3{2Z_&85kd*F5?{wgxnVD@;Psxx3?VA#`voO4kv$;Ra<-{S8Ds`?}*Kx>cw3p>o z?1}XGn+c)V0amSO2{J6(#vd%lfJzZF#Ohu$h=QfYsWb8O#-ok@p~G!S8;|))Bl1U3 z`!?yXeZhW&Uuhc~)QBYi;^UUI;NbZqK;Yg+PQ=ghx6O#FiPx9qR7;$&SyYf!C#(<+E5D zriknUBZEy>^u;94Y%<7irsulKwldS8$rSmIL1xIP_ST27=adrXOc~@gZaFh`0Ww<= zRV4l8HJBh{Z!Lx$I9E17oC)0dFdDG$081x`3`0e*!hr1DOS>T-VNWd(=g~GE9Y(5;6f1|yO&-~n~Sy^@va8U zYc_bwlQyr5=W`?sV0NLD&>rTuDOGPGIxq(U2kK?(Eaii?#EYdkTp_&V!ZFXWfXZm* z-}q=&wa8jIM455Bvd+fkB_VxJ7%*Kz&0i;g*7xF%gB~ycoA4f1whFTgU7BRxD1;JN z?SR+msvSa;T41k&&pkI0ya1aB$?>^k?r3U*(0 zci1Fd*V~-71oTAS19z99o(FXt%u5S#zh2m1u?2A1$w)fj$DOmp#oe(cFXE@s3Ch4` z}jNdDj54Z}<_7<2q?#N;a(%|;PI**wI zOdAW#y7y!;1qtu8z1A+|W0rUzi&>j5`;y6h(-(vxVK|#P;Iz22J;h998j{SAe)l^c zv8U(fH0)q~1t3yW@Ak|Ru_f+(>uoBZ6)jb-WPJ5`JG^c_I1YM3s@coTyd!z0mZBs{ zgX;{N8TFA88(NL3On79AUV4a+W@_!bgTxpDz-ZsST zG<~%9gA#1k1>)-@1C9A#4MeLKLpAQi?{u-rqM+qonwUs-Z@D)fvkui7lOGKepMuU+ za!BFy?)bX?uc-)$MJMD0Qt_t9Q8m&HTnN<}7Us1!4`254FH{GGEro;g5=28TY z%A;U|CNw(fL}!XIDK>&PYnnf62v$}z>Oxp&G}n}kl*r8(BRP;8wd1~E1~nq zmnu3zpj9sY?A`;ww-w@f5WZ3ctm5ul!^A%2 zD>d!rzXRA3dI@4Gx*n-cLd&Ks#8Nu`ugV~v=b6hcNnGC{XN?*49>4Hb; zY@ESJM?{*EsbP~g(RLG`#4ZFQt^zZYab78_SedQZ`}*@Wn(lB;C+7Blg7HtH(KWVK zv+=36?Vgn33c}=-h0Oi^bbD*4_$<>LkJn;z*nW7*hD4x?4oX-|B}lk(-ZT-*`20)_ zraTUS@^*udj_wCe>bY7~H{JFuJ#)9lSdO*;>jB%C6EML~N5 zPNVsD&=O5xmG;SEgEl)Rv^k-r$OVPRu+!nF)uwQsW#cyz%Am0@O^lPBmq3|N-crLbFDDS;KN$#1+IYX1_j_bp)0w^jlxSeBpf_iGosFU=A* ze>)|xf|dD@g>6c`;=;D-pafR1I4`>A(dpM**jb&Fz}Dd#*eTnE2Pz_Hx`kC89SCOT(526J~0>l3A zS(con3&=Z)!*Vu?25{&Z@7<5$RnI%b|->c3ZWt2Q=0lB%FZmGkmrWJB_e1k;Vx-Ux3OL1w^YoS3%CT>oJ>5q@viF|p{)^oi zKBP}fxZnuVimc;`EyV!7Zc+Rae2$Oh+l4(K$nTGl8`C)tMaynM*b1aSg0PC=>CUvP zFC%ZUrGB?sphp_Q<(DR?PS+$*1?HV0>mPIUS+J9DQBL{yZ2_7=7olTCkbI#JOud<5 z9hy}Yg3}!D#HV~ff5irVW$27C=YhQi*l<3{zxcS>&!n+M=KXQRqer->-v;BuY{=~W zM}TNLh%Hq^RKV$Ho=_JeoyW4+?u?4ZorVJk^j{!E@`lY)pkJ4ndaA^X4C#YTO=8B-5YpdOY zIevyY(!k|PdZjdcgBez2cAa}bJ_ckuM`q7ti5#H!iHYc@;Q6 z?trchXc`^|+Dk(xO?BE3R-?pMhbHZpV|jpn93NdPe=aM7uEQ#U5Bl-6@7cUu&<^FL zK?5U&H~alnDx^s?%wZTlI;$P7APp*i80h1vqc-dcg}*UqY4UPvMN91DqBVQdD%y{g zN8-hMla=rl@}*C{w?%=?ZlZ5QMn)mL1ZqBf&G6Z}(`esBi#wBa!KQT-`!C`PWWDC6 zag7GiWyHeHglwLpLNY{huo#2^tmadiEwaL}CwPa)23blr#P1tjmr^}TqwhaL2%7o5k+F0!_RQe$mHtYE3jA1`+% z-fz$aebNc>B<=m)p;oZ`!Dp#;(&er#9L#462jkpLJ&RztoSxU(JrhXUfrN^3EZhnb zfrGhoq2;^`U}MDm&f~u?7AoV1I(bzC=mB>C=pnSJC-wF>Ns+xp9;4^wi6U@8Ex)i*#9x+`l?0?WuebiqHVEJwB)pA#c+;FsG@X@Gx{9*}E z7WkSr9T58nD=U9$^V&9r!5oEqr4ie=cnNIT!l-@qLbJ1z8jtW%JDIgY3KwloxGcgm z@k~!b!i%q%z!$d<)kfoSsKTt?p!zBa5-&|3Jn?ACgoY%fN%-(-=cm7X0_`6SJE3|% zwoVEjZ}}i1H)z?B6Op0x9p~T07lZXF*5Xt@FE=R0HeE=GV~rvbZ@;(*c1L|C=*O(2 z1aEN&mo&IYErkF{BzzsE`*dy~Ta}fD9F(H4!$Z@`PW*2Nm;)ubS@s z0)nbGNSA;O=7LSu^Sso(1`KL4CB&@6Xr&A7Vj# zUNLS%G(tA8Tbe-vGceMq3DvrUhf6==R%}9(kv)Na)&ku(vkG*<;K(qpZXxzo ze4quoT{acyg7xIsai>=e0Qyb~^i4TbpbHj~yR$CXcNpe57?C**40A(GV+J$m4BZIHf4eyYzrftDL=|mkhKFjVJEU@s%Z62zIR#i#Cm*MN~EStAOQ*7s^0nu2; zTCxP%Pz~-sQYcFO5wi-d1j~B#j|X8IRNG3XBxaHJBJbsYy9{&>F%h~E%DHt@Ny*oy z!@W7<;CO95Vzo{W$Zct09U-45c$Do#cAZH_m<5e!Y@5pQq}Y3ON#5v8VTzI)sr{RN zZ^*I+n_%|TalG|WLd+Ji3CnR&pWU3kWoQndvt=e_xb3HsK``-T3aTG=5Q@8EYrgO2 z<*$x`-#KyfcO9Am9sRP-y=lpH=%6qd#$?X}-dJmmEOKJ*XFMsx)g-`^@azEtDqZClDN&cqwyW>Ma+ z!E!VSS)CMuiOhHG*EDNcExs+xm!@Gh4O34du;7v(&NayoDPF_X(1|DANYx~KW&NA( zPJec5%mxc(^%*Bek+5)9psa)X(yQu$WVeN~+$O3g5h&|&>k+$g-pM95zqzs=Ojb?8 zSJr_2kJ@RF65E3$i7Oc|1Lw$5B(0=-rVIy?f*ry5uf9xQon6wo1f|F{xbj<)Dn7~J zs@$u{5O&>iahL?1bSkV)6|1X0CNjiyiioe?J_9x1*wq-V;PQfqdP}TJ6|spksRK~1 zE>)3}FSm;QteB&W@yg5%lZ7Q6js0q?!5Y6%k_ zS71^~hG))CPF2G7!Zx`In=coZ-%?4*@2B9X8y^c{{C7fhKqG@2k7Nmc7Zc)KX0$HC z)N6^^TRz>^rxP!;XR!~$+0hcM&d*iQ2~$nymp=UbFS=*|x`^%s9Dk(_U$A%H`f}zb zaS-4;I)xIH`k;Ieio{l0w;-?4!Ntt?bjESEY0!7hKpfcTH4 zL4bF#%v97buQ~$34*&T@ej(@Kn08`{rk>(w0aXNoVQ@ds%?BkQfQN+u4#m~s3p_>J zt_>=(mybtV5UehxjzHikir0)u!;;*%YuBs`40h@W1S;yXvH!TrAn0fz!BjjSD%>2l z9B0)9o+7$d?VzF<2E{ErMd`}w2n3#@h~wZ{`yc`C)-_YnY)5qj0#7l1&#EbGTf+b= zrM_-g4Rr(pPf@gaWLaORsI!HN9{iz>K;S8I?T$US2eV~Sq#mdQlW`1BO(zRHMgFCy zO0v!Qx|s4Q!Fo@11OiX-N85(}?AF3?m?`xXPrXzT2(0u|wGPHs5MT=WnF=t&PaVF% zQw%St4NM0CGFXf=Uw?H30#7mYdH8KsA-T|G2til~DMn<RP-)f)ZFW_?yCXF%Bg6&K60f5up!}&YscUDHtBMq!&A?m z$pZ5&hI!PTv_Ec@H8cr%wggUor-XHRRyqv~Iu~5JA7T8l#(G8{eYAf}RFod~D2GU~ zFMF^*gk7{&6FcVKguU+u>)91i4|w^e9`?s={>Gyhbkkz%HY=$4+8tHAVc}ZnPj;aT zC2=_U zPsvjRB&NM&&u|s>~0BK&;Hk+Ie0gU8u4x%dz#qM6Lk|&*eOfA)XUz}^h6B5@phTp z-T#J$ds?uRXrz)wV%PQbj?+&HK$b;dpLI^_!|L^scd zAfMoNlbo%Xk2;dkJofphks)ZQjRb{(k6Sm*y5)y3_YXl3PQ8+QhzxGx!AVoDK@=Gu zdfDH1EV|VddZ+di+Eop_G5QQ%{j2p;n#epDi%Kc z?iMAsv0D}`3uO)*QVuVk9#%dda&I9_3RilWP1l)^DaV(b9MZY#SLeajI+i`Br0+1F+C<)IOS8-_S)ig`dCY_G zez{aK$as;1XAgZ?0xyyu+0-UUE(CwZ$Gs_N1(PyY@~ugO-03jL9~Uq`Oq->I)ujBs z%C^baus<{znBP3O?Nv@a6`!N}^LOVS!5&H@6rrB6wS!6ylY#JAmgvrxI}VF0g9J2P z04{P;$s*}r_U62`;T^p1Tx4nJcI1WH>Uj8abScr%fUC7_2BPz+9CiUYZ9=q;Mx8b+ zLSt|Y)fl6LjXfQaUBYQ^JTZ&pjV3tS&DhgT6CU0Li`b@`$dGVRAona|W+S`xcpmgs zkyy4{M=2gxeMD0eBft6AHhHYy3D_opEl*%y1k1p(z>p8RZriQSI{{W10WF>NzUibu z-NJF{B0It>eeXdpeT|6jFwmnG!A`#JlJNS72%HGU(OQW|FpLf7R$<3@O2MsDd$}1Q z39hgoD?47UuLu4h2tajnQ7?mUx@kn_lH>{jeInMPKi9w{X$oy&4<+yhdl;l^OlYXc z4tM)qTAmAAn7eRDh}z-$UWy3#CgZrF&;u5ZZL&2VMg>R6z$RvC(e8x5NnViu?Dn(g z?3IF7&=FlrT$rSSht=*&8);}!PyZhvnq=Wct4>o)OS7+wEi)kr&e)G}FErW-zNgNw6Wia;mx0bPwa8;8}3U?n}|g%x4- zBY^(e!YwRWD}`=alz8hybfG%&WfK3@{A0&i4BIkb5Z#wNwkMn3jB`=0*>!4;H5yg;%4*d~Q-nz&6PO5B^7?(Zq`7j%v5PRteuFZV0Q zmh95ohi0!}o5!0#L$&_+h!jP_roZ$V1K+&I*c(%6-L zN1$8V!2#HlZf$mwOTcyn9KG1RErQN`*mz6+H)!%Spdw3={ELsXJ1a(1aAobI0wG}4&< zS_-x?0?C9KS{ov@n>IH*_S#_#oSx_jI(Xi{m%_&lR9c+jVumOR0?KWyaw-=LhFx?@ zq4Ru^g7(pyLOiKf7t0#4yAEL6qF*U=U-SVdo=&u#7BTv0t#oKt$oo}}*??vyL#Lk{ z-=&}fBfFRaB58HEyI%7B3k;slV8E_$@-IFv<4-AcrVJMI@{MHUln%cl5N>s-zIZrOx`%HReR0Lh<^CnYJ5oGCI8~% z{>_o=H-e9E05Es}%}*R@&*l!c7NnkXQ_d6s5t^RbNJo@{N8q;Psycnjze+!qmv?8y z(0ND=IQy7iH0Fv()7vA!rK+b-V@Ejx&NF#STC{jR0z&|I6`T3sdS!Ci=nY|xnkWsP zTuy4MBbx2jRbyZ;Ve|WA)xRHFw1Hx?6)_*Q`N|0qla@7sExmAj5O4g7-$34x=D?t* zupm}rOcS}M9YpwSSHYvV&KPZ!SsWB_Kd@v6GD+3Snim4(c9H`3k2OYX1#dOhzh9tD zOLSbnOXd$6m2j8BG;J&Jbv*xCZ9~>FSdTiJ``d$)r6Achhy?701vS_0f-l^Sl{%f} z>^6&FJ$>CYqIUp3HY=ZL8)lx#m>TGG?66mim)u3-i|f*VI5+DRd=z_MfepN*UwmA{ z!(w35%kA2bWPHAEZ1<0nrbgW?tq}gU|243N`^QW6*hc3dC%F++Rc~y1=(BykBn+J280! zDyON5r6ons*iFN&YlaY}c7JUY-VzXASNWskv_2ZZ4@JCFDaoesC(PPb43BhKgmizF zDBbY$ZkY5VXoaS*K9?2Y26Sa4G2fp&?(;|9rzJzs+^ zOc!aNl;<udjnEitn2@~!`}d*;7JX#P9%nV?Ae#m9~6DFM$`g-NSJcii5CT|7Y`_4D(b z56=K@M5IFrI`mdZ;1MZBaIIeE8%#kX@X-)+Xbl)Su&W+ub$Q8E%6Q~C3YTcPt{?CVqUS3TGv2jY5eI*CWQ*E3AP_^a6e2U~ z5XY~RhgISb1BUtzU?Im)d^C6Ov0ajZT^Sdx^_4ieQ=-J%uG7)@EtoQB3di$&>&u$NfJ3>8(9|L<*w(1^zfSDz&G=p*`)Ck^KuGC*0y)00%7xSE#jn$xg;qx z(a{E7mzZd+DWYd5oCV#QZuXy-`a<>N@zHQ^bRmTd@-gLtLvPX=Kw#;6x)qirk%ulC z9l42}%HEyBe9>8_h$OTzN@vnd!v0CpLoWg?U2fI>6pOk?;-le2n^LkY@%!)KdSiJdH0(xLX@;)Lb7;Op zM=axo&4%P(d|XW@1q|4LOL)Fl6E4TJxAwb9^)R@{Tg(VEt1Dn?tO++VT}kT8w^Yva zZjfX(204w5>(o}l0eFudF<_D-^7=LSNd^e>35HBP$-}w|iR37Pmi}F<2`K7go~G-@ z<_#23c>2l_|*Ev!Ni;gKj zMtJsdd72{^R{G6w^lCS{IJay=vo?gUmBwT9LXeU)2VFVczDunKNP>|L}mEWI}B@Qe6JD( z+X+FaM9X|GPga7DkW6efWu8sb&WF`ZfcEK1cF|udz$J%nt+F{gID+E}I)P4Td@)&eAA;qbcrMa}*Gu>NP|cjB_4*%g?#!U9B3>e_rUHHvhmv1?Vke zG$GOk+W6076<7(QCq$qf9JoXQ0d7i<6c+{Rul#q_35pLwT@1C(?8_B^%bqGI`ztK8 z0UEysji+mcxvSOTOWM%hnYTl8qZ2y7PN|NZ*D0YfZH$ZZ7A0#H>s6s33iaBW=c3kZ zR1D5Ho=aD9-yHEG-qVU11nbP~QSFSq(fW55 zmU-oZ5^Tv$#~ND<)7qg+12C?rWv;rc06f4TGo_!eIx-78nY9BkI>isYt_)v#*iN6? zp!HiQXTL?)KE9;@KTv*3f1YWSKYI(ZSvm7uRGoXW41tj-Rt@gXH_IMt-}Su>uh0-7 zAn!v^OGrUu!&Yz9@JLs6?K0#(I|?S+3kxN>FmClh4U4R^ zYZl!2D?jhj^s6k9{NiH2%Yt@yk?z$(V>C)E@l6D;V|72tDHqS*RY3fXFV|JuZY%O2 zNEsHTK(*w0k)N!CjgzqzLK zQ4ITwdCfQXM%d&PBykfIDJ>;mrx#ZbZMX)q{fCcs+pa7!Y^b?QU^Hzci;tA0-Sel* z1Hfz0ZPda~WmQX&NX3^WX!ep@AJJdz?I>puCjH{$3T9VJ#2&A%E6G;yPMLF^VeI4J zLYelNNi^qX%oQs;rcz23hMaNfP)6<{JmcXbD zL>Ny~c4aCmr%5>2%V)^G`Q66)ux?gIM=fB1lMDkpml2YpYxo3JPIUeejNZ=)lJcZu z8q|~~FhTP{Ltizhw+diC@KL>dtR)TFB1RjdP0?tPmk!L-#%3OLauC|5;Xs-?Dj6gV zsnEQsWx8OZzGAT$$y8q*4_{LbHaqNVVO)g6SgD&l;Vg}xU^OXKB`HX!N^_Pz1&KdK z1T~~E50ylGNv3q&_lp%;uRxD@5kp$nLYe?CcgG_1Gw36AeY7FTRo#k3JKA?-y7utL zPvKkK3Gb0336vU5@k@MnD7I!$UC!Dn+@Iw$-UMsap{ z2|BncN64{7MQL%y1V<#L&W&F4T@=d#(gs-l&{avSL56^>}+z*{{stlBYHqANm zji2p&)pH9PZ3_*#kj4iLkzueX&`)s`K{Uhd8GNB1tCQM}Zf`>9dJjzvo#ZUx`m{;l z3y?krX(K|a8<7f9zBLS5Uha4Wj2c&@xoZ=$1EXcgu)Fj7USTP-Xmg}sY#vw}GKXgK ztM>#M4t9#l*i|1M0w#Iuu(|Vf;w4yy7X+b6+dpTyZ% zgH({*A>w+O-wrMX|JNyp`Ao9tfLdn0wOzV+aeO+A*P9lzx!rNK3}Ow&b!l~u?QoyK z(4pI_WB(SjghE56vaW=>Nl)P^nOA<3+D^coAs&s*Q@w*OD~0E)$H(pHz|rXX#h8dH z5v$XE5+irj7`r;Uuq)D}+h(*fE0F1S zQiZQ_s4U%$E&irxdQ#?I6b_s^b?es(G`tEd)0rs6?VB|;o{@Oz1V>r=LZ9c$CtB}5Km|Fq3KUPJ8e)TTdMe_~) zdIY|WB7d?~fNb&!e1+`4y!T{F`0C+6FGt$!SxE-j+gH z{LZ;_y-p8yCVd*%$`j#g{UO8T-_%8LJ#eP5=!RVZIv=1F3Fzwv@}Sjg30^3ie6ny3 z2D`ulc8#+esYGT5pr3kiX{P#3V*5|-*pt-`EEtC+1Yr{}7;)j(};<0u*TmKzgV^h$485 zR8e>Ad3r656_L3kwNEQ87KAFs_R{v$3hoGYdiQkuNQ@p00%SVR&eti$=PTXd=U06P zwDABRZF!tg9$9`_Ibe8!B6*;3cJ~wQ)LGGDe7(`p#Sq-p-Yv#pz$L`&@BHScZJG1% zazOWhlPpU*HEVBKcs`_I>$rxVXz>%kRwa-b21r8s`X{y5*Pjpl`Khr?U95jE=QqFe zX+@k2G#_x|rgio#hj<$wZEN+hl7R9Zx6pHPOfXfnoZhpEi!+7QRoNMfQWzF4a1Axz>|4O6rNx%5G zoRjmJN*^p*>Kh!b5sWnQM zE3u3kK4xG*95i_vUlXFy8YfbWvJ?k)lR{MdS+g6idNi>69wS3_VUAJZF$i9bj+kj{ zcB}4}@NW(w8jDLbpO#u1#paXNFgEJ*E1pd7O2K-T<8!KAy{041V+D72#04k%=!7(4 zOKnuRCRiJ!ix&9&URSbhdJOo^fTz2q-A<{3_vjrZ*zOClU$wLn;2kjXX=uFhv=WLQ zF}Se8Xx|d|d$GTWZ!etx&-rYAAesas8kBgPRZhe=rgZOgTb4mjkMPlq?z?j$Y-2>q zu8^N4PIOp)m2q6hR~cW@FFx+a-x3`1zLsSTOkCQ^8O}%#iJ3 zkJ#B@U^lPRKJb00f}y6E!QcJlfMvxHCN(o3z+O+3Gw}O2+qw@$OQQA8Xgv+VeADJP zttl=1Xo@kwZoW=9wI*7%bRFY0yg2avfKSKRne^)L#rhfA%X|DXa2&T7$KIJ#aa0#` zv>n&}+I?_5v*2i*RTYPXB^8|8wfKQBU#JQf^Ni>TtL zE9ThuYGjeJkYg!0Xp-eraaA0kV5h4h@r8&6W41k`LcU=ju0TjhH^4iTwwjFZSDato z>SYhPjF8JYX~xE%@o@*sT219660Fu(uY9Z|@d@%5H0vHv(Rwz%WF_K953UBuUO+M$ zw|%Oripw1rgzIo+Xjva=xbY<(=`8CXXZ4c4AG z1u3?^PnDd5d!Uo5V4XzeIZ@9lBECGI&!rn3j{fP1B^fpHg^kqF;F28n7^hgGEZZy9 ziH1a>kcgT>Z#OHc_%db9T)RL%m_jg8P}JK6HdRH`#GsFf;&Yt6@$cyu;OLIMM_R9U z+FLz`R`B9bC0iStOi)(BXH5UD+e7rO`*!;wEXV zBIDCM?q4>ZZP2sJHz`fy5LGnN)~0>G_TFMhvK8v18{Cb2jVY;TO7Nf# znSCPW^A7ZWb&KBr2iIw`T^WTDw4YYnUF>V-9owC5AbS57=5E^iS^8K(!vx}9~A3)CxvFMqCW2~Uz_sqrRUJWxqT`dp{(C%+AQ5}it&Nn_u|FlPL zx*%D>9&Mv1RF?jwiiEwL>n1)J`)b9sS!vP#?7TLeYJ6v?;z@W=OkiboTIg0B0m}>I zx@jP=ZMHQmIJhcuHRC#LDDMNRPN1TJz|;9wQt^A}+ky%Xj%84d-rqbOGjFjPB0hTh zZuLH~4E|PpG#OC&hyrxI!2@sixO9Pq@$r}J552Jxi-3FhDE`u;^7!%zy+(iEt-K!C z|KOwDu>P1lK0?7P6}QQq8s?C;7j`91-nxsBBMT1fe3xaK3dQE`ZhjV zZC3WQ0GXA^vC0+sW@n!HXKmK(oA|2YOZvsfRXHO7*F~VVN&)nrzTP`_!J7|7s7(`| zj%P*Cc%upzNTca&`%UtC%GpK6HDrsEzu+h+dee(y^rX@a1~2vWQ}Z(gKeEHi!{EQm zC+P%##>eHoDn|G8mCP}pUNz+~+ht*wr%=%2*W^J3bEfg&tg&qY+Q|Ym=7v0I4ZeHn z*nR0+B;#zlVwa;V5#RonEGQo`s86|UtX`7cs7Cir;@*lOm7Od~UwHM6WoYI#d~}1a z_j@t6{NT8_e0|UwU_Qb}7mK|<2yn@UTy+JbWM8|tg;xOIa&(XUD8nHyK-TW%cJoK~ z_)h}xgc1RH=sQm%wy#FJ@8P44d(yuGXcoaIK1wH#KWoXs+H7KYfR8Sp=6;sISK+Zc zcR03j1JIx0qcPgbFA@x0qoboVxcyYIBm)nwUAB(PbLguA9?W&&*xQxYn7vQl_Zzu9 zH@+$0>4xhMaD+piXMBTWE%E^c8Kb{`)tsm$?H0gt>O$38fp zXKv#TK01XI{Ut%b6s4f~)rLp3W6t9qJ~}{3{U?F0SUvaFhICs3?Cba{<4gKs=C&!o zUoEo%D6f|LRio?%B~u3Io|%B+?t>1+%?tZ+W&KZ#v5!H)J&naXEX%Org>-N!7i zXQcznS_`Ie+0-&g-w$Z}=IH}>1kF?I%}4gP>9R^l4h_S$5nX1@DpJ5k7ws4miAR?mLyS7dQ0#P@hKA|&KBIkOy`g(Ey)LqeHWCLE zgImPtg1fWp^!Xwz8{O)l1JXn93!1-lTD6ok5g%`GNJU!~dbL5X((0#Gl|^{2x)9R~ zH>erZgi9B##4f5ARVDyCPifMa1=3Heh~dK$RKsuaWB5T5r6^z(>66lp~Hgo$OdSl_4_MnMRh#Ng2;C|0;c1pz{?Ujnw~GC<5%F*R!XnjE=4ee@XNOg8he~We?1s z4D;NIzH%o`Zn{V%gNcY4nzWsrExBvUee`0c%;t<Iw+eG%AV^}OUdqM=G$LT@jM%qS^|ZA~pJ9*Q=3 zWwM!i{AOCTWI~mx5B`pT4+0MdkrTBObOnNM=&vMPM9AhCP zwlJCz^?Bb>Pm)9@KO(L?d-3>iUU(tQIkb*9;=XELzW$vFXZ=$$7ism;B$O5les>#kOVhpVzNtm zvs!33t)k{nWA~3vz%ZcYS6j0v##T7TwTp}lzKM={17%UJwb>PODV*I_t{6PABV@{e zsfHG-e9B`zmtbD|$M342Z6cW~vBLd@tS4i(&o_vH%RgnV3O@E`bYsHTvV`?~(sNn8 zhA--{5&jo~LK<{^uvN_IuMLa9fjz!dPX5^&SM`AZ7-znr)xE4z20n7#-SsE3fbj!9 zy5@S{O&&RE$`X#DpbJ5HmO?e`i5Pd%9lyG(flnfmpBwibp78#yEedhm%y;Mt>QylE zwRN_@gSPJ>%K04TS<2wa^5AkFJO9bb)9j$EA#emV$+~HV8gyZA=;yV3&o10w1%l?J zH|oq*N1$>J%-y?Ujocs(1Ti&(mvhw-E1mt?o|w>&2w0oJn_S4 z$-eYWkALCL{=&Jd}0^fd%aPV8YLW0Ftg11aI z=HFTI?Ccgs|}72|utjEh>topt-kgUe0!LEd&%kHh1y!&K}-24(iaYS4`drxxVs zI-IUD{X1;z9|#0xCI8~%+=i>8Gwt_auT_q5Ma6sNr@{lwC~BTuT|Y`4qkoF~(dAgn z>+A=8VKU}1XWcnj9cy4@gg!(Us$-kia;!hy9`xx5?f$Ze4l2x4#mcut*Lk%c{(w+l zEiCczY$fp0xw89Ce~&JY#?OKKp(~(9i`1YCC-I+W&wpe|vGpLJE1+ZX>IhV>fU?Cl z&dOf_4Opg*Sm_F=(c~-dnW&o~DqR8DthA0%=?duP$cH2LgZYt#32tAlikWYMWhVK0 zHib}AvYY4puC7x8FI6lN-0k4-AJ{T@1b0ZwkosG`qBT$W=>7L!Low{lHJYuw zyj3|mUn_o7|2?=ITJeJur`V--D#RAv;lI^BaAgoQ(i83eGudCW4P?80%CU|1rs!9C zlYWowk?AbydH_C#QawJXhRSq)PMYei=ecTCAXOVkC9eFx$1-Ej!lLv z2it0}xf8aYCseT|zRCIfWVGnzg=~BB->wW*veT(F&pYvqHH-39(jiIqRRHVqkZjom8m z0lF4MzTsEY(50NpRfNk^Dt13J9rUhHF}0rS*Q}+N7Wkk04I|jo%qJjlQzGz#8`d(W z>|DN@3vBp4as>SP3|sRky5nsXtbFi*0d4O+L>RcSka=mk>vMT<)_6Xy&#`|3wnJ4c z3DHVnxyw)Bcsm7bbcJ460^$2-t~$rNLI|uZmz3<9#84 z?Tf6-<6y8Iu-K5f36e)AU-OGbpWJo@BD90%Y1w!ao5HfodoZ@L zsx=S5lh%S~SUQC~DF?ogCveDsPAkE42RxNXPoK-EjEAqMp!HXC4*)K^^P@7sJ)cDZ zuDF2dPEfPHs{r^BA2t2u*+sx1`WUQZjCg;5{b`B`gz>sl<7P`)IIsdX>Pi~EDTgY2 zg^9PP{Wb3%!Q-*KH|1NGTNR(e*Baqv#9r)po z0DCBI2^#o(T)plc>yE6v~qEdLED)ErLMzc=hB; zGZ(X3=vvkT>nX7M5s^}XU3Z+sQRB!&cPp0 z?|q#Pu>ti3A6?31%w0sV4oEqmlBO-87q&aJV;q|!U!rSh*px4iI)WrB`5Cfkn+%iA zVTLT`VZIUXm|qnqUuStAwmQSMC*B~FPeb<(b(O%&&5jGk+TLc>OjF?;s2|Cpg)yuRcWF zUX88gR5~l#om$|^X2mavsOSi*=BbjKZ;sgy4&1mDLOsS;g$U>6B_hE4DMm-6U!~{6 zXInSV8HuJ3hOyIQiC*3ckrmE`t)E?uU{&UKF&9#%hJFf}6wZUwOBEi{2J(EuG(pqk z{R6FK63l^R+%oJd0IKJpawZ+)(#~2c@%)#5)5w4FfUO_c+zH#^&epO?&wckd9`2SO z=E2_DrGBtUs6s}`d9P%4V}@xEML*U&r?ac8GJO7kxgI#flcio>=<}^Bj(mqka z%Qw4~XU?=+i9UOdkD6Wae?;Kn`p7W$N<^egb<;N6=GWK?&$1NJ_PJtgg>%}bb~pdJ zgN}KDIgM7%7Jj9eOW~~6w{NEfoiS9?V7WziEW5n7o=Y&V#f&_$0YVb=DJEbcsSQl9sq2%ng_|q1ztsYnyjWZA1 zu4GWkz#l*#Ykn-h27~7VKI&VaG?zzCntFu3)#F*7O>BmVuQmxHn_Po}hwRf8_< zjRKPkKVn(VW$-k#F6&`mbp$Hsx@xxvb!T;1EkNuJOH2C2$4woej#%kz=e%P@OE%lF zLpWYZboetqu3(&Xj7sObL-jYN-3?~TlPRZ$sAA@u;DY5b|NVm+g>ML?srP;|Tm-N0 z(hau>{XU!GYx?)pj21 z+7DzizfK`?nw3nh8lx^);ytvuhGXut$645$flbLEyD=-(l)~-%pY<2*yM^if3(mLD za)br*tz+dYG&H9%i!Vl5dy727qvh&&UKb&RwmJN$N~ci@kT9 zJYa^)vYUrSoiIA_2r=rXj@U8^|pz;lEyTGvx6&HMb^)Kg#Kh$q77 zyAog3|Djd9GDTA_a&$IkhhFc%^1TV)lPA{kr8pEJEvmNetcn#d(97mBr;d1I6?Mw0 zDrxE#4LaUsw;t5T2&A4Y_a|$p`Qy*GRN9u^(3i8oL|HCe zlfuRn{sbx$t}gbqn$zYgT-FXOj%cVeFPB;hQ(-yC_`+=8=5uu^1gW3jJTHGYzgi}l zVf?aL`p>O%;<92mVK*|2-xgO*m0|=7WwUEB__zV_luKoE!X1^>5~dutLc;fB{J$-Q ziT8&x>7LV^+A0b8y|wiCF}ua^_y;WFsKpIb5co!EBiZsFf{21`x6{=MeS?wfF}Kio zbiK2cOr}vQT{ztBR;#0Dz@yIaYc>@TF5w|>t1IR}{8p+%bP3Tt8|b8~I1 zH0R`lu^~M%%CjLbp|v5;Jgw&x`bAB{<@voJ-aI%JI{wc1SV;#1lJNR3=YBuUp5l0k z)dkh*=zvrb3WYqg;#S9O7#&9-B<1YT!Fo>VejMB>tjRCTZfr$B$I7h`D>++f!eg}3 ztiBgJ<;_tN7Td&p?dBI|9V_4GZ0mo~t2M0jGdux}(2opL#$!s{OD(6eIRxkKg*#cl zVP>FybI@p&6nq)#&HeUyC8iw9s_)hdRS*d0>xT}fGCqR$C;`iJB~x3MMXK->?s2To zwb5G#Yg>Unp?q7HsNz$&&yjEG>3i&QJtuf7>N+N@N*$kIuj8}d;N@#Ucns4w9md}_ zq>fO$-_a^fwzKS#&`5ALBb``$d+Io)_dJfYINo`4c`WSPn`gqC?N!6eH~sv3ve$b6 z=kyt20}Z{~KT(FR;?!4_5uG}+ab{Wkz3SQjTDuPLsEV!~I*Jq(q(c&dASFw$iljmy z2{8#Rl(1}Wk|kS`Ef9)AKmiK@#D+*wgMb23L=gd{h#&|8f>w zyxqG8BFJP^3n=r}$Fwv1PC1mAjg#JaW+w)q(*c9Dt&wJCzK8bwV*U?3;Gru)L$@8x zZ>o;M+kkxhsb3$6i34^+a3cfiqg*j1k2De{H4>U)8zr57yoI z`!v*f51vTrf?H~(Q*k!@#60bMPxwN^TB-l=?Id+w7%n+8M4$Kdo)#HOL` zO3NxdL_PfClc#Thun*MiLkQP*&`RigxK~Kp>-XnuS3$b1vVY`k(nTw2agD@lWPWE@ zIsWj_E}*o4av;%jN_VZ4zHvmuSbo&DE&mq!drh=04c^_KEQ<(Y#a}wO_|;KR{5lk; zA#{1KvatF#Hs9p7B{!NbM0si~f)5?yr$%UG<`b;BcRI2H)C$MwKsQ)TNm56^l;C4u z{w-m|Ml@D!gaCRT;^ZLp*y5%+H|_gs&wzuK{@W6tyfZ`{hwQBVz>!*Y4g%H)^I#5G z{3$9}mZln7>2$Yl+LZ5CV*oHCzo(_{<0CYX6!&0$ODwEn(J>3vMTDX&;@9+ASbPec zvSwR4?xf{BxDqhNP_99e1}@(KAUTI6>vmfgpVq5P6kCzSpR~x=;t8@x`VFBBz7kIqv#9gfv8n-1bEPtW` z|9IJJS>FMLCIiS^V!81Z+DeR=H4?7-t?4JwwFQ|;Eo!V%B^%(f;59xppoStB>! z9gl^C%^QsFn~pCX+pj**I4B_|HKJ`?Vyw>n;;Pk_74CjgG~D2NUdpcX{Mpu|w`6tH zds6>$%5zE< zgCs!TbfnYX#VjAhwvm=z8{^NSf-CbB&;_WA5-(RghsNs&xoPfydVvVlq_^8WjVHI# zJh5rd=23uVdtInsG+V3^ns4XmD+(lAoH;g zR6_G*{`jkRzw8R&1(2JTftRdM2kg4sFH>)j?0klGhx?5k7913mkJuD z{bK3b2Pa~3$mZ@k0()tn0M@-9#_b{Oxo$pqpTyX$O;F9v$FYi51boMSb>MtlUB}NV z{RM#sA`JT3;*0<{S;~sZ7j%}3_JLckA<8X8H>7t`PdhJw#iMd~8#Tsm(C4~4cvzHu ztowi3`0_tdecRepcuH@`PY=}|zoeCDpha>q%TRUhuy_@F>g~n){z2=VKebTt6-j=g zas8l-prEzq{TsN=ZAElJOE?Y3!%`o?%c9ua+=4jH^CO$ck2zRi zGJxH{m(GOS<_SPYJB_9c$)<~R|H;SxXMLjv-D+X&0s)H_LfY9>V7s#@Db*?@iSN7R z)T7U=6X7?2-wpAi4e`*8 zAF1Goi^eV^zAJsWW#`Q5C^cSyNT64)N|_GsV`w#V7{Z^unQd$32f;s;d?fkHwV-BO8!2_( zFQuT4HAM#})GY(FUU*zHwX5uzgtzUD`6>*)H|n=r4WRKZQ1>MUKX+0) zwGr<~s`AKpiMM&e@2In8Fh zO(u*E8WvOjH8dN0K$+%Pqss|6qp=9>Md5t16stFyqzptJ_doL0X*A(a<3$*( zQ>1?mt*;=UGUM@QU82)GTCxdJp+l<&UEBs+b%ri9YgrZ|0(UytBM!O*_n&;hYrbbM z+=Qu6Eeyy=(ThJt1v^94V`JvRhY!AJy4V5cZ&$_Nk&d@i5AU98@ELyJzxC^rVE7x; zTe?XquZ@7gA>})C2zQ>5kv%`|`D?PIN3O>wYke`_l#AY2gt&{AF8&l1Y-v|2vQ%r1 zWHC;VtzomNqN$yRByyI{6Ymbg!5yi%6LifWQ z^>n_qM};Ia_A$H~jj9t33J<)ko(`uN zjE?c{b!5I*EO_ruWp*@WFWRj)G325(>UsL<$La@Kj0R{YtnAboKQ#OOhjYNg_}eY&7wY6&xHg;vbm19!;nJV-kI8K`dC=&2l%2a=^dL}il*=>b!Lu*qJPutz+d9nHO6RTJ|5jbT-ta%fT5(Mbu7A zj&yNmvpZi-0wce{f^X|;SA|;pflo)7Z9ggEd$MtP^oQ0q9T|uI^HLq za5@yoMs5!t{0qFU0nA4gyM0eBnagf&jRs_9+VPkQU$O57-d(pR7#R!-fK;)Fa>2Z^ zLa{rPG?hbd)1|W4g!t)VB8ZHBk@-&{N{v~*;O4fp+pRTJtqf~#Y46APPq zKSc$5x|WVox&3~uU#;&hv>gknFL z;o-B)?{Lj(!l={`k(ZXhzs*(4GQpTz{CvANsmOQO^sa&_pLTHiqsw1JQ>8xYKkHtV zuZh-fj8UK(lz*x7U{u?G!stlb>)okZs3MIP)D2T@lFTAi_9y?=JOQU?Z%SdUt@u+^ zFzRJ(Ji&o$vaT1%EsXq4NIlDA{Q$T#5q z<>CEw!hB&~SvmQR-}8iXB)idX4YZ_ZJ^oyvjnUh|+(BfZ#T6l0`Btez?Cy1{=@N8? zjlupNG;L8CMBwY&EoJ%qOUM~6)bLLt=d9F1)a-c82$M0(VwNnJGI)C|pSYc2cflpZKlThOZRgORv=F;irZI%=x8EBKW3^NO=>J2&Qaw#}Libu=6w&I(mZ;cgmS|Mg!L<*y6yPV3H!}!8Y%Nr z9D142>Gt9|o7ugA%P~5|5yi&;rHzF%*t2fVZ^aE0qY{pT_BgU&npqXx)JAKQ4Av~R z`iRwSaWwnumFUme{^2mJ39Dr6cFpyhTl8zS^We62KdUyZ~8kG%D2wj6^cKQa-jWntKO*>2u6d;)(848)}uIYdZ1+JmFB1 z`?-@rzV^Kf{G)aFGIZisAMvkHJkmiEY1eLDJEtc~ z<1hy1^R3+c$Q;KBP~qkBpk!j@uqU-pAy{?k^=wy?Qmii2wd)d%7G~!V z=%i_CtY-cMtakF%eBjqM=f;EPThP$3(Kb#qO)?J0u=Sndu*~PY(!o$I1Dx#aMglQy zgLsXczSZ3@PbQP%O7Z#Bug=MzI}Ow`10vR~#IjJc9f%^{-oyS`y{!ROTqFFa_y6}y z8F=|hu06XysWp^5h9R#Hv2UokbYwoGyj<0$*UiZX*{R3ZFxJtiwB1^E(nzb5g$Exw z_^KazX74Rl2X2SRM0;&HXW6BQ!n!4!G-7;^85Ks%sS`65>j)8;lEe_xAI~o{KVRj| zj-^Mof~pmU1Uel!R8%@j--)4Ia}S>L%__EdIuOmBLKLn1!F^y=wsiY*cQ&&F;*HUh zQ;7hxSKJ2yTy2~nIrQ=weB8VW7wbcUgD?Y~fwowAA0!AU+9z2}MuUvsH8~S=_&Uy+ zj~(wH#`mo*yDWUi%j`VG+6t4Vp~!%uNDFlMO(SQFF)Q1_Cfw}oT$WscFSF(LNtZx0 z5}r;^b$$1{RzhKQ@AW_Q{gxw^v70s!u!}!M1tFJ9Nz_*|;pi{lkQo~`Ck%&9ec()V zw_~?!TIm#KfX1kU1HMO(`3`kUdb;V}b&XW)%`v_{jc)FL{vD*o^-#~IsY|C@8cEOt zv#l9?nqOxe>GUO9$%Iy-<$gS<&}1&&UM5jhT<}rT~|`3QXD5=a&DM?27WybZWmqb->jZ@scvZqeTNLb zikojgZOB2SWRGXj0VATmddATx1$59wqRBdNwRP21`2w779Q1ErG@`MWe-WT<&+%K;?k%vyg{))%Y4Af)_fZ1A`o<%VpN)j4 zRe*~}67rcjr6d>b21v9%+qG|F?5D*3VH!|-m^Jg6tcIKv)SdXMg)H5A?_~s2M=k&G zaOEYfR8h%Me3Hj1_j+SCqFf*BJfM;8_#0YDlJypuc>31de_s0?0jN1rI$BjZv_w5i z22L%aV$`LR4rlM&f8+L4zNQCL|GKvs9uf*~p~-CT4@x6LU#xAL^_FOqNO2lOE}4CO z%fZWe@Xe)&O>~vVw(LHzmTXc;l%0qFSI=1RDU^Ny4M4+V=7;w|1djn&6$oc#}2oPt%(>{8Wpb^@wa12d=6DA>ZqLb)3o9}}F1CjN*SJkiwSKbxY zUAwaW6x!gK=Khlj!}hXE!EgJ}XtR@bLH4{VO-MdFTn0{omXj+cKgAwm=uzLlfcy4Q z^^93aNOXPh9}Pk7(U&)NeHPv9VT5y9|5|sZOw7Ky0N>1GTdu9do`LHJ504-t@rPGR zL7k+xq40(ETbT|O+3S&o(HKtJVtZw8LYI9_J)LR7I9+_&V8x{N*Q;v>=D~lg7?0`T z(coY8Z21#(L((*~=76v6Tzws$dlAfWM8|UFn+c~O-p**n#$rEK<(5on^Iuvy3>Z#) zX@{v^Nlc4nO1;S>nRK#i?|k2BGa=={O2|SA;I>Gtia$jKQ!0xYotXF(@11sSjp8%h zTC#cPA*9GXQN8O@jL&8z=WD8Azz!ruC&~Nty|2Cpc6ZnfGlAkyQ9O^gSiNt5lMO=Cf&*qE%zb~n^U>+AB$rX9Lu>Vh6{m2HUN?Fn!BCYpHpEjRA9OT(Xp zT0PLQY42JPrUo8I&h1i4HoKev%a{m|K1Ss;4lzwy^bXj*Kn_NWTXB!8Vnl`9p=Lq8 zw*9FJYzbs3i0G#5#3!^6`L-8drNXP1>_|2X z^JSDv<%ceOqi`WK>xMv;PB^V?%gpKCDI4L4V9S(lX*@fG_y#CiAXyeekn>osq+T?? zLs^C4Gd^Cs!rM2|E#5{1)e-eSd{PZ#+yFs%4y|yfybM=q z8x1mvL$Au!7EFWNup9515rQ?UVHkx~8F3_&KM?|!dFI16=WG1ybN-tWtU^31#VavfOvpS3C6;|g-^=EYL6 z*x4^W5RCNz#V9iJ`3sL;fcuXH?BfJ-^FThNZ>Qpm`D@HyZ>$E^X?)uf%zx4XFkOK! zF3W9L)z4I;rmM6-!qF>Roshby8ghA5PIpD?64RoD9ik;~PvQ49^OHbPt~b zeY?(h|Ami$@_+b-60|#VXhMaHR&Ox>3Y@{PA;r6qEh8QF(8!03XYC1f+5X+OFd)SX z9V3G`z_tHdCN$RCaqHnvA>W_)wkG-xGI8)MMte5f&Z_K%Nw=5({Rse>^0YHb<^W*a z-Yw;`E4;Bi%xY8Uj5kNjynY*~f&Oi`1R%$!B}AaOFB^iL#utyVb8N@qlp#d_O;$db zu({KZj>vfvP|Of3xG;-U9hFtFmGj?y1O6A)=C_s zp<_(-w>X%VER!@OO%ZkYyQ$+>K+@fiv;*<)_KO2heJgsdj-%Yomr0ARp9gMh7`7e3 z?@`3TFWz4 zd-H2Rn-zd&*(i_Jr4t|R;G3JD9SS6NoP^4@YLgrqlaP;A?!=^Du0z9U$Vbzs)Gab- ziMSDt57w*E@+RyyyQvT_gqUsKRvECAz7ZWdcj3dm9aQ1xhR`w@P1}ON6?_#4=eju_ z3umr$g3ZMEpkwy--|;GBjD(C7^x952P|v6(54!)OVQJq%LY7xh&||ygK;6fhVomxi znPg?$73VaT+^@kmn5cjI8#z#U5!b(UVRaIacH&D1*BN^P&@xz_3|oq`<*FAx&aVbI zw*Q7|-D9dE|jNVbn{Sa+KV$8Zf1z?&c=ps{Pg3iDnceP|AN&>zi1gP0b9*`><%In&y!Q?8> zK(6T+0H|Drr+9FEqh#coJ#Bci?r7T@Xj>Y-TAt$q!TcRM%7ERxyrwRDf{b07LzP^8 zkp~u^CiLXo(=A4Q2B<`&I27*TKlpG$k2_iT@zjGbJ(~~cmuP7Sgx z2l4Lzk>VWf3hMlR^YXH{FOC9RBG_n7*6xlLHa@!T{4Zx_!AM1Lux3P;KmJuf=L7Ct zzkcr=0Byv#1p(ZLc*h zf!+#>p3R9?p${rD@F7oGVn1NDnZV{7r^?od7rPP4C-!P zVQhKn*of0pL9h|wiZ<_r+A0X#&FfX7qMFu|PgE?tk%b}A+LTEZ!x3^M+jMd9MfLVUeuKq)?>~ILjTxeZt zZ@40CBAdd=WV_{dhb}sY;1~i!hY$~+)RPa)rmAMA%)JRS$GmZeJ<+uaCZJ=`+Nbz% zf=wjh=U!pp)DciAFWCCe`h%0bA6(3#faPDd!> z3ZvlZuVQxZ1#%(Or)%s_MXN=QwOP%gTVsMInJcgt7=M9>QRz*66gh;Q{E6(Q5xpV( zX4r*xxT1Kq$n0$n`5SK{7Y9$bqBWVvQTK=)5Wrw}6^e8b$qD?fmbmNv&Flq^W)L}y zxJUVC1YoJzxJ#UmxaRPuTh;-M9Xbgnh*y*45aS}`=HV^&9~oH)`5pvfGm17)4lT(# zPO>G*>{R{V(QPAF0+1bL2qA#`2g?DbBt^(=eEqq`k56O+#)>bkufan*&-XFLqZ}KUIAkF&RT&%9zg|Jl8{-cz&w@JBHA!Ny@&Lmx;7Sip%qINHty)ocBYJts$ zT!Yn;Y0MHzP2C_(uWSg1-kzhyxNB5kI#J9Midix|FdI}F%@uPDF0W3RO;0t$6AZv!HCF0k0tFGK`s-x$L5Uol>a6##_&a zLERNWiS(@LMR7%qK865^L_fwb>LbH+_m4$CXyX0S)Rj6$^0qrOG47KiY5<_UXJu`fa zHP_MBlcxFpU8H;{!CtNkTZBg)^mZVg=*O7Wdp@j_bk7V6VrqCa68#XX#XdiD&>!Mj zf5~Rii$hW^FM!L{H&O(}W~YJTAN-n=)woa;hsb(FkeDoaD3L*Ev(6HrxC9!5H@t){ zNC)nd!1H?(82h`!v#eGu`-Zas8J@)uUH=h@Ne6;%+3H|Lh_oGF0U{*Rxg}GUhdSUs z`fCv_&Ht(x-L#@#pvK|(FkkQK`Gv2bxQ@-rwhm(3wXkjI&@zLAq^bwdF!;R)W;E7u zgd&y9ub6U8#ss!Pu}Cf~#ST_7zhZ!SB0xM-X2NAgLiuQa-7bQ&=ZOOc?XNX+0##Kb zP|5ZIrr%%=irsZLx=<_XQi}k>i9&W;7PGe4rBK%Lan9d?lp*QtMkxy~m+3N57Bkq# z>Tp*(YC1xR=)9_viHjrZCA341qX42G(p+bq`-h?*&~`janY=11`YAPBTQgVTajqAw zgodLtnsLAhjJIY4hPJMR)a?DMNI@#vJ|UzC=P|EqxJJsyEbc0T`#pH?JMcP)CBmS7 zF`SPf0-%1em;#7?NCWlHo*#;SL3>pVtDL^Bcm9N0)2ua37RlhgiBsG~X}De?0%O-~ z3k9Rm^`<-)PE_JR6*fT%;b>W=Z?2rhGI8mh5Qz4Id14^kt!gulcH+4zQESpRxFCkK zE6fk6-MZ$96os-#Lp8`YQy$J~F}NOk6e&vG_D5MTBipPc6pIe#&1`a7x{*e^>ditx z>bhfP0TI=VO1?%%@}06+R@c5xp;$B-eb_FiryVa(;mPg^uGCD3ShD88Ms*2@#ZjES zu;R+>+PBwnMrrq4!8*=jvg*aDR>>&^#<5o`hscF!QKh9rz4#(jnyyX}p^9MYkYQ+# z9E=D8yAM4dX1W?qo_?a=)9#;y-d6zUHFR5mu)2z@x%Ya`ci-*c?I zk|t|b7D}~3G&(fAEI_l0hdN;Yq@J8SV#!Z(VMXjIYFO^taS`~BS+MlbYy5X zP7zTAM!j=9z}QX^P4dv0>{bqhNB|mo?)qxOB=Mwc-X_DJoyH(}vq|`mtIC{fa-uQC zZ9wZ%8TmdIQ^g^YpBB=#tH&0B(yB=P@oEGX;n6WRM*&ZSLP~^}3RJgs>k`*PkheCK8Ai5x)zB5dD}& zhKDA~X=695)rgK*qeO@z!Kj&6$iWz_xUfJuzoQkoTPo0SS?y>OYe@A%CQp*F9-@T7 zeL<)YjSBgm99ou5pMj|W8$C1Bm%c3fy5Jk+Bvt$p^$N@gHSGNt2&cq6!apBRHVtt zXgMf%ejx&){<%sHi21u`AQqv~@bjMtO$0*+zt|}FnSw5ni^#k;~RvRVYhy z>Oa+>ij<~8MidB?_6mu(W<T~yZ(gjnte*ENWCQv~Ob^2LJ*&0}I- z64=d!g-3lXc6KAJP(m7W7Yb2bFU^Y_uH>K#8z?RVOnvu&Ke}IN7ZK0^GvH;e4OAh~ zZITNVki2`e#L=PTLoqI8zEOlqOM?Gt zKy}}CF2XLkAc9$V*etOnd?hZqr&)wgS5mfUz;|7YDuOOK7{WwvP^eyXb|0t+xiuM- z#%e&uWnv;=y7qcd0l4^{O%Ws=;vSzZwgO9P#m+{{g!vvkpW~P!VQ_lO^I=W$nct5^ zzoZ4uzx;j)v$`*s5JAwKzS|tPC43}@_hR)^*g#Z_=K?X@mjZ~ypb$F(A>8NnMG$li zt?JwWO>jzG^m|(P?#KH*j?{_}=sc@15W(jtnh1xs$+1A3;(e%` item tags back matching recipes. +```text +src/main/resources/data/mineralogy/orespawn/provider.json +``` -Use Forge and vanilla stone/cobblestone tags when broad compatibility is -intended. Keep rock-specific recipes narrow enough to return the matching -Mineralogy decorative block or furnace. +It declares 32 rock rules, sulfur, phosphorous, and nitrate ores, and the +provider-owned `mineralogy:fluid_deposit/crude_oil` rule. OreSpawn owns optional +vanilla-ore management and must not be duplicated in Mineralogy. + +Keep provider-owned IDs stable. Existing worlds contain self-contained +profiles; provider updates must not overwrite established world choices. A pack +may supply an authoritative full override at +`config/mineralogy-orespawn.json`. + +## Forge Tag Integration + +All raw rocks use `forge:stone` and their material-specific Mineralogy tags. +When the historical `COBBLESTONE_EQUIVILENT` option is enabled, all 27 raw +families additionally use `cobblestone`; chert and pumice always retain that +identity. Gypsum, chalk, rock salt, and both rock salt lamps retain their +specialty aliases. + +Minecraft 1.18's `minecraft:stone_crafting_materials` and +`minecraft:stone_tool_materials` item tags include `#forge:cobblestone`, so +enabled Mineralogy rocks work in native tool recipes. Forge 40 exposes +immutable tag snapshots; Mineralogy rebuilds only the block and item tag +membership after initial tag loading and every data reload, preserves other +mods' members, updates the exact tag instances retained by parsed recipes, +then invalidates recipe ingredient caches. The nested Minecraft crafting and +tool tags are updated alongside the direct Forge tag. + +Sixteen vanilla recipes and their advancements use conditional JSON overrides +for the complete exact-cobblestone, stone-crafting-material, and +stone-tool-material contracts. Enabled branches use stable Mineralogy union +tags; disabled branches restore the target-native ingredients. Forge 40's +already-resolved nested tags do not observe a replacement tag collection, so +Mineralogy also mutates retained tag instances rather than swapping the +collection. + +Minecraft 1.18 also owns andesite, basalt, diorite, granite, tuff, and several +matching finishes. Mineralogy's family tags include both native and retained +legacy identities. Four `data/minecraft/recipes/polished_*.json` overrides move +the native polished-block route from 2x2 crafting to one exact native block plus +sand. That leaves 2x2 matching raw blocks available for Mineralogy bricks. The +matching vanilla advancements are overridden too, so native polishing is +revealed only after the player has both the exact native rock and sand. + +Native `minecraft:tuff` is the raw tuff-family input; Mineralogy supplies all +of its construction and polished forms. `minecraft:smooth_basalt` joins the +smooth-basalt family and can unlock and craft Mineralogy smooth-basalt forms, +while Minecraft's basalt-to-smooth-basalt smelting recipe remains intact. +Deepslate is deliberately only an OreSpawn terrain and ore host, not a +Mineralogy construction family. + +Do not broaden vanilla slab, stair, or wall recipes. Where Minecraft already +owns a matching form (raw and polished andesite/diorite/granite slabs and +stairs, plus their raw walls), the Mineralogy-output recipe keeps an exact +legacy Mineralogy input except for the deliberate slab overrides below. Basalt +and tuff have no native construction forms in 1.18.2, so their safe family tags +feed Mineralogy slabs, stairs, and walls. Polished andesite/diorite/granite have +no native walls, so those three Mineralogy wall recipes may also accept the +matching family tag. + +The six shared raw/polished slab crafting recipes and nine corresponding +stonecutting routes deliberately output Mineralogy's upright-capable slabs. +Twelve exact shapeless recipes provide reversible 1:1 conversion between those +Mineralogy slabs and their retained vanilla counterparts. This preserves exact +item compatibility for other mods without allowing a normal crafting or +stonecutting route to prefer the less capable slab. + +Use broad `stone` or `cobblestone` inputs only when any matching material is +valid. Recipes returning a Mineralogy construction form must use the exact +material and finish so basalt cannot produce a different rock's slab or wall. + +## Crafting Data + +All Mineralogy recipes are native Minecraft/Forge 1.18.2 JSON under +`data/mineralogy/recipes/`. Run `scripts/generate-recipes.ps1` after changing +the recipe matrix; it generates the 27 stone families and global recipes, the +native slab/stonecutting overrides and compatibility conversions, and the four +target-native polished-block recipe/advancement overrides, then retains the +target-native smelting data. Every Mineralogy recipe has a matching unlock +advancement with the same Forge conditions and the same exact-item or +family-tag material predicate as the recipe. Unlocks use direct inventory +ingredients instead of listening to other recipe unlocks, which would +recursively reveal an entire construction tree. Polishing uses Minecraft +1.18.2's advancement requirements matrix to require the matching source plus +accepted sand; manually crafting a recipe is the target-native fallback for +Forge's delayed crafting-output inventory trigger. Rock-furnace advancements +use the matching slab-family tag as their sole material criterion. They +deliberately do not require an already-owned vanilla furnace, so the upgrade +route is visible before that intermediate is crafted. + +Reliefs preserve the historical two-stage contract. Nine matching polished +blocks produce 16 blank reliefs; a target-native synonym may satisfy the exact +rock-family tag. The blank relief is then the exact input to the marked relief +recipes. Two matching left reliefs shapelessly produce two right reliefs. Do +not substitute unrelated materials or broad stone tags for these inputs. +Do not reintroduce a parallel Java crafting registry. ## Backward Compatibility -Mineralogy's andesite, basalt, diorite, granite, and tuff remain registered even -though new terrain aliases them to Minecraft's blocks. Registry remaps and the -legacy world-data hook must stay available for old saves. Changing a registry -ID requires a deliberate migration, not just a renamed Java field. +Keep the `mineralogy` mod ID, every registry name, tile ID, NBT field, asset +path, recipe identity, patch alias, Forge tag identity, and provider rule +stable. Production Java packages use `zone.moddev.mc.mineralogy`; implementation +package names are not saved-world identities. + +The legacy `GENERATE_*` flags can remove registrations on the next start. The +new issue-121 switches only change creative visibility and Mineralogy-owned +recipes, so existing content remains loadable. + +Forge 40 converts pre-flattening chunks lazily. The coremod expands Minecraft's +fixed legacy state tables before conversion, and the selected-world hook +installs the complete saved block mapping before Mojang's data fixer. It +reinstalls that mapping after the client enumerates other old saves, normalizes +legacy rock-furnace tile IDs, retains sidecar recovery, and protects populated +chunks from cross-boundary feature writes. Its packaged runtime uses SRG method +names, so transformer matching relies on stable owners and descriptors and +fails startup if an insertion point cannot be found. Validate both previously +unloaded occupied furnaces and new chunks at an old-world boundary in the +reobfuscated jar; a development launch alone cannot prove this path. ## Building -Use Java 17 and run: +The build uses ForgeGradle 7.0.34 and the Gradle 9.6.1 wrapper on Java 17, +while an exact Java 17 toolchain compiles production and test bytecode: ```powershell -.\gradlew.bat test build javadoc --no-daemon -.\gradlew.bat genEclipseRuns eclipse --no-daemon +$env:JAVA_HOME='path-to-a-Java-17-jdk' +$env:GRADLE_USER_HOME='D:\MinecraftMineralogy\.gradle-verify-cache' +.\gradlew.bat clean check build javadoc verifyReleaseConfiguration verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums --no-daemon +.\gradlew.bat genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath --no-daemon +.\gradlew.bat assemble --no-daemon ``` -The normal jar packages these guides at `META-INF/mineralogy/docs/` and places -the short public agent guide at its root. Private workspace agent notes are -ignored and must not be committed. +Inspect complete client/server logs and test the reobfuscated jar with released +OreSpawn in a launcher-like Forge installation. The normal jar packages this +guide under `META-INF/mineralogy/docs/`. -For all provider fields, templates, custom dimensions, Java API calls, and -performance rules, use the OreSpawn guide in `config/orespawn-guide/`. +The complete release version is `Major.Minor.Bug.Target`; see +[Mineralogy Versioning](VERSIONS.md). This branch validates target `118021` +for Minecraft 1.18.2 Forge and does not append CI build numbers. diff --git a/docs/PLAYER_GUIDE.md b/docs/PLAYER_GUIDE.md index 5ed3736de..ca3630550 100644 --- a/docs/PLAYER_GUIDE.md +++ b/docs/PLAYER_GUIDE.md @@ -1,49 +1,219 @@ -# Player Guide +# Mineralogy Player Guide ## Installing -Mineralogy 6 needs both the Mineralogy and OreSpawn 4 jars for Minecraft -1.18.2. Install both on clients and servers. A world that contains Mineralogy -blocks should not be opened without Mineralogy. +Mineralogy 6 needs Minecraft 1.18.2, Forge 40.3.0, and OreSpawn +4.0.10.118021. +Install matching Mineralogy and OreSpawn jars on both clients and servers. Do +not open a world containing Mineralogy blocks without Mineralogy installed. -## Creating A World +## Creating Or Upgrading A World -Open **OreSpawn World Generation** from the world-creation screen. Recommended -Defaults is a good starting point. The in-game **Help & Guide** explains Sky -geology, classic Cyano layers, formation sizes, ores, fluid deposits, geomes, -and biomes. +Open **OreSpawn World Generation** while creating a world. **Recommended +Defaults** selects Mineralogy's Sky/geome Stable Layers profile. Use **Help & +Guide** for OreSpawn's explanation of geology, formations, geomes, ores, and +fluid deposits. Worldgen changes affect newly explored chunks only. -Mineralogy supplies the rock and deposit choices; OreSpawn performs the actual -generation. Changes apply to newly explored chunks only. +OreSpawn detects worlds created by Mineralogy 3 and keeps them on the +Cyano/`LEGACY` engine with their established family order and layer settings. +It does not silently convert old terrain to Stable Layers. Back up an important +world before changing its profile or upgrading mods. + +On the first 1.18.2 start, Mineralogy recognizes the old saved registry and +protects existing Overworld chunks while Minecraft converts them to flattened +block states. Rock furnaces are converted when their chunk is first loaded; +their inventory and cooking progress are retained. Old vanilla tile IDs are +also normalized so a legacy chest or furnace cannot prevent its whole chunk +from loading. Let the game or server stop normally after the upgrade so +converted chunks can be saved. A complete copied world test is strongly +recommended before upgrading the original. ## What Mineralogy Adds - Sedimentary, metamorphic, intrusive igneous, and volcanic igneous rocks. -- Rock-specific slabs, stairs, walls, bricks, polished blocks, reliefs, and - furnaces when their content options are enabled. -- Sulfur, phosphorous, and nitrate ores. -- Rock salt lamps and streetlamps. -- Crude oil blocks and buckets. OreSpawn decides where deposits form. +- Matching slabs, stairs, walls, bricks, polished blocks, reliefs, and + furnaces when their historical content flags are enabled. +- Sulfur, phosphorous, and nitrate ores and dusts. +- Drywall, mineral fertilizer, rock salt lamps, and street lamps. +- Distinct `mineralogy:crude_oil` and `mineralogy:flowing_crude_oil` fluids, + plus a block and bucket. OreSpawn decides + where covered Ocean deposits form. + +Raw Mineralogy rocks work in broad stone recipes. With +`COBBLESTONE_EQUIVILENT=true`, they also join Forge's block and item +`cobblestone` tags for recipes such as levers, pistons, dispensers, and brewing stands. +Exact Mineralogy rocks still make their matching Mineralogy slabs, stairs, and +walls. -Most ordinary rocks work in stone and cobblestone recipes. A furnace made from -one matching rock produces that rock's Mineralogy furnace where a matching -family exists. +Minecraft also has its own andesite, diorite, granite, polished-andesite, +polished-diorite, and polished-granite slabs. Normal crafting and stonecutting +produce Mineralogy's upright-capable versions. If another mod requires the +exact Minecraft slab item, place one matching Mineralogy slab by itself in a +crafting grid to convert it 1:1; placing the vanilla slab by itself converts it +back without loss. -## Vanilla-Named Rocks +Minecraft's native basalt and tuff work as members of their matching Mineralogy +families. Native smooth basalt also works wherever Mineralogy expects smooth +basalt, while Minecraft's normal basalt-smelting recipe is left unchanged. +Deepslate is used as terrain and an ore host, but is not a Mineralogy +construction family. -Minecraft now has andesite, basalt, diorite, granite, and tuff. Mineralogy uses -those vanilla blocks in new layers by default. Its historical blocks remain -registered so old saves load correctly and can be selected again in a pack. +Because raw rocks are cobblestone equivalents, eight raw Mineralogy rocks +around an empty crafting-grid centre make a normal Minecraft furnace. A +Mineralogy rock furnace is an upgrade recipe: surround an existing Minecraft +furnace with eight matching Mineralogy slabs. Brick, polished, and +polished-brick furnaces use the corresponding slab finish. ## Configuration And Servers -`mineralogy-common.toml` controls content and recipes. OreSpawn's worldgen -screen and JSON profile control generation. +`config/mineralogy-common.toml` controls Mineralogy content and recipe compatibility. +OreSpawn's UI and JSON profile control terrain and deposits. Settings require a +restart. + +### Choosing Where Each Rock Is Most Common + +While creating a world, open **OreSpawn World Generation**, choose **Rocks & +Ores...**, select the appropriate rock-family tab, and then select the rock. +Its **Rock Settings** screen provides four altitude controls: + +- **Preferred Y** (`depth_peak`) is the level where that rock has its strongest + depth preference. It is a preference, not a hard placement level. +- **Depth Spread** (`depth_spread`) controls how gradually that preference + falls away above and below Preferred Y. A larger value makes the rock common + across a broader vertical range. +- **Minimum Y** (`min_y`) and **Maximum Y** (`max_y`) are inclusive hard limits. + The rock cannot replace terrain outside them. + +Minecraft 1.18.2 accepts Y `-64` through `319`; Depth Spread accepts `1` through +`512`. The saved fields are independent of the rock's geological family, +overall weight, and geome weights, which also affect where it is selected. + +For defaults inherited by newly created worlds, the same fields can be edited +in `config/orespawn-worldgen.json`. For an established world, stop the game or +server and edit its authoritative +`/serverconfig/orespawn-worldgen.json` instead. Restart after changing +the profile. Changes affect only chunks generated afterward; OreSpawn does not +retro-generate different rock strata into existing chunks. + +### Upgrading a Mineralogy 6.0 World + +On the first 6.1 start, existing Mineralogy 6.0 JSON geology settings are +copied into OreSpawn before its provider is loaded. Both the instance defaults +and the established world's own profile are retained, while old block-named +rock and ore rules are renamed to Mineralogy's stable provider IDs to avoid +double ore generation. Mineralogy never edits the old files and never replaces +an existing OreSpawn global or world profile. Keep the generated migration +reports until the upgraded world has been checked and reloaded successfully. + +### Choosing Which Terrain Blocks Mineralogy Replaces + +Mineralogy does not maintain a separate replacement blocklist. OreSpawn owns +terrain replacement through each dimension's `host_blocks` and `host_tags`. +The packaged Mineralogy profile initially uses `minecraft:stone` and +`minecraft:deepslate` in the Overworld. + +The terrain-host list is not exposed by OreSpawn's 1.18.2 graphical editor. Stop +Minecraft or the server before editing the JSON. For defaults inherited by +worlds created afterward, edit: + +```text +config/orespawn-worldgen.json +``` + +For a world that already exists, edit its authoritative saved profile instead: + +```text +/serverconfig/orespawn-worldgen.json +``` + +Find `terrain_dimensions`, retain `minecraft:stone`, and add the registry ID of +each natural terrain block that Mineralogy rock may replace: + +```json +"terrain_dimensions": { + "minecraft:overworld": { + "enabled": true, + "biome_ids": [], + "biome_namespaces": [], + "host_blocks": [ + "minecraft:stone", + "minecraft:deepslate", + "examplemod:custom_stone" + ], + "host_tags": [] + } +} +``` + +Use `host_tags` when an OreSpawn/pack-provided group is more appropriate; on +Minecraft 1.18.2 these resolve through target-native block tags. Exact +`host_blocks` entries are the clearest choice for one +modded stone. + +Minecraft 1.18.2 matches a `host_blocks` entry by flattened block registry +identity. Add only +natural base-terrain blocks, not machines, containers, or construction blocks. +Restart after editing. The change affects only chunks generated afterward; +OreSpawn never retro-generates Mineralogy rock strata into existing chunks. + +### Enabling Mineralogy Geology In Another Dimension + +OreSpawn can apply Mineralogy rocks to a stone-based mod dimension without a +separate Mineralogy dimension option. Minecraft 1.18.2 uses the dimension +type's registered ID. For example, use `examplemod:moon` when that is the ID +documented by the installed dimension mod. + +The 1.18.2 graphical editor does not expose terrain-dimension or rock-membership +fields. Stop Minecraft or the server and edit the appropriate OreSpawn JSON: +`config/orespawn-worldgen.json` for defaults inherited by future worlds, or +`/serverconfig/orespawn-worldgen.json` for an established world. + +First, add an enabled entry inside `terrain_dimensions`. This example allows +Mineralogy to replace vanilla stone throughout a custom moon dimension: + +```json +"examplemod:moon": { + "enabled": true, + "biome_ids": [], + "biome_namespaces": [], + "host_blocks": ["minecraft:stone"], + "host_tags": [] +} +``` + +Use the dimension's actual base-stone registry ID instead when it does not use +vanilla stone. Optional `biome_ids` or `biome_namespaces` can limit replacement +within the dimension. + +Second, add the dimension to every desired entry under `rocks`: + +```json +"dimensions": ["minecraft:overworld", "examplemod:moon"] +``` + +Keep `minecraft:overworld` in the list when that rule should continue to work +there. A rock entry with no `dimensions` field is Overworld-only, and OreSpawn +disables a custom terrain dimension if none of the configured rocks include it. +Different dimensions can therefore use different rock sets by assigning +different membership lists. + +For advanced packs, the same output block may have separate rules with unique +rule IDs, different altitude fields, and non-overlapping `dimensions` lists. +This allows, for example, basalt to use different Preferred Y or hard height +bounds in the Overworld and a planet dimension. Do not make both rules eligible +in the same dimension, because duplicate output states are rejected while that +dimension is baked. + +Restart after editing and inspect the OreSpawn startup log to confirm that the +custom dimension baked with eligible rocks and resolved host blocks. Only new +chunks receive the geology; existing terrain is not retro-generated. + +Each world stores its complete worldgen profile at: -Every world stores a complete profile at -`/serverconfig/orespawn-worldgen.json`. Copy the world, including that -file, to a dedicated server and install the same required mods. Blocks from -missing mods cannot be generated. +```text +/serverconfig/orespawn-worldgen.json +``` -For advanced pack setup, read `config/mineralogy-guide/` and -`config/orespawn-guide/` after the game has started once. +Copy the complete world, including that file, to a dedicated server and +install the same required mods. For advanced setup, read +`config/mineralogy-guide/` and `config/orespawn-guide/` after one start. diff --git a/docs/PROVIDER.md b/docs/PROVIDER.md index 66183dc52..7a773bf0c 100644 --- a/docs/PROVIDER.md +++ b/docs/PROVIDER.md @@ -1,46 +1,114 @@ # Mineralogy OreSpawn Provider -Mineralogy packages its provider at: +Mineralogy packages its OreSpawn declaration at: ```text data/mineralogy/orespawn/provider.json ``` -The file is also exported as -`config/mineralogy-guide/examples/mineralogy-provider.json` so pack authors can -inspect the exact declaration used by their build. +The exact bytes from the installed build are exported as +`config/mineralogy-guide/examples/mineralogy-provider.json`. ## Current Contents -- Schema version 3, provider mod ID `mineralogy`, provider revision 3. -- 32 enabled rock rules covering Mineralogy's geological families. +- Provider schema 4, mod ID `mineralogy`, and provider revision 3. +- 32 enabled rock rules across the four geological families. - Sulfur, phosphorous, and nitrate ore rules. -- Overworld replacement hosts for Minecraft stone and deepslate. -- Stable-layer profile defaults and one provider-owned - `mineralogy:fluid_deposit/crude_oil` rule. -- Ocean-only sedimentary hosts, Y -48 to 48, covered lobe geometry, and a - minimum two-block solid cap for crude oil. -- Worldgen aliases from Mineralogy andesite, basalt, diorite, granite, and tuff - to their matching vanilla blocks. +- Minecraft 1.18.2 heights `-64` through `319` and Overworld-only terrain defaults. +- Minecraft blocks for granite, diorite, andesite, basalt, and tuff. Worldgen + aliases map the five matching historical Mineralogy rock IDs to their native + outputs, while all historical Mineralogy blocks remain registered for old + worlds. Native smooth basalt is also accepted by the matching smooth family. +- Both `minecraft:stone` and `minecraft:deepslate` are terrain hosts. The three + ore rules use Minecraft's stone- and deepslate-ore-replaceable tags. +- Sky/geome Stable Layers defaults for fresh worlds plus Cyano defaults used + when OreSpawn migrates an established Mineralogy 3 world. +- The covered `mineralogy:fluid_deposit/crude_oil` rule at Y `-48` through `48`, + frequency `0.08`, Ocean biomes, and sedimentary hosts. -The old Mineralogy blocks remain registered; aliases change only the default -block state chosen for newly generated terrain. +Mineralogy contains no separate terrain or ore generator. OreSpawn compiles +and runs this declaration. ## Pack Override -To replace Mineralogy's bundled declaration for a pack, put a complete file at: +To replace the bundled declaration for a pack, provide one complete file at: ```text config/mineralogy-orespawn.json ``` -The external file is authoritative when present. Validate it against the -OreSpawn schema before shipping. A malformed or incomplete override makes the -Mineralogy provider inactive, allowing failures to be visible instead of -silently mixing two configurations. +The external file is authoritative when present. Validate it against +OreSpawn's provider schema before shipping; OreSpawn rejects a malformed +override instead of silently mixing it with packaged defaults. Mineralogy's +legacy ore migration never overwrites an existing override or established +`config/orespawn-worldgen.json`. -Existing worlds use their own self-contained OreSpawn profile. Provider updates -can add newly introduced IDs, but do not overwrite established world choices. +Existing worlds use their own profile at +`/serverconfig/orespawn-worldgen.json`. Provider updates do not replace +established world choices. See `config/orespawn-guide/` for the complete schema, +field, template, dimension, API, and performance references. -The authoritative provider field reference, JSON Schema, validated example, -ownership rules, lifecycle, and Java API are in `config/orespawn-guide/`. +When upgrading from Mineralogy 6.0, Mineralogy copies the old +`config/mineralogy-geomes.json` and per-world +`serverconfig/mineralogy-geology.json` settings into their OreSpawn equivalents +only when no OreSpawn file already exists. Old block-named Mineralogy entries +are mapped to the stable provider rule IDs so the same ore is not registered +twice. The source files are retained unchanged, migration reports are written +beside the new files, and a second start makes no further migration changes. + +## Rock Altitude Defaults + +Each entry in `rocks` may set a soft altitude preference with `depth_peak` and +`depth_spread`, then constrain it with the inclusive hard bounds `min_y` and +`max_y`. A larger spread keeps more of the rock's weight farther above and +below its peak. These fields combine with the rule's overall `weight`, family, +and per-geome weights; they do not guarantee that one rock occupies every block +at its preferred level. + +Pack authors can establish different defaults in a complete +`config/mineralogy-orespawn.json` provider override. Players can use +OreSpawn's **Rocks & Ores...** editor while creating a world. Once a world has +been created, its saved `orespawn-worldgen.json` profile is authoritative and +provider changes do not rewrite it. + +## Dimension Membership + +Issue #30's dimension configuration is supplied by OreSpawn. Add the target to +`terrain_dimensions` with its eligible `host_blocks` or `host_tags`, then add +that same dimension ID to each desired rock rule's `dimensions` array. A rock +without `dimensions` is Overworld-only. A configured custom dimension is +disabled during baking when no valid rock rules include it. + +Minecraft 1.18.2 uses the registered dimension-type ID, such as +`examplemod:moon`; consult the dimension mod's documentation for its exact ID. +Rock membership makes different stone sets possible per dimension. To use +different altitude settings for the same output block, define unique rock rule +IDs with different `depth_peak`, `depth_spread`, `min_y`, or `max_y` values and +non-overlapping dimension lists. Duplicate output states within one dimension +are rejected. + +The 1.18.2 editor does not expose terrain-dimension or rock-membership fields, so +players edit the stopped world's saved profile and pack authors may provide +global defaults or a complete provider override. Changes affect newly generated +chunks only. + +## Terrain Replacement Hosts + +Issue #57's replacement blocklist is provided by OreSpawn rather than +`mineralogy-common.toml`. The packaged profile enables +`terrain_dimensions.minecraft:overworld` with `minecraft:stone` and +`minecraft:deepslate` in `host_blocks`. Pack authors may add installed +natural-terrain registry IDs or appropriate host tags to that dimension. + +Use `config/orespawn-worldgen.json` for installed-pack defaults applied to new +worlds. Once a world exists, its +`/serverconfig/orespawn-worldgen.json` snapshot is authoritative and +must be edited directly while the game or server is stopped. A complete +`config/mineralogy-orespawn.json` override is appropriate only when a pack +intends to replace the whole packaged Mineralogy provider; it is unnecessary +for an ordinary per-world host-list change and does not rewrite established +world profiles. + +On Minecraft 1.18.2, terrain hosts are baked as flattened block identities. +Changes affect only newly generated chunks because Mineralogy strata are never +retro-generated. diff --git a/docs/README.md b/docs/README.md index 4e1224b4f..58484d5d5 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,22 +1,23 @@ # Mineralogy Guide -Mineralogy 6 is a content provider for OreSpawn 4. This guide explains the -Mineralogy content, its small content configuration, and the declaration it -supplies to OreSpawn. +Mineralogy 6 for Minecraft 1.18.2 supplies rock, mineral, construction, and +crude-oil content to OreSpawn 4. OreSpawn is the only terrain and deposit +engine. - [Player Guide](PLAYER_GUIDE.md): installation, world creation, content, and server copying. -- [Content Configuration](CONTENT_CONFIG.md): every - `mineralogy-common.toml` option. -- [Developer Guide](DEVELOPER_GUIDE.md): ownership boundaries, tags, builds, - and compatibility rules. +- [Content Configuration](CONTENT_CONFIG.md): every Mineralogy content and + compatibility option. +- [Developer Guide](DEVELOPER_GUIDE.md): ownership boundaries, Forge tag + integration, builds, and compatibility rules. - [Provider Reference](PROVIDER.md): Mineralogy's packaged OreSpawn declaration and pack override. -- [AGENTS.md](AGENTS.md): short machine-readable orientation for coding agents. +- [Versioning](VERSIONS.md): how functional releases and exact Minecraft/loader + targets form Mineralogy's four-component version. -The actual provider is also exported as -`examples/mineralogy-provider.json` for inspection. +The exact provider shipped by this build is also exported as +`examples/mineralogy-provider.json`. -For general worldgen controls, JSON schemas, templates, dimensions, ore -patterns, performance constraints, or the Java API, use the OreSpawn guide -exported to `config/orespawn-guide/`. +For general worldgen controls, schemas, templates, dimensions, ore patterns, +performance constraints, or the Java API, use the OreSpawn guide exported to +`config/orespawn-guide/`. diff --git a/docs/VERSIONS.md b/docs/VERSIONS.md new file mode 100644 index 000000000..473a77a16 --- /dev/null +++ b/docs/VERSIONS.md @@ -0,0 +1,177 @@ +# Mineralogy Versioning + +Mineralogy releases use a four-component version so the feature set and the +exact Minecraft/loader target are both visible in one number. + +## Version format + +```text +Major.Minor.Bug.Target +``` + +The first three components are the **functional version**. Mineralogy `6.1.0` +means major generation 6, minor release 1, and bug revision 0. + +The fourth component identifies the target build. The complete version for +this Minecraft 1.18.2 Forge release is therefore: + +```text +6.1.0.118021 +``` + +This expanded numeric form is compatible with Maven version ordering, but it +is not strict Semantic Versioning 2.0 because SemVer defines three numeric core +components. + +The release tag is exactly the complete four-component version, with no +redundant Minecraft-version prefix. For this branch the tag is therefore +`6.1.0.118021`, not `1.18.2-6.1.0.118021`. The Target already makes tags unique +across Minecraft versions and loaders. + +## Reading the target component + +The target is deterministic; it is not a CI run number or another feature +revision. + +To calculate it: + +1. Write the Minecraft version as `major.minor.patch`, using zero when the + patch component is omitted. +2. Concatenate the Minecraft major number without padding, the minor number as + two digits, the patch number as two digits, and the one-digit loader code. +3. Use loader code `1` for Forge and `2` for NeoForge. + +It can be decoded from right to left: one loader digit, two patch digits, two +minor digits, and all remaining digits for the Minecraft major version. + +| Minecraft | Loader | Target | Example complete version | +| --- | --- | ---: | --- | +| 1.10.2 | Forge | `110021` | `6.0.1.110021` | +| 1.12.2 | Forge | `112021` | `6.0.1.112021` | +| 1.14.4 | Forge | `114041` | `6.0.1.114041` | +| 1.15.2 | Forge | `115021` | `6.0.1.115021` | +| 1.16.5 | Forge | `116051` | `6.1.0.116051` | +| 1.17.1 | Forge | `117011` | `6.1.0.117011` | +| 1.18.2 | Forge | `118021` | `6.1.0.118021` | +| 1.20.6 | Forge | `120061` | `6.0.0.120061` | +| 1.21.11 | Forge | `121111` | `6.0.0.121111` | +| 26.2 | Forge | `2602001` | `6.0.0.2602001` | +| 26.2 | NeoForge | `2602002` | `6.0.0.2602002` | + +The 1.18.2 row records this branch's current release. The other rows illustrate +target encoding or earlier releases; they do not claim that later Minecraft +targets already contain the same functional changes. + +Historical Mineralogy releases may also have four numeric components that used +the last number as an ordinary build sequence. The target policy applies to +new releases and does not reinterpret an old file's version. + +## Major version + +The **Major** number changes for a fundamental or breaking new generation of +Mineralogy. + +Mineralogy 6 is the clearest example: Mineralogy now provides rocks, ores, +fluids, recipes, and an OreSpawn provider, while OreSpawn exclusively owns +terrain, strata, ore placement, deposits, profiles, and their user interface. +That is a larger architectural change than an ordinary feature or fix. + +Compatibility adaptations needed for another Minecraft or loader version do +not by themselves require a major increase when players and integrations +receive the same supported behaviour. + +## Minor version + +The **Minor** number changes for a substantial feature or behavioural change +that does not justify a new major generation. Examples include a significant +new family of player-usable content or a major overhaul of an existing system. + +When Major changes, Minor and Bug reset to zero. When Minor changes, Bug resets +to zero. The target for the actual build is then appended: + +```text +6.1.0.118021 -> 6.2.0.118021 +6.2.4.118021 -> 7.0.0.118021 +``` + +## Bug version + +The **Bug** number changes for a bug fix or very small feature. Examples +include fixing saved inventory loading, correcting a recipe or translation, +or making a small configuration or documentation improvement that warrants a +release. + +Other projects often call this the patch number. MMD uses **Bug** to describe +its purpose and **Target** for the Minecraft/loader qualifier. + +## Ports to other Minecraft versions + +A functionally equivalent port keeps the same `Major.Minor.Bug` version and +changes only its Target. For example, equivalent Mineralogy 6 releases could +be: + +```text +Minecraft 1.10.2 / Forge / Mineralogy 6.0.0.110021 +Minecraft 1.12.2 / Forge / Mineralogy 6.0.1.112021 +Minecraft 1.14.4 / Forge / Mineralogy 6.0.1.114041 +Minecraft 1.15.2 / Forge / Mineralogy 6.0.1.115021 +Minecraft 1.17.1 / Forge / Mineralogy 6.1.0.117011 +Minecraft 1.18.2 / Forge / Mineralogy 6.1.0.118021 +``` + +Minecraft and loader APIs may require different internal code without changing +the functional version. If a port also adds a player-visible feature or fix, +the Major, Minor, or Bug component must be assessed separately; the Target +still identifies the build's actual platform. + +## Branch-specific fixes and skipped numbers + +Functional versions are allocated across Mineralogy as a whole. One functional +number must not describe unrelated changes on different Minecraft branches. +The same number may be shared by branches only when the releases are intended +to provide the same functional change. + +If a fix applies only to one old branch, that branch may receive the next Bug +number while other branches remain unchanged. A later, unrelated fix on +another branch uses the next unused number even if that branch never needed +the earlier fix. Skipped Bug numbers are therefore valid. + +This means a higher version on another Minecraft branch does not necessarily +contain every lower-numbered platform-specific fix. Release notes remain the +authoritative description of included changes. + +## Dependencies and modpacks + +Dependency ranges normally describe compatible functional releases. For +example, `[6.0.0,7.0.0)` accepts target-qualified Mineralogy 6 releases while +excluding Mineralogy 7. Minecraft and loader metadata still decide whether a +particular jar can load on the current game. + +Mineralogy 6 also requires OreSpawn `[4.0.6,5.0.0)`. OreSpawn uses the same +target calculation, so the matching Minecraft 1.18.2 Forge release used for +this candidate is `4.0.10.118021`. The dependency range deliberately describes the supported +functional OreSpawn generation; Forge still prevents jars for another +Minecraft target from loading together. + +Pack maintainers should record the complete four-component versions in pack +manifests and support reports. Saying only “Mineralogy 6” identifies the +feature generation, not the exact jar. + +## Builds and release notes + +The Gradle build reads the complete version from `mod_version`, verifies that +it has four numeric components, and checks that its Target matches the declared +Minecraft version and Forge loader. CI build numbers are not appended. For this +branch, published metadata and artifacts therefore use `6.1.0.118021`. + +Every release note should state: + +- the Minecraft version and loader; +- the complete four-component version; +- the functional `Major.Minor.Bug` version; +- the features and fixes actually included; +- relevant migration, configuration, and compatibility information. + +The goal is a version that is useful to players, pack authors, mod developers, +release tooling, and support teams without pretending that all maintained +Minecraft branches contain identical implementation details. diff --git a/gradle.properties b/gradle.properties index 0747cb3bf..32cbe0f20 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,59 +2,30 @@ # This is required to provide enough memory for the Minecraft decompilation process. org.gradle.jvmargs=-Xmx3G org.gradle.daemon=false +org.gradle.configuration-cache=false +org.gradle.caching=true +org.gradle.parallel=false +net.minecraftforge.gradle.merge-source-sets=false +mod_version=6.1.0.118021 +mod_group=zone.moddev.mc.mineralogy -## Environment Properties - -# The Minecraft version must agree with the Forge version to get a valid artifact +# Release metadata consumed by the generic dispatcher. minecraft_version=1.18.2 -# The Minecraft version range can use any release version of Minecraft as bounds. -# Snapshots, pre-releases, and release candidates are not guaranteed to sort properly -# as they do not follow standard versioning conventions. -minecraft_version_range=[1.18.2,1.19) -# The Forge version must agree with the Minecraft version to get a valid artifact -forge_version=40.3.0 -orespawn_version=4.0.2 -# The Forge version range can use any version of Forge as bounds or match the loader version range -forge_version_range=[40,) -# The loader version range can only use the major version of Forge/FML as bounds -loader_version_range=[40,) -# The mapping channel to use for mappings. -# The default set of supported mapping channels are ["official", "snapshot", "snapshot_nodoc", "stable", "stable_nodoc"]. -# Additional mapping channels can be registered through the "channelProviders" extension in a Gradle plugin. -# -# | Channel | Version | | -# |-----------|----------------------|--------------------------------------------------------------------------------| -# | official | MCVersion | Official field/method names from Mojang mapping files | -# | parchment | YYYY.MM.DD-MCVersion | Open community-sourced parameter names and javadocs layered on top of official | -# -# You must be aware of the Mojang license when using the 'official' or 'parchment' mappings. -# See more information here: https://github.com/MinecraftForge/MCPConfig/blob/master/Mojang.md -# -# Parchment is an unofficial project maintained by ParchmentMC, separate from Minecraft Forge. -# Additional setup is needed to use their mappings, see https://parchmentmc.org/docs/getting-started -mapping_channel=official -# The mapping version to query from the mapping channel. -# This must match the format required by the mapping channel. -mapping_version=1.18.2 +loader_name=forge +loader_code=1 +java_version=17 +java_toolchain_version=17.0.1+12 +gradle_java_version=17 +curseforge_project_id=240974 +mc_version=1.18.2 +forge_version=40.3.0 +mcp_mappings_channel=official +mcp_mappings_version=1.18.2 +mcp_version=20220404.173914 -## Mod Properties - -# The unique mod identifier for the mod. Must be lowercase in English locale. Must fit the regex [a-z][a-z0-9_]{1,63} -# Must match the String constant located in the main mod class annotated with @Mod. -mod_id=mineralogy -# The human-readable display name for the mod. -mod_name=Minecraft Mineralogy -# The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. -mod_license=LGPL-2.1 -# The mod version. See https://semver.org/ -mod_version=6.0.0 -# The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. -# This should match the base package used for the mod sources. -# See https://maven.apache.org/guides/mini/guide-naming-conventions.html -mod_group_id=zone.moddev.mc.mineralogy -# The authors of the mod. This is a simple text string that is used for display purposes in the mod list. -mod_authors=Cyanobacterium, SkyBlade1978, JRIwanek -# The description of the mod. This is a simple multiline text string that is used for display purposes in the mod list. -mod_description=Fills the world with real-world rocks. +orespawn_version=4.0.10.118021 +orespawn_curse_project_id=245586 +orespawn_curse_file_id=8750114 +orespawn_sha256=BE863C3FDBEC50D36D74D2B06A462CDE1A3C6876BF587F8F52F6AFA0ED77E650 diff --git a/gradle/stage-orespawn-release.sh b/gradle/stage-orespawn-release.sh new file mode 100644 index 000000000..c17c4a37e --- /dev/null +++ b/gradle/stage-orespawn-release.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +set -euo pipefail + +repository="${1:?Usage: stage-orespawn-release.sh }" +value() { sed -n "s/^$1=//p" gradle.properties; } + +project_id="$(value orespawn_curse_project_id)" +file_id="$(value orespawn_curse_file_id)" +expected_sha="$(value orespawn_sha256)" +for required in project_id file_id expected_sha; do + if [[ -z "${!required}" ]]; then + echo "Missing OreSpawn release metadata: $required" >&2 + exit 1 + fi +done + +artifact_dir="$repository/curse/maven/mmd-orespawn-$project_id/$file_id" +artifact="$artifact_dir/mmd-orespawn-$project_id-$file_id.jar" +pom="$artifact_dir/mmd-orespawn-$project_id-$file_id.pom" +mkdir -p "$artifact_dir" +curl --fail --location --silent --show-error \ + --retry 5 --retry-all-errors --retry-delay 5 \ + "https://www.curseforge.com/api/v1/mods/$project_id/files/$file_id/download" \ + --output "$artifact" + +actual_sha="$(sha256sum "$artifact" | awk '{print toupper($1)}')" +if [[ "$actual_sha" != "${expected_sha^^}" ]]; then + echo "OreSpawn file $file_id has SHA-256 $actual_sha, expected ${expected_sha^^}" >&2 + exit 1 +fi +printf '%s\n' \ + '' \ + '' \ + ' 4.0.0' \ + " curse.maven" \ + " mmd-orespawn-$project_id" \ + " $file_id" \ + '' > "$pom" +echo "Staged exact OreSpawn file $file_id in $repository" diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 249e5832f090a2944b7473328c07c9755baa3196..0d4a9516871afd710a9d84d89e31ba77745607bd 100644 GIT binary patch literal 54413 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 literal 60756 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 '} - case $link in #( - /*) app_path=$link ;; #( - *) app_path=$APP_HOME$link ;; - esac +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi done - -APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null APP_NAME="Gradle" -APP_BASE_NAME=${0##*/} +APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' +DEFAULT_JVM_OPTS="" # Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD=maximum +MAX_FD="maximum" warn () { echo "$*" -} >&2 +} die () { echo echo "$*" echo exit 1 -} >&2 +} # OS specific support (must be 'true' or 'false'). cygwin=false msys=false darwin=false nonstop=false -case "$( uname )" in #( - CYGWIN* ) cygwin=true ;; #( - Darwin* ) darwin=true ;; #( - MSYS* | MINGW* ) msys=true ;; #( - NONSTOP* ) nonstop=true ;; +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; esac CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - # Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables - JAVACMD=$JAVA_HOME/jre/sh/java + JAVACMD="$JAVA_HOME/jre/sh/java" else - JAVACMD=$JAVA_HOME/bin/java + JAVACMD="$JAVA_HOME/bin/java" fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME @@ -132,7 +81,7 @@ Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else - JAVACMD=java + JAVACMD="java" which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the @@ -140,101 +89,84 @@ location of your Java installation." fi # Increase the maximum file descriptors if we can. -if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then - case $MAX_FD in #( - max*) - MAX_FD=$( ulimit -H -n ) || - warn "Could not query maximum file descriptor limit" - esac - case $MAX_FD in #( - '' | soft) :;; #( - *) - ulimit -n "$MAX_FD" || - warn "Could not set maximum file descriptor limit to $MAX_FD" - esac +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi fi -# Collect all arguments for the java command, stacking in reverse order: -# * args from the command line -# * the main class name -# * -classpath -# * -D...appname settings -# * --module-path (only if needed) -# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. - -# For Cygwin or MSYS, switch paths to Windows format before running java -if "$cygwin" || "$msys" ; then - APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) - - JAVACMD=$( cygpath --unix "$JAVACMD" ) +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi # Now convert the arguments - kludge to limit ourselves to /bin/sh - for arg do - if - case $arg in #( - -*) false ;; # don't mess with options #( - /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath - [ -e "$t" ] ;; #( - *) false ;; - esac - then - arg=$( cygpath --path --ignore --mixed "$arg" ) + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" fi - # Roll the args list around exactly as many times as the number of - # args, so each arg winds up back in the position where it started, but - # possibly modified. - # - # NB: a `for` loop captures its iteration list before it begins, so - # changing the positional parameters here affects neither the number of - # iterations, nor the values presented in `arg`. - shift # remove old arg - set -- "$@" "$arg" # push replacement arg + i=$((i+1)) done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac fi -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. - -set -- \ - "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ - "$@" - -# Stop when "xargs" is not available. -if ! command -v xargs >/dev/null 2>&1 -then - die "xargs is not available" -fi +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") -# Use "xargs" to parse quoted args. -# -# With -n1 it outputs one arg per line, with the quotes and backslashes removed. -# -# In Bash we could simply go: -# -# readarray ARGS < <( xargs -n1 <<<"$var" ) && -# set -- "${ARGS[@]}" "$@" -# -# but POSIX shell has neither arrays nor command substitution, so instead we -# post-process each arg (as a line of input to sed) to backslash-escape any -# character that might be a shell metacharacter, then use eval to reverse -# that process (while maintaining the separation between arguments), and wrap -# the whole thing up as a single "set" statement. -# -# This will of course break if any of these variables contains a newline or -# an unmatched quote. -# - -eval "set -- $( - printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | - xargs -n1 | - sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | - tr '\n' ' ' - )" '"$@"' +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat index 53a6b238d..f9553162f 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,91 +1,84 @@ -@rem -@rem Copyright 2015 the original author or authors. -@rem -@rem Licensed under the Apache License, Version 2.0 (the "License"); -@rem you may not use this file except in compliance with the License. -@rem You may obtain a copy of the License at -@rem -@rem https://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, software -@rem distributed under the License is distributed on an "AS IS" BASIS, -@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@rem See the License for the specific language governing permissions and -@rem limitations under the License. -@rem - -@if "%DEBUG%"=="" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%"=="" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Resolve any "." and ".." in APP_HOME to make it shorter. -for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if %ERRORLEVEL% equ 0 goto execute - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto execute - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* - -:end -@rem End local scope for the variables with windows NT shell -if %ERRORLEVEL% equ 0 goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -set EXIT_CODE=%ERRORLEVEL% -if %EXIT_CODE% equ 0 set EXIT_CODE=1 -if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% -exit /b %EXIT_CODE% - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/scripts/generate-locales.ps1 b/scripts/generate-locales.ps1 new file mode 100644 index 000000000..efea6d8c2 --- /dev/null +++ b/scripts/generate-locales.ps1 @@ -0,0 +1,56 @@ +[CmdletBinding()] +param( + [string] $SourceLocaleRoot = '' +) + +$SourceLocaleRoot = if ([string]::IsNullOrWhiteSpace($SourceLocaleRoot)) { + Join-Path $PSScriptRoot '..\..\..\MinecraftMineralogy 112\MinecraftMineralogy\src\main\resources\assets\mineralogy\lang' +} else { $SourceLocaleRoot } +$projectRoot = Split-Path -Parent $PSScriptRoot +$targetRoot = Join-Path $projectRoot 'src\main\resources\assets\mineralogy\lang' +$utf8NoBom = New-Object System.Text.UTF8Encoding($false) +$expectedLocales = @( + 'de_AU', 'de_DE', 'en_CA', 'en_EN', 'en_GB', 'en_PT', 'en_US', + 'es_ES', 'es_MX', 'fr_CA', 'fr_FR', 'ja_JP', 'ko_KR', 'pt_BR', + 'pt_PT', 'ru_RU', 'zh_CN' +) + +function Convert-Key([string] $key) { + if ($key -match '^tile\.mineralogy\.(.+)\.name$') { + return "block.mineralogy.$($Matches[1])" + } + if ($key -match '^item\.mineralogy\.(.+)\.name$') { + return "item.mineralogy.$($Matches[1])" + } + return $key +} + +New-Item -ItemType Directory -Force -Path $targetRoot | Out-Null +foreach ($locale in $expectedLocales) { + $source = Join-Path $SourceLocaleRoot "$locale.lang" + if (-not (Test-Path -LiteralPath $source)) { + throw "Missing reviewed Mineralogy 1.12 locale $source" + } + $translations = [ordered]@{} + foreach ($line in [IO.File]::ReadAllLines($source, [Text.Encoding]::UTF8)) { + if ([string]::IsNullOrWhiteSpace($line) -or $line.StartsWith('#')) { continue } + $equals = $line.IndexOf('=') + if ($equals -lt 1) { throw "Malformed locale line in ${source}: $line" } + $key = Convert-Key $line.Substring(0, $equals) + $value = $line.Substring($equals + 1) + if ($translations.Contains($key)) { throw "Duplicate mapped key $key in $source" } + $translations[$key] = $value + } + if ($translations.Count -ne 938) { + throw "Expected 938 mapped keys in $source, found $($translations.Count)" + } + $destination = Join-Path $targetRoot "$($locale.ToLowerInvariant()).json" + $json = ($translations | ConvertTo-Json -Depth 4) -replace "`r?`n", "`n" + [IO.File]::WriteAllText($destination, $json + "`n", $utf8NoBom) +} + +$actual = @(Get-ChildItem -LiteralPath $targetRoot -Filter '*.json' | Sort-Object Name) +if ($actual.Count -ne 17) { + throw "Expected exactly 17 generated locale files, found $($actual.Count)" +} +Write-Output 'Generated 17 reviewed Mineralogy 1.18.2 JSON locales with 938 ordered keys each.' diff --git a/scripts/generate-recipes.ps1 b/scripts/generate-recipes.ps1 new file mode 100644 index 000000000..2d8c38906 --- /dev/null +++ b/scripts/generate-recipes.ps1 @@ -0,0 +1,1169 @@ +[CmdletBinding()] +param() + +$ErrorActionPreference = 'Stop' + +$projectRoot = Split-Path -Parent $PSScriptRoot +$recipeRoot = Join-Path $projectRoot 'src\main\resources\data\mineralogy\recipes' +$advancementRoot = Join-Path $projectRoot 'src\main\resources\data\mineralogy\advancements\recipes' +$minecraftRecipeRoot = Join-Path $projectRoot 'src\main\resources\data\minecraft\recipes' +$minecraftAdvancementRoot = Join-Path $projectRoot 'src\main\resources\data\minecraft\advancements\recipes' +$itemTagRoot = Join-Path $projectRoot 'src\main\resources\data\mineralogy\tags\items' +$blockTagRoot = Join-Path $projectRoot 'src\main\resources\data\mineralogy\tags\blocks' +$utf8NoBom = New-Object System.Text.UTF8Encoding($false) +$generatedNames = New-Object 'System.Collections.Generic.HashSet[string]' +$unlockSources = @{} + +$families = @( + 'andesite', 'basalt', 'diorite', 'granite', 'rhyolite', 'pegmatite', + 'diabase', 'gabbro', 'peridotite', 'basaltic_glass', 'scoria', 'tuff', + 'shale', 'conglomerate', 'dolomite', 'limestone', 'siltstone', 'marble', + 'slate', 'schist', 'gneiss', 'phyllite', 'amphibolite', 'hornfels', + 'quartzite', 'novaculite', 'rock_salt' +) + +$colors = @( + 'black', 'red', 'green', 'brown', 'blue', 'purple', 'cyan', 'silver', + 'gray', 'pink', 'lime', 'yellow', 'light_blue', 'magenta', 'orange', 'white' +) + +# Minecraft owns these full-block identities in 1.18.2. Mineralogy keeps its +# legacy blocks registered, but recipes may accept either identity where doing +# so cannot compete with a native recipe. +$nativeFullBlocks = @{ + andesite = @{ raw = 'minecraft:andesite'; smooth = 'minecraft:polished_andesite' } + basalt = @{ raw = 'minecraft:basalt'; smooth = 'minecraft:polished_basalt' } + diorite = @{ raw = 'minecraft:diorite'; smooth = 'minecraft:polished_diorite' } + granite = @{ raw = 'minecraft:granite'; smooth = 'minecraft:polished_granite' } + tuff = @{ raw = 'minecraft:tuff' } +} + +$nativeConstructionForms = @{ + andesite = @{ raw = @('stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } + diorite = @{ raw = @('stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } + granite = @{ raw = @('stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } +} + +$nativeExactRecipeInputs = @{ + # Raw-to-smooth remains exact because the native polished override uses + # the same block-plus-sand route. Native construction forms remain native. + andesite = @{ raw = @('smooth', 'stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } + basalt = @{ raw = @('smooth') } + diorite = @{ raw = @('smooth', 'stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } + granite = @{ raw = @('smooth', 'stairs', 'slab', 'wall'); smooth = @('stairs', 'slab') } +} + +function ItemId([string] $path) { + return "mineralogy:$path" +} + +function ItemCondition([string] $item) { + return [ordered]@{ type = 'forge:item_exists'; item = $item } +} + +function ConfigCondition([string] $flag) { + return [ordered]@{ type = 'mineralogy:config'; flag = $flag } +} + +function NotCondition([System.Collections.IDictionary] $condition) { + return [ordered]@{ type = 'forge:not'; value = $condition } +} + +function ItemTagNotEmptyCondition([string] $tag) { + return [ordered]@{ + type = 'forge:not' + value = [ordered]@{ type = 'forge:tag_empty'; tag = $tag } + } +} + +function ItemIngredient([string] $item, [object] $data = $null) { + if ($null -ne $data) { + if ($item -eq 'minecraft:sand') { + $item = if ([int]$data -eq 1) { 'minecraft:red_sand' } else { 'minecraft:sand' } + } + elseif ($item -eq 'minecraft:coal' -and [int]$data -eq 1) { + $item = 'minecraft:charcoal' + } + elseif ($item -eq 'minecraft:dye') { + $dyes = @('ink_sac', 'red_dye', 'green_dye', 'cocoa_beans', 'lapis_lazuli', + 'purple_dye', 'cyan_dye', 'light_gray_dye', 'gray_dye', 'pink_dye', + 'lime_dye', 'yellow_dye', 'light_blue_dye', 'magenta_dye', + 'orange_dye', 'bone_meal') + $item = "minecraft:$($dyes[[int]$data])" + } + } + $ingredient = [ordered]@{ item = $item } + return $ingredient +} + +function AdvancementPredicate([object] $ingredient) { + if ($ingredient -is [System.Collections.IDictionary]) { + if ($ingredient.Contains('item')) { + return [ordered]@{ items = @([string]$ingredient['item']) } + } + if ($ingredient.Contains('tag')) { + return [ordered]@{ tag = [string]$ingredient['tag'] } + } + if ($ingredient.Contains('items')) { + return [ordered]@{ items = @($ingredient['items']) } + } + } + if ($null -ne $ingredient.PSObject.Properties['item']) { + return [ordered]@{ items = @([string]$ingredient.item) } + } + if ($null -ne $ingredient.PSObject.Properties['tag']) { + return [ordered]@{ tag = [string]$ingredient.tag } + } + if ($null -ne $ingredient.PSObject.Properties['items']) { + return [ordered]@{ items = @($ingredient.items) } + } + throw "Cannot convert recipe ingredient into a Minecraft 1.18 advancement predicate" +} + +function OreIngredient([string] $ore) { + if ($ore -eq 'sand') { return [ordered]@{ tag = 'forge:sand' } } + if ($ore -eq 'paper') { return [ordered]@{ tag = 'forge:paper' } } + if ($ore -eq 'drywallWhite') { return [ordered]@{ tag = 'mineralogy:drywall/white' } } + if ($ore -eq 'lampRocksalt') { return [ordered]@{ tag = 'forge:lamps/rock_salt' } } + if ($ore -match '^dust(.+)$') { + $name = $Matches[1] -replace 'Rock_salt', 'rock_salt' + return [ordered]@{ tag = "forge:dusts/$($name.ToLowerInvariant())" } + } + if ($ore -match '^block(.+)$') { + $name = $Matches[1] -replace 'Rocksalt', 'rock_salt' + return [ordered]@{ tag = "forge:storage_blocks/$($name.ToLowerInvariant())" } + } + if ($ore -match '^stone(.+?)(SmoothBrick|Smooth|Brick)?$') { + $family = Convert-CamelToSnake $Matches[1] + $finish = if ($Matches[2]) { '/' + (Convert-CamelToSnake $Matches[2]) } else { '' } + return [ordered]@{ tag = "mineralogy:stones/$family$finish" } + } + if ($ore -match '^slab(.+?)(SmoothBrick|Smooth|Brick)?$') { + $family = Convert-CamelToSnake $Matches[1] + $finish = if ($Matches[2]) { '/' + (Convert-CamelToSnake $Matches[2]) } else { '' } + return [ordered]@{ tag = "mineralogy:slabs/$family$finish" } + } + throw "No Minecraft 1.18.2 tag mapping for legacy OreDictionary key $ore" +} + +function Convert-CamelToSnake([string] $value) { + return (($value -creplace '([a-z0-9])([A-Z])', '$1_$2').ToLowerInvariant()) +} + +function RecipeResult([string] $item, [int] $count) { + return [ordered]@{ item = $item; count = $count } +} + +function VanillaResult([string] $item, [int] $count = 1) { + $result = [ordered]@{ item = $item } + if ($count -ne 1) { $result.count = $count } + return $result +} + +function VanillaShapedRecipe( + [string[]] $pattern, + [System.Collections.IDictionary] $key, + [string] $result, + [int] $count = 1 +) { + return [ordered]@{ + type = 'minecraft:crafting_shaped' + pattern = $pattern + key = $key + result = VanillaResult $result $count + } +} + +function VanillaShapelessRecipe( + [object[]] $ingredients, + [string] $result, + [int] $count = 1, + [string] $group = '' +) { + $recipe = [ordered]@{ + type = 'minecraft:crafting_shapeless' + ingredients = $ingredients + result = VanillaResult $result $count + } + if (-not [string]::IsNullOrWhiteSpace($group)) { + $recipe.Insert(1, 'group', $group) + } + return $recipe +} + +function VanillaStonecuttingRecipe( + [object] $ingredient, + [string] $result, + [int] $count +) { + return [ordered]@{ + type = 'minecraft:stonecutting' + ingredient = $ingredient + result = $result + count = $count + } +} + +function Write-ConditionalMinecraftRecipe( + [string] $name, + [System.Collections.IDictionary] $condition, + [System.Collections.IDictionary] $enabledRecipe, + [System.Collections.IDictionary] $fallbackRecipe +) { + Write-Json (Join-Path $minecraftRecipeRoot "$name.json") ([ordered]@{ + type = 'forge:conditional' + recipes = @( + [ordered]@{ conditions = @($condition); recipe = $enabledRecipe }, + [ordered]@{ conditions = @((NotCondition $condition)); recipe = $fallbackRecipe } + ) + }) +} + +function ConditionsFor([string] $result, [object[]] $extra = @()) { + return @($extra) + @((ItemCondition $result)) +} + +function Write-Json([string] $path, [System.Collections.IDictionary] $value) { + $json = ($value | ConvertTo-Json -Depth 20) -replace "`r?`n", "`n" + [System.IO.File]::WriteAllText($path, $json + "`n", $utf8NoBom) +} + +function Write-Recipe([string] $name, [System.Collections.IDictionary] $recipe) { + if (-not $generatedNames.Add($name)) { + throw "Duplicate generated recipe name: $name" + } + Write-Json (Join-Path $recipeRoot "$name.json") $recipe +} + +function Register-UnlockSource( + [string] $name, + [object] $sourceIngredient +) { + if ($unlockSources.ContainsKey($name)) { + throw "Duplicate recipe-book unlock source: $name" + } + $unlockSources[$name] = if ($sourceIngredient -is [string]) { + ItemIngredient ([string]$sourceIngredient) + } + else { + $sourceIngredient + } +} + +function Get-SandUnlockMode([string] $recipeName) { + if ($recipeName -match '^(.+)_smooth$') { + return 'normal' + } + if ($recipeName -match '^(.+)_(raw|brick)_(stairs|slab|wall)_polishing$' -or + $recipeName -match '^(.+)_brick_block_polishing$') { + return 'ore_dictionary' + } + return '' +} + +function Add-SandUnlockCriteria( + [System.Collections.IDictionary] $criteria, + [string] $sandMode +) { + if ([string]::IsNullOrWhiteSpace($sandMode)) { + return + } + + $criteria['has_sand'] = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ + items = @([ordered]@{ items = @('minecraft:sand') }) + } + } + if ($sandMode -eq 'ore_dictionary') { + $criteria['has_red_sand'] = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ + items = @([ordered]@{ items = @('minecraft:red_sand') }) + } + } + } +} + +function Get-UnlockRequirements([string] $sandMode) { + $requirements = @() + $requirements += ,@('has_the_recipe', 'has_rock') + if ($sandMode -eq 'ore_dictionary') { + $requirements += ,@('has_the_recipe', 'has_sand', 'has_red_sand') + } + elseif ($sandMode -eq 'normal') { + $requirements += ,@('has_the_recipe', 'has_sand') + } + return ,$requirements +} + +function Resolve-UnlockIngredient([object] $ingredient) { + if ($null -ne $ingredient.item) { + return [ordered]@{ item = [string]$ingredient.item } + } + if ($null -ne $ingredient.tag) { + return [ordered]@{ tag = [string]$ingredient.tag } + } + return $null +} + +function Infer-UnlockSource([string] $recipeName, [object] $recipe) { + if ($unlockSources.ContainsKey($recipeName)) { return $unlockSources[$recipeName] } + if ($null -ne $recipe.ingredients -and $recipe.ingredients.Count -gt 0) { + return Resolve-UnlockIngredient $recipe.ingredients[0] + } + if ($null -ne $recipe.ingredient) { return Resolve-UnlockIngredient $recipe.ingredient } + if ($null -ne $recipe.key) { + $first = $recipe.key.PSObject.Properties | Select-Object -First 1 + if ($null -ne $first) { return Resolve-UnlockIngredient $first.Value } + } + return $null +} + +function Matrix-Contains( + [System.Collections.IDictionary] $matrix, + [string] $family, + [string] $finish, + [string] $form +) { + return $matrix.ContainsKey($family) -and + $matrix[$family].ContainsKey($finish) -and + $matrix[$family][$finish] -contains $form +} + +function ConstructionFormIngredient( + [string] $family, + [string] $finish, + [string] $form, + [string] $mineralogyItem, + [string] $familyOreName +) { + if (Matrix-Contains $nativeExactRecipeInputs $family $finish $form) { + return ItemIngredient $mineralogyItem + } + # Slabs historically use exact inputs. Widen only a native family whose + # matching vanilla block has no target-native slab recipe (basalt here). + if ($form -eq 'slab' -and -not $nativeFullBlocks.ContainsKey($family)) { + return ItemIngredient $mineralogyItem + } + return OreIngredient $familyOreName +} + +function NativeTagAliases( + [string] $kind, + [string] $family, + [string] $finish +) { + if (-not $nativeFullBlocks.ContainsKey($family)) { + return @() + } + $nativeFinish = if ([string]::IsNullOrWhiteSpace($finish)) { 'raw' } else { $finish } + if ($nativeFinish -notin @('raw', 'smooth')) { + return @() + } + if (-not $nativeFullBlocks[$family].ContainsKey($nativeFinish)) { + return @() + } + if ($kind -eq 'stones') { + if ($family -eq 'basalt' -and $nativeFinish -eq 'smooth') { + return @($nativeFullBlocks[$family][$nativeFinish], 'minecraft:smooth_basalt') + } + return @($nativeFullBlocks[$family][$nativeFinish]) + } + if ($kind -eq 'slabs' -and + (Matrix-Contains $nativeConstructionForms $family $nativeFinish 'slab')) { + $prefix = if ($nativeFinish -eq 'smooth') { 'polished_' } else { '' } + return @("minecraft:${prefix}${family}_slab") + } + return @() +} + +function Write-ShapedRecipe( + [string] $name, + [string] $type, + [string[]] $pattern, + [System.Collections.IDictionary] $key, + [string] $result, + [int] $count, + [object[]] $conditions +) { + if ($type.StartsWith('forge:ore_')) { $type = 'minecraft:crafting_shaped' } + Write-Recipe $name ([ordered]@{ + conditions = $conditions + type = $type + pattern = $pattern + key = $key + result = RecipeResult $result $count + }) +} + +function Write-ShapelessRecipe( + [string] $name, + [string] $type, + [object[]] $ingredients, + [string] $result, + [int] $count, + [object[]] $conditions +) { + if ($type.StartsWith('forge:ore_')) { $type = 'minecraft:crafting_shapeless' } + Write-Recipe $name ([ordered]@{ + conditions = $conditions + type = $type + ingredients = $ingredients + result = RecipeResult $result $count + }) +} + +function FamilyOreName([string] $prefix, [string] $family, [string] $suffix = '') { + $material = $family.Substring(0, 1).ToUpperInvariant() + $family.Substring(1) + return "$prefix$material$suffix" +} + +function Write-BaseFamilyRecipes([string] $family) { + $raw = ItemId $family + $rawOre = FamilyOreName 'stone' $family + $brick = ItemId "${family}_brick" + $brickOre = FamilyOreName 'stone' $family 'Brick' + $smooth = ItemId "${family}_smooth" + $smoothOre = FamilyOreName 'stone' $family 'Smooth' + $smoothBrick = ItemId "${family}_smooth_brick" + $smoothBrickOre = FamilyOreName 'stone' $family 'SmoothBrick' + + Write-ShapelessRecipe "${family}_cobblestone" 'forge:ore_shapeless' @( + (OreIngredient $rawOre), (OreIngredient $rawOre), + (ItemIngredient 'minecraft:gravel'), (ItemIngredient 'minecraft:gravel') + ) 'minecraft:cobblestone' 4 @() + + Write-ShapedRecipe "${family}_stairs" 'forge:ore_shaped' @('x ', 'xx ', 'xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'raw' 'stairs' $raw $rawOre }) ` + (ItemId "${family}_stairs") 4 ` + (ConditionsFor (ItemId "${family}_stairs")) + Write-ShapedRecipe "${family}_slab" 'minecraft:crafting_shaped' @('xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'raw' 'slab' $raw $rawOre }) ` + (ItemId "${family}_slab") 6 ` + (ConditionsFor (ItemId "${family}_slab")) + Write-ShapedRecipe "${family}_furnace" 'forge:ore_shaped' @('xxx', 'xyx', 'xxx') ` + ([ordered]@{ x = OreIngredient (FamilyOreName 'slab' $family); y = ItemIngredient 'minecraft:furnace' }) ` + (ItemId "${family}_furnace") 1 (ConditionsFor (ItemId "${family}_furnace")) + Write-ShapedRecipe "${family}_wall" 'forge:ore_shaped' @('xxx', 'xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'raw' 'wall' $raw $rawOre }) ` + (ItemId "${family}_wall") 6 ` + (ConditionsFor (ItemId "${family}_wall")) + + Write-ShapedRecipe "${family}_brick" 'forge:ore_shaped' @('xx', 'xx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'raw' 'brick' $raw $rawOre }) ` + $brick 4 (ConditionsFor $brick) + Write-ShapedRecipe "${family}_brick_stairs" 'forge:ore_shaped' @('x ', 'xx ', 'xxx') ` + ([ordered]@{ x = OreIngredient $brickOre }) (ItemId "${family}_brick_stairs") 4 ` + (ConditionsFor (ItemId "${family}_brick_stairs")) + Write-ShapedRecipe "${family}_brick_slab" 'minecraft:crafting_shaped' @('xxx') ` + ([ordered]@{ x = ItemIngredient $brick }) (ItemId "${family}_brick_slab") 6 ` + (ConditionsFor (ItemId "${family}_brick_slab")) + Write-ShapedRecipe "${family}_brick_furnace" 'forge:ore_shaped' @('xxx', 'xyx', 'xxx') ` + ([ordered]@{ x = OreIngredient (FamilyOreName 'slab' $family 'Brick'); y = ItemIngredient 'minecraft:furnace' }) ` + (ItemId "${family}_brick_furnace") 1 (ConditionsFor (ItemId "${family}_brick_furnace")) + Write-ShapedRecipe "${family}_brick_wall" 'forge:ore_shaped' @('xxx', 'xxx') ` + ([ordered]@{ x = OreIngredient $brickOre }) (ItemId "${family}_brick_wall") 6 ` + (ConditionsFor (ItemId "${family}_brick_wall")) + + Write-ShapelessRecipe "${family}_smooth" 'forge:ore_shapeless' @( + (ConstructionFormIngredient $family 'raw' 'smooth' $raw $rawOre), + (ItemIngredient 'minecraft:sand' 0) + ) $smooth 1 (ConditionsFor $smooth) + Write-ShapedRecipe "${family}_smooth_stairs" 'forge:ore_shaped' @('x ', 'xx ', 'xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'smooth' 'stairs' $smooth $smoothOre }) ` + (ItemId "${family}_smooth_stairs") 4 ` + (ConditionsFor (ItemId "${family}_smooth_stairs")) + Write-ShapedRecipe "${family}_smooth_slab" 'minecraft:crafting_shaped' @('xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'smooth' 'slab' $smooth $smoothOre }) ` + (ItemId "${family}_smooth_slab") 6 ` + (ConditionsFor (ItemId "${family}_smooth_slab")) + Write-ShapedRecipe "${family}_smooth_furnace" 'forge:ore_shaped' @('xxx', 'xyx', 'xxx') ` + ([ordered]@{ x = OreIngredient (FamilyOreName 'slab' $family 'Smooth'); y = ItemIngredient 'minecraft:furnace' }) ` + (ItemId "${family}_smooth_furnace") 1 (ConditionsFor (ItemId "${family}_smooth_furnace")) + Write-ShapedRecipe "${family}_smooth_wall" 'forge:ore_shaped' @('xxx', 'xxx') ` + ([ordered]@{ x = ConstructionFormIngredient $family 'smooth' 'wall' $smooth $smoothOre }) ` + (ItemId "${family}_smooth_wall") 6 ` + (ConditionsFor (ItemId "${family}_smooth_wall")) + + Write-ShapedRecipe "${family}_smooth_brick" 'forge:ore_shaped' @('xx', 'xx') ` + ([ordered]@{ x = OreIngredient $smoothOre }) $smoothBrick 4 (ConditionsFor $smoothBrick) + Write-ShapedRecipe "${family}_smooth_brick_stairs" 'forge:ore_shaped' @('x ', 'xx ', 'xxx') ` + ([ordered]@{ x = OreIngredient $smoothBrickOre }) (ItemId "${family}_smooth_brick_stairs") 4 ` + (ConditionsFor (ItemId "${family}_smooth_brick_stairs")) + Write-ShapedRecipe "${family}_smooth_brick_slab" 'minecraft:crafting_shaped' @('xxx') ` + ([ordered]@{ x = ItemIngredient $smoothBrick }) (ItemId "${family}_smooth_brick_slab") 6 ` + (ConditionsFor (ItemId "${family}_smooth_brick_slab")) + Write-ShapedRecipe "${family}_smooth_brick_furnace" 'forge:ore_shaped' @('xxx', 'xyx', 'xxx') ` + ([ordered]@{ x = OreIngredient (FamilyOreName 'slab' $family 'SmoothBrick'); y = ItemIngredient 'minecraft:furnace' }) ` + (ItemId "${family}_smooth_brick_furnace") 1 (ConditionsFor (ItemId "${family}_smooth_brick_furnace")) + Write-ShapedRecipe "${family}_smooth_brick_wall" 'forge:ore_shaped' @('xxx', 'xxx') ` + ([ordered]@{ x = OreIngredient $smoothBrickOre }) (ItemId "${family}_smooth_brick_wall") 6 ` + (ConditionsFor (ItemId "${family}_smooth_brick_wall")) +} + +function Write-ReliefRecipes([string] $family) { + $smooth = ItemId "${family}_smooth" + $smoothOre = FamilyOreName 'stone' $family 'Smooth' + $smoothIngredient = if ($nativeFullBlocks.ContainsKey($family)) { + OreIngredient $smoothOre + } + else { + ItemIngredient $smooth + } + $blank = ItemId "${family}_relief_blank" + $left = ItemId "${family}_relief_left" + + Write-ShapedRecipe "${family}_relief_blank" 'minecraft:crafting_shaped' @('xxx', 'xxx', 'xxx') ` + ([ordered]@{ x = $smoothIngredient }) $blank 16 (ConditionsFor $blank) + Write-ShapedRecipe "${family}_relief_cross" 'minecraft:crafting_shaped' @('x x', ' ', 'x x') ` + ([ordered]@{ x = ItemIngredient $blank }) (ItemId "${family}_relief_cross") 4 ` + (ConditionsFor (ItemId "${family}_relief_cross")) + Write-ShapedRecipe "${family}_relief_hammer" 'minecraft:crafting_shaped' @('zxz', 'zyz', 'zzz') ` + ([ordered]@{ x = ItemIngredient $smooth; y = ItemIngredient 'minecraft:stick'; z = ItemIngredient $blank }) ` + (ItemId "${family}_relief_hammer") 7 (ConditionsFor (ItemId "${family}_relief_hammer")) + Write-ShapedRecipe "${family}_relief_horizontal" 'minecraft:crafting_shaped' @('xxx') ` + ([ordered]@{ x = ItemIngredient $blank }) (ItemId "${family}_relief_horizontal") 3 ` + (ConditionsFor (ItemId "${family}_relief_horizontal")) + Write-ShapedRecipe "${family}_relief_left" 'minecraft:crafting_shaped' @('x ', ' x ', ' x') ` + ([ordered]@{ x = ItemIngredient $blank }) $left 3 ` + (ConditionsFor (ItemId "${family}_relief_left")) + Write-ShapedRecipe "${family}_relief_plus" 'minecraft:crafting_shaped' @(' x ', 'xxx', ' x ') ` + ([ordered]@{ x = ItemIngredient $blank }) (ItemId "${family}_relief_plus") 5 ` + (ConditionsFor (ItemId "${family}_relief_plus")) + Write-ShapelessRecipe "${family}_relief_right" 'minecraft:crafting_shapeless' ` + @((ItemIngredient $left), (ItemIngredient $left)) (ItemId "${family}_relief_right") 2 ` + (ConditionsFor (ItemId "${family}_relief_right")) + Write-ShapedRecipe "${family}_relief_i" 'minecraft:crafting_shaped' @('xxx', ' x ', 'xxx') ` + ([ordered]@{ x = ItemIngredient $blank }) (ItemId "${family}_relief_i") 7 ` + (ConditionsFor (ItemId "${family}_relief_i")) + Write-ShapedRecipe "${family}_relief_vertical" 'minecraft:crafting_shaped' @('x', 'x', 'x') ` + ([ordered]@{ x = ItemIngredient $blank }) (ItemId "${family}_relief_vertical") 3 ` + (ConditionsFor (ItemId "${family}_relief_vertical")) + + foreach ($tool in @('axe', 'hoe', 'pickaxe', 'sword')) { + $ingredients = @() + for ($index = 0; $index -lt 8; $index++) { + $ingredients += ,(ItemIngredient $blank) + } + $ingredients += ,(ItemIngredient "minecraft:stone_$tool" 0) + $result = ItemId "${family}_relief_${tool}" + Write-ShapelessRecipe "${family}_relief_${tool}" 'minecraft:crafting_shapeless' ` + $ingredients $result 8 (ConditionsFor $result) + } +} + +function Write-ConstructionRecipes([string] $family) { + $forms = [ordered]@{ + raw = [ordered]@{ block = ItemId $family; stairs = ItemId "${family}_stairs"; slab = ItemId "${family}_slab"; wall = ItemId "${family}_wall" } + brick = [ordered]@{ block = ItemId "${family}_brick"; stairs = ItemId "${family}_brick_stairs"; slab = ItemId "${family}_brick_slab"; wall = ItemId "${family}_brick_wall" } + polished = [ordered]@{ block = ItemId "${family}_smooth"; stairs = ItemId "${family}_smooth_stairs"; slab = ItemId "${family}_smooth_slab"; wall = ItemId "${family}_smooth_wall" } + polished_brick = [ordered]@{ block = ItemId "${family}_smooth_brick"; stairs = ItemId "${family}_smooth_brick_stairs"; slab = ItemId "${family}_smooth_brick_slab"; wall = ItemId "${family}_smooth_brick_wall" } + } + + foreach ($finish in $forms.Keys) { + $form = $forms[$finish] + Write-ShapelessRecipe "${family}_${finish}_slab_recombination" 'minecraft:crafting_shapeless' ` + @((ItemIngredient $form.slab), (ItemIngredient $form.slab)) $form.block 1 ` + @((ItemCondition $form.slab), (ItemCondition $form.block)) + Register-UnlockSource "${family}_${finish}_slab_recombination" $form.slab + } + + foreach ($conversion in @( + [ordered]@{ name = 'raw'; source = $forms.raw; target = $forms.brick }, + [ordered]@{ name = 'polished'; source = $forms.polished; target = $forms.polished_brick } + )) { + foreach ($shape in @('stairs', 'slab', 'wall')) { + $plural = if ($shape -eq 'slab') { 'slabs' } elseif ($shape -eq 'wall') { 'walls' } else { 'stairs' } + Write-ShapedRecipe "${family}_$($conversion.name)_${plural}_to_brick" 'minecraft:crafting_shaped' ` + @('xx', 'xx') ([ordered]@{ x = ItemIngredient $conversion.source[$shape] }) ` + $conversion.target[$shape] 4 ` + @((ItemCondition $conversion.source[$shape]), (ItemCondition $conversion.target[$shape])) + Register-UnlockSource "${family}_$($conversion.name)_${plural}_to_brick" ` + $conversion.source[$shape] + } + } + + foreach ($polishing in @( + [ordered]@{ name = 'raw'; source = $forms.raw; target = $forms.polished }, + [ordered]@{ name = 'brick'; source = $forms.brick; target = $forms.polished_brick } + )) { + foreach ($shape in @('stairs', 'slab', 'wall')) { + Write-ShapelessRecipe "${family}_$($polishing.name)_${shape}_polishing" 'forge:ore_shapeless' ` + @((ItemIngredient $polishing.source[$shape]), (OreIngredient 'sand')) ` + $polishing.target[$shape] 1 ` + @((ItemCondition $polishing.source[$shape]), (ItemCondition $polishing.target[$shape])) + Register-UnlockSource "${family}_$($polishing.name)_${shape}_polishing" ` + $polishing.source[$shape] + } + } + + Write-ShapelessRecipe "${family}_brick_block_polishing" 'forge:ore_shapeless' ` + @((ItemIngredient $forms.brick.block), (OreIngredient 'sand')) $forms.polished_brick.block 1 ` + @((ItemCondition $forms.brick.block), (ItemCondition $forms.polished_brick.block)) + Register-UnlockSource "${family}_brick_block_polishing" $forms.brick.block +} + +function Write-GlobalRecipes() { + $drywallCondition = ConfigCondition 'ENABLE_DRYWALLS' + for ($metadata = 0; $metadata -lt $colors.Count; $metadata++) { + $result = ItemId "drywall_$($colors[$metadata])" + Write-ShapelessRecipe "drywall_$($colors[$metadata])" 'forge:ore_shapeless' @( + (OreIngredient 'drywallWhite'), (ItemIngredient 'minecraft:dye' $metadata) + ) $result 1 (ConditionsFor $result @($drywallCondition)) + Register-UnlockSource "drywall_$($colors[$metadata])" (ItemId 'drywall_white') + } + + $dustCondition = ConfigCondition 'ENABLE_MINERAL_DUSTS' + $gunpowderTail = @((OreIngredient 'dustNitrate'), (OreIngredient 'dustSulfur')) + Write-ShapelessRecipe 'gunpowder_from_sugar' 'forge:ore_shapeless' ` + (@((ItemIngredient 'minecraft:sugar')) + $gunpowderTail) 'minecraft:gunpowder' 4 @($dustCondition) + Register-UnlockSource 'gunpowder_from_sugar' (ItemId 'nitrate_dust') + Write-ShapelessRecipe 'gunpowder_from_charcoal' 'forge:ore_shapeless' ` + (@((ItemIngredient 'minecraft:coal' 1)) + $gunpowderTail) 'minecraft:gunpowder' 4 @($dustCondition) + Register-UnlockSource 'gunpowder_from_charcoal' (ItemId 'nitrate_dust') + Write-ShapelessRecipe 'gunpowder_from_carbon_dust' 'forge:ore_shapeless' ` + (@((OreIngredient 'dustCarbon')) + $gunpowderTail) 'minecraft:gunpowder' 4 ` + @($dustCondition, (ItemTagNotEmptyCondition 'forge:dusts/carbon')) + Register-UnlockSource 'gunpowder_from_carbon_dust' (ItemId 'nitrate_dust') + Write-ShapelessRecipe 'gunpowder_from_coal_dust' 'forge:ore_shapeless' ` + (@((OreIngredient 'dustCoal')) + $gunpowderTail) 'minecraft:gunpowder' 4 ` + @($dustCondition, (ItemTagNotEmptyCondition 'forge:dusts/coal')) + Register-UnlockSource 'gunpowder_from_coal_dust' (ItemId 'nitrate_dust') + + Write-ShapelessRecipe 'mineralfertilizer' 'forge:ore_shapeless' @( + (OreIngredient 'dustNitrate'), (OreIngredient 'dustPhosphorous') + ) (ItemId 'mineral_fertilizer') 1 ` + (ConditionsFor (ItemId 'mineral_fertilizer') @((ConfigCondition 'ENABLE_MINERAL_FERTILIZER'))) + Register-UnlockSource 'mineralfertilizer' (ItemId 'nitrate_dust') + + Write-ShapelessRecipe 'cobblestone' 'minecraft:crafting_shapeless' @( + (ItemIngredient 'minecraft:stone' 0), (ItemIngredient 'minecraft:stone' 0), + (ItemIngredient 'minecraft:gravel'), (ItemIngredient 'minecraft:gravel') + ) 'minecraft:cobblestone' 4 @() + Register-UnlockSource 'cobblestone' 'minecraft:stone' + + foreach ($storage in @( + [ordered]@{ name = 'gypsum'; dust = 'dustGypsum'; blockOre = 'blockGypsum'; dustItem = 'gypsum_dust'; blockItem = 'gypsum' }, + [ordered]@{ name = 'chalk'; dust = 'dustChalk'; blockOre = 'blockChalk'; dustItem = 'chalk_dust'; blockItem = 'chalk' }, + [ordered]@{ name = 'rock_salt'; dust = 'dustRock_salt'; blockOre = 'blockRocksalt'; dustItem = 'rock_salt_dust'; blockItem = 'rock_salt' } + )) { + $block = ItemId $storage.blockItem + Write-ShapedRecipe $storage.name 'forge:ore_shaped' @('xx', 'xx') ` + ([ordered]@{ x = OreIngredient $storage.dust }) $block 1 (ConditionsFor $block) + Register-UnlockSource $storage.name (ItemId $storage.dustItem) + Write-ShapelessRecipe "$($storage.name)_dust" 'forge:ore_shapeless' @( + (OreIngredient $storage.blockOre) + ) (ItemId $storage.dustItem) 4 (ConditionsFor (ItemId $storage.dustItem)) + Register-UnlockSource "$($storage.name)_dust" $block + } + + Write-ShapedRecipe 'drywall' 'forge:ore_shaped' @('pgp', 'pgp', 'pgp') ` + ([ordered]@{ p = OreIngredient 'paper'; g = OreIngredient 'dustGypsum' }) ` + (ItemId 'drywall_white') 3 ` + (ConditionsFor (ItemId 'drywall_white') @($drywallCondition)) + Register-UnlockSource 'drywall' (ItemId 'gypsum_dust') + + $lampCondition = ConfigCondition 'ENABLE_ROCK_SALT_LAMPS' + Write-ShapelessRecipe 'rocksaltlamp' 'minecraft:crafting_shapeless' @( + (ItemIngredient (ItemId 'rock_salt')), (ItemIngredient 'minecraft:torch'), + (ItemIngredient 'minecraft:iron_ingot') + ) (ItemId 'rocksaltlamp') 1 ` + (ConditionsFor (ItemId 'rocksaltlamp') @($lampCondition)) + Register-UnlockSource 'rocksaltlamp' (ItemId 'rock_salt') + Write-ShapedRecipe 'rocksaltstreetlamp' 'forge:ore_shaped' @('x', 'y', 'y') ` + ([ordered]@{ x = OreIngredient 'lampRocksalt'; y = ItemIngredient 'minecraft:iron_ingot' }) ` + (ItemId 'rocksaltstreetlamp') 1 ` + (ConditionsFor (ItemId 'rocksaltstreetlamp') @($lampCondition)) + Register-UnlockSource 'rocksaltstreetlamp' (ItemId 'rocksaltlamp') + + foreach ($mineral in @('sulfur', 'phosphorous', 'nitrate')) { + $material = $mineral.Substring(0, 1).ToUpperInvariant() + $mineral.Substring(1) + $block = ItemId "${mineral}_block" + $dust = ItemId "${mineral}_dust" + Write-ShapedRecipe "${mineral}_block" 'minecraft:crafting_shaped' @('xxx', 'xxx', 'xxx') ` + ([ordered]@{ x = ItemIngredient $dust }) $block 1 ` + (ConditionsFor $block @($dustCondition)) + Register-UnlockSource "${mineral}_block" $dust + Write-ShapelessRecipe "${mineral}_dust" 'forge:ore_shapeless' @( + (OreIngredient "block$material") + ) $dust 9 (ConditionsFor $dust @($dustCondition)) + Register-UnlockSource "${mineral}_dust" $block + } +} + +function Write-Factories() { + $factories = [ordered]@{ + conditions = [ordered]@{ + config = 'zone.moddev.mc.mineralogy.recipe.ConfigConditionFactory' + } + } + Write-Json (Join-Path $recipeRoot '_factories.json') $factories + Write-Json (Join-Path (Split-Path -Parent $advancementRoot) '_factories.json') $factories +} + +function Ensure-MissingRecipeAdvancements() { + $recipeFiles = Get-ChildItem -LiteralPath $recipeRoot -Filter '*.json' | + Where-Object { -not $_.Name.StartsWith('_') } + $created = 0 + foreach ($recipeFile in $recipeFiles) { + $recipeName = $recipeFile.BaseName + $advancementFile = Join-Path $advancementRoot "$recipeName.json" + if (Test-Path -LiteralPath $advancementFile) { + continue + } + $recipe = Get-Content -LiteralPath $recipeFile.FullName -Raw | ConvertFrom-Json + $sourceIngredient = Infer-UnlockSource $recipeName $recipe + if ($null -eq $sourceIngredient) { + throw "Generated recipe $recipeName has no direct recipe-book unlock source" + } + $criteria = [ordered]@{ + has_the_recipe = [ordered]@{ + trigger = 'minecraft:recipe_unlocked' + conditions = [ordered]@{ recipe = "mineralogy:$recipeName" } + } + has_rock = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ + items = @((AdvancementPredicate $sourceIngredient)) + } + } + } + $sandMode = Get-SandUnlockMode $recipeName + Add-SandUnlockCriteria $criteria $sandMode + $requirements = Get-UnlockRequirements $sandMode + + $generatedAdvancement = [ordered]@{} + if ($null -ne $recipe.conditions) { + $generatedAdvancement.conditions = @($recipe.conditions) + } + $generatedAdvancement.rewards = [ordered]@{ recipes = @("mineralogy:$recipeName") } + $generatedAdvancement.criteria = $criteria + $generatedAdvancement.requirements = $requirements + Write-Json $advancementFile $generatedAdvancement + $created++ + } + return $created +} + +function Synchronize-AdvancementConditions() { + $files = Get-ChildItem -LiteralPath $advancementRoot -Filter '*.json' + foreach ($file in $files) { + $advancement = Get-Content -LiteralPath $file.FullName -Raw | ConvertFrom-Json + $recipeId = [string]$advancement.rewards.recipes[0] + if (-not $recipeId.StartsWith('mineralogy:')) { + throw "Unexpected recipe reward in $($file.FullName): $recipeId" + } + $recipeName = $recipeId.Substring('mineralogy:'.Length) + $recipeFile = Join-Path $recipeRoot "$recipeName.json" + if (-not (Test-Path -LiteralPath $recipeFile)) { + throw "Advancement $($file.Name) references missing generated recipe $recipeId" + } + $recipe = Get-Content -LiteralPath $recipeFile -Raw | ConvertFrom-Json + if ($recipeName -match '^(.+)_relief_(.+)$') { + $family = $Matches[1] + $relief = $Matches[2] + if ($relief -eq 'blank') { + $sourceIngredient = if ($nativeFullBlocks.ContainsKey($family)) { + OreIngredient (FamilyOreName 'stone' $family 'Smooth') + } + else { + ItemIngredient "mineralogy:${family}_smooth" + } + } + elseif ($relief -eq 'right') { + $sourceIngredient = ItemIngredient "mineralogy:${family}_relief_left" + } + else { + $sourceIngredient = ItemIngredient "mineralogy:${family}_relief_blank" + } + $advancement.criteria.has_rock.conditions.items = @((AdvancementPredicate $sourceIngredient)) + } + if ($null -eq $advancement.criteria.has_the_recipe -or $null -eq $advancement.criteria.has_rock) { + throw "Advancement $($file.Name) must have self-recipe and direct-input criteria" + } + $criteria = [ordered]@{} + foreach ($criterion in $advancement.criteria.PSObject.Properties) { + if ($criterion.Name -notin @('has_material_recipe', 'has_sand', 'has_red_sand', 'has_furnace')) { + $criteria[$criterion.Name] = $criterion.Value + } + } + $sandMode = Get-SandUnlockMode $recipeName + Add-SandUnlockCriteria $criteria $sandMode + $requirements = Get-UnlockRequirements $sandMode + + $ordered = [ordered]@{} + if ($null -ne $recipe.conditions) { + $ordered.conditions = @($recipe.conditions) + } + foreach ($property in $advancement.PSObject.Properties) { + if ($property.Name -eq 'criteria') { + $ordered[$property.Name] = $criteria + } + elseif ($property.Name -eq 'requirements') { + $ordered[$property.Name] = $requirements + } + elseif ($property.Name -ne 'conditions') { + $ordered[$property.Name] = $property.Value + } + } + Write-Json $file.FullName $ordered + } + return $files.Count +} + +function Prepare-TargetDirectories() { + New-Item -ItemType Directory -Force -Path $recipeRoot | Out-Null + New-Item -ItemType Directory -Force -Path $advancementRoot | Out-Null + New-Item -ItemType Directory -Force -Path $minecraftRecipeRoot | Out-Null + New-Item -ItemType Directory -Force -Path $minecraftAdvancementRoot | Out-Null + + foreach ($file in Get-ChildItem -LiteralPath $recipeRoot -Filter '*.json') { + $recipe = Get-Content -LiteralPath $file.FullName -Raw | ConvertFrom-Json + if ($recipe.type -eq 'minecraft:smelting') { + if ($null -eq $recipe.ingredient.item) { + throw "Smelting recipe $($file.Name) has no direct item ingredient" + } + Register-UnlockSource $file.BaseName ([string]$recipe.ingredient.item) + } + else { + Remove-Item -LiteralPath $file.FullName + } + } + foreach ($file in Get-ChildItem -LiteralPath $advancementRoot -Filter '*.json') { + Remove-Item -LiteralPath $file.FullName + } + foreach ($file in Get-ChildItem -LiteralPath $minecraftRecipeRoot -Filter '*.json') { + Remove-Item -LiteralPath $file.FullName + } + foreach ($file in Get-ChildItem -LiteralPath $minecraftAdvancementRoot -Filter '*.json' -Recurse) { + Remove-Item -LiteralPath $file.FullName + } +} + +function Write-TargetTags() { + foreach ($family in $families) { + foreach ($finish in @('', 'brick', 'smooth', 'smooth_brick')) { + $suffix = if ($finish) { "_$finish" } else { '' } + $pathSuffix = if ($finish) { "/$finish" } else { '' } + foreach ($kind in @('stones', 'slabs')) { + $item = if ($kind -eq 'slabs') { + "mineralogy:${family}${suffix}_slab" + } + else { + "mineralogy:${family}${suffix}" + } + $destination = Join-Path $itemTagRoot "$kind\$family$pathSuffix.json" + New-Item -ItemType Directory -Force -Path (Split-Path -Parent $destination) | Out-Null + $values = @($item) + $values += @(NativeTagAliases $kind $family $finish) + Write-Json $destination ([ordered]@{ replace = $false; values = $values }) + } + } + + $blockDestination = Join-Path $blockTagRoot "stones\$family.json" + New-Item -ItemType Directory -Force -Path (Split-Path -Parent $blockDestination) | Out-Null + $blockValues = @("mineralogy:$family") + $blockValues += @(NativeTagAliases 'stones' $family '') + Write-Json $blockDestination ([ordered]@{ replace = $false; values = $blockValues }) + } +} + +function Write-CobblestoneRecipeTags() { + $familyTags = @($families | ForEach-Object { "#mineralogy:stones/$_" }) + Write-Json (Join-Path $itemTagRoot 'cobblestone_equivalents.json') ([ordered]@{ + replace = $false + values = @('#forge:cobblestone') + $familyTags + }) + Write-Json (Join-Path $itemTagRoot 'stone_crafting_materials.json') ([ordered]@{ + replace = $false + values = @('#minecraft:stone_crafting_materials') + $familyTags + }) + Write-Json (Join-Path $itemTagRoot 'stone_tool_materials.json') ([ordered]@{ + replace = $false + values = @('#minecraft:stone_tool_materials') + $familyTags + }) +} + +function VanillaRecipeAdvancement( + [string] $recipeName, + [string] $criterionName, + [System.Collections.IDictionary] $criterionIngredient +) { + return [ordered]@{ + parent = 'minecraft:recipes/root' + rewards = [ordered]@{ recipes = @("minecraft:$recipeName") } + criteria = [ordered]@{ + $criterionName = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ items = @((AdvancementPredicate $criterionIngredient)) } + } + has_the_recipe = [ordered]@{ + trigger = 'minecraft:recipe_unlocked' + conditions = [ordered]@{ recipe = "minecraft:$recipeName" } + } + } + requirements = ,@($criterionName, 'has_the_recipe') + } +} + +function Write-ConditionalMinecraftAdvancement( + [string] $category, + [string] $recipeName, + [System.Collections.IDictionary] $condition, + [string] $criterionName, + [System.Collections.IDictionary] $enabledIngredient, + [System.Collections.IDictionary] $fallbackIngredient +) { + $directory = Join-Path $minecraftAdvancementRoot $category + New-Item -ItemType Directory -Force -Path $directory | Out-Null + Write-Json (Join-Path $directory "$recipeName.json") ([ordered]@{ + advancements = @( + [ordered]@{ + conditions = @($condition) + advancement = VanillaRecipeAdvancement $recipeName $criterionName $enabledIngredient + }, + [ordered]@{ + conditions = @((NotCondition $condition)) + advancement = VanillaRecipeAdvancement $recipeName $criterionName $fallbackIngredient + } + ) + }) +} + +function Write-CobblestoneRecipeOverrides() { + $condition = ConfigCondition 'COBBLESTONE_EQUIVILENT' + $enabledCobblestone = [ordered]@{ tag = 'mineralogy:cobblestone_equivalents' } + $fallbackCobblestone = [ordered]@{ tag = 'forge:cobblestone' } + $enabledCrafting = [ordered]@{ tag = 'mineralogy:stone_crafting_materials' } + $fallbackCrafting = [ordered]@{ tag = 'minecraft:stone_crafting_materials' } + $enabledTools = [ordered]@{ tag = 'mineralogy:stone_tool_materials' } + $fallbackTools = [ordered]@{ tag = 'minecraft:stone_tool_materials' } + + Write-ConditionalMinecraftRecipe 'furnace' $condition ` + (VanillaShapedRecipe @('###', '# #', '###') ([ordered]@{ '#' = $enabledCrafting }) 'minecraft:furnace') ` + (VanillaShapedRecipe @('###', '# #', '###') ([ordered]@{ '#' = $fallbackCrafting }) 'minecraft:furnace') + Write-ConditionalMinecraftRecipe 'brewing_stand' $condition ` + (VanillaShapedRecipe @(' B ', '###') ([ordered]@{ + B = ItemIngredient 'minecraft:blaze_rod'; '#' = $enabledCrafting + }) 'minecraft:brewing_stand') ` + (VanillaShapedRecipe @(' B ', '###') ([ordered]@{ + B = ItemIngredient 'minecraft:blaze_rod'; '#' = $fallbackCrafting + }) 'minecraft:brewing_stand') + Write-ConditionalMinecraftRecipe 'lever' $condition ` + (VanillaShapedRecipe @('X', '#') ([ordered]@{ + '#' = $enabledCobblestone; X = ItemIngredient 'minecraft:stick' + }) 'minecraft:lever') ` + (VanillaShapedRecipe @('X', '#') ([ordered]@{ + '#' = $fallbackCobblestone; X = ItemIngredient 'minecraft:stick' + }) 'minecraft:lever') + Write-ConditionalMinecraftRecipe 'piston' $condition ` + (VanillaShapedRecipe @('TTT', '#X#', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $enabledCobblestone + T = [ordered]@{ tag = 'minecraft:planks' }; X = ItemIngredient 'minecraft:iron_ingot' + }) 'minecraft:piston') ` + (VanillaShapedRecipe @('TTT', '#X#', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $fallbackCobblestone + T = [ordered]@{ tag = 'minecraft:planks' }; X = ItemIngredient 'minecraft:iron_ingot' + }) 'minecraft:piston') + Write-ConditionalMinecraftRecipe 'dispenser' $condition ` + (VanillaShapedRecipe @('###', '#X#', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $enabledCobblestone + X = ItemIngredient 'minecraft:bow' + }) 'minecraft:dispenser') ` + (VanillaShapedRecipe @('###', '#X#', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $fallbackCobblestone + X = ItemIngredient 'minecraft:bow' + }) 'minecraft:dispenser') + Write-ConditionalMinecraftRecipe 'dropper' $condition ` + (VanillaShapedRecipe @('###', '# #', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $enabledCobblestone + }) 'minecraft:dropper') ` + (VanillaShapedRecipe @('###', '# #', '#R#') ([ordered]@{ + R = ItemIngredient 'minecraft:redstone'; '#' = $fallbackCobblestone + }) 'minecraft:dropper') + Write-ConditionalMinecraftRecipe 'observer' $condition ` + (VanillaShapedRecipe @('###', 'RRQ', '###') ([ordered]@{ + Q = ItemIngredient 'minecraft:quartz'; R = ItemIngredient 'minecraft:redstone' + '#' = $enabledCobblestone + }) 'minecraft:observer') ` + (VanillaShapedRecipe @('###', 'RRQ', '###') ([ordered]@{ + Q = ItemIngredient 'minecraft:quartz'; R = ItemIngredient 'minecraft:redstone' + '#' = $fallbackCobblestone + }) 'minecraft:observer') + Write-ConditionalMinecraftRecipe 'mossy_cobblestone_from_vine' $condition ` + (VanillaShapelessRecipe @($enabledCobblestone, (ItemIngredient 'minecraft:vine')) 'minecraft:mossy_cobblestone' 1 'mossy_cobblestone') ` + (VanillaShapelessRecipe @($fallbackCobblestone, (ItemIngredient 'minecraft:vine')) 'minecraft:mossy_cobblestone' 1 'mossy_cobblestone') + Write-ConditionalMinecraftRecipe 'mossy_cobblestone_from_moss_block' $condition ` + (VanillaShapelessRecipe @($enabledCobblestone, (ItemIngredient 'minecraft:moss_block')) 'minecraft:mossy_cobblestone' 1 'mossy_cobblestone') ` + (VanillaShapelessRecipe @($fallbackCobblestone, (ItemIngredient 'minecraft:moss_block')) 'minecraft:mossy_cobblestone' 1 'mossy_cobblestone') + Write-ConditionalMinecraftRecipe 'andesite' $condition ` + (VanillaShapelessRecipe @((ItemIngredient 'minecraft:diorite'), $enabledCobblestone) 'minecraft:andesite' 2) ` + (VanillaShapelessRecipe @((ItemIngredient 'minecraft:diorite'), $fallbackCobblestone) 'minecraft:andesite' 2) + Write-ConditionalMinecraftRecipe 'diorite' $condition ` + (VanillaShapedRecipe @('CQ', 'QC') ([ordered]@{ + Q = ItemIngredient 'minecraft:quartz'; C = $enabledCobblestone + }) 'minecraft:diorite' 2) ` + (VanillaShapedRecipe @('CQ', 'QC') ([ordered]@{ + Q = ItemIngredient 'minecraft:quartz'; C = $fallbackCobblestone + }) 'minecraft:diorite' 2) + + $toolRecipes = [ordered]@{ + stone_axe = @('XX', 'X#', ' #') + stone_hoe = @('XX', ' #', ' #') + stone_pickaxe = @('XXX', ' # ', ' # ') + stone_shovel = @('X', '#', '#') + stone_sword = @('X', 'X', '#') + } + foreach ($recipeName in $toolRecipes.Keys) { + Write-ConditionalMinecraftRecipe $recipeName $condition ` + (VanillaShapedRecipe $toolRecipes[$recipeName] ([ordered]@{ + '#' = ItemIngredient 'minecraft:stick'; X = $enabledTools + }) "minecraft:$recipeName") ` + (VanillaShapedRecipe $toolRecipes[$recipeName] ([ordered]@{ + '#' = ItemIngredient 'minecraft:stick'; X = $fallbackTools + }) "minecraft:$recipeName") + } + + $advancements = @( + @('decorations', 'furnace', 'has_cobblestone', $enabledCrafting, $fallbackCrafting), + @('brewing', 'brewing_stand', 'has_blaze_rod', (ItemIngredient 'minecraft:blaze_rod'), (ItemIngredient 'minecraft:blaze_rod')), + @('redstone', 'lever', 'has_cobblestone', $enabledCobblestone, $fallbackCobblestone), + @('redstone', 'piston', 'has_redstone', (ItemIngredient 'minecraft:redstone'), (ItemIngredient 'minecraft:redstone')), + @('redstone', 'dispenser', 'has_bow', (ItemIngredient 'minecraft:bow'), (ItemIngredient 'minecraft:bow')), + @('redstone', 'dropper', 'has_redstone', (ItemIngredient 'minecraft:redstone'), (ItemIngredient 'minecraft:redstone')), + @('redstone', 'observer', 'has_quartz', (ItemIngredient 'minecraft:quartz'), (ItemIngredient 'minecraft:quartz')), + @('building_blocks', 'mossy_cobblestone_from_vine', 'has_vine', (ItemIngredient 'minecraft:vine'), (ItemIngredient 'minecraft:vine')), + @('building_blocks', 'mossy_cobblestone_from_moss_block', 'has_moss_block', (ItemIngredient 'minecraft:moss_block'), (ItemIngredient 'minecraft:moss_block')), + @('building_blocks', 'andesite', 'has_stone', (ItemIngredient 'minecraft:diorite'), (ItemIngredient 'minecraft:diorite')), + @('building_blocks', 'diorite', 'has_quartz', (ItemIngredient 'minecraft:quartz'), (ItemIngredient 'minecraft:quartz')), + @('tools', 'stone_axe', 'has_cobblestone', $enabledTools, $fallbackTools), + @('tools', 'stone_hoe', 'has_cobblestone', $enabledTools, $fallbackTools), + @('tools', 'stone_pickaxe', 'has_cobblestone', $enabledTools, $fallbackTools), + @('tools', 'stone_shovel', 'has_cobblestone', $enabledTools, $fallbackTools), + @('combat', 'stone_sword', 'has_cobblestone', $enabledTools, $fallbackTools) + ) + foreach ($entry in $advancements) { + Write-ConditionalMinecraftAdvancement $entry[0] $entry[1] $condition $entry[2] $entry[3] $entry[4] + } +} + +function Write-NativeSlabOverrides() { + foreach ($family in @('andesite', 'diorite', 'granite')) { + $raw = $nativeFullBlocks[$family].raw + $smooth = $nativeFullBlocks[$family].smooth + foreach ($finish in @( + @{ recipe = "${family}_slab"; source = $raw; mineralogy = "mineralogy:${family}_slab"; vanilla = "minecraft:${family}_slab" }, + @{ recipe = "polished_${family}_slab"; source = $smooth; mineralogy = "mineralogy:${family}_smooth_slab"; vanilla = "minecraft:polished_${family}_slab" } + )) { + $condition = ItemCondition $finish.mineralogy + Write-ConditionalMinecraftRecipe $finish.recipe $condition ` + (VanillaShapedRecipe @('###') ([ordered]@{ '#' = ItemIngredient $finish.source }) $finish.mineralogy 6) ` + (VanillaShapedRecipe @('###') ([ordered]@{ '#' = ItemIngredient $finish.source }) $finish.vanilla 6) + } + + foreach ($route in @( + @{ recipe = "${family}_slab_from_${family}_stonecutting"; source = $raw; mineralogy = "mineralogy:${family}_slab"; vanilla = "minecraft:${family}_slab" }, + @{ recipe = "polished_${family}_slab_from_${family}_stonecutting"; source = $raw; mineralogy = "mineralogy:${family}_smooth_slab"; vanilla = "minecraft:polished_${family}_slab" }, + @{ recipe = "polished_${family}_slab_from_polished_${family}_stonecutting"; source = $smooth; mineralogy = "mineralogy:${family}_smooth_slab"; vanilla = "minecraft:polished_${family}_slab" } + )) { + $condition = ItemCondition $route.mineralogy + Write-ConditionalMinecraftRecipe $route.recipe $condition ` + (VanillaStonecuttingRecipe (ItemIngredient $route.source) $route.mineralogy 2) ` + (VanillaStonecuttingRecipe (ItemIngredient $route.source) $route.vanilla 2) + } + } +} + +function Write-NativeSlabConversions() { + foreach ($family in @('andesite', 'diorite', 'granite')) { + foreach ($finish in @( + @{ name = 'raw'; mineralogy = "mineralogy:${family}_slab"; vanilla = "minecraft:${family}_slab" }, + @{ name = 'smooth'; mineralogy = "mineralogy:${family}_smooth_slab"; vanilla = "minecraft:polished_${family}_slab" } + )) { + $prefix = if ($finish.name -eq 'raw') { "${family}_slab" } else { "${family}_smooth_slab" } + $conditions = @((ItemCondition $finish.mineralogy), (ItemCondition $finish.vanilla)) + + Write-ShapelessRecipe "${prefix}_to_vanilla" 'minecraft:crafting_shapeless' ` + @((ItemIngredient $finish.mineralogy)) $finish.vanilla 1 $conditions + Register-UnlockSource "${prefix}_to_vanilla" $finish.mineralogy + + Write-ShapelessRecipe "${prefix}_from_vanilla" 'minecraft:crafting_shapeless' ` + @((ItemIngredient $finish.vanilla)) $finish.mineralogy 1 $conditions + Register-UnlockSource "${prefix}_from_vanilla" $finish.vanilla + } + } +} + +function Write-NativePolishedOverrides() { + New-Item -ItemType Directory -Force -Path $minecraftRecipeRoot | Out-Null + $minecraftBuildingAdvancementRoot = Join-Path $minecraftAdvancementRoot 'building_blocks' + New-Item -ItemType Directory -Force -Path $minecraftBuildingAdvancementRoot | Out-Null + foreach ($family in @($nativeFullBlocks.Keys | Where-Object { $nativeFullBlocks[$_].ContainsKey('smooth') })) { + $raw = $nativeFullBlocks[$family].raw + $smooth = $nativeFullBlocks[$family].smooth + $recipeName = "polished_$family" + Write-Json (Join-Path $minecraftRecipeRoot "$recipeName.json") ([ordered]@{ + type = 'minecraft:crafting_shapeless' + ingredients = @((ItemIngredient $raw), (ItemIngredient 'minecraft:sand')) + result = RecipeResult $smooth 1 + }) + Write-Json (Join-Path $minecraftBuildingAdvancementRoot "$recipeName.json") ([ordered]@{ + parent = 'minecraft:recipes/root' + rewards = [ordered]@{ recipes = @("minecraft:$recipeName") } + criteria = [ordered]@{ + has_rock = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ items = @((AdvancementPredicate (ItemIngredient $raw))) } + } + has_sand = [ordered]@{ + trigger = 'minecraft:inventory_changed' + conditions = [ordered]@{ items = @((AdvancementPredicate (ItemIngredient 'minecraft:sand'))) } + } + has_the_recipe = [ordered]@{ + trigger = 'minecraft:recipe_unlocked' + conditions = [ordered]@{ recipe = "minecraft:$recipeName" } + } + } + requirements = @( + @('has_the_recipe', 'has_rock'), + @('has_the_recipe', 'has_sand') + ) + }) + } +} + +Prepare-TargetDirectories +Write-TargetTags +Write-CobblestoneRecipeTags +Write-CobblestoneRecipeOverrides +Write-NativeSlabOverrides +Write-NativePolishedOverrides +New-Item -ItemType Directory -Force -Path $recipeRoot | Out-Null + +foreach ($family in $families) { + Write-BaseFamilyRecipes $family + Write-ReliefRecipes $family + Write-ConstructionRecipes $family +} +Write-NativeSlabConversions +Write-GlobalRecipes + +$expectedRecipeCount = ($families.Count * 50) + 49 +if ($generatedNames.Count -ne $expectedRecipeCount) { + throw "Expected $expectedRecipeCount generated recipes, produced $($generatedNames.Count)" +} + +$expectedTargetRecipeCount = $expectedRecipeCount + 28 +$recipeFiles = Get-ChildItem -LiteralPath $recipeRoot -Filter '*.json' | + Where-Object { -not $_.Name.StartsWith('_') } +if ($recipeFiles.Count -ne $expectedTargetRecipeCount) { + throw "Expected $expectedTargetRecipeCount target recipe files, found $($recipeFiles.Count)" +} + +$createdAdvancements = Ensure-MissingRecipeAdvancements +$advancementCount = Synchronize-AdvancementConditions +if ($advancementCount -ne $expectedTargetRecipeCount) { + throw "Expected $expectedTargetRecipeCount recipe advancements, found $advancementCount" +} +Write-Output "Generated $expectedRecipeCount crafting recipe JSON files, retained 28 target-native smelting recipes, created $createdAdvancements missing recipe advancements, and conditioned $advancementCount recipe advancements." diff --git a/settings.gradle b/settings.gradle index 0077fa746..3f117d996 100644 --- a/settings.gradle +++ b/settings.gradle @@ -9,5 +9,5 @@ pluginManagement { } plugins { - id 'org.gradle.toolchains.foojay-resolver-convention' version '0.7.0' + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' } diff --git a/src/main/java/zone/moddev/mc/mineralogy/ContentPolicy.java b/src/main/java/zone/moddev/mc/mineralogy/ContentPolicy.java new file mode 100644 index 000000000..1a59e49aa --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/ContentPolicy.java @@ -0,0 +1,27 @@ +package zone.moddev.mc.mineralogy; + +/** Visibility and recipe policy for compatibility-safe optional content. */ +public final class ContentPolicy { + public static final String ENABLE_DRYWALLS = "ENABLE_DRYWALLS"; + public static final String ENABLE_ROCK_SALT_LAMPS = "ENABLE_ROCK_SALT_LAMPS"; + public static final String ENABLE_MINERAL_DUSTS = "ENABLE_MINERAL_DUSTS"; + public static final String ENABLE_MINERAL_FERTILIZER = "ENABLE_MINERAL_FERTILIZER"; + + private final boolean drywalls; + private final boolean lamps; + private final boolean dusts; + private final boolean fertilizer; + + public ContentPolicy(boolean drywalls, boolean lamps, boolean dusts, boolean fertilizer) { + this.drywalls = drywalls; + this.lamps = lamps; + this.dusts = dusts; + this.fertilizer = fertilizer; + } + + public static ContentPolicy defaults() { return new ContentPolicy(true, true, true, true); } + public boolean drywallsEnabled() { return drywalls; } + public boolean rockSaltLampsEnabled() { return lamps; } + public boolean mineralDustsEnabled() { return dusts; } + public boolean mineralFertilizerEnabled() { return fertilizer; } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/CreativeTabPolicy.java b/src/main/java/zone/moddev/mc/mineralogy/CreativeTabPolicy.java new file mode 100644 index 000000000..adb736464 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/CreativeTabPolicy.java @@ -0,0 +1,24 @@ +package zone.moddev.mc.mineralogy; + +import zone.moddev.mc.mineralogy.blocks.Ore; +import zone.moddev.mc.mineralogy.blocks.Rock; +import zone.moddev.mc.mineralogy.blocks.RockRelief; +import zone.moddev.mc.mineralogy.blocks.RockSlab; +import zone.moddev.mc.mineralogy.blocks.RockStairs; +import zone.moddev.mc.mineralogy.blocks.RockWall; + +/** Target-native five-way creative classification. */ +public final class CreativeTabPolicy { + public enum ContentGroup { ROCK, STAIR, SLAB, WALL, ITEM } + private final boolean grouped; + public CreativeTabPolicy(boolean grouped) { this.grouped = grouped; } + public boolean groupTabsByType() { return grouped; } + public ContentGroup groupFor(Class type) { + if (RockRelief.class.isAssignableFrom(type)) return ContentGroup.ITEM; + if (RockStairs.class.isAssignableFrom(type)) return ContentGroup.STAIR; + if (RockSlab.class.isAssignableFrom(type)) return ContentGroup.SLAB; + if (RockWall.class.isAssignableFrom(type)) return ContentGroup.WALL; + if (Rock.class.isAssignableFrom(type) || Ore.class.isAssignableFrom(type)) return ContentGroup.ROCK; + return ContentGroup.ITEM; + } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/Mineralogy.java b/src/main/java/zone/moddev/mc/mineralogy/Mineralogy.java index 29b494082..f3f55716f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/Mineralogy.java +++ b/src/main/java/zone/moddev/mc/mineralogy/Mineralogy.java @@ -1,14 +1,20 @@ package zone.moddev.mc.mineralogy; +import zone.moddev.mc.mineralogy.compat.CobblestoneTagPolicy; import zone.moddev.mc.mineralogy.documentation.DocumentationExporter; import zone.moddev.mc.mineralogy.init.MineralogyFluids; +import zone.moddev.mc.mineralogy.migration.LegacyMineralogy6ConfigMigrator; +import zone.moddev.mc.mineralogy.migration.LegacyOreConfigMigrator; import zone.moddev.mc.mineralogy.patching.LegacyWorldDataHook; - import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.eventbus.api.EventPriority; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + @Mod(Mineralogy.MODID) public class Mineralogy { public static Mineralogy instance; @@ -17,6 +23,8 @@ public class Mineralogy { public static final String NAME = "Mineralogy"; public static final String VERSION = getVersion(); + public static final Logger LOGGER = LogManager.getLogger(); + private static String getVersion() { Package metadata = Mineralogy.class.getPackage(); String version = metadata == null ? null : metadata.getImplementationVersion(); @@ -25,16 +33,21 @@ private static String getVersion() { public Mineralogy() { instance = this; - MineralogyConfig.register(); + MineralogyConfig.load(); + LegacyMineralogy6ConfigMigrator.migrateGlobalConfig( + MineralogyConfig.configFile().toAbsolutePath().getParent(), LOGGER); + LegacyOreConfigMigrator.migrate(MineralogyConfig.configFile(), LOGGER); MineralogyConfig.registerRecipeConditions(); MineralogyConfig.registerAdvancementPredicates(); + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); MineralogyFluids.register(FMLJavaModLoadingContext.get().getModEventBus()); - MinecraftForge.EVENT_BUS.addListener(LegacyWorldDataHook::onServerAboutToStart); + MinecraftForge.EVENT_BUS.addListener(EventPriority.HIGHEST, + LegacyWorldDataHook::onServerAboutToStart); + MinecraftForge.EVENT_BUS.addListener(CobblestoneTagPolicy::onTagsUpdated); } private void setup(final FMLCommonSetupEvent event) { - MineralogyConfig.bake(); event.enqueueWork(DocumentationExporter::exportBundledGuide); } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java b/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java index 70609b9a7..c35ed5e1c 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java +++ b/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java @@ -1,7 +1,17 @@ package zone.moddev.mc.mineralogy; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.AtomicMoveNotSupportedException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; import java.util.ArrayList; +import java.util.Collections; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Locale; +import java.util.Map; import java.util.function.BooleanSupplier; import com.google.gson.JsonArray; @@ -10,322 +20,355 @@ import com.google.gson.JsonSyntaxException; import net.minecraft.advancements.critereon.ItemPredicate; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.util.GsonHelper; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.common.ForgeConfigSpec; +import net.minecraft.util.GsonHelper; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.common.crafting.CraftingHelper; import net.minecraftforge.common.crafting.conditions.ICondition; import net.minecraftforge.common.crafting.conditions.IConditionSerializer; -import net.minecraftforge.fml.ModLoadingContext; -import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.loading.FMLPaths; import net.minecraftforge.registries.ForgeRegistries; -/** Mineralogy content settings. OreSpawn owns all terrain and deposit settings. */ +/** + * Content-only Mineralogy configuration. + * + *

    Existing Mineralogy 5 TOML files are read without being rewritten because + * OreSpawn uses their retired geology and ore values during world migration.

    + */ public final class MineralogyConfig { - public static final ForgeConfigSpec SPEC; - - private static final ForgeConfigSpec.BooleanValue SMELTABLE_GRAVEL; - private static final ForgeConfigSpec.BooleanValue DROP_COBBLESTONE; - private static final ForgeConfigSpec.BooleanValue PATCH_UPDATE; - private static final ForgeConfigSpec.BooleanValue COBBLESTONE_EQUIVILENT; - private static final ForgeConfigSpec.BooleanValue GENERATE_RELIEFS; - private static final ForgeConfigSpec.BooleanValue GENERATE_ROCKSTAIRS; - private static final ForgeConfigSpec.BooleanValue GENERATE_ROCKFURNACE; - private static final ForgeConfigSpec.BooleanValue GENERATE_ROCKSLAB; - private static final ForgeConfigSpec.BooleanValue GENERATE_ROCKWALL; - private static final ForgeConfigSpec.BooleanValue GENERATE_BRICK; - private static final ForgeConfigSpec.BooleanValue GENERATE_BRICKFURNACE; - private static final ForgeConfigSpec.BooleanValue GENERATE_BRICKSTAIRS; - private static final ForgeConfigSpec.BooleanValue GENERATE_BRICKSLAB; - private static final ForgeConfigSpec.BooleanValue GENERATE_BRICKWALL; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTH; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHFURNACE; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHSTAIRS; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHSLAB; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHWALL; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHBRICK; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHBRICKFURNACE; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHBRICKSTAIRS; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHBRICKSLAB; - private static final ForgeConfigSpec.BooleanValue GENERATE_SMOOTHBRICKWALL; - private static final ForgeConfigSpec.BooleanValue GROUP_TABS_BY_TYPE; - - private static boolean smeltableGravel = true; - private static boolean dropCobblestone; - private static boolean patchUpdate = true; - private static boolean makeRockCobblestoneEquivilent = true; - private static boolean generateReliefs = true; - private static boolean generateRockStairs = true; - private static boolean generateRockFurnace = true; - private static boolean generateRockSlab = true; - private static boolean generateRockWall = true; - private static boolean generateBrick = true; - private static boolean generateBrickFurnace = true; - private static boolean generateBrickStairs = true; - private static boolean generateBrickSlab = true; - private static boolean generateBrickWall = true; - private static boolean generateSmooth = true; - private static boolean generateSmoothFurnace = true; - private static boolean generateSmoothStairs = true; - private static boolean generateSmoothSlab = true; - private static boolean generateSmoothWall = true; - private static boolean generateSmoothBrick = true; - private static boolean generateSmoothBrickFurnace = true; - private static boolean generateSmoothBrickStairs = true; - private static boolean generateSmoothBrickSlab = true; - private static boolean generateSmoothBrickWall = true; - private static boolean groupCreativeTabItemsByType; - private static boolean recipeConditionsRegistered; - private static boolean advancementPredicatesRegistered; - - private static final ResourceLocation CONFIG_CONDITION_ID = - new ResourceLocation(Mineralogy.MODID, "config"); - - static { - ForgeConfigSpec.Builder builder = new ForgeConfigSpec.Builder(); - builder.push("options"); - PATCH_UPDATE = builder - .comment("Allow compatibility patching for worlds created by older Mineralogy versions.") - .define("patch_world", patchUpdate); - SMELTABLE_GRAVEL = builder - .comment("Allow gravel to be smelted into generic stone. Recipe changes require a restart.") - .define("SMELTABLE_GRAVEL", smeltableGravel); - DROP_COBBLESTONE = builder - .comment("Make ordinary rock blocks also drop cobblestone.") - .define("DROP_COBBLESTONE", dropCobblestone); - COBBLESTONE_EQUIVILENT = builder - .comment("Treat rock blocks as cobblestone equivalents where supported.") - .define("COBBLESTONE_EQUIVILENT", makeRockCobblestoneEquivilent); - GENERATE_RELIEFS = flag(builder, "GENERATE_RELIEFS", "Register rock reliefs.", generateReliefs); - GENERATE_ROCKSTAIRS = flag(builder, "GENERATE_ROCKSTAIRS", "Register rock stairs.", generateRockStairs); - GENERATE_ROCKFURNACE = flag(builder, "GENERATE_ROCKFURNACE", "Register rock furnaces.", generateRockFurnace); - GENERATE_ROCKSLAB = flag(builder, "GENERATE_ROCKSLAB", "Register rock slabs.", generateRockSlab); - GENERATE_ROCKWALL = flag(builder, "GENERATE_ROCKWALL", "Register rock walls.", generateRockWall); - GENERATE_BRICK = flag(builder, "GENERATE_BRICK", "Register rock bricks.", generateBrick); - GENERATE_BRICKFURNACE = flag(builder, "GENERATE_BRICKFURNACE", "Register brick furnaces.", generateBrickFurnace); - GENERATE_BRICKSTAIRS = flag(builder, "GENERATE_BRICKSTAIRS", "Register brick stairs.", generateBrickStairs); - GENERATE_BRICKSLAB = flag(builder, "GENERATE_BRICKSLAB", "Register brick slabs.", generateBrickSlab); - GENERATE_BRICKWALL = flag(builder, "GENERATE_BRICKWALL", "Register brick walls.", generateBrickWall); - GENERATE_SMOOTH = flag(builder, "GENERATE_SMOOTH", "Register polished rock.", generateSmooth); - GENERATE_SMOOTHFURNACE = flag(builder, "GENERATE_SMOOTHFURNACE", "Register polished furnaces.", generateSmoothFurnace); - GENERATE_SMOOTHSTAIRS = flag(builder, "GENERATE_SMOOTHSTAIRS", "Register polished stairs.", generateSmoothStairs); - GENERATE_SMOOTHSLAB = flag(builder, "GENERATE_SMOOTHSLAB", "Register polished slabs.", generateSmoothSlab); - GENERATE_SMOOTHWALL = flag(builder, "GENERATE_SMOOTHWALL", "Register polished walls.", generateSmoothWall); - GENERATE_SMOOTHBRICK = flag(builder, "GENERATE_SMOOTHBRICK", "Register polished bricks.", generateSmoothBrick); - GENERATE_SMOOTHBRICKFURNACE = flag(builder, "GENERATE_SMOOTHBRICKFURNACE", "Register polished brick furnaces.", generateSmoothBrickFurnace); - GENERATE_SMOOTHBRICKSTAIRS = flag(builder, "GENERATE_SMOOTHBRICKSTAIRS", "Register polished brick stairs.", generateSmoothBrickStairs); - GENERATE_SMOOTHBRICKSLAB = flag(builder, "GENERATE_SMOOTHBRICKSLAB", "Register polished brick slabs.", generateSmoothBrickSlab); - GENERATE_SMOOTHBRICKWALL = flag(builder, "GENERATE_SMOOTHBRICKWALL", "Register polished brick walls.", generateSmoothBrickWall); - GROUP_TABS_BY_TYPE = builder - .comment("Split creative tabs by item type where supported.") - .define("GROUP_TABS_BY_TYPE", groupCreativeTabItemsByType); - builder.pop(); - SPEC = builder.build(); - } - - private MineralogyConfig() { - throw new IllegalAccessError("Not an instantiable class"); - } - - private static ForgeConfigSpec.BooleanValue flag(ForgeConfigSpec.Builder builder, - String key, String comment, boolean value) { - return builder.comment(comment).define(key, value); - } - - public static void register() { - ModLoadingContext.get().registerConfig(ModConfig.Type.COMMON, SPEC, - Mineralogy.MODID + "-common.toml"); - } - - public static void registerRecipeConditions() { - if (!recipeConditionsRegistered) { - CraftingHelper.register(new ConfigConditionSerializer()); - recipeConditionsRegistered = true; - } - } - - public static void registerAdvancementPredicates() { - if (!advancementPredicatesRegistered) { - ItemPredicate.register(new ResourceLocation(Mineralogy.MODID, "config_item"), - MineralogyConfig::configItemPredicate); - advancementPredicatesRegistered = true; - } - } - - public static void bake() { - smeltableGravel = SMELTABLE_GRAVEL.get(); - dropCobblestone = DROP_COBBLESTONE.get(); - patchUpdate = PATCH_UPDATE.get(); - makeRockCobblestoneEquivilent = COBBLESTONE_EQUIVILENT.get(); - generateReliefs = GENERATE_RELIEFS.get(); - generateRockStairs = GENERATE_ROCKSTAIRS.get(); - generateRockFurnace = GENERATE_ROCKFURNACE.get(); - generateRockSlab = GENERATE_ROCKSLAB.get(); - generateRockWall = GENERATE_ROCKWALL.get(); - generateBrick = GENERATE_BRICK.get(); - generateBrickFurnace = GENERATE_BRICKFURNACE.get(); - generateBrickStairs = GENERATE_BRICKSTAIRS.get(); - generateBrickSlab = GENERATE_BRICKSLAB.get(); - generateBrickWall = GENERATE_BRICKWALL.get(); - generateSmooth = GENERATE_SMOOTH.get(); - generateSmoothFurnace = GENERATE_SMOOTHFURNACE.get(); - generateSmoothStairs = GENERATE_SMOOTHSTAIRS.get(); - generateSmoothSlab = GENERATE_SMOOTHSLAB.get(); - generateSmoothWall = GENERATE_SMOOTHWALL.get(); - generateSmoothBrick = GENERATE_SMOOTHBRICK.get(); - generateSmoothBrickFurnace = GENERATE_SMOOTHBRICKFURNACE.get(); - generateSmoothBrickStairs = GENERATE_SMOOTHBRICKSTAIRS.get(); - generateSmoothBrickSlab = GENERATE_SMOOTHBRICKSLAB.get(); - generateSmoothBrickWall = GENERATE_SMOOTHBRICKWALL.get(); - groupCreativeTabItemsByType = GROUP_TABS_BY_TYPE.get(); - } - - private static ItemPredicate configItemPredicate(JsonObject json) { - List flags = new ArrayList<>(); - if (json.has("flags")) { - JsonArray flagArray = GsonHelper.getAsJsonArray(json, "flags"); - for (JsonElement flag : flagArray) { - flags.add(configFlagCondition(GsonHelper.convertToString(flag, "flag"))); - } - } else { - flags.add(configFlagCondition(GsonHelper.getAsString(json, "flag"))); - } - return new ConfigItemPredicate(flags, - new ResourceLocation(GsonHelper.getAsString(json, "item"))); - } - - private static BooleanSupplier configFlagCondition(String name) { - switch (name) { - case "SMELTABLE_GRAVEL": return configFlag(() -> smeltableGravel); - case "GENERATE_RELIEFS": return configFlag(() -> generateReliefs); - case "GENERATE_ROCKSTAIRS": return configFlag(() -> generateRockStairs); - case "GENERATE_ROCKFURNACE": return configFlag(() -> generateRockFurnace); - case "GENERATE_ROCKSLAB": return configFlag(() -> generateRockSlab); - case "GENERATE_ROCKWALL": return configFlag(() -> generateRockWall); - case "GENERATE_BRICK": return configFlag(() -> generateBrick); - case "GENERATE_BRICKFURNACE": return configFlag(() -> generateBrickFurnace); - case "GENERATE_BRICKSTAIRS": return configFlag(() -> generateBrickStairs); - case "GENERATE_BRICKSLAB": return configFlag(() -> generateBrickSlab); - case "GENERATE_BRICKWALL": return configFlag(() -> generateBrickWall); - case "GENERATE_SMOOTH": return configFlag(() -> generateSmooth); - case "GENERATE_SMOOTHFURNACE": return configFlag(() -> generateSmoothFurnace); - case "GENERATE_SMOOTHSTAIRS": return configFlag(() -> generateSmoothStairs); - case "GENERATE_SMOOTHSLAB": return configFlag(() -> generateSmoothSlab); - case "GENERATE_SMOOTHWALL": return configFlag(() -> generateSmoothWall); - case "GENERATE_SMOOTHBRICK": return configFlag(() -> generateSmoothBrick); - case "GENERATE_SMOOTHBRICKFURNACE": return configFlag(() -> generateSmoothBrickFurnace); - case "GENERATE_SMOOTHBRICKSTAIRS": return configFlag(() -> generateSmoothBrickStairs); - case "GENERATE_SMOOTHBRICKSLAB": return configFlag(() -> generateSmoothBrickSlab); - case "GENERATE_SMOOTHBRICKWALL": return configFlag(() -> generateSmoothBrickWall); - default: throw new JsonSyntaxException("Unknown Mineralogy recipe config flag: " + name); - } - } - - private static BooleanSupplier configFlag(BooleanSupplier flag) { - return () -> { - bakeIfConfigured(); - return flag.getAsBoolean(); - }; - } - - private static void bakeIfConfigured() { - try { - bake(); - } catch (NullPointerException e) { - if (!isEarlyConfigAccess(e)) throw e; - } - } - - private static boolean isEarlyConfigAccess(NullPointerException e) { - for (StackTraceElement element : e.getStackTrace()) { - if ("net.minecraftforge.common.ForgeConfigSpec$ConfigValue".equals(element.getClassName()) - && "get".equals(element.getMethodName())) return true; - } - return false; - } - - public static boolean smeltableGravel() { return smeltableGravel; } - public static boolean dropCobblestone() { return dropCobblestone; } - public static boolean makeRockCobblestoneEquivilent() { return makeRockCobblestoneEquivilent; } - public static boolean generateRockFurnace() { return generateRockFurnace; } - public static boolean generateRockStairs() { return generateRockStairs; } - public static boolean generateReliefs() { return generateReliefs; } - public static boolean generateRockSlab() { return generateRockSlab; } - public static boolean generateRockWall() { return generateRockWall; } - public static boolean generateBrick() { return generateBrick; } - public static boolean generateBrickFurnace() { return generateBrickFurnace; } - public static boolean generateBrickStairs() { return generateBrickStairs; } - public static boolean generateBrickSlab() { return generateBrickSlab; } - public static boolean generateBrickWall() { return generateBrickWall; } - public static boolean generateSmooth() { return generateSmooth; } - public static boolean generateSmoothFurnace() { return generateSmoothFurnace; } - public static boolean generateSmoothStairs() { return generateSmoothStairs; } - public static boolean generateSmoothSlab() { return generateSmoothSlab; } - public static boolean generateSmoothWall() { return generateSmoothWall; } - public static boolean generateSmoothBrick() { return generateSmoothBrick; } - public static boolean generateSmoothBrickFurnace() { return generateSmoothBrickFurnace; } - public static boolean generateSmoothBrickStairs() { return generateSmoothBrickStairs; } - public static boolean generateSmoothBrickSlab() { return generateSmoothBrickSlab; } - public static boolean generateSmoothBrickWall() { return generateSmoothBrickWall; } - - public static boolean patchUpdate() { - try { - patchUpdate = PATCH_UPDATE.get(); - } catch (NullPointerException e) { - if (!isEarlyConfigAccess(e)) throw e; - } - return patchUpdate; - } - - public static boolean groupCreativeTabItemsByType() { - try { - groupCreativeTabItemsByType = GROUP_TABS_BY_TYPE.get(); - } catch (NullPointerException e) { - if (!isEarlyConfigAccess(e)) throw e; - } - return groupCreativeTabItemsByType; - } - - private static final class ConfigCondition implements ICondition { - private final String flagName; - private final BooleanSupplier flag; - - private ConfigCondition(String flagName) { - this.flagName = flagName; - this.flag = configFlagCondition(flagName); - } - - @Override public ResourceLocation getID() { return CONFIG_CONDITION_ID; } - @Override public boolean test() { return flag.getAsBoolean(); } - } - - private static final class ConfigConditionSerializer - implements IConditionSerializer { - @Override public void write(JsonObject json, ConfigCondition value) { - json.addProperty("flag", value.flagName); - } - @Override public ConfigCondition read(JsonObject json) { - return new ConfigCondition(GsonHelper.getAsString(json, "flag")); - } - @Override public ResourceLocation getID() { return CONFIG_CONDITION_ID; } - } - - private static final class ConfigItemPredicate extends ItemPredicate { - private final List flags; - private final ResourceLocation itemName; - - private ConfigItemPredicate(List flags, ResourceLocation itemName) { - this.flags = flags; - this.itemName = itemName; - } - - @Override - public boolean matches(ItemStack stack) { - for (BooleanSupplier flag : flags) if (!flag.getAsBoolean()) return false; - Item item = ForgeRegistries.ITEMS.getValue(itemName); - return item != null && stack.getItem() == item; - } - } + public static final String FILE_NAME = "mineralogy-common.toml"; + private static final ResourceLocation CONFIG_CONDITION_ID = + new ResourceLocation(Mineralogy.MODID, "config"); + + private static boolean smeltableGravel = true; + private static boolean dropCobblestone; + private static boolean patchUpdate = true; + private static boolean cobblestoneEquivalent = true; + private static boolean generateReliefs = true; + private static boolean generateRockStairs = true; + private static boolean generateRockFurnace = true; + private static boolean generateRockSlab = true; + private static boolean generateRockWall = true; + private static boolean generateBrick = true; + private static boolean generateBrickFurnace = true; + private static boolean generateBrickStairs = true; + private static boolean generateBrickSlab = true; + private static boolean generateBrickWall = true; + private static boolean generateSmooth = true; + private static boolean generateSmoothFurnace = true; + private static boolean generateSmoothStairs = true; + private static boolean generateSmoothSlab = true; + private static boolean generateSmoothWall = true; + private static boolean generateSmoothBrick = true; + private static boolean generateSmoothBrickFurnace = true; + private static boolean generateSmoothBrickStairs = true; + private static boolean generateSmoothBrickSlab = true; + private static boolean generateSmoothBrickWall = true; + private static ContentPolicy contentPolicy = ContentPolicy.defaults(); + private static CreativeTabPolicy creativeTabPolicy = new CreativeTabPolicy(false); + private static Path configFile; + private static boolean recipeConditionsRegistered; + private static boolean advancementPredicatesRegistered; + + private MineralogyConfig() { + } + + public static void load() { + load(FMLPaths.CONFIGDIR.get()); + } + + static void load(Path configDirectory) { + resetDefaults(); + configFile = configDirectory.resolve(FILE_NAME); + boolean existing = Files.isRegularFile(configFile); + Map values = existing ? readToml(configFile) : Collections.emptyMap(); + + patchUpdate = option(values, "patch_world", patchUpdate); + smeltableGravel = option(values, "SMELTABLE_GRAVEL", smeltableGravel); + dropCobblestone = option(values, "DROP_COBBLESTONE", dropCobblestone); + cobblestoneEquivalent = option(values, "COBBLESTONE_EQUIVILENT", cobblestoneEquivalent); + generateReliefs = option(values, "GENERATE_RELIEFS", generateReliefs); + generateRockStairs = option(values, "GENERATE_ROCKSTAIRS", generateRockStairs); + generateRockFurnace = option(values, "GENERATE_ROCKFURNACE", generateRockFurnace); + generateRockSlab = option(values, "GENERATE_ROCKSLAB", generateRockSlab); + generateRockWall = option(values, "GENERATE_ROCKWALL", generateRockWall); + generateBrick = option(values, "GENERATE_BRICK", generateBrick); + generateBrickFurnace = option(values, "GENERATE_BRICKFURNACE", generateBrickFurnace); + generateBrickStairs = option(values, "GENERATE_BRICKSTAIRS", generateBrickStairs); + generateBrickSlab = option(values, "GENERATE_BRICKSLAB", generateBrickSlab); + generateBrickWall = option(values, "GENERATE_BRICKWALL", generateBrickWall); + generateSmooth = option(values, "GENERATE_SMOOTH", generateSmooth); + generateSmoothFurnace = option(values, "GENERATE_SMOOTHFURNACE", generateSmoothFurnace); + generateSmoothStairs = option(values, "GENERATE_SMOOTHSTAIRS", generateSmoothStairs); + generateSmoothSlab = option(values, "GENERATE_SMOOTHSLAB", generateSmoothSlab); + generateSmoothWall = option(values, "GENERATE_SMOOTHWALL", generateSmoothWall); + generateSmoothBrick = option(values, "GENERATE_SMOOTHBRICK", generateSmoothBrick); + generateSmoothBrickFurnace = option(values, "GENERATE_SMOOTHBRICKFURNACE", generateSmoothBrickFurnace); + generateSmoothBrickStairs = option(values, "GENERATE_SMOOTHBRICKSTAIRS", generateSmoothBrickStairs); + generateSmoothBrickSlab = option(values, "GENERATE_SMOOTHBRICKSLAB", generateSmoothBrickSlab); + generateSmoothBrickWall = option(values, "GENERATE_SMOOTHBRICKWALL", generateSmoothBrickWall); + + contentPolicy = new ContentPolicy( + option(values, ContentPolicy.ENABLE_DRYWALLS, true), + option(values, ContentPolicy.ENABLE_ROCK_SALT_LAMPS, true), + option(values, ContentPolicy.ENABLE_MINERAL_DUSTS, true), + option(values, ContentPolicy.ENABLE_MINERAL_FERTILIZER, true)); + creativeTabPolicy = new CreativeTabPolicy(option(values, "GROUP_TABS_BY_TYPE", false)); + + if (!existing) writeCleanConfig(configFile); + } + + private static void resetDefaults() { + smeltableGravel = true; + dropCobblestone = false; + patchUpdate = true; + cobblestoneEquivalent = true; + generateReliefs = true; + generateRockStairs = true; + generateRockFurnace = true; + generateRockSlab = true; + generateRockWall = true; + generateBrick = true; + generateBrickFurnace = true; + generateBrickStairs = true; + generateBrickSlab = true; + generateBrickWall = true; + generateSmooth = true; + generateSmoothFurnace = true; + generateSmoothStairs = true; + generateSmoothSlab = true; + generateSmoothWall = true; + generateSmoothBrick = true; + generateSmoothBrickFurnace = true; + generateSmoothBrickStairs = true; + generateSmoothBrickSlab = true; + generateSmoothBrickWall = true; + contentPolicy = ContentPolicy.defaults(); + creativeTabPolicy = new CreativeTabPolicy(false); + } + + private static Map readToml(Path file) { + Map values = new LinkedHashMap<>(); + String section = ""; + try { + for (String raw : Files.readAllLines(file, StandardCharsets.UTF_8)) { + String line = raw.trim(); + if (line.startsWith("[") && line.endsWith("]")) { + section = line.substring(1, line.length() - 1).trim().toLowerCase(Locale.ROOT); + continue; + } + int equals = line.indexOf('='); + if (equals <= 0 || line.startsWith("#")) continue; + String key = line.substring(0, equals).trim().toLowerCase(Locale.ROOT); + values.put(section + "." + key, stripInlineComment(line.substring(equals + 1)).trim()); + } + } catch (IOException e) { + Mineralogy.LOGGER.warn("Could not read {}; using compatibility-safe defaults", file, e); + } + return values; + } + + private static String stripInlineComment(String value) { + boolean quoted = false; + boolean escaped = false; + for (int i = 0; i < value.length(); i++) { + char current = value.charAt(i); + if (current == '"' && !escaped) quoted = !quoted; + if (current == '#' && !quoted) return value.substring(0, i); + escaped = current == '\\' && !escaped; + if (current != '\\') escaped = false; + } + return value; + } + + public static Map readLegacyValues(Path file) { + return Collections.unmodifiableMap(readToml(file)); + } + + private static boolean option(Map values, String name, boolean fallback) { + String text = values.get("options." + name.toLowerCase(Locale.ROOT)); + return text == null ? fallback : Boolean.parseBoolean(text); + } + + private static void writeCleanConfig(Path destination) { + String content = "# Mineralogy 6 content configuration. OreSpawn owns all terrain and ore generation.\n" + + "# Changes require a restart.\n\n[options]\n" + optionLines(); + Path temporary = destination.resolveSibling(destination.getFileName().toString() + ".tmp"); + try { + Files.createDirectories(destination.getParent()); + Files.write(temporary, content.getBytes(StandardCharsets.UTF_8)); + try { + Files.move(temporary, destination, StandardCopyOption.ATOMIC_MOVE); + } catch (AtomicMoveNotSupportedException e) { + Files.move(temporary, destination); + } + } catch (IOException e) { + Mineralogy.LOGGER.warn("Could not create clean Mineralogy configuration {}", destination, e); + try { Files.deleteIfExists(temporary); } catch (IOException ignored) { } + } + } + + private static String optionLines() { + StringBuilder out = new StringBuilder(); + append(out, "patch_world", true); + append(out, "SMELTABLE_GRAVEL", true); + append(out, "DROP_COBBLESTONE", false); + append(out, "COBBLESTONE_EQUIVILENT", true); + append(out, "GROUP_TABS_BY_TYPE", false); + append(out, ContentPolicy.ENABLE_DRYWALLS, true); + append(out, ContentPolicy.ENABLE_ROCK_SALT_LAMPS, true); + append(out, ContentPolicy.ENABLE_MINERAL_DUSTS, true); + append(out, ContentPolicy.ENABLE_MINERAL_FERTILIZER, true); + for (String key : new String[] { "GENERATE_RELIEFS", "GENERATE_ROCKSTAIRS", + "GENERATE_ROCKFURNACE", "GENERATE_ROCKSLAB", "GENERATE_ROCKWALL", + "GENERATE_BRICK", "GENERATE_BRICKFURNACE", "GENERATE_BRICKSTAIRS", + "GENERATE_BRICKSLAB", "GENERATE_BRICKWALL", "GENERATE_SMOOTH", + "GENERATE_SMOOTHFURNACE", "GENERATE_SMOOTHSTAIRS", "GENERATE_SMOOTHSLAB", + "GENERATE_SMOOTHWALL", "GENERATE_SMOOTHBRICK", "GENERATE_SMOOTHBRICKFURNACE", + "GENERATE_SMOOTHBRICKSTAIRS", "GENERATE_SMOOTHBRICKSLAB", + "GENERATE_SMOOTHBRICKWALL" }) append(out, key, true); + return out.toString(); + } + + private static void append(StringBuilder out, String key, boolean value) { + out.append('\t').append(key).append(" = ").append(value).append('\n'); + } + + public static void registerRecipeConditions() { + if (!recipeConditionsRegistered) { + CraftingHelper.register(new ConfigConditionSerializer()); + recipeConditionsRegistered = true; + } + } + + public static void registerAdvancementPredicates() { + if (!advancementPredicatesRegistered) { + ItemPredicate.register(new ResourceLocation(Mineralogy.MODID, "config_item"), + MineralogyConfig::configItemPredicate); + advancementPredicatesRegistered = true; + } + } + + private static ItemPredicate configItemPredicate(JsonObject json) { + List flags = new ArrayList<>(); + if (json.has("flags")) { + JsonArray array = GsonHelper.getAsJsonArray(json, "flags"); + for (JsonElement flag : array) flags.add(configFlagCondition(GsonHelper.convertToString(flag, "flag"))); + } else { + flags.add(configFlagCondition(GsonHelper.getAsString(json, "flag"))); + } + return new ConfigItemPredicate(flags, new ResourceLocation(GsonHelper.getAsString(json, "item"))); + } + + private static BooleanSupplier configFlagCondition(String flag) { + switch (flag) { + case "SMELTABLE_GRAVEL": return () -> smeltableGravel; + case "GENERATE_RELIEFS": return () -> generateReliefs; + case "GENERATE_ROCKSTAIRS": return () -> generateRockStairs; + case "GENERATE_ROCKFURNACE": return () -> generateRockFurnace; + case "GENERATE_ROCKSLAB": return () -> generateRockSlab; + case "GENERATE_ROCKWALL": return () -> generateRockWall; + case "GENERATE_BRICK": return () -> generateBrick; + case "GENERATE_BRICKFURNACE": return () -> generateBrickFurnace; + case "GENERATE_BRICKSTAIRS": return () -> generateBrickStairs; + case "GENERATE_BRICKSLAB": return () -> generateBrickSlab; + case "GENERATE_BRICKWALL": return () -> generateBrickWall; + case "GENERATE_SMOOTH": return () -> generateSmooth; + case "GENERATE_SMOOTHFURNACE": return () -> generateSmoothFurnace; + case "GENERATE_SMOOTHSTAIRS": return () -> generateSmoothStairs; + case "GENERATE_SMOOTHSLAB": return () -> generateSmoothSlab; + case "GENERATE_SMOOTHWALL": return () -> generateSmoothWall; + case "GENERATE_SMOOTHBRICK": return () -> generateSmoothBrick; + case "GENERATE_SMOOTHBRICKFURNACE": return () -> generateSmoothBrickFurnace; + case "GENERATE_SMOOTHBRICKSTAIRS": return () -> generateSmoothBrickStairs; + case "GENERATE_SMOOTHBRICKSLAB": return () -> generateSmoothBrickSlab; + case "GENERATE_SMOOTHBRICKWALL": return () -> generateSmoothBrickWall; + case "COBBLESTONE_EQUIVILENT": return () -> cobblestoneEquivalent; + case ContentPolicy.ENABLE_DRYWALLS: return () -> contentPolicy.drywallsEnabled(); + case ContentPolicy.ENABLE_ROCK_SALT_LAMPS: return () -> contentPolicy.rockSaltLampsEnabled(); + case ContentPolicy.ENABLE_MINERAL_DUSTS: return () -> contentPolicy.mineralDustsEnabled(); + case ContentPolicy.ENABLE_MINERAL_FERTILIZER: return () -> contentPolicy.mineralFertilizerEnabled(); + default: throw new JsonSyntaxException("Unknown Mineralogy recipe config flag: " + flag); + } + } + + public static Path configFile() { return configFile; } + public static boolean smeltableGravel() { return smeltableGravel; } + public static boolean dropCobblestone() { return dropCobblestone; } + public static boolean patchUpdate() { return patchUpdate; } + public static boolean makeRockCobblestoneEquivilent() { return cobblestoneEquivalent; } + public static boolean groupCreativeTabItemsByType() { return creativeTabPolicy.groupTabsByType(); } + public static ContentPolicy contentPolicy() { return contentPolicy; } + public static CreativeTabPolicy creativeTabPolicy() { return creativeTabPolicy; } + public static boolean generateReliefs() { return generateReliefs; } + public static boolean generateRockStairs() { return generateRockStairs; } + public static boolean generateRockFurnace() { return generateRockFurnace; } + public static boolean generateRockSlab() { return generateRockSlab; } + public static boolean generateRockWall() { return generateRockWall; } + public static boolean generateBrick() { return generateBrick; } + public static boolean generateBrickFurnace() { return generateBrickFurnace; } + public static boolean generateBrickStairs() { return generateBrickStairs; } + public static boolean generateBrickSlab() { return generateBrickSlab; } + public static boolean generateBrickWall() { return generateBrickWall; } + public static boolean generateSmooth() { return generateSmooth; } + public static boolean generateSmoothFurnace() { return generateSmoothFurnace; } + public static boolean generateSmoothStairs() { return generateSmoothStairs; } + public static boolean generateSmoothSlab() { return generateSmoothSlab; } + public static boolean generateSmoothWall() { return generateSmoothWall; } + public static boolean generateSmoothBrick() { return generateSmoothBrick; } + public static boolean generateSmoothBrickFurnace() { return generateSmoothBrickFurnace; } + public static boolean generateSmoothBrickStairs() { return generateSmoothBrickStairs; } + public static boolean generateSmoothBrickSlab() { return generateSmoothBrickSlab; } + public static boolean generateSmoothBrickWall() { return generateSmoothBrickWall; } + + public static boolean isCreativeVisible(String name) { + if (name.startsWith("drywall_")) return contentPolicy.drywallsEnabled(); + if ("rocksaltlamp".equals(name) || "rocksaltstreetlamp".equals(name)) return contentPolicy.rockSaltLampsEnabled(); + if ("sulfur_dust".equals(name) || "phosphorous_dust".equals(name) + || "nitrate_dust".equals(name) || "sulfur_block".equals(name) + || "phosphorous_block".equals(name) || "nitrate_block".equals(name)) { + return contentPolicy.mineralDustsEnabled(); + } + return !"mineral_fertilizer".equals(name) || contentPolicy.mineralFertilizerEnabled(); + } + + private static final class ConfigCondition implements ICondition { + private final String flagName; + private final BooleanSupplier flag; + + private ConfigCondition(String flagName) { + this.flagName = flagName; + this.flag = configFlagCondition(flagName); + } + + @Override public ResourceLocation getID() { return CONFIG_CONDITION_ID; } + @Override public boolean test() { return flag.getAsBoolean(); } + } + + private static final class ConfigConditionSerializer implements IConditionSerializer { + @Override public void write(JsonObject json, ConfigCondition value) { + json.addProperty("flag", value.flagName); + } + + @Override public ConfigCondition read(JsonObject json) { + return new ConfigCondition(GsonHelper.getAsString(json, "flag")); + } + + @Override public ResourceLocation getID() { return CONFIG_CONDITION_ID; } + } + + private static final class ConfigItemPredicate extends ItemPredicate { + private final List flags; + private final ResourceLocation itemName; + private ConfigItemPredicate(List flags, ResourceLocation itemName) { + this.flags = flags; + this.itemName = itemName; + } + @Override public boolean matches(ItemStack stack) { + for (BooleanSupplier flag : flags) if (!flag.getAsBoolean()) return false; + Item item = ForgeRegistries.ITEMS.getValue(itemName); + return item != null && stack.getItem() == item; + } + } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/RockType.java b/src/main/java/zone/moddev/mc/mineralogy/RockType.java deleted file mode 100644 index fde3d485c..000000000 --- a/src/main/java/zone/moddev/mc/mineralogy/RockType.java +++ /dev/null @@ -1,11 +0,0 @@ -package zone.moddev.mc.mineralogy; - -/** - * Type of rock (e.g. igneous) - * - * @author cybergnome - * - */ -public enum RockType { - SEDIMENTARY, METAMORPHIC, IGNEOUS, ANY -} diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/Chert.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/Chert.java index 56cd2495f..4975a9245 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/Chert.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/Chert.java @@ -1,6 +1,6 @@ package zone.moddev.mc.mineralogy.blocks; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.Random; @@ -19,12 +19,10 @@ public Chert() { @Override public List getDrops(BlockState state, Builder builder) { - List drops = new ArrayList(super.getDrops(state, builder)); - if (prng.nextInt(10) == 0) { - drops.add(new ItemStack(Items.FLINT, 1 + Math.max(0, getFortuneLevel(builder)))); + return Collections.singletonList( + new ItemStack(Items.FLINT, 1 + Math.max(0, getFortuneLevel(builder)))); } - - return drops; + return super.getDrops(state, builder); } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java index a5d9673e7..c3b4505d7 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java @@ -9,19 +9,29 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.EnchantmentHelper; +import net.minecraft.world.item.enchantment.Enchantments; import net.minecraft.core.BlockPos; import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.storage.loot.LootContext.Builder; +import net.minecraft.world.level.storage.loot.parameters.LootContextParams; public class DoubleSlab extends Block { private final Block drops; + private final Block fullBlock; private final int toolHardnessLevel; public DoubleSlab(float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, Block drops, String name) { + this(hardness, blastResistance, toolHardnessLevel, sound, drops, drops, name); + } + + public DoubleSlab(float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, Block drops, + Block fullBlock, String name) { super(BlockBehaviour.Properties.of(Material.STONE).strength(hardness, blastResistance).sound(sound) .requiresCorrectToolForDrops()); this.drops = drops; + this.fullBlock = fullBlock; this.toolHardnessLevel = toolHardnessLevel; this.setRegistryName(name); } @@ -32,6 +42,11 @@ public ItemStack getCloneItemStack(BlockGetter world, BlockPos pos, BlockState s } public List getDrops(BlockState state, Builder builder) { + ItemStack tool = builder.getOptionalParameter(LootContextParams.TOOL); + if (tool != null && !tool.isEmpty() + && EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SILK_TOUCH, tool) > 0) { + return Collections.singletonList(new ItemStack(fullBlock)); + } return Collections.singletonList(new ItemStack(drops, 2)); } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java index 4aa744ea2..a1b7e1685 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java @@ -1,6 +1,6 @@ package zone.moddev.mc.mineralogy.blocks; -import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.function.Predicate; @@ -41,13 +41,10 @@ public boolean isReplaceableOreGen(BlockState state, LevelReader world, BlockPos } @Override public List getDrops(BlockState state, Builder builder) { - List drops = new ArrayList(super.getDrops(state, builder)); - - if (MineralogyConfig.dropCobblestone()) { - drops.add(new ItemStack(Blocks.COBBLESTONE)); + if (isStoneEquivalent && MineralogyConfig.dropCobblestone()) { + return Collections.singletonList(new ItemStack(Blocks.COBBLESTONE)); } - - return drops; + return super.getDrops(state, builder); } protected static boolean hasSilkTouch(Builder builder) { diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java index bc9676cb1..778b8970b 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java @@ -93,11 +93,10 @@ public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { BlockPos supportPos = pos.relative(facing.getOpposite()); BlockState support = world.getBlockState(supportPos); - if (facing == Direction.UP) { - return support.isFaceSturdy(world, supportPos, Direction.UP); - } - if (facing == Direction.DOWN) { - return support.isFaceSturdy(world, supportPos, Direction.DOWN); + if (facing.getAxis().isVertical()) { + // Match vanilla standing-torch support, including fences. The legacy + // lamp accepted canPlaceTorchOnTop blocks in both vertical orientations. + return Block.canSupportCenter(world, supportPos, facing); } return support.isFaceSturdy(world, supportPos, facing); diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java index c671430b9..8901d6a2a 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java @@ -13,7 +13,6 @@ public RockStairs(Block materialBlock, float hardness, float blastResistance, in SoundType sound, String name) { super(materialBlock.defaultBlockState(), BlockBehaviour.Properties.of(Material.STONE) .strength(hardness, blastResistance).sound(sound).requiresCorrectToolForDrops()); - this.setRegistryName(name); this.toolHardnessLevel = toolHardnessLevel; } diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java index 928ea93f6..e31b52d50 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java @@ -17,7 +17,6 @@ public RockWall(Block materialBlock, float hardness, float blastResistance, int SoundType sound, String name) { super(BlockBehaviour.Properties.of(Material.STONE).strength(hardness, blastResistance).sound(sound) .requiresCorrectToolForDrops()); - this.setRegistryName(name); this.toolHardnessLevel = toolHardnessLevel; } diff --git a/src/main/java/zone/moddev/mc/mineralogy/client/ClientSetup.java b/src/main/java/zone/moddev/mc/mineralogy/client/ClientSetup.java index 10b2f5164..195c03e8f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/client/ClientSetup.java +++ b/src/main/java/zone/moddev/mc/mineralogy/client/ClientSetup.java @@ -4,6 +4,7 @@ import zone.moddev.mc.mineralogy.blocks.DryWall; import zone.moddev.mc.mineralogy.blocks.RockSaltLamp; import zone.moddev.mc.mineralogy.blocks.RockSaltStreetLamp; +import zone.moddev.mc.mineralogy.init.MineralogyFluids; import net.minecraft.world.level.block.Block; import net.minecraft.client.renderer.RenderType; @@ -16,16 +17,18 @@ @Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT) public final class ClientSetup { - private ClientSetup() { - } + private ClientSetup() { + } - @SubscribeEvent - public static void clientSetup(FMLClientSetupEvent event) { - RenderType cutout = RenderType.cutout(); - for (Block block : ForgeRegistries.BLOCKS.getValues()) { - if (block instanceof DryWall || block instanceof RockSaltLamp || block instanceof RockSaltStreetLamp) { - ItemBlockRenderTypes.setRenderLayer(block, cutout); - } - } - } + @SubscribeEvent + public static void clientSetup(FMLClientSetupEvent event) { + RenderType cutout = RenderType.cutout(); + for (Block block : ForgeRegistries.BLOCKS.getValues()) { + if (block instanceof DryWall || block instanceof RockSaltLamp || block instanceof RockSaltStreetLamp) { + ItemBlockRenderTypes.setRenderLayer(block, cutout); + } + } + ItemBlockRenderTypes.setRenderLayer(MineralogyFluids.CRUDE_OIL.get(), RenderType.translucent()); + ItemBlockRenderTypes.setRenderLayer(MineralogyFluids.FLOWING_CRUDE_OIL.get(), RenderType.translucent()); + } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java b/src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java new file mode 100644 index 000000000..3c7497b7d --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java @@ -0,0 +1,118 @@ +package zone.moddev.mc.mineralogy.compat; + +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.core.Registry; +import net.minecraft.core.RegistryAccess; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.event.TagsUpdatedEvent; + +import zone.moddev.mc.mineralogy.Mineralogy; +import zone.moddev.mc.mineralogy.MineralogyConfig; +import zone.moddev.mc.mineralogy.data.Material; +import zone.moddev.mc.mineralogy.data.MaterialData; + +/** Applies the legacy cobblestone option to Forge 40 block and item tags. */ +public final class CobblestoneTagPolicy { + private static final ResourceLocation COBBLESTONE = new ResourceLocation("forge", "cobblestone"); + private static final ResourceLocation STONE_CRAFTING_MATERIALS = + new ResourceLocation("minecraft", "stone_crafting_materials"); + private static final ResourceLocation STONE_TOOL_MATERIALS = + new ResourceLocation("minecraft", "stone_tool_materials"); + + private CobblestoneTagPolicy() { + } + + /** Apply after the initial tag load and every server-side data reload. */ + public static void onTagsUpdated(TagsUpdatedEvent event) { + if (event.shouldUpdateStaticData()) { + apply(event.getTagManager()); + } + } + + static void apply(RegistryAccess access) { + Registry blockRegistry = access.registryOrThrow(Registry.BLOCK_REGISTRY); + Registry itemRegistry = access.registryOrThrow(Registry.ITEM_REGISTRY); + Set> configuredBlocks = rawRockHolders(blockRegistry, Registry.BLOCK_REGISTRY); + Set> configuredItems = rawRockHolders(itemRegistry, Registry.ITEM_REGISTRY); + boolean enabled = MineralogyConfig.makeRockCobblestoneEquivilent(); + + Map, List>> blockTags = snapshot(blockRegistry); + updateTag(blockTags, blockRegistry, Registry.BLOCK_REGISTRY, COBBLESTONE, + configuredBlocks, enabled, "chert", "pumice"); + blockRegistry.bindTags(blockTags); + + Map, List>> itemTags = snapshot(itemRegistry); + updateTag(itemTags, itemRegistry, Registry.ITEM_REGISTRY, COBBLESTONE, + configuredItems, enabled, "chert", "pumice"); + updateTag(itemTags, itemRegistry, Registry.ITEM_REGISTRY, STONE_CRAFTING_MATERIALS, + configuredItems, enabled, "chert", "pumice"); + updateTag(itemTags, itemRegistry, Registry.ITEM_REGISTRY, STONE_TOOL_MATERIALS, + configuredItems, enabled, "chert", "pumice"); + itemRegistry.bindTags(itemTags); + + Ingredient.invalidateAll(); + Mineralogy.LOGGER.debug("Applied Forge 40 cobblestone policy: enabled={}, rocks={}, " + + "forgeItems={}, craftingItems={}, toolItems={}", enabled, configuredItems.size(), + size(itemRegistry, Registry.ITEM_REGISTRY, COBBLESTONE), + size(itemRegistry, Registry.ITEM_REGISTRY, STONE_CRAFTING_MATERIALS), + size(itemRegistry, Registry.ITEM_REGISTRY, STONE_TOOL_MATERIALS)); + } + + static Map, List>> snapshot(Registry registry) { + Map, List>> result = new IdentityHashMap<>(); + registry.getTags().forEach(pair -> result.put(pair.getFirst(), holders(pair.getSecond()))); + return result; + } + + private static List> holders(HolderSet.Named values) { + List> result = new ArrayList<>(); + values.forEach(result::add); + return result; + } + + private static Set> rawRockHolders(Registry registry, + ResourceKey> registryKey) { + Set> values = new LinkedHashSet<>(); + for (Material material : MaterialData.allIncludingRockSalt()) { + TagKey tag = TagKey.create(registryKey, + new ResourceLocation(Mineralogy.MODID, "stones/" + material.id())); + registry.getTag(tag).ifPresent(named -> named.forEach(values::add)); + } + return values; + } + + static void updateTag(Map, List>> tags, Registry registry, + ResourceKey> registryKey, ResourceLocation id, + Set> configured, boolean enabled, String... unconditionalNames) { + TagKey key = TagKey.create(registryKey, id); + Set> values = new LinkedHashSet<>(tags.getOrDefault(key, List.of())); + values.removeAll(configured); + if (enabled) { + values.addAll(configured); + } + for (String name : unconditionalNames) { + ResourceKey valueKey = ResourceKey.create(registryKey, + new ResourceLocation(Mineralogy.MODID, name)); + registry.getHolder(valueKey).ifPresent(values::add); + } + tags.put(key, new ArrayList<>(values)); + } + + private static int size(Registry registry, ResourceKey> registryKey, + ResourceLocation id) { + return registry.getTag(TagKey.create(registryKey, id)).map(HolderSet.Named::size).orElse(0); + } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/data/Material.java b/src/main/java/zone/moddev/mc/mineralogy/data/Material.java index d99bc1b05..a1d2439dc 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/data/Material.java +++ b/src/main/java/zone/moddev/mc/mineralogy/data/Material.java @@ -1,7 +1,6 @@ package zone.moddev.mc.mineralogy.data; import zone.moddev.mc.mineralogy.Mineralogy; -import zone.moddev.mc.mineralogy.RockType; import zone.moddev.mc.mineralogy.blocks.Rock; import zone.moddev.mc.mineralogy.blocks.RockStairs; import zone.moddev.mc.mineralogy.blocks.RockWall; @@ -10,11 +9,9 @@ import net.minecraft.world.level.block.SoundType; import net.minecraft.world.item.Item; import net.minecraft.world.item.BlockItem; -import net.minecraft.resources.ResourceLocation; public class Material { public String materialName; - public RockType rockType; public double hardness; public double blastResistance; public int toolHardnessLevel; @@ -26,9 +23,6 @@ public class Material { * @param materialName * Name of the block (should start with capital letter) * - * @param type - * Igneous, sedimentary, or metamorphic - * * @param hardness * How hard (time duration) the block is to pick. For reference, dirt * is 0.5, stone is 1.5, ores are 3, and obsidian is 50 @@ -40,17 +34,14 @@ public class Material { * @param cobbleEquivilent * is material equivalent to cobblestone */ - public Material(String materialName, RockType rockType, - double hardness, double blastResistance, int toolHardnessLevel, + public Material(String materialName, double hardness, double blastResistance, int toolHardnessLevel, boolean cobbleEquivilent) { - this(materialName, rockType, hardness, blastResistance, toolHardnessLevel, cobbleEquivilent, true); + this(materialName, hardness, blastResistance, toolHardnessLevel, cobbleEquivilent, true); } - public Material(String materialName, RockType rockType, - double hardness, double blastResistance, int toolHardnessLevel, + public Material(String materialName, double hardness, double blastResistance, int toolHardnessLevel, boolean cobbleEquivilent, boolean standardRockType) { this.materialName = materialName; - this.rockType = rockType; this.hardness = hardness; this.blastResistance = blastResistance; this.toolHardnessLevel = toolHardnessLevel; @@ -58,6 +49,10 @@ public Material(String materialName, RockType rockType, this.standardRockType = standardRockType; } + public String id() { + return materialName.toLowerCase(); + } + public Rock toRock(boolean isSmooth, boolean isBrick) { String name = this.materialName.toLowerCase(); diff --git a/src/main/java/zone/moddev/mc/mineralogy/data/MaterialData.java b/src/main/java/zone/moddev/mc/mineralogy/data/MaterialData.java index 75b8d7dd4..9a6298300 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/data/MaterialData.java +++ b/src/main/java/zone/moddev/mc/mineralogy/data/MaterialData.java @@ -1,38 +1,37 @@ package zone.moddev.mc.mineralogy.data; import java.util.ArrayList; -import zone.moddev.mc.mineralogy.RockType; public class MaterialData { - public static final Material ANDESITE = new Material("Andesite", RockType.IGNEOUS, 1.5, 10, 0, true); - public static final Material BASALT = new Material("Basalt", RockType.IGNEOUS, 5, 100, 2, true); - public static final Material DIORITE = new Material("Diorite", RockType.IGNEOUS, 1.5, 10, 0, true); - public static final Material GRANITE = new Material("Granite", RockType.IGNEOUS, 3, 15, 1, true); - public static final Material RHYOLITE = new Material("Rhyolite", RockType.IGNEOUS, 1.5, 10, 0, true); - public static final Material PEGMATITE = new Material("Pegmatite", RockType.IGNEOUS, 1.5, 10, 0, true); - public static final Material DIABASE = new Material("Diabase", RockType.IGNEOUS, 5, 100, 2, true); - public static final Material GABBRO = new Material("Gabbro", RockType.IGNEOUS, 5, 100, 2, true); - public static final Material PERIDOTITE = new Material("Peridotite", RockType.IGNEOUS, 3, 15, 0, true); - public static final Material BASALTIC_GLASS = new Material("Basaltic_glass", RockType.IGNEOUS, 3, 15, 0, true); - public static final Material SCORIA = new Material("Scoria", RockType.IGNEOUS, 1, 7, 0, true); - public static final Material TUFF = new Material("Tuff", RockType.IGNEOUS, 2, 10, 0, true); + public static final Material ANDESITE = new Material("Andesite", 1.5, 10, 0, true); + public static final Material BASALT = new Material("Basalt", 5, 100, 2, true); + public static final Material DIORITE = new Material("Diorite", 1.5, 10, 0, true); + public static final Material GRANITE = new Material("Granite", 3, 15, 1, true); + public static final Material RHYOLITE = new Material("Rhyolite", 1.5, 10, 0, true); + public static final Material PEGMATITE = new Material("Pegmatite", 1.5, 10, 0, true); + public static final Material DIABASE = new Material("Diabase", 5, 100, 2, true); + public static final Material GABBRO = new Material("Gabbro", 5, 100, 2, true); + public static final Material PERIDOTITE = new Material("Peridotite", 3, 15, 0, true); + public static final Material BASALTIC_GLASS = new Material("Basaltic_glass", 3, 15, 0, true); + public static final Material SCORIA = new Material("Scoria", 1, 7, 0, true); + public static final Material TUFF = new Material("Tuff", 2, 10, 0, true); - public static final Material SHALE = new Material("Shale", RockType.SEDIMENTARY, 1.5, 10, 0, true); - public static final Material CONGLOMERATE = new Material("Conglomerate", RockType.SEDIMENTARY, 1.5, 10, 0, true); - public static final Material DOLOMITE = new Material("Dolomite", RockType.SEDIMENTARY, 3, 15, 1, true); - public static final Material LIMESTONE = new Material("Limestone", RockType.SEDIMENTARY, 1.5, 10, 0, true); - public static final Material MARBLE = new Material("Marble", RockType.METAMORPHIC, 1.5, 10, 0, true); - public static final Material SILTSTONE = new Material("Siltstone", RockType.SEDIMENTARY, 1, 10, 0, true); - public static final Material ROCK_SALT = new Material("Rock_salt", RockType.SEDIMENTARY, 1.5, 10, 0, true, false); + public static final Material SHALE = new Material("Shale", 1.5, 10, 0, true); + public static final Material CONGLOMERATE = new Material("Conglomerate", 1.5, 10, 0, true); + public static final Material DOLOMITE = new Material("Dolomite", 3, 15, 1, true); + public static final Material LIMESTONE = new Material("Limestone", 1.5, 10, 0, true); + public static final Material MARBLE = new Material("Marble", 1.5, 10, 0, true); + public static final Material SILTSTONE = new Material("Siltstone", 1, 10, 0, true); + public static final Material ROCK_SALT = new Material("Rock_salt", 1.5, 10, 0, true, false); - public static final Material SLATE = new Material("Slate", RockType.METAMORPHIC, 1.5, 10, 0, true); - public static final Material SCHIST = new Material("Schist", RockType.METAMORPHIC, 3, 15, 1, true); - public static final Material GNEISS = new Material("Gneiss", RockType.METAMORPHIC, 3, 15, 1, true); - public static final Material PHYLLITE = new Material("Phyllite", RockType.METAMORPHIC, 1.5, 10, 0, true); - public static final Material AMPHIBOLITE = new Material("Amphibolite", RockType.METAMORPHIC, 3, 15, 1, true); - public static final Material HORNFELS = new Material("Hornfels", RockType.METAMORPHIC, 3, 15, 1, true); - public static final Material QUARTZITE = new Material("Quartzite", RockType.METAMORPHIC, 4, 15, 1, true); - public static final Material NOVACULITE = new Material("Novaculite", RockType.METAMORPHIC, 3, 15, 1, true); + public static final Material SLATE = new Material("Slate", 1.5, 10, 0, true); + public static final Material SCHIST = new Material("Schist", 3, 15, 1, true); + public static final Material GNEISS = new Material("Gneiss", 3, 15, 1, true); + public static final Material PHYLLITE = new Material("Phyllite", 1.5, 10, 0, true); + public static final Material AMPHIBOLITE = new Material("Amphibolite", 3, 15, 1, true); + public static final Material HORNFELS = new Material("Hornfels", 3, 15, 1, true); + public static final Material QUARTZITE = new Material("Quartzite", 4, 15, 1, true); + public static final Material NOVACULITE = new Material("Novaculite", 3, 15, 1, true); public static ArrayList toArray() { ArrayList materialArray = new ArrayList(); @@ -67,6 +66,12 @@ public static ArrayList toArray() { return materialArray; } + public static ArrayList allIncludingRockSalt() { + ArrayList materials = toArray(); + materials.add(ROCK_SALT); + return materials; + } + private MaterialData() { throw new IllegalAccessError("Not an instantiable class"); } diff --git a/src/main/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporter.java b/src/main/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporter.java index 6dcc30683..abd4a7cc7 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporter.java +++ b/src/main/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporter.java @@ -5,6 +5,7 @@ import java.nio.file.AtomicMoveNotSupportedException; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.nio.file.StandardCopyOption; import org.apache.logging.log4j.LogManager; @@ -12,82 +13,99 @@ import net.minecraftforge.fml.loading.FMLPaths; -/** Copies Mineralogy's bundled public guide beside its configuration on first use. */ +/** Copies the bundled human-facing Mineralogy guide beside its configuration. */ public final class DocumentationExporter { - private static final Logger LOGGER = LogManager.getLogger(); - private static final GuideFile[] FILES = { - guide("README.md"), - guide("PLAYER_GUIDE.md"), - guide("DEVELOPER_GUIDE.md"), - guide("CONTENT_CONFIG.md"), - guide("PROVIDER.md"), - guide("AGENTS.md"), - new GuideFile("examples/mineralogy-provider.json", - "/data/mineralogy/orespawn/provider.json") - }; + private static final Logger LOGGER = LogManager.getLogger(); + private static final GuideFile[] FILES = { + guide("README.md"), guide("PLAYER_GUIDE.md"), guide("DEVELOPER_GUIDE.md"), + guide("CONTENT_CONFIG.md"), guide("PROVIDER.md"), guide("VERSIONS.md"), + new GuideFile("examples/mineralogy-provider.json", "/data/mineralogy/orespawn/provider.json", + "src/main/resources/data/mineralogy/orespawn/provider.json") + }; - private DocumentationExporter() { - } + private DocumentationExporter() { + } - public static void exportBundledGuide() { - Path target = FMLPaths.CONFIGDIR.get().resolve("mineralogy-guide"); - try { - int exported = exportMissing(target); - if (exported > 0) { - LOGGER.info("Exported {} Mineralogy guide files to {}", exported, - target.toAbsolutePath()); - } - } catch (IOException e) { - LOGGER.warn("Could not export the Mineralogy guide to {}", target.toAbsolutePath(), e); - } - } + public static void exportBundledGuide() { + Path target = FMLPaths.CONFIGDIR.get().resolve("mineralogy-guide"); + try { + int exported = exportMissing(target); + if (exported > 0) LOGGER.info("Exported {} Mineralogy guide files to {}", exported, target.toAbsolutePath()); + } catch (IOException e) { + LOGGER.warn("Could not export the Mineralogy guide to {}", target.toAbsolutePath(), e); + } + } - /** Writes missing files only, so pack authors may annotate their exported copy. */ - public static int exportMissing(Path targetRoot) throws IOException { - int exported = 0; - for (GuideFile file : FILES) { - Path target = targetRoot.resolve(file.target); - if (Files.exists(target)) { - continue; - } - try (InputStream source = DocumentationExporter.class.getResourceAsStream(file.resource)) { - if (source == null) { - throw new IOException("Missing bundled documentation resource " + file.resource); - } - Files.createDirectories(target.getParent()); - Path temporary = Files.createTempFile(target.getParent(), - target.getFileName().toString(), ".tmp"); - try { - Files.copy(source, temporary, StandardCopyOption.REPLACE_EXISTING); - moveIntoPlace(temporary, target); - exported++; - } finally { - Files.deleteIfExists(temporary); - } - } - } - return exported; - } + public static int exportMissing(Path targetRoot) throws IOException { + int exported = 0; + for (GuideFile file : FILES) { + Path target = targetRoot.resolve(file.target); + if (Files.exists(target)) continue; + try (InputStream source = openSource(file)) { + Files.createDirectories(target.getParent()); + Path temporary = Files.createTempFile(target.getParent(), target.getFileName().toString(), ".tmp"); + try { + Files.copy(source, temporary, StandardCopyOption.REPLACE_EXISTING); + moveIntoPlace(temporary, target); + exported++; + } finally { + Files.deleteIfExists(temporary); + } + } + } + return exported; + } - private static GuideFile guide(String name) { - return new GuideFile(name, "/META-INF/mineralogy/docs/" + name); - } + private static InputStream openSource(GuideFile file) throws IOException { + return openSource(file.resource, file.developmentSource); + } - private static void moveIntoPlace(Path source, Path target) throws IOException { - try { - Files.move(source, target, StandardCopyOption.ATOMIC_MOVE); - } catch (AtomicMoveNotSupportedException e) { - Files.move(source, target); - } - } + static InputStream openSource(String resource, String developmentSource) throws IOException { + InputStream bundled = DocumentationExporter.class.getResourceAsStream(resource); + if (bundled != null) return bundled; - private static final class GuideFile { - private final String target; - private final String resource; + // Eclipse rebuilds bin/main from source folders and removes the guide + // files Gradle stages there. In an actual source checkout, recover from + // the authoritative files without weakening packaged-jar validation. + Path source = findDevelopmentSource(Paths.get("").toAbsolutePath(), developmentSource); + if (source != null) { + LOGGER.debug("Using source-checkout Mineralogy guide resource {}", source); + return Files.newInputStream(source); + } + throw new IOException("Missing bundled documentation resource " + resource); + } - private GuideFile(String target, String resource) { - this.target = target; - this.resource = resource; - } - } + static Path findDevelopmentSource(Path start, String relative) { + Path root = start.toAbsolutePath().normalize(); + for (int depth = 0; root != null && depth < 3; depth++, root = root.getParent()) { + Path candidate = root.resolve(relative).normalize(); + if (Files.isRegularFile(root.resolve("build.gradle")) && Files.isRegularFile(candidate)) { + return candidate; + } + } + return null; + } + + private static void moveIntoPlace(Path source, Path target) throws IOException { + try { + Files.move(source, target, StandardCopyOption.ATOMIC_MOVE); + } catch (AtomicMoveNotSupportedException e) { + Files.move(source, target); + } + } + + private static GuideFile guide(String name) { + return new GuideFile(name, "/META-INF/mineralogy/docs/" + name, "docs/" + name); + } + + private static final class GuideFile { + private final String target; + private final String resource; + private final String developmentSource; + private GuideFile(String target, String resource, String developmentSource) { + this.target = target; + this.resource = resource; + this.developmentSource = developmentSource; + } + } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java b/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java index bda567163..9ed7a3643 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java @@ -2,7 +2,6 @@ import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.MineralogyConfig; -import zone.moddev.mc.mineralogy.RockType; import zone.moddev.mc.mineralogy.blocks.Chalk; import zone.moddev.mc.mineralogy.blocks.Chert; import zone.moddev.mc.mineralogy.blocks.DoubleSlab; @@ -237,11 +236,11 @@ public class Blocks { @SubscribeEvent public static void registerBlocks(RegistryEvent.Register event) { - for (zone.moddev.mc.mineralogy.data.Material material : MaterialData.toArray()) { - registerMaterialFamily(event, material, material.toRock(false, false), true); + for (zone.moddev.mc.mineralogy.data.Material material : MaterialData.toArray()) { + registerMaterialFamily(event, material, material.toRock(false, false)); } - registerMaterialFamily(event, MaterialData.ROCK_SALT, new RockSalt(), true); + registerMaterialFamily(event, MaterialData.ROCK_SALT, new RockSalt()); registerSpecialGeologyBlocks(event); registerDryWalls(event); @@ -257,7 +256,7 @@ public static void registerBlocks(RegistryEvent.Register event) { new Rock(false, 1.5F, 10.0F, 0, SoundType.STONE, "nitrate_block") ); - //event.getRegistry().register(MaterialData.BASALT.toRockWall(false, false)); + //event.getRegistry().register(MaterialData.BASALT.toRockWall(false, false)); } @@ -270,11 +269,6 @@ private static void registerSpecialGeologyBlocks(RegistryEvent.Register e event.getRegistry().registerAll(chert, gypsum, chalk, pumice); - MineralogyRegistry.sedimentaryStones.add(net.minecraft.world.level.block.Blocks.SANDSTONE); - MineralogyRegistry.sedimentaryStones.add(chert); - MineralogyRegistry.sedimentaryStones.add(gypsum); - MineralogyRegistry.sedimentaryStones.add(chalk); - MineralogyRegistry.igneousStones.add(pumice); } private static void registerDryWalls(RegistryEvent.Register event) { @@ -284,14 +278,11 @@ private static void registerDryWalls(RegistryEvent.Register event) { } private static void registerMaterialFamily(RegistryEvent.Register event, - zone.moddev.mc.mineralogy.data.Material material, Rock baseRock, boolean addToGeology) { + zone.moddev.mc.mineralogy.data.Material material, Rock baseRock) { event.getRegistry().register(baseRock); - if (addToGeology) { - addStoneType(material.rockType, baseRock); - } if (MineralogyConfig.generateRockSlab()) { - registerSlabPair(event, createSlab(material, false, false), material, false, false); + registerSlabPair(event, createSlab(material, false, false), baseRock, material, false, false); if (MineralogyConfig.generateRockFurnace()) { registerFurnacePair(event, material, false, false); } @@ -312,7 +303,7 @@ private static void registerMaterialFamily(RegistryEvent.Register event, registerReliefs(event, material); } if (MineralogyConfig.generateSmoothSlab()) { - registerSlabPair(event, createSlab(material, true, false), material, true, false); + registerSlabPair(event, createSlab(material, true, false), smoothRock, material, true, false); if (MineralogyConfig.generateSmoothFurnace()) { registerFurnacePair(event, material, true, false); } @@ -331,7 +322,7 @@ private static void registerMaterialFamily(RegistryEvent.Register event, event.getRegistry().register(brickRock); if (MineralogyConfig.generateBrickSlab()) { - registerSlabPair(event, createSlab(material, false, true), material, false, true); + registerSlabPair(event, createSlab(material, false, true), brickRock, material, false, true); if (MineralogyConfig.generateBrickFurnace()) { registerFurnacePair(event, material, false, true); } @@ -349,7 +340,7 @@ private static void registerMaterialFamily(RegistryEvent.Register event, event.getRegistry().register(smoothBrickRock); if (MineralogyConfig.generateSmoothBrickSlab()) { - registerSlabPair(event, createSlab(material, true, true), material, true, true); + registerSlabPair(event, createSlab(material, true, true), smoothBrickRock, material, true, true); if (MineralogyConfig.generateSmoothBrickFurnace()) { registerFurnacePair(event, material, true, true); } @@ -363,10 +354,10 @@ private static void registerMaterialFamily(RegistryEvent.Register event, } } - private static void registerSlabPair(RegistryEvent.Register event, RockSlab slab, + private static void registerSlabPair(RegistryEvent.Register event, RockSlab slab, Block fullBlock, zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { event.getRegistry().register(slab); - event.getRegistry().register(createDoubleSlab(slab, material, isSmooth, isBrick)); + event.getRegistry().register(createDoubleSlab(slab, fullBlock, material, isSmooth, isBrick)); } private static RockStairs createStairs(Block sourceBlock, zone.moddev.mc.mineralogy.data.Material material, @@ -388,10 +379,11 @@ private static RockSlab createSlab(zone.moddev.mc.mineralogy.data.Material mater material.toolHardnessLevel, SoundType.STONE, name + "_slab", name + "_double_slab"); } - private static DoubleSlab createDoubleSlab(Block sourceBlock, zone.moddev.mc.mineralogy.data.Material material, + private static DoubleSlab createDoubleSlab(Block sourceBlock, Block fullBlock, + zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { return new DoubleSlab((float) material.hardness, (float) material.blastResistance, - material.toolHardnessLevel, SoundType.STONE, sourceBlock, + material.toolHardnessLevel, SoundType.STONE, sourceBlock, fullBlock, getVariantName(material, isSmooth, isBrick) + "_double_slab"); } @@ -446,24 +438,4 @@ private static String getVariantName(zone.moddev.mc.mineralogy.data.Material mat return name; } - private static void addStoneType(RockType rockType, Block block) { - switch (rockType) { - case IGNEOUS: - MineralogyRegistry.igneousStones.add(block); - break; - case METAMORPHIC: - MineralogyRegistry.metamorphicStones.add(block); - break; - case SEDIMENTARY: - MineralogyRegistry.sedimentaryStones.add(block); - break; - case ANY: - MineralogyRegistry.igneousStones.add(block); - MineralogyRegistry.metamorphicStones.add(block); - MineralogyRegistry.sedimentaryStones.add(block); - break; - default: - break; - } - } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/Items.java b/src/main/java/zone/moddev/mc/mineralogy/init/Items.java index 44402834e..58ad701a9 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/Items.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/Items.java @@ -4,6 +4,7 @@ import java.util.List; import zone.moddev.mc.mineralogy.Mineralogy; +import zone.moddev.mc.mineralogy.MineralogyConfig; import zone.moddev.mc.mineralogy.blocks.DryWall; import zone.moddev.mc.mineralogy.blocks.Ore; import zone.moddev.mc.mineralogy.blocks.Rock; @@ -81,7 +82,11 @@ private static boolean isMineralogyBlockItem(Block block) { } private static BlockItem createBlockItem(Block block) { - Item.Properties properties = new Item.Properties().tab(MineralogyItemGroups.forBlock(block)); + ResourceLocation name = block.getRegistryName(); + Item.Properties properties = new Item.Properties(); + if (name != null && MineralogyConfig.isCreativeVisible(name.getPath())) { + properties.tab(MineralogyItemGroups.forBlock(block)); + } if (block instanceof RockFurnace) { properties.stacksTo(1); } else if (block instanceof RockSaltStreetLamp) { @@ -101,13 +106,16 @@ private static boolean isUnlitRockFurnace(Block block) { } private static Item createItem(String name) { - Item item = new Item(new Item.Properties().tab(MineralogyItemGroups.forItem())); + Item.Properties properties = new Item.Properties(); + if (MineralogyConfig.isCreativeVisible(name)) properties.tab(MineralogyItemGroups.forItem()); + Item item = new Item(properties); item.setRegistryName(Mineralogy.MODID, name); return item; } private static Item createFertilizer() { - MineralFertilizer item = new MineralFertilizer(MineralogyItemGroups.forItem()); + MineralFertilizer item = new MineralFertilizer(MineralogyConfig.isCreativeVisible("mineral_fertilizer") + ? MineralogyItemGroups.forFertilizer() : null); item.setRegistryName(Mineralogy.MODID, "mineral_fertilizer"); return item; } diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java index 66f84ad90..88c92dac2 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java @@ -56,8 +56,15 @@ public final class MineralogyFluids { BlockBehaviour.Properties.of(Material.WATER).noCollission().strength(100.0F).noDrops())); public static final RegistryObject CRUDE_OIL_BUCKET = ITEMS.register("crude_oil_bucket", () -> new MineralogyBucketItem(MineralogyFluids::crudeOil, - new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1) - .tab(MineralogyItemGroups.forItem()))); + bucketProperties())); + + private static Item.Properties bucketProperties() { + Item.Properties properties = new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1); + if (zone.moddev.mc.mineralogy.MineralogyConfig.isCreativeVisible("crude_oil_bucket")) { + properties.tab(MineralogyItemGroups.forItem()); + } + return properties; + } public static void register(IEventBus modBus) { FLUIDS.register(modBus); diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java index 6d566561c..bbae53d3d 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java @@ -2,12 +2,6 @@ import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.MineralogyConfig; -import zone.moddev.mc.mineralogy.blocks.Ore; -import zone.moddev.mc.mineralogy.blocks.Rock; -import zone.moddev.mc.mineralogy.blocks.RockRelief; -import zone.moddev.mc.mineralogy.blocks.RockSlab; -import zone.moddev.mc.mineralogy.blocks.RockStairs; -import zone.moddev.mc.mineralogy.blocks.RockWall; import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Item; @@ -28,29 +22,24 @@ public static CreativeModeTab forBlock(Block block) { return MainGroup.MINERALOGY; } - if (block instanceof RockRelief) { - return CreativeModeTabs.ITEM; + switch (MineralogyConfig.creativeTabPolicy().groupFor(block.getClass())) { + case ROCK: return RockGroup.ROCK; + case STAIR: return StairGroup.STAIR; + case SLAB: return SlabGroup.SLAB; + case WALL: return WallGroup.WALL; + default: return CreativeModeTabs.ITEM; } - if (block instanceof RockStairs) { - return StairGroup.STAIR; - } - if (block instanceof RockSlab) { - return SlabGroup.SLAB; - } - if (block instanceof RockWall) { - return WallGroup.WALL; - } - if (block instanceof Rock || block instanceof Ore) { - return RockGroup.ROCK; - } - - return CreativeModeTabs.ITEM; } public static CreativeModeTab forItem() { return MineralogyConfig.groupCreativeTabItemsByType() ? CreativeModeTabs.ITEM : MainGroup.MINERALOGY; } + public static CreativeModeTab forFertilizer() { + return MineralogyConfig.groupCreativeTabItemsByType() + ? CreativeModeTabs.ITEM : CreativeModeTab.TAB_MATERIALS; + } + private static CreativeModeTab create(String name, String iconItemName) { return new CreativeModeTab(Mineralogy.MODID + "." + name) { @Override @@ -59,7 +48,13 @@ public ItemStack makeIcon() { Item item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(Mineralogy.MODID, iconItemName)); return item != null ? new ItemStack(item) : new ItemStack(net.minecraft.world.item.Items.IRON_PICKAXE); } - }; + + @Override + public boolean hasSearchBar() { + return true; + } + }.setBackgroundImage(new ResourceLocation("minecraft", + "textures/gui/container/creative_inventory/tab_item_search.png")); } private static final class MainGroup { diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyRegistry.java b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyRegistry.java index a7b009e4f..eaaf06b6a 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyRegistry.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyRegistry.java @@ -1,24 +1,14 @@ package zone.moddev.mc.mineralogy.init; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import zone.moddev.mc.mineralogy.util.BlockItemPair; -import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Item; -import net.minecraft.world.item.crafting.Recipe; public class MineralogyRegistry { - public static final List sedimentaryStones = new ArrayList<>(); // stone block replacements that are Sedimentary - public static final List metamorphicStones = new ArrayList<>(); // stone block replacements that are Metamorphic - public static final List igneousStones = new ArrayList<>(); // stone block replacements that are Igneous public static final Map MineralogyBlockRegistry = new HashMap<>(); // all blocks used in this mod (blockID, BlockItemPair) public static final Map MineralogyItemRegistry = new HashMap<>(); // all items used in this mod (itemID, item) - public static final Map MineralogyRecipeRegistry = new HashMap<>(); // all recipes used in this mod (recipeID, Recipe) - - public static final Map BlocksToRegister = new HashMap<>(); // all blocks used in this mod (blockID, BlockItemPair) public static final Map ItemsToRegister = new HashMap<>(); // all items used in this mod (itemID, item) } diff --git a/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyMineralogy6ConfigMigrator.java b/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyMineralogy6ConfigMigrator.java new file mode 100644 index 000000000..4fa7ea143 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyMineralogy6ConfigMigrator.java @@ -0,0 +1,251 @@ +package zone.moddev.mc.mineralogy.migration; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.AtomicMoveNotSupportedException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.apache.logging.log4j.Logger; + +/** + * Imports Mineralogy 6's JSON geology configuration without duplicating the + * stable rules supplied by Mineralogy's OreSpawn provider. + * + *

    OreSpawn 4 can import the old files itself, but Mineralogy 6 used output + * block IDs as rule IDs. Copying those IDs verbatim beside the provider's + * stable IDs makes both ore rules active. This small pre-migration preserves + * all user values while canonicalising only uniquely matching provider-owned + * entries. Source files are never modified and established OreSpawn files are + * always authoritative.

    + */ +public final class LegacyMineralogy6ConfigMigrator { + public static final String LEGACY_GLOBAL_FILE = "mineralogy-geomes.json"; + public static final String ORESPAWN_GLOBAL_FILE = "orespawn-worldgen.json"; + public static final String LEGACY_WORLD_FILE = "mineralogy-geology.json"; + public static final String ORESPAWN_WORLD_FILE = "orespawn-worldgen.json"; + public static final String GLOBAL_REPORT_FILE = "orespawn-migration/migration-report.txt"; + public static final String WORLD_REPORT_FILE = "mineralogy-orespawn-upgrade-report.txt"; + + private static final String PROVIDER_RESOURCE = "data/mineralogy/orespawn/provider.json"; + private static final String PROVIDER_ID = "mineralogy"; + private static final int ORESPAWN_GLOBAL_SCHEMA = 6; + private static final int ORESPAWN_WORLD_SCHEMA = 5; + private static final String[] SECTIONS = { "rocks", "ores", "fluid_deposits" }; + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + + private LegacyMineralogy6ConfigMigrator() { + } + + public static boolean migrateGlobalConfig(Path configDirectory, Logger logger) { + if (configDirectory == null) return false; + Path directory = configDirectory.toAbsolutePath().normalize(); + return migrate(directory.resolve(LEGACY_GLOBAL_FILE), + directory.resolve(ORESPAWN_GLOBAL_FILE), + directory.resolve(GLOBAL_REPORT_FILE), "global", ORESPAWN_GLOBAL_SCHEMA, logger); + } + + public static boolean migrateWorldProfile(Path worldRoot, Logger logger) { + if (worldRoot == null) return false; + Path directory = worldRoot.toAbsolutePath().normalize().resolve("serverconfig"); + return migrate(directory.resolve(LEGACY_WORLD_FILE), + directory.resolve(ORESPAWN_WORLD_FILE), + directory.resolve(WORLD_REPORT_FILE), "world", ORESPAWN_WORLD_SCHEMA, logger); + } + + private static boolean migrate(Path source, Path target, Path report, + String scope, int targetSchema, Logger logger) { + if (!Files.isRegularFile(source) || Files.exists(target)) return false; + + try { + JsonObject root = readObject(source); + JsonObject provider = loadPackagedProvider(); + MigrationResult result = canonicalize(root, provider); + root.addProperty("schema_version", targetSchema); + root.addProperty("migrated_from", source.getFileName().toString()); + + if (!writeAtomicallyIfAbsent(target, GSON.toJson(root) + "\n")) return false; + writeAtomicallyIfAbsent(report, report(scope, source, target, result)); + info(logger, "Imported Mineralogy 6 {} geology settings into '{}' with {} rock, {} ore, " + + "and {} fluid-deposit rule IDs canonicalized; source retained unchanged", + scope, target, result.renamed.get("rocks"), result.renamed.get("ores"), + result.renamed.get("fluid_deposits")); + return true; + } catch (IOException | RuntimeException e) { + warn(logger, "Could not pre-migrate Mineralogy 6 geology settings from '" + source + + "'; leaving OreSpawn's normal migration path in control", e); + return false; + } + } + + private static MigrationResult canonicalize(JsonObject root, JsonObject provider) { + MigrationResult result = new MigrationResult(); + for (String sectionName : SECTIONS) { + JsonObject providerSection = object(provider, sectionName); + if (!root.has(sectionName) || !root.get(sectionName).isJsonObject() + || providerSection.entrySet().isEmpty()) { + continue; + } + + JsonObject sourceSection = root.getAsJsonObject(sectionName); + JsonObject targetSection = new JsonObject(); + Map> idsByBlock = providerIdsByBlock(providerSection); + + // Explicit stable entries win if a partially migrated file also + // contains the older block-named identity. + for (Map.Entry entry : sourceSection.entrySet()) { + if (providerSection.has(entry.getKey())) { + targetSection.add(entry.getKey(), providerOwnedRule(entry.getValue(), + providerSection.get(entry.getKey()))); + } + } + + for (Map.Entry entry : sourceSection.entrySet()) { + String oldId = entry.getKey(); + if (providerSection.has(oldId)) continue; + String output = outputBlock(oldId, entry.getValue()); + List matches = idsByBlock.get(output); + if (matches == null || matches.size() != 1) { + targetSection.add(oldId, entry.getValue().deepCopy()); + continue; + } + + String stableId = matches.get(0); + if (targetSection.has(stableId)) { + result.warnings.add(sectionName + ": skipped duplicate " + oldId + + " because stable rule " + stableId + " was already present"); + continue; + } + targetSection.add(stableId, providerOwnedRule(entry.getValue(), + providerSection.get(stableId))); + result.renamed.put(sectionName, result.renamed.get(sectionName) + 1); + } + root.add(sectionName, targetSection); + } + return result; + } + + private static JsonElement providerOwnedRule(JsonElement legacy, JsonElement provider) { + if (!legacy.isJsonObject() || !provider.isJsonObject()) return legacy.deepCopy(); + JsonObject result = legacy.getAsJsonObject().deepCopy(); + JsonObject providerRule = provider.getAsJsonObject(); + if (!result.has("block") && providerRule.has("block")) { + result.add("block", providerRule.get("block").deepCopy()); + } + result.addProperty("source_provider", PROVIDER_ID); + return result; + } + + private static Map> providerIdsByBlock(JsonObject providerSection) { + Map> result = new LinkedHashMap<>(); + for (Map.Entry entry : providerSection.entrySet()) { + String output = outputBlock("", entry.getValue()); + if (!output.isEmpty()) { + result.computeIfAbsent(output, ignored -> new ArrayList<>()).add(entry.getKey()); + } + } + return result; + } + + private static String outputBlock(String fallback, JsonElement value) { + if (value != null && value.isJsonObject()) { + JsonElement block = value.getAsJsonObject().get("block"); + if (block != null && block.isJsonPrimitive() && block.getAsJsonPrimitive().isString()) { + return block.getAsString(); + } + } + return fallback; + } + + private static String report(String scope, Path source, Path target, MigrationResult result) { + StringBuilder text = new StringBuilder(); + text.append("Mineralogy 6 to OreSpawn 4 JSON migration report\n"); + text.append("scope=").append(scope).append('\n'); + text.append("source=").append(source.getFileName()).append('\n'); + text.append("target=").append(target.getFileName()).append('\n'); + text.append("result=migrated\n"); + text.append("source_retained_unchanged=true\n"); + for (String section : SECTIONS) { + text.append("canonicalized.").append(section).append('=') + .append(result.renamed.get(section)).append('\n'); + } + for (String warning : result.warnings) { + text.append("warning=").append(warning).append('\n'); + } + return text.toString(); + } + + private static JsonObject readObject(Path path) throws IOException { + try (BufferedReader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) { + JsonElement parsed = JsonParser.parseReader(reader); + if (!parsed.isJsonObject()) throw new IOException("JSON root is not an object"); + return parsed.getAsJsonObject(); + } + } + + private static JsonObject loadPackagedProvider() throws IOException { + InputStream stream = LegacyMineralogy6ConfigMigrator.class.getClassLoader() + .getResourceAsStream(PROVIDER_RESOURCE); + if (stream == null) throw new IOException("missing " + PROVIDER_RESOURCE); + try (BufferedReader reader = new BufferedReader( + new InputStreamReader(stream, StandardCharsets.UTF_8))) { + JsonElement parsed = JsonParser.parseReader(reader); + if (!parsed.isJsonObject()) throw new IOException("provider root is not an object"); + return parsed.getAsJsonObject(); + } + } + + private static JsonObject object(JsonObject root, String name) { + return root.has(name) && root.get(name).isJsonObject() + ? root.getAsJsonObject(name) : new JsonObject(); + } + + private static boolean writeAtomicallyIfAbsent(Path destination, String content) + throws IOException { + if (Files.exists(destination)) return false; + Files.createDirectories(destination.getParent()); + Path temporary = destination.resolveSibling(destination.getFileName().toString() + ".tmp"); + Files.write(temporary, content.getBytes(StandardCharsets.UTF_8)); + try { + try { + Files.move(temporary, destination, StandardCopyOption.ATOMIC_MOVE); + } catch (AtomicMoveNotSupportedException e) { + Files.move(temporary, destination); + } + return true; + } finally { + Files.deleteIfExists(temporary); + } + } + + private static void info(Logger logger, String message, Object... values) { + if (logger != null) logger.info(message, values); + } + + private static void warn(Logger logger, String message, Throwable failure) { + if (logger != null) logger.warn(message, failure); + } + + private static final class MigrationResult { + final Map renamed = new LinkedHashMap<>(); + final List warnings = new ArrayList<>(); + + MigrationResult() { + for (String section : SECTIONS) renamed.put(section, 0); + } + } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyOreConfigMigrator.java b/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyOreConfigMigrator.java new file mode 100644 index 000000000..f27a15853 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/migration/LegacyOreConfigMigrator.java @@ -0,0 +1,203 @@ +package zone.moddev.mc.mineralogy.migration; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.AtomicMoveNotSupportedException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardCopyOption; +import java.util.LinkedHashMap; +import java.util.Map; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.apache.logging.log4j.Logger; + +import zone.moddev.mc.mineralogy.MineralogyConfig; + +/** One-time, non-destructive migration of Mineralogy 5 ore settings to OreSpawn 4. */ +public final class LegacyOreConfigMigrator { + public static final String OVERRIDE_FILE = "mineralogy-orespawn.json"; + public static final String REPORT_FILE = "mineralogy-orespawn-upgrade-report.txt"; + public static final String GLOBAL_FILE = "orespawn-worldgen.json"; + private static final String PROVIDER_RESOURCE = "data/mineralogy/orespawn/provider.json"; + private static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private static final OreSettings DEFAULTS = new OreSettings(16, 64, 1.0D, 16); + + private LegacyOreConfigMigrator() { + } + + public static void migrate(Path mineralogyConfigFile, Logger logger) { + if (mineralogyConfigFile == null || !Files.isRegularFile(mineralogyConfigFile)) return; + Path directory = mineralogyConfigFile.toAbsolutePath().getParent(); + if (directory == null) return; + Path report = directory.resolve(REPORT_FILE); + if (Files.isRegularFile(report)) return; + + StringBuilder text = new StringBuilder(); + text.append("Mineralogy 6 / OreSpawn 4 ore migration report\n"); + text.append("source=").append(MineralogyConfig.FILE_NAME).append('\n'); + Path override = directory.resolve(OVERRIDE_FILE); + if (Files.isRegularFile(override)) { + text.append("result=skipped\nreason=existing Mineralogy provider override is authoritative\n"); + writeAtomicallyIfAbsent(report, text.toString(), logger); + return; + } + if (Files.isRegularFile(directory.resolve(GLOBAL_FILE))) { + text.append("result=skipped\nreason=existing OreSpawn global configuration is authoritative\n"); + writeAtomicallyIfAbsent(report, text.toString(), logger); + return; + } + + Map values = MineralogyConfig.readLegacyValues(mineralogyConfigFile); + Map migrations = new LinkedHashMap<>(); + inspect("sulfur_ore", "sulphur_ore", "mineralogy:ore/mineralogy/sulfur_ore", + values, migrations, text, logger); + inspect("phosphorous_ore", null, "mineralogy:ore/mineralogy/phosphorous_ore", + values, migrations, text, logger); + inspect("nitrate_ore", null, "mineralogy:ore/mineralogy/nitrate_ore", + values, migrations, text, logger); + if (migrations.isEmpty()) { + text.append("result=defaults\nreason=no valid non-default ore settings\n"); + writeAtomicallyIfAbsent(report, text.toString(), logger); + return; + } + + try { + JsonObject provider = loadPackagedProvider(); + JsonObject ores = provider.getAsJsonObject("ores"); + for (Map.Entry entry : migrations.entrySet()) { + JsonObject dimension = ores.getAsJsonObject(entry.getKey()) + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + OreSettings settings = entry.getValue(); + dimension.addProperty("min_y", settings.minY); + dimension.addProperty("max_y", settings.maxYExclusive - 1); + dimension.addProperty("frequency", settings.frequency); + dimension.addProperty("quantity", settings.quantity); + } + writeAtomicallyIfAbsent(override, GSON.toJson(provider) + "\n", logger); + text.append("result=migrated\noverride=").append(OVERRIDE_FILE).append('\n'); + } catch (Exception e) { + text.append("result=defaults\nwarning=unable to create provider override\n"); + warn(logger, "Unable to create Mineralogy OreSpawn override; using packaged defaults", e); + } + writeAtomicallyIfAbsent(report, text.toString(), logger); + } + + private static void inspect(String primary, String fallback, String providerId, + Map values, Map migrations, + StringBuilder report, Logger logger) { + String selected = has(values, primary) ? primary : fallback != null && has(values, fallback) ? fallback : primary; + String prefix = "ores." + selected.toLowerCase() + "."; + String min = values.get(prefix + "miny"); + String max = values.get(prefix + "maxy"); + String frequency = values.get(prefix + "frequency"); + String quantity = values.get(prefix + "quantity"); + report.append("ore.").append(selected).append(".source=") + .append(value(min)).append(',').append(value(max)).append(',') + .append(value(frequency)).append(',').append(value(quantity)).append('\n'); + OreSettings parsed = parse(min, max, frequency, quantity); + if (parsed == null) { + report.append("ore.").append(selected).append(".result=default-invalid\n"); + if (min != null || max != null || frequency != null || quantity != null) { + warn(logger, "Invalid or incomplete legacy settings for " + selected + + "; using packaged OreSpawn defaults", null); + } + } else if (parsed.equals(DEFAULTS)) { + report.append("ore.").append(selected).append(".result=default\n"); + } else { + migrations.put(providerId, parsed); + report.append("ore.").append(selected).append(".result=migrated min_y=") + .append(parsed.minY).append(" max_y=").append(parsed.maxYExclusive - 1) + .append(" frequency=").append(parsed.frequency) + .append(" quantity=").append(parsed.quantity).append('\n'); + } + } + + private static boolean has(Map values, String ore) { + String prefix = "ores." + ore.toLowerCase() + "."; + return values.containsKey(prefix + "miny") || values.containsKey(prefix + "maxy") + || values.containsKey(prefix + "frequency") || values.containsKey(prefix + "quantity"); + } + + private static OreSettings parse(String min, String max, String frequency, String quantity) { + if (min == null && max == null && frequency == null && quantity == null) return DEFAULTS; + try { + int minY = Integer.parseInt(min); + int maxY = Integer.parseInt(max); + double attempts = Double.parseDouble(frequency); + int size = Integer.parseInt(quantity); + if (minY < -64 || maxY > 320 || maxY <= minY || !Double.isFinite(attempts) + || attempts < 0.0D || attempts > 64.0D || size < 1 || size > 64) return null; + return new OreSettings(minY, maxY, attempts, size); + } catch (RuntimeException e) { + return null; + } + } + + private static JsonObject loadPackagedProvider() throws IOException { + InputStream stream = LegacyOreConfigMigrator.class.getClassLoader().getResourceAsStream(PROVIDER_RESOURCE); + if (stream == null) throw new IOException("missing " + PROVIDER_RESOURCE); + try (BufferedReader reader = new BufferedReader(new InputStreamReader(stream, StandardCharsets.UTF_8))) { + JsonElement parsed = new JsonParser().parse(reader); + if (!parsed.isJsonObject()) throw new IOException("provider root is not an object"); + return parsed.getAsJsonObject(); + } + } + + private static void writeAtomicallyIfAbsent(Path destination, String content, Logger logger) { + if (Files.exists(destination)) return; + Path temporary = destination.resolveSibling(destination.getFileName().toString() + ".tmp"); + try { + Files.createDirectories(destination.getParent()); + Files.write(temporary, content.getBytes(StandardCharsets.UTF_8)); + try { + Files.move(temporary, destination, StandardCopyOption.ATOMIC_MOVE); + } catch (AtomicMoveNotSupportedException e) { + Files.move(temporary, destination); + } + } catch (IOException e) { + warn(logger, "Unable to write " + destination.getFileName(), e); + try { Files.deleteIfExists(temporary); } catch (IOException ignored) { } + } + } + + private static String value(String value) { return value == null ? "missing" : value; } + + private static void warn(Logger logger, String message, Throwable failure) { + if (logger == null) return; + if (failure == null) logger.warn(message); else logger.warn(message, failure); + } + + private static final class OreSettings { + final int minY; + final int maxYExclusive; + final double frequency; + final int quantity; + OreSettings(int minY, int maxYExclusive, double frequency, int quantity) { + this.minY = minY; + this.maxYExclusive = maxYExclusive; + this.frequency = frequency; + this.quantity = quantity; + } + @Override public boolean equals(Object other) { + if (!(other instanceof OreSettings)) return false; + OreSettings that = (OreSettings) other; + return minY == that.minY && maxYExclusive == that.maxYExclusive + && Double.compare(frequency, that.frequency) == 0 && quantity == that.quantity; + } + @Override public int hashCode() { + long bits = Double.doubleToLongBits(frequency); + int result = 31 * minY + maxYExclusive; + result = 31 * result + (int) (bits ^ bits >>> 32); + return 31 * result + quantity; + } + } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizer.java b/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizer.java new file mode 100644 index 000000000..d50450ad8 --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizer.java @@ -0,0 +1,107 @@ +package zone.moddev.mc.mineralogy.patching; + +import java.util.Collections; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; + +/** + * Converts pre-namespaced tile-entity identifiers into values Forge 36 can + * safely parse. Minecraft 1.14 and 1.15 construct a ResourceLocation before looking + * up the tile type, so an otherwise harmless missing legacy tile such as + * {@code Chest} aborts the complete chunk future because of its uppercase + * character. + */ +final class LegacyTileEntityIdNormalizer { + private static final Map VANILLA_IDS; + + static { + Map ids = new HashMap<>(); + ids.put("Furnace", "minecraft:furnace"); + ids.put("Chest", "minecraft:chest"); + ids.put("EnderChest", "minecraft:ender_chest"); + ids.put("RecordPlayer", "minecraft:jukebox"); + ids.put("Trap", "minecraft:dispenser"); + ids.put("Dropper", "minecraft:dropper"); + ids.put("Sign", "minecraft:sign"); + ids.put("MobSpawner", "minecraft:mob_spawner"); + ids.put("Music", "minecraft:noteblock"); + ids.put("Piston", "minecraft:piston"); + ids.put("Cauldron", "minecraft:brewing_stand"); + ids.put("EnchantTable", "minecraft:enchanting_table"); + ids.put("Airportal", "minecraft:end_portal"); + ids.put("Control", "minecraft:command_block"); + ids.put("Beacon", "minecraft:beacon"); + ids.put("Skull", "minecraft:skull"); + ids.put("DLDetector", "minecraft:daylight_detector"); + ids.put("Hopper", "minecraft:hopper"); + ids.put("Comparator", "minecraft:comparator"); + ids.put("FlowerPot", "minecraft:flower_pot"); + ids.put("Banner", "minecraft:banner"); + ids.put("Structure", "minecraft:structure_block"); + ids.put("EndGateway", "minecraft:end_gateway"); + ids.put("Bed", "minecraft:bed"); + ids.put("ShulkerBox", "minecraft:shulker_box"); + VANILLA_IDS = Collections.unmodifiableMap(ids); + } + + private LegacyTileEntityIdNormalizer() { + } + + static String normalize(String id) { + String vanilla = VANILLA_IDS.get(id); + if (vanilla != null) { + return vanilla; + } + if (isValid(id)) { + return id; + } + + int separator = id.indexOf(':'); + String namespace = separator >= 0 ? id.substring(0, separator) : "minecraft"; + String path = separator >= 0 ? id.substring(separator + 1) : id; + return sanitize(namespace) + ':' + sanitize(path); + } + + private static boolean isValid(String id) { + if (id == null || id.isEmpty()) { + return false; + } + int separator = id.indexOf(':'); + if (separator != id.lastIndexOf(':')) { + return false; + } + String namespace = separator >= 0 ? id.substring(0, separator) : "minecraft"; + String path = separator >= 0 ? id.substring(separator + 1) : id; + return !namespace.isEmpty() && !path.isEmpty() + && validPart(namespace, false) && validPart(path, true); + } + + private static boolean validPart(String value, boolean path) { + for (int index = 0; index < value.length(); ++index) { + char character = value.charAt(index); + boolean valid = character >= 'a' && character <= 'z' + || character >= '0' && character <= '9' + || character == '_' || character == '-' || character == '.' + || path && character == '/'; + if (!valid) { + return false; + } + } + return true; + } + + private static String sanitize(String value) { + String lower = value == null ? "" : value.toLowerCase(Locale.ROOT); + StringBuilder sanitized = new StringBuilder(lower.length()); + for (int index = 0; index < lower.length(); ++index) { + char character = lower.charAt(index); + boolean valid = character >= 'a' && character <= 'z' + || character >= '0' && character <= '9' + || character == '_' || character == '-' || character == '.' + || character == '/'; + sanitized.append(valid ? character : '_'); + } + return sanitized.length() == 0 ? "unknown" : sanitized.toString(); + } +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java b/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java index b077698b0..618a31627 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java +++ b/src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java @@ -5,22 +5,28 @@ import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Method; +import java.lang.reflect.Field; import java.nio.file.AtomicMoveNotSupportedException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; +import java.util.Arrays; import java.util.BitSet; import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; +import com.mojang.serialization.Dynamic; + +import sun.misc.Unsafe; + import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.blocks.RockFurnace; import zone.moddev.mc.mineralogy.blocks.RockSaltLamp; import zone.moddev.mc.mineralogy.blocks.RockSaltStreetLamp; import zone.moddev.mc.mineralogy.blocks.RockSlab; +import zone.moddev.mc.mineralogy.migration.LegacyMineralogy6ConfigMigrator; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.nbt.CompoundTag; @@ -76,6 +82,8 @@ public static void captureLegacyLevelData(CompoundTag root, Path levelPath) { } public static void onServerAboutToStart(ServerAboutToStartEvent event) { + LegacyMineralogy6ConfigMigrator.migrateWorldProfile( + event.getServer().getWorldPath(LevelResource.ROOT), LOGGER); File levelDat = event.getServer().getWorldPath(LevelResource.LEVEL_DATA_FILE).toFile(); prepareLegacyWorld(levelDat); } @@ -261,6 +269,7 @@ private static int installLegacyBlockStates(CompoundTag blockSnapshot) { LEGACY_ROCK_FURNACE_BLOCK_IDS.clear(); Map mineralogyIds = new HashMap<>(); ListTag savedIds = blockSnapshot.getList("ids", 10); + int highestStateId = 0; for (int index = 0; index < savedIds.size(); ++index) { CompoundTag savedId = savedIds.getCompound(index); String key = savedId.getString("K"); @@ -270,8 +279,9 @@ private static int installLegacyBlockStates(CompoundTag blockSnapshot) { ResourceLocation id = new ResourceLocation(key); int numericId = savedId.getInt("V"); mineralogyIds.put(id, numericId); + highestStateId = Math.max(highestStateId, (numericId << 4) | 15); } - Method addEntry = findStateRegistrationMethod(); + Dynamic[] legacyStates = expandFlatteningTable(highestStateId + 1); int mapped = 0; for (Map.Entry entry : mineralogyIds.entrySet()) { ResourceLocation oldId = entry.getKey(); @@ -282,17 +292,56 @@ private static int installLegacyBlockStates(CompoundTag blockSnapshot) { } for (int meta = 0; meta < 16; ++meta) { String stateNbt = NbtUtils.writeBlockState(legacyState(block, meta)).toString(); - try { - addEntry.invoke(null, (entry.getValue() << 4) | meta, stateNbt, new String[0]); - } catch (ReflectiveOperationException e) { - throw new IllegalStateException("Could not register legacy block state " + oldId + ":" + meta, e); - } + int stateId = (entry.getValue() << 4) | meta; + // The private vanilla register method may retain a JIT-compiled reference to + // its original final 4,096-entry array. Write the expanded array directly; + // Mineralogy has no legacy aliases that need its auxiliary name maps. + legacyStates[stateId] = BlockStateData.parse(stateNbt); ++mapped; } } return mapped; } + /** + * Minecraft 1.18 still fixes the pre-flattening state table at 4,096 entries, + * while Forge 1.12 worlds commonly assign mod blocks higher numeric IDs. + * Replace that exact static-final array before writing any recovered states. + */ + private static Dynamic[] expandFlatteningTable(int requiredLength) { + try { + Unsafe unsafe = unsafe(); + for (Field field : BlockStateData.class.getDeclaredFields()) { + Class type = field.getType(); + if (!java.lang.reflect.Modifier.isStatic(field.getModifiers()) || !type.isArray() + || type.getComponentType() != Dynamic.class) { + continue; + } + Object base = unsafe.staticFieldBase(field); + long offset = unsafe.staticFieldOffset(field); + Dynamic[] current = (Dynamic[]) unsafe.getObject(base, offset); + if (current == null || current.length < 4096) { + continue; + } + if (current.length >= requiredLength) { + return current; + } + Dynamic[] expanded = Arrays.copyOf(current, requiredLength); + unsafe.putObjectVolatile(base, offset, expanded); + return expanded; + } + } catch (ReflectiveOperationException e) { + throw new IllegalStateException("Could not access Minecraft's legacy block-state flattening table", e); + } + throw new IllegalStateException("Could not locate Minecraft's legacy block-state flattening table"); + } + + private static Unsafe unsafe() throws ReflectiveOperationException { + Field field = Unsafe.class.getDeclaredField("theUnsafe"); + field.setAccessible(true); + return (Unsafe) field.get(null); + } + private static boolean containsLegacyMineralogyBlock(CompoundTag level) { ListTag sections = level.getList("Sections", 10); for (int sectionIndex = 0; sectionIndex < sections.size(); ++sectionIndex) { @@ -407,14 +456,4 @@ private static Direction legacyLampFacing(int meta) { } } - private static Method findStateRegistrationMethod() { - for (Method method : BlockStateData.class.getDeclaredMethods()) { - Class[] parameters = method.getParameterTypes(); - if (parameters.length == 3 && parameters[0] == int.class - && parameters[1] == String.class && parameters[2] == String[].class) { - return method; - } - } - throw new IllegalStateException("Could not find Minecraft's legacy block-state registration method"); - } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java b/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java index ebaad8d17..3108747a1 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java +++ b/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java @@ -5,6 +5,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Item; +import net.minecraft.sounds.SoundEvent; import net.minecraft.resources.ResourceLocation; import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; @@ -15,7 +16,7 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -@Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) +@Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE) public final class PatchHandler { private static final Logger LOGGER = LogManager.getLogger(); @@ -23,6 +24,10 @@ public final class PatchHandler { private static final ResourceLocation PUMMICE = mineralogyId("pummice"); private static final ResourceLocation LIMESTONE = mineralogyId("limestone"); private static final ResourceLocation PUMICE = mineralogyId("pumice"); + private static final ResourceLocation GRASS_PATH = minecraftId("grass_path"); + private static final ResourceLocation DIRT_PATH = minecraftId("dirt_path"); + private static final ResourceLocation SWEET_BERRIES_PICK = minecraftId("item.sweet_berries.pick_from_bush"); + private static final ResourceLocation SWEET_BERRY_BUSH_PICK = minecraftId("block.sweet_berry_bush.pick_berries"); private PatchHandler() { throw new IllegalAccessError("Not an instantiable class"); @@ -36,6 +41,7 @@ public static void remapMissingBlocks(RegistryEvent.MissingMappings event remapMissing(event, SAPROLITE, ForgeRegistries.BLOCKS.getValue(LIMESTONE)); remapMissing(event, PUMMICE, ForgeRegistries.BLOCKS.getValue(PUMICE)); + remapMissing(event, GRASS_PATH, ForgeRegistries.BLOCKS.getValue(DIRT_PATH)); } @SubscribeEvent @@ -46,21 +52,31 @@ public static void remapMissingItems(RegistryEvent.MissingMappings event) remapMissing(event, SAPROLITE, ForgeRegistries.ITEMS.getValue(LIMESTONE)); remapMissing(event, PUMMICE, ForgeRegistries.ITEMS.getValue(PUMICE)); + remapMissing(event, GRASS_PATH, ForgeRegistries.ITEMS.getValue(DIRT_PATH)); + } + + @SubscribeEvent + public static void remapMissingSounds(RegistryEvent.MissingMappings event) { + if (!MineralogyConfig.patchUpdate()) { + return; + } + + remapMissing(event, SWEET_BERRIES_PICK, ForgeRegistries.SOUND_EVENTS.getValue(SWEET_BERRY_BUSH_PICK)); } private static > void remapMissing(RegistryEvent.MissingMappings event, ResourceLocation oldId, T replacement) { - for (RegistryEvent.MissingMappings.Mapping mapping : event.getMappings()) { + for (RegistryEvent.MissingMappings.Mapping mapping : event.getAllMappings()) { if (!oldId.equals(mapping.key)) { continue; } if (replacement != null) { mapping.remap(replacement); - LOGGER.info("Remapped legacy Mineralogy id '{}' to '{}'", oldId, replacement.getRegistryName()); + LOGGER.info("Remapped legacy registry id '{}' to '{}'", oldId, replacement.getRegistryName()); } else { mapping.warn(); - LOGGER.warn("Could not remap legacy Mineralogy id '{}' because the replacement is not registered", oldId); + LOGGER.warn("Could not remap legacy registry id '{}' because the replacement is not registered", oldId); } } } @@ -68,4 +84,8 @@ private static > void remapMissing(RegistryEven private static ResourceLocation mineralogyId(String path) { return new ResourceLocation(Mineralogy.MODID, path); } + + private static ResourceLocation minecraftId(String path) { + return new ResourceLocation("minecraft", path); + } } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index e64022db4..9bcd12187 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -1,71 +1,37 @@ -# This is an example mods.toml file. It contains the data relating to the loading mods. -# There are several mandatory fields (#mandatory), and many more that are optional (#optional). -# The overall format is standard TOML format, v0.5.0. -# Note that there are a couple of TOML lists in this file. -# Find more information on toml format here: https://github.com/toml-lang/toml -# The name of the mod loader type to load - for regular FML @Mod mods it should be javafml -modLoader="javafml" #mandatory -# A version range to match for said mod loader - for regular FML @Mod it will be the forge version -loaderVersion="[40,)" #mandatory This is typically bumped every Minecraft version by Forge. See our download page for lists of versions. -# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties. -# Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here. +modLoader="javafml" +loaderVersion="[40,)" license="LGPL-2.1" -# A URL to refer people to when problems occur with this mod -issueTrackerURL="https://github.com/SkyBlade1978/MinecraftMineralogy/issues" #optional -# A list of mods - how many allowed here is determined by the individual mod loader -[[mods]] #mandatory -# The modid of the mod -modId="mineralogy" #mandatory -# The version number of the mod -version="${file.jarVersion}" #mandatory -# A display name for the mod -displayName="Minecraft Mineralogy" #mandatory -# A URL to query for updates for this mod. See the JSON update specification https://docs.minecraftforge.net/en/latest/misc/updatechecker/ -#updateJSONURL="https://change.me.example.invalid/updates.json" #optional -# A URL for the "homepage" for this mod, displayed in the mod UI -displayURL="https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy" #optional -# A file name (in the root of the mod JAR) containing a logo for display -#logoFile="examplemod.png" #optional -# A text field displayed in the mod UI -credits="Cyanobacterium, SkyBlade1978, JRIwanek, FoxNekitsune, Proxy, the MMD Team, Forge, FML, and the mod authors" #optional -# A text field displayed in the mod UI -authors="Cyanobacterium, SkyBlade1978, JRIwanek" #optional -# Display Test controls the display for your mod in the server connection screen -# MATCH_VERSION means that your mod will cause a red X if the versions on client and server differ. This is the default behaviour and should be what you choose if you have server and client elements to your mod. -# IGNORE_SERVER_VERSION means that your mod will not cause a red X if it's present on the server but not on the client. This is what you should use if you're a server only mod. -# IGNORE_ALL_VERSION means that your mod will not cause a red X if it's present on the client or the server. This is a special case and should only be used if your mod has no server component. -# NONE means that no display test is set on your mod. You need to do this yourself, see IExtensionPoint.DisplayTest for more information. You can define any scheme you wish with this value. -# IMPORTANT NOTE: this is NOT an instruction as to which environments (CLIENT or DEDICATED SERVER) your mod loads on. Your mod should load (and maybe do nothing!) whereever it finds itself. -#displayTest="MATCH_VERSION" # MATCH_VERSION is the default if nothing is specified (#optional) +issueTrackerURL="https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy/issues" +displayURL="https://www.curseforge.com/minecraft/mc-mods/minecraft-mineralogy" +logoFile="" +credits="Cyanobacterium, SkyBlade1978, JRIwanek, FoxNekitsune, Proxy, the MMD Team, Forge, FML, and the mod authors" +authors="Cyanobacterium, SkyBlade1978, JRIwanek" + +[[mods]] +modId="mineralogy" +version="${version}" +displayName="Minecraft Mineralogy" +description=''' +Fills the world with real-world rocks. +''' + +[[dependencies.mineralogy]] + modId="forge" + mandatory=true + versionRange="[40.3.0,41)" + ordering="NONE" + side="BOTH" -# The description text for the mod (multi line!) (#mandatory) -description='''Adds real-world rocks, matching building blocks, furnaces, ores, and geological content. OreSpawn places Mineralogy's configured strata and deposits.''' [[dependencies.mineralogy]] -modId="orespawn" -mandatory=true -versionRange="[4.0.0,5.0.0)" -ordering="AFTER" -side="BOTH" + modId="orespawn" + mandatory=true + versionRange="[4.0.6,5.0.0)" + ordering="AFTER" + side="BOTH" -# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. -[[dependencies.mineralogy]] #optional -# the modid of the dependency -modId="forge" #mandatory -# Does this dependency have to exist - if not, ordering below must be specified -mandatory=true #mandatory -# The version range of the dependency -versionRange="[40,)" #mandatory -# An ordering relationship for the dependency - BEFORE or AFTER required if the dependency is not mandatory -# BEFORE - This mod is loaded BEFORE the dependency -# AFTER - This mod is loaded AFTER the dependency -ordering="NONE" -# Side this dependency is applied on - BOTH, CLIENT, or SERVER -side="BOTH" -# Here's another dependency [[dependencies.mineralogy]] -modId="minecraft" -mandatory=true -# This version range declares a minimum of the current minecraft version up to but not including the next major version -versionRange="[1.18.2,1.19)" -ordering="NONE" -side="BOTH" + modId="minecraft" + mandatory=true + versionRange="[1.18.2]" + ordering="NONE" + side="BOTH" diff --git a/src/main/resources/assets/mineralogy/lang/de_au.json b/src/main/resources/assets/mineralogy/lang/de_au.json index 2928e5a1c..09373688a 100644 --- a/src/main/resources/assets/mineralogy/lang/de_au.json +++ b/src/main/resources/assets/mineralogy/lang/de_au.json @@ -1,202 +1,202 @@ { "block.mineralogy.andesite": "Andesit", - "block.mineralogy.andesite_stairs": "Andesit-Treppe", - "block.mineralogy.andesite_slab": "Andesit-Platte", - "block.mineralogy.andesite_brick": "Andesit-Ziegelstein", - "block.mineralogy.andesite_brick_stairs": "Andesit-Ziegelstein-Treppe", - "block.mineralogy.andesite_brick_slab": "Andesit-Ziegelsteinplatte", - "block.mineralogy.andesite_smooth": "Polierter Andesit", - "block.mineralogy.andesite_smooth_stairs": "Polierte Andesit-Treppe", - "block.mineralogy.andesite_smooth_slab": "Polierte Andesit-Platte", - "block.mineralogy.andesite_smooth_brick": "Polierter Andesit-Ziegelstein", - "block.mineralogy.andesite_smooth_brick_stairs": "Polierte Andesit-Ziegelstein-Treppe", - "block.mineralogy.andesite_smooth_brick_slab": "Polierte Andesit-Ziegelsteinplatte", + "block.mineralogy.andesite_stairs": "Treppe aus Andesit", + "block.mineralogy.andesite_slab": "Stufe aus Andesit", + "block.mineralogy.andesite_brick": "Ziegel aus Andesit", + "block.mineralogy.andesite_brick_stairs": "Ziegeltreppe aus Andesit", + "block.mineralogy.andesite_brick_slab": "Ziegelstufe aus Andesit", + "block.mineralogy.andesite_smooth": "Polierter Block aus Andesit", + "block.mineralogy.andesite_smooth_stairs": "Polierte Treppe aus Andesit", + "block.mineralogy.andesite_smooth_slab": "Polierte Stufe aus Andesit", + "block.mineralogy.andesite_smooth_brick": "Polierte Ziegel aus Andesit", + "block.mineralogy.andesite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Andesit", + "block.mineralogy.andesite_smooth_brick_slab": "Polierte Ziegelstufe aus Andesit", "block.mineralogy.basalt": "Basalt", - "block.mineralogy.basalt_stairs": "Basalt Treppen", - "block.mineralogy.basalt_slab": "Basaltplatte", - "block.mineralogy.basalt_brick": "Basaltstein", - "block.mineralogy.basalt_brick_stairs": "Basaltstein Treppen", - "block.mineralogy.basalt_brick_slab": "Basaltstein Platte", - "block.mineralogy.basalt_smooth": "Polierter Basalt", - "block.mineralogy.basalt_smooth_stairs": "Polierte Basalt Treppen", - "block.mineralogy.basalt_smooth_slab": "Polierte Basaltplatte", - "block.mineralogy.basalt_smooth_brick": "Polierter Basaltstein", - "block.mineralogy.basalt_smooth_brick_stairs": "Polierter Basaltstein-Treppen", - "block.mineralogy.basalt_smooth_brick_slab": "Polierter Basaltstein-Platte", + "block.mineralogy.basalt_stairs": "Treppe aus Basalt", + "block.mineralogy.basalt_slab": "Stufe aus Basalt", + "block.mineralogy.basalt_brick": "Ziegel aus Basalt", + "block.mineralogy.basalt_brick_stairs": "Ziegeltreppe aus Basalt", + "block.mineralogy.basalt_brick_slab": "Ziegelstufe aus Basalt", + "block.mineralogy.basalt_smooth": "Polierter Block aus Basalt", + "block.mineralogy.basalt_smooth_stairs": "Polierte Treppe aus Basalt", + "block.mineralogy.basalt_smooth_slab": "Polierte Stufe aus Basalt", + "block.mineralogy.basalt_smooth_brick": "Polierte Ziegel aus Basalt", + "block.mineralogy.basalt_smooth_brick_stairs": "Polierte Ziegeltreppe aus Basalt", + "block.mineralogy.basalt_smooth_brick_slab": "Polierte Ziegelstufe aus Basalt", "block.mineralogy.diorite": "Diorit", - "block.mineralogy.diorite_stairs": "Diorite Treppen", - "block.mineralogy.diorite_slab": "Dioritplatte", - "block.mineralogy.diorite_brick": "Dioritstein", - "block.mineralogy.diorite_brick_stairs": "Dioritstein Treppen", - "block.mineralogy.diorite_brick_slab": "Dioritstein Platte", - "block.mineralogy.diorite_smooth": "Polierter Diorit", - "block.mineralogy.diorite_smooth_stairs": "Polierte Diorit-Treppe", - "block.mineralogy.diorite_smooth_slab": "Polierte Dioritplatte", - "block.mineralogy.diorite_smooth_brick": "Polierter Diorit-Ziegelstein", - "block.mineralogy.diorite_smooth_brick_stairs": "Polierte Dioritstein-Treppe", - "block.mineralogy.diorite_smooth_brick_slab": "Polierte Dioritstein-Platte", + "block.mineralogy.diorite_stairs": "Treppe aus Diorit", + "block.mineralogy.diorite_slab": "Stufe aus Diorit", + "block.mineralogy.diorite_brick": "Ziegel aus Diorit", + "block.mineralogy.diorite_brick_stairs": "Ziegeltreppe aus Diorit", + "block.mineralogy.diorite_brick_slab": "Ziegelstufe aus Diorit", + "block.mineralogy.diorite_smooth": "Polierter Block aus Diorit", + "block.mineralogy.diorite_smooth_stairs": "Polierte Treppe aus Diorit", + "block.mineralogy.diorite_smooth_slab": "Polierte Stufe aus Diorit", + "block.mineralogy.diorite_smooth_brick": "Polierte Ziegel aus Diorit", + "block.mineralogy.diorite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Diorit", + "block.mineralogy.diorite_smooth_brick_slab": "Polierte Ziegelstufe aus Diorit", "block.mineralogy.granite": "Granit", - "block.mineralogy.granite_stairs": "Granit Treppe", - "block.mineralogy.granite_slab": "Granitplatte", - "block.mineralogy.granite_brick": "Granitstein", - "block.mineralogy.granite_brick_stairs": "Granitstein-Treppen", - "block.mineralogy.granite_brick_slab": "Granitstein-Platte", - "block.mineralogy.granite_smooth": "Polierter Granit", - "block.mineralogy.granite_smooth_stairs": "Polierte Granittreppe", - "block.mineralogy.granite_smooth_slab": "Polierte Granitplatte", - "block.mineralogy.granite_smooth_brick": "Polierter Granitstein", - "block.mineralogy.granite_smooth_brick_stairs": "Polierter Granitstein-Treppen", - "block.mineralogy.granite_smooth_brick_slab": "Polierter Granitstein-Platte", + "block.mineralogy.granite_stairs": "Treppe aus Granit", + "block.mineralogy.granite_slab": "Stufe aus Granit", + "block.mineralogy.granite_brick": "Ziegel aus Granit", + "block.mineralogy.granite_brick_stairs": "Ziegeltreppe aus Granit", + "block.mineralogy.granite_brick_slab": "Ziegelstufe aus Granit", + "block.mineralogy.granite_smooth": "Polierter Block aus Granit", + "block.mineralogy.granite_smooth_stairs": "Polierte Treppe aus Granit", + "block.mineralogy.granite_smooth_slab": "Polierte Stufe aus Granit", + "block.mineralogy.granite_smooth_brick": "Polierte Ziegel aus Granit", + "block.mineralogy.granite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Granit", + "block.mineralogy.granite_smooth_brick_slab": "Polierte Ziegelstufe aus Granit", "block.mineralogy.rhyolite": "Rhyolith", - "block.mineralogy.rhyolite_stairs": "Rhyolith Treppen", - "block.mineralogy.rhyolite_slab": "Rhyolithplatte", - "block.mineralogy.rhyolite_brick": "Rhyolith-Ziegelstein", - "block.mineralogy.rhyolite_brick_stairs": "Rhyolith-Ziegelstein-Treppen", - "block.mineralogy.rhyolite_brick_slab": "Rhyolith-Ziegelstein-Platte", - "block.mineralogy.rhyolite_smooth": "Polierter Rhyolith", - "block.mineralogy.rhyolite_smooth_stairs": "Polierte Rhyolith Treppen", - "block.mineralogy.rhyolite_smooth_slab": "Polierte Rhyolithplatte", - "block.mineralogy.rhyolite_smooth_brick": "Polierter Rhyolith-Ziegelstein", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Polierte Rhyolith-Ziegelstein-Treppe", - "block.mineralogy.rhyolite_smooth_brick_slab": "Polierte Rhyolith-Ziegelstein-Platte", + "block.mineralogy.rhyolite_stairs": "Treppe aus Rhyolith", + "block.mineralogy.rhyolite_slab": "Stufe aus Rhyolith", + "block.mineralogy.rhyolite_brick": "Ziegel aus Rhyolith", + "block.mineralogy.rhyolite_brick_stairs": "Ziegeltreppe aus Rhyolith", + "block.mineralogy.rhyolite_brick_slab": "Ziegelstufe aus Rhyolith", + "block.mineralogy.rhyolite_smooth": "Polierter Block aus Rhyolith", + "block.mineralogy.rhyolite_smooth_stairs": "Polierte Treppe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_slab": "Polierte Stufe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick": "Polierte Ziegel aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_slab": "Polierte Ziegelstufe aus Rhyolith", "block.mineralogy.pegmatite": "Pegmatit", - "block.mineralogy.pegmatite_stairs": "Pegmatite-Treppen", - "block.mineralogy.pegmatite_slab": "Pegmatite-Platte", - "block.mineralogy.pegmatite_brick": "Pegmatit-Ziegelstein", - "block.mineralogy.pegmatite_brick_stairs": "Pegmatite-Ziegelstein-Treppe", - "block.mineralogy.pegmatite_brick_slab": "Pegmatite Ziegelsteinplatte", - "block.mineralogy.pegmatite_smooth": "Polierter Pegmatit", - "block.mineralogy.pegmatite_smooth_stairs": "Polierte Pegmatite Treppen", - "block.mineralogy.pegmatite_smooth_slab": "Polierte Pegmatite Platte", - "block.mineralogy.pegmatite_smooth_brick": "Polierter Pegmatit-Ziegelstein", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Polierte Pegmatite-Ziegelstein-Treppe", - "block.mineralogy.pegmatite_smooth_brick_slab": "Polierte Pegmatite Ziegelsteinplatte", - "block.mineralogy.shale": "Schiefer", - "block.mineralogy.shale_stairs": "Schiefer Treppen", - "block.mineralogy.shale_slab": "Schieferplatte", - "block.mineralogy.shale_brick": "Schiefer-Ziegelstein", - "block.mineralogy.shale_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.shale_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.shale_smooth": "Polierter Schiefer", - "block.mineralogy.shale_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.shale_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.shale_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.shale_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.shale_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", + "block.mineralogy.pegmatite_stairs": "Treppe aus Pegmatit", + "block.mineralogy.pegmatite_slab": "Stufe aus Pegmatit", + "block.mineralogy.pegmatite_brick": "Ziegel aus Pegmatit", + "block.mineralogy.pegmatite_brick_stairs": "Ziegeltreppe aus Pegmatit", + "block.mineralogy.pegmatite_brick_slab": "Ziegelstufe aus Pegmatit", + "block.mineralogy.pegmatite_smooth": "Polierter Block aus Pegmatit", + "block.mineralogy.pegmatite_smooth_stairs": "Polierte Treppe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_slab": "Polierte Stufe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick": "Polierte Ziegel aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_slab": "Polierte Ziegelstufe aus Pegmatit", + "block.mineralogy.shale": "Tonschiefer", + "block.mineralogy.shale_stairs": "Treppe aus Tonschiefer", + "block.mineralogy.shale_slab": "Stufe aus Tonschiefer", + "block.mineralogy.shale_brick": "Ziegel aus Tonschiefer", + "block.mineralogy.shale_brick_stairs": "Ziegeltreppe aus Tonschiefer", + "block.mineralogy.shale_brick_slab": "Ziegelstufe aus Tonschiefer", + "block.mineralogy.shale_smooth": "Polierter Block aus Tonschiefer", + "block.mineralogy.shale_smooth_stairs": "Polierte Treppe aus Tonschiefer", + "block.mineralogy.shale_smooth_slab": "Polierte Stufe aus Tonschiefer", + "block.mineralogy.shale_smooth_brick": "Polierte Ziegel aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_stairs": "Polierte Ziegeltreppe aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_slab": "Polierte Ziegelstufe aus Tonschiefer", "block.mineralogy.conglomerate": "Konglomerat", - "block.mineralogy.conglomerate_stairs": "Konglomerat Treppen", - "block.mineralogy.conglomerate_slab": "Konglomeratplatte", - "block.mineralogy.conglomerate_brick": "Konglomerat-Ziegelstein", - "block.mineralogy.conglomerate_brick_stairs": "Konglomerat-Ziegelstein-Treppe", - "block.mineralogy.conglomerate_brick_slab": "Konglomerat-Ziegelstein-Platte", - "block.mineralogy.conglomerate_smooth": "Poliertes Konglomerat", - "block.mineralogy.conglomerate_smooth_stairs": "Polierte Konglomerat Treppen", - "block.mineralogy.conglomerate_smooth_slab": "Polierte Konglomeratplatte", - "block.mineralogy.conglomerate_smooth_brick": "Polierter Konglomerat-Ziegelstein", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Polierter Konglomerat-Ziegelstein-Treppe", - "block.mineralogy.conglomerate_smooth_brick_slab": "Polierter Konglomerat-Ziegelstein-Platte", + "block.mineralogy.conglomerate_stairs": "Treppe aus Konglomerat", + "block.mineralogy.conglomerate_slab": "Stufe aus Konglomerat", + "block.mineralogy.conglomerate_brick": "Ziegel aus Konglomerat", + "block.mineralogy.conglomerate_brick_stairs": "Ziegeltreppe aus Konglomerat", + "block.mineralogy.conglomerate_brick_slab": "Ziegelstufe aus Konglomerat", + "block.mineralogy.conglomerate_smooth": "Polierter Block aus Konglomerat", + "block.mineralogy.conglomerate_smooth_stairs": "Polierte Treppe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_slab": "Polierte Stufe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick": "Polierte Ziegel aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Polierte Ziegeltreppe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_slab": "Polierte Ziegelstufe aus Konglomerat", "block.mineralogy.dolomite": "Dolomit", - "block.mineralogy.dolomite_stairs": "Dolomit Treppen", - "block.mineralogy.dolomite_slab": "Dolomit-Platte", - "block.mineralogy.dolomite_brick": "Dolomit-Ziegelstein", - "block.mineralogy.dolomite_brick_stairs": "Dolomit-Ziegelstein-Treppe", - "block.mineralogy.dolomite_brick_slab": "Dolomit-Ziegelstein-Platte", - "block.mineralogy.dolomite_smooth": "Polierter Dolomit", - "block.mineralogy.dolomite_smooth_stairs": "Polierte Dolomitentreppe", - "block.mineralogy.dolomite_smooth_slab": "Polierte Dolomitplatte", - "block.mineralogy.dolomite_smooth_brick": "Polierter Dolomitstein", - "block.mineralogy.dolomite_smooth_brick_stairs": "Polierter Dolomit-Ziegelstein-Treppe", - "block.mineralogy.dolomite_smooth_brick_slab": "Polierter Dolomit-Ziegelstein-Platte", + "block.mineralogy.dolomite_stairs": "Treppe aus Dolomit", + "block.mineralogy.dolomite_slab": "Stufe aus Dolomit", + "block.mineralogy.dolomite_brick": "Ziegel aus Dolomit", + "block.mineralogy.dolomite_brick_stairs": "Ziegeltreppe aus Dolomit", + "block.mineralogy.dolomite_brick_slab": "Ziegelstufe aus Dolomit", + "block.mineralogy.dolomite_smooth": "Polierter Block aus Dolomit", + "block.mineralogy.dolomite_smooth_stairs": "Polierte Treppe aus Dolomit", + "block.mineralogy.dolomite_smooth_slab": "Polierte Stufe aus Dolomit", + "block.mineralogy.dolomite_smooth_brick": "Polierte Ziegel aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_slab": "Polierte Ziegelstufe aus Dolomit", "block.mineralogy.limestone": "Kalkstein", - "block.mineralogy.limestone_stairs": "Kalkstein-Treppen", - "block.mineralogy.limestone_slab": "Kalksteinplatte", - "block.mineralogy.limestone_brick": "Kalkstein-Ziegelstein", - "block.mineralogy.limestone_brick_stairs": "Kalkstein-Ziegelstein-Treppe", - "block.mineralogy.limestone_brick_slab": "Kalkstein-Ziegelstein-Platte", - "block.mineralogy.limestone_smooth": "Polierter Kalkstein", - "block.mineralogy.limestone_smooth_stairs": "Polierte Kalksteintreppe", - "block.mineralogy.limestone_smooth_slab": "Polierte Kalksteinplatte", - "block.mineralogy.limestone_smooth_brick": "Polierter Kalkstein-Ziegelstein", - "block.mineralogy.limestone_smooth_brick_stairs": "Polierter Kalkstein-Ziegelstein-Treppe", - "block.mineralogy.limestone_smooth_brick_slab": "Polierter Kalkstein-Ziegelstein-Platte", + "block.mineralogy.limestone_stairs": "Treppe aus Kalkstein", + "block.mineralogy.limestone_slab": "Stufe aus Kalkstein", + "block.mineralogy.limestone_brick": "Ziegel aus Kalkstein", + "block.mineralogy.limestone_brick_stairs": "Ziegeltreppe aus Kalkstein", + "block.mineralogy.limestone_brick_slab": "Ziegelstufe aus Kalkstein", + "block.mineralogy.limestone_smooth": "Polierter Block aus Kalkstein", + "block.mineralogy.limestone_smooth_stairs": "Polierte Treppe aus Kalkstein", + "block.mineralogy.limestone_smooth_slab": "Polierte Stufe aus Kalkstein", + "block.mineralogy.limestone_smooth_brick": "Polierte Ziegel aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_stairs": "Polierte Ziegeltreppe aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_slab": "Polierte Ziegelstufe aus Kalkstein", "block.mineralogy.slate": "Schiefer", - "block.mineralogy.slate_stairs": "Schiefer Treppen", - "block.mineralogy.slate_slab": "Schieferplatte", - "block.mineralogy.slate_brick": "Schiefer-Ziegelstein", - "block.mineralogy.slate_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.slate_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.slate_smooth": "Polierter Schiefer", - "block.mineralogy.slate_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.slate_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.slate_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.slate_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.slate_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", - "block.mineralogy.schist": "Schiefer", - "block.mineralogy.schist_stairs": "Schiefer Treppen", - "block.mineralogy.schist_slab": "Schieferplatte", - "block.mineralogy.schist_brick": "Schiefer-Ziegelstein", - "block.mineralogy.schist_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.schist_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.schist_smooth": "Polierter Schiefer", - "block.mineralogy.schist_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.schist_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.schist_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.schist_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.schist_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", + "block.mineralogy.slate_stairs": "Treppe aus Schiefer", + "block.mineralogy.slate_slab": "Stufe aus Schiefer", + "block.mineralogy.slate_brick": "Ziegel aus Schiefer", + "block.mineralogy.slate_brick_stairs": "Ziegeltreppe aus Schiefer", + "block.mineralogy.slate_brick_slab": "Ziegelstufe aus Schiefer", + "block.mineralogy.slate_smooth": "Polierter Block aus Schiefer", + "block.mineralogy.slate_smooth_stairs": "Polierte Treppe aus Schiefer", + "block.mineralogy.slate_smooth_slab": "Polierte Stufe aus Schiefer", + "block.mineralogy.slate_smooth_brick": "Polierte Ziegel aus Schiefer", + "block.mineralogy.slate_smooth_brick_stairs": "Polierte Ziegeltreppe aus Schiefer", + "block.mineralogy.slate_smooth_brick_slab": "Polierte Ziegelstufe aus Schiefer", + "block.mineralogy.schist": "Glimmerschiefer", + "block.mineralogy.schist_stairs": "Treppe aus Glimmerschiefer", + "block.mineralogy.schist_slab": "Stufe aus Glimmerschiefer", + "block.mineralogy.schist_brick": "Ziegel aus Glimmerschiefer", + "block.mineralogy.schist_brick_stairs": "Ziegeltreppe aus Glimmerschiefer", + "block.mineralogy.schist_brick_slab": "Ziegelstufe aus Glimmerschiefer", + "block.mineralogy.schist_smooth": "Polierter Block aus Glimmerschiefer", + "block.mineralogy.schist_smooth_stairs": "Polierte Treppe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_slab": "Polierte Stufe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick": "Polierte Ziegel aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_stairs": "Polierte Ziegeltreppe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_slab": "Polierte Ziegelstufe aus Glimmerschiefer", "block.mineralogy.gneiss": "Gneis", - "block.mineralogy.gneiss_stairs": "Gneistreppe", - "block.mineralogy.gneiss_slab": "Gneisplatte", - "block.mineralogy.gneiss_brick": "Gneis Ziegel", - "block.mineralogy.gneiss_brick_stairs": "Gneis Ziegeltreppen", - "block.mineralogy.gneiss_brick_slab": "Gneissteinplatte", - "block.mineralogy.gneiss_smooth": "Polierter Gneis", - "block.mineralogy.gneiss_smooth_stairs": "Polierte Gneistreppe", - "block.mineralogy.gneiss_smooth_slab": "Polierte Gneisplatte", - "block.mineralogy.gneiss_smooth_brick": "Polierter Gneisstein", - "block.mineralogy.gneiss_smooth_brick_stairs": "Polierte Gneisziegeltreppen", - "block.mineralogy.gneiss_smooth_brick_slab": "Polierte Gneissteinplatte", + "block.mineralogy.gneiss_stairs": "Treppe aus Gneis", + "block.mineralogy.gneiss_slab": "Stufe aus Gneis", + "block.mineralogy.gneiss_brick": "Ziegel aus Gneis", + "block.mineralogy.gneiss_brick_stairs": "Ziegeltreppe aus Gneis", + "block.mineralogy.gneiss_brick_slab": "Ziegelstufe aus Gneis", + "block.mineralogy.gneiss_smooth": "Polierter Block aus Gneis", + "block.mineralogy.gneiss_smooth_stairs": "Polierte Treppe aus Gneis", + "block.mineralogy.gneiss_smooth_slab": "Polierte Stufe aus Gneis", + "block.mineralogy.gneiss_smooth_brick": "Polierte Ziegel aus Gneis", + "block.mineralogy.gneiss_smooth_brick_stairs": "Polierte Ziegeltreppe aus Gneis", + "block.mineralogy.gneiss_smooth_brick_slab": "Polierte Ziegelstufe aus Gneis", "block.mineralogy.marble": "Marmor", - "block.mineralogy.marble_stairs": "Marmortreppe", - "block.mineralogy.marble_slab": "Marmorplatte", - "block.mineralogy.marble_brick": "Marmor Backstein", - "block.mineralogy.marble_brick_stairs": "Marmor Backstein Treppe", - "block.mineralogy.marble_brick_slab": "Marmor Ziegelplatte", - "block.mineralogy.marble_smooth": "Polierter Marmor", - "block.mineralogy.marble_smooth_stairs": "Polierte Marmortreppe", - "block.mineralogy.marble_smooth_slab": "Polierte Marmorplatte", - "block.mineralogy.marble_smooth_brick": "Polierter Marmor Ziegelstein", - "block.mineralogy.marble_smooth_brick_stairs": "Polierte Marmor Ziegelstein Treppen", - "block.mineralogy.marble_smooth_brick_slab": "Polierte Marmor Ziegelstein Platte", + "block.mineralogy.marble_stairs": "Treppe aus Marmor", + "block.mineralogy.marble_slab": "Stufe aus Marmor", + "block.mineralogy.marble_brick": "Ziegel aus Marmor", + "block.mineralogy.marble_brick_stairs": "Ziegeltreppe aus Marmor", + "block.mineralogy.marble_brick_slab": "Ziegelstufe aus Marmor", + "block.mineralogy.marble_smooth": "Polierter Block aus Marmor", + "block.mineralogy.marble_smooth_stairs": "Polierte Treppe aus Marmor", + "block.mineralogy.marble_smooth_slab": "Polierte Stufe aus Marmor", + "block.mineralogy.marble_smooth_brick": "Polierte Ziegel aus Marmor", + "block.mineralogy.marble_smooth_brick_stairs": "Polierte Ziegeltreppe aus Marmor", + "block.mineralogy.marble_smooth_brick_slab": "Polierte Ziegelstufe aus Marmor", "block.mineralogy.phyllite": "Phyllit", - "block.mineralogy.phyllite_stairs": "Phyllit Treppen", - "block.mineralogy.phyllite_slab": "Phyllitplatte", - "block.mineralogy.phyllite_brick": "Phyllitstein", - "block.mineralogy.phyllite_brick_stairs": "Phyllite-Ziegelstein-Treppen", - "block.mineralogy.phyllite_brick_slab": "Phyllite-Ziegelstein-Platte", - "block.mineralogy.phyllite_smooth": "Polierter Phyllit", - "block.mineralogy.phyllite_smooth_stairs": "Polierte Phyllit Treppen", - "block.mineralogy.phyllite_smooth_slab": "Polierte Phyllitplatte", - "block.mineralogy.phyllite_smooth_brick": "Polierter Phyllit-Stein", - "block.mineralogy.phyllite_smooth_brick_stairs": "Polierte Phyllit-Ziegelstein-Treppe", - "block.mineralogy.phyllite_smooth_brick_slab": "Polierte Phyllit-Ziegelsteinplatte", + "block.mineralogy.phyllite_stairs": "Treppe aus Phyllit", + "block.mineralogy.phyllite_slab": "Stufe aus Phyllit", + "block.mineralogy.phyllite_brick": "Ziegel aus Phyllit", + "block.mineralogy.phyllite_brick_stairs": "Ziegeltreppe aus Phyllit", + "block.mineralogy.phyllite_brick_slab": "Ziegelstufe aus Phyllit", + "block.mineralogy.phyllite_smooth": "Polierter Block aus Phyllit", + "block.mineralogy.phyllite_smooth_stairs": "Polierte Treppe aus Phyllit", + "block.mineralogy.phyllite_smooth_slab": "Polierte Stufe aus Phyllit", + "block.mineralogy.phyllite_smooth_brick": "Polierte Ziegel aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_slab": "Polierte Ziegelstufe aus Phyllit", "block.mineralogy.amphibolite": "Amphibolit", - "block.mineralogy.amphibolite_stairs": "Amphibolit Treppen", - "block.mineralogy.amphibolite_slab": "Amphibolit-Platte", - "block.mineralogy.amphibolite_brick": "Amphibolitstein", - "block.mineralogy.amphibolite_brick_stairs": "Amphibolit-Ziegelstein-Treppe", - "block.mineralogy.amphibolite_brick_slab": "Amphibolit-Ziegelstein-Platte", - "block.mineralogy.amphibolite_smooth": "Polierter Amphibolit", - "block.mineralogy.amphibolite_smooth_stairs": "Polierte Amphibolit Treppen", - "block.mineralogy.amphibolite_smooth_slab": "Polierte Amphibolitplatte", - "block.mineralogy.amphibolite_smooth_brick": "Polierter Amphibolit-Stein", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Polierte Amphibolit-Ziegelstein-Treppe", - "block.mineralogy.amphibolite_smooth_brick_slab": "Polierte Amphibolit-Ziegelstein-Platte", - "item.mineralogy.gypsum_dust": "Gips Staub", - "item.mineralogy.sulfur_dust": "Schwefel Staub", - "item.mineralogy.phosphorous_dust": "Phosphor Staub", - "item.mineralogy.nitrate_dust": "Nitrat Staub", + "block.mineralogy.amphibolite_stairs": "Treppe aus Amphibolit", + "block.mineralogy.amphibolite_slab": "Stufe aus Amphibolit", + "block.mineralogy.amphibolite_brick": "Ziegel aus Amphibolit", + "block.mineralogy.amphibolite_brick_stairs": "Ziegeltreppe aus Amphibolit", + "block.mineralogy.amphibolite_brick_slab": "Ziegelstufe aus Amphibolit", + "block.mineralogy.amphibolite_smooth": "Polierter Block aus Amphibolit", + "block.mineralogy.amphibolite_smooth_stairs": "Polierte Treppe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_slab": "Polierte Stufe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick": "Polierte Ziegel aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_slab": "Polierte Ziegelstufe aus Amphibolit", + "item.mineralogy.gypsum_dust": "Gipspulver", + "item.mineralogy.sulfur_dust": "Schwefelpulver", + "item.mineralogy.phosphorous_dust": "Phosphorpulver", + "item.mineralogy.nitrate_dust": "Nitratpulver", "item.mineralogy.mineral_fertilizer": "Mineraldünger", - "block.mineralogy.chert": "Chert", + "block.mineralogy.chert": "Hornstein", "block.mineralogy.gypsum": "Gips", "block.mineralogy.pumice": "Bimsstein", "block.mineralogy.sulfur_block": "Schwefel", @@ -204,737 +204,737 @@ "block.mineralogy.phosphorous_block": "Phosphor", "block.mineralogy.phosphorous_ore": "Phosphorerz", "block.mineralogy.nitrate_block": "Nitrat", - "block.mineralogy.nitrate_ore": "Nitrat-Erz", - "block.mineralogy.drywall_black": "Schwarzer Trockenbau", - "block.mineralogy.drywall_red": "Roter Trockenbau", - "block.mineralogy.drywall_green": "Grüner Trockenbau", - "block.mineralogy.drywall_brown": "Brauner Trockenbau", - "block.mineralogy.drywall_blue": "Blaue Trockenmauer", - "block.mineralogy.drywall_purple": "Lila Trockenbau", - "block.mineralogy.drywall_cyan": "Cyan Trockenbau", - "block.mineralogy.drywall_silver": "Silberner Trockenbau", - "block.mineralogy.drywall_gray": "Graue Trockenmauer", - "block.mineralogy.drywall_pink": "Rosa Trockenbau", - "block.mineralogy.drywall_lime": "Kalk Trockenbau", - "block.mineralogy.drywall_yellow": "Gelber Trockenbau", - "block.mineralogy.drywall_light_blue": "Hellblaue Trockenmauer", - "block.mineralogy.drywall_magenta": "Magenta Trockenbau", - "block.mineralogy.drywall_orange": "Orange Trockenbau", - "block.mineralogy.drywall_white": "Weißer Trockenbau", - "block.mineralogy.andesite_wall": "Andesit-Wand", - "block.mineralogy.andesite_brick_wall": "Andesit-Backsteinmauer", - "block.mineralogy.andesite_smooth_wall": "Andesite polierte Wand", - "block.mineralogy.andesite_smooth_brick_wall": "Andesite polierte Backsteinmauer", - "block.mineralogy.basalt_wall": "Basaltmauer", - "block.mineralogy.basalt_brick_wall": "Basalt-Backsteinmauer", - "block.mineralogy.basalt_smooth_wall": "Basalt polierte Wand", - "block.mineralogy.basalt_smooth_brick_wall": "Basalt polierte Backsteinmauer", - "block.mineralogy.diorite_wall": "Dioritwand", - "block.mineralogy.diorite_brick_wall": "Diorit-Ziegelmauer", - "block.mineralogy.diorite_smooth_wall": "Diorite polierte Wand", - "block.mineralogy.diorite_smooth_brick_wall": "Diorite polierte Backsteinmauer", - "block.mineralogy.granite_wall": "Granitwand", - "block.mineralogy.granite_brick_wall": "Granit-Backsteinmauer", - "block.mineralogy.granite_smooth_wall": "Granit poliert Wand", - "block.mineralogy.granite_smooth_brick_wall": "Granit poliert Ziegelmauer", - "block.mineralogy.rhyolite_wall": "Rhyolithwand", - "block.mineralogy.rhyolite_brick_wall": "Rhyolith-Backsteinmauer", - "block.mineralogy.rhyolite_smooth_wall": "Rhyolith poliert Wand", - "block.mineralogy.rhyolite_smooth_brick_wall": "Rhyolith polierte Backsteinmauer", - "block.mineralogy.pegmatite_wall": "Pegmatitwand", - "block.mineralogy.pegmatite_brick_wall": "Pegmatite-Ziegelmauer", - "block.mineralogy.pegmatite_smooth_wall": "Pegmatite polierte Wand", - "block.mineralogy.pegmatite_smooth_brick_wall": "Pegmatite polierte Backsteinmauer", - "block.mineralogy.shale_wall": "Schieferwand", - "block.mineralogy.shale_brick_wall": "Schiefer Ziegelwand", - "block.mineralogy.shale_smooth_wall": "Schiefer poliert Wand", - "block.mineralogy.shale_smooth_brick_wall": "Schiefer poliert Ziegelmauer", - "block.mineralogy.conglomerate_wall": "Konglomeratwand", - "block.mineralogy.conglomerate_brick_wall": "Konglomerat Ziegelwand", - "block.mineralogy.conglomerate_smooth_wall": "Konglomerat polierte Wand", - "block.mineralogy.conglomerate_smooth_brick_wall": "Konglomerat polierte Backsteinmauer", - "block.mineralogy.dolomite_wall": "Dolomitenwand", - "block.mineralogy.dolomite_brick_wall": "Dolomit-Ziegelmauer", - "block.mineralogy.dolomite_smooth_wall": "Dolomit polierte Wand", - "block.mineralogy.dolomite_smooth_brick_wall": "Dolomit polierte Ziegelmauer", - "block.mineralogy.limestone_wall": "Kalksteinmauer", - "block.mineralogy.limestone_brick_wall": "Kalkstein-Backsteinmauer", - "block.mineralogy.limestone_smooth_wall": "Kalkstein polierte Wand", - "block.mineralogy.limestone_smooth_brick_wall": "Kalkstein poliert Ziegelmauer", - "block.mineralogy.marble_wall": "Marmorwand", - "block.mineralogy.marble_brick_wall": "Marmor Backsteinmauer", - "block.mineralogy.marble_smooth_wall": "Marmor poliert Wand", - "block.mineralogy.marble_smooth_brick_wall": "Marmor poliert Ziegelmauer", - "block.mineralogy.slate_wall": "Schieferwand", - "block.mineralogy.slate_brick_wall": "Schiefer-Backsteinmauer", - "block.mineralogy.slate_smooth_wall": "Schiefer polierte Wand", - "block.mineralogy.slate_smooth_brick_wall": "Schiefer polierte Backsteinmauer", - "block.mineralogy.schist_wall": "Schieferwand", - "block.mineralogy.schist_brick_wall": "Schiefer-Backsteinmauer", - "block.mineralogy.schist_smooth_wall": "Schiefer polierte Wand", - "block.mineralogy.schist_smooth_brick_wall": "Schiefer polierte Backsteinmauer", - "block.mineralogy.gneiss_wall": "Gneismauer", - "block.mineralogy.gneiss_brick_wall": "Gneis-Backsteinmauer", - "block.mineralogy.gneiss_smooth_wall": "Gneis polierte Wand", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneis polierte Backsteinmauer", - "block.mineralogy.phyllite_wall": "Phyllitwand", - "block.mineralogy.phyllite_brick_wall": "Phyllit-Ziegelmauer", - "block.mineralogy.phyllite_smooth_wall": "Phyllite polierte Wand", - "block.mineralogy.phyllite_smooth_brick_wall": "Phyllite polierte Backsteinmauer", - "block.mineralogy.amphibolite_wall": "Amphibolit Wand", - "block.mineralogy.amphibolite_brick_wall": "Amphibolit-Backsteinmauer", - "block.mineralogy.amphibolite_smooth_wall": "Amphibolit poliert Wand", - "block.mineralogy.amphibolite_smooth_brick_wall": "Amphibolite polierte Backsteinmauer", - "block.mineralogy.andesite_furnace": "Andesit-Ofen", - "block.mineralogy.andesite_brick_furnace": "Andesit-Ziegelofen", - "block.mineralogy.andesite_smooth_furnace": "Andesite polierte Ofen", - "block.mineralogy.andesite_smooth_brick_furnace": "Andesite polierte Ziegelofen", - "block.mineralogy.basalt_furnace": "Basaltmauer", - "block.mineralogy.basalt_brick_furnace": "Basalt-Ziegelofen", - "block.mineralogy.basalt_smooth_furnace": "Basalt polierte Ofen", - "block.mineralogy.basalt_smooth_brick_furnace": "Basalt polierte Ziegelofen", - "block.mineralogy.diorite_furnace": "Dioritwand", - "block.mineralogy.diorite_brick_furnace": "Diorit-Ziegelofen", - "block.mineralogy.diorite_smooth_furnace": "Diorite polierte Ofen", - "block.mineralogy.diorite_smooth_brick_furnace": "Diorite polierte Ziegelofen", - "block.mineralogy.granite_furnace": "Granitwand", - "block.mineralogy.granite_brick_furnace": "Granit-Ziegelofen", - "block.mineralogy.granite_smooth_furnace": "Granit poliert Ofen", - "block.mineralogy.granite_smooth_brick_furnace": "Granit poliert Ziegelofen", - "block.mineralogy.rhyolite_furnace": "Rhyolithwand", - "block.mineralogy.rhyolite_brick_furnace": "Rhyolith-Ziegelofen", - "block.mineralogy.rhyolite_smooth_furnace": "Rhyolith poliert Ofen", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Rhyolith polierte Ziegelofen", - "block.mineralogy.pegmatite_furnace": "Pegmatitwand", - "block.mineralogy.pegmatite_brick_furnace": "Pegmatite-Ziegelofen", - "block.mineralogy.pegmatite_smooth_furnace": "Pegmatite polierte Ofen", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Pegmatite polierte Ziegelofen", - "block.mineralogy.shale_furnace": "Schieferwand", - "block.mineralogy.shale_brick_furnace": "Schiefer Ziegelwand", - "block.mineralogy.shale_smooth_furnace": "Schiefer poliert Ofen", - "block.mineralogy.shale_smooth_brick_furnace": "Schiefer poliert Ziegelofen", - "block.mineralogy.conglomerate_furnace": "Konglomeratwand", - "block.mineralogy.conglomerate_brick_furnace": "Konglomerat Ziegelwand", - "block.mineralogy.conglomerate_smooth_furnace": "Konglomerat polierte Ofen", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Konglomerat polierte Ziegelofen", - "block.mineralogy.dolomite_furnace": "Dolomitenwand", - "block.mineralogy.dolomite_brick_furnace": "Dolomit-Ziegelofen", - "block.mineralogy.dolomite_smooth_furnace": "Dolomit polierte Ofen", - "block.mineralogy.dolomite_smooth_brick_furnace": "Dolomit polierte Ziegelofen", - "block.mineralogy.limestone_furnace": "Kalksteinmauer", - "block.mineralogy.limestone_brick_furnace": "Kalkstein-Ziegelofen", - "block.mineralogy.limestone_smooth_furnace": "Kalkstein polierte Ofen", - "block.mineralogy.limestone_smooth_brick_furnace": "Kalkstein poliert Ziegelofen", - "block.mineralogy.marble_furnace": "Marmorwand", - "block.mineralogy.marble_brick_furnace": "Marmor Ziegelofen", - "block.mineralogy.marble_smooth_furnace": "Marmor poliert Ofen", - "block.mineralogy.marble_smooth_brick_furnace": "Marmor poliert Ziegelofen", - "block.mineralogy.slate_furnace": "Schieferwand", - "block.mineralogy.slate_brick_furnace": "Schiefer-Ziegelofen", - "block.mineralogy.slate_smooth_furnace": "Schiefer polierte Ofen", - "block.mineralogy.slate_smooth_brick_furnace": "Schiefer polierte Ziegelofen", - "block.mineralogy.schist_furnace": "Schieferwand", - "block.mineralogy.schist_brick_furnace": "Schiefer-Ziegelofen", - "block.mineralogy.schist_smooth_furnace": "Schiefer polierte Ofen", - "block.mineralogy.schist_smooth_brick_furnace": "Schiefer polierte Ziegelofen", - "block.mineralogy.gneiss_furnace": "Gneismauer", - "block.mineralogy.gneiss_brick_furnace": "Gneis-Ziegelofen", - "block.mineralogy.gneiss_smooth_furnace": "Gneis polierte Ofen", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneis polierte Ziegelofen", - "block.mineralogy.phyllite_furnace": "Phyllitwand", - "block.mineralogy.phyllite_brick_furnace": "Phyllit-Ziegelofen", - "block.mineralogy.phyllite_smooth_furnace": "Phyllite polierte Ofen", - "block.mineralogy.phyllite_smooth_brick_furnace": "Phyllite polierte Ziegelofen", - "block.mineralogy.amphibolite_furnace": "Amphibolit Ofen", - "block.mineralogy.amphibolite_brick_furnace": "Amphibolit-Ziegelofen", - "block.mineralogy.amphibolite_smooth_furnace": "Amphibolit poliert Ofen", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Amphibolite polierte Ziegelofen", + "block.mineralogy.nitrate_ore": "Nitraterz", + "block.mineralogy.drywall_black": "Gipskartonplatte (Schwarz)", + "block.mineralogy.drywall_red": "Gipskartonplatte (Rot)", + "block.mineralogy.drywall_green": "Gipskartonplatte (Grün)", + "block.mineralogy.drywall_brown": "Gipskartonplatte (Braun)", + "block.mineralogy.drywall_blue": "Gipskartonplatte (Blau)", + "block.mineralogy.drywall_purple": "Gipskartonplatte (Violett)", + "block.mineralogy.drywall_cyan": "Gipskartonplatte (Türkis)", + "block.mineralogy.drywall_silver": "Gipskartonplatte (Hellgrau)", + "block.mineralogy.drywall_gray": "Gipskartonplatte (Grau)", + "block.mineralogy.drywall_pink": "Gipskartonplatte (Rosa)", + "block.mineralogy.drywall_lime": "Gipskartonplatte (Hellgrün)", + "block.mineralogy.drywall_yellow": "Gipskartonplatte (Gelb)", + "block.mineralogy.drywall_light_blue": "Gipskartonplatte (Hellblau)", + "block.mineralogy.drywall_magenta": "Gipskartonplatte (Magenta)", + "block.mineralogy.drywall_orange": "Gipskartonplatte (Orange)", + "block.mineralogy.drywall_white": "Gipskartonplatte (Weiß)", + "block.mineralogy.andesite_wall": "Mauer aus Andesit", + "block.mineralogy.andesite_brick_wall": "Ziegelmauer aus Andesit", + "block.mineralogy.andesite_smooth_wall": "Polierte Mauer aus Andesit", + "block.mineralogy.andesite_smooth_brick_wall": "Polierte Ziegelmauer aus Andesit", + "block.mineralogy.basalt_wall": "Mauer aus Basalt", + "block.mineralogy.basalt_brick_wall": "Ziegelmauer aus Basalt", + "block.mineralogy.basalt_smooth_wall": "Polierte Mauer aus Basalt", + "block.mineralogy.basalt_smooth_brick_wall": "Polierte Ziegelmauer aus Basalt", + "block.mineralogy.diorite_wall": "Mauer aus Diorit", + "block.mineralogy.diorite_brick_wall": "Ziegelmauer aus Diorit", + "block.mineralogy.diorite_smooth_wall": "Polierte Mauer aus Diorit", + "block.mineralogy.diorite_smooth_brick_wall": "Polierte Ziegelmauer aus Diorit", + "block.mineralogy.granite_wall": "Mauer aus Granit", + "block.mineralogy.granite_brick_wall": "Ziegelmauer aus Granit", + "block.mineralogy.granite_smooth_wall": "Polierte Mauer aus Granit", + "block.mineralogy.granite_smooth_brick_wall": "Polierte Ziegelmauer aus Granit", + "block.mineralogy.rhyolite_wall": "Mauer aus Rhyolith", + "block.mineralogy.rhyolite_brick_wall": "Ziegelmauer aus Rhyolith", + "block.mineralogy.rhyolite_smooth_wall": "Polierte Mauer aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_wall": "Polierte Ziegelmauer aus Rhyolith", + "block.mineralogy.pegmatite_wall": "Mauer aus Pegmatit", + "block.mineralogy.pegmatite_brick_wall": "Ziegelmauer aus Pegmatit", + "block.mineralogy.pegmatite_smooth_wall": "Polierte Mauer aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_wall": "Polierte Ziegelmauer aus Pegmatit", + "block.mineralogy.shale_wall": "Mauer aus Tonschiefer", + "block.mineralogy.shale_brick_wall": "Ziegelmauer aus Tonschiefer", + "block.mineralogy.shale_smooth_wall": "Polierte Mauer aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_wall": "Polierte Ziegelmauer aus Tonschiefer", + "block.mineralogy.conglomerate_wall": "Mauer aus Konglomerat", + "block.mineralogy.conglomerate_brick_wall": "Ziegelmauer aus Konglomerat", + "block.mineralogy.conglomerate_smooth_wall": "Polierte Mauer aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_wall": "Polierte Ziegelmauer aus Konglomerat", + "block.mineralogy.dolomite_wall": "Mauer aus Dolomit", + "block.mineralogy.dolomite_brick_wall": "Ziegelmauer aus Dolomit", + "block.mineralogy.dolomite_smooth_wall": "Polierte Mauer aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_wall": "Polierte Ziegelmauer aus Dolomit", + "block.mineralogy.limestone_wall": "Mauer aus Kalkstein", + "block.mineralogy.limestone_brick_wall": "Ziegelmauer aus Kalkstein", + "block.mineralogy.limestone_smooth_wall": "Polierte Mauer aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_wall": "Polierte Ziegelmauer aus Kalkstein", + "block.mineralogy.marble_wall": "Mauer aus Marmor", + "block.mineralogy.marble_brick_wall": "Ziegelmauer aus Marmor", + "block.mineralogy.marble_smooth_wall": "Polierte Mauer aus Marmor", + "block.mineralogy.marble_smooth_brick_wall": "Polierte Ziegelmauer aus Marmor", + "block.mineralogy.slate_wall": "Mauer aus Schiefer", + "block.mineralogy.slate_brick_wall": "Ziegelmauer aus Schiefer", + "block.mineralogy.slate_smooth_wall": "Polierte Mauer aus Schiefer", + "block.mineralogy.slate_smooth_brick_wall": "Polierte Ziegelmauer aus Schiefer", + "block.mineralogy.schist_wall": "Mauer aus Glimmerschiefer", + "block.mineralogy.schist_brick_wall": "Ziegelmauer aus Glimmerschiefer", + "block.mineralogy.schist_smooth_wall": "Polierte Mauer aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_wall": "Polierte Ziegelmauer aus Glimmerschiefer", + "block.mineralogy.gneiss_wall": "Mauer aus Gneis", + "block.mineralogy.gneiss_brick_wall": "Ziegelmauer aus Gneis", + "block.mineralogy.gneiss_smooth_wall": "Polierte Mauer aus Gneis", + "block.mineralogy.gneiss_smooth_brick_wall": "Polierte Ziegelmauer aus Gneis", + "block.mineralogy.phyllite_wall": "Mauer aus Phyllit", + "block.mineralogy.phyllite_brick_wall": "Ziegelmauer aus Phyllit", + "block.mineralogy.phyllite_smooth_wall": "Polierte Mauer aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_wall": "Polierte Ziegelmauer aus Phyllit", + "block.mineralogy.amphibolite_wall": "Mauer aus Amphibolit", + "block.mineralogy.amphibolite_brick_wall": "Ziegelmauer aus Amphibolit", + "block.mineralogy.amphibolite_smooth_wall": "Polierte Mauer aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_wall": "Polierte Ziegelmauer aus Amphibolit", + "block.mineralogy.andesite_furnace": "Ofen aus Andesit", + "block.mineralogy.andesite_brick_furnace": "Ziegelofen aus Andesit", + "block.mineralogy.andesite_smooth_furnace": "Polierter Ofen aus Andesit", + "block.mineralogy.andesite_smooth_brick_furnace": "Polierter Ziegelofen aus Andesit", + "block.mineralogy.basalt_furnace": "Ofen aus Basalt", + "block.mineralogy.basalt_brick_furnace": "Ziegelofen aus Basalt", + "block.mineralogy.basalt_smooth_furnace": "Polierter Ofen aus Basalt", + "block.mineralogy.basalt_smooth_brick_furnace": "Polierter Ziegelofen aus Basalt", + "block.mineralogy.diorite_furnace": "Ofen aus Diorit", + "block.mineralogy.diorite_brick_furnace": "Ziegelofen aus Diorit", + "block.mineralogy.diorite_smooth_furnace": "Polierter Ofen aus Diorit", + "block.mineralogy.diorite_smooth_brick_furnace": "Polierter Ziegelofen aus Diorit", + "block.mineralogy.granite_furnace": "Ofen aus Granit", + "block.mineralogy.granite_brick_furnace": "Ziegelofen aus Granit", + "block.mineralogy.granite_smooth_furnace": "Polierter Ofen aus Granit", + "block.mineralogy.granite_smooth_brick_furnace": "Polierter Ziegelofen aus Granit", + "block.mineralogy.rhyolite_furnace": "Ofen aus Rhyolith", + "block.mineralogy.rhyolite_brick_furnace": "Ziegelofen aus Rhyolith", + "block.mineralogy.rhyolite_smooth_furnace": "Polierter Ofen aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Polierter Ziegelofen aus Rhyolith", + "block.mineralogy.pegmatite_furnace": "Ofen aus Pegmatit", + "block.mineralogy.pegmatite_brick_furnace": "Ziegelofen aus Pegmatit", + "block.mineralogy.pegmatite_smooth_furnace": "Polierter Ofen aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Polierter Ziegelofen aus Pegmatit", + "block.mineralogy.shale_furnace": "Ofen aus Tonschiefer", + "block.mineralogy.shale_brick_furnace": "Ziegelofen aus Tonschiefer", + "block.mineralogy.shale_smooth_furnace": "Polierter Ofen aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_furnace": "Polierter Ziegelofen aus Tonschiefer", + "block.mineralogy.conglomerate_furnace": "Ofen aus Konglomerat", + "block.mineralogy.conglomerate_brick_furnace": "Ziegelofen aus Konglomerat", + "block.mineralogy.conglomerate_smooth_furnace": "Polierter Ofen aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Polierter Ziegelofen aus Konglomerat", + "block.mineralogy.dolomite_furnace": "Ofen aus Dolomit", + "block.mineralogy.dolomite_brick_furnace": "Ziegelofen aus Dolomit", + "block.mineralogy.dolomite_smooth_furnace": "Polierter Ofen aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_furnace": "Polierter Ziegelofen aus Dolomit", + "block.mineralogy.limestone_furnace": "Ofen aus Kalkstein", + "block.mineralogy.limestone_brick_furnace": "Ziegelofen aus Kalkstein", + "block.mineralogy.limestone_smooth_furnace": "Polierter Ofen aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_furnace": "Polierter Ziegelofen aus Kalkstein", + "block.mineralogy.marble_furnace": "Ofen aus Marmor", + "block.mineralogy.marble_brick_furnace": "Ziegelofen aus Marmor", + "block.mineralogy.marble_smooth_furnace": "Polierter Ofen aus Marmor", + "block.mineralogy.marble_smooth_brick_furnace": "Polierter Ziegelofen aus Marmor", + "block.mineralogy.slate_furnace": "Ofen aus Schiefer", + "block.mineralogy.slate_brick_furnace": "Ziegelofen aus Schiefer", + "block.mineralogy.slate_smooth_furnace": "Polierter Ofen aus Schiefer", + "block.mineralogy.slate_smooth_brick_furnace": "Polierter Ziegelofen aus Schiefer", + "block.mineralogy.schist_furnace": "Ofen aus Glimmerschiefer", + "block.mineralogy.schist_brick_furnace": "Ziegelofen aus Glimmerschiefer", + "block.mineralogy.schist_smooth_furnace": "Polierter Ofen aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_furnace": "Polierter Ziegelofen aus Glimmerschiefer", + "block.mineralogy.gneiss_furnace": "Ofen aus Gneis", + "block.mineralogy.gneiss_brick_furnace": "Ziegelofen aus Gneis", + "block.mineralogy.gneiss_smooth_furnace": "Polierter Ofen aus Gneis", + "block.mineralogy.gneiss_smooth_brick_furnace": "Polierter Ziegelofen aus Gneis", + "block.mineralogy.phyllite_furnace": "Ofen aus Phyllit", + "block.mineralogy.phyllite_brick_furnace": "Ziegelofen aus Phyllit", + "block.mineralogy.phyllite_smooth_furnace": "Polierter Ofen aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_furnace": "Polierter Ziegelofen aus Phyllit", + "block.mineralogy.amphibolite_furnace": "Ofen aus Amphibolit", + "block.mineralogy.amphibolite_brick_furnace": "Ziegelofen aus Amphibolit", + "block.mineralogy.amphibolite_smooth_furnace": "Polierter Ofen aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Polierter Ziegelofen aus Amphibolit", "block.mineralogy.diabase": "Diabas", - "block.mineralogy.diabase_stairs": "Diabas Treppe", - "block.mineralogy.diabase_slab": "Diabas Platte", - "block.mineralogy.diabase_brick": "Diabas Backstein", - "block.mineralogy.diabase_brick_stairs": "Diabas Ziegelsteintreppen", - "block.mineralogy.diabase_brick_slab": "Diabas Ziegelplatte", - "block.mineralogy.diabase_smooth": "Polished Diabas", - "block.mineralogy.diabase_smooth_stairs": "Diabas Polierte Treppe", - "block.mineralogy.diabase_smooth_slab": "Diabas Polierte Platte", - "block.mineralogy.diabase_smooth_brick": "Diabas Polierter Ziegelstein", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabas Polierte Ziegelsteintreppen", - "block.mineralogy.diabase_smooth_brick_slab": "Diabas Polierte Ziegelplatte", - "block.mineralogy.diabase_wall": "Diabas Wand", - "block.mineralogy.diabase_brick_wall": "Diabas Ziegelwand", - "block.mineralogy.diabase_smooth_wall": "Diabas Polierte Wand", - "block.mineralogy.diabase_smooth_brick_wall": "Diabas Polierte Backsteinmauer", - "block.mineralogy.diabase_furnace": "Diabas Ofen", - "block.mineralogy.diabase_brick_furnace": "Diabas Ziegelofen", - "block.mineralogy.diabase_smooth_furnace": "Diabas Polierter Ofen", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabas Polierter Ziegelofen", + "block.mineralogy.diabase_stairs": "Treppe aus Diabas", + "block.mineralogy.diabase_slab": "Stufe aus Diabas", + "block.mineralogy.diabase_brick": "Ziegel aus Diabas", + "block.mineralogy.diabase_brick_stairs": "Ziegeltreppe aus Diabas", + "block.mineralogy.diabase_brick_slab": "Ziegelstufe aus Diabas", + "block.mineralogy.diabase_smooth": "Polierter Block aus Diabas", + "block.mineralogy.diabase_smooth_stairs": "Polierte Treppe aus Diabas", + "block.mineralogy.diabase_smooth_slab": "Polierte Stufe aus Diabas", + "block.mineralogy.diabase_smooth_brick": "Polierte Ziegel aus Diabas", + "block.mineralogy.diabase_smooth_brick_stairs": "Polierte Ziegeltreppe aus Diabas", + "block.mineralogy.diabase_smooth_brick_slab": "Polierte Ziegelstufe aus Diabas", + "block.mineralogy.diabase_wall": "Mauer aus Diabas", + "block.mineralogy.diabase_brick_wall": "Ziegelmauer aus Diabas", + "block.mineralogy.diabase_smooth_wall": "Polierte Mauer aus Diabas", + "block.mineralogy.diabase_smooth_brick_wall": "Polierte Ziegelmauer aus Diabas", + "block.mineralogy.diabase_furnace": "Ofen aus Diabas", + "block.mineralogy.diabase_brick_furnace": "Ziegelofen aus Diabas", + "block.mineralogy.diabase_smooth_furnace": "Polierter Ofen aus Diabas", + "block.mineralogy.diabase_smooth_brick_furnace": "Polierter Ziegelofen aus Diabas", "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Treppe", - "block.mineralogy.gabbro_slab": "Gabbro Platte", - "block.mineralogy.gabbro_brick": "Gabbro Backstein", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Ziegelsteintreppen", - "block.mineralogy.gabbro_brick_slab": "Gabbro Ziegelplatte", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Polierte Treppe", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Polierte Platte", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Polierter Ziegelstein", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Polierte Ziegelsteintreppen", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Polierte Ziegelplatte", - "block.mineralogy.gabbro_wall": "Gabbro Wand", - "block.mineralogy.gabbro_brick_wall": "Gabbro Ziegelwand", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Polierte Wand", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Polierte Backsteinmauer", - "block.mineralogy.gabbro_furnace": "Gabbro Ofen", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Ziegelofen", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Polierter Ofen", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Polierter Ziegelofen", + "block.mineralogy.gabbro_stairs": "Treppe aus Gabbro", + "block.mineralogy.gabbro_slab": "Stufe aus Gabbro", + "block.mineralogy.gabbro_brick": "Ziegel aus Gabbro", + "block.mineralogy.gabbro_brick_stairs": "Ziegeltreppe aus Gabbro", + "block.mineralogy.gabbro_brick_slab": "Ziegelstufe aus Gabbro", + "block.mineralogy.gabbro_smooth": "Polierter Block aus Gabbro", + "block.mineralogy.gabbro_smooth_stairs": "Polierte Treppe aus Gabbro", + "block.mineralogy.gabbro_smooth_slab": "Polierte Stufe aus Gabbro", + "block.mineralogy.gabbro_smooth_brick": "Polierte Ziegel aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Polierte Ziegeltreppe aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_slab": "Polierte Ziegelstufe aus Gabbro", + "block.mineralogy.gabbro_wall": "Mauer aus Gabbro", + "block.mineralogy.gabbro_brick_wall": "Ziegelmauer aus Gabbro", + "block.mineralogy.gabbro_smooth_wall": "Polierte Mauer aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_wall": "Polierte Ziegelmauer aus Gabbro", + "block.mineralogy.gabbro_furnace": "Ofen aus Gabbro", + "block.mineralogy.gabbro_brick_furnace": "Ziegelofen aus Gabbro", + "block.mineralogy.gabbro_smooth_furnace": "Polierter Ofen aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Polierter Ziegelofen aus Gabbro", "block.mineralogy.peridotite": "Peridotit", - "block.mineralogy.peridotite_stairs": "Peridotit Treppe", - "block.mineralogy.peridotite_slab": "Peridotit Platte", - "block.mineralogy.peridotite_brick": "Peridotit Backstein", - "block.mineralogy.peridotite_brick_stairs": "Peridotit Ziegelsteintreppen", - "block.mineralogy.peridotite_brick_slab": "Peridotit Ziegelplatte", - "block.mineralogy.peridotite_smooth": "Polished Peridotit", - "block.mineralogy.peridotite_smooth_stairs": "Peridotit Polierte Treppe", - "block.mineralogy.peridotite_smooth_slab": "Peridotit Polierte Platte", - "block.mineralogy.peridotite_smooth_brick": "Peridotit Polierter Ziegelstein", - "block.mineralogy.peridotite_smooth_brick_stairs": "Peridotit Polierte Ziegelsteintreppen", - "block.mineralogy.peridotite_smooth_brick_slab": "Peridotit Polierte Ziegelplatte", - "block.mineralogy.peridotite_wall": "Peridotit Wand", - "block.mineralogy.peridotite_brick_wall": "Peridotit Ziegelwand", - "block.mineralogy.peridotite_smooth_wall": "Peridotit Polierte Wand", - "block.mineralogy.peridotite_smooth_brick_wall": "Peridotit Polierte Backsteinmauer", - "block.mineralogy.peridotite_furnace": "Peridotit Ofen", - "block.mineralogy.peridotite_brick_furnace": "Peridotit Ziegelofen", - "block.mineralogy.peridotite_smooth_furnace": "Peridotit Polierter Ofen", - "block.mineralogy.peridotite_smooth_brick_furnace": "Peridotit Polierter Ziegelofen", + "block.mineralogy.peridotite_stairs": "Treppe aus Peridotit", + "block.mineralogy.peridotite_slab": "Stufe aus Peridotit", + "block.mineralogy.peridotite_brick": "Ziegel aus Peridotit", + "block.mineralogy.peridotite_brick_stairs": "Ziegeltreppe aus Peridotit", + "block.mineralogy.peridotite_brick_slab": "Ziegelstufe aus Peridotit", + "block.mineralogy.peridotite_smooth": "Polierter Block aus Peridotit", + "block.mineralogy.peridotite_smooth_stairs": "Polierte Treppe aus Peridotit", + "block.mineralogy.peridotite_smooth_slab": "Polierte Stufe aus Peridotit", + "block.mineralogy.peridotite_smooth_brick": "Polierte Ziegel aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_slab": "Polierte Ziegelstufe aus Peridotit", + "block.mineralogy.peridotite_wall": "Mauer aus Peridotit", + "block.mineralogy.peridotite_brick_wall": "Ziegelmauer aus Peridotit", + "block.mineralogy.peridotite_smooth_wall": "Polierte Mauer aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_wall": "Polierte Ziegelmauer aus Peridotit", + "block.mineralogy.peridotite_furnace": "Ofen aus Peridotit", + "block.mineralogy.peridotite_brick_furnace": "Ziegelofen aus Peridotit", + "block.mineralogy.peridotite_smooth_furnace": "Polierter Ofen aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_furnace": "Polierter Ziegelofen aus Peridotit", "block.mineralogy.basaltic_glass": "Basaltglas", - "block.mineralogy.basaltic_glass_stairs": "Basaltglas Treppe", - "block.mineralogy.basaltic_glass_slab": "Basaltglas Platte", - "block.mineralogy.basaltic_glass_brick": "Basaltglas Backstein", - "block.mineralogy.basaltic_glass_brick_stairs": "Basaltglas Ziegelsteintreppen", - "block.mineralogy.basaltic_glass_brick_slab": "Basaltglas Ziegelplatte", - "block.mineralogy.basaltic_glass_smooth": "Polished Basaltglas", - "block.mineralogy.basaltic_glass_smooth_stairs": "Basaltglas Polierte Treppe", - "block.mineralogy.basaltic_glass_smooth_slab": "Basaltglas Polierte Platte", - "block.mineralogy.basaltic_glass_smooth_brick": "Basaltglas Polierter Ziegelstein", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Basaltglas Polierte Ziegelsteintreppen", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Basaltglas Polierte Ziegelplatte", - "block.mineralogy.basaltic_glass_wall": "Basaltglas Wand", - "block.mineralogy.basaltic_glass_brick_wall": "Basaltglas Ziegelwand", - "block.mineralogy.basaltic_glass_smooth_wall": "Basaltglas Polierte Wand", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Basaltglas Polierte Backsteinmauer", - "block.mineralogy.basaltic_glass_furnace": "Basaltglas Ofen", - "block.mineralogy.basaltic_glass_brick_furnace": "Basaltglas Ziegelofen", - "block.mineralogy.basaltic_glass_smooth_furnace": "Basaltglas Polierter Ofen", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Basaltglas Polierter Ziegelofen", - "block.mineralogy.scoria": "Schlacke", - "block.mineralogy.scoria_stairs": "Schlacke Treppe", - "block.mineralogy.scoria_slab": "Schlacke Platte", - "block.mineralogy.scoria_brick": "Schlacke Backstein", - "block.mineralogy.scoria_brick_stairs": "Schlacke Ziegelsteintreppen", - "block.mineralogy.scoria_brick_slab": "Schlacke Ziegelplatte", - "block.mineralogy.scoria_smooth": "Polished Schlacke", - "block.mineralogy.scoria_smooth_stairs": "Schlacke Polierte Treppe", - "block.mineralogy.scoria_smooth_slab": "Schlacke Polierte Platte", - "block.mineralogy.scoria_smooth_brick": "Schlacke Polierter Ziegelstein", - "block.mineralogy.scoria_smooth_brick_stairs": "Schlacke Polierte Ziegelsteintreppen", - "block.mineralogy.scoria_smooth_brick_slab": "Schlacke Polierte Ziegelplatte", - "block.mineralogy.scoria_wall": "Schlacke Wand", - "block.mineralogy.scoria_brick_wall": "Schlacke Ziegelwand", - "block.mineralogy.scoria_smooth_wall": "Schlacke Polierte Wand", - "block.mineralogy.scoria_smooth_brick_wall": "Schlacke Polierte Backsteinmauer", - "block.mineralogy.scoria_furnace": "Schlacke Ofen", - "block.mineralogy.scoria_brick_furnace": "Schlacke Ziegelofen", - "block.mineralogy.scoria_smooth_furnace": "Schlacke Polierter Ofen", - "block.mineralogy.scoria_smooth_brick_furnace": "Schlacke Polierter Ziegelofen", - "block.mineralogy.tuff": "Tuff", - "block.mineralogy.tuff_stairs": "Tuff Treppe", - "block.mineralogy.tuff_slab": "Tuff Platte", - "block.mineralogy.tuff_brick": "Tuff Backstein", - "block.mineralogy.tuff_brick_stairs": "Tuff Ziegelsteintreppen", - "block.mineralogy.tuff_brick_slab": "Tuff Ziegelplatte", - "block.mineralogy.tuff_smooth": "Polished Tuff", - "block.mineralogy.tuff_smooth_stairs": "Tuff Polierte Treppe", - "block.mineralogy.tuff_smooth_slab": "Tuff Polierte Platte", - "block.mineralogy.tuff_smooth_brick": "Tuff Polierter Ziegelstein", - "block.mineralogy.tuff_smooth_brick_stairs": "Tuff Polierte Ziegelsteintreppen", - "block.mineralogy.tuff_smooth_brick_slab": "Tuff Polierte Ziegelplatte", - "block.mineralogy.tuff_wall": "Tuff Wand", - "block.mineralogy.tuff_brick_wall": "Tuff Ziegelwand", - "block.mineralogy.tuff_smooth_wall": "Tuff Polierte Wand", - "block.mineralogy.tuff_smooth_brick_wall": "Tuff Polierte Backsteinmauer", - "block.mineralogy.tuff_furnace": "Tuff Ofen", - "block.mineralogy.tuff_brick_furnace": "Tuff Ziegelofen", - "block.mineralogy.tuff_smooth_furnace": "Tuff Polierter Ofen", - "block.mineralogy.tuff_smooth_brick_furnace": "Tuff Polierter Ziegelofen", + "block.mineralogy.basaltic_glass_stairs": "Treppe aus Basaltglas", + "block.mineralogy.basaltic_glass_slab": "Stufe aus Basaltglas", + "block.mineralogy.basaltic_glass_brick": "Ziegel aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_stairs": "Ziegeltreppe aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_slab": "Ziegelstufe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth": "Polierter Block aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_stairs": "Polierte Treppe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_slab": "Polierte Stufe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick": "Polierte Ziegel aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Polierte Ziegeltreppe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Polierte Ziegelstufe aus Basaltglas", + "block.mineralogy.basaltic_glass_wall": "Mauer aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_wall": "Ziegelmauer aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_wall": "Polierte Mauer aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Polierte Ziegelmauer aus Basaltglas", + "block.mineralogy.basaltic_glass_furnace": "Ofen aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_furnace": "Ziegelofen aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_furnace": "Polierter Ofen aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Polierter Ziegelofen aus Basaltglas", + "block.mineralogy.scoria": "Skoria", + "block.mineralogy.scoria_stairs": "Treppe aus Skoria", + "block.mineralogy.scoria_slab": "Stufe aus Skoria", + "block.mineralogy.scoria_brick": "Ziegel aus Skoria", + "block.mineralogy.scoria_brick_stairs": "Ziegeltreppe aus Skoria", + "block.mineralogy.scoria_brick_slab": "Ziegelstufe aus Skoria", + "block.mineralogy.scoria_smooth": "Polierter Block aus Skoria", + "block.mineralogy.scoria_smooth_stairs": "Polierte Treppe aus Skoria", + "block.mineralogy.scoria_smooth_slab": "Polierte Stufe aus Skoria", + "block.mineralogy.scoria_smooth_brick": "Polierte Ziegel aus Skoria", + "block.mineralogy.scoria_smooth_brick_stairs": "Polierte Ziegeltreppe aus Skoria", + "block.mineralogy.scoria_smooth_brick_slab": "Polierte Ziegelstufe aus Skoria", + "block.mineralogy.scoria_wall": "Mauer aus Skoria", + "block.mineralogy.scoria_brick_wall": "Ziegelmauer aus Skoria", + "block.mineralogy.scoria_smooth_wall": "Polierte Mauer aus Skoria", + "block.mineralogy.scoria_smooth_brick_wall": "Polierte Ziegelmauer aus Skoria", + "block.mineralogy.scoria_furnace": "Ofen aus Skoria", + "block.mineralogy.scoria_brick_furnace": "Ziegelofen aus Skoria", + "block.mineralogy.scoria_smooth_furnace": "Polierter Ofen aus Skoria", + "block.mineralogy.scoria_smooth_brick_furnace": "Polierter Ziegelofen aus Skoria", + "block.mineralogy.tuff": "Tuffstein", + "block.mineralogy.tuff_stairs": "Treppe aus Tuffstein", + "block.mineralogy.tuff_slab": "Stufe aus Tuffstein", + "block.mineralogy.tuff_brick": "Ziegel aus Tuffstein", + "block.mineralogy.tuff_brick_stairs": "Ziegeltreppe aus Tuffstein", + "block.mineralogy.tuff_brick_slab": "Ziegelstufe aus Tuffstein", + "block.mineralogy.tuff_smooth": "Polierter Block aus Tuffstein", + "block.mineralogy.tuff_smooth_stairs": "Polierte Treppe aus Tuffstein", + "block.mineralogy.tuff_smooth_slab": "Polierte Stufe aus Tuffstein", + "block.mineralogy.tuff_smooth_brick": "Polierte Ziegel aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_stairs": "Polierte Ziegeltreppe aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_slab": "Polierte Ziegelstufe aus Tuffstein", + "block.mineralogy.tuff_wall": "Mauer aus Tuffstein", + "block.mineralogy.tuff_brick_wall": "Ziegelmauer aus Tuffstein", + "block.mineralogy.tuff_smooth_wall": "Polierte Mauer aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_wall": "Polierte Ziegelmauer aus Tuffstein", + "block.mineralogy.tuff_furnace": "Ofen aus Tuffstein", + "block.mineralogy.tuff_brick_furnace": "Ziegelofen aus Tuffstein", + "block.mineralogy.tuff_smooth_furnace": "Polierter Ofen aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_furnace": "Polierter Ziegelofen aus Tuffstein", "block.mineralogy.siltstone": "Schluffstein", - "block.mineralogy.siltstone_stairs": "Schluffstein Treppe", - "block.mineralogy.siltstone_slab": "Schluffstein Platte", - "block.mineralogy.siltstone_brick": "Schluffstein Backstein", - "block.mineralogy.siltstone_brick_stairs": "Schluffstein Ziegelsteintreppen", - "block.mineralogy.siltstone_brick_slab": "Schluffstein Ziegelplatte", - "block.mineralogy.siltstone_smooth": "Polished Schluffstein", - "block.mineralogy.siltstone_smooth_stairs": "Schluffstein Polierte Treppe", - "block.mineralogy.siltstone_smooth_slab": "Schluffstein Polierte Platte", - "block.mineralogy.siltstone_smooth_brick": "Schluffstein Polierter Ziegelstein", - "block.mineralogy.siltstone_smooth_brick_stairs": "Schluffstein Polierte Ziegelsteintreppen", - "block.mineralogy.siltstone_smooth_brick_slab": "Schluffstein Polierte Ziegelplatte", - "block.mineralogy.siltstone_wall": "Schluffstein Wand", - "block.mineralogy.siltstone_brick_wall": "Schluffstein Ziegelwand", - "block.mineralogy.siltstone_smooth_wall": "Schluffstein Polierte Wand", - "block.mineralogy.siltstone_smooth_brick_wall": "Schluffstein Polierte Backsteinmauer", - "block.mineralogy.siltstone_furnace": "Schluffstein Ofen", - "block.mineralogy.siltstone_brick_furnace": "Schluffstein Ziegelofen", - "block.mineralogy.siltstone_smooth_furnace": "Schluffstein Polierter Ofen", - "block.mineralogy.siltstone_smooth_brick_furnace": "Schluffstein Polierter Ziegelofen", + "block.mineralogy.siltstone_stairs": "Treppe aus Schluffstein", + "block.mineralogy.siltstone_slab": "Stufe aus Schluffstein", + "block.mineralogy.siltstone_brick": "Ziegel aus Schluffstein", + "block.mineralogy.siltstone_brick_stairs": "Ziegeltreppe aus Schluffstein", + "block.mineralogy.siltstone_brick_slab": "Ziegelstufe aus Schluffstein", + "block.mineralogy.siltstone_smooth": "Polierter Block aus Schluffstein", + "block.mineralogy.siltstone_smooth_stairs": "Polierte Treppe aus Schluffstein", + "block.mineralogy.siltstone_smooth_slab": "Polierte Stufe aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick": "Polierte Ziegel aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_stairs": "Polierte Ziegeltreppe aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_slab": "Polierte Ziegelstufe aus Schluffstein", + "block.mineralogy.siltstone_wall": "Mauer aus Schluffstein", + "block.mineralogy.siltstone_brick_wall": "Ziegelmauer aus Schluffstein", + "block.mineralogy.siltstone_smooth_wall": "Polierte Mauer aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_wall": "Polierte Ziegelmauer aus Schluffstein", + "block.mineralogy.siltstone_furnace": "Ofen aus Schluffstein", + "block.mineralogy.siltstone_brick_furnace": "Ziegelofen aus Schluffstein", + "block.mineralogy.siltstone_smooth_furnace": "Polierter Ofen aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_furnace": "Polierter Ziegelofen aus Schluffstein", "block.mineralogy.rock_salt": "Steinsalz", - "block.mineralogy.rock_salt_stairs": "Steinsalz Treppe", - "block.mineralogy.rock_salt_slab": "Steinsalz Platte", - "block.mineralogy.rock_salt_brick": "Steinsalz Backstein", - "block.mineralogy.rock_salt_brick_stairs": "Steinsalz Ziegelsteintreppen", - "block.mineralogy.rock_salt_brick_slab": "Steinsalz Ziegelplatte", - "block.mineralogy.rock_salt_smooth": "Polished Steinsalz", - "block.mineralogy.rock_salt_smooth_stairs": "Steinsalz Polierte Treppe", - "block.mineralogy.rock_salt_smooth_slab": "Steinsalz Polierte Platte", - "block.mineralogy.rock_salt_smooth_brick": "Steinsalz Polierter Ziegelstein", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Steinsalz Polierte Ziegelsteintreppen", - "block.mineralogy.rock_salt_smooth_brick_slab": "Steinsalz Polierte Ziegelplatte", - "block.mineralogy.rock_salt_wall": "Steinsalz Wand", - "block.mineralogy.rock_salt_brick_wall": "Steinsalz Ziegelwand", - "block.mineralogy.rock_salt_smooth_wall": "Steinsalz Polierte Wand", - "block.mineralogy.rock_salt_smooth_brick_wall": "Steinsalz Polierte Backsteinmauer", - "block.mineralogy.rock_salt_furnace": "Steinsalz Ofen", - "block.mineralogy.rock_salt_brick_furnace": "Steinsalz Ziegelofen", - "block.mineralogy.rock_salt_smooth_furnace": "Steinsalz Polierter Ofen", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Steinsalz Polierter Ziegelofen", + "block.mineralogy.rock_salt_stairs": "Treppe aus Steinsalz", + "block.mineralogy.rock_salt_slab": "Stufe aus Steinsalz", + "block.mineralogy.rock_salt_brick": "Ziegel aus Steinsalz", + "block.mineralogy.rock_salt_brick_stairs": "Ziegeltreppe aus Steinsalz", + "block.mineralogy.rock_salt_brick_slab": "Ziegelstufe aus Steinsalz", + "block.mineralogy.rock_salt_smooth": "Polierter Block aus Steinsalz", + "block.mineralogy.rock_salt_smooth_stairs": "Polierte Treppe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_slab": "Polierte Stufe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick": "Polierte Ziegel aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Polierte Ziegeltreppe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_slab": "Polierte Ziegelstufe aus Steinsalz", + "block.mineralogy.rock_salt_wall": "Mauer aus Steinsalz", + "block.mineralogy.rock_salt_brick_wall": "Ziegelmauer aus Steinsalz", + "block.mineralogy.rock_salt_smooth_wall": "Polierte Mauer aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_wall": "Polierte Ziegelmauer aus Steinsalz", + "block.mineralogy.rock_salt_furnace": "Ofen aus Steinsalz", + "block.mineralogy.rock_salt_brick_furnace": "Ziegelofen aus Steinsalz", + "block.mineralogy.rock_salt_smooth_furnace": "Polierter Ofen aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Polierter Ziegelofen aus Steinsalz", "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Treppe", - "block.mineralogy.hornfels_slab": "Hornfels Platte", - "block.mineralogy.hornfels_brick": "Hornfels Backstein", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Ziegelsteintreppen", - "block.mineralogy.hornfels_brick_slab": "Hornfels Ziegelplatte", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Polierte Treppe", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Polierte Platte", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Polierter Ziegelstein", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Polierte Ziegelsteintreppen", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Polierte Ziegelplatte", - "block.mineralogy.hornfels_wall": "Hornfels Wand", - "block.mineralogy.hornfels_brick_wall": "Hornfels Ziegelwand", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Polierte Wand", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Polierte Backsteinmauer", - "block.mineralogy.hornfels_furnace": "Hornfels Ofen", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Ziegelofen", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Polierter Ofen", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Polierter Ziegelofen", + "block.mineralogy.hornfels_stairs": "Treppe aus Hornfels", + "block.mineralogy.hornfels_slab": "Stufe aus Hornfels", + "block.mineralogy.hornfels_brick": "Ziegel aus Hornfels", + "block.mineralogy.hornfels_brick_stairs": "Ziegeltreppe aus Hornfels", + "block.mineralogy.hornfels_brick_slab": "Ziegelstufe aus Hornfels", + "block.mineralogy.hornfels_smooth": "Polierter Block aus Hornfels", + "block.mineralogy.hornfels_smooth_stairs": "Polierte Treppe aus Hornfels", + "block.mineralogy.hornfels_smooth_slab": "Polierte Stufe aus Hornfels", + "block.mineralogy.hornfels_smooth_brick": "Polierte Ziegel aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_stairs": "Polierte Ziegeltreppe aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_slab": "Polierte Ziegelstufe aus Hornfels", + "block.mineralogy.hornfels_wall": "Mauer aus Hornfels", + "block.mineralogy.hornfels_brick_wall": "Ziegelmauer aus Hornfels", + "block.mineralogy.hornfels_smooth_wall": "Polierte Mauer aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_wall": "Polierte Ziegelmauer aus Hornfels", + "block.mineralogy.hornfels_furnace": "Ofen aus Hornfels", + "block.mineralogy.hornfels_brick_furnace": "Ziegelofen aus Hornfels", + "block.mineralogy.hornfels_smooth_furnace": "Polierter Ofen aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_furnace": "Polierter Ziegelofen aus Hornfels", "block.mineralogy.quartzite": "Quarzit", - "block.mineralogy.quartzite_stairs": "Quarzit Treppe", - "block.mineralogy.quartzite_slab": "Quarzit Platte", - "block.mineralogy.quartzite_brick": "Quarzit Backstein", - "block.mineralogy.quartzite_brick_stairs": "Quarzit Ziegelsteintreppen", - "block.mineralogy.quartzite_brick_slab": "Quarzit Ziegelplatte", - "block.mineralogy.quartzite_smooth": "Polished Quarzit", - "block.mineralogy.quartzite_smooth_stairs": "Quarzit Polierte Treppe", - "block.mineralogy.quartzite_smooth_slab": "Quarzit Polierte Platte", - "block.mineralogy.quartzite_smooth_brick": "Quarzit Polierter Ziegelstein", - "block.mineralogy.quartzite_smooth_brick_stairs": "Quarzit Polierte Ziegelsteintreppen", - "block.mineralogy.quartzite_smooth_brick_slab": "Quarzit Polierte Ziegelplatte", - "block.mineralogy.quartzite_wall": "Quarzit Wand", - "block.mineralogy.quartzite_brick_wall": "Quarzit Ziegelwand", - "block.mineralogy.quartzite_smooth_wall": "Quarzit Polierte Wand", - "block.mineralogy.quartzite_smooth_brick_wall": "Quarzit Polierte Backsteinmauer", - "block.mineralogy.quartzite_furnace": "Quarzit Ofen", - "block.mineralogy.quartzite_brick_furnace": "Quarzit Ziegelofen", - "block.mineralogy.quartzite_smooth_furnace": "Quarzit Polierter Ofen", - "block.mineralogy.quartzite_smooth_brick_furnace": "Quarzit Polierter Ziegelofen", - "block.mineralogy.novaculite": "Novaculite", - "block.mineralogy.novaculite_stairs": "Novaculite Treppe", - "block.mineralogy.novaculite_slab": "Novaculite Platte", - "block.mineralogy.novaculite_brick": "Novaculite Backstein", - "block.mineralogy.novaculite_brick_stairs": "Novaculite Ziegelsteintreppen", - "block.mineralogy.novaculite_brick_slab": "Novaculite Ziegelplatte", - "block.mineralogy.novaculite_smooth": "Polished Novaculite", - "block.mineralogy.novaculite_smooth_stairs": "Novaculite Polierte Treppe", - "block.mineralogy.novaculite_smooth_slab": "Novaculite Polierte Platte", - "block.mineralogy.novaculite_smooth_brick": "Novaculite Polierter Ziegelstein", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculite Polierte Ziegelsteintreppen", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculite Polierte Ziegelplatte", - "block.mineralogy.novaculite_wall": "Novaculite Wand", - "block.mineralogy.novaculite_brick_wall": "Novaculite Ziegelwand", - "block.mineralogy.novaculite_smooth_wall": "Novaculite Polierte Wand", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculite Polierte Backsteinmauer", - "block.mineralogy.novaculite_furnace": "Novaculite Ofen", - "block.mineralogy.novaculite_brick_furnace": "Novaculite Ziegelofen", - "block.mineralogy.novaculite_smooth_furnace": "Novaculite Polierter Ofen", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculite Polierter Ziegelofen", + "block.mineralogy.quartzite_stairs": "Treppe aus Quarzit", + "block.mineralogy.quartzite_slab": "Stufe aus Quarzit", + "block.mineralogy.quartzite_brick": "Ziegel aus Quarzit", + "block.mineralogy.quartzite_brick_stairs": "Ziegeltreppe aus Quarzit", + "block.mineralogy.quartzite_brick_slab": "Ziegelstufe aus Quarzit", + "block.mineralogy.quartzite_smooth": "Polierter Block aus Quarzit", + "block.mineralogy.quartzite_smooth_stairs": "Polierte Treppe aus Quarzit", + "block.mineralogy.quartzite_smooth_slab": "Polierte Stufe aus Quarzit", + "block.mineralogy.quartzite_smooth_brick": "Polierte Ziegel aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_slab": "Polierte Ziegelstufe aus Quarzit", + "block.mineralogy.quartzite_wall": "Mauer aus Quarzit", + "block.mineralogy.quartzite_brick_wall": "Ziegelmauer aus Quarzit", + "block.mineralogy.quartzite_smooth_wall": "Polierte Mauer aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_wall": "Polierte Ziegelmauer aus Quarzit", + "block.mineralogy.quartzite_furnace": "Ofen aus Quarzit", + "block.mineralogy.quartzite_brick_furnace": "Ziegelofen aus Quarzit", + "block.mineralogy.quartzite_smooth_furnace": "Polierter Ofen aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_furnace": "Polierter Ziegelofen aus Quarzit", + "block.mineralogy.novaculite": "Novakulit", + "block.mineralogy.novaculite_stairs": "Treppe aus Novakulit", + "block.mineralogy.novaculite_slab": "Stufe aus Novakulit", + "block.mineralogy.novaculite_brick": "Ziegel aus Novakulit", + "block.mineralogy.novaculite_brick_stairs": "Ziegeltreppe aus Novakulit", + "block.mineralogy.novaculite_brick_slab": "Ziegelstufe aus Novakulit", + "block.mineralogy.novaculite_smooth": "Polierter Block aus Novakulit", + "block.mineralogy.novaculite_smooth_stairs": "Polierte Treppe aus Novakulit", + "block.mineralogy.novaculite_smooth_slab": "Polierte Stufe aus Novakulit", + "block.mineralogy.novaculite_smooth_brick": "Polierte Ziegel aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_slab": "Polierte Ziegelstufe aus Novakulit", + "block.mineralogy.novaculite_wall": "Mauer aus Novakulit", + "block.mineralogy.novaculite_brick_wall": "Ziegelmauer aus Novakulit", + "block.mineralogy.novaculite_smooth_wall": "Polierte Mauer aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_wall": "Polierte Ziegelmauer aus Novakulit", + "block.mineralogy.novaculite_furnace": "Ofen aus Novakulit", + "block.mineralogy.novaculite_brick_furnace": "Ziegelofen aus Novakulit", + "block.mineralogy.novaculite_smooth_furnace": "Polierter Ofen aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_furnace": "Polierter Ziegelofen aus Novakulit", "block.mineralogy.chalk": "Kreide", - "item.mineralogy.chalk_dust": "Kreide Pulver", + "item.mineralogy.chalk_dust": "Kreidepulver", "item.mineralogy.salt_dust": "Salz", - "item.mineralogy.rock_salt_dust": "Steinsalz-Kristalle", - "block.mineralogy.rocksaltlamp": "Steinsalz-Lampe", + "item.mineralogy.rock_salt_dust": "Steinsalzkristalle", + "block.mineralogy.rocksaltlamp": "Steinsalzlampe", "block.mineralogy.rocksaltstreetlamp": "Steinsalz-Straßenlaterne", - "block.mineralogy.andesite_relief_axe": "Andesit Axe Relief", - "block.mineralogy.andesite_relief_blank": "Andesit Leere Erleichterung", - "block.mineralogy.andesite_relief_cross": "Andesit Cross Relief", - "block.mineralogy.andesite_relief_hammer": "Andesit Hammer Relief", - "block.mineralogy.andesite_relief_hoe": "Andesit Hacke Erleichterung", - "block.mineralogy.andesite_relief_horizontal": "Andesit Horizontales Relief", - "block.mineralogy.andesite_relief_i": "Andesit I Relief", - "block.mineralogy.andesite_relief_left": "Andesit Relief links", - "block.mineralogy.andesite_relief_pickaxe": "Andesit Spitzhacke Relief", - "block.mineralogy.andesite_relief_plus": "Andesit Plus Relief", - "block.mineralogy.andesite_relief_right": "Andesit Rechte Erleichterung", - "block.mineralogy.andesite_relief_sword": "Andesit Schwert Relief", - "block.mineralogy.andesite_relief_vertical": "Andesit Vertikales Relief", - "block.mineralogy.basalt_relief_axe": "Basalt Axe Relief", - "block.mineralogy.basalt_relief_blank": "Basalt Leere Erleichterung", - "block.mineralogy.basalt_relief_cross": "Basalt Cross Relief", - "block.mineralogy.basalt_relief_hammer": "Basalt Hammer Relief", - "block.mineralogy.basalt_relief_hoe": "Basalt Hacke Erleichterung", - "block.mineralogy.basalt_relief_horizontal": "Basalt Horizontales Relief", - "block.mineralogy.basalt_relief_i": "Basalt I Relief", - "block.mineralogy.basalt_relief_left": "Basalt Relief links", - "block.mineralogy.basalt_relief_pickaxe": "Basalt Spitzhacke Relief", - "block.mineralogy.basalt_relief_plus": "Basalt Plus Relief", - "block.mineralogy.basalt_relief_right": "Basalt Rechte Erleichterung", - "block.mineralogy.basalt_relief_sword": "Basalt Schwert Relief", - "block.mineralogy.basalt_relief_vertical": "Basalt Vertikales Relief", - "block.mineralogy.diorite_relief_axe": "Diorit Axe Relief", - "block.mineralogy.diorite_relief_blank": "Diorit Leere Erleichterung", - "block.mineralogy.diorite_relief_cross": "Diorit Cross Relief", - "block.mineralogy.diorite_relief_hammer": "Diorit Hammer Relief", - "block.mineralogy.diorite_relief_hoe": "Diorit Hacke Erleichterung", - "block.mineralogy.diorite_relief_horizontal": "Diorit Horizontales Relief", - "block.mineralogy.diorite_relief_i": "Diorit I Relief", - "block.mineralogy.diorite_relief_left": "Diorit Relief links", - "block.mineralogy.diorite_relief_pickaxe": "Diorit Spitzhacke Relief", - "block.mineralogy.diorite_relief_plus": "Diorit Plus Relief", - "block.mineralogy.diorite_relief_right": "Diorit Rechte Erleichterung", - "block.mineralogy.diorite_relief_sword": "Diorit Schwert Relief", - "block.mineralogy.diorite_relief_vertical": "Diorit Vertikales Relief", - "block.mineralogy.granite_relief_axe": "Granit Axe Relief", - "block.mineralogy.granite_relief_blank": "Granit Leere Erleichterung", - "block.mineralogy.granite_relief_cross": "Granit Cross Relief", - "block.mineralogy.granite_relief_hammer": "Granit Hammer Relief", - "block.mineralogy.granite_relief_hoe": "Granit Hacke Erleichterung", - "block.mineralogy.granite_relief_horizontal": "Granit Horizontales Relief", - "block.mineralogy.granite_relief_i": "Granit I Relief", - "block.mineralogy.granite_relief_left": "Granit Relief links", - "block.mineralogy.granite_relief_pickaxe": "Granit Spitzhacke Relief", - "block.mineralogy.granite_relief_plus": "Granit Plus Relief", - "block.mineralogy.granite_relief_right": "Granit Rechte Erleichterung", - "block.mineralogy.granite_relief_sword": "Granit Schwert Relief", - "block.mineralogy.granite_relief_vertical": "Granit Vertikales Relief", - "block.mineralogy.rhyolite_relief_axe": "Rhyolith Axe Relief", - "block.mineralogy.rhyolite_relief_blank": "Rhyolith Leere Erleichterung", - "block.mineralogy.rhyolite_relief_cross": "Rhyolith Cross Relief", - "block.mineralogy.rhyolite_relief_hammer": "Rhyolith Hammer Relief", - "block.mineralogy.rhyolite_relief_hoe": "Rhyolith Hacke Erleichterung", - "block.mineralogy.rhyolite_relief_horizontal": "Rhyolith Horizontales Relief", - "block.mineralogy.rhyolite_relief_i": "Rhyolith I Relief", - "block.mineralogy.rhyolite_relief_left": "Rhyolith Relief links", - "block.mineralogy.rhyolite_relief_pickaxe": "Rhyolith Spitzhacke Relief", - "block.mineralogy.rhyolite_relief_plus": "Rhyolith Plus Relief", - "block.mineralogy.rhyolite_relief_right": "Rhyolith Rechte Erleichterung", - "block.mineralogy.rhyolite_relief_sword": "Rhyolith Schwert Relief", - "block.mineralogy.rhyolite_relief_vertical": "Rhyolith Vertikales Relief", - "block.mineralogy.pegmatite_relief_axe": "Pegmatit Axe Relief", - "block.mineralogy.pegmatite_relief_blank": "Pegmatit Leere Erleichterung", - "block.mineralogy.pegmatite_relief_cross": "Pegmatit Cross Relief", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatit Hammer Relief", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatit Hacke Erleichterung", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatit Horizontales Relief", - "block.mineralogy.pegmatite_relief_i": "Pegmatit I Relief", - "block.mineralogy.pegmatite_relief_left": "Pegmatit Relief links", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatit Spitzhacke Relief", - "block.mineralogy.pegmatite_relief_plus": "Pegmatit Plus Relief", - "block.mineralogy.pegmatite_relief_right": "Pegmatit Rechte Erleichterung", - "block.mineralogy.pegmatite_relief_sword": "Pegmatit Schwert Relief", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatit Vertikales Relief", - "block.mineralogy.shale_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.shale_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.shale_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.shale_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.shale_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.shale_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.shale_relief_i": "Schiefer I Relief", - "block.mineralogy.shale_relief_left": "Schiefer Relief links", - "block.mineralogy.shale_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.shale_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.shale_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.shale_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.shale_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.conglomerate_relief_axe": "Konglomerat Axe Relief", - "block.mineralogy.conglomerate_relief_blank": "Konglomerat Leere Erleichterung", - "block.mineralogy.conglomerate_relief_cross": "Konglomerat Cross Relief", - "block.mineralogy.conglomerate_relief_hammer": "Konglomerat Hammer Relief", - "block.mineralogy.conglomerate_relief_hoe": "Konglomerat Hacke Erleichterung", - "block.mineralogy.conglomerate_relief_horizontal": "Konglomerat Horizontales Relief", - "block.mineralogy.conglomerate_relief_i": "Konglomerat I Relief", - "block.mineralogy.conglomerate_relief_left": "Konglomerat Relief links", - "block.mineralogy.conglomerate_relief_pickaxe": "Konglomerat Spitzhacke Relief", - "block.mineralogy.conglomerate_relief_plus": "Konglomerat Plus Relief", - "block.mineralogy.conglomerate_relief_right": "Konglomerat Rechte Erleichterung", - "block.mineralogy.conglomerate_relief_sword": "Konglomerat Schwert Relief", - "block.mineralogy.conglomerate_relief_vertical": "Konglomerat Vertikales Relief", - "block.mineralogy.dolomite_relief_axe": "Dolomit Axe Relief", - "block.mineralogy.dolomite_relief_blank": "Dolomit Leere Erleichterung", - "block.mineralogy.dolomite_relief_cross": "Dolomit Cross Relief", - "block.mineralogy.dolomite_relief_hammer": "Dolomit Hammer Relief", - "block.mineralogy.dolomite_relief_hoe": "Dolomit Hacke Erleichterung", - "block.mineralogy.dolomite_relief_horizontal": "Dolomit Horizontales Relief", - "block.mineralogy.dolomite_relief_i": "Dolomit I Relief", - "block.mineralogy.dolomite_relief_left": "Dolomit Relief links", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomit Spitzhacke Relief", - "block.mineralogy.dolomite_relief_plus": "Dolomit Plus Relief", - "block.mineralogy.dolomite_relief_right": "Dolomit Rechte Erleichterung", - "block.mineralogy.dolomite_relief_sword": "Dolomit Schwert Relief", - "block.mineralogy.dolomite_relief_vertical": "Dolomit Vertikales Relief", - "block.mineralogy.limestone_relief_axe": "Kalkstein Axe Relief", - "block.mineralogy.limestone_relief_blank": "Kalkstein Leere Erleichterung", - "block.mineralogy.limestone_relief_cross": "Kalkstein Cross Relief", - "block.mineralogy.limestone_relief_hammer": "Kalkstein Hammer Relief", - "block.mineralogy.limestone_relief_hoe": "Kalkstein Hacke Erleichterung", - "block.mineralogy.limestone_relief_horizontal": "Kalkstein Horizontales Relief", - "block.mineralogy.limestone_relief_i": "Kalkstein I Relief", - "block.mineralogy.limestone_relief_left": "Kalkstein Relief links", - "block.mineralogy.limestone_relief_pickaxe": "Kalkstein Spitzhacke Relief", - "block.mineralogy.limestone_relief_plus": "Kalkstein Plus Relief", - "block.mineralogy.limestone_relief_right": "Kalkstein Rechte Erleichterung", - "block.mineralogy.limestone_relief_sword": "Kalkstein Schwert Relief", - "block.mineralogy.limestone_relief_vertical": "Kalkstein Vertikales Relief", - "block.mineralogy.marble_relief_axe": "Marmor Axe Relief", - "block.mineralogy.marble_relief_blank": "Marmor Leere Erleichterung", - "block.mineralogy.marble_relief_cross": "Marmor Cross Relief", - "block.mineralogy.marble_relief_hammer": "Marmor Hammer Relief", - "block.mineralogy.marble_relief_hoe": "Marmor Hacke Erleichterung", - "block.mineralogy.marble_relief_horizontal": "Marmor Horizontales Relief", - "block.mineralogy.marble_relief_i": "Marmor I Relief", - "block.mineralogy.marble_relief_left": "Marmor Relief links", - "block.mineralogy.marble_relief_pickaxe": "Marmor Spitzhacke Relief", - "block.mineralogy.marble_relief_plus": "Marmor Plus Relief", - "block.mineralogy.marble_relief_right": "Marmor Rechte Erleichterung", - "block.mineralogy.marble_relief_sword": "Marmor Schwert Relief", - "block.mineralogy.marble_relief_vertical": "Marmor Vertikales Relief", - "block.mineralogy.slate_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.slate_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.slate_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.slate_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.slate_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.slate_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.slate_relief_i": "Schiefer I Relief", - "block.mineralogy.slate_relief_left": "Schiefer Relief links", - "block.mineralogy.slate_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.slate_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.slate_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.slate_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.slate_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.schist_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.schist_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.schist_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.schist_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.schist_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.schist_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.schist_relief_i": "Schiefer I Relief", - "block.mineralogy.schist_relief_left": "Schiefer Relief links", - "block.mineralogy.schist_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.schist_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.schist_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.schist_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.schist_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.gneiss_relief_axe": "Gneis Axe Relief", - "block.mineralogy.gneiss_relief_blank": "Gneis Leere Erleichterung", - "block.mineralogy.gneiss_relief_cross": "Gneis Cross Relief", - "block.mineralogy.gneiss_relief_hammer": "Gneis Hammer Relief", - "block.mineralogy.gneiss_relief_hoe": "Gneis Hacke Erleichterung", - "block.mineralogy.gneiss_relief_horizontal": "Gneis Horizontales Relief", - "block.mineralogy.gneiss_relief_i": "Gneis I Relief", - "block.mineralogy.gneiss_relief_left": "Gneis Relief links", - "block.mineralogy.gneiss_relief_pickaxe": "Gneis Spitzhacke Relief", - "block.mineralogy.gneiss_relief_plus": "Gneis Plus Relief", - "block.mineralogy.gneiss_relief_right": "Gneis Rechte Erleichterung", - "block.mineralogy.gneiss_relief_sword": "Gneis Schwert Relief", - "block.mineralogy.gneiss_relief_vertical": "Gneis Vertikales Relief", - "block.mineralogy.phyllite_relief_axe": "Phyllite Axe Relief", - "block.mineralogy.phyllite_relief_blank": "Phyllite Leere Erleichterung", - "block.mineralogy.phyllite_relief_cross": "Phyllite Cross Relief", - "block.mineralogy.phyllite_relief_hammer": "Phyllite Hammer Relief", - "block.mineralogy.phyllite_relief_hoe": "Phyllite Hacke Erleichterung", - "block.mineralogy.phyllite_relief_horizontal": "Phyllite Horizontales Relief", - "block.mineralogy.phyllite_relief_i": "Phyllite I Relief", - "block.mineralogy.phyllite_relief_left": "Phyllite Relief links", - "block.mineralogy.phyllite_relief_pickaxe": "Phyllite Spitzhacke Relief", - "block.mineralogy.phyllite_relief_plus": "Phyllite Plus Relief", - "block.mineralogy.phyllite_relief_right": "Phyllite Rechte Erleichterung", - "block.mineralogy.phyllite_relief_sword": "Phyllite Schwert Relief", - "block.mineralogy.phyllite_relief_vertical": "Phyllite Vertikales Relief", - "block.mineralogy.amphibolite_relief_axe": "Amphibolith Axe Relief", - "block.mineralogy.amphibolite_relief_blank": "Amphibolith Leere Erleichterung", - "block.mineralogy.amphibolite_relief_cross": "Amphibolith Cross Relief", - "block.mineralogy.amphibolite_relief_hammer": "Amphibolith Hammer Relief", - "block.mineralogy.amphibolite_relief_hoe": "Amphibolith Hacke Erleichterung", - "block.mineralogy.amphibolite_relief_horizontal": "Amphibolith Horizontales Relief", - "block.mineralogy.amphibolite_relief_i": "Amphibolith I Relief", - "block.mineralogy.amphibolite_relief_left": "Amphibolith Relief links", - "block.mineralogy.amphibolite_relief_pickaxe": "Amphibolith Spitzhacke Relief", - "block.mineralogy.amphibolite_relief_plus": "Amphibolith Plus Relief", - "block.mineralogy.amphibolite_relief_right": "Amphibolith Rechte Erleichterung", - "block.mineralogy.amphibolite_relief_sword": "Amphibolith Schwert Relief", - "block.mineralogy.amphibolite_relief_vertical": "Amphibolith Vertikales Relief", - "block.mineralogy.diabase_relief_axe": "Diabas Axe Relief", - "block.mineralogy.diabase_relief_blank": "Diabas Leere Erleichterung", - "block.mineralogy.diabase_relief_cross": "Diabas Cross Relief", - "block.mineralogy.diabase_relief_hammer": "Diabas Hammer Relief", - "block.mineralogy.diabase_relief_hoe": "Diabas Hacke Erleichterung", - "block.mineralogy.diabase_relief_horizontal": "Diabas Horizontales Relief", - "block.mineralogy.diabase_relief_i": "Diabas I Relief", - "block.mineralogy.diabase_relief_left": "Diabas Relief links", - "block.mineralogy.diabase_relief_pickaxe": "Diabas Spitzhacke Relief", - "block.mineralogy.diabase_relief_plus": "Diabas Plus Relief", - "block.mineralogy.diabase_relief_right": "Diabas Rechte Erleichterung", - "block.mineralogy.diabase_relief_sword": "Diabas Schwert Relief", - "block.mineralogy.diabase_relief_vertical": "Diabas Vertikales Relief", - "block.mineralogy.gabbro_relief_axe": "Gabbro Axe Relief", - "block.mineralogy.gabbro_relief_blank": "Gabbro Leere Erleichterung", - "block.mineralogy.gabbro_relief_cross": "Gabbro Cross Relief", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Hammer Relief", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Hacke Erleichterung", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Horizontales Relief", - "block.mineralogy.gabbro_relief_i": "Gabbro I Relief", - "block.mineralogy.gabbro_relief_left": "Gabbro Relief links", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Spitzhacke Relief", - "block.mineralogy.gabbro_relief_plus": "Gabbro Plus Relief", - "block.mineralogy.gabbro_relief_right": "Gabbro Rechte Erleichterung", - "block.mineralogy.gabbro_relief_sword": "Gabbro Schwert Relief", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Vertikales Relief", - "block.mineralogy.peridotite_relief_axe": "Peridotit Axe Relief", - "block.mineralogy.peridotite_relief_blank": "Peridotit Leere Erleichterung", - "block.mineralogy.peridotite_relief_cross": "Peridotit Cross Relief", - "block.mineralogy.peridotite_relief_hammer": "Peridotit Hammer Relief", - "block.mineralogy.peridotite_relief_hoe": "Peridotit Hacke Erleichterung", - "block.mineralogy.peridotite_relief_horizontal": "Peridotit Horizontales Relief", - "block.mineralogy.peridotite_relief_i": "Peridotit I Relief", - "block.mineralogy.peridotite_relief_left": "Peridotit Relief links", - "block.mineralogy.peridotite_relief_pickaxe": "Peridotit Spitzhacke Relief", - "block.mineralogy.peridotite_relief_plus": "Peridotit Plus Relief", - "block.mineralogy.peridotite_relief_right": "Peridotit Rechte Erleichterung", - "block.mineralogy.peridotite_relief_sword": "Peridotit Schwert Relief", - "block.mineralogy.peridotite_relief_vertical": "Peridotit Vertikales Relief", - "block.mineralogy.basaltic_glass_relief_axe": "Basaltglas Axe Relief", - "block.mineralogy.basaltic_glass_relief_blank": "Basaltglas Leere Erleichterung", - "block.mineralogy.basaltic_glass_relief_cross": "Basaltglas Cross Relief", - "block.mineralogy.basaltic_glass_relief_hammer": "Basaltglas Hammer Relief", - "block.mineralogy.basaltic_glass_relief_hoe": "Basaltglas Hacke Erleichterung", - "block.mineralogy.basaltic_glass_relief_horizontal": "Basaltglas Horizontales Relief", - "block.mineralogy.basaltic_glass_relief_i": "Basaltglas I Relief", - "block.mineralogy.basaltic_glass_relief_left": "Basaltglas Relief links", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Basaltglas Spitzhacke Relief", - "block.mineralogy.basaltic_glass_relief_plus": "Basaltglas Plus Relief", - "block.mineralogy.basaltic_glass_relief_right": "Basaltglas Rechte Erleichterung", - "block.mineralogy.basaltic_glass_relief_sword": "Basaltglas Schwert Relief", - "block.mineralogy.basaltic_glass_relief_vertical": "Basaltglas Vertikales Relief", - "block.mineralogy.scoria_relief_axe": "Schlacke Axe Relief", - "block.mineralogy.scoria_relief_blank": "Schlacke Leere Erleichterung", - "block.mineralogy.scoria_relief_cross": "Schlacke Cross Relief", - "block.mineralogy.scoria_relief_hammer": "Schlacke Hammer Relief", - "block.mineralogy.scoria_relief_hoe": "Schlacke Hacke Erleichterung", - "block.mineralogy.scoria_relief_horizontal": "Schlacke Horizontales Relief", - "block.mineralogy.scoria_relief_i": "Schlacke I Relief", - "block.mineralogy.scoria_relief_left": "Schlacke Relief links", - "block.mineralogy.scoria_relief_pickaxe": "Schlacke Spitzhacke Relief", - "block.mineralogy.scoria_relief_plus": "Schlacke Plus Relief", - "block.mineralogy.scoria_relief_right": "Schlacke Rechte Erleichterung", - "block.mineralogy.scoria_relief_sword": "Schlacke Schwert Relief", - "block.mineralogy.scoria_relief_vertical": "Schlacke Vertikales Relief", - "block.mineralogy.tuff_relief_axe": "Tuff Axe Relief", - "block.mineralogy.tuff_relief_blank": "Tuff Leere Erleichterung", - "block.mineralogy.tuff_relief_cross": "Tuff Cross Relief", - "block.mineralogy.tuff_relief_hammer": "Tuff Hammer Relief", - "block.mineralogy.tuff_relief_hoe": "Tuff Hacke Erleichterung", - "block.mineralogy.tuff_relief_horizontal": "Tuff Horizontales Relief", - "block.mineralogy.tuff_relief_i": "Tuff I Relief", - "block.mineralogy.tuff_relief_left": "Tuff Relief links", - "block.mineralogy.tuff_relief_pickaxe": "Tuff Spitzhacke Relief", - "block.mineralogy.tuff_relief_plus": "Tuff Plus Relief", - "block.mineralogy.tuff_relief_right": "Tuff Rechte Erleichterung", - "block.mineralogy.tuff_relief_sword": "Tuff Schwert Relief", - "block.mineralogy.tuff_relief_vertical": "Tuff Vertikales Relief", - "block.mineralogy.siltstone_relief_axe": "Schluffstein Axe Relief", - "block.mineralogy.siltstone_relief_blank": "Schluffstein Leere Erleichterung", - "block.mineralogy.siltstone_relief_cross": "Schluffstein Cross Relief", - "block.mineralogy.siltstone_relief_hammer": "Schluffstein Hammer Relief", - "block.mineralogy.siltstone_relief_hoe": "Schluffstein Hacke Erleichterung", - "block.mineralogy.siltstone_relief_horizontal": "Schluffstein Horizontales Relief", - "block.mineralogy.siltstone_relief_i": "Schluffstein I Relief", - "block.mineralogy.siltstone_relief_left": "Schluffstein Relief links", - "block.mineralogy.siltstone_relief_pickaxe": "Schluffstein Spitzhacke Relief", - "block.mineralogy.siltstone_relief_plus": "Schluffstein Plus Relief", - "block.mineralogy.siltstone_relief_right": "Schluffstein Rechte Erleichterung", - "block.mineralogy.siltstone_relief_sword": "Schluffstein Schwert Relief", - "block.mineralogy.siltstone_relief_vertical": "Schluffstein Vertikales Relief", - "block.mineralogy.rock_salt_relief_axe": "Steinsalz Axe Relief", - "block.mineralogy.rock_salt_relief_blank": "Steinsalz Leere Erleichterung", - "block.mineralogy.rock_salt_relief_cross": "Steinsalz Cross Relief", - "block.mineralogy.rock_salt_relief_hammer": "Steinsalz Hammer Relief", - "block.mineralogy.rock_salt_relief_hoe": "Steinsalz Hacke Erleichterung", - "block.mineralogy.rock_salt_relief_horizontal": "Steinsalz Horizontales Relief", - "block.mineralogy.rock_salt_relief_i": "Steinsalz I Relief", - "block.mineralogy.rock_salt_relief_left": "Steinsalz Relief links", - "block.mineralogy.rock_salt_relief_pickaxe": "Steinsalz Spitzhacke Relief", - "block.mineralogy.rock_salt_relief_plus": "Steinsalz Plus Relief", - "block.mineralogy.rock_salt_relief_right": "Steinsalz Rechte Erleichterung", - "block.mineralogy.rock_salt_relief_sword": "Steinsalz Schwert Relief", - "block.mineralogy.rock_salt_relief_vertical": "Steinsalz Vertikales Relief", - "block.mineralogy.hornfels_relief_axe": "Hornfels Axe Relief", - "block.mineralogy.hornfels_relief_blank": "Hornfels Leere Erleichterung", - "block.mineralogy.hornfels_relief_cross": "Hornfels Cross Relief", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Hammer Relief", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Hacke Erleichterung", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Horizontales Relief", - "block.mineralogy.hornfels_relief_i": "Hornfels I Relief", - "block.mineralogy.hornfels_relief_left": "Hornfels Relief links", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Spitzhacke Relief", - "block.mineralogy.hornfels_relief_plus": "Hornfels Plus Relief", - "block.mineralogy.hornfels_relief_right": "Hornfels Rechte Erleichterung", - "block.mineralogy.hornfels_relief_sword": "Hornfels Schwert Relief", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Vertikales Relief", - "block.mineralogy.quartzite_relief_axe": "Quarzit Axe Relief", - "block.mineralogy.quartzite_relief_blank": "Quarzit Leere Erleichterung", - "block.mineralogy.quartzite_relief_cross": "Quarzit Cross Relief", - "block.mineralogy.quartzite_relief_hammer": "Quarzit Hammer Relief", - "block.mineralogy.quartzite_relief_hoe": "Quarzit Hacke Erleichterung", - "block.mineralogy.quartzite_relief_horizontal": "Quarzit Horizontales Relief", - "block.mineralogy.quartzite_relief_i": "Quarzit I Relief", - "block.mineralogy.quartzite_relief_left": "Quarzit Relief links", - "block.mineralogy.quartzite_relief_pickaxe": "Quarzit Spitzhacke Relief", - "block.mineralogy.quartzite_relief_plus": "Quarzit Plus Relief", - "block.mineralogy.quartzite_relief_right": "Quarzit Rechte Erleichterung", - "block.mineralogy.quartzite_relief_sword": "Quarzit Schwert Relief", - "block.mineralogy.quartzite_relief_vertical": "Quarzit Vertikales Relief", - "block.mineralogy.novaculite_relief_axe": "Novaculite Axe Relief", - "block.mineralogy.novaculite_relief_blank": "Novaculite Leere Erleichterung", - "block.mineralogy.novaculite_relief_cross": "Novaculite Cross Relief", - "block.mineralogy.novaculite_relief_hammer": "Novaculite Hammer Relief", - "block.mineralogy.novaculite_relief_hoe": "Novaculite Hacke Erleichterung", - "block.mineralogy.novaculite_relief_horizontal": "Novaculite Horizontales Relief", - "block.mineralogy.novaculite_relief_i": "Novaculite I Relief", - "block.mineralogy.novaculite_relief_left": "Novaculite Relief links", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculite Spitzhacke Relief", - "block.mineralogy.novaculite_relief_plus": "Novaculite Plus Relief", - "block.mineralogy.novaculite_relief_right": "Novaculite Rechte Erleichterung", - "block.mineralogy.novaculite_relief_sword": "Novaculite Schwert Relief", - "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertikales Relief", - "advancements.mineralogy.all_the_rocks.title": "Nennen Sie die Felsen Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, Sie haben alle gängigen Gesteinsarten in der Mineralogie gefunden!", - "fluid.mineralogy.crude_oil": "Rohöl", - "block.mineralogy.crude_oil": "Rohöl", - "item.mineralogy.crude_oil_bucket": "Rohöleimer", + "block.mineralogy.andesite_relief_axe": "Relief aus Andesit (Axt)", + "block.mineralogy.andesite_relief_blank": "Relief aus Andesit (ohne Motiv)", + "block.mineralogy.andesite_relief_cross": "Relief aus Andesit (Kreuz)", + "block.mineralogy.andesite_relief_hammer": "Relief aus Andesit (Hammer)", + "block.mineralogy.andesite_relief_hoe": "Relief aus Andesit (Hacke)", + "block.mineralogy.andesite_relief_horizontal": "Relief aus Andesit (waagerecht)", + "block.mineralogy.andesite_relief_i": "Relief aus Andesit (I)", + "block.mineralogy.andesite_relief_left": "Relief aus Andesit (links)", + "block.mineralogy.andesite_relief_pickaxe": "Relief aus Andesit (Spitzhacke)", + "block.mineralogy.andesite_relief_plus": "Relief aus Andesit (Pluszeichen)", + "block.mineralogy.andesite_relief_right": "Relief aus Andesit (rechts)", + "block.mineralogy.andesite_relief_sword": "Relief aus Andesit (Schwert)", + "block.mineralogy.andesite_relief_vertical": "Relief aus Andesit (senkrecht)", + "block.mineralogy.basalt_relief_axe": "Relief aus Basalt (Axt)", + "block.mineralogy.basalt_relief_blank": "Relief aus Basalt (ohne Motiv)", + "block.mineralogy.basalt_relief_cross": "Relief aus Basalt (Kreuz)", + "block.mineralogy.basalt_relief_hammer": "Relief aus Basalt (Hammer)", + "block.mineralogy.basalt_relief_hoe": "Relief aus Basalt (Hacke)", + "block.mineralogy.basalt_relief_horizontal": "Relief aus Basalt (waagerecht)", + "block.mineralogy.basalt_relief_i": "Relief aus Basalt (I)", + "block.mineralogy.basalt_relief_left": "Relief aus Basalt (links)", + "block.mineralogy.basalt_relief_pickaxe": "Relief aus Basalt (Spitzhacke)", + "block.mineralogy.basalt_relief_plus": "Relief aus Basalt (Pluszeichen)", + "block.mineralogy.basalt_relief_right": "Relief aus Basalt (rechts)", + "block.mineralogy.basalt_relief_sword": "Relief aus Basalt (Schwert)", + "block.mineralogy.basalt_relief_vertical": "Relief aus Basalt (senkrecht)", + "block.mineralogy.diorite_relief_axe": "Relief aus Diorit (Axt)", + "block.mineralogy.diorite_relief_blank": "Relief aus Diorit (ohne Motiv)", + "block.mineralogy.diorite_relief_cross": "Relief aus Diorit (Kreuz)", + "block.mineralogy.diorite_relief_hammer": "Relief aus Diorit (Hammer)", + "block.mineralogy.diorite_relief_hoe": "Relief aus Diorit (Hacke)", + "block.mineralogy.diorite_relief_horizontal": "Relief aus Diorit (waagerecht)", + "block.mineralogy.diorite_relief_i": "Relief aus Diorit (I)", + "block.mineralogy.diorite_relief_left": "Relief aus Diorit (links)", + "block.mineralogy.diorite_relief_pickaxe": "Relief aus Diorit (Spitzhacke)", + "block.mineralogy.diorite_relief_plus": "Relief aus Diorit (Pluszeichen)", + "block.mineralogy.diorite_relief_right": "Relief aus Diorit (rechts)", + "block.mineralogy.diorite_relief_sword": "Relief aus Diorit (Schwert)", + "block.mineralogy.diorite_relief_vertical": "Relief aus Diorit (senkrecht)", + "block.mineralogy.granite_relief_axe": "Relief aus Granit (Axt)", + "block.mineralogy.granite_relief_blank": "Relief aus Granit (ohne Motiv)", + "block.mineralogy.granite_relief_cross": "Relief aus Granit (Kreuz)", + "block.mineralogy.granite_relief_hammer": "Relief aus Granit (Hammer)", + "block.mineralogy.granite_relief_hoe": "Relief aus Granit (Hacke)", + "block.mineralogy.granite_relief_horizontal": "Relief aus Granit (waagerecht)", + "block.mineralogy.granite_relief_i": "Relief aus Granit (I)", + "block.mineralogy.granite_relief_left": "Relief aus Granit (links)", + "block.mineralogy.granite_relief_pickaxe": "Relief aus Granit (Spitzhacke)", + "block.mineralogy.granite_relief_plus": "Relief aus Granit (Pluszeichen)", + "block.mineralogy.granite_relief_right": "Relief aus Granit (rechts)", + "block.mineralogy.granite_relief_sword": "Relief aus Granit (Schwert)", + "block.mineralogy.granite_relief_vertical": "Relief aus Granit (senkrecht)", + "block.mineralogy.rhyolite_relief_axe": "Relief aus Rhyolith (Axt)", + "block.mineralogy.rhyolite_relief_blank": "Relief aus Rhyolith (ohne Motiv)", + "block.mineralogy.rhyolite_relief_cross": "Relief aus Rhyolith (Kreuz)", + "block.mineralogy.rhyolite_relief_hammer": "Relief aus Rhyolith (Hammer)", + "block.mineralogy.rhyolite_relief_hoe": "Relief aus Rhyolith (Hacke)", + "block.mineralogy.rhyolite_relief_horizontal": "Relief aus Rhyolith (waagerecht)", + "block.mineralogy.rhyolite_relief_i": "Relief aus Rhyolith (I)", + "block.mineralogy.rhyolite_relief_left": "Relief aus Rhyolith (links)", + "block.mineralogy.rhyolite_relief_pickaxe": "Relief aus Rhyolith (Spitzhacke)", + "block.mineralogy.rhyolite_relief_plus": "Relief aus Rhyolith (Pluszeichen)", + "block.mineralogy.rhyolite_relief_right": "Relief aus Rhyolith (rechts)", + "block.mineralogy.rhyolite_relief_sword": "Relief aus Rhyolith (Schwert)", + "block.mineralogy.rhyolite_relief_vertical": "Relief aus Rhyolith (senkrecht)", + "block.mineralogy.pegmatite_relief_axe": "Relief aus Pegmatit (Axt)", + "block.mineralogy.pegmatite_relief_blank": "Relief aus Pegmatit (ohne Motiv)", + "block.mineralogy.pegmatite_relief_cross": "Relief aus Pegmatit (Kreuz)", + "block.mineralogy.pegmatite_relief_hammer": "Relief aus Pegmatit (Hammer)", + "block.mineralogy.pegmatite_relief_hoe": "Relief aus Pegmatit (Hacke)", + "block.mineralogy.pegmatite_relief_horizontal": "Relief aus Pegmatit (waagerecht)", + "block.mineralogy.pegmatite_relief_i": "Relief aus Pegmatit (I)", + "block.mineralogy.pegmatite_relief_left": "Relief aus Pegmatit (links)", + "block.mineralogy.pegmatite_relief_pickaxe": "Relief aus Pegmatit (Spitzhacke)", + "block.mineralogy.pegmatite_relief_plus": "Relief aus Pegmatit (Pluszeichen)", + "block.mineralogy.pegmatite_relief_right": "Relief aus Pegmatit (rechts)", + "block.mineralogy.pegmatite_relief_sword": "Relief aus Pegmatit (Schwert)", + "block.mineralogy.pegmatite_relief_vertical": "Relief aus Pegmatit (senkrecht)", + "block.mineralogy.shale_relief_axe": "Relief aus Tonschiefer (Axt)", + "block.mineralogy.shale_relief_blank": "Relief aus Tonschiefer (ohne Motiv)", + "block.mineralogy.shale_relief_cross": "Relief aus Tonschiefer (Kreuz)", + "block.mineralogy.shale_relief_hammer": "Relief aus Tonschiefer (Hammer)", + "block.mineralogy.shale_relief_hoe": "Relief aus Tonschiefer (Hacke)", + "block.mineralogy.shale_relief_horizontal": "Relief aus Tonschiefer (waagerecht)", + "block.mineralogy.shale_relief_i": "Relief aus Tonschiefer (I)", + "block.mineralogy.shale_relief_left": "Relief aus Tonschiefer (links)", + "block.mineralogy.shale_relief_pickaxe": "Relief aus Tonschiefer (Spitzhacke)", + "block.mineralogy.shale_relief_plus": "Relief aus Tonschiefer (Pluszeichen)", + "block.mineralogy.shale_relief_right": "Relief aus Tonschiefer (rechts)", + "block.mineralogy.shale_relief_sword": "Relief aus Tonschiefer (Schwert)", + "block.mineralogy.shale_relief_vertical": "Relief aus Tonschiefer (senkrecht)", + "block.mineralogy.conglomerate_relief_axe": "Relief aus Konglomerat (Axt)", + "block.mineralogy.conglomerate_relief_blank": "Relief aus Konglomerat (ohne Motiv)", + "block.mineralogy.conglomerate_relief_cross": "Relief aus Konglomerat (Kreuz)", + "block.mineralogy.conglomerate_relief_hammer": "Relief aus Konglomerat (Hammer)", + "block.mineralogy.conglomerate_relief_hoe": "Relief aus Konglomerat (Hacke)", + "block.mineralogy.conglomerate_relief_horizontal": "Relief aus Konglomerat (waagerecht)", + "block.mineralogy.conglomerate_relief_i": "Relief aus Konglomerat (I)", + "block.mineralogy.conglomerate_relief_left": "Relief aus Konglomerat (links)", + "block.mineralogy.conglomerate_relief_pickaxe": "Relief aus Konglomerat (Spitzhacke)", + "block.mineralogy.conglomerate_relief_plus": "Relief aus Konglomerat (Pluszeichen)", + "block.mineralogy.conglomerate_relief_right": "Relief aus Konglomerat (rechts)", + "block.mineralogy.conglomerate_relief_sword": "Relief aus Konglomerat (Schwert)", + "block.mineralogy.conglomerate_relief_vertical": "Relief aus Konglomerat (senkrecht)", + "block.mineralogy.dolomite_relief_axe": "Relief aus Dolomit (Axt)", + "block.mineralogy.dolomite_relief_blank": "Relief aus Dolomit (ohne Motiv)", + "block.mineralogy.dolomite_relief_cross": "Relief aus Dolomit (Kreuz)", + "block.mineralogy.dolomite_relief_hammer": "Relief aus Dolomit (Hammer)", + "block.mineralogy.dolomite_relief_hoe": "Relief aus Dolomit (Hacke)", + "block.mineralogy.dolomite_relief_horizontal": "Relief aus Dolomit (waagerecht)", + "block.mineralogy.dolomite_relief_i": "Relief aus Dolomit (I)", + "block.mineralogy.dolomite_relief_left": "Relief aus Dolomit (links)", + "block.mineralogy.dolomite_relief_pickaxe": "Relief aus Dolomit (Spitzhacke)", + "block.mineralogy.dolomite_relief_plus": "Relief aus Dolomit (Pluszeichen)", + "block.mineralogy.dolomite_relief_right": "Relief aus Dolomit (rechts)", + "block.mineralogy.dolomite_relief_sword": "Relief aus Dolomit (Schwert)", + "block.mineralogy.dolomite_relief_vertical": "Relief aus Dolomit (senkrecht)", + "block.mineralogy.limestone_relief_axe": "Relief aus Kalkstein (Axt)", + "block.mineralogy.limestone_relief_blank": "Relief aus Kalkstein (ohne Motiv)", + "block.mineralogy.limestone_relief_cross": "Relief aus Kalkstein (Kreuz)", + "block.mineralogy.limestone_relief_hammer": "Relief aus Kalkstein (Hammer)", + "block.mineralogy.limestone_relief_hoe": "Relief aus Kalkstein (Hacke)", + "block.mineralogy.limestone_relief_horizontal": "Relief aus Kalkstein (waagerecht)", + "block.mineralogy.limestone_relief_i": "Relief aus Kalkstein (I)", + "block.mineralogy.limestone_relief_left": "Relief aus Kalkstein (links)", + "block.mineralogy.limestone_relief_pickaxe": "Relief aus Kalkstein (Spitzhacke)", + "block.mineralogy.limestone_relief_plus": "Relief aus Kalkstein (Pluszeichen)", + "block.mineralogy.limestone_relief_right": "Relief aus Kalkstein (rechts)", + "block.mineralogy.limestone_relief_sword": "Relief aus Kalkstein (Schwert)", + "block.mineralogy.limestone_relief_vertical": "Relief aus Kalkstein (senkrecht)", + "block.mineralogy.marble_relief_axe": "Relief aus Marmor (Axt)", + "block.mineralogy.marble_relief_blank": "Relief aus Marmor (ohne Motiv)", + "block.mineralogy.marble_relief_cross": "Relief aus Marmor (Kreuz)", + "block.mineralogy.marble_relief_hammer": "Relief aus Marmor (Hammer)", + "block.mineralogy.marble_relief_hoe": "Relief aus Marmor (Hacke)", + "block.mineralogy.marble_relief_horizontal": "Relief aus Marmor (waagerecht)", + "block.mineralogy.marble_relief_i": "Relief aus Marmor (I)", + "block.mineralogy.marble_relief_left": "Relief aus Marmor (links)", + "block.mineralogy.marble_relief_pickaxe": "Relief aus Marmor (Spitzhacke)", + "block.mineralogy.marble_relief_plus": "Relief aus Marmor (Pluszeichen)", + "block.mineralogy.marble_relief_right": "Relief aus Marmor (rechts)", + "block.mineralogy.marble_relief_sword": "Relief aus Marmor (Schwert)", + "block.mineralogy.marble_relief_vertical": "Relief aus Marmor (senkrecht)", + "block.mineralogy.slate_relief_axe": "Relief aus Schiefer (Axt)", + "block.mineralogy.slate_relief_blank": "Relief aus Schiefer (ohne Motiv)", + "block.mineralogy.slate_relief_cross": "Relief aus Schiefer (Kreuz)", + "block.mineralogy.slate_relief_hammer": "Relief aus Schiefer (Hammer)", + "block.mineralogy.slate_relief_hoe": "Relief aus Schiefer (Hacke)", + "block.mineralogy.slate_relief_horizontal": "Relief aus Schiefer (waagerecht)", + "block.mineralogy.slate_relief_i": "Relief aus Schiefer (I)", + "block.mineralogy.slate_relief_left": "Relief aus Schiefer (links)", + "block.mineralogy.slate_relief_pickaxe": "Relief aus Schiefer (Spitzhacke)", + "block.mineralogy.slate_relief_plus": "Relief aus Schiefer (Pluszeichen)", + "block.mineralogy.slate_relief_right": "Relief aus Schiefer (rechts)", + "block.mineralogy.slate_relief_sword": "Relief aus Schiefer (Schwert)", + "block.mineralogy.slate_relief_vertical": "Relief aus Schiefer (senkrecht)", + "block.mineralogy.schist_relief_axe": "Relief aus Glimmerschiefer (Axt)", + "block.mineralogy.schist_relief_blank": "Relief aus Glimmerschiefer (ohne Motiv)", + "block.mineralogy.schist_relief_cross": "Relief aus Glimmerschiefer (Kreuz)", + "block.mineralogy.schist_relief_hammer": "Relief aus Glimmerschiefer (Hammer)", + "block.mineralogy.schist_relief_hoe": "Relief aus Glimmerschiefer (Hacke)", + "block.mineralogy.schist_relief_horizontal": "Relief aus Glimmerschiefer (waagerecht)", + "block.mineralogy.schist_relief_i": "Relief aus Glimmerschiefer (I)", + "block.mineralogy.schist_relief_left": "Relief aus Glimmerschiefer (links)", + "block.mineralogy.schist_relief_pickaxe": "Relief aus Glimmerschiefer (Spitzhacke)", + "block.mineralogy.schist_relief_plus": "Relief aus Glimmerschiefer (Pluszeichen)", + "block.mineralogy.schist_relief_right": "Relief aus Glimmerschiefer (rechts)", + "block.mineralogy.schist_relief_sword": "Relief aus Glimmerschiefer (Schwert)", + "block.mineralogy.schist_relief_vertical": "Relief aus Glimmerschiefer (senkrecht)", + "block.mineralogy.gneiss_relief_axe": "Relief aus Gneis (Axt)", + "block.mineralogy.gneiss_relief_blank": "Relief aus Gneis (ohne Motiv)", + "block.mineralogy.gneiss_relief_cross": "Relief aus Gneis (Kreuz)", + "block.mineralogy.gneiss_relief_hammer": "Relief aus Gneis (Hammer)", + "block.mineralogy.gneiss_relief_hoe": "Relief aus Gneis (Hacke)", + "block.mineralogy.gneiss_relief_horizontal": "Relief aus Gneis (waagerecht)", + "block.mineralogy.gneiss_relief_i": "Relief aus Gneis (I)", + "block.mineralogy.gneiss_relief_left": "Relief aus Gneis (links)", + "block.mineralogy.gneiss_relief_pickaxe": "Relief aus Gneis (Spitzhacke)", + "block.mineralogy.gneiss_relief_plus": "Relief aus Gneis (Pluszeichen)", + "block.mineralogy.gneiss_relief_right": "Relief aus Gneis (rechts)", + "block.mineralogy.gneiss_relief_sword": "Relief aus Gneis (Schwert)", + "block.mineralogy.gneiss_relief_vertical": "Relief aus Gneis (senkrecht)", + "block.mineralogy.phyllite_relief_axe": "Relief aus Phyllit (Axt)", + "block.mineralogy.phyllite_relief_blank": "Relief aus Phyllit (ohne Motiv)", + "block.mineralogy.phyllite_relief_cross": "Relief aus Phyllit (Kreuz)", + "block.mineralogy.phyllite_relief_hammer": "Relief aus Phyllit (Hammer)", + "block.mineralogy.phyllite_relief_hoe": "Relief aus Phyllit (Hacke)", + "block.mineralogy.phyllite_relief_horizontal": "Relief aus Phyllit (waagerecht)", + "block.mineralogy.phyllite_relief_i": "Relief aus Phyllit (I)", + "block.mineralogy.phyllite_relief_left": "Relief aus Phyllit (links)", + "block.mineralogy.phyllite_relief_pickaxe": "Relief aus Phyllit (Spitzhacke)", + "block.mineralogy.phyllite_relief_plus": "Relief aus Phyllit (Pluszeichen)", + "block.mineralogy.phyllite_relief_right": "Relief aus Phyllit (rechts)", + "block.mineralogy.phyllite_relief_sword": "Relief aus Phyllit (Schwert)", + "block.mineralogy.phyllite_relief_vertical": "Relief aus Phyllit (senkrecht)", + "block.mineralogy.amphibolite_relief_axe": "Relief aus Amphibolit (Axt)", + "block.mineralogy.amphibolite_relief_blank": "Relief aus Amphibolit (ohne Motiv)", + "block.mineralogy.amphibolite_relief_cross": "Relief aus Amphibolit (Kreuz)", + "block.mineralogy.amphibolite_relief_hammer": "Relief aus Amphibolit (Hammer)", + "block.mineralogy.amphibolite_relief_hoe": "Relief aus Amphibolit (Hacke)", + "block.mineralogy.amphibolite_relief_horizontal": "Relief aus Amphibolit (waagerecht)", + "block.mineralogy.amphibolite_relief_i": "Relief aus Amphibolit (I)", + "block.mineralogy.amphibolite_relief_left": "Relief aus Amphibolit (links)", + "block.mineralogy.amphibolite_relief_pickaxe": "Relief aus Amphibolit (Spitzhacke)", + "block.mineralogy.amphibolite_relief_plus": "Relief aus Amphibolit (Pluszeichen)", + "block.mineralogy.amphibolite_relief_right": "Relief aus Amphibolit (rechts)", + "block.mineralogy.amphibolite_relief_sword": "Relief aus Amphibolit (Schwert)", + "block.mineralogy.amphibolite_relief_vertical": "Relief aus Amphibolit (senkrecht)", + "block.mineralogy.diabase_relief_axe": "Relief aus Diabas (Axt)", + "block.mineralogy.diabase_relief_blank": "Relief aus Diabas (ohne Motiv)", + "block.mineralogy.diabase_relief_cross": "Relief aus Diabas (Kreuz)", + "block.mineralogy.diabase_relief_hammer": "Relief aus Diabas (Hammer)", + "block.mineralogy.diabase_relief_hoe": "Relief aus Diabas (Hacke)", + "block.mineralogy.diabase_relief_horizontal": "Relief aus Diabas (waagerecht)", + "block.mineralogy.diabase_relief_i": "Relief aus Diabas (I)", + "block.mineralogy.diabase_relief_left": "Relief aus Diabas (links)", + "block.mineralogy.diabase_relief_pickaxe": "Relief aus Diabas (Spitzhacke)", + "block.mineralogy.diabase_relief_plus": "Relief aus Diabas (Pluszeichen)", + "block.mineralogy.diabase_relief_right": "Relief aus Diabas (rechts)", + "block.mineralogy.diabase_relief_sword": "Relief aus Diabas (Schwert)", + "block.mineralogy.diabase_relief_vertical": "Relief aus Diabas (senkrecht)", + "block.mineralogy.gabbro_relief_axe": "Relief aus Gabbro (Axt)", + "block.mineralogy.gabbro_relief_blank": "Relief aus Gabbro (ohne Motiv)", + "block.mineralogy.gabbro_relief_cross": "Relief aus Gabbro (Kreuz)", + "block.mineralogy.gabbro_relief_hammer": "Relief aus Gabbro (Hammer)", + "block.mineralogy.gabbro_relief_hoe": "Relief aus Gabbro (Hacke)", + "block.mineralogy.gabbro_relief_horizontal": "Relief aus Gabbro (waagerecht)", + "block.mineralogy.gabbro_relief_i": "Relief aus Gabbro (I)", + "block.mineralogy.gabbro_relief_left": "Relief aus Gabbro (links)", + "block.mineralogy.gabbro_relief_pickaxe": "Relief aus Gabbro (Spitzhacke)", + "block.mineralogy.gabbro_relief_plus": "Relief aus Gabbro (Pluszeichen)", + "block.mineralogy.gabbro_relief_right": "Relief aus Gabbro (rechts)", + "block.mineralogy.gabbro_relief_sword": "Relief aus Gabbro (Schwert)", + "block.mineralogy.gabbro_relief_vertical": "Relief aus Gabbro (senkrecht)", + "block.mineralogy.peridotite_relief_axe": "Relief aus Peridotit (Axt)", + "block.mineralogy.peridotite_relief_blank": "Relief aus Peridotit (ohne Motiv)", + "block.mineralogy.peridotite_relief_cross": "Relief aus Peridotit (Kreuz)", + "block.mineralogy.peridotite_relief_hammer": "Relief aus Peridotit (Hammer)", + "block.mineralogy.peridotite_relief_hoe": "Relief aus Peridotit (Hacke)", + "block.mineralogy.peridotite_relief_horizontal": "Relief aus Peridotit (waagerecht)", + "block.mineralogy.peridotite_relief_i": "Relief aus Peridotit (I)", + "block.mineralogy.peridotite_relief_left": "Relief aus Peridotit (links)", + "block.mineralogy.peridotite_relief_pickaxe": "Relief aus Peridotit (Spitzhacke)", + "block.mineralogy.peridotite_relief_plus": "Relief aus Peridotit (Pluszeichen)", + "block.mineralogy.peridotite_relief_right": "Relief aus Peridotit (rechts)", + "block.mineralogy.peridotite_relief_sword": "Relief aus Peridotit (Schwert)", + "block.mineralogy.peridotite_relief_vertical": "Relief aus Peridotit (senkrecht)", + "block.mineralogy.basaltic_glass_relief_axe": "Relief aus Basaltglas (Axt)", + "block.mineralogy.basaltic_glass_relief_blank": "Relief aus Basaltglas (ohne Motiv)", + "block.mineralogy.basaltic_glass_relief_cross": "Relief aus Basaltglas (Kreuz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Relief aus Basaltglas (Hammer)", + "block.mineralogy.basaltic_glass_relief_hoe": "Relief aus Basaltglas (Hacke)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Relief aus Basaltglas (waagerecht)", + "block.mineralogy.basaltic_glass_relief_i": "Relief aus Basaltglas (I)", + "block.mineralogy.basaltic_glass_relief_left": "Relief aus Basaltglas (links)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Relief aus Basaltglas (Spitzhacke)", + "block.mineralogy.basaltic_glass_relief_plus": "Relief aus Basaltglas (Pluszeichen)", + "block.mineralogy.basaltic_glass_relief_right": "Relief aus Basaltglas (rechts)", + "block.mineralogy.basaltic_glass_relief_sword": "Relief aus Basaltglas (Schwert)", + "block.mineralogy.basaltic_glass_relief_vertical": "Relief aus Basaltglas (senkrecht)", + "block.mineralogy.scoria_relief_axe": "Relief aus Skoria (Axt)", + "block.mineralogy.scoria_relief_blank": "Relief aus Skoria (ohne Motiv)", + "block.mineralogy.scoria_relief_cross": "Relief aus Skoria (Kreuz)", + "block.mineralogy.scoria_relief_hammer": "Relief aus Skoria (Hammer)", + "block.mineralogy.scoria_relief_hoe": "Relief aus Skoria (Hacke)", + "block.mineralogy.scoria_relief_horizontal": "Relief aus Skoria (waagerecht)", + "block.mineralogy.scoria_relief_i": "Relief aus Skoria (I)", + "block.mineralogy.scoria_relief_left": "Relief aus Skoria (links)", + "block.mineralogy.scoria_relief_pickaxe": "Relief aus Skoria (Spitzhacke)", + "block.mineralogy.scoria_relief_plus": "Relief aus Skoria (Pluszeichen)", + "block.mineralogy.scoria_relief_right": "Relief aus Skoria (rechts)", + "block.mineralogy.scoria_relief_sword": "Relief aus Skoria (Schwert)", + "block.mineralogy.scoria_relief_vertical": "Relief aus Skoria (senkrecht)", + "block.mineralogy.tuff_relief_axe": "Relief aus Tuffstein (Axt)", + "block.mineralogy.tuff_relief_blank": "Relief aus Tuffstein (ohne Motiv)", + "block.mineralogy.tuff_relief_cross": "Relief aus Tuffstein (Kreuz)", + "block.mineralogy.tuff_relief_hammer": "Relief aus Tuffstein (Hammer)", + "block.mineralogy.tuff_relief_hoe": "Relief aus Tuffstein (Hacke)", + "block.mineralogy.tuff_relief_horizontal": "Relief aus Tuffstein (waagerecht)", + "block.mineralogy.tuff_relief_i": "Relief aus Tuffstein (I)", + "block.mineralogy.tuff_relief_left": "Relief aus Tuffstein (links)", + "block.mineralogy.tuff_relief_pickaxe": "Relief aus Tuffstein (Spitzhacke)", + "block.mineralogy.tuff_relief_plus": "Relief aus Tuffstein (Pluszeichen)", + "block.mineralogy.tuff_relief_right": "Relief aus Tuffstein (rechts)", + "block.mineralogy.tuff_relief_sword": "Relief aus Tuffstein (Schwert)", + "block.mineralogy.tuff_relief_vertical": "Relief aus Tuffstein (senkrecht)", + "block.mineralogy.siltstone_relief_axe": "Relief aus Schluffstein (Axt)", + "block.mineralogy.siltstone_relief_blank": "Relief aus Schluffstein (ohne Motiv)", + "block.mineralogy.siltstone_relief_cross": "Relief aus Schluffstein (Kreuz)", + "block.mineralogy.siltstone_relief_hammer": "Relief aus Schluffstein (Hammer)", + "block.mineralogy.siltstone_relief_hoe": "Relief aus Schluffstein (Hacke)", + "block.mineralogy.siltstone_relief_horizontal": "Relief aus Schluffstein (waagerecht)", + "block.mineralogy.siltstone_relief_i": "Relief aus Schluffstein (I)", + "block.mineralogy.siltstone_relief_left": "Relief aus Schluffstein (links)", + "block.mineralogy.siltstone_relief_pickaxe": "Relief aus Schluffstein (Spitzhacke)", + "block.mineralogy.siltstone_relief_plus": "Relief aus Schluffstein (Pluszeichen)", + "block.mineralogy.siltstone_relief_right": "Relief aus Schluffstein (rechts)", + "block.mineralogy.siltstone_relief_sword": "Relief aus Schluffstein (Schwert)", + "block.mineralogy.siltstone_relief_vertical": "Relief aus Schluffstein (senkrecht)", + "block.mineralogy.rock_salt_relief_axe": "Relief aus Steinsalz (Axt)", + "block.mineralogy.rock_salt_relief_blank": "Relief aus Steinsalz (ohne Motiv)", + "block.mineralogy.rock_salt_relief_cross": "Relief aus Steinsalz (Kreuz)", + "block.mineralogy.rock_salt_relief_hammer": "Relief aus Steinsalz (Hammer)", + "block.mineralogy.rock_salt_relief_hoe": "Relief aus Steinsalz (Hacke)", + "block.mineralogy.rock_salt_relief_horizontal": "Relief aus Steinsalz (waagerecht)", + "block.mineralogy.rock_salt_relief_i": "Relief aus Steinsalz (I)", + "block.mineralogy.rock_salt_relief_left": "Relief aus Steinsalz (links)", + "block.mineralogy.rock_salt_relief_pickaxe": "Relief aus Steinsalz (Spitzhacke)", + "block.mineralogy.rock_salt_relief_plus": "Relief aus Steinsalz (Pluszeichen)", + "block.mineralogy.rock_salt_relief_right": "Relief aus Steinsalz (rechts)", + "block.mineralogy.rock_salt_relief_sword": "Relief aus Steinsalz (Schwert)", + "block.mineralogy.rock_salt_relief_vertical": "Relief aus Steinsalz (senkrecht)", + "block.mineralogy.hornfels_relief_axe": "Relief aus Hornfels (Axt)", + "block.mineralogy.hornfels_relief_blank": "Relief aus Hornfels (ohne Motiv)", + "block.mineralogy.hornfels_relief_cross": "Relief aus Hornfels (Kreuz)", + "block.mineralogy.hornfels_relief_hammer": "Relief aus Hornfels (Hammer)", + "block.mineralogy.hornfels_relief_hoe": "Relief aus Hornfels (Hacke)", + "block.mineralogy.hornfels_relief_horizontal": "Relief aus Hornfels (waagerecht)", + "block.mineralogy.hornfels_relief_i": "Relief aus Hornfels (I)", + "block.mineralogy.hornfels_relief_left": "Relief aus Hornfels (links)", + "block.mineralogy.hornfels_relief_pickaxe": "Relief aus Hornfels (Spitzhacke)", + "block.mineralogy.hornfels_relief_plus": "Relief aus Hornfels (Pluszeichen)", + "block.mineralogy.hornfels_relief_right": "Relief aus Hornfels (rechts)", + "block.mineralogy.hornfels_relief_sword": "Relief aus Hornfels (Schwert)", + "block.mineralogy.hornfels_relief_vertical": "Relief aus Hornfels (senkrecht)", + "block.mineralogy.quartzite_relief_axe": "Relief aus Quarzit (Axt)", + "block.mineralogy.quartzite_relief_blank": "Relief aus Quarzit (ohne Motiv)", + "block.mineralogy.quartzite_relief_cross": "Relief aus Quarzit (Kreuz)", + "block.mineralogy.quartzite_relief_hammer": "Relief aus Quarzit (Hammer)", + "block.mineralogy.quartzite_relief_hoe": "Relief aus Quarzit (Hacke)", + "block.mineralogy.quartzite_relief_horizontal": "Relief aus Quarzit (waagerecht)", + "block.mineralogy.quartzite_relief_i": "Relief aus Quarzit (I)", + "block.mineralogy.quartzite_relief_left": "Relief aus Quarzit (links)", + "block.mineralogy.quartzite_relief_pickaxe": "Relief aus Quarzit (Spitzhacke)", + "block.mineralogy.quartzite_relief_plus": "Relief aus Quarzit (Pluszeichen)", + "block.mineralogy.quartzite_relief_right": "Relief aus Quarzit (rechts)", + "block.mineralogy.quartzite_relief_sword": "Relief aus Quarzit (Schwert)", + "block.mineralogy.quartzite_relief_vertical": "Relief aus Quarzit (senkrecht)", + "block.mineralogy.novaculite_relief_axe": "Relief aus Novakulit (Axt)", + "block.mineralogy.novaculite_relief_blank": "Relief aus Novakulit (ohne Motiv)", + "block.mineralogy.novaculite_relief_cross": "Relief aus Novakulit (Kreuz)", + "block.mineralogy.novaculite_relief_hammer": "Relief aus Novakulit (Hammer)", + "block.mineralogy.novaculite_relief_hoe": "Relief aus Novakulit (Hacke)", + "block.mineralogy.novaculite_relief_horizontal": "Relief aus Novakulit (waagerecht)", + "block.mineralogy.novaculite_relief_i": "Relief aus Novakulit (I)", + "block.mineralogy.novaculite_relief_left": "Relief aus Novakulit (links)", + "block.mineralogy.novaculite_relief_pickaxe": "Relief aus Novakulit (Spitzhacke)", + "block.mineralogy.novaculite_relief_plus": "Relief aus Novakulit (Pluszeichen)", + "block.mineralogy.novaculite_relief_right": "Relief aus Novakulit (rechts)", + "block.mineralogy.novaculite_relief_sword": "Relief aus Novakulit (Schwert)", + "block.mineralogy.novaculite_relief_vertical": "Relief aus Novakulit (senkrecht)", "itemGroup.mineralogy.mineralogy": "Mineralogie", "itemGroup.mineralogy.rock": "Mineralogische Gesteine", - "itemGroup.mineralogy.stair": "Mineralogie-Treppe", - "itemGroup.mineralogy.slab": "Mineralogieplatten", - "itemGroup.mineralogy.wall": "Mineralogie-Wände", - "itemGroup.mineralogy.item": "Mineralogieartikel" + "itemGroup.mineralogy.stair": "Mineralogie-Treppen", + "itemGroup.mineralogy.slab": "Mineralogie-Stufen", + "itemGroup.mineralogy.wall": "Mineralogie-Mauern", + "itemGroup.mineralogy.item": "Mineralogie-Gegenstände", + "block.mineralogy.crude_oil": "Rohöl", + "item.mineralogy.crude_oil_bucket": "Rohöleimer", + "fluid.mineralogy.crude_oil": "Rohöl", + "advancements.mineralogy.all_the_rocks.title": "Alle Gesteine", + "advancements.mineralogy.all_the_rocks.description": "Du hast alle Standardgesteine in Mineralogy gefunden!" } diff --git a/src/main/resources/assets/mineralogy/lang/de_de.json b/src/main/resources/assets/mineralogy/lang/de_de.json index 2928e5a1c..09373688a 100644 --- a/src/main/resources/assets/mineralogy/lang/de_de.json +++ b/src/main/resources/assets/mineralogy/lang/de_de.json @@ -1,202 +1,202 @@ { "block.mineralogy.andesite": "Andesit", - "block.mineralogy.andesite_stairs": "Andesit-Treppe", - "block.mineralogy.andesite_slab": "Andesit-Platte", - "block.mineralogy.andesite_brick": "Andesit-Ziegelstein", - "block.mineralogy.andesite_brick_stairs": "Andesit-Ziegelstein-Treppe", - "block.mineralogy.andesite_brick_slab": "Andesit-Ziegelsteinplatte", - "block.mineralogy.andesite_smooth": "Polierter Andesit", - "block.mineralogy.andesite_smooth_stairs": "Polierte Andesit-Treppe", - "block.mineralogy.andesite_smooth_slab": "Polierte Andesit-Platte", - "block.mineralogy.andesite_smooth_brick": "Polierter Andesit-Ziegelstein", - "block.mineralogy.andesite_smooth_brick_stairs": "Polierte Andesit-Ziegelstein-Treppe", - "block.mineralogy.andesite_smooth_brick_slab": "Polierte Andesit-Ziegelsteinplatte", + "block.mineralogy.andesite_stairs": "Treppe aus Andesit", + "block.mineralogy.andesite_slab": "Stufe aus Andesit", + "block.mineralogy.andesite_brick": "Ziegel aus Andesit", + "block.mineralogy.andesite_brick_stairs": "Ziegeltreppe aus Andesit", + "block.mineralogy.andesite_brick_slab": "Ziegelstufe aus Andesit", + "block.mineralogy.andesite_smooth": "Polierter Block aus Andesit", + "block.mineralogy.andesite_smooth_stairs": "Polierte Treppe aus Andesit", + "block.mineralogy.andesite_smooth_slab": "Polierte Stufe aus Andesit", + "block.mineralogy.andesite_smooth_brick": "Polierte Ziegel aus Andesit", + "block.mineralogy.andesite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Andesit", + "block.mineralogy.andesite_smooth_brick_slab": "Polierte Ziegelstufe aus Andesit", "block.mineralogy.basalt": "Basalt", - "block.mineralogy.basalt_stairs": "Basalt Treppen", - "block.mineralogy.basalt_slab": "Basaltplatte", - "block.mineralogy.basalt_brick": "Basaltstein", - "block.mineralogy.basalt_brick_stairs": "Basaltstein Treppen", - "block.mineralogy.basalt_brick_slab": "Basaltstein Platte", - "block.mineralogy.basalt_smooth": "Polierter Basalt", - "block.mineralogy.basalt_smooth_stairs": "Polierte Basalt Treppen", - "block.mineralogy.basalt_smooth_slab": "Polierte Basaltplatte", - "block.mineralogy.basalt_smooth_brick": "Polierter Basaltstein", - "block.mineralogy.basalt_smooth_brick_stairs": "Polierter Basaltstein-Treppen", - "block.mineralogy.basalt_smooth_brick_slab": "Polierter Basaltstein-Platte", + "block.mineralogy.basalt_stairs": "Treppe aus Basalt", + "block.mineralogy.basalt_slab": "Stufe aus Basalt", + "block.mineralogy.basalt_brick": "Ziegel aus Basalt", + "block.mineralogy.basalt_brick_stairs": "Ziegeltreppe aus Basalt", + "block.mineralogy.basalt_brick_slab": "Ziegelstufe aus Basalt", + "block.mineralogy.basalt_smooth": "Polierter Block aus Basalt", + "block.mineralogy.basalt_smooth_stairs": "Polierte Treppe aus Basalt", + "block.mineralogy.basalt_smooth_slab": "Polierte Stufe aus Basalt", + "block.mineralogy.basalt_smooth_brick": "Polierte Ziegel aus Basalt", + "block.mineralogy.basalt_smooth_brick_stairs": "Polierte Ziegeltreppe aus Basalt", + "block.mineralogy.basalt_smooth_brick_slab": "Polierte Ziegelstufe aus Basalt", "block.mineralogy.diorite": "Diorit", - "block.mineralogy.diorite_stairs": "Diorite Treppen", - "block.mineralogy.diorite_slab": "Dioritplatte", - "block.mineralogy.diorite_brick": "Dioritstein", - "block.mineralogy.diorite_brick_stairs": "Dioritstein Treppen", - "block.mineralogy.diorite_brick_slab": "Dioritstein Platte", - "block.mineralogy.diorite_smooth": "Polierter Diorit", - "block.mineralogy.diorite_smooth_stairs": "Polierte Diorit-Treppe", - "block.mineralogy.diorite_smooth_slab": "Polierte Dioritplatte", - "block.mineralogy.diorite_smooth_brick": "Polierter Diorit-Ziegelstein", - "block.mineralogy.diorite_smooth_brick_stairs": "Polierte Dioritstein-Treppe", - "block.mineralogy.diorite_smooth_brick_slab": "Polierte Dioritstein-Platte", + "block.mineralogy.diorite_stairs": "Treppe aus Diorit", + "block.mineralogy.diorite_slab": "Stufe aus Diorit", + "block.mineralogy.diorite_brick": "Ziegel aus Diorit", + "block.mineralogy.diorite_brick_stairs": "Ziegeltreppe aus Diorit", + "block.mineralogy.diorite_brick_slab": "Ziegelstufe aus Diorit", + "block.mineralogy.diorite_smooth": "Polierter Block aus Diorit", + "block.mineralogy.diorite_smooth_stairs": "Polierte Treppe aus Diorit", + "block.mineralogy.diorite_smooth_slab": "Polierte Stufe aus Diorit", + "block.mineralogy.diorite_smooth_brick": "Polierte Ziegel aus Diorit", + "block.mineralogy.diorite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Diorit", + "block.mineralogy.diorite_smooth_brick_slab": "Polierte Ziegelstufe aus Diorit", "block.mineralogy.granite": "Granit", - "block.mineralogy.granite_stairs": "Granit Treppe", - "block.mineralogy.granite_slab": "Granitplatte", - "block.mineralogy.granite_brick": "Granitstein", - "block.mineralogy.granite_brick_stairs": "Granitstein-Treppen", - "block.mineralogy.granite_brick_slab": "Granitstein-Platte", - "block.mineralogy.granite_smooth": "Polierter Granit", - "block.mineralogy.granite_smooth_stairs": "Polierte Granittreppe", - "block.mineralogy.granite_smooth_slab": "Polierte Granitplatte", - "block.mineralogy.granite_smooth_brick": "Polierter Granitstein", - "block.mineralogy.granite_smooth_brick_stairs": "Polierter Granitstein-Treppen", - "block.mineralogy.granite_smooth_brick_slab": "Polierter Granitstein-Platte", + "block.mineralogy.granite_stairs": "Treppe aus Granit", + "block.mineralogy.granite_slab": "Stufe aus Granit", + "block.mineralogy.granite_brick": "Ziegel aus Granit", + "block.mineralogy.granite_brick_stairs": "Ziegeltreppe aus Granit", + "block.mineralogy.granite_brick_slab": "Ziegelstufe aus Granit", + "block.mineralogy.granite_smooth": "Polierter Block aus Granit", + "block.mineralogy.granite_smooth_stairs": "Polierte Treppe aus Granit", + "block.mineralogy.granite_smooth_slab": "Polierte Stufe aus Granit", + "block.mineralogy.granite_smooth_brick": "Polierte Ziegel aus Granit", + "block.mineralogy.granite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Granit", + "block.mineralogy.granite_smooth_brick_slab": "Polierte Ziegelstufe aus Granit", "block.mineralogy.rhyolite": "Rhyolith", - "block.mineralogy.rhyolite_stairs": "Rhyolith Treppen", - "block.mineralogy.rhyolite_slab": "Rhyolithplatte", - "block.mineralogy.rhyolite_brick": "Rhyolith-Ziegelstein", - "block.mineralogy.rhyolite_brick_stairs": "Rhyolith-Ziegelstein-Treppen", - "block.mineralogy.rhyolite_brick_slab": "Rhyolith-Ziegelstein-Platte", - "block.mineralogy.rhyolite_smooth": "Polierter Rhyolith", - "block.mineralogy.rhyolite_smooth_stairs": "Polierte Rhyolith Treppen", - "block.mineralogy.rhyolite_smooth_slab": "Polierte Rhyolithplatte", - "block.mineralogy.rhyolite_smooth_brick": "Polierter Rhyolith-Ziegelstein", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Polierte Rhyolith-Ziegelstein-Treppe", - "block.mineralogy.rhyolite_smooth_brick_slab": "Polierte Rhyolith-Ziegelstein-Platte", + "block.mineralogy.rhyolite_stairs": "Treppe aus Rhyolith", + "block.mineralogy.rhyolite_slab": "Stufe aus Rhyolith", + "block.mineralogy.rhyolite_brick": "Ziegel aus Rhyolith", + "block.mineralogy.rhyolite_brick_stairs": "Ziegeltreppe aus Rhyolith", + "block.mineralogy.rhyolite_brick_slab": "Ziegelstufe aus Rhyolith", + "block.mineralogy.rhyolite_smooth": "Polierter Block aus Rhyolith", + "block.mineralogy.rhyolite_smooth_stairs": "Polierte Treppe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_slab": "Polierte Stufe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick": "Polierte Ziegel aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_slab": "Polierte Ziegelstufe aus Rhyolith", "block.mineralogy.pegmatite": "Pegmatit", - "block.mineralogy.pegmatite_stairs": "Pegmatite-Treppen", - "block.mineralogy.pegmatite_slab": "Pegmatite-Platte", - "block.mineralogy.pegmatite_brick": "Pegmatit-Ziegelstein", - "block.mineralogy.pegmatite_brick_stairs": "Pegmatite-Ziegelstein-Treppe", - "block.mineralogy.pegmatite_brick_slab": "Pegmatite Ziegelsteinplatte", - "block.mineralogy.pegmatite_smooth": "Polierter Pegmatit", - "block.mineralogy.pegmatite_smooth_stairs": "Polierte Pegmatite Treppen", - "block.mineralogy.pegmatite_smooth_slab": "Polierte Pegmatite Platte", - "block.mineralogy.pegmatite_smooth_brick": "Polierter Pegmatit-Ziegelstein", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Polierte Pegmatite-Ziegelstein-Treppe", - "block.mineralogy.pegmatite_smooth_brick_slab": "Polierte Pegmatite Ziegelsteinplatte", - "block.mineralogy.shale": "Schiefer", - "block.mineralogy.shale_stairs": "Schiefer Treppen", - "block.mineralogy.shale_slab": "Schieferplatte", - "block.mineralogy.shale_brick": "Schiefer-Ziegelstein", - "block.mineralogy.shale_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.shale_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.shale_smooth": "Polierter Schiefer", - "block.mineralogy.shale_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.shale_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.shale_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.shale_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.shale_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", + "block.mineralogy.pegmatite_stairs": "Treppe aus Pegmatit", + "block.mineralogy.pegmatite_slab": "Stufe aus Pegmatit", + "block.mineralogy.pegmatite_brick": "Ziegel aus Pegmatit", + "block.mineralogy.pegmatite_brick_stairs": "Ziegeltreppe aus Pegmatit", + "block.mineralogy.pegmatite_brick_slab": "Ziegelstufe aus Pegmatit", + "block.mineralogy.pegmatite_smooth": "Polierter Block aus Pegmatit", + "block.mineralogy.pegmatite_smooth_stairs": "Polierte Treppe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_slab": "Polierte Stufe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick": "Polierte Ziegel aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_slab": "Polierte Ziegelstufe aus Pegmatit", + "block.mineralogy.shale": "Tonschiefer", + "block.mineralogy.shale_stairs": "Treppe aus Tonschiefer", + "block.mineralogy.shale_slab": "Stufe aus Tonschiefer", + "block.mineralogy.shale_brick": "Ziegel aus Tonschiefer", + "block.mineralogy.shale_brick_stairs": "Ziegeltreppe aus Tonschiefer", + "block.mineralogy.shale_brick_slab": "Ziegelstufe aus Tonschiefer", + "block.mineralogy.shale_smooth": "Polierter Block aus Tonschiefer", + "block.mineralogy.shale_smooth_stairs": "Polierte Treppe aus Tonschiefer", + "block.mineralogy.shale_smooth_slab": "Polierte Stufe aus Tonschiefer", + "block.mineralogy.shale_smooth_brick": "Polierte Ziegel aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_stairs": "Polierte Ziegeltreppe aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_slab": "Polierte Ziegelstufe aus Tonschiefer", "block.mineralogy.conglomerate": "Konglomerat", - "block.mineralogy.conglomerate_stairs": "Konglomerat Treppen", - "block.mineralogy.conglomerate_slab": "Konglomeratplatte", - "block.mineralogy.conglomerate_brick": "Konglomerat-Ziegelstein", - "block.mineralogy.conglomerate_brick_stairs": "Konglomerat-Ziegelstein-Treppe", - "block.mineralogy.conglomerate_brick_slab": "Konglomerat-Ziegelstein-Platte", - "block.mineralogy.conglomerate_smooth": "Poliertes Konglomerat", - "block.mineralogy.conglomerate_smooth_stairs": "Polierte Konglomerat Treppen", - "block.mineralogy.conglomerate_smooth_slab": "Polierte Konglomeratplatte", - "block.mineralogy.conglomerate_smooth_brick": "Polierter Konglomerat-Ziegelstein", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Polierter Konglomerat-Ziegelstein-Treppe", - "block.mineralogy.conglomerate_smooth_brick_slab": "Polierter Konglomerat-Ziegelstein-Platte", + "block.mineralogy.conglomerate_stairs": "Treppe aus Konglomerat", + "block.mineralogy.conglomerate_slab": "Stufe aus Konglomerat", + "block.mineralogy.conglomerate_brick": "Ziegel aus Konglomerat", + "block.mineralogy.conglomerate_brick_stairs": "Ziegeltreppe aus Konglomerat", + "block.mineralogy.conglomerate_brick_slab": "Ziegelstufe aus Konglomerat", + "block.mineralogy.conglomerate_smooth": "Polierter Block aus Konglomerat", + "block.mineralogy.conglomerate_smooth_stairs": "Polierte Treppe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_slab": "Polierte Stufe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick": "Polierte Ziegel aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Polierte Ziegeltreppe aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_slab": "Polierte Ziegelstufe aus Konglomerat", "block.mineralogy.dolomite": "Dolomit", - "block.mineralogy.dolomite_stairs": "Dolomit Treppen", - "block.mineralogy.dolomite_slab": "Dolomit-Platte", - "block.mineralogy.dolomite_brick": "Dolomit-Ziegelstein", - "block.mineralogy.dolomite_brick_stairs": "Dolomit-Ziegelstein-Treppe", - "block.mineralogy.dolomite_brick_slab": "Dolomit-Ziegelstein-Platte", - "block.mineralogy.dolomite_smooth": "Polierter Dolomit", - "block.mineralogy.dolomite_smooth_stairs": "Polierte Dolomitentreppe", - "block.mineralogy.dolomite_smooth_slab": "Polierte Dolomitplatte", - "block.mineralogy.dolomite_smooth_brick": "Polierter Dolomitstein", - "block.mineralogy.dolomite_smooth_brick_stairs": "Polierter Dolomit-Ziegelstein-Treppe", - "block.mineralogy.dolomite_smooth_brick_slab": "Polierter Dolomit-Ziegelstein-Platte", + "block.mineralogy.dolomite_stairs": "Treppe aus Dolomit", + "block.mineralogy.dolomite_slab": "Stufe aus Dolomit", + "block.mineralogy.dolomite_brick": "Ziegel aus Dolomit", + "block.mineralogy.dolomite_brick_stairs": "Ziegeltreppe aus Dolomit", + "block.mineralogy.dolomite_brick_slab": "Ziegelstufe aus Dolomit", + "block.mineralogy.dolomite_smooth": "Polierter Block aus Dolomit", + "block.mineralogy.dolomite_smooth_stairs": "Polierte Treppe aus Dolomit", + "block.mineralogy.dolomite_smooth_slab": "Polierte Stufe aus Dolomit", + "block.mineralogy.dolomite_smooth_brick": "Polierte Ziegel aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_slab": "Polierte Ziegelstufe aus Dolomit", "block.mineralogy.limestone": "Kalkstein", - "block.mineralogy.limestone_stairs": "Kalkstein-Treppen", - "block.mineralogy.limestone_slab": "Kalksteinplatte", - "block.mineralogy.limestone_brick": "Kalkstein-Ziegelstein", - "block.mineralogy.limestone_brick_stairs": "Kalkstein-Ziegelstein-Treppe", - "block.mineralogy.limestone_brick_slab": "Kalkstein-Ziegelstein-Platte", - "block.mineralogy.limestone_smooth": "Polierter Kalkstein", - "block.mineralogy.limestone_smooth_stairs": "Polierte Kalksteintreppe", - "block.mineralogy.limestone_smooth_slab": "Polierte Kalksteinplatte", - "block.mineralogy.limestone_smooth_brick": "Polierter Kalkstein-Ziegelstein", - "block.mineralogy.limestone_smooth_brick_stairs": "Polierter Kalkstein-Ziegelstein-Treppe", - "block.mineralogy.limestone_smooth_brick_slab": "Polierter Kalkstein-Ziegelstein-Platte", + "block.mineralogy.limestone_stairs": "Treppe aus Kalkstein", + "block.mineralogy.limestone_slab": "Stufe aus Kalkstein", + "block.mineralogy.limestone_brick": "Ziegel aus Kalkstein", + "block.mineralogy.limestone_brick_stairs": "Ziegeltreppe aus Kalkstein", + "block.mineralogy.limestone_brick_slab": "Ziegelstufe aus Kalkstein", + "block.mineralogy.limestone_smooth": "Polierter Block aus Kalkstein", + "block.mineralogy.limestone_smooth_stairs": "Polierte Treppe aus Kalkstein", + "block.mineralogy.limestone_smooth_slab": "Polierte Stufe aus Kalkstein", + "block.mineralogy.limestone_smooth_brick": "Polierte Ziegel aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_stairs": "Polierte Ziegeltreppe aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_slab": "Polierte Ziegelstufe aus Kalkstein", "block.mineralogy.slate": "Schiefer", - "block.mineralogy.slate_stairs": "Schiefer Treppen", - "block.mineralogy.slate_slab": "Schieferplatte", - "block.mineralogy.slate_brick": "Schiefer-Ziegelstein", - "block.mineralogy.slate_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.slate_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.slate_smooth": "Polierter Schiefer", - "block.mineralogy.slate_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.slate_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.slate_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.slate_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.slate_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", - "block.mineralogy.schist": "Schiefer", - "block.mineralogy.schist_stairs": "Schiefer Treppen", - "block.mineralogy.schist_slab": "Schieferplatte", - "block.mineralogy.schist_brick": "Schiefer-Ziegelstein", - "block.mineralogy.schist_brick_stairs": "Schiefer-Ziegelstein-Treppe", - "block.mineralogy.schist_brick_slab": "Schiefer-Ziegelstein-Platte", - "block.mineralogy.schist_smooth": "Polierter Schiefer", - "block.mineralogy.schist_smooth_stairs": "Polierte Schiefertreppe", - "block.mineralogy.schist_smooth_slab": "Polierte Schieferplatte", - "block.mineralogy.schist_smooth_brick": "Polierter Schiefer-Ziegelstein", - "block.mineralogy.schist_smooth_brick_stairs": "Polierte Schiefer-Ziegelstein-Treppe", - "block.mineralogy.schist_smooth_brick_slab": "Polierte Schiefer-Ziegelstein-Platte", + "block.mineralogy.slate_stairs": "Treppe aus Schiefer", + "block.mineralogy.slate_slab": "Stufe aus Schiefer", + "block.mineralogy.slate_brick": "Ziegel aus Schiefer", + "block.mineralogy.slate_brick_stairs": "Ziegeltreppe aus Schiefer", + "block.mineralogy.slate_brick_slab": "Ziegelstufe aus Schiefer", + "block.mineralogy.slate_smooth": "Polierter Block aus Schiefer", + "block.mineralogy.slate_smooth_stairs": "Polierte Treppe aus Schiefer", + "block.mineralogy.slate_smooth_slab": "Polierte Stufe aus Schiefer", + "block.mineralogy.slate_smooth_brick": "Polierte Ziegel aus Schiefer", + "block.mineralogy.slate_smooth_brick_stairs": "Polierte Ziegeltreppe aus Schiefer", + "block.mineralogy.slate_smooth_brick_slab": "Polierte Ziegelstufe aus Schiefer", + "block.mineralogy.schist": "Glimmerschiefer", + "block.mineralogy.schist_stairs": "Treppe aus Glimmerschiefer", + "block.mineralogy.schist_slab": "Stufe aus Glimmerschiefer", + "block.mineralogy.schist_brick": "Ziegel aus Glimmerschiefer", + "block.mineralogy.schist_brick_stairs": "Ziegeltreppe aus Glimmerschiefer", + "block.mineralogy.schist_brick_slab": "Ziegelstufe aus Glimmerschiefer", + "block.mineralogy.schist_smooth": "Polierter Block aus Glimmerschiefer", + "block.mineralogy.schist_smooth_stairs": "Polierte Treppe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_slab": "Polierte Stufe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick": "Polierte Ziegel aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_stairs": "Polierte Ziegeltreppe aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_slab": "Polierte Ziegelstufe aus Glimmerschiefer", "block.mineralogy.gneiss": "Gneis", - "block.mineralogy.gneiss_stairs": "Gneistreppe", - "block.mineralogy.gneiss_slab": "Gneisplatte", - "block.mineralogy.gneiss_brick": "Gneis Ziegel", - "block.mineralogy.gneiss_brick_stairs": "Gneis Ziegeltreppen", - "block.mineralogy.gneiss_brick_slab": "Gneissteinplatte", - "block.mineralogy.gneiss_smooth": "Polierter Gneis", - "block.mineralogy.gneiss_smooth_stairs": "Polierte Gneistreppe", - "block.mineralogy.gneiss_smooth_slab": "Polierte Gneisplatte", - "block.mineralogy.gneiss_smooth_brick": "Polierter Gneisstein", - "block.mineralogy.gneiss_smooth_brick_stairs": "Polierte Gneisziegeltreppen", - "block.mineralogy.gneiss_smooth_brick_slab": "Polierte Gneissteinplatte", + "block.mineralogy.gneiss_stairs": "Treppe aus Gneis", + "block.mineralogy.gneiss_slab": "Stufe aus Gneis", + "block.mineralogy.gneiss_brick": "Ziegel aus Gneis", + "block.mineralogy.gneiss_brick_stairs": "Ziegeltreppe aus Gneis", + "block.mineralogy.gneiss_brick_slab": "Ziegelstufe aus Gneis", + "block.mineralogy.gneiss_smooth": "Polierter Block aus Gneis", + "block.mineralogy.gneiss_smooth_stairs": "Polierte Treppe aus Gneis", + "block.mineralogy.gneiss_smooth_slab": "Polierte Stufe aus Gneis", + "block.mineralogy.gneiss_smooth_brick": "Polierte Ziegel aus Gneis", + "block.mineralogy.gneiss_smooth_brick_stairs": "Polierte Ziegeltreppe aus Gneis", + "block.mineralogy.gneiss_smooth_brick_slab": "Polierte Ziegelstufe aus Gneis", "block.mineralogy.marble": "Marmor", - "block.mineralogy.marble_stairs": "Marmortreppe", - "block.mineralogy.marble_slab": "Marmorplatte", - "block.mineralogy.marble_brick": "Marmor Backstein", - "block.mineralogy.marble_brick_stairs": "Marmor Backstein Treppe", - "block.mineralogy.marble_brick_slab": "Marmor Ziegelplatte", - "block.mineralogy.marble_smooth": "Polierter Marmor", - "block.mineralogy.marble_smooth_stairs": "Polierte Marmortreppe", - "block.mineralogy.marble_smooth_slab": "Polierte Marmorplatte", - "block.mineralogy.marble_smooth_brick": "Polierter Marmor Ziegelstein", - "block.mineralogy.marble_smooth_brick_stairs": "Polierte Marmor Ziegelstein Treppen", - "block.mineralogy.marble_smooth_brick_slab": "Polierte Marmor Ziegelstein Platte", + "block.mineralogy.marble_stairs": "Treppe aus Marmor", + "block.mineralogy.marble_slab": "Stufe aus Marmor", + "block.mineralogy.marble_brick": "Ziegel aus Marmor", + "block.mineralogy.marble_brick_stairs": "Ziegeltreppe aus Marmor", + "block.mineralogy.marble_brick_slab": "Ziegelstufe aus Marmor", + "block.mineralogy.marble_smooth": "Polierter Block aus Marmor", + "block.mineralogy.marble_smooth_stairs": "Polierte Treppe aus Marmor", + "block.mineralogy.marble_smooth_slab": "Polierte Stufe aus Marmor", + "block.mineralogy.marble_smooth_brick": "Polierte Ziegel aus Marmor", + "block.mineralogy.marble_smooth_brick_stairs": "Polierte Ziegeltreppe aus Marmor", + "block.mineralogy.marble_smooth_brick_slab": "Polierte Ziegelstufe aus Marmor", "block.mineralogy.phyllite": "Phyllit", - "block.mineralogy.phyllite_stairs": "Phyllit Treppen", - "block.mineralogy.phyllite_slab": "Phyllitplatte", - "block.mineralogy.phyllite_brick": "Phyllitstein", - "block.mineralogy.phyllite_brick_stairs": "Phyllite-Ziegelstein-Treppen", - "block.mineralogy.phyllite_brick_slab": "Phyllite-Ziegelstein-Platte", - "block.mineralogy.phyllite_smooth": "Polierter Phyllit", - "block.mineralogy.phyllite_smooth_stairs": "Polierte Phyllit Treppen", - "block.mineralogy.phyllite_smooth_slab": "Polierte Phyllitplatte", - "block.mineralogy.phyllite_smooth_brick": "Polierter Phyllit-Stein", - "block.mineralogy.phyllite_smooth_brick_stairs": "Polierte Phyllit-Ziegelstein-Treppe", - "block.mineralogy.phyllite_smooth_brick_slab": "Polierte Phyllit-Ziegelsteinplatte", + "block.mineralogy.phyllite_stairs": "Treppe aus Phyllit", + "block.mineralogy.phyllite_slab": "Stufe aus Phyllit", + "block.mineralogy.phyllite_brick": "Ziegel aus Phyllit", + "block.mineralogy.phyllite_brick_stairs": "Ziegeltreppe aus Phyllit", + "block.mineralogy.phyllite_brick_slab": "Ziegelstufe aus Phyllit", + "block.mineralogy.phyllite_smooth": "Polierter Block aus Phyllit", + "block.mineralogy.phyllite_smooth_stairs": "Polierte Treppe aus Phyllit", + "block.mineralogy.phyllite_smooth_slab": "Polierte Stufe aus Phyllit", + "block.mineralogy.phyllite_smooth_brick": "Polierte Ziegel aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_slab": "Polierte Ziegelstufe aus Phyllit", "block.mineralogy.amphibolite": "Amphibolit", - "block.mineralogy.amphibolite_stairs": "Amphibolit Treppen", - "block.mineralogy.amphibolite_slab": "Amphibolit-Platte", - "block.mineralogy.amphibolite_brick": "Amphibolitstein", - "block.mineralogy.amphibolite_brick_stairs": "Amphibolit-Ziegelstein-Treppe", - "block.mineralogy.amphibolite_brick_slab": "Amphibolit-Ziegelstein-Platte", - "block.mineralogy.amphibolite_smooth": "Polierter Amphibolit", - "block.mineralogy.amphibolite_smooth_stairs": "Polierte Amphibolit Treppen", - "block.mineralogy.amphibolite_smooth_slab": "Polierte Amphibolitplatte", - "block.mineralogy.amphibolite_smooth_brick": "Polierter Amphibolit-Stein", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Polierte Amphibolit-Ziegelstein-Treppe", - "block.mineralogy.amphibolite_smooth_brick_slab": "Polierte Amphibolit-Ziegelstein-Platte", - "item.mineralogy.gypsum_dust": "Gips Staub", - "item.mineralogy.sulfur_dust": "Schwefel Staub", - "item.mineralogy.phosphorous_dust": "Phosphor Staub", - "item.mineralogy.nitrate_dust": "Nitrat Staub", + "block.mineralogy.amphibolite_stairs": "Treppe aus Amphibolit", + "block.mineralogy.amphibolite_slab": "Stufe aus Amphibolit", + "block.mineralogy.amphibolite_brick": "Ziegel aus Amphibolit", + "block.mineralogy.amphibolite_brick_stairs": "Ziegeltreppe aus Amphibolit", + "block.mineralogy.amphibolite_brick_slab": "Ziegelstufe aus Amphibolit", + "block.mineralogy.amphibolite_smooth": "Polierter Block aus Amphibolit", + "block.mineralogy.amphibolite_smooth_stairs": "Polierte Treppe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_slab": "Polierte Stufe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick": "Polierte Ziegel aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_slab": "Polierte Ziegelstufe aus Amphibolit", + "item.mineralogy.gypsum_dust": "Gipspulver", + "item.mineralogy.sulfur_dust": "Schwefelpulver", + "item.mineralogy.phosphorous_dust": "Phosphorpulver", + "item.mineralogy.nitrate_dust": "Nitratpulver", "item.mineralogy.mineral_fertilizer": "Mineraldünger", - "block.mineralogy.chert": "Chert", + "block.mineralogy.chert": "Hornstein", "block.mineralogy.gypsum": "Gips", "block.mineralogy.pumice": "Bimsstein", "block.mineralogy.sulfur_block": "Schwefel", @@ -204,737 +204,737 @@ "block.mineralogy.phosphorous_block": "Phosphor", "block.mineralogy.phosphorous_ore": "Phosphorerz", "block.mineralogy.nitrate_block": "Nitrat", - "block.mineralogy.nitrate_ore": "Nitrat-Erz", - "block.mineralogy.drywall_black": "Schwarzer Trockenbau", - "block.mineralogy.drywall_red": "Roter Trockenbau", - "block.mineralogy.drywall_green": "Grüner Trockenbau", - "block.mineralogy.drywall_brown": "Brauner Trockenbau", - "block.mineralogy.drywall_blue": "Blaue Trockenmauer", - "block.mineralogy.drywall_purple": "Lila Trockenbau", - "block.mineralogy.drywall_cyan": "Cyan Trockenbau", - "block.mineralogy.drywall_silver": "Silberner Trockenbau", - "block.mineralogy.drywall_gray": "Graue Trockenmauer", - "block.mineralogy.drywall_pink": "Rosa Trockenbau", - "block.mineralogy.drywall_lime": "Kalk Trockenbau", - "block.mineralogy.drywall_yellow": "Gelber Trockenbau", - "block.mineralogy.drywall_light_blue": "Hellblaue Trockenmauer", - "block.mineralogy.drywall_magenta": "Magenta Trockenbau", - "block.mineralogy.drywall_orange": "Orange Trockenbau", - "block.mineralogy.drywall_white": "Weißer Trockenbau", - "block.mineralogy.andesite_wall": "Andesit-Wand", - "block.mineralogy.andesite_brick_wall": "Andesit-Backsteinmauer", - "block.mineralogy.andesite_smooth_wall": "Andesite polierte Wand", - "block.mineralogy.andesite_smooth_brick_wall": "Andesite polierte Backsteinmauer", - "block.mineralogy.basalt_wall": "Basaltmauer", - "block.mineralogy.basalt_brick_wall": "Basalt-Backsteinmauer", - "block.mineralogy.basalt_smooth_wall": "Basalt polierte Wand", - "block.mineralogy.basalt_smooth_brick_wall": "Basalt polierte Backsteinmauer", - "block.mineralogy.diorite_wall": "Dioritwand", - "block.mineralogy.diorite_brick_wall": "Diorit-Ziegelmauer", - "block.mineralogy.diorite_smooth_wall": "Diorite polierte Wand", - "block.mineralogy.diorite_smooth_brick_wall": "Diorite polierte Backsteinmauer", - "block.mineralogy.granite_wall": "Granitwand", - "block.mineralogy.granite_brick_wall": "Granit-Backsteinmauer", - "block.mineralogy.granite_smooth_wall": "Granit poliert Wand", - "block.mineralogy.granite_smooth_brick_wall": "Granit poliert Ziegelmauer", - "block.mineralogy.rhyolite_wall": "Rhyolithwand", - "block.mineralogy.rhyolite_brick_wall": "Rhyolith-Backsteinmauer", - "block.mineralogy.rhyolite_smooth_wall": "Rhyolith poliert Wand", - "block.mineralogy.rhyolite_smooth_brick_wall": "Rhyolith polierte Backsteinmauer", - "block.mineralogy.pegmatite_wall": "Pegmatitwand", - "block.mineralogy.pegmatite_brick_wall": "Pegmatite-Ziegelmauer", - "block.mineralogy.pegmatite_smooth_wall": "Pegmatite polierte Wand", - "block.mineralogy.pegmatite_smooth_brick_wall": "Pegmatite polierte Backsteinmauer", - "block.mineralogy.shale_wall": "Schieferwand", - "block.mineralogy.shale_brick_wall": "Schiefer Ziegelwand", - "block.mineralogy.shale_smooth_wall": "Schiefer poliert Wand", - "block.mineralogy.shale_smooth_brick_wall": "Schiefer poliert Ziegelmauer", - "block.mineralogy.conglomerate_wall": "Konglomeratwand", - "block.mineralogy.conglomerate_brick_wall": "Konglomerat Ziegelwand", - "block.mineralogy.conglomerate_smooth_wall": "Konglomerat polierte Wand", - "block.mineralogy.conglomerate_smooth_brick_wall": "Konglomerat polierte Backsteinmauer", - "block.mineralogy.dolomite_wall": "Dolomitenwand", - "block.mineralogy.dolomite_brick_wall": "Dolomit-Ziegelmauer", - "block.mineralogy.dolomite_smooth_wall": "Dolomit polierte Wand", - "block.mineralogy.dolomite_smooth_brick_wall": "Dolomit polierte Ziegelmauer", - "block.mineralogy.limestone_wall": "Kalksteinmauer", - "block.mineralogy.limestone_brick_wall": "Kalkstein-Backsteinmauer", - "block.mineralogy.limestone_smooth_wall": "Kalkstein polierte Wand", - "block.mineralogy.limestone_smooth_brick_wall": "Kalkstein poliert Ziegelmauer", - "block.mineralogy.marble_wall": "Marmorwand", - "block.mineralogy.marble_brick_wall": "Marmor Backsteinmauer", - "block.mineralogy.marble_smooth_wall": "Marmor poliert Wand", - "block.mineralogy.marble_smooth_brick_wall": "Marmor poliert Ziegelmauer", - "block.mineralogy.slate_wall": "Schieferwand", - "block.mineralogy.slate_brick_wall": "Schiefer-Backsteinmauer", - "block.mineralogy.slate_smooth_wall": "Schiefer polierte Wand", - "block.mineralogy.slate_smooth_brick_wall": "Schiefer polierte Backsteinmauer", - "block.mineralogy.schist_wall": "Schieferwand", - "block.mineralogy.schist_brick_wall": "Schiefer-Backsteinmauer", - "block.mineralogy.schist_smooth_wall": "Schiefer polierte Wand", - "block.mineralogy.schist_smooth_brick_wall": "Schiefer polierte Backsteinmauer", - "block.mineralogy.gneiss_wall": "Gneismauer", - "block.mineralogy.gneiss_brick_wall": "Gneis-Backsteinmauer", - "block.mineralogy.gneiss_smooth_wall": "Gneis polierte Wand", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneis polierte Backsteinmauer", - "block.mineralogy.phyllite_wall": "Phyllitwand", - "block.mineralogy.phyllite_brick_wall": "Phyllit-Ziegelmauer", - "block.mineralogy.phyllite_smooth_wall": "Phyllite polierte Wand", - "block.mineralogy.phyllite_smooth_brick_wall": "Phyllite polierte Backsteinmauer", - "block.mineralogy.amphibolite_wall": "Amphibolit Wand", - "block.mineralogy.amphibolite_brick_wall": "Amphibolit-Backsteinmauer", - "block.mineralogy.amphibolite_smooth_wall": "Amphibolit poliert Wand", - "block.mineralogy.amphibolite_smooth_brick_wall": "Amphibolite polierte Backsteinmauer", - "block.mineralogy.andesite_furnace": "Andesit-Ofen", - "block.mineralogy.andesite_brick_furnace": "Andesit-Ziegelofen", - "block.mineralogy.andesite_smooth_furnace": "Andesite polierte Ofen", - "block.mineralogy.andesite_smooth_brick_furnace": "Andesite polierte Ziegelofen", - "block.mineralogy.basalt_furnace": "Basaltmauer", - "block.mineralogy.basalt_brick_furnace": "Basalt-Ziegelofen", - "block.mineralogy.basalt_smooth_furnace": "Basalt polierte Ofen", - "block.mineralogy.basalt_smooth_brick_furnace": "Basalt polierte Ziegelofen", - "block.mineralogy.diorite_furnace": "Dioritwand", - "block.mineralogy.diorite_brick_furnace": "Diorit-Ziegelofen", - "block.mineralogy.diorite_smooth_furnace": "Diorite polierte Ofen", - "block.mineralogy.diorite_smooth_brick_furnace": "Diorite polierte Ziegelofen", - "block.mineralogy.granite_furnace": "Granitwand", - "block.mineralogy.granite_brick_furnace": "Granit-Ziegelofen", - "block.mineralogy.granite_smooth_furnace": "Granit poliert Ofen", - "block.mineralogy.granite_smooth_brick_furnace": "Granit poliert Ziegelofen", - "block.mineralogy.rhyolite_furnace": "Rhyolithwand", - "block.mineralogy.rhyolite_brick_furnace": "Rhyolith-Ziegelofen", - "block.mineralogy.rhyolite_smooth_furnace": "Rhyolith poliert Ofen", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Rhyolith polierte Ziegelofen", - "block.mineralogy.pegmatite_furnace": "Pegmatitwand", - "block.mineralogy.pegmatite_brick_furnace": "Pegmatite-Ziegelofen", - "block.mineralogy.pegmatite_smooth_furnace": "Pegmatite polierte Ofen", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Pegmatite polierte Ziegelofen", - "block.mineralogy.shale_furnace": "Schieferwand", - "block.mineralogy.shale_brick_furnace": "Schiefer Ziegelwand", - "block.mineralogy.shale_smooth_furnace": "Schiefer poliert Ofen", - "block.mineralogy.shale_smooth_brick_furnace": "Schiefer poliert Ziegelofen", - "block.mineralogy.conglomerate_furnace": "Konglomeratwand", - "block.mineralogy.conglomerate_brick_furnace": "Konglomerat Ziegelwand", - "block.mineralogy.conglomerate_smooth_furnace": "Konglomerat polierte Ofen", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Konglomerat polierte Ziegelofen", - "block.mineralogy.dolomite_furnace": "Dolomitenwand", - "block.mineralogy.dolomite_brick_furnace": "Dolomit-Ziegelofen", - "block.mineralogy.dolomite_smooth_furnace": "Dolomit polierte Ofen", - "block.mineralogy.dolomite_smooth_brick_furnace": "Dolomit polierte Ziegelofen", - "block.mineralogy.limestone_furnace": "Kalksteinmauer", - "block.mineralogy.limestone_brick_furnace": "Kalkstein-Ziegelofen", - "block.mineralogy.limestone_smooth_furnace": "Kalkstein polierte Ofen", - "block.mineralogy.limestone_smooth_brick_furnace": "Kalkstein poliert Ziegelofen", - "block.mineralogy.marble_furnace": "Marmorwand", - "block.mineralogy.marble_brick_furnace": "Marmor Ziegelofen", - "block.mineralogy.marble_smooth_furnace": "Marmor poliert Ofen", - "block.mineralogy.marble_smooth_brick_furnace": "Marmor poliert Ziegelofen", - "block.mineralogy.slate_furnace": "Schieferwand", - "block.mineralogy.slate_brick_furnace": "Schiefer-Ziegelofen", - "block.mineralogy.slate_smooth_furnace": "Schiefer polierte Ofen", - "block.mineralogy.slate_smooth_brick_furnace": "Schiefer polierte Ziegelofen", - "block.mineralogy.schist_furnace": "Schieferwand", - "block.mineralogy.schist_brick_furnace": "Schiefer-Ziegelofen", - "block.mineralogy.schist_smooth_furnace": "Schiefer polierte Ofen", - "block.mineralogy.schist_smooth_brick_furnace": "Schiefer polierte Ziegelofen", - "block.mineralogy.gneiss_furnace": "Gneismauer", - "block.mineralogy.gneiss_brick_furnace": "Gneis-Ziegelofen", - "block.mineralogy.gneiss_smooth_furnace": "Gneis polierte Ofen", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneis polierte Ziegelofen", - "block.mineralogy.phyllite_furnace": "Phyllitwand", - "block.mineralogy.phyllite_brick_furnace": "Phyllit-Ziegelofen", - "block.mineralogy.phyllite_smooth_furnace": "Phyllite polierte Ofen", - "block.mineralogy.phyllite_smooth_brick_furnace": "Phyllite polierte Ziegelofen", - "block.mineralogy.amphibolite_furnace": "Amphibolit Ofen", - "block.mineralogy.amphibolite_brick_furnace": "Amphibolit-Ziegelofen", - "block.mineralogy.amphibolite_smooth_furnace": "Amphibolit poliert Ofen", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Amphibolite polierte Ziegelofen", + "block.mineralogy.nitrate_ore": "Nitraterz", + "block.mineralogy.drywall_black": "Gipskartonplatte (Schwarz)", + "block.mineralogy.drywall_red": "Gipskartonplatte (Rot)", + "block.mineralogy.drywall_green": "Gipskartonplatte (Grün)", + "block.mineralogy.drywall_brown": "Gipskartonplatte (Braun)", + "block.mineralogy.drywall_blue": "Gipskartonplatte (Blau)", + "block.mineralogy.drywall_purple": "Gipskartonplatte (Violett)", + "block.mineralogy.drywall_cyan": "Gipskartonplatte (Türkis)", + "block.mineralogy.drywall_silver": "Gipskartonplatte (Hellgrau)", + "block.mineralogy.drywall_gray": "Gipskartonplatte (Grau)", + "block.mineralogy.drywall_pink": "Gipskartonplatte (Rosa)", + "block.mineralogy.drywall_lime": "Gipskartonplatte (Hellgrün)", + "block.mineralogy.drywall_yellow": "Gipskartonplatte (Gelb)", + "block.mineralogy.drywall_light_blue": "Gipskartonplatte (Hellblau)", + "block.mineralogy.drywall_magenta": "Gipskartonplatte (Magenta)", + "block.mineralogy.drywall_orange": "Gipskartonplatte (Orange)", + "block.mineralogy.drywall_white": "Gipskartonplatte (Weiß)", + "block.mineralogy.andesite_wall": "Mauer aus Andesit", + "block.mineralogy.andesite_brick_wall": "Ziegelmauer aus Andesit", + "block.mineralogy.andesite_smooth_wall": "Polierte Mauer aus Andesit", + "block.mineralogy.andesite_smooth_brick_wall": "Polierte Ziegelmauer aus Andesit", + "block.mineralogy.basalt_wall": "Mauer aus Basalt", + "block.mineralogy.basalt_brick_wall": "Ziegelmauer aus Basalt", + "block.mineralogy.basalt_smooth_wall": "Polierte Mauer aus Basalt", + "block.mineralogy.basalt_smooth_brick_wall": "Polierte Ziegelmauer aus Basalt", + "block.mineralogy.diorite_wall": "Mauer aus Diorit", + "block.mineralogy.diorite_brick_wall": "Ziegelmauer aus Diorit", + "block.mineralogy.diorite_smooth_wall": "Polierte Mauer aus Diorit", + "block.mineralogy.diorite_smooth_brick_wall": "Polierte Ziegelmauer aus Diorit", + "block.mineralogy.granite_wall": "Mauer aus Granit", + "block.mineralogy.granite_brick_wall": "Ziegelmauer aus Granit", + "block.mineralogy.granite_smooth_wall": "Polierte Mauer aus Granit", + "block.mineralogy.granite_smooth_brick_wall": "Polierte Ziegelmauer aus Granit", + "block.mineralogy.rhyolite_wall": "Mauer aus Rhyolith", + "block.mineralogy.rhyolite_brick_wall": "Ziegelmauer aus Rhyolith", + "block.mineralogy.rhyolite_smooth_wall": "Polierte Mauer aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_wall": "Polierte Ziegelmauer aus Rhyolith", + "block.mineralogy.pegmatite_wall": "Mauer aus Pegmatit", + "block.mineralogy.pegmatite_brick_wall": "Ziegelmauer aus Pegmatit", + "block.mineralogy.pegmatite_smooth_wall": "Polierte Mauer aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_wall": "Polierte Ziegelmauer aus Pegmatit", + "block.mineralogy.shale_wall": "Mauer aus Tonschiefer", + "block.mineralogy.shale_brick_wall": "Ziegelmauer aus Tonschiefer", + "block.mineralogy.shale_smooth_wall": "Polierte Mauer aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_wall": "Polierte Ziegelmauer aus Tonschiefer", + "block.mineralogy.conglomerate_wall": "Mauer aus Konglomerat", + "block.mineralogy.conglomerate_brick_wall": "Ziegelmauer aus Konglomerat", + "block.mineralogy.conglomerate_smooth_wall": "Polierte Mauer aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_wall": "Polierte Ziegelmauer aus Konglomerat", + "block.mineralogy.dolomite_wall": "Mauer aus Dolomit", + "block.mineralogy.dolomite_brick_wall": "Ziegelmauer aus Dolomit", + "block.mineralogy.dolomite_smooth_wall": "Polierte Mauer aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_wall": "Polierte Ziegelmauer aus Dolomit", + "block.mineralogy.limestone_wall": "Mauer aus Kalkstein", + "block.mineralogy.limestone_brick_wall": "Ziegelmauer aus Kalkstein", + "block.mineralogy.limestone_smooth_wall": "Polierte Mauer aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_wall": "Polierte Ziegelmauer aus Kalkstein", + "block.mineralogy.marble_wall": "Mauer aus Marmor", + "block.mineralogy.marble_brick_wall": "Ziegelmauer aus Marmor", + "block.mineralogy.marble_smooth_wall": "Polierte Mauer aus Marmor", + "block.mineralogy.marble_smooth_brick_wall": "Polierte Ziegelmauer aus Marmor", + "block.mineralogy.slate_wall": "Mauer aus Schiefer", + "block.mineralogy.slate_brick_wall": "Ziegelmauer aus Schiefer", + "block.mineralogy.slate_smooth_wall": "Polierte Mauer aus Schiefer", + "block.mineralogy.slate_smooth_brick_wall": "Polierte Ziegelmauer aus Schiefer", + "block.mineralogy.schist_wall": "Mauer aus Glimmerschiefer", + "block.mineralogy.schist_brick_wall": "Ziegelmauer aus Glimmerschiefer", + "block.mineralogy.schist_smooth_wall": "Polierte Mauer aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_wall": "Polierte Ziegelmauer aus Glimmerschiefer", + "block.mineralogy.gneiss_wall": "Mauer aus Gneis", + "block.mineralogy.gneiss_brick_wall": "Ziegelmauer aus Gneis", + "block.mineralogy.gneiss_smooth_wall": "Polierte Mauer aus Gneis", + "block.mineralogy.gneiss_smooth_brick_wall": "Polierte Ziegelmauer aus Gneis", + "block.mineralogy.phyllite_wall": "Mauer aus Phyllit", + "block.mineralogy.phyllite_brick_wall": "Ziegelmauer aus Phyllit", + "block.mineralogy.phyllite_smooth_wall": "Polierte Mauer aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_wall": "Polierte Ziegelmauer aus Phyllit", + "block.mineralogy.amphibolite_wall": "Mauer aus Amphibolit", + "block.mineralogy.amphibolite_brick_wall": "Ziegelmauer aus Amphibolit", + "block.mineralogy.amphibolite_smooth_wall": "Polierte Mauer aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_wall": "Polierte Ziegelmauer aus Amphibolit", + "block.mineralogy.andesite_furnace": "Ofen aus Andesit", + "block.mineralogy.andesite_brick_furnace": "Ziegelofen aus Andesit", + "block.mineralogy.andesite_smooth_furnace": "Polierter Ofen aus Andesit", + "block.mineralogy.andesite_smooth_brick_furnace": "Polierter Ziegelofen aus Andesit", + "block.mineralogy.basalt_furnace": "Ofen aus Basalt", + "block.mineralogy.basalt_brick_furnace": "Ziegelofen aus Basalt", + "block.mineralogy.basalt_smooth_furnace": "Polierter Ofen aus Basalt", + "block.mineralogy.basalt_smooth_brick_furnace": "Polierter Ziegelofen aus Basalt", + "block.mineralogy.diorite_furnace": "Ofen aus Diorit", + "block.mineralogy.diorite_brick_furnace": "Ziegelofen aus Diorit", + "block.mineralogy.diorite_smooth_furnace": "Polierter Ofen aus Diorit", + "block.mineralogy.diorite_smooth_brick_furnace": "Polierter Ziegelofen aus Diorit", + "block.mineralogy.granite_furnace": "Ofen aus Granit", + "block.mineralogy.granite_brick_furnace": "Ziegelofen aus Granit", + "block.mineralogy.granite_smooth_furnace": "Polierter Ofen aus Granit", + "block.mineralogy.granite_smooth_brick_furnace": "Polierter Ziegelofen aus Granit", + "block.mineralogy.rhyolite_furnace": "Ofen aus Rhyolith", + "block.mineralogy.rhyolite_brick_furnace": "Ziegelofen aus Rhyolith", + "block.mineralogy.rhyolite_smooth_furnace": "Polierter Ofen aus Rhyolith", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Polierter Ziegelofen aus Rhyolith", + "block.mineralogy.pegmatite_furnace": "Ofen aus Pegmatit", + "block.mineralogy.pegmatite_brick_furnace": "Ziegelofen aus Pegmatit", + "block.mineralogy.pegmatite_smooth_furnace": "Polierter Ofen aus Pegmatit", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Polierter Ziegelofen aus Pegmatit", + "block.mineralogy.shale_furnace": "Ofen aus Tonschiefer", + "block.mineralogy.shale_brick_furnace": "Ziegelofen aus Tonschiefer", + "block.mineralogy.shale_smooth_furnace": "Polierter Ofen aus Tonschiefer", + "block.mineralogy.shale_smooth_brick_furnace": "Polierter Ziegelofen aus Tonschiefer", + "block.mineralogy.conglomerate_furnace": "Ofen aus Konglomerat", + "block.mineralogy.conglomerate_brick_furnace": "Ziegelofen aus Konglomerat", + "block.mineralogy.conglomerate_smooth_furnace": "Polierter Ofen aus Konglomerat", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Polierter Ziegelofen aus Konglomerat", + "block.mineralogy.dolomite_furnace": "Ofen aus Dolomit", + "block.mineralogy.dolomite_brick_furnace": "Ziegelofen aus Dolomit", + "block.mineralogy.dolomite_smooth_furnace": "Polierter Ofen aus Dolomit", + "block.mineralogy.dolomite_smooth_brick_furnace": "Polierter Ziegelofen aus Dolomit", + "block.mineralogy.limestone_furnace": "Ofen aus Kalkstein", + "block.mineralogy.limestone_brick_furnace": "Ziegelofen aus Kalkstein", + "block.mineralogy.limestone_smooth_furnace": "Polierter Ofen aus Kalkstein", + "block.mineralogy.limestone_smooth_brick_furnace": "Polierter Ziegelofen aus Kalkstein", + "block.mineralogy.marble_furnace": "Ofen aus Marmor", + "block.mineralogy.marble_brick_furnace": "Ziegelofen aus Marmor", + "block.mineralogy.marble_smooth_furnace": "Polierter Ofen aus Marmor", + "block.mineralogy.marble_smooth_brick_furnace": "Polierter Ziegelofen aus Marmor", + "block.mineralogy.slate_furnace": "Ofen aus Schiefer", + "block.mineralogy.slate_brick_furnace": "Ziegelofen aus Schiefer", + "block.mineralogy.slate_smooth_furnace": "Polierter Ofen aus Schiefer", + "block.mineralogy.slate_smooth_brick_furnace": "Polierter Ziegelofen aus Schiefer", + "block.mineralogy.schist_furnace": "Ofen aus Glimmerschiefer", + "block.mineralogy.schist_brick_furnace": "Ziegelofen aus Glimmerschiefer", + "block.mineralogy.schist_smooth_furnace": "Polierter Ofen aus Glimmerschiefer", + "block.mineralogy.schist_smooth_brick_furnace": "Polierter Ziegelofen aus Glimmerschiefer", + "block.mineralogy.gneiss_furnace": "Ofen aus Gneis", + "block.mineralogy.gneiss_brick_furnace": "Ziegelofen aus Gneis", + "block.mineralogy.gneiss_smooth_furnace": "Polierter Ofen aus Gneis", + "block.mineralogy.gneiss_smooth_brick_furnace": "Polierter Ziegelofen aus Gneis", + "block.mineralogy.phyllite_furnace": "Ofen aus Phyllit", + "block.mineralogy.phyllite_brick_furnace": "Ziegelofen aus Phyllit", + "block.mineralogy.phyllite_smooth_furnace": "Polierter Ofen aus Phyllit", + "block.mineralogy.phyllite_smooth_brick_furnace": "Polierter Ziegelofen aus Phyllit", + "block.mineralogy.amphibolite_furnace": "Ofen aus Amphibolit", + "block.mineralogy.amphibolite_brick_furnace": "Ziegelofen aus Amphibolit", + "block.mineralogy.amphibolite_smooth_furnace": "Polierter Ofen aus Amphibolit", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Polierter Ziegelofen aus Amphibolit", "block.mineralogy.diabase": "Diabas", - "block.mineralogy.diabase_stairs": "Diabas Treppe", - "block.mineralogy.diabase_slab": "Diabas Platte", - "block.mineralogy.diabase_brick": "Diabas Backstein", - "block.mineralogy.diabase_brick_stairs": "Diabas Ziegelsteintreppen", - "block.mineralogy.diabase_brick_slab": "Diabas Ziegelplatte", - "block.mineralogy.diabase_smooth": "Polished Diabas", - "block.mineralogy.diabase_smooth_stairs": "Diabas Polierte Treppe", - "block.mineralogy.diabase_smooth_slab": "Diabas Polierte Platte", - "block.mineralogy.diabase_smooth_brick": "Diabas Polierter Ziegelstein", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabas Polierte Ziegelsteintreppen", - "block.mineralogy.diabase_smooth_brick_slab": "Diabas Polierte Ziegelplatte", - "block.mineralogy.diabase_wall": "Diabas Wand", - "block.mineralogy.diabase_brick_wall": "Diabas Ziegelwand", - "block.mineralogy.diabase_smooth_wall": "Diabas Polierte Wand", - "block.mineralogy.diabase_smooth_brick_wall": "Diabas Polierte Backsteinmauer", - "block.mineralogy.diabase_furnace": "Diabas Ofen", - "block.mineralogy.diabase_brick_furnace": "Diabas Ziegelofen", - "block.mineralogy.diabase_smooth_furnace": "Diabas Polierter Ofen", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabas Polierter Ziegelofen", + "block.mineralogy.diabase_stairs": "Treppe aus Diabas", + "block.mineralogy.diabase_slab": "Stufe aus Diabas", + "block.mineralogy.diabase_brick": "Ziegel aus Diabas", + "block.mineralogy.diabase_brick_stairs": "Ziegeltreppe aus Diabas", + "block.mineralogy.diabase_brick_slab": "Ziegelstufe aus Diabas", + "block.mineralogy.diabase_smooth": "Polierter Block aus Diabas", + "block.mineralogy.diabase_smooth_stairs": "Polierte Treppe aus Diabas", + "block.mineralogy.diabase_smooth_slab": "Polierte Stufe aus Diabas", + "block.mineralogy.diabase_smooth_brick": "Polierte Ziegel aus Diabas", + "block.mineralogy.diabase_smooth_brick_stairs": "Polierte Ziegeltreppe aus Diabas", + "block.mineralogy.diabase_smooth_brick_slab": "Polierte Ziegelstufe aus Diabas", + "block.mineralogy.diabase_wall": "Mauer aus Diabas", + "block.mineralogy.diabase_brick_wall": "Ziegelmauer aus Diabas", + "block.mineralogy.diabase_smooth_wall": "Polierte Mauer aus Diabas", + "block.mineralogy.diabase_smooth_brick_wall": "Polierte Ziegelmauer aus Diabas", + "block.mineralogy.diabase_furnace": "Ofen aus Diabas", + "block.mineralogy.diabase_brick_furnace": "Ziegelofen aus Diabas", + "block.mineralogy.diabase_smooth_furnace": "Polierter Ofen aus Diabas", + "block.mineralogy.diabase_smooth_brick_furnace": "Polierter Ziegelofen aus Diabas", "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Treppe", - "block.mineralogy.gabbro_slab": "Gabbro Platte", - "block.mineralogy.gabbro_brick": "Gabbro Backstein", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Ziegelsteintreppen", - "block.mineralogy.gabbro_brick_slab": "Gabbro Ziegelplatte", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Polierte Treppe", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Polierte Platte", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Polierter Ziegelstein", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Polierte Ziegelsteintreppen", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Polierte Ziegelplatte", - "block.mineralogy.gabbro_wall": "Gabbro Wand", - "block.mineralogy.gabbro_brick_wall": "Gabbro Ziegelwand", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Polierte Wand", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Polierte Backsteinmauer", - "block.mineralogy.gabbro_furnace": "Gabbro Ofen", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Ziegelofen", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Polierter Ofen", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Polierter Ziegelofen", + "block.mineralogy.gabbro_stairs": "Treppe aus Gabbro", + "block.mineralogy.gabbro_slab": "Stufe aus Gabbro", + "block.mineralogy.gabbro_brick": "Ziegel aus Gabbro", + "block.mineralogy.gabbro_brick_stairs": "Ziegeltreppe aus Gabbro", + "block.mineralogy.gabbro_brick_slab": "Ziegelstufe aus Gabbro", + "block.mineralogy.gabbro_smooth": "Polierter Block aus Gabbro", + "block.mineralogy.gabbro_smooth_stairs": "Polierte Treppe aus Gabbro", + "block.mineralogy.gabbro_smooth_slab": "Polierte Stufe aus Gabbro", + "block.mineralogy.gabbro_smooth_brick": "Polierte Ziegel aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Polierte Ziegeltreppe aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_slab": "Polierte Ziegelstufe aus Gabbro", + "block.mineralogy.gabbro_wall": "Mauer aus Gabbro", + "block.mineralogy.gabbro_brick_wall": "Ziegelmauer aus Gabbro", + "block.mineralogy.gabbro_smooth_wall": "Polierte Mauer aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_wall": "Polierte Ziegelmauer aus Gabbro", + "block.mineralogy.gabbro_furnace": "Ofen aus Gabbro", + "block.mineralogy.gabbro_brick_furnace": "Ziegelofen aus Gabbro", + "block.mineralogy.gabbro_smooth_furnace": "Polierter Ofen aus Gabbro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Polierter Ziegelofen aus Gabbro", "block.mineralogy.peridotite": "Peridotit", - "block.mineralogy.peridotite_stairs": "Peridotit Treppe", - "block.mineralogy.peridotite_slab": "Peridotit Platte", - "block.mineralogy.peridotite_brick": "Peridotit Backstein", - "block.mineralogy.peridotite_brick_stairs": "Peridotit Ziegelsteintreppen", - "block.mineralogy.peridotite_brick_slab": "Peridotit Ziegelplatte", - "block.mineralogy.peridotite_smooth": "Polished Peridotit", - "block.mineralogy.peridotite_smooth_stairs": "Peridotit Polierte Treppe", - "block.mineralogy.peridotite_smooth_slab": "Peridotit Polierte Platte", - "block.mineralogy.peridotite_smooth_brick": "Peridotit Polierter Ziegelstein", - "block.mineralogy.peridotite_smooth_brick_stairs": "Peridotit Polierte Ziegelsteintreppen", - "block.mineralogy.peridotite_smooth_brick_slab": "Peridotit Polierte Ziegelplatte", - "block.mineralogy.peridotite_wall": "Peridotit Wand", - "block.mineralogy.peridotite_brick_wall": "Peridotit Ziegelwand", - "block.mineralogy.peridotite_smooth_wall": "Peridotit Polierte Wand", - "block.mineralogy.peridotite_smooth_brick_wall": "Peridotit Polierte Backsteinmauer", - "block.mineralogy.peridotite_furnace": "Peridotit Ofen", - "block.mineralogy.peridotite_brick_furnace": "Peridotit Ziegelofen", - "block.mineralogy.peridotite_smooth_furnace": "Peridotit Polierter Ofen", - "block.mineralogy.peridotite_smooth_brick_furnace": "Peridotit Polierter Ziegelofen", + "block.mineralogy.peridotite_stairs": "Treppe aus Peridotit", + "block.mineralogy.peridotite_slab": "Stufe aus Peridotit", + "block.mineralogy.peridotite_brick": "Ziegel aus Peridotit", + "block.mineralogy.peridotite_brick_stairs": "Ziegeltreppe aus Peridotit", + "block.mineralogy.peridotite_brick_slab": "Ziegelstufe aus Peridotit", + "block.mineralogy.peridotite_smooth": "Polierter Block aus Peridotit", + "block.mineralogy.peridotite_smooth_stairs": "Polierte Treppe aus Peridotit", + "block.mineralogy.peridotite_smooth_slab": "Polierte Stufe aus Peridotit", + "block.mineralogy.peridotite_smooth_brick": "Polierte Ziegel aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_slab": "Polierte Ziegelstufe aus Peridotit", + "block.mineralogy.peridotite_wall": "Mauer aus Peridotit", + "block.mineralogy.peridotite_brick_wall": "Ziegelmauer aus Peridotit", + "block.mineralogy.peridotite_smooth_wall": "Polierte Mauer aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_wall": "Polierte Ziegelmauer aus Peridotit", + "block.mineralogy.peridotite_furnace": "Ofen aus Peridotit", + "block.mineralogy.peridotite_brick_furnace": "Ziegelofen aus Peridotit", + "block.mineralogy.peridotite_smooth_furnace": "Polierter Ofen aus Peridotit", + "block.mineralogy.peridotite_smooth_brick_furnace": "Polierter Ziegelofen aus Peridotit", "block.mineralogy.basaltic_glass": "Basaltglas", - "block.mineralogy.basaltic_glass_stairs": "Basaltglas Treppe", - "block.mineralogy.basaltic_glass_slab": "Basaltglas Platte", - "block.mineralogy.basaltic_glass_brick": "Basaltglas Backstein", - "block.mineralogy.basaltic_glass_brick_stairs": "Basaltglas Ziegelsteintreppen", - "block.mineralogy.basaltic_glass_brick_slab": "Basaltglas Ziegelplatte", - "block.mineralogy.basaltic_glass_smooth": "Polished Basaltglas", - "block.mineralogy.basaltic_glass_smooth_stairs": "Basaltglas Polierte Treppe", - "block.mineralogy.basaltic_glass_smooth_slab": "Basaltglas Polierte Platte", - "block.mineralogy.basaltic_glass_smooth_brick": "Basaltglas Polierter Ziegelstein", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Basaltglas Polierte Ziegelsteintreppen", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Basaltglas Polierte Ziegelplatte", - "block.mineralogy.basaltic_glass_wall": "Basaltglas Wand", - "block.mineralogy.basaltic_glass_brick_wall": "Basaltglas Ziegelwand", - "block.mineralogy.basaltic_glass_smooth_wall": "Basaltglas Polierte Wand", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Basaltglas Polierte Backsteinmauer", - "block.mineralogy.basaltic_glass_furnace": "Basaltglas Ofen", - "block.mineralogy.basaltic_glass_brick_furnace": "Basaltglas Ziegelofen", - "block.mineralogy.basaltic_glass_smooth_furnace": "Basaltglas Polierter Ofen", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Basaltglas Polierter Ziegelofen", - "block.mineralogy.scoria": "Schlacke", - "block.mineralogy.scoria_stairs": "Schlacke Treppe", - "block.mineralogy.scoria_slab": "Schlacke Platte", - "block.mineralogy.scoria_brick": "Schlacke Backstein", - "block.mineralogy.scoria_brick_stairs": "Schlacke Ziegelsteintreppen", - "block.mineralogy.scoria_brick_slab": "Schlacke Ziegelplatte", - "block.mineralogy.scoria_smooth": "Polished Schlacke", - "block.mineralogy.scoria_smooth_stairs": "Schlacke Polierte Treppe", - "block.mineralogy.scoria_smooth_slab": "Schlacke Polierte Platte", - "block.mineralogy.scoria_smooth_brick": "Schlacke Polierter Ziegelstein", - "block.mineralogy.scoria_smooth_brick_stairs": "Schlacke Polierte Ziegelsteintreppen", - "block.mineralogy.scoria_smooth_brick_slab": "Schlacke Polierte Ziegelplatte", - "block.mineralogy.scoria_wall": "Schlacke Wand", - "block.mineralogy.scoria_brick_wall": "Schlacke Ziegelwand", - "block.mineralogy.scoria_smooth_wall": "Schlacke Polierte Wand", - "block.mineralogy.scoria_smooth_brick_wall": "Schlacke Polierte Backsteinmauer", - "block.mineralogy.scoria_furnace": "Schlacke Ofen", - "block.mineralogy.scoria_brick_furnace": "Schlacke Ziegelofen", - "block.mineralogy.scoria_smooth_furnace": "Schlacke Polierter Ofen", - "block.mineralogy.scoria_smooth_brick_furnace": "Schlacke Polierter Ziegelofen", - "block.mineralogy.tuff": "Tuff", - "block.mineralogy.tuff_stairs": "Tuff Treppe", - "block.mineralogy.tuff_slab": "Tuff Platte", - "block.mineralogy.tuff_brick": "Tuff Backstein", - "block.mineralogy.tuff_brick_stairs": "Tuff Ziegelsteintreppen", - "block.mineralogy.tuff_brick_slab": "Tuff Ziegelplatte", - "block.mineralogy.tuff_smooth": "Polished Tuff", - "block.mineralogy.tuff_smooth_stairs": "Tuff Polierte Treppe", - "block.mineralogy.tuff_smooth_slab": "Tuff Polierte Platte", - "block.mineralogy.tuff_smooth_brick": "Tuff Polierter Ziegelstein", - "block.mineralogy.tuff_smooth_brick_stairs": "Tuff Polierte Ziegelsteintreppen", - "block.mineralogy.tuff_smooth_brick_slab": "Tuff Polierte Ziegelplatte", - "block.mineralogy.tuff_wall": "Tuff Wand", - "block.mineralogy.tuff_brick_wall": "Tuff Ziegelwand", - "block.mineralogy.tuff_smooth_wall": "Tuff Polierte Wand", - "block.mineralogy.tuff_smooth_brick_wall": "Tuff Polierte Backsteinmauer", - "block.mineralogy.tuff_furnace": "Tuff Ofen", - "block.mineralogy.tuff_brick_furnace": "Tuff Ziegelofen", - "block.mineralogy.tuff_smooth_furnace": "Tuff Polierter Ofen", - "block.mineralogy.tuff_smooth_brick_furnace": "Tuff Polierter Ziegelofen", + "block.mineralogy.basaltic_glass_stairs": "Treppe aus Basaltglas", + "block.mineralogy.basaltic_glass_slab": "Stufe aus Basaltglas", + "block.mineralogy.basaltic_glass_brick": "Ziegel aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_stairs": "Ziegeltreppe aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_slab": "Ziegelstufe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth": "Polierter Block aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_stairs": "Polierte Treppe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_slab": "Polierte Stufe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick": "Polierte Ziegel aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Polierte Ziegeltreppe aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Polierte Ziegelstufe aus Basaltglas", + "block.mineralogy.basaltic_glass_wall": "Mauer aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_wall": "Ziegelmauer aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_wall": "Polierte Mauer aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Polierte Ziegelmauer aus Basaltglas", + "block.mineralogy.basaltic_glass_furnace": "Ofen aus Basaltglas", + "block.mineralogy.basaltic_glass_brick_furnace": "Ziegelofen aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_furnace": "Polierter Ofen aus Basaltglas", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Polierter Ziegelofen aus Basaltglas", + "block.mineralogy.scoria": "Skoria", + "block.mineralogy.scoria_stairs": "Treppe aus Skoria", + "block.mineralogy.scoria_slab": "Stufe aus Skoria", + "block.mineralogy.scoria_brick": "Ziegel aus Skoria", + "block.mineralogy.scoria_brick_stairs": "Ziegeltreppe aus Skoria", + "block.mineralogy.scoria_brick_slab": "Ziegelstufe aus Skoria", + "block.mineralogy.scoria_smooth": "Polierter Block aus Skoria", + "block.mineralogy.scoria_smooth_stairs": "Polierte Treppe aus Skoria", + "block.mineralogy.scoria_smooth_slab": "Polierte Stufe aus Skoria", + "block.mineralogy.scoria_smooth_brick": "Polierte Ziegel aus Skoria", + "block.mineralogy.scoria_smooth_brick_stairs": "Polierte Ziegeltreppe aus Skoria", + "block.mineralogy.scoria_smooth_brick_slab": "Polierte Ziegelstufe aus Skoria", + "block.mineralogy.scoria_wall": "Mauer aus Skoria", + "block.mineralogy.scoria_brick_wall": "Ziegelmauer aus Skoria", + "block.mineralogy.scoria_smooth_wall": "Polierte Mauer aus Skoria", + "block.mineralogy.scoria_smooth_brick_wall": "Polierte Ziegelmauer aus Skoria", + "block.mineralogy.scoria_furnace": "Ofen aus Skoria", + "block.mineralogy.scoria_brick_furnace": "Ziegelofen aus Skoria", + "block.mineralogy.scoria_smooth_furnace": "Polierter Ofen aus Skoria", + "block.mineralogy.scoria_smooth_brick_furnace": "Polierter Ziegelofen aus Skoria", + "block.mineralogy.tuff": "Tuffstein", + "block.mineralogy.tuff_stairs": "Treppe aus Tuffstein", + "block.mineralogy.tuff_slab": "Stufe aus Tuffstein", + "block.mineralogy.tuff_brick": "Ziegel aus Tuffstein", + "block.mineralogy.tuff_brick_stairs": "Ziegeltreppe aus Tuffstein", + "block.mineralogy.tuff_brick_slab": "Ziegelstufe aus Tuffstein", + "block.mineralogy.tuff_smooth": "Polierter Block aus Tuffstein", + "block.mineralogy.tuff_smooth_stairs": "Polierte Treppe aus Tuffstein", + "block.mineralogy.tuff_smooth_slab": "Polierte Stufe aus Tuffstein", + "block.mineralogy.tuff_smooth_brick": "Polierte Ziegel aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_stairs": "Polierte Ziegeltreppe aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_slab": "Polierte Ziegelstufe aus Tuffstein", + "block.mineralogy.tuff_wall": "Mauer aus Tuffstein", + "block.mineralogy.tuff_brick_wall": "Ziegelmauer aus Tuffstein", + "block.mineralogy.tuff_smooth_wall": "Polierte Mauer aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_wall": "Polierte Ziegelmauer aus Tuffstein", + "block.mineralogy.tuff_furnace": "Ofen aus Tuffstein", + "block.mineralogy.tuff_brick_furnace": "Ziegelofen aus Tuffstein", + "block.mineralogy.tuff_smooth_furnace": "Polierter Ofen aus Tuffstein", + "block.mineralogy.tuff_smooth_brick_furnace": "Polierter Ziegelofen aus Tuffstein", "block.mineralogy.siltstone": "Schluffstein", - "block.mineralogy.siltstone_stairs": "Schluffstein Treppe", - "block.mineralogy.siltstone_slab": "Schluffstein Platte", - "block.mineralogy.siltstone_brick": "Schluffstein Backstein", - "block.mineralogy.siltstone_brick_stairs": "Schluffstein Ziegelsteintreppen", - "block.mineralogy.siltstone_brick_slab": "Schluffstein Ziegelplatte", - "block.mineralogy.siltstone_smooth": "Polished Schluffstein", - "block.mineralogy.siltstone_smooth_stairs": "Schluffstein Polierte Treppe", - "block.mineralogy.siltstone_smooth_slab": "Schluffstein Polierte Platte", - "block.mineralogy.siltstone_smooth_brick": "Schluffstein Polierter Ziegelstein", - "block.mineralogy.siltstone_smooth_brick_stairs": "Schluffstein Polierte Ziegelsteintreppen", - "block.mineralogy.siltstone_smooth_brick_slab": "Schluffstein Polierte Ziegelplatte", - "block.mineralogy.siltstone_wall": "Schluffstein Wand", - "block.mineralogy.siltstone_brick_wall": "Schluffstein Ziegelwand", - "block.mineralogy.siltstone_smooth_wall": "Schluffstein Polierte Wand", - "block.mineralogy.siltstone_smooth_brick_wall": "Schluffstein Polierte Backsteinmauer", - "block.mineralogy.siltstone_furnace": "Schluffstein Ofen", - "block.mineralogy.siltstone_brick_furnace": "Schluffstein Ziegelofen", - "block.mineralogy.siltstone_smooth_furnace": "Schluffstein Polierter Ofen", - "block.mineralogy.siltstone_smooth_brick_furnace": "Schluffstein Polierter Ziegelofen", + "block.mineralogy.siltstone_stairs": "Treppe aus Schluffstein", + "block.mineralogy.siltstone_slab": "Stufe aus Schluffstein", + "block.mineralogy.siltstone_brick": "Ziegel aus Schluffstein", + "block.mineralogy.siltstone_brick_stairs": "Ziegeltreppe aus Schluffstein", + "block.mineralogy.siltstone_brick_slab": "Ziegelstufe aus Schluffstein", + "block.mineralogy.siltstone_smooth": "Polierter Block aus Schluffstein", + "block.mineralogy.siltstone_smooth_stairs": "Polierte Treppe aus Schluffstein", + "block.mineralogy.siltstone_smooth_slab": "Polierte Stufe aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick": "Polierte Ziegel aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_stairs": "Polierte Ziegeltreppe aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_slab": "Polierte Ziegelstufe aus Schluffstein", + "block.mineralogy.siltstone_wall": "Mauer aus Schluffstein", + "block.mineralogy.siltstone_brick_wall": "Ziegelmauer aus Schluffstein", + "block.mineralogy.siltstone_smooth_wall": "Polierte Mauer aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_wall": "Polierte Ziegelmauer aus Schluffstein", + "block.mineralogy.siltstone_furnace": "Ofen aus Schluffstein", + "block.mineralogy.siltstone_brick_furnace": "Ziegelofen aus Schluffstein", + "block.mineralogy.siltstone_smooth_furnace": "Polierter Ofen aus Schluffstein", + "block.mineralogy.siltstone_smooth_brick_furnace": "Polierter Ziegelofen aus Schluffstein", "block.mineralogy.rock_salt": "Steinsalz", - "block.mineralogy.rock_salt_stairs": "Steinsalz Treppe", - "block.mineralogy.rock_salt_slab": "Steinsalz Platte", - "block.mineralogy.rock_salt_brick": "Steinsalz Backstein", - "block.mineralogy.rock_salt_brick_stairs": "Steinsalz Ziegelsteintreppen", - "block.mineralogy.rock_salt_brick_slab": "Steinsalz Ziegelplatte", - "block.mineralogy.rock_salt_smooth": "Polished Steinsalz", - "block.mineralogy.rock_salt_smooth_stairs": "Steinsalz Polierte Treppe", - "block.mineralogy.rock_salt_smooth_slab": "Steinsalz Polierte Platte", - "block.mineralogy.rock_salt_smooth_brick": "Steinsalz Polierter Ziegelstein", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Steinsalz Polierte Ziegelsteintreppen", - "block.mineralogy.rock_salt_smooth_brick_slab": "Steinsalz Polierte Ziegelplatte", - "block.mineralogy.rock_salt_wall": "Steinsalz Wand", - "block.mineralogy.rock_salt_brick_wall": "Steinsalz Ziegelwand", - "block.mineralogy.rock_salt_smooth_wall": "Steinsalz Polierte Wand", - "block.mineralogy.rock_salt_smooth_brick_wall": "Steinsalz Polierte Backsteinmauer", - "block.mineralogy.rock_salt_furnace": "Steinsalz Ofen", - "block.mineralogy.rock_salt_brick_furnace": "Steinsalz Ziegelofen", - "block.mineralogy.rock_salt_smooth_furnace": "Steinsalz Polierter Ofen", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Steinsalz Polierter Ziegelofen", + "block.mineralogy.rock_salt_stairs": "Treppe aus Steinsalz", + "block.mineralogy.rock_salt_slab": "Stufe aus Steinsalz", + "block.mineralogy.rock_salt_brick": "Ziegel aus Steinsalz", + "block.mineralogy.rock_salt_brick_stairs": "Ziegeltreppe aus Steinsalz", + "block.mineralogy.rock_salt_brick_slab": "Ziegelstufe aus Steinsalz", + "block.mineralogy.rock_salt_smooth": "Polierter Block aus Steinsalz", + "block.mineralogy.rock_salt_smooth_stairs": "Polierte Treppe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_slab": "Polierte Stufe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick": "Polierte Ziegel aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Polierte Ziegeltreppe aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_slab": "Polierte Ziegelstufe aus Steinsalz", + "block.mineralogy.rock_salt_wall": "Mauer aus Steinsalz", + "block.mineralogy.rock_salt_brick_wall": "Ziegelmauer aus Steinsalz", + "block.mineralogy.rock_salt_smooth_wall": "Polierte Mauer aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_wall": "Polierte Ziegelmauer aus Steinsalz", + "block.mineralogy.rock_salt_furnace": "Ofen aus Steinsalz", + "block.mineralogy.rock_salt_brick_furnace": "Ziegelofen aus Steinsalz", + "block.mineralogy.rock_salt_smooth_furnace": "Polierter Ofen aus Steinsalz", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Polierter Ziegelofen aus Steinsalz", "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Treppe", - "block.mineralogy.hornfels_slab": "Hornfels Platte", - "block.mineralogy.hornfels_brick": "Hornfels Backstein", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Ziegelsteintreppen", - "block.mineralogy.hornfels_brick_slab": "Hornfels Ziegelplatte", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Polierte Treppe", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Polierte Platte", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Polierter Ziegelstein", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Polierte Ziegelsteintreppen", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Polierte Ziegelplatte", - "block.mineralogy.hornfels_wall": "Hornfels Wand", - "block.mineralogy.hornfels_brick_wall": "Hornfels Ziegelwand", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Polierte Wand", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Polierte Backsteinmauer", - "block.mineralogy.hornfels_furnace": "Hornfels Ofen", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Ziegelofen", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Polierter Ofen", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Polierter Ziegelofen", + "block.mineralogy.hornfels_stairs": "Treppe aus Hornfels", + "block.mineralogy.hornfels_slab": "Stufe aus Hornfels", + "block.mineralogy.hornfels_brick": "Ziegel aus Hornfels", + "block.mineralogy.hornfels_brick_stairs": "Ziegeltreppe aus Hornfels", + "block.mineralogy.hornfels_brick_slab": "Ziegelstufe aus Hornfels", + "block.mineralogy.hornfels_smooth": "Polierter Block aus Hornfels", + "block.mineralogy.hornfels_smooth_stairs": "Polierte Treppe aus Hornfels", + "block.mineralogy.hornfels_smooth_slab": "Polierte Stufe aus Hornfels", + "block.mineralogy.hornfels_smooth_brick": "Polierte Ziegel aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_stairs": "Polierte Ziegeltreppe aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_slab": "Polierte Ziegelstufe aus Hornfels", + "block.mineralogy.hornfels_wall": "Mauer aus Hornfels", + "block.mineralogy.hornfels_brick_wall": "Ziegelmauer aus Hornfels", + "block.mineralogy.hornfels_smooth_wall": "Polierte Mauer aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_wall": "Polierte Ziegelmauer aus Hornfels", + "block.mineralogy.hornfels_furnace": "Ofen aus Hornfels", + "block.mineralogy.hornfels_brick_furnace": "Ziegelofen aus Hornfels", + "block.mineralogy.hornfels_smooth_furnace": "Polierter Ofen aus Hornfels", + "block.mineralogy.hornfels_smooth_brick_furnace": "Polierter Ziegelofen aus Hornfels", "block.mineralogy.quartzite": "Quarzit", - "block.mineralogy.quartzite_stairs": "Quarzit Treppe", - "block.mineralogy.quartzite_slab": "Quarzit Platte", - "block.mineralogy.quartzite_brick": "Quarzit Backstein", - "block.mineralogy.quartzite_brick_stairs": "Quarzit Ziegelsteintreppen", - "block.mineralogy.quartzite_brick_slab": "Quarzit Ziegelplatte", - "block.mineralogy.quartzite_smooth": "Polished Quarzit", - "block.mineralogy.quartzite_smooth_stairs": "Quarzit Polierte Treppe", - "block.mineralogy.quartzite_smooth_slab": "Quarzit Polierte Platte", - "block.mineralogy.quartzite_smooth_brick": "Quarzit Polierter Ziegelstein", - "block.mineralogy.quartzite_smooth_brick_stairs": "Quarzit Polierte Ziegelsteintreppen", - "block.mineralogy.quartzite_smooth_brick_slab": "Quarzit Polierte Ziegelplatte", - "block.mineralogy.quartzite_wall": "Quarzit Wand", - "block.mineralogy.quartzite_brick_wall": "Quarzit Ziegelwand", - "block.mineralogy.quartzite_smooth_wall": "Quarzit Polierte Wand", - "block.mineralogy.quartzite_smooth_brick_wall": "Quarzit Polierte Backsteinmauer", - "block.mineralogy.quartzite_furnace": "Quarzit Ofen", - "block.mineralogy.quartzite_brick_furnace": "Quarzit Ziegelofen", - "block.mineralogy.quartzite_smooth_furnace": "Quarzit Polierter Ofen", - "block.mineralogy.quartzite_smooth_brick_furnace": "Quarzit Polierter Ziegelofen", - "block.mineralogy.novaculite": "Novaculite", - "block.mineralogy.novaculite_stairs": "Novaculite Treppe", - "block.mineralogy.novaculite_slab": "Novaculite Platte", - "block.mineralogy.novaculite_brick": "Novaculite Backstein", - "block.mineralogy.novaculite_brick_stairs": "Novaculite Ziegelsteintreppen", - "block.mineralogy.novaculite_brick_slab": "Novaculite Ziegelplatte", - "block.mineralogy.novaculite_smooth": "Polished Novaculite", - "block.mineralogy.novaculite_smooth_stairs": "Novaculite Polierte Treppe", - "block.mineralogy.novaculite_smooth_slab": "Novaculite Polierte Platte", - "block.mineralogy.novaculite_smooth_brick": "Novaculite Polierter Ziegelstein", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculite Polierte Ziegelsteintreppen", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculite Polierte Ziegelplatte", - "block.mineralogy.novaculite_wall": "Novaculite Wand", - "block.mineralogy.novaculite_brick_wall": "Novaculite Ziegelwand", - "block.mineralogy.novaculite_smooth_wall": "Novaculite Polierte Wand", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculite Polierte Backsteinmauer", - "block.mineralogy.novaculite_furnace": "Novaculite Ofen", - "block.mineralogy.novaculite_brick_furnace": "Novaculite Ziegelofen", - "block.mineralogy.novaculite_smooth_furnace": "Novaculite Polierter Ofen", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculite Polierter Ziegelofen", + "block.mineralogy.quartzite_stairs": "Treppe aus Quarzit", + "block.mineralogy.quartzite_slab": "Stufe aus Quarzit", + "block.mineralogy.quartzite_brick": "Ziegel aus Quarzit", + "block.mineralogy.quartzite_brick_stairs": "Ziegeltreppe aus Quarzit", + "block.mineralogy.quartzite_brick_slab": "Ziegelstufe aus Quarzit", + "block.mineralogy.quartzite_smooth": "Polierter Block aus Quarzit", + "block.mineralogy.quartzite_smooth_stairs": "Polierte Treppe aus Quarzit", + "block.mineralogy.quartzite_smooth_slab": "Polierte Stufe aus Quarzit", + "block.mineralogy.quartzite_smooth_brick": "Polierte Ziegel aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_slab": "Polierte Ziegelstufe aus Quarzit", + "block.mineralogy.quartzite_wall": "Mauer aus Quarzit", + "block.mineralogy.quartzite_brick_wall": "Ziegelmauer aus Quarzit", + "block.mineralogy.quartzite_smooth_wall": "Polierte Mauer aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_wall": "Polierte Ziegelmauer aus Quarzit", + "block.mineralogy.quartzite_furnace": "Ofen aus Quarzit", + "block.mineralogy.quartzite_brick_furnace": "Ziegelofen aus Quarzit", + "block.mineralogy.quartzite_smooth_furnace": "Polierter Ofen aus Quarzit", + "block.mineralogy.quartzite_smooth_brick_furnace": "Polierter Ziegelofen aus Quarzit", + "block.mineralogy.novaculite": "Novakulit", + "block.mineralogy.novaculite_stairs": "Treppe aus Novakulit", + "block.mineralogy.novaculite_slab": "Stufe aus Novakulit", + "block.mineralogy.novaculite_brick": "Ziegel aus Novakulit", + "block.mineralogy.novaculite_brick_stairs": "Ziegeltreppe aus Novakulit", + "block.mineralogy.novaculite_brick_slab": "Ziegelstufe aus Novakulit", + "block.mineralogy.novaculite_smooth": "Polierter Block aus Novakulit", + "block.mineralogy.novaculite_smooth_stairs": "Polierte Treppe aus Novakulit", + "block.mineralogy.novaculite_smooth_slab": "Polierte Stufe aus Novakulit", + "block.mineralogy.novaculite_smooth_brick": "Polierte Ziegel aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_stairs": "Polierte Ziegeltreppe aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_slab": "Polierte Ziegelstufe aus Novakulit", + "block.mineralogy.novaculite_wall": "Mauer aus Novakulit", + "block.mineralogy.novaculite_brick_wall": "Ziegelmauer aus Novakulit", + "block.mineralogy.novaculite_smooth_wall": "Polierte Mauer aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_wall": "Polierte Ziegelmauer aus Novakulit", + "block.mineralogy.novaculite_furnace": "Ofen aus Novakulit", + "block.mineralogy.novaculite_brick_furnace": "Ziegelofen aus Novakulit", + "block.mineralogy.novaculite_smooth_furnace": "Polierter Ofen aus Novakulit", + "block.mineralogy.novaculite_smooth_brick_furnace": "Polierter Ziegelofen aus Novakulit", "block.mineralogy.chalk": "Kreide", - "item.mineralogy.chalk_dust": "Kreide Pulver", + "item.mineralogy.chalk_dust": "Kreidepulver", "item.mineralogy.salt_dust": "Salz", - "item.mineralogy.rock_salt_dust": "Steinsalz-Kristalle", - "block.mineralogy.rocksaltlamp": "Steinsalz-Lampe", + "item.mineralogy.rock_salt_dust": "Steinsalzkristalle", + "block.mineralogy.rocksaltlamp": "Steinsalzlampe", "block.mineralogy.rocksaltstreetlamp": "Steinsalz-Straßenlaterne", - "block.mineralogy.andesite_relief_axe": "Andesit Axe Relief", - "block.mineralogy.andesite_relief_blank": "Andesit Leere Erleichterung", - "block.mineralogy.andesite_relief_cross": "Andesit Cross Relief", - "block.mineralogy.andesite_relief_hammer": "Andesit Hammer Relief", - "block.mineralogy.andesite_relief_hoe": "Andesit Hacke Erleichterung", - "block.mineralogy.andesite_relief_horizontal": "Andesit Horizontales Relief", - "block.mineralogy.andesite_relief_i": "Andesit I Relief", - "block.mineralogy.andesite_relief_left": "Andesit Relief links", - "block.mineralogy.andesite_relief_pickaxe": "Andesit Spitzhacke Relief", - "block.mineralogy.andesite_relief_plus": "Andesit Plus Relief", - "block.mineralogy.andesite_relief_right": "Andesit Rechte Erleichterung", - "block.mineralogy.andesite_relief_sword": "Andesit Schwert Relief", - "block.mineralogy.andesite_relief_vertical": "Andesit Vertikales Relief", - "block.mineralogy.basalt_relief_axe": "Basalt Axe Relief", - "block.mineralogy.basalt_relief_blank": "Basalt Leere Erleichterung", - "block.mineralogy.basalt_relief_cross": "Basalt Cross Relief", - "block.mineralogy.basalt_relief_hammer": "Basalt Hammer Relief", - "block.mineralogy.basalt_relief_hoe": "Basalt Hacke Erleichterung", - "block.mineralogy.basalt_relief_horizontal": "Basalt Horizontales Relief", - "block.mineralogy.basalt_relief_i": "Basalt I Relief", - "block.mineralogy.basalt_relief_left": "Basalt Relief links", - "block.mineralogy.basalt_relief_pickaxe": "Basalt Spitzhacke Relief", - "block.mineralogy.basalt_relief_plus": "Basalt Plus Relief", - "block.mineralogy.basalt_relief_right": "Basalt Rechte Erleichterung", - "block.mineralogy.basalt_relief_sword": "Basalt Schwert Relief", - "block.mineralogy.basalt_relief_vertical": "Basalt Vertikales Relief", - "block.mineralogy.diorite_relief_axe": "Diorit Axe Relief", - "block.mineralogy.diorite_relief_blank": "Diorit Leere Erleichterung", - "block.mineralogy.diorite_relief_cross": "Diorit Cross Relief", - "block.mineralogy.diorite_relief_hammer": "Diorit Hammer Relief", - "block.mineralogy.diorite_relief_hoe": "Diorit Hacke Erleichterung", - "block.mineralogy.diorite_relief_horizontal": "Diorit Horizontales Relief", - "block.mineralogy.diorite_relief_i": "Diorit I Relief", - "block.mineralogy.diorite_relief_left": "Diorit Relief links", - "block.mineralogy.diorite_relief_pickaxe": "Diorit Spitzhacke Relief", - "block.mineralogy.diorite_relief_plus": "Diorit Plus Relief", - "block.mineralogy.diorite_relief_right": "Diorit Rechte Erleichterung", - "block.mineralogy.diorite_relief_sword": "Diorit Schwert Relief", - "block.mineralogy.diorite_relief_vertical": "Diorit Vertikales Relief", - "block.mineralogy.granite_relief_axe": "Granit Axe Relief", - "block.mineralogy.granite_relief_blank": "Granit Leere Erleichterung", - "block.mineralogy.granite_relief_cross": "Granit Cross Relief", - "block.mineralogy.granite_relief_hammer": "Granit Hammer Relief", - "block.mineralogy.granite_relief_hoe": "Granit Hacke Erleichterung", - "block.mineralogy.granite_relief_horizontal": "Granit Horizontales Relief", - "block.mineralogy.granite_relief_i": "Granit I Relief", - "block.mineralogy.granite_relief_left": "Granit Relief links", - "block.mineralogy.granite_relief_pickaxe": "Granit Spitzhacke Relief", - "block.mineralogy.granite_relief_plus": "Granit Plus Relief", - "block.mineralogy.granite_relief_right": "Granit Rechte Erleichterung", - "block.mineralogy.granite_relief_sword": "Granit Schwert Relief", - "block.mineralogy.granite_relief_vertical": "Granit Vertikales Relief", - "block.mineralogy.rhyolite_relief_axe": "Rhyolith Axe Relief", - "block.mineralogy.rhyolite_relief_blank": "Rhyolith Leere Erleichterung", - "block.mineralogy.rhyolite_relief_cross": "Rhyolith Cross Relief", - "block.mineralogy.rhyolite_relief_hammer": "Rhyolith Hammer Relief", - "block.mineralogy.rhyolite_relief_hoe": "Rhyolith Hacke Erleichterung", - "block.mineralogy.rhyolite_relief_horizontal": "Rhyolith Horizontales Relief", - "block.mineralogy.rhyolite_relief_i": "Rhyolith I Relief", - "block.mineralogy.rhyolite_relief_left": "Rhyolith Relief links", - "block.mineralogy.rhyolite_relief_pickaxe": "Rhyolith Spitzhacke Relief", - "block.mineralogy.rhyolite_relief_plus": "Rhyolith Plus Relief", - "block.mineralogy.rhyolite_relief_right": "Rhyolith Rechte Erleichterung", - "block.mineralogy.rhyolite_relief_sword": "Rhyolith Schwert Relief", - "block.mineralogy.rhyolite_relief_vertical": "Rhyolith Vertikales Relief", - "block.mineralogy.pegmatite_relief_axe": "Pegmatit Axe Relief", - "block.mineralogy.pegmatite_relief_blank": "Pegmatit Leere Erleichterung", - "block.mineralogy.pegmatite_relief_cross": "Pegmatit Cross Relief", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatit Hammer Relief", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatit Hacke Erleichterung", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatit Horizontales Relief", - "block.mineralogy.pegmatite_relief_i": "Pegmatit I Relief", - "block.mineralogy.pegmatite_relief_left": "Pegmatit Relief links", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatit Spitzhacke Relief", - "block.mineralogy.pegmatite_relief_plus": "Pegmatit Plus Relief", - "block.mineralogy.pegmatite_relief_right": "Pegmatit Rechte Erleichterung", - "block.mineralogy.pegmatite_relief_sword": "Pegmatit Schwert Relief", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatit Vertikales Relief", - "block.mineralogy.shale_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.shale_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.shale_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.shale_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.shale_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.shale_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.shale_relief_i": "Schiefer I Relief", - "block.mineralogy.shale_relief_left": "Schiefer Relief links", - "block.mineralogy.shale_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.shale_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.shale_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.shale_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.shale_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.conglomerate_relief_axe": "Konglomerat Axe Relief", - "block.mineralogy.conglomerate_relief_blank": "Konglomerat Leere Erleichterung", - "block.mineralogy.conglomerate_relief_cross": "Konglomerat Cross Relief", - "block.mineralogy.conglomerate_relief_hammer": "Konglomerat Hammer Relief", - "block.mineralogy.conglomerate_relief_hoe": "Konglomerat Hacke Erleichterung", - "block.mineralogy.conglomerate_relief_horizontal": "Konglomerat Horizontales Relief", - "block.mineralogy.conglomerate_relief_i": "Konglomerat I Relief", - "block.mineralogy.conglomerate_relief_left": "Konglomerat Relief links", - "block.mineralogy.conglomerate_relief_pickaxe": "Konglomerat Spitzhacke Relief", - "block.mineralogy.conglomerate_relief_plus": "Konglomerat Plus Relief", - "block.mineralogy.conglomerate_relief_right": "Konglomerat Rechte Erleichterung", - "block.mineralogy.conglomerate_relief_sword": "Konglomerat Schwert Relief", - "block.mineralogy.conglomerate_relief_vertical": "Konglomerat Vertikales Relief", - "block.mineralogy.dolomite_relief_axe": "Dolomit Axe Relief", - "block.mineralogy.dolomite_relief_blank": "Dolomit Leere Erleichterung", - "block.mineralogy.dolomite_relief_cross": "Dolomit Cross Relief", - "block.mineralogy.dolomite_relief_hammer": "Dolomit Hammer Relief", - "block.mineralogy.dolomite_relief_hoe": "Dolomit Hacke Erleichterung", - "block.mineralogy.dolomite_relief_horizontal": "Dolomit Horizontales Relief", - "block.mineralogy.dolomite_relief_i": "Dolomit I Relief", - "block.mineralogy.dolomite_relief_left": "Dolomit Relief links", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomit Spitzhacke Relief", - "block.mineralogy.dolomite_relief_plus": "Dolomit Plus Relief", - "block.mineralogy.dolomite_relief_right": "Dolomit Rechte Erleichterung", - "block.mineralogy.dolomite_relief_sword": "Dolomit Schwert Relief", - "block.mineralogy.dolomite_relief_vertical": "Dolomit Vertikales Relief", - "block.mineralogy.limestone_relief_axe": "Kalkstein Axe Relief", - "block.mineralogy.limestone_relief_blank": "Kalkstein Leere Erleichterung", - "block.mineralogy.limestone_relief_cross": "Kalkstein Cross Relief", - "block.mineralogy.limestone_relief_hammer": "Kalkstein Hammer Relief", - "block.mineralogy.limestone_relief_hoe": "Kalkstein Hacke Erleichterung", - "block.mineralogy.limestone_relief_horizontal": "Kalkstein Horizontales Relief", - "block.mineralogy.limestone_relief_i": "Kalkstein I Relief", - "block.mineralogy.limestone_relief_left": "Kalkstein Relief links", - "block.mineralogy.limestone_relief_pickaxe": "Kalkstein Spitzhacke Relief", - "block.mineralogy.limestone_relief_plus": "Kalkstein Plus Relief", - "block.mineralogy.limestone_relief_right": "Kalkstein Rechte Erleichterung", - "block.mineralogy.limestone_relief_sword": "Kalkstein Schwert Relief", - "block.mineralogy.limestone_relief_vertical": "Kalkstein Vertikales Relief", - "block.mineralogy.marble_relief_axe": "Marmor Axe Relief", - "block.mineralogy.marble_relief_blank": "Marmor Leere Erleichterung", - "block.mineralogy.marble_relief_cross": "Marmor Cross Relief", - "block.mineralogy.marble_relief_hammer": "Marmor Hammer Relief", - "block.mineralogy.marble_relief_hoe": "Marmor Hacke Erleichterung", - "block.mineralogy.marble_relief_horizontal": "Marmor Horizontales Relief", - "block.mineralogy.marble_relief_i": "Marmor I Relief", - "block.mineralogy.marble_relief_left": "Marmor Relief links", - "block.mineralogy.marble_relief_pickaxe": "Marmor Spitzhacke Relief", - "block.mineralogy.marble_relief_plus": "Marmor Plus Relief", - "block.mineralogy.marble_relief_right": "Marmor Rechte Erleichterung", - "block.mineralogy.marble_relief_sword": "Marmor Schwert Relief", - "block.mineralogy.marble_relief_vertical": "Marmor Vertikales Relief", - "block.mineralogy.slate_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.slate_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.slate_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.slate_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.slate_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.slate_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.slate_relief_i": "Schiefer I Relief", - "block.mineralogy.slate_relief_left": "Schiefer Relief links", - "block.mineralogy.slate_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.slate_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.slate_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.slate_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.slate_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.schist_relief_axe": "Schiefer Axe Relief", - "block.mineralogy.schist_relief_blank": "Schiefer Leere Erleichterung", - "block.mineralogy.schist_relief_cross": "Schiefer Cross Relief", - "block.mineralogy.schist_relief_hammer": "Schiefer Hammer Relief", - "block.mineralogy.schist_relief_hoe": "Schiefer Hacke Erleichterung", - "block.mineralogy.schist_relief_horizontal": "Schiefer Horizontales Relief", - "block.mineralogy.schist_relief_i": "Schiefer I Relief", - "block.mineralogy.schist_relief_left": "Schiefer Relief links", - "block.mineralogy.schist_relief_pickaxe": "Schiefer Spitzhacke Relief", - "block.mineralogy.schist_relief_plus": "Schiefer Plus Relief", - "block.mineralogy.schist_relief_right": "Schiefer Rechte Erleichterung", - "block.mineralogy.schist_relief_sword": "Schiefer Schwert Relief", - "block.mineralogy.schist_relief_vertical": "Schiefer Vertikales Relief", - "block.mineralogy.gneiss_relief_axe": "Gneis Axe Relief", - "block.mineralogy.gneiss_relief_blank": "Gneis Leere Erleichterung", - "block.mineralogy.gneiss_relief_cross": "Gneis Cross Relief", - "block.mineralogy.gneiss_relief_hammer": "Gneis Hammer Relief", - "block.mineralogy.gneiss_relief_hoe": "Gneis Hacke Erleichterung", - "block.mineralogy.gneiss_relief_horizontal": "Gneis Horizontales Relief", - "block.mineralogy.gneiss_relief_i": "Gneis I Relief", - "block.mineralogy.gneiss_relief_left": "Gneis Relief links", - "block.mineralogy.gneiss_relief_pickaxe": "Gneis Spitzhacke Relief", - "block.mineralogy.gneiss_relief_plus": "Gneis Plus Relief", - "block.mineralogy.gneiss_relief_right": "Gneis Rechte Erleichterung", - "block.mineralogy.gneiss_relief_sword": "Gneis Schwert Relief", - "block.mineralogy.gneiss_relief_vertical": "Gneis Vertikales Relief", - "block.mineralogy.phyllite_relief_axe": "Phyllite Axe Relief", - "block.mineralogy.phyllite_relief_blank": "Phyllite Leere Erleichterung", - "block.mineralogy.phyllite_relief_cross": "Phyllite Cross Relief", - "block.mineralogy.phyllite_relief_hammer": "Phyllite Hammer Relief", - "block.mineralogy.phyllite_relief_hoe": "Phyllite Hacke Erleichterung", - "block.mineralogy.phyllite_relief_horizontal": "Phyllite Horizontales Relief", - "block.mineralogy.phyllite_relief_i": "Phyllite I Relief", - "block.mineralogy.phyllite_relief_left": "Phyllite Relief links", - "block.mineralogy.phyllite_relief_pickaxe": "Phyllite Spitzhacke Relief", - "block.mineralogy.phyllite_relief_plus": "Phyllite Plus Relief", - "block.mineralogy.phyllite_relief_right": "Phyllite Rechte Erleichterung", - "block.mineralogy.phyllite_relief_sword": "Phyllite Schwert Relief", - "block.mineralogy.phyllite_relief_vertical": "Phyllite Vertikales Relief", - "block.mineralogy.amphibolite_relief_axe": "Amphibolith Axe Relief", - "block.mineralogy.amphibolite_relief_blank": "Amphibolith Leere Erleichterung", - "block.mineralogy.amphibolite_relief_cross": "Amphibolith Cross Relief", - "block.mineralogy.amphibolite_relief_hammer": "Amphibolith Hammer Relief", - "block.mineralogy.amphibolite_relief_hoe": "Amphibolith Hacke Erleichterung", - "block.mineralogy.amphibolite_relief_horizontal": "Amphibolith Horizontales Relief", - "block.mineralogy.amphibolite_relief_i": "Amphibolith I Relief", - "block.mineralogy.amphibolite_relief_left": "Amphibolith Relief links", - "block.mineralogy.amphibolite_relief_pickaxe": "Amphibolith Spitzhacke Relief", - "block.mineralogy.amphibolite_relief_plus": "Amphibolith Plus Relief", - "block.mineralogy.amphibolite_relief_right": "Amphibolith Rechte Erleichterung", - "block.mineralogy.amphibolite_relief_sword": "Amphibolith Schwert Relief", - "block.mineralogy.amphibolite_relief_vertical": "Amphibolith Vertikales Relief", - "block.mineralogy.diabase_relief_axe": "Diabas Axe Relief", - "block.mineralogy.diabase_relief_blank": "Diabas Leere Erleichterung", - "block.mineralogy.diabase_relief_cross": "Diabas Cross Relief", - "block.mineralogy.diabase_relief_hammer": "Diabas Hammer Relief", - "block.mineralogy.diabase_relief_hoe": "Diabas Hacke Erleichterung", - "block.mineralogy.diabase_relief_horizontal": "Diabas Horizontales Relief", - "block.mineralogy.diabase_relief_i": "Diabas I Relief", - "block.mineralogy.diabase_relief_left": "Diabas Relief links", - "block.mineralogy.diabase_relief_pickaxe": "Diabas Spitzhacke Relief", - "block.mineralogy.diabase_relief_plus": "Diabas Plus Relief", - "block.mineralogy.diabase_relief_right": "Diabas Rechte Erleichterung", - "block.mineralogy.diabase_relief_sword": "Diabas Schwert Relief", - "block.mineralogy.diabase_relief_vertical": "Diabas Vertikales Relief", - "block.mineralogy.gabbro_relief_axe": "Gabbro Axe Relief", - "block.mineralogy.gabbro_relief_blank": "Gabbro Leere Erleichterung", - "block.mineralogy.gabbro_relief_cross": "Gabbro Cross Relief", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Hammer Relief", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Hacke Erleichterung", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Horizontales Relief", - "block.mineralogy.gabbro_relief_i": "Gabbro I Relief", - "block.mineralogy.gabbro_relief_left": "Gabbro Relief links", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Spitzhacke Relief", - "block.mineralogy.gabbro_relief_plus": "Gabbro Plus Relief", - "block.mineralogy.gabbro_relief_right": "Gabbro Rechte Erleichterung", - "block.mineralogy.gabbro_relief_sword": "Gabbro Schwert Relief", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Vertikales Relief", - "block.mineralogy.peridotite_relief_axe": "Peridotit Axe Relief", - "block.mineralogy.peridotite_relief_blank": "Peridotit Leere Erleichterung", - "block.mineralogy.peridotite_relief_cross": "Peridotit Cross Relief", - "block.mineralogy.peridotite_relief_hammer": "Peridotit Hammer Relief", - "block.mineralogy.peridotite_relief_hoe": "Peridotit Hacke Erleichterung", - "block.mineralogy.peridotite_relief_horizontal": "Peridotit Horizontales Relief", - "block.mineralogy.peridotite_relief_i": "Peridotit I Relief", - "block.mineralogy.peridotite_relief_left": "Peridotit Relief links", - "block.mineralogy.peridotite_relief_pickaxe": "Peridotit Spitzhacke Relief", - "block.mineralogy.peridotite_relief_plus": "Peridotit Plus Relief", - "block.mineralogy.peridotite_relief_right": "Peridotit Rechte Erleichterung", - "block.mineralogy.peridotite_relief_sword": "Peridotit Schwert Relief", - "block.mineralogy.peridotite_relief_vertical": "Peridotit Vertikales Relief", - "block.mineralogy.basaltic_glass_relief_axe": "Basaltglas Axe Relief", - "block.mineralogy.basaltic_glass_relief_blank": "Basaltglas Leere Erleichterung", - "block.mineralogy.basaltic_glass_relief_cross": "Basaltglas Cross Relief", - "block.mineralogy.basaltic_glass_relief_hammer": "Basaltglas Hammer Relief", - "block.mineralogy.basaltic_glass_relief_hoe": "Basaltglas Hacke Erleichterung", - "block.mineralogy.basaltic_glass_relief_horizontal": "Basaltglas Horizontales Relief", - "block.mineralogy.basaltic_glass_relief_i": "Basaltglas I Relief", - "block.mineralogy.basaltic_glass_relief_left": "Basaltglas Relief links", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Basaltglas Spitzhacke Relief", - "block.mineralogy.basaltic_glass_relief_plus": "Basaltglas Plus Relief", - "block.mineralogy.basaltic_glass_relief_right": "Basaltglas Rechte Erleichterung", - "block.mineralogy.basaltic_glass_relief_sword": "Basaltglas Schwert Relief", - "block.mineralogy.basaltic_glass_relief_vertical": "Basaltglas Vertikales Relief", - "block.mineralogy.scoria_relief_axe": "Schlacke Axe Relief", - "block.mineralogy.scoria_relief_blank": "Schlacke Leere Erleichterung", - "block.mineralogy.scoria_relief_cross": "Schlacke Cross Relief", - "block.mineralogy.scoria_relief_hammer": "Schlacke Hammer Relief", - "block.mineralogy.scoria_relief_hoe": "Schlacke Hacke Erleichterung", - "block.mineralogy.scoria_relief_horizontal": "Schlacke Horizontales Relief", - "block.mineralogy.scoria_relief_i": "Schlacke I Relief", - "block.mineralogy.scoria_relief_left": "Schlacke Relief links", - "block.mineralogy.scoria_relief_pickaxe": "Schlacke Spitzhacke Relief", - "block.mineralogy.scoria_relief_plus": "Schlacke Plus Relief", - "block.mineralogy.scoria_relief_right": "Schlacke Rechte Erleichterung", - "block.mineralogy.scoria_relief_sword": "Schlacke Schwert Relief", - "block.mineralogy.scoria_relief_vertical": "Schlacke Vertikales Relief", - "block.mineralogy.tuff_relief_axe": "Tuff Axe Relief", - "block.mineralogy.tuff_relief_blank": "Tuff Leere Erleichterung", - "block.mineralogy.tuff_relief_cross": "Tuff Cross Relief", - "block.mineralogy.tuff_relief_hammer": "Tuff Hammer Relief", - "block.mineralogy.tuff_relief_hoe": "Tuff Hacke Erleichterung", - "block.mineralogy.tuff_relief_horizontal": "Tuff Horizontales Relief", - "block.mineralogy.tuff_relief_i": "Tuff I Relief", - "block.mineralogy.tuff_relief_left": "Tuff Relief links", - "block.mineralogy.tuff_relief_pickaxe": "Tuff Spitzhacke Relief", - "block.mineralogy.tuff_relief_plus": "Tuff Plus Relief", - "block.mineralogy.tuff_relief_right": "Tuff Rechte Erleichterung", - "block.mineralogy.tuff_relief_sword": "Tuff Schwert Relief", - "block.mineralogy.tuff_relief_vertical": "Tuff Vertikales Relief", - "block.mineralogy.siltstone_relief_axe": "Schluffstein Axe Relief", - "block.mineralogy.siltstone_relief_blank": "Schluffstein Leere Erleichterung", - "block.mineralogy.siltstone_relief_cross": "Schluffstein Cross Relief", - "block.mineralogy.siltstone_relief_hammer": "Schluffstein Hammer Relief", - "block.mineralogy.siltstone_relief_hoe": "Schluffstein Hacke Erleichterung", - "block.mineralogy.siltstone_relief_horizontal": "Schluffstein Horizontales Relief", - "block.mineralogy.siltstone_relief_i": "Schluffstein I Relief", - "block.mineralogy.siltstone_relief_left": "Schluffstein Relief links", - "block.mineralogy.siltstone_relief_pickaxe": "Schluffstein Spitzhacke Relief", - "block.mineralogy.siltstone_relief_plus": "Schluffstein Plus Relief", - "block.mineralogy.siltstone_relief_right": "Schluffstein Rechte Erleichterung", - "block.mineralogy.siltstone_relief_sword": "Schluffstein Schwert Relief", - "block.mineralogy.siltstone_relief_vertical": "Schluffstein Vertikales Relief", - "block.mineralogy.rock_salt_relief_axe": "Steinsalz Axe Relief", - "block.mineralogy.rock_salt_relief_blank": "Steinsalz Leere Erleichterung", - "block.mineralogy.rock_salt_relief_cross": "Steinsalz Cross Relief", - "block.mineralogy.rock_salt_relief_hammer": "Steinsalz Hammer Relief", - "block.mineralogy.rock_salt_relief_hoe": "Steinsalz Hacke Erleichterung", - "block.mineralogy.rock_salt_relief_horizontal": "Steinsalz Horizontales Relief", - "block.mineralogy.rock_salt_relief_i": "Steinsalz I Relief", - "block.mineralogy.rock_salt_relief_left": "Steinsalz Relief links", - "block.mineralogy.rock_salt_relief_pickaxe": "Steinsalz Spitzhacke Relief", - "block.mineralogy.rock_salt_relief_plus": "Steinsalz Plus Relief", - "block.mineralogy.rock_salt_relief_right": "Steinsalz Rechte Erleichterung", - "block.mineralogy.rock_salt_relief_sword": "Steinsalz Schwert Relief", - "block.mineralogy.rock_salt_relief_vertical": "Steinsalz Vertikales Relief", - "block.mineralogy.hornfels_relief_axe": "Hornfels Axe Relief", - "block.mineralogy.hornfels_relief_blank": "Hornfels Leere Erleichterung", - "block.mineralogy.hornfels_relief_cross": "Hornfels Cross Relief", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Hammer Relief", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Hacke Erleichterung", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Horizontales Relief", - "block.mineralogy.hornfels_relief_i": "Hornfels I Relief", - "block.mineralogy.hornfels_relief_left": "Hornfels Relief links", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Spitzhacke Relief", - "block.mineralogy.hornfels_relief_plus": "Hornfels Plus Relief", - "block.mineralogy.hornfels_relief_right": "Hornfels Rechte Erleichterung", - "block.mineralogy.hornfels_relief_sword": "Hornfels Schwert Relief", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Vertikales Relief", - "block.mineralogy.quartzite_relief_axe": "Quarzit Axe Relief", - "block.mineralogy.quartzite_relief_blank": "Quarzit Leere Erleichterung", - "block.mineralogy.quartzite_relief_cross": "Quarzit Cross Relief", - "block.mineralogy.quartzite_relief_hammer": "Quarzit Hammer Relief", - "block.mineralogy.quartzite_relief_hoe": "Quarzit Hacke Erleichterung", - "block.mineralogy.quartzite_relief_horizontal": "Quarzit Horizontales Relief", - "block.mineralogy.quartzite_relief_i": "Quarzit I Relief", - "block.mineralogy.quartzite_relief_left": "Quarzit Relief links", - "block.mineralogy.quartzite_relief_pickaxe": "Quarzit Spitzhacke Relief", - "block.mineralogy.quartzite_relief_plus": "Quarzit Plus Relief", - "block.mineralogy.quartzite_relief_right": "Quarzit Rechte Erleichterung", - "block.mineralogy.quartzite_relief_sword": "Quarzit Schwert Relief", - "block.mineralogy.quartzite_relief_vertical": "Quarzit Vertikales Relief", - "block.mineralogy.novaculite_relief_axe": "Novaculite Axe Relief", - "block.mineralogy.novaculite_relief_blank": "Novaculite Leere Erleichterung", - "block.mineralogy.novaculite_relief_cross": "Novaculite Cross Relief", - "block.mineralogy.novaculite_relief_hammer": "Novaculite Hammer Relief", - "block.mineralogy.novaculite_relief_hoe": "Novaculite Hacke Erleichterung", - "block.mineralogy.novaculite_relief_horizontal": "Novaculite Horizontales Relief", - "block.mineralogy.novaculite_relief_i": "Novaculite I Relief", - "block.mineralogy.novaculite_relief_left": "Novaculite Relief links", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculite Spitzhacke Relief", - "block.mineralogy.novaculite_relief_plus": "Novaculite Plus Relief", - "block.mineralogy.novaculite_relief_right": "Novaculite Rechte Erleichterung", - "block.mineralogy.novaculite_relief_sword": "Novaculite Schwert Relief", - "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertikales Relief", - "advancements.mineralogy.all_the_rocks.title": "Nennen Sie die Felsen Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, Sie haben alle gängigen Gesteinsarten in der Mineralogie gefunden!", - "fluid.mineralogy.crude_oil": "Rohöl", - "block.mineralogy.crude_oil": "Rohöl", - "item.mineralogy.crude_oil_bucket": "Rohöleimer", + "block.mineralogy.andesite_relief_axe": "Relief aus Andesit (Axt)", + "block.mineralogy.andesite_relief_blank": "Relief aus Andesit (ohne Motiv)", + "block.mineralogy.andesite_relief_cross": "Relief aus Andesit (Kreuz)", + "block.mineralogy.andesite_relief_hammer": "Relief aus Andesit (Hammer)", + "block.mineralogy.andesite_relief_hoe": "Relief aus Andesit (Hacke)", + "block.mineralogy.andesite_relief_horizontal": "Relief aus Andesit (waagerecht)", + "block.mineralogy.andesite_relief_i": "Relief aus Andesit (I)", + "block.mineralogy.andesite_relief_left": "Relief aus Andesit (links)", + "block.mineralogy.andesite_relief_pickaxe": "Relief aus Andesit (Spitzhacke)", + "block.mineralogy.andesite_relief_plus": "Relief aus Andesit (Pluszeichen)", + "block.mineralogy.andesite_relief_right": "Relief aus Andesit (rechts)", + "block.mineralogy.andesite_relief_sword": "Relief aus Andesit (Schwert)", + "block.mineralogy.andesite_relief_vertical": "Relief aus Andesit (senkrecht)", + "block.mineralogy.basalt_relief_axe": "Relief aus Basalt (Axt)", + "block.mineralogy.basalt_relief_blank": "Relief aus Basalt (ohne Motiv)", + "block.mineralogy.basalt_relief_cross": "Relief aus Basalt (Kreuz)", + "block.mineralogy.basalt_relief_hammer": "Relief aus Basalt (Hammer)", + "block.mineralogy.basalt_relief_hoe": "Relief aus Basalt (Hacke)", + "block.mineralogy.basalt_relief_horizontal": "Relief aus Basalt (waagerecht)", + "block.mineralogy.basalt_relief_i": "Relief aus Basalt (I)", + "block.mineralogy.basalt_relief_left": "Relief aus Basalt (links)", + "block.mineralogy.basalt_relief_pickaxe": "Relief aus Basalt (Spitzhacke)", + "block.mineralogy.basalt_relief_plus": "Relief aus Basalt (Pluszeichen)", + "block.mineralogy.basalt_relief_right": "Relief aus Basalt (rechts)", + "block.mineralogy.basalt_relief_sword": "Relief aus Basalt (Schwert)", + "block.mineralogy.basalt_relief_vertical": "Relief aus Basalt (senkrecht)", + "block.mineralogy.diorite_relief_axe": "Relief aus Diorit (Axt)", + "block.mineralogy.diorite_relief_blank": "Relief aus Diorit (ohne Motiv)", + "block.mineralogy.diorite_relief_cross": "Relief aus Diorit (Kreuz)", + "block.mineralogy.diorite_relief_hammer": "Relief aus Diorit (Hammer)", + "block.mineralogy.diorite_relief_hoe": "Relief aus Diorit (Hacke)", + "block.mineralogy.diorite_relief_horizontal": "Relief aus Diorit (waagerecht)", + "block.mineralogy.diorite_relief_i": "Relief aus Diorit (I)", + "block.mineralogy.diorite_relief_left": "Relief aus Diorit (links)", + "block.mineralogy.diorite_relief_pickaxe": "Relief aus Diorit (Spitzhacke)", + "block.mineralogy.diorite_relief_plus": "Relief aus Diorit (Pluszeichen)", + "block.mineralogy.diorite_relief_right": "Relief aus Diorit (rechts)", + "block.mineralogy.diorite_relief_sword": "Relief aus Diorit (Schwert)", + "block.mineralogy.diorite_relief_vertical": "Relief aus Diorit (senkrecht)", + "block.mineralogy.granite_relief_axe": "Relief aus Granit (Axt)", + "block.mineralogy.granite_relief_blank": "Relief aus Granit (ohne Motiv)", + "block.mineralogy.granite_relief_cross": "Relief aus Granit (Kreuz)", + "block.mineralogy.granite_relief_hammer": "Relief aus Granit (Hammer)", + "block.mineralogy.granite_relief_hoe": "Relief aus Granit (Hacke)", + "block.mineralogy.granite_relief_horizontal": "Relief aus Granit (waagerecht)", + "block.mineralogy.granite_relief_i": "Relief aus Granit (I)", + "block.mineralogy.granite_relief_left": "Relief aus Granit (links)", + "block.mineralogy.granite_relief_pickaxe": "Relief aus Granit (Spitzhacke)", + "block.mineralogy.granite_relief_plus": "Relief aus Granit (Pluszeichen)", + "block.mineralogy.granite_relief_right": "Relief aus Granit (rechts)", + "block.mineralogy.granite_relief_sword": "Relief aus Granit (Schwert)", + "block.mineralogy.granite_relief_vertical": "Relief aus Granit (senkrecht)", + "block.mineralogy.rhyolite_relief_axe": "Relief aus Rhyolith (Axt)", + "block.mineralogy.rhyolite_relief_blank": "Relief aus Rhyolith (ohne Motiv)", + "block.mineralogy.rhyolite_relief_cross": "Relief aus Rhyolith (Kreuz)", + "block.mineralogy.rhyolite_relief_hammer": "Relief aus Rhyolith (Hammer)", + "block.mineralogy.rhyolite_relief_hoe": "Relief aus Rhyolith (Hacke)", + "block.mineralogy.rhyolite_relief_horizontal": "Relief aus Rhyolith (waagerecht)", + "block.mineralogy.rhyolite_relief_i": "Relief aus Rhyolith (I)", + "block.mineralogy.rhyolite_relief_left": "Relief aus Rhyolith (links)", + "block.mineralogy.rhyolite_relief_pickaxe": "Relief aus Rhyolith (Spitzhacke)", + "block.mineralogy.rhyolite_relief_plus": "Relief aus Rhyolith (Pluszeichen)", + "block.mineralogy.rhyolite_relief_right": "Relief aus Rhyolith (rechts)", + "block.mineralogy.rhyolite_relief_sword": "Relief aus Rhyolith (Schwert)", + "block.mineralogy.rhyolite_relief_vertical": "Relief aus Rhyolith (senkrecht)", + "block.mineralogy.pegmatite_relief_axe": "Relief aus Pegmatit (Axt)", + "block.mineralogy.pegmatite_relief_blank": "Relief aus Pegmatit (ohne Motiv)", + "block.mineralogy.pegmatite_relief_cross": "Relief aus Pegmatit (Kreuz)", + "block.mineralogy.pegmatite_relief_hammer": "Relief aus Pegmatit (Hammer)", + "block.mineralogy.pegmatite_relief_hoe": "Relief aus Pegmatit (Hacke)", + "block.mineralogy.pegmatite_relief_horizontal": "Relief aus Pegmatit (waagerecht)", + "block.mineralogy.pegmatite_relief_i": "Relief aus Pegmatit (I)", + "block.mineralogy.pegmatite_relief_left": "Relief aus Pegmatit (links)", + "block.mineralogy.pegmatite_relief_pickaxe": "Relief aus Pegmatit (Spitzhacke)", + "block.mineralogy.pegmatite_relief_plus": "Relief aus Pegmatit (Pluszeichen)", + "block.mineralogy.pegmatite_relief_right": "Relief aus Pegmatit (rechts)", + "block.mineralogy.pegmatite_relief_sword": "Relief aus Pegmatit (Schwert)", + "block.mineralogy.pegmatite_relief_vertical": "Relief aus Pegmatit (senkrecht)", + "block.mineralogy.shale_relief_axe": "Relief aus Tonschiefer (Axt)", + "block.mineralogy.shale_relief_blank": "Relief aus Tonschiefer (ohne Motiv)", + "block.mineralogy.shale_relief_cross": "Relief aus Tonschiefer (Kreuz)", + "block.mineralogy.shale_relief_hammer": "Relief aus Tonschiefer (Hammer)", + "block.mineralogy.shale_relief_hoe": "Relief aus Tonschiefer (Hacke)", + "block.mineralogy.shale_relief_horizontal": "Relief aus Tonschiefer (waagerecht)", + "block.mineralogy.shale_relief_i": "Relief aus Tonschiefer (I)", + "block.mineralogy.shale_relief_left": "Relief aus Tonschiefer (links)", + "block.mineralogy.shale_relief_pickaxe": "Relief aus Tonschiefer (Spitzhacke)", + "block.mineralogy.shale_relief_plus": "Relief aus Tonschiefer (Pluszeichen)", + "block.mineralogy.shale_relief_right": "Relief aus Tonschiefer (rechts)", + "block.mineralogy.shale_relief_sword": "Relief aus Tonschiefer (Schwert)", + "block.mineralogy.shale_relief_vertical": "Relief aus Tonschiefer (senkrecht)", + "block.mineralogy.conglomerate_relief_axe": "Relief aus Konglomerat (Axt)", + "block.mineralogy.conglomerate_relief_blank": "Relief aus Konglomerat (ohne Motiv)", + "block.mineralogy.conglomerate_relief_cross": "Relief aus Konglomerat (Kreuz)", + "block.mineralogy.conglomerate_relief_hammer": "Relief aus Konglomerat (Hammer)", + "block.mineralogy.conglomerate_relief_hoe": "Relief aus Konglomerat (Hacke)", + "block.mineralogy.conglomerate_relief_horizontal": "Relief aus Konglomerat (waagerecht)", + "block.mineralogy.conglomerate_relief_i": "Relief aus Konglomerat (I)", + "block.mineralogy.conglomerate_relief_left": "Relief aus Konglomerat (links)", + "block.mineralogy.conglomerate_relief_pickaxe": "Relief aus Konglomerat (Spitzhacke)", + "block.mineralogy.conglomerate_relief_plus": "Relief aus Konglomerat (Pluszeichen)", + "block.mineralogy.conglomerate_relief_right": "Relief aus Konglomerat (rechts)", + "block.mineralogy.conglomerate_relief_sword": "Relief aus Konglomerat (Schwert)", + "block.mineralogy.conglomerate_relief_vertical": "Relief aus Konglomerat (senkrecht)", + "block.mineralogy.dolomite_relief_axe": "Relief aus Dolomit (Axt)", + "block.mineralogy.dolomite_relief_blank": "Relief aus Dolomit (ohne Motiv)", + "block.mineralogy.dolomite_relief_cross": "Relief aus Dolomit (Kreuz)", + "block.mineralogy.dolomite_relief_hammer": "Relief aus Dolomit (Hammer)", + "block.mineralogy.dolomite_relief_hoe": "Relief aus Dolomit (Hacke)", + "block.mineralogy.dolomite_relief_horizontal": "Relief aus Dolomit (waagerecht)", + "block.mineralogy.dolomite_relief_i": "Relief aus Dolomit (I)", + "block.mineralogy.dolomite_relief_left": "Relief aus Dolomit (links)", + "block.mineralogy.dolomite_relief_pickaxe": "Relief aus Dolomit (Spitzhacke)", + "block.mineralogy.dolomite_relief_plus": "Relief aus Dolomit (Pluszeichen)", + "block.mineralogy.dolomite_relief_right": "Relief aus Dolomit (rechts)", + "block.mineralogy.dolomite_relief_sword": "Relief aus Dolomit (Schwert)", + "block.mineralogy.dolomite_relief_vertical": "Relief aus Dolomit (senkrecht)", + "block.mineralogy.limestone_relief_axe": "Relief aus Kalkstein (Axt)", + "block.mineralogy.limestone_relief_blank": "Relief aus Kalkstein (ohne Motiv)", + "block.mineralogy.limestone_relief_cross": "Relief aus Kalkstein (Kreuz)", + "block.mineralogy.limestone_relief_hammer": "Relief aus Kalkstein (Hammer)", + "block.mineralogy.limestone_relief_hoe": "Relief aus Kalkstein (Hacke)", + "block.mineralogy.limestone_relief_horizontal": "Relief aus Kalkstein (waagerecht)", + "block.mineralogy.limestone_relief_i": "Relief aus Kalkstein (I)", + "block.mineralogy.limestone_relief_left": "Relief aus Kalkstein (links)", + "block.mineralogy.limestone_relief_pickaxe": "Relief aus Kalkstein (Spitzhacke)", + "block.mineralogy.limestone_relief_plus": "Relief aus Kalkstein (Pluszeichen)", + "block.mineralogy.limestone_relief_right": "Relief aus Kalkstein (rechts)", + "block.mineralogy.limestone_relief_sword": "Relief aus Kalkstein (Schwert)", + "block.mineralogy.limestone_relief_vertical": "Relief aus Kalkstein (senkrecht)", + "block.mineralogy.marble_relief_axe": "Relief aus Marmor (Axt)", + "block.mineralogy.marble_relief_blank": "Relief aus Marmor (ohne Motiv)", + "block.mineralogy.marble_relief_cross": "Relief aus Marmor (Kreuz)", + "block.mineralogy.marble_relief_hammer": "Relief aus Marmor (Hammer)", + "block.mineralogy.marble_relief_hoe": "Relief aus Marmor (Hacke)", + "block.mineralogy.marble_relief_horizontal": "Relief aus Marmor (waagerecht)", + "block.mineralogy.marble_relief_i": "Relief aus Marmor (I)", + "block.mineralogy.marble_relief_left": "Relief aus Marmor (links)", + "block.mineralogy.marble_relief_pickaxe": "Relief aus Marmor (Spitzhacke)", + "block.mineralogy.marble_relief_plus": "Relief aus Marmor (Pluszeichen)", + "block.mineralogy.marble_relief_right": "Relief aus Marmor (rechts)", + "block.mineralogy.marble_relief_sword": "Relief aus Marmor (Schwert)", + "block.mineralogy.marble_relief_vertical": "Relief aus Marmor (senkrecht)", + "block.mineralogy.slate_relief_axe": "Relief aus Schiefer (Axt)", + "block.mineralogy.slate_relief_blank": "Relief aus Schiefer (ohne Motiv)", + "block.mineralogy.slate_relief_cross": "Relief aus Schiefer (Kreuz)", + "block.mineralogy.slate_relief_hammer": "Relief aus Schiefer (Hammer)", + "block.mineralogy.slate_relief_hoe": "Relief aus Schiefer (Hacke)", + "block.mineralogy.slate_relief_horizontal": "Relief aus Schiefer (waagerecht)", + "block.mineralogy.slate_relief_i": "Relief aus Schiefer (I)", + "block.mineralogy.slate_relief_left": "Relief aus Schiefer (links)", + "block.mineralogy.slate_relief_pickaxe": "Relief aus Schiefer (Spitzhacke)", + "block.mineralogy.slate_relief_plus": "Relief aus Schiefer (Pluszeichen)", + "block.mineralogy.slate_relief_right": "Relief aus Schiefer (rechts)", + "block.mineralogy.slate_relief_sword": "Relief aus Schiefer (Schwert)", + "block.mineralogy.slate_relief_vertical": "Relief aus Schiefer (senkrecht)", + "block.mineralogy.schist_relief_axe": "Relief aus Glimmerschiefer (Axt)", + "block.mineralogy.schist_relief_blank": "Relief aus Glimmerschiefer (ohne Motiv)", + "block.mineralogy.schist_relief_cross": "Relief aus Glimmerschiefer (Kreuz)", + "block.mineralogy.schist_relief_hammer": "Relief aus Glimmerschiefer (Hammer)", + "block.mineralogy.schist_relief_hoe": "Relief aus Glimmerschiefer (Hacke)", + "block.mineralogy.schist_relief_horizontal": "Relief aus Glimmerschiefer (waagerecht)", + "block.mineralogy.schist_relief_i": "Relief aus Glimmerschiefer (I)", + "block.mineralogy.schist_relief_left": "Relief aus Glimmerschiefer (links)", + "block.mineralogy.schist_relief_pickaxe": "Relief aus Glimmerschiefer (Spitzhacke)", + "block.mineralogy.schist_relief_plus": "Relief aus Glimmerschiefer (Pluszeichen)", + "block.mineralogy.schist_relief_right": "Relief aus Glimmerschiefer (rechts)", + "block.mineralogy.schist_relief_sword": "Relief aus Glimmerschiefer (Schwert)", + "block.mineralogy.schist_relief_vertical": "Relief aus Glimmerschiefer (senkrecht)", + "block.mineralogy.gneiss_relief_axe": "Relief aus Gneis (Axt)", + "block.mineralogy.gneiss_relief_blank": "Relief aus Gneis (ohne Motiv)", + "block.mineralogy.gneiss_relief_cross": "Relief aus Gneis (Kreuz)", + "block.mineralogy.gneiss_relief_hammer": "Relief aus Gneis (Hammer)", + "block.mineralogy.gneiss_relief_hoe": "Relief aus Gneis (Hacke)", + "block.mineralogy.gneiss_relief_horizontal": "Relief aus Gneis (waagerecht)", + "block.mineralogy.gneiss_relief_i": "Relief aus Gneis (I)", + "block.mineralogy.gneiss_relief_left": "Relief aus Gneis (links)", + "block.mineralogy.gneiss_relief_pickaxe": "Relief aus Gneis (Spitzhacke)", + "block.mineralogy.gneiss_relief_plus": "Relief aus Gneis (Pluszeichen)", + "block.mineralogy.gneiss_relief_right": "Relief aus Gneis (rechts)", + "block.mineralogy.gneiss_relief_sword": "Relief aus Gneis (Schwert)", + "block.mineralogy.gneiss_relief_vertical": "Relief aus Gneis (senkrecht)", + "block.mineralogy.phyllite_relief_axe": "Relief aus Phyllit (Axt)", + "block.mineralogy.phyllite_relief_blank": "Relief aus Phyllit (ohne Motiv)", + "block.mineralogy.phyllite_relief_cross": "Relief aus Phyllit (Kreuz)", + "block.mineralogy.phyllite_relief_hammer": "Relief aus Phyllit (Hammer)", + "block.mineralogy.phyllite_relief_hoe": "Relief aus Phyllit (Hacke)", + "block.mineralogy.phyllite_relief_horizontal": "Relief aus Phyllit (waagerecht)", + "block.mineralogy.phyllite_relief_i": "Relief aus Phyllit (I)", + "block.mineralogy.phyllite_relief_left": "Relief aus Phyllit (links)", + "block.mineralogy.phyllite_relief_pickaxe": "Relief aus Phyllit (Spitzhacke)", + "block.mineralogy.phyllite_relief_plus": "Relief aus Phyllit (Pluszeichen)", + "block.mineralogy.phyllite_relief_right": "Relief aus Phyllit (rechts)", + "block.mineralogy.phyllite_relief_sword": "Relief aus Phyllit (Schwert)", + "block.mineralogy.phyllite_relief_vertical": "Relief aus Phyllit (senkrecht)", + "block.mineralogy.amphibolite_relief_axe": "Relief aus Amphibolit (Axt)", + "block.mineralogy.amphibolite_relief_blank": "Relief aus Amphibolit (ohne Motiv)", + "block.mineralogy.amphibolite_relief_cross": "Relief aus Amphibolit (Kreuz)", + "block.mineralogy.amphibolite_relief_hammer": "Relief aus Amphibolit (Hammer)", + "block.mineralogy.amphibolite_relief_hoe": "Relief aus Amphibolit (Hacke)", + "block.mineralogy.amphibolite_relief_horizontal": "Relief aus Amphibolit (waagerecht)", + "block.mineralogy.amphibolite_relief_i": "Relief aus Amphibolit (I)", + "block.mineralogy.amphibolite_relief_left": "Relief aus Amphibolit (links)", + "block.mineralogy.amphibolite_relief_pickaxe": "Relief aus Amphibolit (Spitzhacke)", + "block.mineralogy.amphibolite_relief_plus": "Relief aus Amphibolit (Pluszeichen)", + "block.mineralogy.amphibolite_relief_right": "Relief aus Amphibolit (rechts)", + "block.mineralogy.amphibolite_relief_sword": "Relief aus Amphibolit (Schwert)", + "block.mineralogy.amphibolite_relief_vertical": "Relief aus Amphibolit (senkrecht)", + "block.mineralogy.diabase_relief_axe": "Relief aus Diabas (Axt)", + "block.mineralogy.diabase_relief_blank": "Relief aus Diabas (ohne Motiv)", + "block.mineralogy.diabase_relief_cross": "Relief aus Diabas (Kreuz)", + "block.mineralogy.diabase_relief_hammer": "Relief aus Diabas (Hammer)", + "block.mineralogy.diabase_relief_hoe": "Relief aus Diabas (Hacke)", + "block.mineralogy.diabase_relief_horizontal": "Relief aus Diabas (waagerecht)", + "block.mineralogy.diabase_relief_i": "Relief aus Diabas (I)", + "block.mineralogy.diabase_relief_left": "Relief aus Diabas (links)", + "block.mineralogy.diabase_relief_pickaxe": "Relief aus Diabas (Spitzhacke)", + "block.mineralogy.diabase_relief_plus": "Relief aus Diabas (Pluszeichen)", + "block.mineralogy.diabase_relief_right": "Relief aus Diabas (rechts)", + "block.mineralogy.diabase_relief_sword": "Relief aus Diabas (Schwert)", + "block.mineralogy.diabase_relief_vertical": "Relief aus Diabas (senkrecht)", + "block.mineralogy.gabbro_relief_axe": "Relief aus Gabbro (Axt)", + "block.mineralogy.gabbro_relief_blank": "Relief aus Gabbro (ohne Motiv)", + "block.mineralogy.gabbro_relief_cross": "Relief aus Gabbro (Kreuz)", + "block.mineralogy.gabbro_relief_hammer": "Relief aus Gabbro (Hammer)", + "block.mineralogy.gabbro_relief_hoe": "Relief aus Gabbro (Hacke)", + "block.mineralogy.gabbro_relief_horizontal": "Relief aus Gabbro (waagerecht)", + "block.mineralogy.gabbro_relief_i": "Relief aus Gabbro (I)", + "block.mineralogy.gabbro_relief_left": "Relief aus Gabbro (links)", + "block.mineralogy.gabbro_relief_pickaxe": "Relief aus Gabbro (Spitzhacke)", + "block.mineralogy.gabbro_relief_plus": "Relief aus Gabbro (Pluszeichen)", + "block.mineralogy.gabbro_relief_right": "Relief aus Gabbro (rechts)", + "block.mineralogy.gabbro_relief_sword": "Relief aus Gabbro (Schwert)", + "block.mineralogy.gabbro_relief_vertical": "Relief aus Gabbro (senkrecht)", + "block.mineralogy.peridotite_relief_axe": "Relief aus Peridotit (Axt)", + "block.mineralogy.peridotite_relief_blank": "Relief aus Peridotit (ohne Motiv)", + "block.mineralogy.peridotite_relief_cross": "Relief aus Peridotit (Kreuz)", + "block.mineralogy.peridotite_relief_hammer": "Relief aus Peridotit (Hammer)", + "block.mineralogy.peridotite_relief_hoe": "Relief aus Peridotit (Hacke)", + "block.mineralogy.peridotite_relief_horizontal": "Relief aus Peridotit (waagerecht)", + "block.mineralogy.peridotite_relief_i": "Relief aus Peridotit (I)", + "block.mineralogy.peridotite_relief_left": "Relief aus Peridotit (links)", + "block.mineralogy.peridotite_relief_pickaxe": "Relief aus Peridotit (Spitzhacke)", + "block.mineralogy.peridotite_relief_plus": "Relief aus Peridotit (Pluszeichen)", + "block.mineralogy.peridotite_relief_right": "Relief aus Peridotit (rechts)", + "block.mineralogy.peridotite_relief_sword": "Relief aus Peridotit (Schwert)", + "block.mineralogy.peridotite_relief_vertical": "Relief aus Peridotit (senkrecht)", + "block.mineralogy.basaltic_glass_relief_axe": "Relief aus Basaltglas (Axt)", + "block.mineralogy.basaltic_glass_relief_blank": "Relief aus Basaltglas (ohne Motiv)", + "block.mineralogy.basaltic_glass_relief_cross": "Relief aus Basaltglas (Kreuz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Relief aus Basaltglas (Hammer)", + "block.mineralogy.basaltic_glass_relief_hoe": "Relief aus Basaltglas (Hacke)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Relief aus Basaltglas (waagerecht)", + "block.mineralogy.basaltic_glass_relief_i": "Relief aus Basaltglas (I)", + "block.mineralogy.basaltic_glass_relief_left": "Relief aus Basaltglas (links)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Relief aus Basaltglas (Spitzhacke)", + "block.mineralogy.basaltic_glass_relief_plus": "Relief aus Basaltglas (Pluszeichen)", + "block.mineralogy.basaltic_glass_relief_right": "Relief aus Basaltglas (rechts)", + "block.mineralogy.basaltic_glass_relief_sword": "Relief aus Basaltglas (Schwert)", + "block.mineralogy.basaltic_glass_relief_vertical": "Relief aus Basaltglas (senkrecht)", + "block.mineralogy.scoria_relief_axe": "Relief aus Skoria (Axt)", + "block.mineralogy.scoria_relief_blank": "Relief aus Skoria (ohne Motiv)", + "block.mineralogy.scoria_relief_cross": "Relief aus Skoria (Kreuz)", + "block.mineralogy.scoria_relief_hammer": "Relief aus Skoria (Hammer)", + "block.mineralogy.scoria_relief_hoe": "Relief aus Skoria (Hacke)", + "block.mineralogy.scoria_relief_horizontal": "Relief aus Skoria (waagerecht)", + "block.mineralogy.scoria_relief_i": "Relief aus Skoria (I)", + "block.mineralogy.scoria_relief_left": "Relief aus Skoria (links)", + "block.mineralogy.scoria_relief_pickaxe": "Relief aus Skoria (Spitzhacke)", + "block.mineralogy.scoria_relief_plus": "Relief aus Skoria (Pluszeichen)", + "block.mineralogy.scoria_relief_right": "Relief aus Skoria (rechts)", + "block.mineralogy.scoria_relief_sword": "Relief aus Skoria (Schwert)", + "block.mineralogy.scoria_relief_vertical": "Relief aus Skoria (senkrecht)", + "block.mineralogy.tuff_relief_axe": "Relief aus Tuffstein (Axt)", + "block.mineralogy.tuff_relief_blank": "Relief aus Tuffstein (ohne Motiv)", + "block.mineralogy.tuff_relief_cross": "Relief aus Tuffstein (Kreuz)", + "block.mineralogy.tuff_relief_hammer": "Relief aus Tuffstein (Hammer)", + "block.mineralogy.tuff_relief_hoe": "Relief aus Tuffstein (Hacke)", + "block.mineralogy.tuff_relief_horizontal": "Relief aus Tuffstein (waagerecht)", + "block.mineralogy.tuff_relief_i": "Relief aus Tuffstein (I)", + "block.mineralogy.tuff_relief_left": "Relief aus Tuffstein (links)", + "block.mineralogy.tuff_relief_pickaxe": "Relief aus Tuffstein (Spitzhacke)", + "block.mineralogy.tuff_relief_plus": "Relief aus Tuffstein (Pluszeichen)", + "block.mineralogy.tuff_relief_right": "Relief aus Tuffstein (rechts)", + "block.mineralogy.tuff_relief_sword": "Relief aus Tuffstein (Schwert)", + "block.mineralogy.tuff_relief_vertical": "Relief aus Tuffstein (senkrecht)", + "block.mineralogy.siltstone_relief_axe": "Relief aus Schluffstein (Axt)", + "block.mineralogy.siltstone_relief_blank": "Relief aus Schluffstein (ohne Motiv)", + "block.mineralogy.siltstone_relief_cross": "Relief aus Schluffstein (Kreuz)", + "block.mineralogy.siltstone_relief_hammer": "Relief aus Schluffstein (Hammer)", + "block.mineralogy.siltstone_relief_hoe": "Relief aus Schluffstein (Hacke)", + "block.mineralogy.siltstone_relief_horizontal": "Relief aus Schluffstein (waagerecht)", + "block.mineralogy.siltstone_relief_i": "Relief aus Schluffstein (I)", + "block.mineralogy.siltstone_relief_left": "Relief aus Schluffstein (links)", + "block.mineralogy.siltstone_relief_pickaxe": "Relief aus Schluffstein (Spitzhacke)", + "block.mineralogy.siltstone_relief_plus": "Relief aus Schluffstein (Pluszeichen)", + "block.mineralogy.siltstone_relief_right": "Relief aus Schluffstein (rechts)", + "block.mineralogy.siltstone_relief_sword": "Relief aus Schluffstein (Schwert)", + "block.mineralogy.siltstone_relief_vertical": "Relief aus Schluffstein (senkrecht)", + "block.mineralogy.rock_salt_relief_axe": "Relief aus Steinsalz (Axt)", + "block.mineralogy.rock_salt_relief_blank": "Relief aus Steinsalz (ohne Motiv)", + "block.mineralogy.rock_salt_relief_cross": "Relief aus Steinsalz (Kreuz)", + "block.mineralogy.rock_salt_relief_hammer": "Relief aus Steinsalz (Hammer)", + "block.mineralogy.rock_salt_relief_hoe": "Relief aus Steinsalz (Hacke)", + "block.mineralogy.rock_salt_relief_horizontal": "Relief aus Steinsalz (waagerecht)", + "block.mineralogy.rock_salt_relief_i": "Relief aus Steinsalz (I)", + "block.mineralogy.rock_salt_relief_left": "Relief aus Steinsalz (links)", + "block.mineralogy.rock_salt_relief_pickaxe": "Relief aus Steinsalz (Spitzhacke)", + "block.mineralogy.rock_salt_relief_plus": "Relief aus Steinsalz (Pluszeichen)", + "block.mineralogy.rock_salt_relief_right": "Relief aus Steinsalz (rechts)", + "block.mineralogy.rock_salt_relief_sword": "Relief aus Steinsalz (Schwert)", + "block.mineralogy.rock_salt_relief_vertical": "Relief aus Steinsalz (senkrecht)", + "block.mineralogy.hornfels_relief_axe": "Relief aus Hornfels (Axt)", + "block.mineralogy.hornfels_relief_blank": "Relief aus Hornfels (ohne Motiv)", + "block.mineralogy.hornfels_relief_cross": "Relief aus Hornfels (Kreuz)", + "block.mineralogy.hornfels_relief_hammer": "Relief aus Hornfels (Hammer)", + "block.mineralogy.hornfels_relief_hoe": "Relief aus Hornfels (Hacke)", + "block.mineralogy.hornfels_relief_horizontal": "Relief aus Hornfels (waagerecht)", + "block.mineralogy.hornfels_relief_i": "Relief aus Hornfels (I)", + "block.mineralogy.hornfels_relief_left": "Relief aus Hornfels (links)", + "block.mineralogy.hornfels_relief_pickaxe": "Relief aus Hornfels (Spitzhacke)", + "block.mineralogy.hornfels_relief_plus": "Relief aus Hornfels (Pluszeichen)", + "block.mineralogy.hornfels_relief_right": "Relief aus Hornfels (rechts)", + "block.mineralogy.hornfels_relief_sword": "Relief aus Hornfels (Schwert)", + "block.mineralogy.hornfels_relief_vertical": "Relief aus Hornfels (senkrecht)", + "block.mineralogy.quartzite_relief_axe": "Relief aus Quarzit (Axt)", + "block.mineralogy.quartzite_relief_blank": "Relief aus Quarzit (ohne Motiv)", + "block.mineralogy.quartzite_relief_cross": "Relief aus Quarzit (Kreuz)", + "block.mineralogy.quartzite_relief_hammer": "Relief aus Quarzit (Hammer)", + "block.mineralogy.quartzite_relief_hoe": "Relief aus Quarzit (Hacke)", + "block.mineralogy.quartzite_relief_horizontal": "Relief aus Quarzit (waagerecht)", + "block.mineralogy.quartzite_relief_i": "Relief aus Quarzit (I)", + "block.mineralogy.quartzite_relief_left": "Relief aus Quarzit (links)", + "block.mineralogy.quartzite_relief_pickaxe": "Relief aus Quarzit (Spitzhacke)", + "block.mineralogy.quartzite_relief_plus": "Relief aus Quarzit (Pluszeichen)", + "block.mineralogy.quartzite_relief_right": "Relief aus Quarzit (rechts)", + "block.mineralogy.quartzite_relief_sword": "Relief aus Quarzit (Schwert)", + "block.mineralogy.quartzite_relief_vertical": "Relief aus Quarzit (senkrecht)", + "block.mineralogy.novaculite_relief_axe": "Relief aus Novakulit (Axt)", + "block.mineralogy.novaculite_relief_blank": "Relief aus Novakulit (ohne Motiv)", + "block.mineralogy.novaculite_relief_cross": "Relief aus Novakulit (Kreuz)", + "block.mineralogy.novaculite_relief_hammer": "Relief aus Novakulit (Hammer)", + "block.mineralogy.novaculite_relief_hoe": "Relief aus Novakulit (Hacke)", + "block.mineralogy.novaculite_relief_horizontal": "Relief aus Novakulit (waagerecht)", + "block.mineralogy.novaculite_relief_i": "Relief aus Novakulit (I)", + "block.mineralogy.novaculite_relief_left": "Relief aus Novakulit (links)", + "block.mineralogy.novaculite_relief_pickaxe": "Relief aus Novakulit (Spitzhacke)", + "block.mineralogy.novaculite_relief_plus": "Relief aus Novakulit (Pluszeichen)", + "block.mineralogy.novaculite_relief_right": "Relief aus Novakulit (rechts)", + "block.mineralogy.novaculite_relief_sword": "Relief aus Novakulit (Schwert)", + "block.mineralogy.novaculite_relief_vertical": "Relief aus Novakulit (senkrecht)", "itemGroup.mineralogy.mineralogy": "Mineralogie", "itemGroup.mineralogy.rock": "Mineralogische Gesteine", - "itemGroup.mineralogy.stair": "Mineralogie-Treppe", - "itemGroup.mineralogy.slab": "Mineralogieplatten", - "itemGroup.mineralogy.wall": "Mineralogie-Wände", - "itemGroup.mineralogy.item": "Mineralogieartikel" + "itemGroup.mineralogy.stair": "Mineralogie-Treppen", + "itemGroup.mineralogy.slab": "Mineralogie-Stufen", + "itemGroup.mineralogy.wall": "Mineralogie-Mauern", + "itemGroup.mineralogy.item": "Mineralogie-Gegenstände", + "block.mineralogy.crude_oil": "Rohöl", + "item.mineralogy.crude_oil_bucket": "Rohöleimer", + "fluid.mineralogy.crude_oil": "Rohöl", + "advancements.mineralogy.all_the_rocks.title": "Alle Gesteine", + "advancements.mineralogy.all_the_rocks.description": "Du hast alle Standardgesteine in Mineralogy gefunden!" } diff --git a/src/main/resources/assets/mineralogy/lang/en_ca.json b/src/main/resources/assets/mineralogy/lang/en_ca.json index 484b10d6c..81ad1b683 100644 --- a/src/main/resources/assets/mineralogy/lang/en_ca.json +++ b/src/main/resources/assets/mineralogy/lang/en_ca.json @@ -926,15 +926,15 @@ "block.mineralogy.novaculite_relief_right": "Novaculite Right Relief", "block.mineralogy.novaculite_relief_sword": "Novaculite Sword Relief", "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertical Relief", - "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!", - "fluid.mineralogy.crude_oil": "Crude Oil", - "block.mineralogy.crude_oil": "Crude Oil", - "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", "itemGroup.mineralogy.mineralogy": "Mineralogy", "itemGroup.mineralogy.rock": "Mineralogy Rocks", "itemGroup.mineralogy.stair": "Mineralogy Stairs", "itemGroup.mineralogy.slab": "Mineralogy Slabs", "itemGroup.mineralogy.wall": "Mineralogy Walls", - "itemGroup.mineralogy.item": "Mineralogy Items" + "itemGroup.mineralogy.item": "Mineralogy Items", + "block.mineralogy.crude_oil": "Crude Oil", + "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", + "fluid.mineralogy.crude_oil": "Crude Oil", + "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", + "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/en_en.json b/src/main/resources/assets/mineralogy/lang/en_en.json index 484b10d6c..81ad1b683 100644 --- a/src/main/resources/assets/mineralogy/lang/en_en.json +++ b/src/main/resources/assets/mineralogy/lang/en_en.json @@ -926,15 +926,15 @@ "block.mineralogy.novaculite_relief_right": "Novaculite Right Relief", "block.mineralogy.novaculite_relief_sword": "Novaculite Sword Relief", "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertical Relief", - "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!", - "fluid.mineralogy.crude_oil": "Crude Oil", - "block.mineralogy.crude_oil": "Crude Oil", - "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", "itemGroup.mineralogy.mineralogy": "Mineralogy", "itemGroup.mineralogy.rock": "Mineralogy Rocks", "itemGroup.mineralogy.stair": "Mineralogy Stairs", "itemGroup.mineralogy.slab": "Mineralogy Slabs", "itemGroup.mineralogy.wall": "Mineralogy Walls", - "itemGroup.mineralogy.item": "Mineralogy Items" + "itemGroup.mineralogy.item": "Mineralogy Items", + "block.mineralogy.crude_oil": "Crude Oil", + "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", + "fluid.mineralogy.crude_oil": "Crude Oil", + "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", + "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/en_gb.json b/src/main/resources/assets/mineralogy/lang/en_gb.json index 484b10d6c..81ad1b683 100644 --- a/src/main/resources/assets/mineralogy/lang/en_gb.json +++ b/src/main/resources/assets/mineralogy/lang/en_gb.json @@ -926,15 +926,15 @@ "block.mineralogy.novaculite_relief_right": "Novaculite Right Relief", "block.mineralogy.novaculite_relief_sword": "Novaculite Sword Relief", "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertical Relief", - "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!", - "fluid.mineralogy.crude_oil": "Crude Oil", - "block.mineralogy.crude_oil": "Crude Oil", - "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", "itemGroup.mineralogy.mineralogy": "Mineralogy", "itemGroup.mineralogy.rock": "Mineralogy Rocks", "itemGroup.mineralogy.stair": "Mineralogy Stairs", "itemGroup.mineralogy.slab": "Mineralogy Slabs", "itemGroup.mineralogy.wall": "Mineralogy Walls", - "itemGroup.mineralogy.item": "Mineralogy Items" + "itemGroup.mineralogy.item": "Mineralogy Items", + "block.mineralogy.crude_oil": "Crude Oil", + "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", + "fluid.mineralogy.crude_oil": "Crude Oil", + "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", + "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/en_pt.json b/src/main/resources/assets/mineralogy/lang/en_pt.json index 484b10d6c..81ad1b683 100644 --- a/src/main/resources/assets/mineralogy/lang/en_pt.json +++ b/src/main/resources/assets/mineralogy/lang/en_pt.json @@ -926,15 +926,15 @@ "block.mineralogy.novaculite_relief_right": "Novaculite Right Relief", "block.mineralogy.novaculite_relief_sword": "Novaculite Sword Relief", "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertical Relief", - "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!", - "fluid.mineralogy.crude_oil": "Crude Oil", - "block.mineralogy.crude_oil": "Crude Oil", - "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", "itemGroup.mineralogy.mineralogy": "Mineralogy", "itemGroup.mineralogy.rock": "Mineralogy Rocks", "itemGroup.mineralogy.stair": "Mineralogy Stairs", "itemGroup.mineralogy.slab": "Mineralogy Slabs", "itemGroup.mineralogy.wall": "Mineralogy Walls", - "itemGroup.mineralogy.item": "Mineralogy Items" + "itemGroup.mineralogy.item": "Mineralogy Items", + "block.mineralogy.crude_oil": "Crude Oil", + "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", + "fluid.mineralogy.crude_oil": "Crude Oil", + "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", + "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/en_us.json b/src/main/resources/assets/mineralogy/lang/en_us.json index 484b10d6c..81ad1b683 100644 --- a/src/main/resources/assets/mineralogy/lang/en_us.json +++ b/src/main/resources/assets/mineralogy/lang/en_us.json @@ -926,15 +926,15 @@ "block.mineralogy.novaculite_relief_right": "Novaculite Right Relief", "block.mineralogy.novaculite_relief_sword": "Novaculite Sword Relief", "block.mineralogy.novaculite_relief_vertical": "Novaculite Vertical Relief", - "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!", - "fluid.mineralogy.crude_oil": "Crude Oil", - "block.mineralogy.crude_oil": "Crude Oil", - "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", "itemGroup.mineralogy.mineralogy": "Mineralogy", "itemGroup.mineralogy.rock": "Mineralogy Rocks", "itemGroup.mineralogy.stair": "Mineralogy Stairs", "itemGroup.mineralogy.slab": "Mineralogy Slabs", "itemGroup.mineralogy.wall": "Mineralogy Walls", - "itemGroup.mineralogy.item": "Mineralogy Items" + "itemGroup.mineralogy.item": "Mineralogy Items", + "block.mineralogy.crude_oil": "Crude Oil", + "item.mineralogy.crude_oil_bucket": "Crude Oil Bucket", + "fluid.mineralogy.crude_oil": "Crude Oil", + "advancements.mineralogy.all_the_rocks.title": "Call the rocks Ludo!", + "advancements.mineralogy.all_the_rocks.description": "Wow, you've found all the standard rock types in Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/es_es.json b/src/main/resources/assets/mineralogy/lang/es_es.json index 21923e59d..5738497f7 100644 --- a/src/main/resources/assets/mineralogy/lang/es_es.json +++ b/src/main/resources/assets/mineralogy/lang/es_es.json @@ -2,939 +2,939 @@ "block.mineralogy.andesite": "Andesita", "block.mineralogy.andesite_stairs": "Escaleras de Andesita", "block.mineralogy.andesite_slab": "Losa de Andesita", - "block.mineralogy.andesite_brick": "Ladrillo de Andesita", - "block.mineralogy.andesite_brick_stairs": "Escaleras de ladrillo Andesita", - "block.mineralogy.andesite_brick_slab": "Losa de ladrillo andesita", - "block.mineralogy.andesite_smooth": "Andesita Pulida", - "block.mineralogy.andesite_smooth_stairs": "Escalera de andesita pulida", + "block.mineralogy.andesite_brick": "Ladrillos de Andesita", + "block.mineralogy.andesite_brick_stairs": "Escaleras de ladrillos de Andesita", + "block.mineralogy.andesite_brick_slab": "Losa de ladrillos de Andesita", + "block.mineralogy.andesite_smooth": "Bloque pulido de Andesita", + "block.mineralogy.andesite_smooth_stairs": "Escaleras pulidas de Andesita", "block.mineralogy.andesite_smooth_slab": "Losa pulida de Andesita", - "block.mineralogy.andesite_smooth_brick": "Ladrillo de andesita pulido", - "block.mineralogy.andesite_smooth_brick_stairs": "Escalera de ladrillo anodizado pulido", - "block.mineralogy.andesite_smooth_brick_slab": "Losa de ladrillo anodizado pulido", + "block.mineralogy.andesite_smooth_brick": "Ladrillos pulidos de Andesita", + "block.mineralogy.andesite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Andesita", + "block.mineralogy.andesite_smooth_brick_slab": "Losa de ladrillos pulidos de Andesita", "block.mineralogy.basalt": "Basalto", - "block.mineralogy.basalt_stairs": "Escaleras de basalto", - "block.mineralogy.basalt_slab": "Losa de basalto", - "block.mineralogy.basalt_brick": "Ladrillo de basalto", - "block.mineralogy.basalt_brick_stairs": "Escaleras de ladrillo de basalto", - "block.mineralogy.basalt_brick_slab": "Losa de ladrillo de basalto", - "block.mineralogy.basalt_smooth": "Basalto pulido", - "block.mineralogy.basalt_smooth_stairs": "Escaleras de basalto pulido", - "block.mineralogy.basalt_smooth_slab": "Losa de basalto pulida", - "block.mineralogy.basalt_smooth_brick": "Ladrillo de basalto pulido", - "block.mineralogy.basalt_smooth_brick_stairs": "Escaleras de ladrillo de basalto pulido", - "block.mineralogy.basalt_smooth_brick_slab": "Losa de ladrillo pulido de basalto", + "block.mineralogy.basalt_stairs": "Escaleras de Basalto", + "block.mineralogy.basalt_slab": "Losa de Basalto", + "block.mineralogy.basalt_brick": "Ladrillos de Basalto", + "block.mineralogy.basalt_brick_stairs": "Escaleras de ladrillos de Basalto", + "block.mineralogy.basalt_brick_slab": "Losa de ladrillos de Basalto", + "block.mineralogy.basalt_smooth": "Bloque pulido de Basalto", + "block.mineralogy.basalt_smooth_stairs": "Escaleras pulidas de Basalto", + "block.mineralogy.basalt_smooth_slab": "Losa pulida de Basalto", + "block.mineralogy.basalt_smooth_brick": "Ladrillos pulidos de Basalto", + "block.mineralogy.basalt_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Basalto", + "block.mineralogy.basalt_smooth_brick_slab": "Losa de ladrillos pulidos de Basalto", "block.mineralogy.diorite": "Diorita", "block.mineralogy.diorite_stairs": "Escaleras de Diorita", "block.mineralogy.diorite_slab": "Losa de Diorita", - "block.mineralogy.diorite_brick": "Ladrillo de Diorita", - "block.mineralogy.diorite_brick_stairs": "Escaleras de ladrillo de Diorita", - "block.mineralogy.diorite_brick_slab": "Losa de ladrillo de Diorita", - "block.mineralogy.diorite_smooth": "Diorita pulida", - "block.mineralogy.diorite_smooth_stairs": "Escaleras de Diorita pulida", - "block.mineralogy.diorite_smooth_slab": "Losa de Diorita pulida", - "block.mineralogy.diorite_smooth_brick": "Ladrillo de Diorita pulido", - "block.mineralogy.diorite_smooth_brick_stairs": "Escaleras de ladrillo de Diorita pulida", - "block.mineralogy.diorite_smooth_brick_slab": "Losa de ladrillo de Diorita pulida", + "block.mineralogy.diorite_brick": "Ladrillos de Diorita", + "block.mineralogy.diorite_brick_stairs": "Escaleras de ladrillos de Diorita", + "block.mineralogy.diorite_brick_slab": "Losa de ladrillos de Diorita", + "block.mineralogy.diorite_smooth": "Bloque pulido de Diorita", + "block.mineralogy.diorite_smooth_stairs": "Escaleras pulidas de Diorita", + "block.mineralogy.diorite_smooth_slab": "Losa pulida de Diorita", + "block.mineralogy.diorite_smooth_brick": "Ladrillos pulidos de Diorita", + "block.mineralogy.diorite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Diorita", + "block.mineralogy.diorite_smooth_brick_slab": "Losa de ladrillos pulidos de Diorita", "block.mineralogy.granite": "Granito", "block.mineralogy.granite_stairs": "Escaleras de Granito", "block.mineralogy.granite_slab": "Losa de Granito", - "block.mineralogy.granite_brick": "Ladrillo de Granito", - "block.mineralogy.granite_brick_stairs": "Escaleras de ladrillo de Granito", - "block.mineralogy.granite_brick_slab": "Losa de ladrillo de Granito", - "block.mineralogy.granite_smooth": "Granito pulida", - "block.mineralogy.granite_smooth_stairs": "Escaleras de Granito pulida", - "block.mineralogy.granite_smooth_slab": "Losa de Granito pulida", - "block.mineralogy.granite_smooth_brick": "Ladrillo de Granito pulido", - "block.mineralogy.granite_smooth_brick_stairs": "Escaleras de ladrillo de Granito pulida", - "block.mineralogy.granite_smooth_brick_slab": "Losa de ladrillo de Granito pulida", + "block.mineralogy.granite_brick": "Ladrillos de Granito", + "block.mineralogy.granite_brick_stairs": "Escaleras de ladrillos de Granito", + "block.mineralogy.granite_brick_slab": "Losa de ladrillos de Granito", + "block.mineralogy.granite_smooth": "Bloque pulido de Granito", + "block.mineralogy.granite_smooth_stairs": "Escaleras pulidas de Granito", + "block.mineralogy.granite_smooth_slab": "Losa pulida de Granito", + "block.mineralogy.granite_smooth_brick": "Ladrillos pulidos de Granito", + "block.mineralogy.granite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Granito", + "block.mineralogy.granite_smooth_brick_slab": "Losa de ladrillos pulidos de Granito", "block.mineralogy.rhyolite": "Riolita", "block.mineralogy.rhyolite_stairs": "Escaleras de Riolita", "block.mineralogy.rhyolite_slab": "Losa de Riolita", - "block.mineralogy.rhyolite_brick": "Ladrillo de Riolita", - "block.mineralogy.rhyolite_brick_stairs": "Escaleras de ladrillo de Riolita", - "block.mineralogy.rhyolite_brick_slab": "Losa de ladrillo de Riolita", - "block.mineralogy.rhyolite_smooth": "Riolita pulida", - "block.mineralogy.rhyolite_smooth_stairs": "Escaleras de Riolita pulida", - "block.mineralogy.rhyolite_smooth_slab": "Losa de Riolita pulida", - "block.mineralogy.rhyolite_smooth_brick": "Ladrillo de Riolita pulido", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaleras de ladrillo de Riolita pulida", - "block.mineralogy.rhyolite_smooth_brick_slab": "Losa de ladrillo de Riolita pulida", + "block.mineralogy.rhyolite_brick": "Ladrillos de Riolita", + "block.mineralogy.rhyolite_brick_stairs": "Escaleras de ladrillos de Riolita", + "block.mineralogy.rhyolite_brick_slab": "Losa de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth": "Bloque pulido de Riolita", + "block.mineralogy.rhyolite_smooth_stairs": "Escaleras pulidas de Riolita", + "block.mineralogy.rhyolite_smooth_slab": "Losa pulida de Riolita", + "block.mineralogy.rhyolite_smooth_brick": "Ladrillos pulidos de Riolita", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Riolita", + "block.mineralogy.rhyolite_smooth_brick_slab": "Losa de ladrillos pulidos de Riolita", "block.mineralogy.pegmatite": "Pegmatita", "block.mineralogy.pegmatite_stairs": "Escaleras de Pegmatita", "block.mineralogy.pegmatite_slab": "Losa de Pegmatita", - "block.mineralogy.pegmatite_brick": "Ladrillo de Pegmatita", - "block.mineralogy.pegmatite_brick_stairs": "Escaleras de ladrillo de Pegmatita", - "block.mineralogy.pegmatite_brick_slab": "Losa de ladrillo de Pegmatita", - "block.mineralogy.pegmatite_smooth": "Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_stairs": "Escaleras de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_slab": "Losa de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_brick": "Ladrillo de Pegmatita pulido", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaleras de ladrillo de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_brick_slab": "Losa de ladrillo de Pegmatita pulida", - "block.mineralogy.shale": "Esquisto", - "block.mineralogy.shale_stairs": "Escaleras de Esquisto", - "block.mineralogy.shale_slab": "Losa de Esquisto", - "block.mineralogy.shale_brick": "Ladrillo de Esquisto", - "block.mineralogy.shale_brick_stairs": "Escaleras de ladrillo de Esquisto", - "block.mineralogy.shale_brick_slab": "Losa de ladrillo de Esquisto", - "block.mineralogy.shale_smooth": "Esquisto pulida", - "block.mineralogy.shale_smooth_stairs": "Escaleras de Esquisto pulida", - "block.mineralogy.shale_smooth_slab": "Losa de Esquisto pulida", - "block.mineralogy.shale_smooth_brick": "Ladrillo de Esquisto pulido", - "block.mineralogy.shale_smooth_brick_stairs": "Escaleras de ladrillo de Esquisto pulida", - "block.mineralogy.shale_smooth_brick_slab": "Losa de ladrillo de Esquisto pulida", + "block.mineralogy.pegmatite_brick": "Ladrillos de Pegmatita", + "block.mineralogy.pegmatite_brick_stairs": "Escaleras de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_brick_slab": "Losa de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth": "Bloque pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_stairs": "Escaleras pulidas de Pegmatita", + "block.mineralogy.pegmatite_smooth_slab": "Losa pulida de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick": "Ladrillos pulidos de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_slab": "Losa de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale": "Lutita", + "block.mineralogy.shale_stairs": "Escaleras de Lutita", + "block.mineralogy.shale_slab": "Losa de Lutita", + "block.mineralogy.shale_brick": "Ladrillos de Lutita", + "block.mineralogy.shale_brick_stairs": "Escaleras de ladrillos de Lutita", + "block.mineralogy.shale_brick_slab": "Losa de ladrillos de Lutita", + "block.mineralogy.shale_smooth": "Bloque pulido de Lutita", + "block.mineralogy.shale_smooth_stairs": "Escaleras pulidas de Lutita", + "block.mineralogy.shale_smooth_slab": "Losa pulida de Lutita", + "block.mineralogy.shale_smooth_brick": "Ladrillos pulidos de Lutita", + "block.mineralogy.shale_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Lutita", + "block.mineralogy.shale_smooth_brick_slab": "Losa de ladrillos pulidos de Lutita", "block.mineralogy.conglomerate": "Conglomerado", "block.mineralogy.conglomerate_stairs": "Escaleras de Conglomerado", "block.mineralogy.conglomerate_slab": "Losa de Conglomerado", - "block.mineralogy.conglomerate_brick": "Ladrillo de Conglomerado", - "block.mineralogy.conglomerate_brick_stairs": "Escaleras de ladrillo de Conglomerado", - "block.mineralogy.conglomerate_brick_slab": "Losa de ladrillo de Conglomerado", - "block.mineralogy.conglomerate_smooth": "Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_stairs": "Escaleras de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_slab": "Losa de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_brick": "Ladrillo de Conglomerado pulido", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Escaleras de ladrillo de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_brick_slab": "Losa de ladrillo de Conglomerado pulida", + "block.mineralogy.conglomerate_brick": "Ladrillos de Conglomerado", + "block.mineralogy.conglomerate_brick_stairs": "Escaleras de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_brick_slab": "Losa de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth": "Bloque pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_stairs": "Escaleras pulidas de Conglomerado", + "block.mineralogy.conglomerate_smooth_slab": "Losa pulida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick": "Ladrillos pulidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_slab": "Losa de ladrillos pulidos de Conglomerado", "block.mineralogy.dolomite": "Dolomita", "block.mineralogy.dolomite_stairs": "Escaleras de Dolomita", "block.mineralogy.dolomite_slab": "Losa de Dolomita", - "block.mineralogy.dolomite_brick": "Ladrillo de Dolomita", - "block.mineralogy.dolomite_brick_stairs": "Escaleras de ladrillo de Dolomita", - "block.mineralogy.dolomite_brick_slab": "Losa de ladrillo de Dolomita", - "block.mineralogy.dolomite_smooth": "Dolomita pulida", - "block.mineralogy.dolomite_smooth_stairs": "Escaleras de Dolomita pulida", - "block.mineralogy.dolomite_smooth_slab": "Losa de Dolomita pulida", - "block.mineralogy.dolomite_smooth_brick": "Ladrillo de Dolomita pulido", - "block.mineralogy.dolomite_smooth_brick_stairs": "Escaleras de ladrillo de Dolomita pulida", - "block.mineralogy.dolomite_smooth_brick_slab": "Losa de ladrillo de Dolomita pulida", + "block.mineralogy.dolomite_brick": "Ladrillos de Dolomita", + "block.mineralogy.dolomite_brick_stairs": "Escaleras de ladrillos de Dolomita", + "block.mineralogy.dolomite_brick_slab": "Losa de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth": "Bloque pulido de Dolomita", + "block.mineralogy.dolomite_smooth_stairs": "Escaleras pulidas de Dolomita", + "block.mineralogy.dolomite_smooth_slab": "Losa pulida de Dolomita", + "block.mineralogy.dolomite_smooth_brick": "Ladrillos pulidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_slab": "Losa de ladrillos pulidos de Dolomita", "block.mineralogy.limestone": "Caliza", "block.mineralogy.limestone_stairs": "Escaleras de Caliza", "block.mineralogy.limestone_slab": "Losa de Caliza", - "block.mineralogy.limestone_brick": "Ladrillo de Caliza", - "block.mineralogy.limestone_brick_stairs": "Escaleras de ladrillo de Caliza", - "block.mineralogy.limestone_brick_slab": "Losa de ladrillo de Caliza", - "block.mineralogy.limestone_smooth": "Caliza pulida", - "block.mineralogy.limestone_smooth_stairs": "Escaleras de Caliza pulida", - "block.mineralogy.limestone_smooth_slab": "Losa de Caliza pulida", - "block.mineralogy.limestone_smooth_brick": "Ladrillo de Caliza pulido", - "block.mineralogy.limestone_smooth_brick_stairs": "Escaleras de ladrillo de Caliza pulida", - "block.mineralogy.limestone_smooth_brick_slab": "Losa de ladrillo de Caliza pulida", + "block.mineralogy.limestone_brick": "Ladrillos de Caliza", + "block.mineralogy.limestone_brick_stairs": "Escaleras de ladrillos de Caliza", + "block.mineralogy.limestone_brick_slab": "Losa de ladrillos de Caliza", + "block.mineralogy.limestone_smooth": "Bloque pulido de Caliza", + "block.mineralogy.limestone_smooth_stairs": "Escaleras pulidas de Caliza", + "block.mineralogy.limestone_smooth_slab": "Losa pulida de Caliza", + "block.mineralogy.limestone_smooth_brick": "Ladrillos pulidos de Caliza", + "block.mineralogy.limestone_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Caliza", + "block.mineralogy.limestone_smooth_brick_slab": "Losa de ladrillos pulidos de Caliza", "block.mineralogy.slate": "Pizarra", "block.mineralogy.slate_stairs": "Escaleras de Pizarra", "block.mineralogy.slate_slab": "Losa de Pizarra", - "block.mineralogy.slate_brick": "Ladrillo de Pizarra", - "block.mineralogy.slate_brick_stairs": "Escaleras de ladrillo de Pizarra", - "block.mineralogy.slate_brick_slab": "Losa de ladrillo de Pizarra", - "block.mineralogy.slate_smooth": "Pizarra pulida", - "block.mineralogy.slate_smooth_stairs": "Escaleras de Pizarra pulida", - "block.mineralogy.slate_smooth_slab": "Losa de Pizarra pulida", - "block.mineralogy.slate_smooth_brick": "Ladrillo de Pizarra pulido", - "block.mineralogy.slate_smooth_brick_stairs": "Escaleras de ladrillo de Pizarra pulida", - "block.mineralogy.slate_smooth_brick_slab": "Losa de ladrillo de Pizarra pulida", + "block.mineralogy.slate_brick": "Ladrillos de Pizarra", + "block.mineralogy.slate_brick_stairs": "Escaleras de ladrillos de Pizarra", + "block.mineralogy.slate_brick_slab": "Losa de ladrillos de Pizarra", + "block.mineralogy.slate_smooth": "Bloque pulido de Pizarra", + "block.mineralogy.slate_smooth_stairs": "Escaleras pulidas de Pizarra", + "block.mineralogy.slate_smooth_slab": "Losa pulida de Pizarra", + "block.mineralogy.slate_smooth_brick": "Ladrillos pulidos de Pizarra", + "block.mineralogy.slate_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Pizarra", + "block.mineralogy.slate_smooth_brick_slab": "Losa de ladrillos pulidos de Pizarra", "block.mineralogy.schist": "Esquisto", "block.mineralogy.schist_stairs": "Escaleras de Esquisto", "block.mineralogy.schist_slab": "Losa de Esquisto", - "block.mineralogy.schist_brick": "Ladrillo de Esquisto", - "block.mineralogy.schist_brick_stairs": "Escaleras de ladrillo de Esquisto", - "block.mineralogy.schist_brick_slab": "Losa de ladrillo de Esquisto", - "block.mineralogy.schist_smooth": "Esquisto pulida", - "block.mineralogy.schist_smooth_stairs": "Escaleras de Esquisto pulida", - "block.mineralogy.schist_smooth_slab": "Losa de Esquisto pulida", - "block.mineralogy.schist_smooth_brick": "Ladrillo de Esquisto pulido", - "block.mineralogy.schist_smooth_brick_stairs": "Escaleras de ladrillo de Esquisto pulida", - "block.mineralogy.schist_smooth_brick_slab": "Losa de ladrillo de Esquisto pulida", + "block.mineralogy.schist_brick": "Ladrillos de Esquisto", + "block.mineralogy.schist_brick_stairs": "Escaleras de ladrillos de Esquisto", + "block.mineralogy.schist_brick_slab": "Losa de ladrillos de Esquisto", + "block.mineralogy.schist_smooth": "Bloque pulido de Esquisto", + "block.mineralogy.schist_smooth_stairs": "Escaleras pulidas de Esquisto", + "block.mineralogy.schist_smooth_slab": "Losa pulida de Esquisto", + "block.mineralogy.schist_smooth_brick": "Ladrillos pulidos de Esquisto", + "block.mineralogy.schist_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Esquisto", + "block.mineralogy.schist_smooth_brick_slab": "Losa de ladrillos pulidos de Esquisto", "block.mineralogy.gneiss": "Gneis", "block.mineralogy.gneiss_stairs": "Escaleras de Gneis", "block.mineralogy.gneiss_slab": "Losa de Gneis", - "block.mineralogy.gneiss_brick": "Ladrillo de Gneis", - "block.mineralogy.gneiss_brick_stairs": "Escaleras de ladrillo de Gneis", - "block.mineralogy.gneiss_brick_slab": "Losa de ladrillo de Gneis", - "block.mineralogy.gneiss_smooth": "Gneis pulida", - "block.mineralogy.gneiss_smooth_stairs": "Escaleras de Gneis pulida", - "block.mineralogy.gneiss_smooth_slab": "Losa de Gneis pulida", - "block.mineralogy.gneiss_smooth_brick": "Ladrillo de Gneis pulido", - "block.mineralogy.gneiss_smooth_brick_stairs": "Escaleras de ladrillo de Gneis pulida", - "block.mineralogy.gneiss_smooth_brick_slab": "Losa de ladrillo de Gneis pulida", + "block.mineralogy.gneiss_brick": "Ladrillos de Gneis", + "block.mineralogy.gneiss_brick_stairs": "Escaleras de ladrillos de Gneis", + "block.mineralogy.gneiss_brick_slab": "Losa de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth": "Bloque pulido de Gneis", + "block.mineralogy.gneiss_smooth_stairs": "Escaleras pulidas de Gneis", + "block.mineralogy.gneiss_smooth_slab": "Losa pulida de Gneis", + "block.mineralogy.gneiss_smooth_brick": "Ladrillos pulidos de Gneis", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Gneis", + "block.mineralogy.gneiss_smooth_brick_slab": "Losa de ladrillos pulidos de Gneis", "block.mineralogy.marble": "Mármol", "block.mineralogy.marble_stairs": "Escaleras de Mármol", "block.mineralogy.marble_slab": "Losa de Mármol", - "block.mineralogy.marble_brick": "Ladrillo de Mármol", - "block.mineralogy.marble_brick_stairs": "Escaleras de ladrillo de Mármol", - "block.mineralogy.marble_brick_slab": "Losa de ladrillo de Mármol", - "block.mineralogy.marble_smooth": "Mármol pulida", - "block.mineralogy.marble_smooth_stairs": "Escaleras de Mármol pulida", - "block.mineralogy.marble_smooth_slab": "Losa de Mármol pulida", - "block.mineralogy.marble_smooth_brick": "Ladrillo de Mármol pulido", - "block.mineralogy.marble_smooth_brick_stairs": "Escaleras de ladrillo de Mármol pulida", - "block.mineralogy.marble_smooth_brick_slab": "Losa de ladrillo de Mármol pulida", - "block.mineralogy.phyllite": "Phyllite", - "block.mineralogy.phyllite_stairs": "Escaleras de Phyllite", - "block.mineralogy.phyllite_slab": "Losa de Phyllite", - "block.mineralogy.phyllite_brick": "Ladrillo de Phyllite", - "block.mineralogy.phyllite_brick_stairs": "Escaleras de ladrillo de Phyllite", - "block.mineralogy.phyllite_brick_slab": "Losa de ladrillo de Phyllite", - "block.mineralogy.phyllite_smooth": "Phyllite pulida", - "block.mineralogy.phyllite_smooth_stairs": "Escaleras de Phyllite pulida", - "block.mineralogy.phyllite_smooth_slab": "Losa de Phyllite pulida", - "block.mineralogy.phyllite_smooth_brick": "Ladrillo de Phyllite pulido", - "block.mineralogy.phyllite_smooth_brick_stairs": "Escaleras de ladrillo de Phyllite pulida", - "block.mineralogy.phyllite_smooth_brick_slab": "Losa de ladrillo de Phyllite pulida", - "block.mineralogy.amphibolite": "Amphibolita", - "block.mineralogy.amphibolite_stairs": "Escaleras de Amphibolita", - "block.mineralogy.amphibolite_slab": "Losa de Amphibolita", - "block.mineralogy.amphibolite_brick": "Ladrillo de Amphibolita", - "block.mineralogy.amphibolite_brick_stairs": "Escaleras de ladrillo de Amphibolita", - "block.mineralogy.amphibolite_brick_slab": "Losa de ladrillo de Amphibolita", - "block.mineralogy.amphibolite_smooth": "Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_stairs": "Escaleras de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_slab": "Losa de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_brick": "Ladrillo de Amphibolita pulido", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaleras de ladrillo de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_brick_slab": "Losa de ladrillo de Amphibolita pulida", + "block.mineralogy.marble_brick": "Ladrillos de Mármol", + "block.mineralogy.marble_brick_stairs": "Escaleras de ladrillos de Mármol", + "block.mineralogy.marble_brick_slab": "Losa de ladrillos de Mármol", + "block.mineralogy.marble_smooth": "Bloque pulido de Mármol", + "block.mineralogy.marble_smooth_stairs": "Escaleras pulidas de Mármol", + "block.mineralogy.marble_smooth_slab": "Losa pulida de Mármol", + "block.mineralogy.marble_smooth_brick": "Ladrillos pulidos de Mármol", + "block.mineralogy.marble_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Mármol", + "block.mineralogy.marble_smooth_brick_slab": "Losa de ladrillos pulidos de Mármol", + "block.mineralogy.phyllite": "Filita", + "block.mineralogy.phyllite_stairs": "Escaleras de Filita", + "block.mineralogy.phyllite_slab": "Losa de Filita", + "block.mineralogy.phyllite_brick": "Ladrillos de Filita", + "block.mineralogy.phyllite_brick_stairs": "Escaleras de ladrillos de Filita", + "block.mineralogy.phyllite_brick_slab": "Losa de ladrillos de Filita", + "block.mineralogy.phyllite_smooth": "Bloque pulido de Filita", + "block.mineralogy.phyllite_smooth_stairs": "Escaleras pulidas de Filita", + "block.mineralogy.phyllite_smooth_slab": "Losa pulida de Filita", + "block.mineralogy.phyllite_smooth_brick": "Ladrillos pulidos de Filita", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Filita", + "block.mineralogy.phyllite_smooth_brick_slab": "Losa de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite": "Anfibolita", + "block.mineralogy.amphibolite_stairs": "Escaleras de Anfibolita", + "block.mineralogy.amphibolite_slab": "Losa de Anfibolita", + "block.mineralogy.amphibolite_brick": "Ladrillos de Anfibolita", + "block.mineralogy.amphibolite_brick_stairs": "Escaleras de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_brick_slab": "Losa de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth": "Bloque pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_stairs": "Escaleras pulidas de Anfibolita", + "block.mineralogy.amphibolite_smooth_slab": "Losa pulida de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick": "Ladrillos pulidos de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_slab": "Losa de ladrillos pulidos de Anfibolita", "item.mineralogy.gypsum_dust": "Polvo de yeso", "item.mineralogy.sulfur_dust": "Polvo de azufre", "item.mineralogy.phosphorous_dust": "Polvo de fósforo", "item.mineralogy.nitrate_dust": "Polvo de nitrato", "item.mineralogy.mineral_fertilizer": "Fertilizante mineral", - "block.mineralogy.chert": "Esquisto", + "block.mineralogy.chert": "Sílex", "block.mineralogy.gypsum": "Yeso", - "block.mineralogy.pumice": "Piedra Pómez", + "block.mineralogy.pumice": "Piedra pómez", "block.mineralogy.sulfur_block": "Azufre", - "block.mineralogy.sulfur_ore": "Mineral de azufre", + "block.mineralogy.sulfur_ore": "Mena de azufre", "block.mineralogy.phosphorous_block": "Fósforo", - "block.mineralogy.phosphorous_ore": "Mineral de fósforo", + "block.mineralogy.phosphorous_ore": "Mena de fósforo", "block.mineralogy.nitrate_block": "Nitrato", - "block.mineralogy.nitrate_ore": "Mineral de nitrato", - "block.mineralogy.drywall_black": "Negro panel de yeso", - "block.mineralogy.drywall_red": "Rojo panel de yeso", - "block.mineralogy.drywall_green": "Verde panel de yeso", - "block.mineralogy.drywall_brown": "Marrón panel de yeso", - "block.mineralogy.drywall_blue": "Azul panel de yeso", - "block.mineralogy.drywall_purple": "Púrpura panel de yeso", - "block.mineralogy.drywall_cyan": "Cyan panel de yeso", - "block.mineralogy.drywall_silver": "Plata panel de yeso", - "block.mineralogy.drywall_gray": "Gris panel de yeso", - "block.mineralogy.drywall_pink": "Rosado panel de yeso", - "block.mineralogy.drywall_lime": "Lima panel de yeso", - "block.mineralogy.drywall_yellow": "Amarillo panel de yeso", - "block.mineralogy.drywall_light_blue": "Azul claro panel de yeso", - "block.mineralogy.drywall_magenta": "Magenta panel de yeso", - "block.mineralogy.drywall_orange": "Naranja panel de yeso", - "block.mineralogy.drywall_white": "Blanco panel de yeso", - "block.mineralogy.andesite_wall": "Pared de andesita", - "block.mineralogy.andesite_brick_wall": "Pared de ladrillo de andesita", - "block.mineralogy.andesite_smooth_wall": "Pared Pulida de Andesita", - "block.mineralogy.andesite_smooth_brick_wall": "Pared de ladrillo pulido Andesite", - "block.mineralogy.basalt_wall": "Pared de basalto", - "block.mineralogy.basalt_brick_wall": "Pared de ladrillo de basalto", - "block.mineralogy.basalt_smooth_wall": "Muro pulido de basalto", - "block.mineralogy.basalt_smooth_brick_wall": "Pared de ladrillo pulido de basalto", - "block.mineralogy.diorite_wall": "Pared de Diorita", - "block.mineralogy.diorite_brick_wall": "Pared de ladrillo de diorita", - "block.mineralogy.diorite_smooth_wall": "Diorite pulido de pared", - "block.mineralogy.diorite_smooth_brick_wall": "Pared de ladrillo pulido de diorita", - "block.mineralogy.granite_wall": "Pared de granito", - "block.mineralogy.granite_brick_wall": "Pared de ladrillo de granito", - "block.mineralogy.granite_smooth_wall": "Muro pulido de granito", - "block.mineralogy.granite_smooth_brick_wall": "Pared de ladrillo pulido de granito", - "block.mineralogy.rhyolite_wall": "Pared de riolita", - "block.mineralogy.rhyolite_brick_wall": "Pared de ladrillos de riolita", - "block.mineralogy.rhyolite_smooth_wall": "Pared pulida de riolita", - "block.mineralogy.rhyolite_smooth_brick_wall": "Pared de ladrillo pulido de riolita", - "block.mineralogy.pegmatite_wall": "Pared de Pegmatita", - "block.mineralogy.pegmatite_brick_wall": "Pared de ladrillo de pegmatita", - "block.mineralogy.pegmatite_smooth_wall": "Pared pulida de pegmatita", - "block.mineralogy.pegmatite_smooth_brick_wall": "Pared de ladrillo pulido de pegmatita", - "block.mineralogy.shale_wall": "Muro de pizarra", - "block.mineralogy.shale_brick_wall": "Pared de ladrillo de pizarra", - "block.mineralogy.shale_smooth_wall": "Pared pulida de pizarra", - "block.mineralogy.shale_smooth_brick_wall": "Pizarra, pulido, pared de ladrillo", - "block.mineralogy.conglomerate_wall": "Pared de conglomerado", - "block.mineralogy.conglomerate_brick_wall": "Pared de ladrillo conglomerado", - "block.mineralogy.conglomerate_smooth_wall": "Pared pulida de conglomerado", - "block.mineralogy.conglomerate_smooth_brick_wall": "Conglomerado, pulido, pared de ladrillo", + "block.mineralogy.nitrate_ore": "Mena de nitrato", + "block.mineralogy.drywall_black": "Panel de yeso negro", + "block.mineralogy.drywall_red": "Panel de yeso rojo", + "block.mineralogy.drywall_green": "Panel de yeso verde", + "block.mineralogy.drywall_brown": "Panel de yeso marrón", + "block.mineralogy.drywall_blue": "Panel de yeso azul", + "block.mineralogy.drywall_purple": "Panel de yeso morado", + "block.mineralogy.drywall_cyan": "Panel de yeso cian", + "block.mineralogy.drywall_silver": "Panel de yeso gris claro", + "block.mineralogy.drywall_gray": "Panel de yeso gris", + "block.mineralogy.drywall_pink": "Panel de yeso rosa", + "block.mineralogy.drywall_lime": "Panel de yeso verde lima", + "block.mineralogy.drywall_yellow": "Panel de yeso amarillo", + "block.mineralogy.drywall_light_blue": "Panel de yeso azul claro", + "block.mineralogy.drywall_magenta": "Panel de yeso magenta", + "block.mineralogy.drywall_orange": "Panel de yeso naranja", + "block.mineralogy.drywall_white": "Panel de yeso blanco", + "block.mineralogy.andesite_wall": "Muro de Andesita", + "block.mineralogy.andesite_brick_wall": "Muro de ladrillos de Andesita", + "block.mineralogy.andesite_smooth_wall": "Muro pulido de Andesita", + "block.mineralogy.andesite_smooth_brick_wall": "Muro de ladrillos pulidos de Andesita", + "block.mineralogy.basalt_wall": "Muro de Basalto", + "block.mineralogy.basalt_brick_wall": "Muro de ladrillos de Basalto", + "block.mineralogy.basalt_smooth_wall": "Muro pulido de Basalto", + "block.mineralogy.basalt_smooth_brick_wall": "Muro de ladrillos pulidos de Basalto", + "block.mineralogy.diorite_wall": "Muro de Diorita", + "block.mineralogy.diorite_brick_wall": "Muro de ladrillos de Diorita", + "block.mineralogy.diorite_smooth_wall": "Muro pulido de Diorita", + "block.mineralogy.diorite_smooth_brick_wall": "Muro de ladrillos pulidos de Diorita", + "block.mineralogy.granite_wall": "Muro de Granito", + "block.mineralogy.granite_brick_wall": "Muro de ladrillos de Granito", + "block.mineralogy.granite_smooth_wall": "Muro pulido de Granito", + "block.mineralogy.granite_smooth_brick_wall": "Muro de ladrillos pulidos de Granito", + "block.mineralogy.rhyolite_wall": "Muro de Riolita", + "block.mineralogy.rhyolite_brick_wall": "Muro de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth_wall": "Muro pulido de Riolita", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muro de ladrillos pulidos de Riolita", + "block.mineralogy.pegmatite_wall": "Muro de Pegmatita", + "block.mineralogy.pegmatite_brick_wall": "Muro de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth_wall": "Muro pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muro de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale_wall": "Muro de Lutita", + "block.mineralogy.shale_brick_wall": "Muro de ladrillos de Lutita", + "block.mineralogy.shale_smooth_wall": "Muro pulido de Lutita", + "block.mineralogy.shale_smooth_brick_wall": "Muro de ladrillos pulidos de Lutita", + "block.mineralogy.conglomerate_wall": "Muro de Conglomerado", + "block.mineralogy.conglomerate_brick_wall": "Muro de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth_wall": "Muro pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muro de ladrillos pulidos de Conglomerado", "block.mineralogy.dolomite_wall": "Muro de Dolomita", - "block.mineralogy.dolomite_brick_wall": "Pared de ladrillos de dolomita", - "block.mineralogy.dolomite_smooth_wall": "Pared pulida de dolomita", - "block.mineralogy.dolomite_smooth_brick_wall": "Pared de ladrillo pulido de dolomita", - "block.mineralogy.limestone_wall": "Muro de piedra caliza", - "block.mineralogy.limestone_brick_wall": "Pared de ladrillo de piedra caliza", - "block.mineralogy.limestone_smooth_wall": "Muro pulido de piedra caliza", - "block.mineralogy.limestone_smooth_brick_wall": "Pared de ladrillo pulido de piedra caliza", - "block.mineralogy.marble_wall": "Muro de mármol", - "block.mineralogy.marble_brick_wall": "Pared de ladrillo de mármol", - "block.mineralogy.marble_smooth_wall": "Mármol pulido de la pared", - "block.mineralogy.marble_smooth_brick_wall": "Mármol pulido de la pared de ladrillo", - "block.mineralogy.slate_wall": "Pared de pizarra", - "block.mineralogy.slate_brick_wall": "Pared de ladrillo de pizarra", - "block.mineralogy.slate_smooth_wall": "Pared pulida pizarra", - "block.mineralogy.slate_smooth_brick_wall": "Pared de ladrillo pulido pizarra", - "block.mineralogy.schist_wall": "Muro de esquisto", - "block.mineralogy.schist_brick_wall": "Pared de ladrillo esquist", - "block.mineralogy.schist_smooth_wall": "Esquisto de pared pulida", - "block.mineralogy.schist_smooth_brick_wall": "Pared de ladrillo pulido de esquisto", - "block.mineralogy.gneiss_wall": "Muro de gneis", - "block.mineralogy.gneiss_brick_wall": "Pared de ladrillo gneis", - "block.mineralogy.gneiss_smooth_wall": "Gneis pulido de la pared", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneis pulido de la pared de ladrillo", - "block.mineralogy.phyllite_wall": "Pared de Phyllite", - "block.mineralogy.phyllite_brick_wall": "Pared de ladrillo Phyllite", - "block.mineralogy.phyllite_smooth_wall": "Phyllite pulido de pared", - "block.mineralogy.phyllite_smooth_brick_wall": "Pared de ladrillo pulido de Phyllite", - "block.mineralogy.amphibolite_wall": "Pared de anfibolita", - "block.mineralogy.amphibolite_brick_wall": "Pared de ladrillo de anfibolita", - "block.mineralogy.amphibolite_smooth_wall": "Pared pulida de anfibolita", - "block.mineralogy.amphibolite_smooth_brick_wall": "Pared de ladrillo pulido de anfibolita", - "block.mineralogy.andesite_furnace": "Horno de andesita", - "block.mineralogy.andesite_brick_furnace": "Horno de ladrillo de andesita", - "block.mineralogy.andesite_smooth_furnace": "Horno Pulida de Andesita", - "block.mineralogy.andesite_smooth_brick_furnace": "Horno de ladrillo pulido Andesite", - "block.mineralogy.basalt_furnace": "Horno de basalto", - "block.mineralogy.basalt_brick_furnace": "Horno de ladrillo de basalto", - "block.mineralogy.basalt_smooth_furnace": "Muro pulido de basalto", - "block.mineralogy.basalt_smooth_brick_furnace": "Horno de ladrillo pulido de basalto", + "block.mineralogy.dolomite_brick_wall": "Muro de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth_wall": "Muro pulido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_wall": "Muro de ladrillos pulidos de Dolomita", + "block.mineralogy.limestone_wall": "Muro de Caliza", + "block.mineralogy.limestone_brick_wall": "Muro de ladrillos de Caliza", + "block.mineralogy.limestone_smooth_wall": "Muro pulido de Caliza", + "block.mineralogy.limestone_smooth_brick_wall": "Muro de ladrillos pulidos de Caliza", + "block.mineralogy.marble_wall": "Muro de Mármol", + "block.mineralogy.marble_brick_wall": "Muro de ladrillos de Mármol", + "block.mineralogy.marble_smooth_wall": "Muro pulido de Mármol", + "block.mineralogy.marble_smooth_brick_wall": "Muro de ladrillos pulidos de Mármol", + "block.mineralogy.slate_wall": "Muro de Pizarra", + "block.mineralogy.slate_brick_wall": "Muro de ladrillos de Pizarra", + "block.mineralogy.slate_smooth_wall": "Muro pulido de Pizarra", + "block.mineralogy.slate_smooth_brick_wall": "Muro de ladrillos pulidos de Pizarra", + "block.mineralogy.schist_wall": "Muro de Esquisto", + "block.mineralogy.schist_brick_wall": "Muro de ladrillos de Esquisto", + "block.mineralogy.schist_smooth_wall": "Muro pulido de Esquisto", + "block.mineralogy.schist_smooth_brick_wall": "Muro de ladrillos pulidos de Esquisto", + "block.mineralogy.gneiss_wall": "Muro de Gneis", + "block.mineralogy.gneiss_brick_wall": "Muro de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth_wall": "Muro pulido de Gneis", + "block.mineralogy.gneiss_smooth_brick_wall": "Muro de ladrillos pulidos de Gneis", + "block.mineralogy.phyllite_wall": "Muro de Filita", + "block.mineralogy.phyllite_brick_wall": "Muro de ladrillos de Filita", + "block.mineralogy.phyllite_smooth_wall": "Muro pulido de Filita", + "block.mineralogy.phyllite_smooth_brick_wall": "Muro de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite_wall": "Muro de Anfibolita", + "block.mineralogy.amphibolite_brick_wall": "Muro de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth_wall": "Muro pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muro de ladrillos pulidos de Anfibolita", + "block.mineralogy.andesite_furnace": "Horno de Andesita", + "block.mineralogy.andesite_brick_furnace": "Horno de ladrillos de Andesita", + "block.mineralogy.andesite_smooth_furnace": "Horno pulido de Andesita", + "block.mineralogy.andesite_smooth_brick_furnace": "Horno de ladrillos pulidos de Andesita", + "block.mineralogy.basalt_furnace": "Horno de Basalto", + "block.mineralogy.basalt_brick_furnace": "Horno de ladrillos de Basalto", + "block.mineralogy.basalt_smooth_furnace": "Horno pulido de Basalto", + "block.mineralogy.basalt_smooth_brick_furnace": "Horno de ladrillos pulidos de Basalto", "block.mineralogy.diorite_furnace": "Horno de Diorita", - "block.mineralogy.diorite_brick_furnace": "Horno de ladrillo de diorita", - "block.mineralogy.diorite_smooth_furnace": "Diorite pulido de pared", - "block.mineralogy.diorite_smooth_brick_furnace": "Horno de ladrillo pulido de diorita", - "block.mineralogy.granite_furnace": "Horno de granito", - "block.mineralogy.granite_brick_furnace": "Horno de ladrillo de granito", - "block.mineralogy.granite_smooth_furnace": "Muro pulido de granito", - "block.mineralogy.granite_smooth_brick_furnace": "Horno de ladrillo pulido de granito", - "block.mineralogy.rhyolite_furnace": "Horno de riolita", - "block.mineralogy.rhyolite_brick_furnace": "Horno de ladrillos de riolita", - "block.mineralogy.rhyolite_smooth_furnace": "Horno pulida de riolita", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Horno de ladrillo pulido de riolita", + "block.mineralogy.diorite_brick_furnace": "Horno de ladrillos de Diorita", + "block.mineralogy.diorite_smooth_furnace": "Horno pulido de Diorita", + "block.mineralogy.diorite_smooth_brick_furnace": "Horno de ladrillos pulidos de Diorita", + "block.mineralogy.granite_furnace": "Horno de Granito", + "block.mineralogy.granite_brick_furnace": "Horno de ladrillos de Granito", + "block.mineralogy.granite_smooth_furnace": "Horno pulido de Granito", + "block.mineralogy.granite_smooth_brick_furnace": "Horno de ladrillos pulidos de Granito", + "block.mineralogy.rhyolite_furnace": "Horno de Riolita", + "block.mineralogy.rhyolite_brick_furnace": "Horno de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth_furnace": "Horno pulido de Riolita", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Horno de ladrillos pulidos de Riolita", "block.mineralogy.pegmatite_furnace": "Horno de Pegmatita", - "block.mineralogy.pegmatite_brick_furnace": "Horno de ladrillo de pegmatita", - "block.mineralogy.pegmatite_smooth_furnace": "Horno pulida de pegmatita", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Horno de ladrillo pulido de pegmatita", - "block.mineralogy.shale_furnace": "Muro de pizarra", - "block.mineralogy.shale_brick_furnace": "Horno de ladrillo de pizarra", - "block.mineralogy.shale_smooth_furnace": "Horno pulida de pizarra", - "block.mineralogy.shale_smooth_brick_furnace": "Pizarra, pulido, pared de ladrillo", - "block.mineralogy.conglomerate_furnace": "Horno de conglomerado", - "block.mineralogy.conglomerate_brick_furnace": "Horno de ladrillo conglomerado", - "block.mineralogy.conglomerate_smooth_furnace": "Horno pulida de conglomerado", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Conglomerado, pulido, pared de ladrillo", - "block.mineralogy.dolomite_furnace": "Muro de Dolomita", - "block.mineralogy.dolomite_brick_furnace": "Horno de ladrillos de dolomita", - "block.mineralogy.dolomite_smooth_furnace": "Horno pulida de dolomita", - "block.mineralogy.dolomite_smooth_brick_furnace": "Horno de ladrillo pulido de dolomita", - "block.mineralogy.limestone_furnace": "Muro de piedra caliza", - "block.mineralogy.limestone_brick_furnace": "Horno de ladrillo de piedra caliza", - "block.mineralogy.limestone_smooth_furnace": "Muro pulido de piedra caliza", - "block.mineralogy.limestone_smooth_brick_furnace": "Horno de ladrillo pulido de piedra caliza", - "block.mineralogy.marble_furnace": "Muro de mármol", - "block.mineralogy.marble_brick_furnace": "Horno de ladrillo de mármol", - "block.mineralogy.marble_smooth_furnace": "Mármol pulido de la pared", - "block.mineralogy.marble_smooth_brick_furnace": "Mármol pulido de la pared de ladrillo", - "block.mineralogy.slate_furnace": "Horno de pizarra", - "block.mineralogy.slate_brick_furnace": "Horno de ladrillo de pizarra", - "block.mineralogy.slate_smooth_furnace": "Horno pulida pizarra", - "block.mineralogy.slate_smooth_brick_furnace": "Horno de ladrillo pulido pizarra", - "block.mineralogy.schist_furnace": "Muro de esquisto", - "block.mineralogy.schist_brick_furnace": "Horno de ladrillo esquist", - "block.mineralogy.schist_smooth_furnace": "Esquisto de pared pulida", - "block.mineralogy.schist_smooth_brick_furnace": "Horno de ladrillo pulido de esquisto", - "block.mineralogy.gneiss_furnace": "Muro de gneis", - "block.mineralogy.gneiss_brick_furnace": "Horno de ladrillo gneis", - "block.mineralogy.gneiss_smooth_furnace": "Gneis pulido de la pared", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneis pulido de la pared de ladrillo", - "block.mineralogy.phyllite_furnace": "Horno de Phyllite", - "block.mineralogy.phyllite_brick_furnace": "Horno de ladrillo Phyllite", - "block.mineralogy.phyllite_smooth_furnace": "Phyllite pulido de pared", - "block.mineralogy.phyllite_smooth_brick_furnace": "Horno de ladrillo pulido de Phyllite", - "block.mineralogy.amphibolite_furnace": "Horno de anfibolita", - "block.mineralogy.amphibolite_brick_furnace": "Horno de ladrillo de anfibolita", - "block.mineralogy.amphibolite_smooth_furnace": "Horno pulida de anfibolita", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Horno de ladrillo pulido de anfibolita", + "block.mineralogy.pegmatite_brick_furnace": "Horno de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth_furnace": "Horno pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Horno de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale_furnace": "Horno de Lutita", + "block.mineralogy.shale_brick_furnace": "Horno de ladrillos de Lutita", + "block.mineralogy.shale_smooth_furnace": "Horno pulido de Lutita", + "block.mineralogy.shale_smooth_brick_furnace": "Horno de ladrillos pulidos de Lutita", + "block.mineralogy.conglomerate_furnace": "Horno de Conglomerado", + "block.mineralogy.conglomerate_brick_furnace": "Horno de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth_furnace": "Horno pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Horno de ladrillos pulidos de Conglomerado", + "block.mineralogy.dolomite_furnace": "Horno de Dolomita", + "block.mineralogy.dolomite_brick_furnace": "Horno de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth_furnace": "Horno pulido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_furnace": "Horno de ladrillos pulidos de Dolomita", + "block.mineralogy.limestone_furnace": "Horno de Caliza", + "block.mineralogy.limestone_brick_furnace": "Horno de ladrillos de Caliza", + "block.mineralogy.limestone_smooth_furnace": "Horno pulido de Caliza", + "block.mineralogy.limestone_smooth_brick_furnace": "Horno de ladrillos pulidos de Caliza", + "block.mineralogy.marble_furnace": "Horno de Mármol", + "block.mineralogy.marble_brick_furnace": "Horno de ladrillos de Mármol", + "block.mineralogy.marble_smooth_furnace": "Horno pulido de Mármol", + "block.mineralogy.marble_smooth_brick_furnace": "Horno de ladrillos pulidos de Mármol", + "block.mineralogy.slate_furnace": "Horno de Pizarra", + "block.mineralogy.slate_brick_furnace": "Horno de ladrillos de Pizarra", + "block.mineralogy.slate_smooth_furnace": "Horno pulido de Pizarra", + "block.mineralogy.slate_smooth_brick_furnace": "Horno de ladrillos pulidos de Pizarra", + "block.mineralogy.schist_furnace": "Horno de Esquisto", + "block.mineralogy.schist_brick_furnace": "Horno de ladrillos de Esquisto", + "block.mineralogy.schist_smooth_furnace": "Horno pulido de Esquisto", + "block.mineralogy.schist_smooth_brick_furnace": "Horno de ladrillos pulidos de Esquisto", + "block.mineralogy.gneiss_furnace": "Horno de Gneis", + "block.mineralogy.gneiss_brick_furnace": "Horno de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth_furnace": "Horno pulido de Gneis", + "block.mineralogy.gneiss_smooth_brick_furnace": "Horno de ladrillos pulidos de Gneis", + "block.mineralogy.phyllite_furnace": "Horno de Filita", + "block.mineralogy.phyllite_brick_furnace": "Horno de ladrillos de Filita", + "block.mineralogy.phyllite_smooth_furnace": "Horno pulido de Filita", + "block.mineralogy.phyllite_smooth_brick_furnace": "Horno de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite_furnace": "Horno de Anfibolita", + "block.mineralogy.amphibolite_brick_furnace": "Horno de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth_furnace": "Horno pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Horno de ladrillos pulidos de Anfibolita", "block.mineralogy.diabase": "Diabasa", - "block.mineralogy.diabase_stairs": "Diabasa Escalera", - "block.mineralogy.diabase_slab": "Diabasa Losa", - "block.mineralogy.diabase_brick": "Diabasa Ladrillo", - "block.mineralogy.diabase_brick_stairs": "Diabasa Escaleras de ladrillo", - "block.mineralogy.diabase_brick_slab": "Diabasa Losa de ladrillo", - "block.mineralogy.diabase_smooth": "Polished Diabasa", - "block.mineralogy.diabase_smooth_stairs": "Diabasa Escaleras pulidas", - "block.mineralogy.diabase_smooth_slab": "Diabasa Losa pulida", - "block.mineralogy.diabase_smooth_brick": "Diabasa Ladrillo pulido", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabasa Polished Escaleras de ladrillo", - "block.mineralogy.diabase_smooth_brick_slab": "Diabasa Polished Losa de ladrillo", - "block.mineralogy.diabase_wall": "Diabasa pared", - "block.mineralogy.diabase_brick_wall": "Diabasa Pared de ladrillo", - "block.mineralogy.diabase_smooth_wall": "Diabasa Pared pulida", - "block.mineralogy.diabase_smooth_brick_wall": "Diabasa Ladrillo pulido pared", - "block.mineralogy.diabase_furnace": "Diabasa Horno", - "block.mineralogy.diabase_brick_furnace": "Diabasa Horno de ladrillo", - "block.mineralogy.diabase_smooth_furnace": "Diabasa Horno pulido", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabasa Ladrillo pulido Horno", - "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Escalera", - "block.mineralogy.gabbro_slab": "Gabbro Losa", - "block.mineralogy.gabbro_brick": "Gabbro Ladrillo", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Escaleras de ladrillo", - "block.mineralogy.gabbro_brick_slab": "Gabbro Losa de ladrillo", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Escaleras pulidas", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Losa pulida", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Ladrillo pulido", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Polished Escaleras de ladrillo", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Polished Losa de ladrillo", - "block.mineralogy.gabbro_wall": "Gabbro pared", - "block.mineralogy.gabbro_brick_wall": "Gabbro Pared de ladrillo", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Pared pulida", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Ladrillo pulido pared", - "block.mineralogy.gabbro_furnace": "Gabbro Horno", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Horno de ladrillo", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Horno pulido", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Ladrillo pulido Horno", + "block.mineralogy.diabase_stairs": "Escaleras de Diabasa", + "block.mineralogy.diabase_slab": "Losa de Diabasa", + "block.mineralogy.diabase_brick": "Ladrillos de Diabasa", + "block.mineralogy.diabase_brick_stairs": "Escaleras de ladrillos de Diabasa", + "block.mineralogy.diabase_brick_slab": "Losa de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth": "Bloque pulido de Diabasa", + "block.mineralogy.diabase_smooth_stairs": "Escaleras pulidas de Diabasa", + "block.mineralogy.diabase_smooth_slab": "Losa pulida de Diabasa", + "block.mineralogy.diabase_smooth_brick": "Ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_smooth_brick_slab": "Losa de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_wall": "Muro de Diabasa", + "block.mineralogy.diabase_brick_wall": "Muro de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth_wall": "Muro pulido de Diabasa", + "block.mineralogy.diabase_smooth_brick_wall": "Muro de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_furnace": "Horno de Diabasa", + "block.mineralogy.diabase_brick_furnace": "Horno de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth_furnace": "Horno pulido de Diabasa", + "block.mineralogy.diabase_smooth_brick_furnace": "Horno de ladrillos pulidos de Diabasa", + "block.mineralogy.gabbro": "Gabro", + "block.mineralogy.gabbro_stairs": "Escaleras de Gabro", + "block.mineralogy.gabbro_slab": "Losa de Gabro", + "block.mineralogy.gabbro_brick": "Ladrillos de Gabro", + "block.mineralogy.gabbro_brick_stairs": "Escaleras de ladrillos de Gabro", + "block.mineralogy.gabbro_brick_slab": "Losa de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth": "Bloque pulido de Gabro", + "block.mineralogy.gabbro_smooth_stairs": "Escaleras pulidas de Gabro", + "block.mineralogy.gabbro_smooth_slab": "Losa pulida de Gabro", + "block.mineralogy.gabbro_smooth_brick": "Ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_slab": "Losa de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_wall": "Muro de Gabro", + "block.mineralogy.gabbro_brick_wall": "Muro de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth_wall": "Muro pulido de Gabro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muro de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_furnace": "Horno de Gabro", + "block.mineralogy.gabbro_brick_furnace": "Horno de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth_furnace": "Horno pulido de Gabro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Horno de ladrillos pulidos de Gabro", "block.mineralogy.peridotite": "Peridotita", - "block.mineralogy.peridotite_stairs": "Peridotita Escalera", - "block.mineralogy.peridotite_slab": "Peridotita Losa", - "block.mineralogy.peridotite_brick": "Peridotita Ladrillo", - "block.mineralogy.peridotite_brick_stairs": "Peridotita Escaleras de ladrillo", - "block.mineralogy.peridotite_brick_slab": "Peridotita Losa de ladrillo", - "block.mineralogy.peridotite_smooth": "Polished Peridotita", - "block.mineralogy.peridotite_smooth_stairs": "Peridotita Escaleras pulidas", - "block.mineralogy.peridotite_smooth_slab": "Peridotita Losa pulida", - "block.mineralogy.peridotite_smooth_brick": "Peridotita Ladrillo pulido", - "block.mineralogy.peridotite_smooth_brick_stairs": "Peridotita Polished Escaleras de ladrillo", - "block.mineralogy.peridotite_smooth_brick_slab": "Peridotita Polished Losa de ladrillo", - "block.mineralogy.peridotite_wall": "Peridotita pared", - "block.mineralogy.peridotite_brick_wall": "Peridotita Pared de ladrillo", - "block.mineralogy.peridotite_smooth_wall": "Peridotita Pared pulida", - "block.mineralogy.peridotite_smooth_brick_wall": "Peridotita Ladrillo pulido pared", - "block.mineralogy.peridotite_furnace": "Peridotita Horno", - "block.mineralogy.peridotite_brick_furnace": "Peridotita Horno de ladrillo", - "block.mineralogy.peridotite_smooth_furnace": "Peridotita Horno pulido", - "block.mineralogy.peridotite_smooth_brick_furnace": "Peridotita Ladrillo pulido Horno", + "block.mineralogy.peridotite_stairs": "Escaleras de Peridotita", + "block.mineralogy.peridotite_slab": "Losa de Peridotita", + "block.mineralogy.peridotite_brick": "Ladrillos de Peridotita", + "block.mineralogy.peridotite_brick_stairs": "Escaleras de ladrillos de Peridotita", + "block.mineralogy.peridotite_brick_slab": "Losa de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth": "Bloque pulido de Peridotita", + "block.mineralogy.peridotite_smooth_stairs": "Escaleras pulidas de Peridotita", + "block.mineralogy.peridotite_smooth_slab": "Losa pulida de Peridotita", + "block.mineralogy.peridotite_smooth_brick": "Ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_smooth_brick_slab": "Losa de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_wall": "Muro de Peridotita", + "block.mineralogy.peridotite_brick_wall": "Muro de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth_wall": "Muro pulido de Peridotita", + "block.mineralogy.peridotite_smooth_brick_wall": "Muro de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_furnace": "Horno de Peridotita", + "block.mineralogy.peridotite_brick_furnace": "Horno de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth_furnace": "Horno pulido de Peridotita", + "block.mineralogy.peridotite_smooth_brick_furnace": "Horno de ladrillos pulidos de Peridotita", "block.mineralogy.basaltic_glass": "Vidrio basáltico", - "block.mineralogy.basaltic_glass_stairs": "Vidrio basáltico Escalera", - "block.mineralogy.basaltic_glass_slab": "Vidrio basáltico Losa", - "block.mineralogy.basaltic_glass_brick": "Vidrio basáltico Ladrillo", - "block.mineralogy.basaltic_glass_brick_stairs": "Vidrio basáltico Escaleras de ladrillo", - "block.mineralogy.basaltic_glass_brick_slab": "Vidrio basáltico Losa de ladrillo", - "block.mineralogy.basaltic_glass_smooth": "Polished Vidrio basáltico", - "block.mineralogy.basaltic_glass_smooth_stairs": "Vidrio basáltico Escaleras pulidas", - "block.mineralogy.basaltic_glass_smooth_slab": "Vidrio basáltico Losa pulida", - "block.mineralogy.basaltic_glass_smooth_brick": "Vidrio basáltico Ladrillo pulido", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Vidrio basáltico Polished Escaleras de ladrillo", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Vidrio basáltico Polished Losa de ladrillo", - "block.mineralogy.basaltic_glass_wall": "Vidrio basáltico pared", - "block.mineralogy.basaltic_glass_brick_wall": "Vidrio basáltico Pared de ladrillo", - "block.mineralogy.basaltic_glass_smooth_wall": "Vidrio basáltico Pared pulida", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Vidrio basáltico Ladrillo pulido pared", - "block.mineralogy.basaltic_glass_furnace": "Vidrio basáltico Horno", - "block.mineralogy.basaltic_glass_brick_furnace": "Vidrio basáltico Horno de ladrillo", - "block.mineralogy.basaltic_glass_smooth_furnace": "Vidrio basáltico Horno pulido", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Vidrio basáltico Ladrillo pulido Horno", + "block.mineralogy.basaltic_glass_stairs": "Escaleras de Vidrio basáltico", + "block.mineralogy.basaltic_glass_slab": "Losa de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick": "Ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_stairs": "Escaleras de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_slab": "Losa de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth": "Bloque pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escaleras pulidas de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_slab": "Losa pulida de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick": "Ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Losa de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_wall": "Muro de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_wall": "Muro de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_wall": "Muro pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muro de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_furnace": "Horno de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_furnace": "Horno de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_furnace": "Horno pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Horno de ladrillos pulidos de Vidrio basáltico", "block.mineralogy.scoria": "Escoria", - "block.mineralogy.scoria_stairs": "Escoria Escalera", - "block.mineralogy.scoria_slab": "Escoria Losa", - "block.mineralogy.scoria_brick": "Escoria Ladrillo", - "block.mineralogy.scoria_brick_stairs": "Escoria Escaleras de ladrillo", - "block.mineralogy.scoria_brick_slab": "Escoria Losa de ladrillo", - "block.mineralogy.scoria_smooth": "Polished Escoria", - "block.mineralogy.scoria_smooth_stairs": "Escoria Escaleras pulidas", - "block.mineralogy.scoria_smooth_slab": "Escoria Losa pulida", - "block.mineralogy.scoria_smooth_brick": "Escoria Ladrillo pulido", - "block.mineralogy.scoria_smooth_brick_stairs": "Escoria Polished Escaleras de ladrillo", - "block.mineralogy.scoria_smooth_brick_slab": "Escoria Polished Losa de ladrillo", - "block.mineralogy.scoria_wall": "Escoria pared", - "block.mineralogy.scoria_brick_wall": "Escoria Pared de ladrillo", - "block.mineralogy.scoria_smooth_wall": "Escoria Pared pulida", - "block.mineralogy.scoria_smooth_brick_wall": "Escoria Ladrillo pulido pared", - "block.mineralogy.scoria_furnace": "Escoria Horno", - "block.mineralogy.scoria_brick_furnace": "Escoria Horno de ladrillo", - "block.mineralogy.scoria_smooth_furnace": "Escoria Horno pulido", - "block.mineralogy.scoria_smooth_brick_furnace": "Escoria Ladrillo pulido Horno", + "block.mineralogy.scoria_stairs": "Escaleras de Escoria", + "block.mineralogy.scoria_slab": "Losa de Escoria", + "block.mineralogy.scoria_brick": "Ladrillos de Escoria", + "block.mineralogy.scoria_brick_stairs": "Escaleras de ladrillos de Escoria", + "block.mineralogy.scoria_brick_slab": "Losa de ladrillos de Escoria", + "block.mineralogy.scoria_smooth": "Bloque pulido de Escoria", + "block.mineralogy.scoria_smooth_stairs": "Escaleras pulidas de Escoria", + "block.mineralogy.scoria_smooth_slab": "Losa pulida de Escoria", + "block.mineralogy.scoria_smooth_brick": "Ladrillos pulidos de Escoria", + "block.mineralogy.scoria_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_smooth_brick_slab": "Losa de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_wall": "Muro de Escoria", + "block.mineralogy.scoria_brick_wall": "Muro de ladrillos de Escoria", + "block.mineralogy.scoria_smooth_wall": "Muro pulido de Escoria", + "block.mineralogy.scoria_smooth_brick_wall": "Muro de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_furnace": "Horno de Escoria", + "block.mineralogy.scoria_brick_furnace": "Horno de ladrillos de Escoria", + "block.mineralogy.scoria_smooth_furnace": "Horno pulido de Escoria", + "block.mineralogy.scoria_smooth_brick_furnace": "Horno de ladrillos pulidos de Escoria", "block.mineralogy.tuff": "Toba", - "block.mineralogy.tuff_stairs": "Toba Escalera", - "block.mineralogy.tuff_slab": "Toba Losa", - "block.mineralogy.tuff_brick": "Toba Ladrillo", - "block.mineralogy.tuff_brick_stairs": "Toba Escaleras de ladrillo", - "block.mineralogy.tuff_brick_slab": "Toba Losa de ladrillo", - "block.mineralogy.tuff_smooth": "Polished Toba", - "block.mineralogy.tuff_smooth_stairs": "Toba Escaleras pulidas", - "block.mineralogy.tuff_smooth_slab": "Toba Losa pulida", - "block.mineralogy.tuff_smooth_brick": "Toba Ladrillo pulido", - "block.mineralogy.tuff_smooth_brick_stairs": "Toba Polished Escaleras de ladrillo", - "block.mineralogy.tuff_smooth_brick_slab": "Toba Polished Losa de ladrillo", - "block.mineralogy.tuff_wall": "Toba pared", - "block.mineralogy.tuff_brick_wall": "Toba Pared de ladrillo", - "block.mineralogy.tuff_smooth_wall": "Toba Pared pulida", - "block.mineralogy.tuff_smooth_brick_wall": "Toba Ladrillo pulido pared", - "block.mineralogy.tuff_furnace": "Toba Horno", - "block.mineralogy.tuff_brick_furnace": "Toba Horno de ladrillo", - "block.mineralogy.tuff_smooth_furnace": "Toba Horno pulido", - "block.mineralogy.tuff_smooth_brick_furnace": "Toba Ladrillo pulido Horno", - "block.mineralogy.siltstone": "Siltstone", - "block.mineralogy.siltstone_stairs": "Siltstone Escalera", - "block.mineralogy.siltstone_slab": "Siltstone Losa", - "block.mineralogy.siltstone_brick": "Siltstone Ladrillo", - "block.mineralogy.siltstone_brick_stairs": "Siltstone Escaleras de ladrillo", - "block.mineralogy.siltstone_brick_slab": "Siltstone Losa de ladrillo", - "block.mineralogy.siltstone_smooth": "Polished Siltstone", - "block.mineralogy.siltstone_smooth_stairs": "Siltstone Escaleras pulidas", - "block.mineralogy.siltstone_smooth_slab": "Siltstone Losa pulida", - "block.mineralogy.siltstone_smooth_brick": "Siltstone Ladrillo pulido", - "block.mineralogy.siltstone_smooth_brick_stairs": "Siltstone Polished Escaleras de ladrillo", - "block.mineralogy.siltstone_smooth_brick_slab": "Siltstone Polished Losa de ladrillo", - "block.mineralogy.siltstone_wall": "Siltstone pared", - "block.mineralogy.siltstone_brick_wall": "Siltstone Pared de ladrillo", - "block.mineralogy.siltstone_smooth_wall": "Siltstone Pared pulida", - "block.mineralogy.siltstone_smooth_brick_wall": "Siltstone Ladrillo pulido pared", - "block.mineralogy.siltstone_furnace": "Siltstone Horno", - "block.mineralogy.siltstone_brick_furnace": "Siltstone Horno de ladrillo", - "block.mineralogy.siltstone_smooth_furnace": "Siltstone Horno pulido", - "block.mineralogy.siltstone_smooth_brick_furnace": "Siltstone Ladrillo pulido Horno", + "block.mineralogy.tuff_stairs": "Escaleras de Toba", + "block.mineralogy.tuff_slab": "Losa de Toba", + "block.mineralogy.tuff_brick": "Ladrillos de Toba", + "block.mineralogy.tuff_brick_stairs": "Escaleras de ladrillos de Toba", + "block.mineralogy.tuff_brick_slab": "Losa de ladrillos de Toba", + "block.mineralogy.tuff_smooth": "Bloque pulido de Toba", + "block.mineralogy.tuff_smooth_stairs": "Escaleras pulidas de Toba", + "block.mineralogy.tuff_smooth_slab": "Losa pulida de Toba", + "block.mineralogy.tuff_smooth_brick": "Ladrillos pulidos de Toba", + "block.mineralogy.tuff_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Toba", + "block.mineralogy.tuff_smooth_brick_slab": "Losa de ladrillos pulidos de Toba", + "block.mineralogy.tuff_wall": "Muro de Toba", + "block.mineralogy.tuff_brick_wall": "Muro de ladrillos de Toba", + "block.mineralogy.tuff_smooth_wall": "Muro pulido de Toba", + "block.mineralogy.tuff_smooth_brick_wall": "Muro de ladrillos pulidos de Toba", + "block.mineralogy.tuff_furnace": "Horno de Toba", + "block.mineralogy.tuff_brick_furnace": "Horno de ladrillos de Toba", + "block.mineralogy.tuff_smooth_furnace": "Horno pulido de Toba", + "block.mineralogy.tuff_smooth_brick_furnace": "Horno de ladrillos pulidos de Toba", + "block.mineralogy.siltstone": "Limolita", + "block.mineralogy.siltstone_stairs": "Escaleras de Limolita", + "block.mineralogy.siltstone_slab": "Losa de Limolita", + "block.mineralogy.siltstone_brick": "Ladrillos de Limolita", + "block.mineralogy.siltstone_brick_stairs": "Escaleras de ladrillos de Limolita", + "block.mineralogy.siltstone_brick_slab": "Losa de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth": "Bloque pulido de Limolita", + "block.mineralogy.siltstone_smooth_stairs": "Escaleras pulidas de Limolita", + "block.mineralogy.siltstone_smooth_slab": "Losa pulida de Limolita", + "block.mineralogy.siltstone_smooth_brick": "Ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_smooth_brick_slab": "Losa de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_wall": "Muro de Limolita", + "block.mineralogy.siltstone_brick_wall": "Muro de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth_wall": "Muro pulido de Limolita", + "block.mineralogy.siltstone_smooth_brick_wall": "Muro de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_furnace": "Horno de Limolita", + "block.mineralogy.siltstone_brick_furnace": "Horno de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth_furnace": "Horno pulido de Limolita", + "block.mineralogy.siltstone_smooth_brick_furnace": "Horno de ladrillos pulidos de Limolita", "block.mineralogy.rock_salt": "Sal de roca", - "block.mineralogy.rock_salt_stairs": "Sal de roca Escalera", - "block.mineralogy.rock_salt_slab": "Sal de roca Losa", - "block.mineralogy.rock_salt_brick": "Sal de roca Ladrillo", - "block.mineralogy.rock_salt_brick_stairs": "Sal de roca Escaleras de ladrillo", - "block.mineralogy.rock_salt_brick_slab": "Sal de roca Losa de ladrillo", - "block.mineralogy.rock_salt_smooth": "Polished Sal de roca", - "block.mineralogy.rock_salt_smooth_stairs": "Sal de roca Escaleras pulidas", - "block.mineralogy.rock_salt_smooth_slab": "Sal de roca Losa pulida", - "block.mineralogy.rock_salt_smooth_brick": "Sal de roca Ladrillo pulido", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Sal de roca Polished Escaleras de ladrillo", - "block.mineralogy.rock_salt_smooth_brick_slab": "Sal de roca Polished Losa de ladrillo", - "block.mineralogy.rock_salt_wall": "Sal de roca pared", - "block.mineralogy.rock_salt_brick_wall": "Sal de roca Pared de ladrillo", - "block.mineralogy.rock_salt_smooth_wall": "Sal de roca Pared pulida", - "block.mineralogy.rock_salt_smooth_brick_wall": "Sal de roca Ladrillo pulido pared", - "block.mineralogy.rock_salt_furnace": "Sal de roca Horno", - "block.mineralogy.rock_salt_brick_furnace": "Sal de roca Horno de ladrillo", - "block.mineralogy.rock_salt_smooth_furnace": "Sal de roca Horno pulido", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Sal de roca Ladrillo pulido Horno", - "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Escalera", - "block.mineralogy.hornfels_slab": "Hornfels Losa", - "block.mineralogy.hornfels_brick": "Hornfels Ladrillo", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Escaleras de ladrillo", - "block.mineralogy.hornfels_brick_slab": "Hornfels Losa de ladrillo", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Escaleras pulidas", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Losa pulida", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Ladrillo pulido", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Polished Escaleras de ladrillo", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Polished Losa de ladrillo", - "block.mineralogy.hornfels_wall": "Hornfels pared", - "block.mineralogy.hornfels_brick_wall": "Hornfels Pared de ladrillo", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Pared pulida", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Ladrillo pulido pared", - "block.mineralogy.hornfels_furnace": "Hornfels Horno", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Horno de ladrillo", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Horno pulido", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Ladrillo pulido Horno", + "block.mineralogy.rock_salt_stairs": "Escaleras de Sal de roca", + "block.mineralogy.rock_salt_slab": "Losa de Sal de roca", + "block.mineralogy.rock_salt_brick": "Ladrillos de Sal de roca", + "block.mineralogy.rock_salt_brick_stairs": "Escaleras de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_brick_slab": "Losa de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth": "Bloque pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_stairs": "Escaleras pulidas de Sal de roca", + "block.mineralogy.rock_salt_smooth_slab": "Losa pulida de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick": "Ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_slab": "Losa de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_wall": "Muro de Sal de roca", + "block.mineralogy.rock_salt_brick_wall": "Muro de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth_wall": "Muro pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muro de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_furnace": "Horno de Sal de roca", + "block.mineralogy.rock_salt_brick_furnace": "Horno de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth_furnace": "Horno pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Horno de ladrillos pulidos de Sal de roca", + "block.mineralogy.hornfels": "Corneana", + "block.mineralogy.hornfels_stairs": "Escaleras de Corneana", + "block.mineralogy.hornfels_slab": "Losa de Corneana", + "block.mineralogy.hornfels_brick": "Ladrillos de Corneana", + "block.mineralogy.hornfels_brick_stairs": "Escaleras de ladrillos de Corneana", + "block.mineralogy.hornfels_brick_slab": "Losa de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth": "Bloque pulido de Corneana", + "block.mineralogy.hornfels_smooth_stairs": "Escaleras pulidas de Corneana", + "block.mineralogy.hornfels_smooth_slab": "Losa pulida de Corneana", + "block.mineralogy.hornfels_smooth_brick": "Ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_smooth_brick_slab": "Losa de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_wall": "Muro de Corneana", + "block.mineralogy.hornfels_brick_wall": "Muro de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth_wall": "Muro pulido de Corneana", + "block.mineralogy.hornfels_smooth_brick_wall": "Muro de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_furnace": "Horno de Corneana", + "block.mineralogy.hornfels_brick_furnace": "Horno de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth_furnace": "Horno pulido de Corneana", + "block.mineralogy.hornfels_smooth_brick_furnace": "Horno de ladrillos pulidos de Corneana", "block.mineralogy.quartzite": "Cuarcita", - "block.mineralogy.quartzite_stairs": "Cuarcita Escalera", - "block.mineralogy.quartzite_slab": "Cuarcita Losa", - "block.mineralogy.quartzite_brick": "Cuarcita Ladrillo", - "block.mineralogy.quartzite_brick_stairs": "Cuarcita Escaleras de ladrillo", - "block.mineralogy.quartzite_brick_slab": "Cuarcita Losa de ladrillo", - "block.mineralogy.quartzite_smooth": "Polished Cuarcita", - "block.mineralogy.quartzite_smooth_stairs": "Cuarcita Escaleras pulidas", - "block.mineralogy.quartzite_smooth_slab": "Cuarcita Losa pulida", - "block.mineralogy.quartzite_smooth_brick": "Cuarcita Ladrillo pulido", - "block.mineralogy.quartzite_smooth_brick_stairs": "Cuarcita Polished Escaleras de ladrillo", - "block.mineralogy.quartzite_smooth_brick_slab": "Cuarcita Polished Losa de ladrillo", - "block.mineralogy.quartzite_wall": "Cuarcita pared", - "block.mineralogy.quartzite_brick_wall": "Cuarcita Pared de ladrillo", - "block.mineralogy.quartzite_smooth_wall": "Cuarcita Pared pulida", - "block.mineralogy.quartzite_smooth_brick_wall": "Cuarcita Ladrillo pulido pared", - "block.mineralogy.quartzite_furnace": "Cuarcita Horno", - "block.mineralogy.quartzite_brick_furnace": "Cuarcita Horno de ladrillo", - "block.mineralogy.quartzite_smooth_furnace": "Cuarcita Horno pulido", - "block.mineralogy.quartzite_smooth_brick_furnace": "Cuarcita Ladrillo pulido Horno", + "block.mineralogy.quartzite_stairs": "Escaleras de Cuarcita", + "block.mineralogy.quartzite_slab": "Losa de Cuarcita", + "block.mineralogy.quartzite_brick": "Ladrillos de Cuarcita", + "block.mineralogy.quartzite_brick_stairs": "Escaleras de ladrillos de Cuarcita", + "block.mineralogy.quartzite_brick_slab": "Losa de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth": "Bloque pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_stairs": "Escaleras pulidas de Cuarcita", + "block.mineralogy.quartzite_smooth_slab": "Losa pulida de Cuarcita", + "block.mineralogy.quartzite_smooth_brick": "Ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_slab": "Losa de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_wall": "Muro de Cuarcita", + "block.mineralogy.quartzite_brick_wall": "Muro de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth_wall": "Muro pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_wall": "Muro de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_furnace": "Horno de Cuarcita", + "block.mineralogy.quartzite_brick_furnace": "Horno de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth_furnace": "Horno pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_furnace": "Horno de ladrillos pulidos de Cuarcita", "block.mineralogy.novaculite": "Novaculita", - "block.mineralogy.novaculite_stairs": "Novaculita Escalera", - "block.mineralogy.novaculite_slab": "Novaculita Losa", - "block.mineralogy.novaculite_brick": "Novaculita Ladrillo", - "block.mineralogy.novaculite_brick_stairs": "Novaculita Escaleras de ladrillo", - "block.mineralogy.novaculite_brick_slab": "Novaculita Losa de ladrillo", - "block.mineralogy.novaculite_smooth": "Polished Novaculita", - "block.mineralogy.novaculite_smooth_stairs": "Novaculita Escaleras pulidas", - "block.mineralogy.novaculite_smooth_slab": "Novaculita Losa pulida", - "block.mineralogy.novaculite_smooth_brick": "Novaculita Ladrillo pulido", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculita Polished Escaleras de ladrillo", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculita Polished Losa de ladrillo", - "block.mineralogy.novaculite_wall": "Novaculita pared", - "block.mineralogy.novaculite_brick_wall": "Novaculita Pared de ladrillo", - "block.mineralogy.novaculite_smooth_wall": "Novaculita Pared pulida", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculita Ladrillo pulido pared", - "block.mineralogy.novaculite_furnace": "Novaculita Horno", - "block.mineralogy.novaculite_brick_furnace": "Novaculita Horno de ladrillo", - "block.mineralogy.novaculite_smooth_furnace": "Novaculita Horno pulido", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculita Ladrillo pulido Horno", + "block.mineralogy.novaculite_stairs": "Escaleras de Novaculita", + "block.mineralogy.novaculite_slab": "Losa de Novaculita", + "block.mineralogy.novaculite_brick": "Ladrillos de Novaculita", + "block.mineralogy.novaculite_brick_stairs": "Escaleras de ladrillos de Novaculita", + "block.mineralogy.novaculite_brick_slab": "Losa de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth": "Bloque pulido de Novaculita", + "block.mineralogy.novaculite_smooth_stairs": "Escaleras pulidas de Novaculita", + "block.mineralogy.novaculite_smooth_slab": "Losa pulida de Novaculita", + "block.mineralogy.novaculite_smooth_brick": "Ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_slab": "Losa de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_wall": "Muro de Novaculita", + "block.mineralogy.novaculite_brick_wall": "Muro de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth_wall": "Muro pulido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_wall": "Muro de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_furnace": "Horno de Novaculita", + "block.mineralogy.novaculite_brick_furnace": "Horno de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth_furnace": "Horno pulido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_furnace": "Horno de ladrillos pulidos de Novaculita", "block.mineralogy.chalk": "Tiza", "item.mineralogy.chalk_dust": "Polvo de tiza", "item.mineralogy.salt_dust": "Sal", "item.mineralogy.rock_salt_dust": "Cristales de sal de roca", "block.mineralogy.rocksaltlamp": "Lámpara de sal de roca", "block.mineralogy.rocksaltstreetlamp": "Farola de sal de roca", - "block.mineralogy.andesite_relief_axe": "Andesita Alivio del hacha", - "block.mineralogy.andesite_relief_blank": "Andesita Alivio en blanco", - "block.mineralogy.andesite_relief_cross": "Andesita Alivio cruzado", - "block.mineralogy.andesite_relief_hammer": "Andesita Alivio del martillo", - "block.mineralogy.andesite_relief_hoe": "Andesita Alivio de azada", - "block.mineralogy.andesite_relief_horizontal": "Andesita Alivio horizontal", - "block.mineralogy.andesite_relief_i": "Andesita I alivio", - "block.mineralogy.andesite_relief_left": "Andesita Alivio izquierdo", - "block.mineralogy.andesite_relief_pickaxe": "Andesita Alivio de pico", - "block.mineralogy.andesite_relief_plus": "Andesita Más alivio", - "block.mineralogy.andesite_relief_right": "Andesita Alivio correcto", - "block.mineralogy.andesite_relief_sword": "Andesita Alivio de espada", - "block.mineralogy.andesite_relief_vertical": "Andesita Alivio vertical", - "block.mineralogy.basalt_relief_axe": "Basalto Alivio del hacha", - "block.mineralogy.basalt_relief_blank": "Basalto Alivio en blanco", - "block.mineralogy.basalt_relief_cross": "Basalto Alivio cruzado", - "block.mineralogy.basalt_relief_hammer": "Basalto Alivio del martillo", - "block.mineralogy.basalt_relief_hoe": "Basalto Alivio de azada", - "block.mineralogy.basalt_relief_horizontal": "Basalto Alivio horizontal", - "block.mineralogy.basalt_relief_i": "Basalto I alivio", - "block.mineralogy.basalt_relief_left": "Basalto Alivio izquierdo", - "block.mineralogy.basalt_relief_pickaxe": "Basalto Alivio de pico", - "block.mineralogy.basalt_relief_plus": "Basalto Más alivio", - "block.mineralogy.basalt_relief_right": "Basalto Alivio correcto", - "block.mineralogy.basalt_relief_sword": "Basalto Alivio de espada", - "block.mineralogy.basalt_relief_vertical": "Basalto Alivio vertical", - "block.mineralogy.diorite_relief_axe": "Diorita Alivio del hacha", - "block.mineralogy.diorite_relief_blank": "Diorita Alivio en blanco", - "block.mineralogy.diorite_relief_cross": "Diorita Alivio cruzado", - "block.mineralogy.diorite_relief_hammer": "Diorita Alivio del martillo", - "block.mineralogy.diorite_relief_hoe": "Diorita Alivio de azada", - "block.mineralogy.diorite_relief_horizontal": "Diorita Alivio horizontal", - "block.mineralogy.diorite_relief_i": "Diorita I alivio", - "block.mineralogy.diorite_relief_left": "Diorita Alivio izquierdo", - "block.mineralogy.diorite_relief_pickaxe": "Diorita Alivio de pico", - "block.mineralogy.diorite_relief_plus": "Diorita Más alivio", - "block.mineralogy.diorite_relief_right": "Diorita Alivio correcto", - "block.mineralogy.diorite_relief_sword": "Diorita Alivio de espada", - "block.mineralogy.diorite_relief_vertical": "Diorita Alivio vertical", - "block.mineralogy.granite_relief_axe": "Granito Alivio del hacha", - "block.mineralogy.granite_relief_blank": "Granito Alivio en blanco", - "block.mineralogy.granite_relief_cross": "Granito Alivio cruzado", - "block.mineralogy.granite_relief_hammer": "Granito Alivio del martillo", - "block.mineralogy.granite_relief_hoe": "Granito Alivio de azada", - "block.mineralogy.granite_relief_horizontal": "Granito Alivio horizontal", - "block.mineralogy.granite_relief_i": "Granito I alivio", - "block.mineralogy.granite_relief_left": "Granito Alivio izquierdo", - "block.mineralogy.granite_relief_pickaxe": "Granito Alivio de pico", - "block.mineralogy.granite_relief_plus": "Granito Más alivio", - "block.mineralogy.granite_relief_right": "Granito Alivio correcto", - "block.mineralogy.granite_relief_sword": "Granito Alivio de espada", - "block.mineralogy.granite_relief_vertical": "Granito Alivio vertical", - "block.mineralogy.rhyolite_relief_axe": "Riolita Alivio del hacha", - "block.mineralogy.rhyolite_relief_blank": "Riolita Alivio en blanco", - "block.mineralogy.rhyolite_relief_cross": "Riolita Alivio cruzado", - "block.mineralogy.rhyolite_relief_hammer": "Riolita Alivio del martillo", - "block.mineralogy.rhyolite_relief_hoe": "Riolita Alivio de azada", - "block.mineralogy.rhyolite_relief_horizontal": "Riolita Alivio horizontal", - "block.mineralogy.rhyolite_relief_i": "Riolita I alivio", - "block.mineralogy.rhyolite_relief_left": "Riolita Alivio izquierdo", - "block.mineralogy.rhyolite_relief_pickaxe": "Riolita Alivio de pico", - "block.mineralogy.rhyolite_relief_plus": "Riolita Más alivio", - "block.mineralogy.rhyolite_relief_right": "Riolita Alivio correcto", - "block.mineralogy.rhyolite_relief_sword": "Riolita Alivio de espada", - "block.mineralogy.rhyolite_relief_vertical": "Riolita Alivio vertical", - "block.mineralogy.pegmatite_relief_axe": "Pegmatita Alivio del hacha", - "block.mineralogy.pegmatite_relief_blank": "Pegmatita Alivio en blanco", - "block.mineralogy.pegmatite_relief_cross": "Pegmatita Alivio cruzado", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatita Alivio del martillo", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatita Alivio de azada", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatita Alivio horizontal", - "block.mineralogy.pegmatite_relief_i": "Pegmatita I alivio", - "block.mineralogy.pegmatite_relief_left": "Pegmatita Alivio izquierdo", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatita Alivio de pico", - "block.mineralogy.pegmatite_relief_plus": "Pegmatita Más alivio", - "block.mineralogy.pegmatite_relief_right": "Pegmatita Alivio correcto", - "block.mineralogy.pegmatite_relief_sword": "Pegmatita Alivio de espada", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatita Alivio vertical", - "block.mineralogy.shale_relief_axe": "Esquisto Alivio del hacha", - "block.mineralogy.shale_relief_blank": "Esquisto Alivio en blanco", - "block.mineralogy.shale_relief_cross": "Esquisto Alivio cruzado", - "block.mineralogy.shale_relief_hammer": "Esquisto Alivio del martillo", - "block.mineralogy.shale_relief_hoe": "Esquisto Alivio de azada", - "block.mineralogy.shale_relief_horizontal": "Esquisto Alivio horizontal", - "block.mineralogy.shale_relief_i": "Esquisto I alivio", - "block.mineralogy.shale_relief_left": "Esquisto Alivio izquierdo", - "block.mineralogy.shale_relief_pickaxe": "Esquisto Alivio de pico", - "block.mineralogy.shale_relief_plus": "Esquisto Más alivio", - "block.mineralogy.shale_relief_right": "Esquisto Alivio correcto", - "block.mineralogy.shale_relief_sword": "Esquisto Alivio de espada", - "block.mineralogy.shale_relief_vertical": "Esquisto Alivio vertical", - "block.mineralogy.conglomerate_relief_axe": "Conglomerado Alivio del hacha", - "block.mineralogy.conglomerate_relief_blank": "Conglomerado Alivio en blanco", - "block.mineralogy.conglomerate_relief_cross": "Conglomerado Alivio cruzado", - "block.mineralogy.conglomerate_relief_hammer": "Conglomerado Alivio del martillo", - "block.mineralogy.conglomerate_relief_hoe": "Conglomerado Alivio de azada", - "block.mineralogy.conglomerate_relief_horizontal": "Conglomerado Alivio horizontal", - "block.mineralogy.conglomerate_relief_i": "Conglomerado I alivio", - "block.mineralogy.conglomerate_relief_left": "Conglomerado Alivio izquierdo", - "block.mineralogy.conglomerate_relief_pickaxe": "Conglomerado Alivio de pico", - "block.mineralogy.conglomerate_relief_plus": "Conglomerado Más alivio", - "block.mineralogy.conglomerate_relief_right": "Conglomerado Alivio correcto", - "block.mineralogy.conglomerate_relief_sword": "Conglomerado Alivio de espada", - "block.mineralogy.conglomerate_relief_vertical": "Conglomerado Alivio vertical", - "block.mineralogy.dolomite_relief_axe": "Dolomita Alivio del hacha", - "block.mineralogy.dolomite_relief_blank": "Dolomita Alivio en blanco", - "block.mineralogy.dolomite_relief_cross": "Dolomita Alivio cruzado", - "block.mineralogy.dolomite_relief_hammer": "Dolomita Alivio del martillo", - "block.mineralogy.dolomite_relief_hoe": "Dolomita Alivio de azada", - "block.mineralogy.dolomite_relief_horizontal": "Dolomita Alivio horizontal", - "block.mineralogy.dolomite_relief_i": "Dolomita I alivio", - "block.mineralogy.dolomite_relief_left": "Dolomita Alivio izquierdo", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomita Alivio de pico", - "block.mineralogy.dolomite_relief_plus": "Dolomita Más alivio", - "block.mineralogy.dolomite_relief_right": "Dolomita Alivio correcto", - "block.mineralogy.dolomite_relief_sword": "Dolomita Alivio de espada", - "block.mineralogy.dolomite_relief_vertical": "Dolomita Alivio vertical", - "block.mineralogy.limestone_relief_axe": "Caliza Alivio del hacha", - "block.mineralogy.limestone_relief_blank": "Caliza Alivio en blanco", - "block.mineralogy.limestone_relief_cross": "Caliza Alivio cruzado", - "block.mineralogy.limestone_relief_hammer": "Caliza Alivio del martillo", - "block.mineralogy.limestone_relief_hoe": "Caliza Alivio de azada", - "block.mineralogy.limestone_relief_horizontal": "Caliza Alivio horizontal", - "block.mineralogy.limestone_relief_i": "Caliza I alivio", - "block.mineralogy.limestone_relief_left": "Caliza Alivio izquierdo", - "block.mineralogy.limestone_relief_pickaxe": "Caliza Alivio de pico", - "block.mineralogy.limestone_relief_plus": "Caliza Más alivio", - "block.mineralogy.limestone_relief_right": "Caliza Alivio correcto", - "block.mineralogy.limestone_relief_sword": "Caliza Alivio de espada", - "block.mineralogy.limestone_relief_vertical": "Caliza Alivio vertical", - "block.mineralogy.marble_relief_axe": "Mármol Alivio del hacha", - "block.mineralogy.marble_relief_blank": "Mármol Alivio en blanco", - "block.mineralogy.marble_relief_cross": "Mármol Alivio cruzado", - "block.mineralogy.marble_relief_hammer": "Mármol Alivio del martillo", - "block.mineralogy.marble_relief_hoe": "Mármol Alivio de azada", - "block.mineralogy.marble_relief_horizontal": "Mármol Alivio horizontal", - "block.mineralogy.marble_relief_i": "Mármol I alivio", - "block.mineralogy.marble_relief_left": "Mármol Alivio izquierdo", - "block.mineralogy.marble_relief_pickaxe": "Mármol Alivio de pico", - "block.mineralogy.marble_relief_plus": "Mármol Más alivio", - "block.mineralogy.marble_relief_right": "Mármol Alivio correcto", - "block.mineralogy.marble_relief_sword": "Mármol Alivio de espada", - "block.mineralogy.marble_relief_vertical": "Mármol Alivio vertical", - "block.mineralogy.slate_relief_axe": "Pizarra Alivio del hacha", - "block.mineralogy.slate_relief_blank": "Pizarra Alivio en blanco", - "block.mineralogy.slate_relief_cross": "Pizarra Alivio cruzado", - "block.mineralogy.slate_relief_hammer": "Pizarra Alivio del martillo", - "block.mineralogy.slate_relief_hoe": "Pizarra Alivio de azada", - "block.mineralogy.slate_relief_horizontal": "Pizarra Alivio horizontal", - "block.mineralogy.slate_relief_i": "Pizarra I alivio", - "block.mineralogy.slate_relief_left": "Pizarra Alivio izquierdo", - "block.mineralogy.slate_relief_pickaxe": "Pizarra Alivio de pico", - "block.mineralogy.slate_relief_plus": "Pizarra Más alivio", - "block.mineralogy.slate_relief_right": "Pizarra Alivio correcto", - "block.mineralogy.slate_relief_sword": "Pizarra Alivio de espada", - "block.mineralogy.slate_relief_vertical": "Pizarra Alivio vertical", - "block.mineralogy.schist_relief_axe": "Esquisto Alivio del hacha", - "block.mineralogy.schist_relief_blank": "Esquisto Alivio en blanco", - "block.mineralogy.schist_relief_cross": "Esquisto Alivio cruzado", - "block.mineralogy.schist_relief_hammer": "Esquisto Alivio del martillo", - "block.mineralogy.schist_relief_hoe": "Esquisto Alivio de azada", - "block.mineralogy.schist_relief_horizontal": "Esquisto Alivio horizontal", - "block.mineralogy.schist_relief_i": "Esquisto I alivio", - "block.mineralogy.schist_relief_left": "Esquisto Alivio izquierdo", - "block.mineralogy.schist_relief_pickaxe": "Esquisto Alivio de pico", - "block.mineralogy.schist_relief_plus": "Esquisto Más alivio", - "block.mineralogy.schist_relief_right": "Esquisto Alivio correcto", - "block.mineralogy.schist_relief_sword": "Esquisto Alivio de espada", - "block.mineralogy.schist_relief_vertical": "Esquisto Alivio vertical", - "block.mineralogy.gneiss_relief_axe": "Gneis Alivio del hacha", - "block.mineralogy.gneiss_relief_blank": "Gneis Alivio en blanco", - "block.mineralogy.gneiss_relief_cross": "Gneis Alivio cruzado", - "block.mineralogy.gneiss_relief_hammer": "Gneis Alivio del martillo", - "block.mineralogy.gneiss_relief_hoe": "Gneis Alivio de azada", - "block.mineralogy.gneiss_relief_horizontal": "Gneis Alivio horizontal", - "block.mineralogy.gneiss_relief_i": "Gneis I alivio", - "block.mineralogy.gneiss_relief_left": "Gneis Alivio izquierdo", - "block.mineralogy.gneiss_relief_pickaxe": "Gneis Alivio de pico", - "block.mineralogy.gneiss_relief_plus": "Gneis Más alivio", - "block.mineralogy.gneiss_relief_right": "Gneis Alivio correcto", - "block.mineralogy.gneiss_relief_sword": "Gneis Alivio de espada", - "block.mineralogy.gneiss_relief_vertical": "Gneis Alivio vertical", - "block.mineralogy.phyllite_relief_axe": "Filita Alivio del hacha", - "block.mineralogy.phyllite_relief_blank": "Filita Alivio en blanco", - "block.mineralogy.phyllite_relief_cross": "Filita Alivio cruzado", - "block.mineralogy.phyllite_relief_hammer": "Filita Alivio del martillo", - "block.mineralogy.phyllite_relief_hoe": "Filita Alivio de azada", - "block.mineralogy.phyllite_relief_horizontal": "Filita Alivio horizontal", - "block.mineralogy.phyllite_relief_i": "Filita I alivio", - "block.mineralogy.phyllite_relief_left": "Filita Alivio izquierdo", - "block.mineralogy.phyllite_relief_pickaxe": "Filita Alivio de pico", - "block.mineralogy.phyllite_relief_plus": "Filita Más alivio", - "block.mineralogy.phyllite_relief_right": "Filita Alivio correcto", - "block.mineralogy.phyllite_relief_sword": "Filita Alivio de espada", - "block.mineralogy.phyllite_relief_vertical": "Filita Alivio vertical", - "block.mineralogy.amphibolite_relief_axe": "Anfibolita Alivio del hacha", - "block.mineralogy.amphibolite_relief_blank": "Anfibolita Alivio en blanco", - "block.mineralogy.amphibolite_relief_cross": "Anfibolita Alivio cruzado", - "block.mineralogy.amphibolite_relief_hammer": "Anfibolita Alivio del martillo", - "block.mineralogy.amphibolite_relief_hoe": "Anfibolita Alivio de azada", - "block.mineralogy.amphibolite_relief_horizontal": "Anfibolita Alivio horizontal", - "block.mineralogy.amphibolite_relief_i": "Anfibolita I alivio", - "block.mineralogy.amphibolite_relief_left": "Anfibolita Alivio izquierdo", - "block.mineralogy.amphibolite_relief_pickaxe": "Anfibolita Alivio de pico", - "block.mineralogy.amphibolite_relief_plus": "Anfibolita Más alivio", - "block.mineralogy.amphibolite_relief_right": "Anfibolita Alivio correcto", - "block.mineralogy.amphibolite_relief_sword": "Anfibolita Alivio de espada", - "block.mineralogy.amphibolite_relief_vertical": "Anfibolita Alivio vertical", - "block.mineralogy.diabase_relief_axe": "Diabasa Alivio del hacha", - "block.mineralogy.diabase_relief_blank": "Diabasa Alivio en blanco", - "block.mineralogy.diabase_relief_cross": "Diabasa Alivio cruzado", - "block.mineralogy.diabase_relief_hammer": "Diabasa Alivio del martillo", - "block.mineralogy.diabase_relief_hoe": "Diabasa Alivio de azada", - "block.mineralogy.diabase_relief_horizontal": "Diabasa Alivio horizontal", - "block.mineralogy.diabase_relief_i": "Diabasa I alivio", - "block.mineralogy.diabase_relief_left": "Diabasa Alivio izquierdo", - "block.mineralogy.diabase_relief_pickaxe": "Diabasa Alivio de pico", - "block.mineralogy.diabase_relief_plus": "Diabasa Más alivio", - "block.mineralogy.diabase_relief_right": "Diabasa Alivio correcto", - "block.mineralogy.diabase_relief_sword": "Diabasa Alivio de espada", - "block.mineralogy.diabase_relief_vertical": "Diabasa Alivio vertical", - "block.mineralogy.gabbro_relief_axe": "Gabbro Alivio del hacha", - "block.mineralogy.gabbro_relief_blank": "Gabbro Alivio en blanco", - "block.mineralogy.gabbro_relief_cross": "Gabbro Alivio cruzado", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Alivio del martillo", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Alivio de azada", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Alivio horizontal", - "block.mineralogy.gabbro_relief_i": "Gabbro I alivio", - "block.mineralogy.gabbro_relief_left": "Gabbro Alivio izquierdo", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Alivio de pico", - "block.mineralogy.gabbro_relief_plus": "Gabbro Más alivio", - "block.mineralogy.gabbro_relief_right": "Gabbro Alivio correcto", - "block.mineralogy.gabbro_relief_sword": "Gabbro Alivio de espada", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Alivio vertical", - "block.mineralogy.peridotite_relief_axe": "Peridotita Alivio del hacha", - "block.mineralogy.peridotite_relief_blank": "Peridotita Alivio en blanco", - "block.mineralogy.peridotite_relief_cross": "Peridotita Alivio cruzado", - "block.mineralogy.peridotite_relief_hammer": "Peridotita Alivio del martillo", - "block.mineralogy.peridotite_relief_hoe": "Peridotita Alivio de azada", - "block.mineralogy.peridotite_relief_horizontal": "Peridotita Alivio horizontal", - "block.mineralogy.peridotite_relief_i": "Peridotita I alivio", - "block.mineralogy.peridotite_relief_left": "Peridotita Alivio izquierdo", - "block.mineralogy.peridotite_relief_pickaxe": "Peridotita Alivio de pico", - "block.mineralogy.peridotite_relief_plus": "Peridotita Más alivio", - "block.mineralogy.peridotite_relief_right": "Peridotita Alivio correcto", - "block.mineralogy.peridotite_relief_sword": "Peridotita Alivio de espada", - "block.mineralogy.peridotite_relief_vertical": "Peridotita Alivio vertical", - "block.mineralogy.basaltic_glass_relief_axe": "Vidrio basaltoico Alivio del hacha", - "block.mineralogy.basaltic_glass_relief_blank": "Vidrio basaltoico Alivio en blanco", - "block.mineralogy.basaltic_glass_relief_cross": "Vidrio basaltoico Alivio cruzado", - "block.mineralogy.basaltic_glass_relief_hammer": "Vidrio basaltoico Alivio del martillo", - "block.mineralogy.basaltic_glass_relief_hoe": "Vidrio basaltoico Alivio de azada", - "block.mineralogy.basaltic_glass_relief_horizontal": "Vidrio basaltoico Alivio horizontal", - "block.mineralogy.basaltic_glass_relief_i": "Vidrio basaltoico I alivio", - "block.mineralogy.basaltic_glass_relief_left": "Vidrio basaltoico Alivio izquierdo", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Vidrio basaltoico Alivio de pico", - "block.mineralogy.basaltic_glass_relief_plus": "Vidrio basaltoico Más alivio", - "block.mineralogy.basaltic_glass_relief_right": "Vidrio basaltoico Alivio correcto", - "block.mineralogy.basaltic_glass_relief_sword": "Vidrio basaltoico Alivio de espada", - "block.mineralogy.basaltic_glass_relief_vertical": "Vidrio basaltoico Alivio vertical", - "block.mineralogy.scoria_relief_axe": "Escoria Alivio del hacha", - "block.mineralogy.scoria_relief_blank": "Escoria Alivio en blanco", - "block.mineralogy.scoria_relief_cross": "Escoria Alivio cruzado", - "block.mineralogy.scoria_relief_hammer": "Escoria Alivio del martillo", - "block.mineralogy.scoria_relief_hoe": "Escoria Alivio de azada", - "block.mineralogy.scoria_relief_horizontal": "Escoria Alivio horizontal", - "block.mineralogy.scoria_relief_i": "Escoria I alivio", - "block.mineralogy.scoria_relief_left": "Escoria Alivio izquierdo", - "block.mineralogy.scoria_relief_pickaxe": "Escoria Alivio de pico", - "block.mineralogy.scoria_relief_plus": "Escoria Más alivio", - "block.mineralogy.scoria_relief_right": "Escoria Alivio correcto", - "block.mineralogy.scoria_relief_sword": "Escoria Alivio de espada", - "block.mineralogy.scoria_relief_vertical": "Escoria Alivio vertical", - "block.mineralogy.tuff_relief_axe": "Toba Alivio del hacha", - "block.mineralogy.tuff_relief_blank": "Toba Alivio en blanco", - "block.mineralogy.tuff_relief_cross": "Toba Alivio cruzado", - "block.mineralogy.tuff_relief_hammer": "Toba Alivio del martillo", - "block.mineralogy.tuff_relief_hoe": "Toba Alivio de azada", - "block.mineralogy.tuff_relief_horizontal": "Toba Alivio horizontal", - "block.mineralogy.tuff_relief_i": "Toba I alivio", - "block.mineralogy.tuff_relief_left": "Toba Alivio izquierdo", - "block.mineralogy.tuff_relief_pickaxe": "Toba Alivio de pico", - "block.mineralogy.tuff_relief_plus": "Toba Más alivio", - "block.mineralogy.tuff_relief_right": "Toba Alivio correcto", - "block.mineralogy.tuff_relief_sword": "Toba Alivio de espada", - "block.mineralogy.tuff_relief_vertical": "Toba Alivio vertical", - "block.mineralogy.siltstone_relief_axe": "Siltstone Alivio del hacha", - "block.mineralogy.siltstone_relief_blank": "Siltstone Alivio en blanco", - "block.mineralogy.siltstone_relief_cross": "Siltstone Alivio cruzado", - "block.mineralogy.siltstone_relief_hammer": "Siltstone Alivio del martillo", - "block.mineralogy.siltstone_relief_hoe": "Siltstone Alivio de azada", - "block.mineralogy.siltstone_relief_horizontal": "Siltstone Alivio horizontal", - "block.mineralogy.siltstone_relief_i": "Siltstone I alivio", - "block.mineralogy.siltstone_relief_left": "Siltstone Alivio izquierdo", - "block.mineralogy.siltstone_relief_pickaxe": "Siltstone Alivio de pico", - "block.mineralogy.siltstone_relief_plus": "Siltstone Más alivio", - "block.mineralogy.siltstone_relief_right": "Siltstone Alivio correcto", - "block.mineralogy.siltstone_relief_sword": "Siltstone Alivio de espada", - "block.mineralogy.siltstone_relief_vertical": "Siltstone Alivio vertical", - "block.mineralogy.rock_salt_relief_axe": "Sal de roca Alivio del hacha", - "block.mineralogy.rock_salt_relief_blank": "Sal de roca Alivio en blanco", - "block.mineralogy.rock_salt_relief_cross": "Sal de roca Alivio cruzado", - "block.mineralogy.rock_salt_relief_hammer": "Sal de roca Alivio del martillo", - "block.mineralogy.rock_salt_relief_hoe": "Sal de roca Alivio de azada", - "block.mineralogy.rock_salt_relief_horizontal": "Sal de roca Alivio horizontal", - "block.mineralogy.rock_salt_relief_i": "Sal de roca I alivio", - "block.mineralogy.rock_salt_relief_left": "Sal de roca Alivio izquierdo", - "block.mineralogy.rock_salt_relief_pickaxe": "Sal de roca Alivio de pico", - "block.mineralogy.rock_salt_relief_plus": "Sal de roca Más alivio", - "block.mineralogy.rock_salt_relief_right": "Sal de roca Alivio correcto", - "block.mineralogy.rock_salt_relief_sword": "Sal de roca Alivio de espada", - "block.mineralogy.rock_salt_relief_vertical": "Sal de roca Alivio vertical", - "block.mineralogy.hornfels_relief_axe": "Hornfels Alivio del hacha", - "block.mineralogy.hornfels_relief_blank": "Hornfels Alivio en blanco", - "block.mineralogy.hornfels_relief_cross": "Hornfels Alivio cruzado", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Alivio del martillo", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Alivio de azada", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Alivio horizontal", - "block.mineralogy.hornfels_relief_i": "Hornfels I alivio", - "block.mineralogy.hornfels_relief_left": "Hornfels Alivio izquierdo", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Alivio de pico", - "block.mineralogy.hornfels_relief_plus": "Hornfels Más alivio", - "block.mineralogy.hornfels_relief_right": "Hornfels Alivio correcto", - "block.mineralogy.hornfels_relief_sword": "Hornfels Alivio de espada", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Alivio vertical", - "block.mineralogy.quartzite_relief_axe": "Cuarcita Alivio del hacha", - "block.mineralogy.quartzite_relief_blank": "Cuarcita Alivio en blanco", - "block.mineralogy.quartzite_relief_cross": "Cuarcita Alivio cruzado", - "block.mineralogy.quartzite_relief_hammer": "Cuarcita Alivio del martillo", - "block.mineralogy.quartzite_relief_hoe": "Cuarcita Alivio de azada", - "block.mineralogy.quartzite_relief_horizontal": "Cuarcita Alivio horizontal", - "block.mineralogy.quartzite_relief_i": "Cuarcita I alivio", - "block.mineralogy.quartzite_relief_left": "Cuarcita Alivio izquierdo", - "block.mineralogy.quartzite_relief_pickaxe": "Cuarcita Alivio de pico", - "block.mineralogy.quartzite_relief_plus": "Cuarcita Más alivio", - "block.mineralogy.quartzite_relief_right": "Cuarcita Alivio correcto", - "block.mineralogy.quartzite_relief_sword": "Cuarcita Alivio de espada", - "block.mineralogy.quartzite_relief_vertical": "Cuarcita Alivio vertical", - "block.mineralogy.novaculite_relief_axe": "Novaculita Alivio del hacha", - "block.mineralogy.novaculite_relief_blank": "Novaculita Alivio en blanco", - "block.mineralogy.novaculite_relief_cross": "Novaculita Alivio cruzado", - "block.mineralogy.novaculite_relief_hammer": "Novaculita Alivio del martillo", - "block.mineralogy.novaculite_relief_hoe": "Novaculita Alivio de azada", - "block.mineralogy.novaculite_relief_horizontal": "Novaculita Alivio horizontal", - "block.mineralogy.novaculite_relief_i": "Novaculita I alivio", - "block.mineralogy.novaculite_relief_left": "Novaculita Alivio izquierdo", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculita Alivio de pico", - "block.mineralogy.novaculite_relief_plus": "Novaculita Más alivio", - "block.mineralogy.novaculite_relief_right": "Novaculita Alivio correcto", - "block.mineralogy.novaculite_relief_sword": "Novaculita Alivio de espada", - "block.mineralogy.novaculite_relief_vertical": "Novaculita Alivio vertical", - "advancements.mineralogy.all_the_rocks.title": "¡Llama a las rocas Ludo!", - "advancements.mineralogy.all_the_rocks.description": "¡Vaya, has encontrado todos los tipos de rocas estándar en Mineralogía!", - "fluid.mineralogy.crude_oil": "Petróleo Crudo", - "block.mineralogy.crude_oil": "Petróleo Crudo", - "item.mineralogy.crude_oil_bucket": "Balde de petróleo crudo", + "block.mineralogy.andesite_relief_axe": "Relieve de Andesita (hacha)", + "block.mineralogy.andesite_relief_blank": "Relieve de Andesita (sin motivo)", + "block.mineralogy.andesite_relief_cross": "Relieve de Andesita (cruz)", + "block.mineralogy.andesite_relief_hammer": "Relieve de Andesita (martillo)", + "block.mineralogy.andesite_relief_hoe": "Relieve de Andesita (azada)", + "block.mineralogy.andesite_relief_horizontal": "Relieve de Andesita (horizontal)", + "block.mineralogy.andesite_relief_i": "Relieve de Andesita (I)", + "block.mineralogy.andesite_relief_left": "Relieve de Andesita (izquierda)", + "block.mineralogy.andesite_relief_pickaxe": "Relieve de Andesita (pico)", + "block.mineralogy.andesite_relief_plus": "Relieve de Andesita (signo más)", + "block.mineralogy.andesite_relief_right": "Relieve de Andesita (derecha)", + "block.mineralogy.andesite_relief_sword": "Relieve de Andesita (espada)", + "block.mineralogy.andesite_relief_vertical": "Relieve de Andesita (vertical)", + "block.mineralogy.basalt_relief_axe": "Relieve de Basalto (hacha)", + "block.mineralogy.basalt_relief_blank": "Relieve de Basalto (sin motivo)", + "block.mineralogy.basalt_relief_cross": "Relieve de Basalto (cruz)", + "block.mineralogy.basalt_relief_hammer": "Relieve de Basalto (martillo)", + "block.mineralogy.basalt_relief_hoe": "Relieve de Basalto (azada)", + "block.mineralogy.basalt_relief_horizontal": "Relieve de Basalto (horizontal)", + "block.mineralogy.basalt_relief_i": "Relieve de Basalto (I)", + "block.mineralogy.basalt_relief_left": "Relieve de Basalto (izquierda)", + "block.mineralogy.basalt_relief_pickaxe": "Relieve de Basalto (pico)", + "block.mineralogy.basalt_relief_plus": "Relieve de Basalto (signo más)", + "block.mineralogy.basalt_relief_right": "Relieve de Basalto (derecha)", + "block.mineralogy.basalt_relief_sword": "Relieve de Basalto (espada)", + "block.mineralogy.basalt_relief_vertical": "Relieve de Basalto (vertical)", + "block.mineralogy.diorite_relief_axe": "Relieve de Diorita (hacha)", + "block.mineralogy.diorite_relief_blank": "Relieve de Diorita (sin motivo)", + "block.mineralogy.diorite_relief_cross": "Relieve de Diorita (cruz)", + "block.mineralogy.diorite_relief_hammer": "Relieve de Diorita (martillo)", + "block.mineralogy.diorite_relief_hoe": "Relieve de Diorita (azada)", + "block.mineralogy.diorite_relief_horizontal": "Relieve de Diorita (horizontal)", + "block.mineralogy.diorite_relief_i": "Relieve de Diorita (I)", + "block.mineralogy.diorite_relief_left": "Relieve de Diorita (izquierda)", + "block.mineralogy.diorite_relief_pickaxe": "Relieve de Diorita (pico)", + "block.mineralogy.diorite_relief_plus": "Relieve de Diorita (signo más)", + "block.mineralogy.diorite_relief_right": "Relieve de Diorita (derecha)", + "block.mineralogy.diorite_relief_sword": "Relieve de Diorita (espada)", + "block.mineralogy.diorite_relief_vertical": "Relieve de Diorita (vertical)", + "block.mineralogy.granite_relief_axe": "Relieve de Granito (hacha)", + "block.mineralogy.granite_relief_blank": "Relieve de Granito (sin motivo)", + "block.mineralogy.granite_relief_cross": "Relieve de Granito (cruz)", + "block.mineralogy.granite_relief_hammer": "Relieve de Granito (martillo)", + "block.mineralogy.granite_relief_hoe": "Relieve de Granito (azada)", + "block.mineralogy.granite_relief_horizontal": "Relieve de Granito (horizontal)", + "block.mineralogy.granite_relief_i": "Relieve de Granito (I)", + "block.mineralogy.granite_relief_left": "Relieve de Granito (izquierda)", + "block.mineralogy.granite_relief_pickaxe": "Relieve de Granito (pico)", + "block.mineralogy.granite_relief_plus": "Relieve de Granito (signo más)", + "block.mineralogy.granite_relief_right": "Relieve de Granito (derecha)", + "block.mineralogy.granite_relief_sword": "Relieve de Granito (espada)", + "block.mineralogy.granite_relief_vertical": "Relieve de Granito (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Relieve de Riolita (hacha)", + "block.mineralogy.rhyolite_relief_blank": "Relieve de Riolita (sin motivo)", + "block.mineralogy.rhyolite_relief_cross": "Relieve de Riolita (cruz)", + "block.mineralogy.rhyolite_relief_hammer": "Relieve de Riolita (martillo)", + "block.mineralogy.rhyolite_relief_hoe": "Relieve de Riolita (azada)", + "block.mineralogy.rhyolite_relief_horizontal": "Relieve de Riolita (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Relieve de Riolita (I)", + "block.mineralogy.rhyolite_relief_left": "Relieve de Riolita (izquierda)", + "block.mineralogy.rhyolite_relief_pickaxe": "Relieve de Riolita (pico)", + "block.mineralogy.rhyolite_relief_plus": "Relieve de Riolita (signo más)", + "block.mineralogy.rhyolite_relief_right": "Relieve de Riolita (derecha)", + "block.mineralogy.rhyolite_relief_sword": "Relieve de Riolita (espada)", + "block.mineralogy.rhyolite_relief_vertical": "Relieve de Riolita (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Relieve de Pegmatita (hacha)", + "block.mineralogy.pegmatite_relief_blank": "Relieve de Pegmatita (sin motivo)", + "block.mineralogy.pegmatite_relief_cross": "Relieve de Pegmatita (cruz)", + "block.mineralogy.pegmatite_relief_hammer": "Relieve de Pegmatita (martillo)", + "block.mineralogy.pegmatite_relief_hoe": "Relieve de Pegmatita (azada)", + "block.mineralogy.pegmatite_relief_horizontal": "Relieve de Pegmatita (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Relieve de Pegmatita (I)", + "block.mineralogy.pegmatite_relief_left": "Relieve de Pegmatita (izquierda)", + "block.mineralogy.pegmatite_relief_pickaxe": "Relieve de Pegmatita (pico)", + "block.mineralogy.pegmatite_relief_plus": "Relieve de Pegmatita (signo más)", + "block.mineralogy.pegmatite_relief_right": "Relieve de Pegmatita (derecha)", + "block.mineralogy.pegmatite_relief_sword": "Relieve de Pegmatita (espada)", + "block.mineralogy.pegmatite_relief_vertical": "Relieve de Pegmatita (vertical)", + "block.mineralogy.shale_relief_axe": "Relieve de Lutita (hacha)", + "block.mineralogy.shale_relief_blank": "Relieve de Lutita (sin motivo)", + "block.mineralogy.shale_relief_cross": "Relieve de Lutita (cruz)", + "block.mineralogy.shale_relief_hammer": "Relieve de Lutita (martillo)", + "block.mineralogy.shale_relief_hoe": "Relieve de Lutita (azada)", + "block.mineralogy.shale_relief_horizontal": "Relieve de Lutita (horizontal)", + "block.mineralogy.shale_relief_i": "Relieve de Lutita (I)", + "block.mineralogy.shale_relief_left": "Relieve de Lutita (izquierda)", + "block.mineralogy.shale_relief_pickaxe": "Relieve de Lutita (pico)", + "block.mineralogy.shale_relief_plus": "Relieve de Lutita (signo más)", + "block.mineralogy.shale_relief_right": "Relieve de Lutita (derecha)", + "block.mineralogy.shale_relief_sword": "Relieve de Lutita (espada)", + "block.mineralogy.shale_relief_vertical": "Relieve de Lutita (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Relieve de Conglomerado (hacha)", + "block.mineralogy.conglomerate_relief_blank": "Relieve de Conglomerado (sin motivo)", + "block.mineralogy.conglomerate_relief_cross": "Relieve de Conglomerado (cruz)", + "block.mineralogy.conglomerate_relief_hammer": "Relieve de Conglomerado (martillo)", + "block.mineralogy.conglomerate_relief_hoe": "Relieve de Conglomerado (azada)", + "block.mineralogy.conglomerate_relief_horizontal": "Relieve de Conglomerado (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Relieve de Conglomerado (I)", + "block.mineralogy.conglomerate_relief_left": "Relieve de Conglomerado (izquierda)", + "block.mineralogy.conglomerate_relief_pickaxe": "Relieve de Conglomerado (pico)", + "block.mineralogy.conglomerate_relief_plus": "Relieve de Conglomerado (signo más)", + "block.mineralogy.conglomerate_relief_right": "Relieve de Conglomerado (derecha)", + "block.mineralogy.conglomerate_relief_sword": "Relieve de Conglomerado (espada)", + "block.mineralogy.conglomerate_relief_vertical": "Relieve de Conglomerado (vertical)", + "block.mineralogy.dolomite_relief_axe": "Relieve de Dolomita (hacha)", + "block.mineralogy.dolomite_relief_blank": "Relieve de Dolomita (sin motivo)", + "block.mineralogy.dolomite_relief_cross": "Relieve de Dolomita (cruz)", + "block.mineralogy.dolomite_relief_hammer": "Relieve de Dolomita (martillo)", + "block.mineralogy.dolomite_relief_hoe": "Relieve de Dolomita (azada)", + "block.mineralogy.dolomite_relief_horizontal": "Relieve de Dolomita (horizontal)", + "block.mineralogy.dolomite_relief_i": "Relieve de Dolomita (I)", + "block.mineralogy.dolomite_relief_left": "Relieve de Dolomita (izquierda)", + "block.mineralogy.dolomite_relief_pickaxe": "Relieve de Dolomita (pico)", + "block.mineralogy.dolomite_relief_plus": "Relieve de Dolomita (signo más)", + "block.mineralogy.dolomite_relief_right": "Relieve de Dolomita (derecha)", + "block.mineralogy.dolomite_relief_sword": "Relieve de Dolomita (espada)", + "block.mineralogy.dolomite_relief_vertical": "Relieve de Dolomita (vertical)", + "block.mineralogy.limestone_relief_axe": "Relieve de Caliza (hacha)", + "block.mineralogy.limestone_relief_blank": "Relieve de Caliza (sin motivo)", + "block.mineralogy.limestone_relief_cross": "Relieve de Caliza (cruz)", + "block.mineralogy.limestone_relief_hammer": "Relieve de Caliza (martillo)", + "block.mineralogy.limestone_relief_hoe": "Relieve de Caliza (azada)", + "block.mineralogy.limestone_relief_horizontal": "Relieve de Caliza (horizontal)", + "block.mineralogy.limestone_relief_i": "Relieve de Caliza (I)", + "block.mineralogy.limestone_relief_left": "Relieve de Caliza (izquierda)", + "block.mineralogy.limestone_relief_pickaxe": "Relieve de Caliza (pico)", + "block.mineralogy.limestone_relief_plus": "Relieve de Caliza (signo más)", + "block.mineralogy.limestone_relief_right": "Relieve de Caliza (derecha)", + "block.mineralogy.limestone_relief_sword": "Relieve de Caliza (espada)", + "block.mineralogy.limestone_relief_vertical": "Relieve de Caliza (vertical)", + "block.mineralogy.marble_relief_axe": "Relieve de Mármol (hacha)", + "block.mineralogy.marble_relief_blank": "Relieve de Mármol (sin motivo)", + "block.mineralogy.marble_relief_cross": "Relieve de Mármol (cruz)", + "block.mineralogy.marble_relief_hammer": "Relieve de Mármol (martillo)", + "block.mineralogy.marble_relief_hoe": "Relieve de Mármol (azada)", + "block.mineralogy.marble_relief_horizontal": "Relieve de Mármol (horizontal)", + "block.mineralogy.marble_relief_i": "Relieve de Mármol (I)", + "block.mineralogy.marble_relief_left": "Relieve de Mármol (izquierda)", + "block.mineralogy.marble_relief_pickaxe": "Relieve de Mármol (pico)", + "block.mineralogy.marble_relief_plus": "Relieve de Mármol (signo más)", + "block.mineralogy.marble_relief_right": "Relieve de Mármol (derecha)", + "block.mineralogy.marble_relief_sword": "Relieve de Mármol (espada)", + "block.mineralogy.marble_relief_vertical": "Relieve de Mármol (vertical)", + "block.mineralogy.slate_relief_axe": "Relieve de Pizarra (hacha)", + "block.mineralogy.slate_relief_blank": "Relieve de Pizarra (sin motivo)", + "block.mineralogy.slate_relief_cross": "Relieve de Pizarra (cruz)", + "block.mineralogy.slate_relief_hammer": "Relieve de Pizarra (martillo)", + "block.mineralogy.slate_relief_hoe": "Relieve de Pizarra (azada)", + "block.mineralogy.slate_relief_horizontal": "Relieve de Pizarra (horizontal)", + "block.mineralogy.slate_relief_i": "Relieve de Pizarra (I)", + "block.mineralogy.slate_relief_left": "Relieve de Pizarra (izquierda)", + "block.mineralogy.slate_relief_pickaxe": "Relieve de Pizarra (pico)", + "block.mineralogy.slate_relief_plus": "Relieve de Pizarra (signo más)", + "block.mineralogy.slate_relief_right": "Relieve de Pizarra (derecha)", + "block.mineralogy.slate_relief_sword": "Relieve de Pizarra (espada)", + "block.mineralogy.slate_relief_vertical": "Relieve de Pizarra (vertical)", + "block.mineralogy.schist_relief_axe": "Relieve de Esquisto (hacha)", + "block.mineralogy.schist_relief_blank": "Relieve de Esquisto (sin motivo)", + "block.mineralogy.schist_relief_cross": "Relieve de Esquisto (cruz)", + "block.mineralogy.schist_relief_hammer": "Relieve de Esquisto (martillo)", + "block.mineralogy.schist_relief_hoe": "Relieve de Esquisto (azada)", + "block.mineralogy.schist_relief_horizontal": "Relieve de Esquisto (horizontal)", + "block.mineralogy.schist_relief_i": "Relieve de Esquisto (I)", + "block.mineralogy.schist_relief_left": "Relieve de Esquisto (izquierda)", + "block.mineralogy.schist_relief_pickaxe": "Relieve de Esquisto (pico)", + "block.mineralogy.schist_relief_plus": "Relieve de Esquisto (signo más)", + "block.mineralogy.schist_relief_right": "Relieve de Esquisto (derecha)", + "block.mineralogy.schist_relief_sword": "Relieve de Esquisto (espada)", + "block.mineralogy.schist_relief_vertical": "Relieve de Esquisto (vertical)", + "block.mineralogy.gneiss_relief_axe": "Relieve de Gneis (hacha)", + "block.mineralogy.gneiss_relief_blank": "Relieve de Gneis (sin motivo)", + "block.mineralogy.gneiss_relief_cross": "Relieve de Gneis (cruz)", + "block.mineralogy.gneiss_relief_hammer": "Relieve de Gneis (martillo)", + "block.mineralogy.gneiss_relief_hoe": "Relieve de Gneis (azada)", + "block.mineralogy.gneiss_relief_horizontal": "Relieve de Gneis (horizontal)", + "block.mineralogy.gneiss_relief_i": "Relieve de Gneis (I)", + "block.mineralogy.gneiss_relief_left": "Relieve de Gneis (izquierda)", + "block.mineralogy.gneiss_relief_pickaxe": "Relieve de Gneis (pico)", + "block.mineralogy.gneiss_relief_plus": "Relieve de Gneis (signo más)", + "block.mineralogy.gneiss_relief_right": "Relieve de Gneis (derecha)", + "block.mineralogy.gneiss_relief_sword": "Relieve de Gneis (espada)", + "block.mineralogy.gneiss_relief_vertical": "Relieve de Gneis (vertical)", + "block.mineralogy.phyllite_relief_axe": "Relieve de Filita (hacha)", + "block.mineralogy.phyllite_relief_blank": "Relieve de Filita (sin motivo)", + "block.mineralogy.phyllite_relief_cross": "Relieve de Filita (cruz)", + "block.mineralogy.phyllite_relief_hammer": "Relieve de Filita (martillo)", + "block.mineralogy.phyllite_relief_hoe": "Relieve de Filita (azada)", + "block.mineralogy.phyllite_relief_horizontal": "Relieve de Filita (horizontal)", + "block.mineralogy.phyllite_relief_i": "Relieve de Filita (I)", + "block.mineralogy.phyllite_relief_left": "Relieve de Filita (izquierda)", + "block.mineralogy.phyllite_relief_pickaxe": "Relieve de Filita (pico)", + "block.mineralogy.phyllite_relief_plus": "Relieve de Filita (signo más)", + "block.mineralogy.phyllite_relief_right": "Relieve de Filita (derecha)", + "block.mineralogy.phyllite_relief_sword": "Relieve de Filita (espada)", + "block.mineralogy.phyllite_relief_vertical": "Relieve de Filita (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Relieve de Anfibolita (hacha)", + "block.mineralogy.amphibolite_relief_blank": "Relieve de Anfibolita (sin motivo)", + "block.mineralogy.amphibolite_relief_cross": "Relieve de Anfibolita (cruz)", + "block.mineralogy.amphibolite_relief_hammer": "Relieve de Anfibolita (martillo)", + "block.mineralogy.amphibolite_relief_hoe": "Relieve de Anfibolita (azada)", + "block.mineralogy.amphibolite_relief_horizontal": "Relieve de Anfibolita (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Relieve de Anfibolita (I)", + "block.mineralogy.amphibolite_relief_left": "Relieve de Anfibolita (izquierda)", + "block.mineralogy.amphibolite_relief_pickaxe": "Relieve de Anfibolita (pico)", + "block.mineralogy.amphibolite_relief_plus": "Relieve de Anfibolita (signo más)", + "block.mineralogy.amphibolite_relief_right": "Relieve de Anfibolita (derecha)", + "block.mineralogy.amphibolite_relief_sword": "Relieve de Anfibolita (espada)", + "block.mineralogy.amphibolite_relief_vertical": "Relieve de Anfibolita (vertical)", + "block.mineralogy.diabase_relief_axe": "Relieve de Diabasa (hacha)", + "block.mineralogy.diabase_relief_blank": "Relieve de Diabasa (sin motivo)", + "block.mineralogy.diabase_relief_cross": "Relieve de Diabasa (cruz)", + "block.mineralogy.diabase_relief_hammer": "Relieve de Diabasa (martillo)", + "block.mineralogy.diabase_relief_hoe": "Relieve de Diabasa (azada)", + "block.mineralogy.diabase_relief_horizontal": "Relieve de Diabasa (horizontal)", + "block.mineralogy.diabase_relief_i": "Relieve de Diabasa (I)", + "block.mineralogy.diabase_relief_left": "Relieve de Diabasa (izquierda)", + "block.mineralogy.diabase_relief_pickaxe": "Relieve de Diabasa (pico)", + "block.mineralogy.diabase_relief_plus": "Relieve de Diabasa (signo más)", + "block.mineralogy.diabase_relief_right": "Relieve de Diabasa (derecha)", + "block.mineralogy.diabase_relief_sword": "Relieve de Diabasa (espada)", + "block.mineralogy.diabase_relief_vertical": "Relieve de Diabasa (vertical)", + "block.mineralogy.gabbro_relief_axe": "Relieve de Gabro (hacha)", + "block.mineralogy.gabbro_relief_blank": "Relieve de Gabro (sin motivo)", + "block.mineralogy.gabbro_relief_cross": "Relieve de Gabro (cruz)", + "block.mineralogy.gabbro_relief_hammer": "Relieve de Gabro (martillo)", + "block.mineralogy.gabbro_relief_hoe": "Relieve de Gabro (azada)", + "block.mineralogy.gabbro_relief_horizontal": "Relieve de Gabro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Relieve de Gabro (I)", + "block.mineralogy.gabbro_relief_left": "Relieve de Gabro (izquierda)", + "block.mineralogy.gabbro_relief_pickaxe": "Relieve de Gabro (pico)", + "block.mineralogy.gabbro_relief_plus": "Relieve de Gabro (signo más)", + "block.mineralogy.gabbro_relief_right": "Relieve de Gabro (derecha)", + "block.mineralogy.gabbro_relief_sword": "Relieve de Gabro (espada)", + "block.mineralogy.gabbro_relief_vertical": "Relieve de Gabro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Relieve de Peridotita (hacha)", + "block.mineralogy.peridotite_relief_blank": "Relieve de Peridotita (sin motivo)", + "block.mineralogy.peridotite_relief_cross": "Relieve de Peridotita (cruz)", + "block.mineralogy.peridotite_relief_hammer": "Relieve de Peridotita (martillo)", + "block.mineralogy.peridotite_relief_hoe": "Relieve de Peridotita (azada)", + "block.mineralogy.peridotite_relief_horizontal": "Relieve de Peridotita (horizontal)", + "block.mineralogy.peridotite_relief_i": "Relieve de Peridotita (I)", + "block.mineralogy.peridotite_relief_left": "Relieve de Peridotita (izquierda)", + "block.mineralogy.peridotite_relief_pickaxe": "Relieve de Peridotita (pico)", + "block.mineralogy.peridotite_relief_plus": "Relieve de Peridotita (signo más)", + "block.mineralogy.peridotite_relief_right": "Relieve de Peridotita (derecha)", + "block.mineralogy.peridotite_relief_sword": "Relieve de Peridotita (espada)", + "block.mineralogy.peridotite_relief_vertical": "Relieve de Peridotita (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Relieve de Vidrio basáltico (hacha)", + "block.mineralogy.basaltic_glass_relief_blank": "Relieve de Vidrio basáltico (sin motivo)", + "block.mineralogy.basaltic_glass_relief_cross": "Relieve de Vidrio basáltico (cruz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Relieve de Vidrio basáltico (martillo)", + "block.mineralogy.basaltic_glass_relief_hoe": "Relieve de Vidrio basáltico (azada)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Relieve de Vidrio basáltico (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Relieve de Vidrio basáltico (I)", + "block.mineralogy.basaltic_glass_relief_left": "Relieve de Vidrio basáltico (izquierda)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Relieve de Vidrio basáltico (pico)", + "block.mineralogy.basaltic_glass_relief_plus": "Relieve de Vidrio basáltico (signo más)", + "block.mineralogy.basaltic_glass_relief_right": "Relieve de Vidrio basáltico (derecha)", + "block.mineralogy.basaltic_glass_relief_sword": "Relieve de Vidrio basáltico (espada)", + "block.mineralogy.basaltic_glass_relief_vertical": "Relieve de Vidrio basáltico (vertical)", + "block.mineralogy.scoria_relief_axe": "Relieve de Escoria (hacha)", + "block.mineralogy.scoria_relief_blank": "Relieve de Escoria (sin motivo)", + "block.mineralogy.scoria_relief_cross": "Relieve de Escoria (cruz)", + "block.mineralogy.scoria_relief_hammer": "Relieve de Escoria (martillo)", + "block.mineralogy.scoria_relief_hoe": "Relieve de Escoria (azada)", + "block.mineralogy.scoria_relief_horizontal": "Relieve de Escoria (horizontal)", + "block.mineralogy.scoria_relief_i": "Relieve de Escoria (I)", + "block.mineralogy.scoria_relief_left": "Relieve de Escoria (izquierda)", + "block.mineralogy.scoria_relief_pickaxe": "Relieve de Escoria (pico)", + "block.mineralogy.scoria_relief_plus": "Relieve de Escoria (signo más)", + "block.mineralogy.scoria_relief_right": "Relieve de Escoria (derecha)", + "block.mineralogy.scoria_relief_sword": "Relieve de Escoria (espada)", + "block.mineralogy.scoria_relief_vertical": "Relieve de Escoria (vertical)", + "block.mineralogy.tuff_relief_axe": "Relieve de Toba (hacha)", + "block.mineralogy.tuff_relief_blank": "Relieve de Toba (sin motivo)", + "block.mineralogy.tuff_relief_cross": "Relieve de Toba (cruz)", + "block.mineralogy.tuff_relief_hammer": "Relieve de Toba (martillo)", + "block.mineralogy.tuff_relief_hoe": "Relieve de Toba (azada)", + "block.mineralogy.tuff_relief_horizontal": "Relieve de Toba (horizontal)", + "block.mineralogy.tuff_relief_i": "Relieve de Toba (I)", + "block.mineralogy.tuff_relief_left": "Relieve de Toba (izquierda)", + "block.mineralogy.tuff_relief_pickaxe": "Relieve de Toba (pico)", + "block.mineralogy.tuff_relief_plus": "Relieve de Toba (signo más)", + "block.mineralogy.tuff_relief_right": "Relieve de Toba (derecha)", + "block.mineralogy.tuff_relief_sword": "Relieve de Toba (espada)", + "block.mineralogy.tuff_relief_vertical": "Relieve de Toba (vertical)", + "block.mineralogy.siltstone_relief_axe": "Relieve de Limolita (hacha)", + "block.mineralogy.siltstone_relief_blank": "Relieve de Limolita (sin motivo)", + "block.mineralogy.siltstone_relief_cross": "Relieve de Limolita (cruz)", + "block.mineralogy.siltstone_relief_hammer": "Relieve de Limolita (martillo)", + "block.mineralogy.siltstone_relief_hoe": "Relieve de Limolita (azada)", + "block.mineralogy.siltstone_relief_horizontal": "Relieve de Limolita (horizontal)", + "block.mineralogy.siltstone_relief_i": "Relieve de Limolita (I)", + "block.mineralogy.siltstone_relief_left": "Relieve de Limolita (izquierda)", + "block.mineralogy.siltstone_relief_pickaxe": "Relieve de Limolita (pico)", + "block.mineralogy.siltstone_relief_plus": "Relieve de Limolita (signo más)", + "block.mineralogy.siltstone_relief_right": "Relieve de Limolita (derecha)", + "block.mineralogy.siltstone_relief_sword": "Relieve de Limolita (espada)", + "block.mineralogy.siltstone_relief_vertical": "Relieve de Limolita (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Relieve de Sal de roca (hacha)", + "block.mineralogy.rock_salt_relief_blank": "Relieve de Sal de roca (sin motivo)", + "block.mineralogy.rock_salt_relief_cross": "Relieve de Sal de roca (cruz)", + "block.mineralogy.rock_salt_relief_hammer": "Relieve de Sal de roca (martillo)", + "block.mineralogy.rock_salt_relief_hoe": "Relieve de Sal de roca (azada)", + "block.mineralogy.rock_salt_relief_horizontal": "Relieve de Sal de roca (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Relieve de Sal de roca (I)", + "block.mineralogy.rock_salt_relief_left": "Relieve de Sal de roca (izquierda)", + "block.mineralogy.rock_salt_relief_pickaxe": "Relieve de Sal de roca (pico)", + "block.mineralogy.rock_salt_relief_plus": "Relieve de Sal de roca (signo más)", + "block.mineralogy.rock_salt_relief_right": "Relieve de Sal de roca (derecha)", + "block.mineralogy.rock_salt_relief_sword": "Relieve de Sal de roca (espada)", + "block.mineralogy.rock_salt_relief_vertical": "Relieve de Sal de roca (vertical)", + "block.mineralogy.hornfels_relief_axe": "Relieve de Corneana (hacha)", + "block.mineralogy.hornfels_relief_blank": "Relieve de Corneana (sin motivo)", + "block.mineralogy.hornfels_relief_cross": "Relieve de Corneana (cruz)", + "block.mineralogy.hornfels_relief_hammer": "Relieve de Corneana (martillo)", + "block.mineralogy.hornfels_relief_hoe": "Relieve de Corneana (azada)", + "block.mineralogy.hornfels_relief_horizontal": "Relieve de Corneana (horizontal)", + "block.mineralogy.hornfels_relief_i": "Relieve de Corneana (I)", + "block.mineralogy.hornfels_relief_left": "Relieve de Corneana (izquierda)", + "block.mineralogy.hornfels_relief_pickaxe": "Relieve de Corneana (pico)", + "block.mineralogy.hornfels_relief_plus": "Relieve de Corneana (signo más)", + "block.mineralogy.hornfels_relief_right": "Relieve de Corneana (derecha)", + "block.mineralogy.hornfels_relief_sword": "Relieve de Corneana (espada)", + "block.mineralogy.hornfels_relief_vertical": "Relieve de Corneana (vertical)", + "block.mineralogy.quartzite_relief_axe": "Relieve de Cuarcita (hacha)", + "block.mineralogy.quartzite_relief_blank": "Relieve de Cuarcita (sin motivo)", + "block.mineralogy.quartzite_relief_cross": "Relieve de Cuarcita (cruz)", + "block.mineralogy.quartzite_relief_hammer": "Relieve de Cuarcita (martillo)", + "block.mineralogy.quartzite_relief_hoe": "Relieve de Cuarcita (azada)", + "block.mineralogy.quartzite_relief_horizontal": "Relieve de Cuarcita (horizontal)", + "block.mineralogy.quartzite_relief_i": "Relieve de Cuarcita (I)", + "block.mineralogy.quartzite_relief_left": "Relieve de Cuarcita (izquierda)", + "block.mineralogy.quartzite_relief_pickaxe": "Relieve de Cuarcita (pico)", + "block.mineralogy.quartzite_relief_plus": "Relieve de Cuarcita (signo más)", + "block.mineralogy.quartzite_relief_right": "Relieve de Cuarcita (derecha)", + "block.mineralogy.quartzite_relief_sword": "Relieve de Cuarcita (espada)", + "block.mineralogy.quartzite_relief_vertical": "Relieve de Cuarcita (vertical)", + "block.mineralogy.novaculite_relief_axe": "Relieve de Novaculita (hacha)", + "block.mineralogy.novaculite_relief_blank": "Relieve de Novaculita (sin motivo)", + "block.mineralogy.novaculite_relief_cross": "Relieve de Novaculita (cruz)", + "block.mineralogy.novaculite_relief_hammer": "Relieve de Novaculita (martillo)", + "block.mineralogy.novaculite_relief_hoe": "Relieve de Novaculita (azada)", + "block.mineralogy.novaculite_relief_horizontal": "Relieve de Novaculita (horizontal)", + "block.mineralogy.novaculite_relief_i": "Relieve de Novaculita (I)", + "block.mineralogy.novaculite_relief_left": "Relieve de Novaculita (izquierda)", + "block.mineralogy.novaculite_relief_pickaxe": "Relieve de Novaculita (pico)", + "block.mineralogy.novaculite_relief_plus": "Relieve de Novaculita (signo más)", + "block.mineralogy.novaculite_relief_right": "Relieve de Novaculita (derecha)", + "block.mineralogy.novaculite_relief_sword": "Relieve de Novaculita (espada)", + "block.mineralogy.novaculite_relief_vertical": "Relieve de Novaculita (vertical)", "itemGroup.mineralogy.mineralogy": "Mineralogía", - "itemGroup.mineralogy.rock": "Mineralogía de rocas", + "itemGroup.mineralogy.rock": "Rocas de Mineralogía", "itemGroup.mineralogy.stair": "Escaleras de Mineralogía", "itemGroup.mineralogy.slab": "Losas de Mineralogía", "itemGroup.mineralogy.wall": "Muros de Mineralogía", - "itemGroup.mineralogy.item": "Artículos de Mineralogía" + "itemGroup.mineralogy.item": "Objetos de Mineralogía", + "block.mineralogy.crude_oil": "Petróleo crudo", + "item.mineralogy.crude_oil_bucket": "Cubo de petróleo crudo", + "fluid.mineralogy.crude_oil": "Petróleo crudo", + "advancements.mineralogy.all_the_rocks.title": "Todas las rocas", + "advancements.mineralogy.all_the_rocks.description": "¡Has encontrado todos los tipos de roca estándar de Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/es_mx.json b/src/main/resources/assets/mineralogy/lang/es_mx.json index 21923e59d..5738497f7 100644 --- a/src/main/resources/assets/mineralogy/lang/es_mx.json +++ b/src/main/resources/assets/mineralogy/lang/es_mx.json @@ -2,939 +2,939 @@ "block.mineralogy.andesite": "Andesita", "block.mineralogy.andesite_stairs": "Escaleras de Andesita", "block.mineralogy.andesite_slab": "Losa de Andesita", - "block.mineralogy.andesite_brick": "Ladrillo de Andesita", - "block.mineralogy.andesite_brick_stairs": "Escaleras de ladrillo Andesita", - "block.mineralogy.andesite_brick_slab": "Losa de ladrillo andesita", - "block.mineralogy.andesite_smooth": "Andesita Pulida", - "block.mineralogy.andesite_smooth_stairs": "Escalera de andesita pulida", + "block.mineralogy.andesite_brick": "Ladrillos de Andesita", + "block.mineralogy.andesite_brick_stairs": "Escaleras de ladrillos de Andesita", + "block.mineralogy.andesite_brick_slab": "Losa de ladrillos de Andesita", + "block.mineralogy.andesite_smooth": "Bloque pulido de Andesita", + "block.mineralogy.andesite_smooth_stairs": "Escaleras pulidas de Andesita", "block.mineralogy.andesite_smooth_slab": "Losa pulida de Andesita", - "block.mineralogy.andesite_smooth_brick": "Ladrillo de andesita pulido", - "block.mineralogy.andesite_smooth_brick_stairs": "Escalera de ladrillo anodizado pulido", - "block.mineralogy.andesite_smooth_brick_slab": "Losa de ladrillo anodizado pulido", + "block.mineralogy.andesite_smooth_brick": "Ladrillos pulidos de Andesita", + "block.mineralogy.andesite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Andesita", + "block.mineralogy.andesite_smooth_brick_slab": "Losa de ladrillos pulidos de Andesita", "block.mineralogy.basalt": "Basalto", - "block.mineralogy.basalt_stairs": "Escaleras de basalto", - "block.mineralogy.basalt_slab": "Losa de basalto", - "block.mineralogy.basalt_brick": "Ladrillo de basalto", - "block.mineralogy.basalt_brick_stairs": "Escaleras de ladrillo de basalto", - "block.mineralogy.basalt_brick_slab": "Losa de ladrillo de basalto", - "block.mineralogy.basalt_smooth": "Basalto pulido", - "block.mineralogy.basalt_smooth_stairs": "Escaleras de basalto pulido", - "block.mineralogy.basalt_smooth_slab": "Losa de basalto pulida", - "block.mineralogy.basalt_smooth_brick": "Ladrillo de basalto pulido", - "block.mineralogy.basalt_smooth_brick_stairs": "Escaleras de ladrillo de basalto pulido", - "block.mineralogy.basalt_smooth_brick_slab": "Losa de ladrillo pulido de basalto", + "block.mineralogy.basalt_stairs": "Escaleras de Basalto", + "block.mineralogy.basalt_slab": "Losa de Basalto", + "block.mineralogy.basalt_brick": "Ladrillos de Basalto", + "block.mineralogy.basalt_brick_stairs": "Escaleras de ladrillos de Basalto", + "block.mineralogy.basalt_brick_slab": "Losa de ladrillos de Basalto", + "block.mineralogy.basalt_smooth": "Bloque pulido de Basalto", + "block.mineralogy.basalt_smooth_stairs": "Escaleras pulidas de Basalto", + "block.mineralogy.basalt_smooth_slab": "Losa pulida de Basalto", + "block.mineralogy.basalt_smooth_brick": "Ladrillos pulidos de Basalto", + "block.mineralogy.basalt_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Basalto", + "block.mineralogy.basalt_smooth_brick_slab": "Losa de ladrillos pulidos de Basalto", "block.mineralogy.diorite": "Diorita", "block.mineralogy.diorite_stairs": "Escaleras de Diorita", "block.mineralogy.diorite_slab": "Losa de Diorita", - "block.mineralogy.diorite_brick": "Ladrillo de Diorita", - "block.mineralogy.diorite_brick_stairs": "Escaleras de ladrillo de Diorita", - "block.mineralogy.diorite_brick_slab": "Losa de ladrillo de Diorita", - "block.mineralogy.diorite_smooth": "Diorita pulida", - "block.mineralogy.diorite_smooth_stairs": "Escaleras de Diorita pulida", - "block.mineralogy.diorite_smooth_slab": "Losa de Diorita pulida", - "block.mineralogy.diorite_smooth_brick": "Ladrillo de Diorita pulido", - "block.mineralogy.diorite_smooth_brick_stairs": "Escaleras de ladrillo de Diorita pulida", - "block.mineralogy.diorite_smooth_brick_slab": "Losa de ladrillo de Diorita pulida", + "block.mineralogy.diorite_brick": "Ladrillos de Diorita", + "block.mineralogy.diorite_brick_stairs": "Escaleras de ladrillos de Diorita", + "block.mineralogy.diorite_brick_slab": "Losa de ladrillos de Diorita", + "block.mineralogy.diorite_smooth": "Bloque pulido de Diorita", + "block.mineralogy.diorite_smooth_stairs": "Escaleras pulidas de Diorita", + "block.mineralogy.diorite_smooth_slab": "Losa pulida de Diorita", + "block.mineralogy.diorite_smooth_brick": "Ladrillos pulidos de Diorita", + "block.mineralogy.diorite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Diorita", + "block.mineralogy.diorite_smooth_brick_slab": "Losa de ladrillos pulidos de Diorita", "block.mineralogy.granite": "Granito", "block.mineralogy.granite_stairs": "Escaleras de Granito", "block.mineralogy.granite_slab": "Losa de Granito", - "block.mineralogy.granite_brick": "Ladrillo de Granito", - "block.mineralogy.granite_brick_stairs": "Escaleras de ladrillo de Granito", - "block.mineralogy.granite_brick_slab": "Losa de ladrillo de Granito", - "block.mineralogy.granite_smooth": "Granito pulida", - "block.mineralogy.granite_smooth_stairs": "Escaleras de Granito pulida", - "block.mineralogy.granite_smooth_slab": "Losa de Granito pulida", - "block.mineralogy.granite_smooth_brick": "Ladrillo de Granito pulido", - "block.mineralogy.granite_smooth_brick_stairs": "Escaleras de ladrillo de Granito pulida", - "block.mineralogy.granite_smooth_brick_slab": "Losa de ladrillo de Granito pulida", + "block.mineralogy.granite_brick": "Ladrillos de Granito", + "block.mineralogy.granite_brick_stairs": "Escaleras de ladrillos de Granito", + "block.mineralogy.granite_brick_slab": "Losa de ladrillos de Granito", + "block.mineralogy.granite_smooth": "Bloque pulido de Granito", + "block.mineralogy.granite_smooth_stairs": "Escaleras pulidas de Granito", + "block.mineralogy.granite_smooth_slab": "Losa pulida de Granito", + "block.mineralogy.granite_smooth_brick": "Ladrillos pulidos de Granito", + "block.mineralogy.granite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Granito", + "block.mineralogy.granite_smooth_brick_slab": "Losa de ladrillos pulidos de Granito", "block.mineralogy.rhyolite": "Riolita", "block.mineralogy.rhyolite_stairs": "Escaleras de Riolita", "block.mineralogy.rhyolite_slab": "Losa de Riolita", - "block.mineralogy.rhyolite_brick": "Ladrillo de Riolita", - "block.mineralogy.rhyolite_brick_stairs": "Escaleras de ladrillo de Riolita", - "block.mineralogy.rhyolite_brick_slab": "Losa de ladrillo de Riolita", - "block.mineralogy.rhyolite_smooth": "Riolita pulida", - "block.mineralogy.rhyolite_smooth_stairs": "Escaleras de Riolita pulida", - "block.mineralogy.rhyolite_smooth_slab": "Losa de Riolita pulida", - "block.mineralogy.rhyolite_smooth_brick": "Ladrillo de Riolita pulido", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaleras de ladrillo de Riolita pulida", - "block.mineralogy.rhyolite_smooth_brick_slab": "Losa de ladrillo de Riolita pulida", + "block.mineralogy.rhyolite_brick": "Ladrillos de Riolita", + "block.mineralogy.rhyolite_brick_stairs": "Escaleras de ladrillos de Riolita", + "block.mineralogy.rhyolite_brick_slab": "Losa de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth": "Bloque pulido de Riolita", + "block.mineralogy.rhyolite_smooth_stairs": "Escaleras pulidas de Riolita", + "block.mineralogy.rhyolite_smooth_slab": "Losa pulida de Riolita", + "block.mineralogy.rhyolite_smooth_brick": "Ladrillos pulidos de Riolita", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Riolita", + "block.mineralogy.rhyolite_smooth_brick_slab": "Losa de ladrillos pulidos de Riolita", "block.mineralogy.pegmatite": "Pegmatita", "block.mineralogy.pegmatite_stairs": "Escaleras de Pegmatita", "block.mineralogy.pegmatite_slab": "Losa de Pegmatita", - "block.mineralogy.pegmatite_brick": "Ladrillo de Pegmatita", - "block.mineralogy.pegmatite_brick_stairs": "Escaleras de ladrillo de Pegmatita", - "block.mineralogy.pegmatite_brick_slab": "Losa de ladrillo de Pegmatita", - "block.mineralogy.pegmatite_smooth": "Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_stairs": "Escaleras de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_slab": "Losa de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_brick": "Ladrillo de Pegmatita pulido", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaleras de ladrillo de Pegmatita pulida", - "block.mineralogy.pegmatite_smooth_brick_slab": "Losa de ladrillo de Pegmatita pulida", - "block.mineralogy.shale": "Esquisto", - "block.mineralogy.shale_stairs": "Escaleras de Esquisto", - "block.mineralogy.shale_slab": "Losa de Esquisto", - "block.mineralogy.shale_brick": "Ladrillo de Esquisto", - "block.mineralogy.shale_brick_stairs": "Escaleras de ladrillo de Esquisto", - "block.mineralogy.shale_brick_slab": "Losa de ladrillo de Esquisto", - "block.mineralogy.shale_smooth": "Esquisto pulida", - "block.mineralogy.shale_smooth_stairs": "Escaleras de Esquisto pulida", - "block.mineralogy.shale_smooth_slab": "Losa de Esquisto pulida", - "block.mineralogy.shale_smooth_brick": "Ladrillo de Esquisto pulido", - "block.mineralogy.shale_smooth_brick_stairs": "Escaleras de ladrillo de Esquisto pulida", - "block.mineralogy.shale_smooth_brick_slab": "Losa de ladrillo de Esquisto pulida", + "block.mineralogy.pegmatite_brick": "Ladrillos de Pegmatita", + "block.mineralogy.pegmatite_brick_stairs": "Escaleras de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_brick_slab": "Losa de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth": "Bloque pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_stairs": "Escaleras pulidas de Pegmatita", + "block.mineralogy.pegmatite_smooth_slab": "Losa pulida de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick": "Ladrillos pulidos de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_slab": "Losa de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale": "Lutita", + "block.mineralogy.shale_stairs": "Escaleras de Lutita", + "block.mineralogy.shale_slab": "Losa de Lutita", + "block.mineralogy.shale_brick": "Ladrillos de Lutita", + "block.mineralogy.shale_brick_stairs": "Escaleras de ladrillos de Lutita", + "block.mineralogy.shale_brick_slab": "Losa de ladrillos de Lutita", + "block.mineralogy.shale_smooth": "Bloque pulido de Lutita", + "block.mineralogy.shale_smooth_stairs": "Escaleras pulidas de Lutita", + "block.mineralogy.shale_smooth_slab": "Losa pulida de Lutita", + "block.mineralogy.shale_smooth_brick": "Ladrillos pulidos de Lutita", + "block.mineralogy.shale_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Lutita", + "block.mineralogy.shale_smooth_brick_slab": "Losa de ladrillos pulidos de Lutita", "block.mineralogy.conglomerate": "Conglomerado", "block.mineralogy.conglomerate_stairs": "Escaleras de Conglomerado", "block.mineralogy.conglomerate_slab": "Losa de Conglomerado", - "block.mineralogy.conglomerate_brick": "Ladrillo de Conglomerado", - "block.mineralogy.conglomerate_brick_stairs": "Escaleras de ladrillo de Conglomerado", - "block.mineralogy.conglomerate_brick_slab": "Losa de ladrillo de Conglomerado", - "block.mineralogy.conglomerate_smooth": "Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_stairs": "Escaleras de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_slab": "Losa de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_brick": "Ladrillo de Conglomerado pulido", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Escaleras de ladrillo de Conglomerado pulida", - "block.mineralogy.conglomerate_smooth_brick_slab": "Losa de ladrillo de Conglomerado pulida", + "block.mineralogy.conglomerate_brick": "Ladrillos de Conglomerado", + "block.mineralogy.conglomerate_brick_stairs": "Escaleras de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_brick_slab": "Losa de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth": "Bloque pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_stairs": "Escaleras pulidas de Conglomerado", + "block.mineralogy.conglomerate_smooth_slab": "Losa pulida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick": "Ladrillos pulidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_slab": "Losa de ladrillos pulidos de Conglomerado", "block.mineralogy.dolomite": "Dolomita", "block.mineralogy.dolomite_stairs": "Escaleras de Dolomita", "block.mineralogy.dolomite_slab": "Losa de Dolomita", - "block.mineralogy.dolomite_brick": "Ladrillo de Dolomita", - "block.mineralogy.dolomite_brick_stairs": "Escaleras de ladrillo de Dolomita", - "block.mineralogy.dolomite_brick_slab": "Losa de ladrillo de Dolomita", - "block.mineralogy.dolomite_smooth": "Dolomita pulida", - "block.mineralogy.dolomite_smooth_stairs": "Escaleras de Dolomita pulida", - "block.mineralogy.dolomite_smooth_slab": "Losa de Dolomita pulida", - "block.mineralogy.dolomite_smooth_brick": "Ladrillo de Dolomita pulido", - "block.mineralogy.dolomite_smooth_brick_stairs": "Escaleras de ladrillo de Dolomita pulida", - "block.mineralogy.dolomite_smooth_brick_slab": "Losa de ladrillo de Dolomita pulida", + "block.mineralogy.dolomite_brick": "Ladrillos de Dolomita", + "block.mineralogy.dolomite_brick_stairs": "Escaleras de ladrillos de Dolomita", + "block.mineralogy.dolomite_brick_slab": "Losa de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth": "Bloque pulido de Dolomita", + "block.mineralogy.dolomite_smooth_stairs": "Escaleras pulidas de Dolomita", + "block.mineralogy.dolomite_smooth_slab": "Losa pulida de Dolomita", + "block.mineralogy.dolomite_smooth_brick": "Ladrillos pulidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_slab": "Losa de ladrillos pulidos de Dolomita", "block.mineralogy.limestone": "Caliza", "block.mineralogy.limestone_stairs": "Escaleras de Caliza", "block.mineralogy.limestone_slab": "Losa de Caliza", - "block.mineralogy.limestone_brick": "Ladrillo de Caliza", - "block.mineralogy.limestone_brick_stairs": "Escaleras de ladrillo de Caliza", - "block.mineralogy.limestone_brick_slab": "Losa de ladrillo de Caliza", - "block.mineralogy.limestone_smooth": "Caliza pulida", - "block.mineralogy.limestone_smooth_stairs": "Escaleras de Caliza pulida", - "block.mineralogy.limestone_smooth_slab": "Losa de Caliza pulida", - "block.mineralogy.limestone_smooth_brick": "Ladrillo de Caliza pulido", - "block.mineralogy.limestone_smooth_brick_stairs": "Escaleras de ladrillo de Caliza pulida", - "block.mineralogy.limestone_smooth_brick_slab": "Losa de ladrillo de Caliza pulida", + "block.mineralogy.limestone_brick": "Ladrillos de Caliza", + "block.mineralogy.limestone_brick_stairs": "Escaleras de ladrillos de Caliza", + "block.mineralogy.limestone_brick_slab": "Losa de ladrillos de Caliza", + "block.mineralogy.limestone_smooth": "Bloque pulido de Caliza", + "block.mineralogy.limestone_smooth_stairs": "Escaleras pulidas de Caliza", + "block.mineralogy.limestone_smooth_slab": "Losa pulida de Caliza", + "block.mineralogy.limestone_smooth_brick": "Ladrillos pulidos de Caliza", + "block.mineralogy.limestone_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Caliza", + "block.mineralogy.limestone_smooth_brick_slab": "Losa de ladrillos pulidos de Caliza", "block.mineralogy.slate": "Pizarra", "block.mineralogy.slate_stairs": "Escaleras de Pizarra", "block.mineralogy.slate_slab": "Losa de Pizarra", - "block.mineralogy.slate_brick": "Ladrillo de Pizarra", - "block.mineralogy.slate_brick_stairs": "Escaleras de ladrillo de Pizarra", - "block.mineralogy.slate_brick_slab": "Losa de ladrillo de Pizarra", - "block.mineralogy.slate_smooth": "Pizarra pulida", - "block.mineralogy.slate_smooth_stairs": "Escaleras de Pizarra pulida", - "block.mineralogy.slate_smooth_slab": "Losa de Pizarra pulida", - "block.mineralogy.slate_smooth_brick": "Ladrillo de Pizarra pulido", - "block.mineralogy.slate_smooth_brick_stairs": "Escaleras de ladrillo de Pizarra pulida", - "block.mineralogy.slate_smooth_brick_slab": "Losa de ladrillo de Pizarra pulida", + "block.mineralogy.slate_brick": "Ladrillos de Pizarra", + "block.mineralogy.slate_brick_stairs": "Escaleras de ladrillos de Pizarra", + "block.mineralogy.slate_brick_slab": "Losa de ladrillos de Pizarra", + "block.mineralogy.slate_smooth": "Bloque pulido de Pizarra", + "block.mineralogy.slate_smooth_stairs": "Escaleras pulidas de Pizarra", + "block.mineralogy.slate_smooth_slab": "Losa pulida de Pizarra", + "block.mineralogy.slate_smooth_brick": "Ladrillos pulidos de Pizarra", + "block.mineralogy.slate_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Pizarra", + "block.mineralogy.slate_smooth_brick_slab": "Losa de ladrillos pulidos de Pizarra", "block.mineralogy.schist": "Esquisto", "block.mineralogy.schist_stairs": "Escaleras de Esquisto", "block.mineralogy.schist_slab": "Losa de Esquisto", - "block.mineralogy.schist_brick": "Ladrillo de Esquisto", - "block.mineralogy.schist_brick_stairs": "Escaleras de ladrillo de Esquisto", - "block.mineralogy.schist_brick_slab": "Losa de ladrillo de Esquisto", - "block.mineralogy.schist_smooth": "Esquisto pulida", - "block.mineralogy.schist_smooth_stairs": "Escaleras de Esquisto pulida", - "block.mineralogy.schist_smooth_slab": "Losa de Esquisto pulida", - "block.mineralogy.schist_smooth_brick": "Ladrillo de Esquisto pulido", - "block.mineralogy.schist_smooth_brick_stairs": "Escaleras de ladrillo de Esquisto pulida", - "block.mineralogy.schist_smooth_brick_slab": "Losa de ladrillo de Esquisto pulida", + "block.mineralogy.schist_brick": "Ladrillos de Esquisto", + "block.mineralogy.schist_brick_stairs": "Escaleras de ladrillos de Esquisto", + "block.mineralogy.schist_brick_slab": "Losa de ladrillos de Esquisto", + "block.mineralogy.schist_smooth": "Bloque pulido de Esquisto", + "block.mineralogy.schist_smooth_stairs": "Escaleras pulidas de Esquisto", + "block.mineralogy.schist_smooth_slab": "Losa pulida de Esquisto", + "block.mineralogy.schist_smooth_brick": "Ladrillos pulidos de Esquisto", + "block.mineralogy.schist_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Esquisto", + "block.mineralogy.schist_smooth_brick_slab": "Losa de ladrillos pulidos de Esquisto", "block.mineralogy.gneiss": "Gneis", "block.mineralogy.gneiss_stairs": "Escaleras de Gneis", "block.mineralogy.gneiss_slab": "Losa de Gneis", - "block.mineralogy.gneiss_brick": "Ladrillo de Gneis", - "block.mineralogy.gneiss_brick_stairs": "Escaleras de ladrillo de Gneis", - "block.mineralogy.gneiss_brick_slab": "Losa de ladrillo de Gneis", - "block.mineralogy.gneiss_smooth": "Gneis pulida", - "block.mineralogy.gneiss_smooth_stairs": "Escaleras de Gneis pulida", - "block.mineralogy.gneiss_smooth_slab": "Losa de Gneis pulida", - "block.mineralogy.gneiss_smooth_brick": "Ladrillo de Gneis pulido", - "block.mineralogy.gneiss_smooth_brick_stairs": "Escaleras de ladrillo de Gneis pulida", - "block.mineralogy.gneiss_smooth_brick_slab": "Losa de ladrillo de Gneis pulida", + "block.mineralogy.gneiss_brick": "Ladrillos de Gneis", + "block.mineralogy.gneiss_brick_stairs": "Escaleras de ladrillos de Gneis", + "block.mineralogy.gneiss_brick_slab": "Losa de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth": "Bloque pulido de Gneis", + "block.mineralogy.gneiss_smooth_stairs": "Escaleras pulidas de Gneis", + "block.mineralogy.gneiss_smooth_slab": "Losa pulida de Gneis", + "block.mineralogy.gneiss_smooth_brick": "Ladrillos pulidos de Gneis", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Gneis", + "block.mineralogy.gneiss_smooth_brick_slab": "Losa de ladrillos pulidos de Gneis", "block.mineralogy.marble": "Mármol", "block.mineralogy.marble_stairs": "Escaleras de Mármol", "block.mineralogy.marble_slab": "Losa de Mármol", - "block.mineralogy.marble_brick": "Ladrillo de Mármol", - "block.mineralogy.marble_brick_stairs": "Escaleras de ladrillo de Mármol", - "block.mineralogy.marble_brick_slab": "Losa de ladrillo de Mármol", - "block.mineralogy.marble_smooth": "Mármol pulida", - "block.mineralogy.marble_smooth_stairs": "Escaleras de Mármol pulida", - "block.mineralogy.marble_smooth_slab": "Losa de Mármol pulida", - "block.mineralogy.marble_smooth_brick": "Ladrillo de Mármol pulido", - "block.mineralogy.marble_smooth_brick_stairs": "Escaleras de ladrillo de Mármol pulida", - "block.mineralogy.marble_smooth_brick_slab": "Losa de ladrillo de Mármol pulida", - "block.mineralogy.phyllite": "Phyllite", - "block.mineralogy.phyllite_stairs": "Escaleras de Phyllite", - "block.mineralogy.phyllite_slab": "Losa de Phyllite", - "block.mineralogy.phyllite_brick": "Ladrillo de Phyllite", - "block.mineralogy.phyllite_brick_stairs": "Escaleras de ladrillo de Phyllite", - "block.mineralogy.phyllite_brick_slab": "Losa de ladrillo de Phyllite", - "block.mineralogy.phyllite_smooth": "Phyllite pulida", - "block.mineralogy.phyllite_smooth_stairs": "Escaleras de Phyllite pulida", - "block.mineralogy.phyllite_smooth_slab": "Losa de Phyllite pulida", - "block.mineralogy.phyllite_smooth_brick": "Ladrillo de Phyllite pulido", - "block.mineralogy.phyllite_smooth_brick_stairs": "Escaleras de ladrillo de Phyllite pulida", - "block.mineralogy.phyllite_smooth_brick_slab": "Losa de ladrillo de Phyllite pulida", - "block.mineralogy.amphibolite": "Amphibolita", - "block.mineralogy.amphibolite_stairs": "Escaleras de Amphibolita", - "block.mineralogy.amphibolite_slab": "Losa de Amphibolita", - "block.mineralogy.amphibolite_brick": "Ladrillo de Amphibolita", - "block.mineralogy.amphibolite_brick_stairs": "Escaleras de ladrillo de Amphibolita", - "block.mineralogy.amphibolite_brick_slab": "Losa de ladrillo de Amphibolita", - "block.mineralogy.amphibolite_smooth": "Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_stairs": "Escaleras de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_slab": "Losa de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_brick": "Ladrillo de Amphibolita pulido", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaleras de ladrillo de Amphibolita pulida", - "block.mineralogy.amphibolite_smooth_brick_slab": "Losa de ladrillo de Amphibolita pulida", + "block.mineralogy.marble_brick": "Ladrillos de Mármol", + "block.mineralogy.marble_brick_stairs": "Escaleras de ladrillos de Mármol", + "block.mineralogy.marble_brick_slab": "Losa de ladrillos de Mármol", + "block.mineralogy.marble_smooth": "Bloque pulido de Mármol", + "block.mineralogy.marble_smooth_stairs": "Escaleras pulidas de Mármol", + "block.mineralogy.marble_smooth_slab": "Losa pulida de Mármol", + "block.mineralogy.marble_smooth_brick": "Ladrillos pulidos de Mármol", + "block.mineralogy.marble_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Mármol", + "block.mineralogy.marble_smooth_brick_slab": "Losa de ladrillos pulidos de Mármol", + "block.mineralogy.phyllite": "Filita", + "block.mineralogy.phyllite_stairs": "Escaleras de Filita", + "block.mineralogy.phyllite_slab": "Losa de Filita", + "block.mineralogy.phyllite_brick": "Ladrillos de Filita", + "block.mineralogy.phyllite_brick_stairs": "Escaleras de ladrillos de Filita", + "block.mineralogy.phyllite_brick_slab": "Losa de ladrillos de Filita", + "block.mineralogy.phyllite_smooth": "Bloque pulido de Filita", + "block.mineralogy.phyllite_smooth_stairs": "Escaleras pulidas de Filita", + "block.mineralogy.phyllite_smooth_slab": "Losa pulida de Filita", + "block.mineralogy.phyllite_smooth_brick": "Ladrillos pulidos de Filita", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Filita", + "block.mineralogy.phyllite_smooth_brick_slab": "Losa de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite": "Anfibolita", + "block.mineralogy.amphibolite_stairs": "Escaleras de Anfibolita", + "block.mineralogy.amphibolite_slab": "Losa de Anfibolita", + "block.mineralogy.amphibolite_brick": "Ladrillos de Anfibolita", + "block.mineralogy.amphibolite_brick_stairs": "Escaleras de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_brick_slab": "Losa de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth": "Bloque pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_stairs": "Escaleras pulidas de Anfibolita", + "block.mineralogy.amphibolite_smooth_slab": "Losa pulida de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick": "Ladrillos pulidos de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_slab": "Losa de ladrillos pulidos de Anfibolita", "item.mineralogy.gypsum_dust": "Polvo de yeso", "item.mineralogy.sulfur_dust": "Polvo de azufre", "item.mineralogy.phosphorous_dust": "Polvo de fósforo", "item.mineralogy.nitrate_dust": "Polvo de nitrato", "item.mineralogy.mineral_fertilizer": "Fertilizante mineral", - "block.mineralogy.chert": "Esquisto", + "block.mineralogy.chert": "Sílex", "block.mineralogy.gypsum": "Yeso", - "block.mineralogy.pumice": "Piedra Pómez", + "block.mineralogy.pumice": "Piedra pómez", "block.mineralogy.sulfur_block": "Azufre", - "block.mineralogy.sulfur_ore": "Mineral de azufre", + "block.mineralogy.sulfur_ore": "Mena de azufre", "block.mineralogy.phosphorous_block": "Fósforo", - "block.mineralogy.phosphorous_ore": "Mineral de fósforo", + "block.mineralogy.phosphorous_ore": "Mena de fósforo", "block.mineralogy.nitrate_block": "Nitrato", - "block.mineralogy.nitrate_ore": "Mineral de nitrato", - "block.mineralogy.drywall_black": "Negro panel de yeso", - "block.mineralogy.drywall_red": "Rojo panel de yeso", - "block.mineralogy.drywall_green": "Verde panel de yeso", - "block.mineralogy.drywall_brown": "Marrón panel de yeso", - "block.mineralogy.drywall_blue": "Azul panel de yeso", - "block.mineralogy.drywall_purple": "Púrpura panel de yeso", - "block.mineralogy.drywall_cyan": "Cyan panel de yeso", - "block.mineralogy.drywall_silver": "Plata panel de yeso", - "block.mineralogy.drywall_gray": "Gris panel de yeso", - "block.mineralogy.drywall_pink": "Rosado panel de yeso", - "block.mineralogy.drywall_lime": "Lima panel de yeso", - "block.mineralogy.drywall_yellow": "Amarillo panel de yeso", - "block.mineralogy.drywall_light_blue": "Azul claro panel de yeso", - "block.mineralogy.drywall_magenta": "Magenta panel de yeso", - "block.mineralogy.drywall_orange": "Naranja panel de yeso", - "block.mineralogy.drywall_white": "Blanco panel de yeso", - "block.mineralogy.andesite_wall": "Pared de andesita", - "block.mineralogy.andesite_brick_wall": "Pared de ladrillo de andesita", - "block.mineralogy.andesite_smooth_wall": "Pared Pulida de Andesita", - "block.mineralogy.andesite_smooth_brick_wall": "Pared de ladrillo pulido Andesite", - "block.mineralogy.basalt_wall": "Pared de basalto", - "block.mineralogy.basalt_brick_wall": "Pared de ladrillo de basalto", - "block.mineralogy.basalt_smooth_wall": "Muro pulido de basalto", - "block.mineralogy.basalt_smooth_brick_wall": "Pared de ladrillo pulido de basalto", - "block.mineralogy.diorite_wall": "Pared de Diorita", - "block.mineralogy.diorite_brick_wall": "Pared de ladrillo de diorita", - "block.mineralogy.diorite_smooth_wall": "Diorite pulido de pared", - "block.mineralogy.diorite_smooth_brick_wall": "Pared de ladrillo pulido de diorita", - "block.mineralogy.granite_wall": "Pared de granito", - "block.mineralogy.granite_brick_wall": "Pared de ladrillo de granito", - "block.mineralogy.granite_smooth_wall": "Muro pulido de granito", - "block.mineralogy.granite_smooth_brick_wall": "Pared de ladrillo pulido de granito", - "block.mineralogy.rhyolite_wall": "Pared de riolita", - "block.mineralogy.rhyolite_brick_wall": "Pared de ladrillos de riolita", - "block.mineralogy.rhyolite_smooth_wall": "Pared pulida de riolita", - "block.mineralogy.rhyolite_smooth_brick_wall": "Pared de ladrillo pulido de riolita", - "block.mineralogy.pegmatite_wall": "Pared de Pegmatita", - "block.mineralogy.pegmatite_brick_wall": "Pared de ladrillo de pegmatita", - "block.mineralogy.pegmatite_smooth_wall": "Pared pulida de pegmatita", - "block.mineralogy.pegmatite_smooth_brick_wall": "Pared de ladrillo pulido de pegmatita", - "block.mineralogy.shale_wall": "Muro de pizarra", - "block.mineralogy.shale_brick_wall": "Pared de ladrillo de pizarra", - "block.mineralogy.shale_smooth_wall": "Pared pulida de pizarra", - "block.mineralogy.shale_smooth_brick_wall": "Pizarra, pulido, pared de ladrillo", - "block.mineralogy.conglomerate_wall": "Pared de conglomerado", - "block.mineralogy.conglomerate_brick_wall": "Pared de ladrillo conglomerado", - "block.mineralogy.conglomerate_smooth_wall": "Pared pulida de conglomerado", - "block.mineralogy.conglomerate_smooth_brick_wall": "Conglomerado, pulido, pared de ladrillo", + "block.mineralogy.nitrate_ore": "Mena de nitrato", + "block.mineralogy.drywall_black": "Panel de yeso negro", + "block.mineralogy.drywall_red": "Panel de yeso rojo", + "block.mineralogy.drywall_green": "Panel de yeso verde", + "block.mineralogy.drywall_brown": "Panel de yeso marrón", + "block.mineralogy.drywall_blue": "Panel de yeso azul", + "block.mineralogy.drywall_purple": "Panel de yeso morado", + "block.mineralogy.drywall_cyan": "Panel de yeso cian", + "block.mineralogy.drywall_silver": "Panel de yeso gris claro", + "block.mineralogy.drywall_gray": "Panel de yeso gris", + "block.mineralogy.drywall_pink": "Panel de yeso rosa", + "block.mineralogy.drywall_lime": "Panel de yeso verde lima", + "block.mineralogy.drywall_yellow": "Panel de yeso amarillo", + "block.mineralogy.drywall_light_blue": "Panel de yeso azul claro", + "block.mineralogy.drywall_magenta": "Panel de yeso magenta", + "block.mineralogy.drywall_orange": "Panel de yeso naranja", + "block.mineralogy.drywall_white": "Panel de yeso blanco", + "block.mineralogy.andesite_wall": "Muro de Andesita", + "block.mineralogy.andesite_brick_wall": "Muro de ladrillos de Andesita", + "block.mineralogy.andesite_smooth_wall": "Muro pulido de Andesita", + "block.mineralogy.andesite_smooth_brick_wall": "Muro de ladrillos pulidos de Andesita", + "block.mineralogy.basalt_wall": "Muro de Basalto", + "block.mineralogy.basalt_brick_wall": "Muro de ladrillos de Basalto", + "block.mineralogy.basalt_smooth_wall": "Muro pulido de Basalto", + "block.mineralogy.basalt_smooth_brick_wall": "Muro de ladrillos pulidos de Basalto", + "block.mineralogy.diorite_wall": "Muro de Diorita", + "block.mineralogy.diorite_brick_wall": "Muro de ladrillos de Diorita", + "block.mineralogy.diorite_smooth_wall": "Muro pulido de Diorita", + "block.mineralogy.diorite_smooth_brick_wall": "Muro de ladrillos pulidos de Diorita", + "block.mineralogy.granite_wall": "Muro de Granito", + "block.mineralogy.granite_brick_wall": "Muro de ladrillos de Granito", + "block.mineralogy.granite_smooth_wall": "Muro pulido de Granito", + "block.mineralogy.granite_smooth_brick_wall": "Muro de ladrillos pulidos de Granito", + "block.mineralogy.rhyolite_wall": "Muro de Riolita", + "block.mineralogy.rhyolite_brick_wall": "Muro de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth_wall": "Muro pulido de Riolita", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muro de ladrillos pulidos de Riolita", + "block.mineralogy.pegmatite_wall": "Muro de Pegmatita", + "block.mineralogy.pegmatite_brick_wall": "Muro de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth_wall": "Muro pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muro de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale_wall": "Muro de Lutita", + "block.mineralogy.shale_brick_wall": "Muro de ladrillos de Lutita", + "block.mineralogy.shale_smooth_wall": "Muro pulido de Lutita", + "block.mineralogy.shale_smooth_brick_wall": "Muro de ladrillos pulidos de Lutita", + "block.mineralogy.conglomerate_wall": "Muro de Conglomerado", + "block.mineralogy.conglomerate_brick_wall": "Muro de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth_wall": "Muro pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muro de ladrillos pulidos de Conglomerado", "block.mineralogy.dolomite_wall": "Muro de Dolomita", - "block.mineralogy.dolomite_brick_wall": "Pared de ladrillos de dolomita", - "block.mineralogy.dolomite_smooth_wall": "Pared pulida de dolomita", - "block.mineralogy.dolomite_smooth_brick_wall": "Pared de ladrillo pulido de dolomita", - "block.mineralogy.limestone_wall": "Muro de piedra caliza", - "block.mineralogy.limestone_brick_wall": "Pared de ladrillo de piedra caliza", - "block.mineralogy.limestone_smooth_wall": "Muro pulido de piedra caliza", - "block.mineralogy.limestone_smooth_brick_wall": "Pared de ladrillo pulido de piedra caliza", - "block.mineralogy.marble_wall": "Muro de mármol", - "block.mineralogy.marble_brick_wall": "Pared de ladrillo de mármol", - "block.mineralogy.marble_smooth_wall": "Mármol pulido de la pared", - "block.mineralogy.marble_smooth_brick_wall": "Mármol pulido de la pared de ladrillo", - "block.mineralogy.slate_wall": "Pared de pizarra", - "block.mineralogy.slate_brick_wall": "Pared de ladrillo de pizarra", - "block.mineralogy.slate_smooth_wall": "Pared pulida pizarra", - "block.mineralogy.slate_smooth_brick_wall": "Pared de ladrillo pulido pizarra", - "block.mineralogy.schist_wall": "Muro de esquisto", - "block.mineralogy.schist_brick_wall": "Pared de ladrillo esquist", - "block.mineralogy.schist_smooth_wall": "Esquisto de pared pulida", - "block.mineralogy.schist_smooth_brick_wall": "Pared de ladrillo pulido de esquisto", - "block.mineralogy.gneiss_wall": "Muro de gneis", - "block.mineralogy.gneiss_brick_wall": "Pared de ladrillo gneis", - "block.mineralogy.gneiss_smooth_wall": "Gneis pulido de la pared", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneis pulido de la pared de ladrillo", - "block.mineralogy.phyllite_wall": "Pared de Phyllite", - "block.mineralogy.phyllite_brick_wall": "Pared de ladrillo Phyllite", - "block.mineralogy.phyllite_smooth_wall": "Phyllite pulido de pared", - "block.mineralogy.phyllite_smooth_brick_wall": "Pared de ladrillo pulido de Phyllite", - "block.mineralogy.amphibolite_wall": "Pared de anfibolita", - "block.mineralogy.amphibolite_brick_wall": "Pared de ladrillo de anfibolita", - "block.mineralogy.amphibolite_smooth_wall": "Pared pulida de anfibolita", - "block.mineralogy.amphibolite_smooth_brick_wall": "Pared de ladrillo pulido de anfibolita", - "block.mineralogy.andesite_furnace": "Horno de andesita", - "block.mineralogy.andesite_brick_furnace": "Horno de ladrillo de andesita", - "block.mineralogy.andesite_smooth_furnace": "Horno Pulida de Andesita", - "block.mineralogy.andesite_smooth_brick_furnace": "Horno de ladrillo pulido Andesite", - "block.mineralogy.basalt_furnace": "Horno de basalto", - "block.mineralogy.basalt_brick_furnace": "Horno de ladrillo de basalto", - "block.mineralogy.basalt_smooth_furnace": "Muro pulido de basalto", - "block.mineralogy.basalt_smooth_brick_furnace": "Horno de ladrillo pulido de basalto", + "block.mineralogy.dolomite_brick_wall": "Muro de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth_wall": "Muro pulido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_wall": "Muro de ladrillos pulidos de Dolomita", + "block.mineralogy.limestone_wall": "Muro de Caliza", + "block.mineralogy.limestone_brick_wall": "Muro de ladrillos de Caliza", + "block.mineralogy.limestone_smooth_wall": "Muro pulido de Caliza", + "block.mineralogy.limestone_smooth_brick_wall": "Muro de ladrillos pulidos de Caliza", + "block.mineralogy.marble_wall": "Muro de Mármol", + "block.mineralogy.marble_brick_wall": "Muro de ladrillos de Mármol", + "block.mineralogy.marble_smooth_wall": "Muro pulido de Mármol", + "block.mineralogy.marble_smooth_brick_wall": "Muro de ladrillos pulidos de Mármol", + "block.mineralogy.slate_wall": "Muro de Pizarra", + "block.mineralogy.slate_brick_wall": "Muro de ladrillos de Pizarra", + "block.mineralogy.slate_smooth_wall": "Muro pulido de Pizarra", + "block.mineralogy.slate_smooth_brick_wall": "Muro de ladrillos pulidos de Pizarra", + "block.mineralogy.schist_wall": "Muro de Esquisto", + "block.mineralogy.schist_brick_wall": "Muro de ladrillos de Esquisto", + "block.mineralogy.schist_smooth_wall": "Muro pulido de Esquisto", + "block.mineralogy.schist_smooth_brick_wall": "Muro de ladrillos pulidos de Esquisto", + "block.mineralogy.gneiss_wall": "Muro de Gneis", + "block.mineralogy.gneiss_brick_wall": "Muro de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth_wall": "Muro pulido de Gneis", + "block.mineralogy.gneiss_smooth_brick_wall": "Muro de ladrillos pulidos de Gneis", + "block.mineralogy.phyllite_wall": "Muro de Filita", + "block.mineralogy.phyllite_brick_wall": "Muro de ladrillos de Filita", + "block.mineralogy.phyllite_smooth_wall": "Muro pulido de Filita", + "block.mineralogy.phyllite_smooth_brick_wall": "Muro de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite_wall": "Muro de Anfibolita", + "block.mineralogy.amphibolite_brick_wall": "Muro de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth_wall": "Muro pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muro de ladrillos pulidos de Anfibolita", + "block.mineralogy.andesite_furnace": "Horno de Andesita", + "block.mineralogy.andesite_brick_furnace": "Horno de ladrillos de Andesita", + "block.mineralogy.andesite_smooth_furnace": "Horno pulido de Andesita", + "block.mineralogy.andesite_smooth_brick_furnace": "Horno de ladrillos pulidos de Andesita", + "block.mineralogy.basalt_furnace": "Horno de Basalto", + "block.mineralogy.basalt_brick_furnace": "Horno de ladrillos de Basalto", + "block.mineralogy.basalt_smooth_furnace": "Horno pulido de Basalto", + "block.mineralogy.basalt_smooth_brick_furnace": "Horno de ladrillos pulidos de Basalto", "block.mineralogy.diorite_furnace": "Horno de Diorita", - "block.mineralogy.diorite_brick_furnace": "Horno de ladrillo de diorita", - "block.mineralogy.diorite_smooth_furnace": "Diorite pulido de pared", - "block.mineralogy.diorite_smooth_brick_furnace": "Horno de ladrillo pulido de diorita", - "block.mineralogy.granite_furnace": "Horno de granito", - "block.mineralogy.granite_brick_furnace": "Horno de ladrillo de granito", - "block.mineralogy.granite_smooth_furnace": "Muro pulido de granito", - "block.mineralogy.granite_smooth_brick_furnace": "Horno de ladrillo pulido de granito", - "block.mineralogy.rhyolite_furnace": "Horno de riolita", - "block.mineralogy.rhyolite_brick_furnace": "Horno de ladrillos de riolita", - "block.mineralogy.rhyolite_smooth_furnace": "Horno pulida de riolita", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Horno de ladrillo pulido de riolita", + "block.mineralogy.diorite_brick_furnace": "Horno de ladrillos de Diorita", + "block.mineralogy.diorite_smooth_furnace": "Horno pulido de Diorita", + "block.mineralogy.diorite_smooth_brick_furnace": "Horno de ladrillos pulidos de Diorita", + "block.mineralogy.granite_furnace": "Horno de Granito", + "block.mineralogy.granite_brick_furnace": "Horno de ladrillos de Granito", + "block.mineralogy.granite_smooth_furnace": "Horno pulido de Granito", + "block.mineralogy.granite_smooth_brick_furnace": "Horno de ladrillos pulidos de Granito", + "block.mineralogy.rhyolite_furnace": "Horno de Riolita", + "block.mineralogy.rhyolite_brick_furnace": "Horno de ladrillos de Riolita", + "block.mineralogy.rhyolite_smooth_furnace": "Horno pulido de Riolita", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Horno de ladrillos pulidos de Riolita", "block.mineralogy.pegmatite_furnace": "Horno de Pegmatita", - "block.mineralogy.pegmatite_brick_furnace": "Horno de ladrillo de pegmatita", - "block.mineralogy.pegmatite_smooth_furnace": "Horno pulida de pegmatita", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Horno de ladrillo pulido de pegmatita", - "block.mineralogy.shale_furnace": "Muro de pizarra", - "block.mineralogy.shale_brick_furnace": "Horno de ladrillo de pizarra", - "block.mineralogy.shale_smooth_furnace": "Horno pulida de pizarra", - "block.mineralogy.shale_smooth_brick_furnace": "Pizarra, pulido, pared de ladrillo", - "block.mineralogy.conglomerate_furnace": "Horno de conglomerado", - "block.mineralogy.conglomerate_brick_furnace": "Horno de ladrillo conglomerado", - "block.mineralogy.conglomerate_smooth_furnace": "Horno pulida de conglomerado", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Conglomerado, pulido, pared de ladrillo", - "block.mineralogy.dolomite_furnace": "Muro de Dolomita", - "block.mineralogy.dolomite_brick_furnace": "Horno de ladrillos de dolomita", - "block.mineralogy.dolomite_smooth_furnace": "Horno pulida de dolomita", - "block.mineralogy.dolomite_smooth_brick_furnace": "Horno de ladrillo pulido de dolomita", - "block.mineralogy.limestone_furnace": "Muro de piedra caliza", - "block.mineralogy.limestone_brick_furnace": "Horno de ladrillo de piedra caliza", - "block.mineralogy.limestone_smooth_furnace": "Muro pulido de piedra caliza", - "block.mineralogy.limestone_smooth_brick_furnace": "Horno de ladrillo pulido de piedra caliza", - "block.mineralogy.marble_furnace": "Muro de mármol", - "block.mineralogy.marble_brick_furnace": "Horno de ladrillo de mármol", - "block.mineralogy.marble_smooth_furnace": "Mármol pulido de la pared", - "block.mineralogy.marble_smooth_brick_furnace": "Mármol pulido de la pared de ladrillo", - "block.mineralogy.slate_furnace": "Horno de pizarra", - "block.mineralogy.slate_brick_furnace": "Horno de ladrillo de pizarra", - "block.mineralogy.slate_smooth_furnace": "Horno pulida pizarra", - "block.mineralogy.slate_smooth_brick_furnace": "Horno de ladrillo pulido pizarra", - "block.mineralogy.schist_furnace": "Muro de esquisto", - "block.mineralogy.schist_brick_furnace": "Horno de ladrillo esquist", - "block.mineralogy.schist_smooth_furnace": "Esquisto de pared pulida", - "block.mineralogy.schist_smooth_brick_furnace": "Horno de ladrillo pulido de esquisto", - "block.mineralogy.gneiss_furnace": "Muro de gneis", - "block.mineralogy.gneiss_brick_furnace": "Horno de ladrillo gneis", - "block.mineralogy.gneiss_smooth_furnace": "Gneis pulido de la pared", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneis pulido de la pared de ladrillo", - "block.mineralogy.phyllite_furnace": "Horno de Phyllite", - "block.mineralogy.phyllite_brick_furnace": "Horno de ladrillo Phyllite", - "block.mineralogy.phyllite_smooth_furnace": "Phyllite pulido de pared", - "block.mineralogy.phyllite_smooth_brick_furnace": "Horno de ladrillo pulido de Phyllite", - "block.mineralogy.amphibolite_furnace": "Horno de anfibolita", - "block.mineralogy.amphibolite_brick_furnace": "Horno de ladrillo de anfibolita", - "block.mineralogy.amphibolite_smooth_furnace": "Horno pulida de anfibolita", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Horno de ladrillo pulido de anfibolita", + "block.mineralogy.pegmatite_brick_furnace": "Horno de ladrillos de Pegmatita", + "block.mineralogy.pegmatite_smooth_furnace": "Horno pulido de Pegmatita", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Horno de ladrillos pulidos de Pegmatita", + "block.mineralogy.shale_furnace": "Horno de Lutita", + "block.mineralogy.shale_brick_furnace": "Horno de ladrillos de Lutita", + "block.mineralogy.shale_smooth_furnace": "Horno pulido de Lutita", + "block.mineralogy.shale_smooth_brick_furnace": "Horno de ladrillos pulidos de Lutita", + "block.mineralogy.conglomerate_furnace": "Horno de Conglomerado", + "block.mineralogy.conglomerate_brick_furnace": "Horno de ladrillos de Conglomerado", + "block.mineralogy.conglomerate_smooth_furnace": "Horno pulido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Horno de ladrillos pulidos de Conglomerado", + "block.mineralogy.dolomite_furnace": "Horno de Dolomita", + "block.mineralogy.dolomite_brick_furnace": "Horno de ladrillos de Dolomita", + "block.mineralogy.dolomite_smooth_furnace": "Horno pulido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_furnace": "Horno de ladrillos pulidos de Dolomita", + "block.mineralogy.limestone_furnace": "Horno de Caliza", + "block.mineralogy.limestone_brick_furnace": "Horno de ladrillos de Caliza", + "block.mineralogy.limestone_smooth_furnace": "Horno pulido de Caliza", + "block.mineralogy.limestone_smooth_brick_furnace": "Horno de ladrillos pulidos de Caliza", + "block.mineralogy.marble_furnace": "Horno de Mármol", + "block.mineralogy.marble_brick_furnace": "Horno de ladrillos de Mármol", + "block.mineralogy.marble_smooth_furnace": "Horno pulido de Mármol", + "block.mineralogy.marble_smooth_brick_furnace": "Horno de ladrillos pulidos de Mármol", + "block.mineralogy.slate_furnace": "Horno de Pizarra", + "block.mineralogy.slate_brick_furnace": "Horno de ladrillos de Pizarra", + "block.mineralogy.slate_smooth_furnace": "Horno pulido de Pizarra", + "block.mineralogy.slate_smooth_brick_furnace": "Horno de ladrillos pulidos de Pizarra", + "block.mineralogy.schist_furnace": "Horno de Esquisto", + "block.mineralogy.schist_brick_furnace": "Horno de ladrillos de Esquisto", + "block.mineralogy.schist_smooth_furnace": "Horno pulido de Esquisto", + "block.mineralogy.schist_smooth_brick_furnace": "Horno de ladrillos pulidos de Esquisto", + "block.mineralogy.gneiss_furnace": "Horno de Gneis", + "block.mineralogy.gneiss_brick_furnace": "Horno de ladrillos de Gneis", + "block.mineralogy.gneiss_smooth_furnace": "Horno pulido de Gneis", + "block.mineralogy.gneiss_smooth_brick_furnace": "Horno de ladrillos pulidos de Gneis", + "block.mineralogy.phyllite_furnace": "Horno de Filita", + "block.mineralogy.phyllite_brick_furnace": "Horno de ladrillos de Filita", + "block.mineralogy.phyllite_smooth_furnace": "Horno pulido de Filita", + "block.mineralogy.phyllite_smooth_brick_furnace": "Horno de ladrillos pulidos de Filita", + "block.mineralogy.amphibolite_furnace": "Horno de Anfibolita", + "block.mineralogy.amphibolite_brick_furnace": "Horno de ladrillos de Anfibolita", + "block.mineralogy.amphibolite_smooth_furnace": "Horno pulido de Anfibolita", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Horno de ladrillos pulidos de Anfibolita", "block.mineralogy.diabase": "Diabasa", - "block.mineralogy.diabase_stairs": "Diabasa Escalera", - "block.mineralogy.diabase_slab": "Diabasa Losa", - "block.mineralogy.diabase_brick": "Diabasa Ladrillo", - "block.mineralogy.diabase_brick_stairs": "Diabasa Escaleras de ladrillo", - "block.mineralogy.diabase_brick_slab": "Diabasa Losa de ladrillo", - "block.mineralogy.diabase_smooth": "Polished Diabasa", - "block.mineralogy.diabase_smooth_stairs": "Diabasa Escaleras pulidas", - "block.mineralogy.diabase_smooth_slab": "Diabasa Losa pulida", - "block.mineralogy.diabase_smooth_brick": "Diabasa Ladrillo pulido", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabasa Polished Escaleras de ladrillo", - "block.mineralogy.diabase_smooth_brick_slab": "Diabasa Polished Losa de ladrillo", - "block.mineralogy.diabase_wall": "Diabasa pared", - "block.mineralogy.diabase_brick_wall": "Diabasa Pared de ladrillo", - "block.mineralogy.diabase_smooth_wall": "Diabasa Pared pulida", - "block.mineralogy.diabase_smooth_brick_wall": "Diabasa Ladrillo pulido pared", - "block.mineralogy.diabase_furnace": "Diabasa Horno", - "block.mineralogy.diabase_brick_furnace": "Diabasa Horno de ladrillo", - "block.mineralogy.diabase_smooth_furnace": "Diabasa Horno pulido", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabasa Ladrillo pulido Horno", - "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Escalera", - "block.mineralogy.gabbro_slab": "Gabbro Losa", - "block.mineralogy.gabbro_brick": "Gabbro Ladrillo", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Escaleras de ladrillo", - "block.mineralogy.gabbro_brick_slab": "Gabbro Losa de ladrillo", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Escaleras pulidas", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Losa pulida", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Ladrillo pulido", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Polished Escaleras de ladrillo", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Polished Losa de ladrillo", - "block.mineralogy.gabbro_wall": "Gabbro pared", - "block.mineralogy.gabbro_brick_wall": "Gabbro Pared de ladrillo", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Pared pulida", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Ladrillo pulido pared", - "block.mineralogy.gabbro_furnace": "Gabbro Horno", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Horno de ladrillo", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Horno pulido", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Ladrillo pulido Horno", + "block.mineralogy.diabase_stairs": "Escaleras de Diabasa", + "block.mineralogy.diabase_slab": "Losa de Diabasa", + "block.mineralogy.diabase_brick": "Ladrillos de Diabasa", + "block.mineralogy.diabase_brick_stairs": "Escaleras de ladrillos de Diabasa", + "block.mineralogy.diabase_brick_slab": "Losa de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth": "Bloque pulido de Diabasa", + "block.mineralogy.diabase_smooth_stairs": "Escaleras pulidas de Diabasa", + "block.mineralogy.diabase_smooth_slab": "Losa pulida de Diabasa", + "block.mineralogy.diabase_smooth_brick": "Ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_smooth_brick_slab": "Losa de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_wall": "Muro de Diabasa", + "block.mineralogy.diabase_brick_wall": "Muro de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth_wall": "Muro pulido de Diabasa", + "block.mineralogy.diabase_smooth_brick_wall": "Muro de ladrillos pulidos de Diabasa", + "block.mineralogy.diabase_furnace": "Horno de Diabasa", + "block.mineralogy.diabase_brick_furnace": "Horno de ladrillos de Diabasa", + "block.mineralogy.diabase_smooth_furnace": "Horno pulido de Diabasa", + "block.mineralogy.diabase_smooth_brick_furnace": "Horno de ladrillos pulidos de Diabasa", + "block.mineralogy.gabbro": "Gabro", + "block.mineralogy.gabbro_stairs": "Escaleras de Gabro", + "block.mineralogy.gabbro_slab": "Losa de Gabro", + "block.mineralogy.gabbro_brick": "Ladrillos de Gabro", + "block.mineralogy.gabbro_brick_stairs": "Escaleras de ladrillos de Gabro", + "block.mineralogy.gabbro_brick_slab": "Losa de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth": "Bloque pulido de Gabro", + "block.mineralogy.gabbro_smooth_stairs": "Escaleras pulidas de Gabro", + "block.mineralogy.gabbro_smooth_slab": "Losa pulida de Gabro", + "block.mineralogy.gabbro_smooth_brick": "Ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_slab": "Losa de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_wall": "Muro de Gabro", + "block.mineralogy.gabbro_brick_wall": "Muro de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth_wall": "Muro pulido de Gabro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muro de ladrillos pulidos de Gabro", + "block.mineralogy.gabbro_furnace": "Horno de Gabro", + "block.mineralogy.gabbro_brick_furnace": "Horno de ladrillos de Gabro", + "block.mineralogy.gabbro_smooth_furnace": "Horno pulido de Gabro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Horno de ladrillos pulidos de Gabro", "block.mineralogy.peridotite": "Peridotita", - "block.mineralogy.peridotite_stairs": "Peridotita Escalera", - "block.mineralogy.peridotite_slab": "Peridotita Losa", - "block.mineralogy.peridotite_brick": "Peridotita Ladrillo", - "block.mineralogy.peridotite_brick_stairs": "Peridotita Escaleras de ladrillo", - "block.mineralogy.peridotite_brick_slab": "Peridotita Losa de ladrillo", - "block.mineralogy.peridotite_smooth": "Polished Peridotita", - "block.mineralogy.peridotite_smooth_stairs": "Peridotita Escaleras pulidas", - "block.mineralogy.peridotite_smooth_slab": "Peridotita Losa pulida", - "block.mineralogy.peridotite_smooth_brick": "Peridotita Ladrillo pulido", - "block.mineralogy.peridotite_smooth_brick_stairs": "Peridotita Polished Escaleras de ladrillo", - "block.mineralogy.peridotite_smooth_brick_slab": "Peridotita Polished Losa de ladrillo", - "block.mineralogy.peridotite_wall": "Peridotita pared", - "block.mineralogy.peridotite_brick_wall": "Peridotita Pared de ladrillo", - "block.mineralogy.peridotite_smooth_wall": "Peridotita Pared pulida", - "block.mineralogy.peridotite_smooth_brick_wall": "Peridotita Ladrillo pulido pared", - "block.mineralogy.peridotite_furnace": "Peridotita Horno", - "block.mineralogy.peridotite_brick_furnace": "Peridotita Horno de ladrillo", - "block.mineralogy.peridotite_smooth_furnace": "Peridotita Horno pulido", - "block.mineralogy.peridotite_smooth_brick_furnace": "Peridotita Ladrillo pulido Horno", + "block.mineralogy.peridotite_stairs": "Escaleras de Peridotita", + "block.mineralogy.peridotite_slab": "Losa de Peridotita", + "block.mineralogy.peridotite_brick": "Ladrillos de Peridotita", + "block.mineralogy.peridotite_brick_stairs": "Escaleras de ladrillos de Peridotita", + "block.mineralogy.peridotite_brick_slab": "Losa de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth": "Bloque pulido de Peridotita", + "block.mineralogy.peridotite_smooth_stairs": "Escaleras pulidas de Peridotita", + "block.mineralogy.peridotite_smooth_slab": "Losa pulida de Peridotita", + "block.mineralogy.peridotite_smooth_brick": "Ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_smooth_brick_slab": "Losa de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_wall": "Muro de Peridotita", + "block.mineralogy.peridotite_brick_wall": "Muro de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth_wall": "Muro pulido de Peridotita", + "block.mineralogy.peridotite_smooth_brick_wall": "Muro de ladrillos pulidos de Peridotita", + "block.mineralogy.peridotite_furnace": "Horno de Peridotita", + "block.mineralogy.peridotite_brick_furnace": "Horno de ladrillos de Peridotita", + "block.mineralogy.peridotite_smooth_furnace": "Horno pulido de Peridotita", + "block.mineralogy.peridotite_smooth_brick_furnace": "Horno de ladrillos pulidos de Peridotita", "block.mineralogy.basaltic_glass": "Vidrio basáltico", - "block.mineralogy.basaltic_glass_stairs": "Vidrio basáltico Escalera", - "block.mineralogy.basaltic_glass_slab": "Vidrio basáltico Losa", - "block.mineralogy.basaltic_glass_brick": "Vidrio basáltico Ladrillo", - "block.mineralogy.basaltic_glass_brick_stairs": "Vidrio basáltico Escaleras de ladrillo", - "block.mineralogy.basaltic_glass_brick_slab": "Vidrio basáltico Losa de ladrillo", - "block.mineralogy.basaltic_glass_smooth": "Polished Vidrio basáltico", - "block.mineralogy.basaltic_glass_smooth_stairs": "Vidrio basáltico Escaleras pulidas", - "block.mineralogy.basaltic_glass_smooth_slab": "Vidrio basáltico Losa pulida", - "block.mineralogy.basaltic_glass_smooth_brick": "Vidrio basáltico Ladrillo pulido", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Vidrio basáltico Polished Escaleras de ladrillo", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Vidrio basáltico Polished Losa de ladrillo", - "block.mineralogy.basaltic_glass_wall": "Vidrio basáltico pared", - "block.mineralogy.basaltic_glass_brick_wall": "Vidrio basáltico Pared de ladrillo", - "block.mineralogy.basaltic_glass_smooth_wall": "Vidrio basáltico Pared pulida", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Vidrio basáltico Ladrillo pulido pared", - "block.mineralogy.basaltic_glass_furnace": "Vidrio basáltico Horno", - "block.mineralogy.basaltic_glass_brick_furnace": "Vidrio basáltico Horno de ladrillo", - "block.mineralogy.basaltic_glass_smooth_furnace": "Vidrio basáltico Horno pulido", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Vidrio basáltico Ladrillo pulido Horno", + "block.mineralogy.basaltic_glass_stairs": "Escaleras de Vidrio basáltico", + "block.mineralogy.basaltic_glass_slab": "Losa de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick": "Ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_stairs": "Escaleras de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_slab": "Losa de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth": "Bloque pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escaleras pulidas de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_slab": "Losa pulida de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick": "Ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Losa de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_wall": "Muro de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_wall": "Muro de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_wall": "Muro pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muro de ladrillos pulidos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_furnace": "Horno de Vidrio basáltico", + "block.mineralogy.basaltic_glass_brick_furnace": "Horno de ladrillos de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_furnace": "Horno pulido de Vidrio basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Horno de ladrillos pulidos de Vidrio basáltico", "block.mineralogy.scoria": "Escoria", - "block.mineralogy.scoria_stairs": "Escoria Escalera", - "block.mineralogy.scoria_slab": "Escoria Losa", - "block.mineralogy.scoria_brick": "Escoria Ladrillo", - "block.mineralogy.scoria_brick_stairs": "Escoria Escaleras de ladrillo", - "block.mineralogy.scoria_brick_slab": "Escoria Losa de ladrillo", - "block.mineralogy.scoria_smooth": "Polished Escoria", - "block.mineralogy.scoria_smooth_stairs": "Escoria Escaleras pulidas", - "block.mineralogy.scoria_smooth_slab": "Escoria Losa pulida", - "block.mineralogy.scoria_smooth_brick": "Escoria Ladrillo pulido", - "block.mineralogy.scoria_smooth_brick_stairs": "Escoria Polished Escaleras de ladrillo", - "block.mineralogy.scoria_smooth_brick_slab": "Escoria Polished Losa de ladrillo", - "block.mineralogy.scoria_wall": "Escoria pared", - "block.mineralogy.scoria_brick_wall": "Escoria Pared de ladrillo", - "block.mineralogy.scoria_smooth_wall": "Escoria Pared pulida", - "block.mineralogy.scoria_smooth_brick_wall": "Escoria Ladrillo pulido pared", - "block.mineralogy.scoria_furnace": "Escoria Horno", - "block.mineralogy.scoria_brick_furnace": "Escoria Horno de ladrillo", - "block.mineralogy.scoria_smooth_furnace": "Escoria Horno pulido", - "block.mineralogy.scoria_smooth_brick_furnace": "Escoria Ladrillo pulido Horno", + "block.mineralogy.scoria_stairs": "Escaleras de Escoria", + "block.mineralogy.scoria_slab": "Losa de Escoria", + "block.mineralogy.scoria_brick": "Ladrillos de Escoria", + "block.mineralogy.scoria_brick_stairs": "Escaleras de ladrillos de Escoria", + "block.mineralogy.scoria_brick_slab": "Losa de ladrillos de Escoria", + "block.mineralogy.scoria_smooth": "Bloque pulido de Escoria", + "block.mineralogy.scoria_smooth_stairs": "Escaleras pulidas de Escoria", + "block.mineralogy.scoria_smooth_slab": "Losa pulida de Escoria", + "block.mineralogy.scoria_smooth_brick": "Ladrillos pulidos de Escoria", + "block.mineralogy.scoria_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_smooth_brick_slab": "Losa de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_wall": "Muro de Escoria", + "block.mineralogy.scoria_brick_wall": "Muro de ladrillos de Escoria", + "block.mineralogy.scoria_smooth_wall": "Muro pulido de Escoria", + "block.mineralogy.scoria_smooth_brick_wall": "Muro de ladrillos pulidos de Escoria", + "block.mineralogy.scoria_furnace": "Horno de Escoria", + "block.mineralogy.scoria_brick_furnace": "Horno de ladrillos de Escoria", + "block.mineralogy.scoria_smooth_furnace": "Horno pulido de Escoria", + "block.mineralogy.scoria_smooth_brick_furnace": "Horno de ladrillos pulidos de Escoria", "block.mineralogy.tuff": "Toba", - "block.mineralogy.tuff_stairs": "Toba Escalera", - "block.mineralogy.tuff_slab": "Toba Losa", - "block.mineralogy.tuff_brick": "Toba Ladrillo", - "block.mineralogy.tuff_brick_stairs": "Toba Escaleras de ladrillo", - "block.mineralogy.tuff_brick_slab": "Toba Losa de ladrillo", - "block.mineralogy.tuff_smooth": "Polished Toba", - "block.mineralogy.tuff_smooth_stairs": "Toba Escaleras pulidas", - "block.mineralogy.tuff_smooth_slab": "Toba Losa pulida", - "block.mineralogy.tuff_smooth_brick": "Toba Ladrillo pulido", - "block.mineralogy.tuff_smooth_brick_stairs": "Toba Polished Escaleras de ladrillo", - "block.mineralogy.tuff_smooth_brick_slab": "Toba Polished Losa de ladrillo", - "block.mineralogy.tuff_wall": "Toba pared", - "block.mineralogy.tuff_brick_wall": "Toba Pared de ladrillo", - "block.mineralogy.tuff_smooth_wall": "Toba Pared pulida", - "block.mineralogy.tuff_smooth_brick_wall": "Toba Ladrillo pulido pared", - "block.mineralogy.tuff_furnace": "Toba Horno", - "block.mineralogy.tuff_brick_furnace": "Toba Horno de ladrillo", - "block.mineralogy.tuff_smooth_furnace": "Toba Horno pulido", - "block.mineralogy.tuff_smooth_brick_furnace": "Toba Ladrillo pulido Horno", - "block.mineralogy.siltstone": "Siltstone", - "block.mineralogy.siltstone_stairs": "Siltstone Escalera", - "block.mineralogy.siltstone_slab": "Siltstone Losa", - "block.mineralogy.siltstone_brick": "Siltstone Ladrillo", - "block.mineralogy.siltstone_brick_stairs": "Siltstone Escaleras de ladrillo", - "block.mineralogy.siltstone_brick_slab": "Siltstone Losa de ladrillo", - "block.mineralogy.siltstone_smooth": "Polished Siltstone", - "block.mineralogy.siltstone_smooth_stairs": "Siltstone Escaleras pulidas", - "block.mineralogy.siltstone_smooth_slab": "Siltstone Losa pulida", - "block.mineralogy.siltstone_smooth_brick": "Siltstone Ladrillo pulido", - "block.mineralogy.siltstone_smooth_brick_stairs": "Siltstone Polished Escaleras de ladrillo", - "block.mineralogy.siltstone_smooth_brick_slab": "Siltstone Polished Losa de ladrillo", - "block.mineralogy.siltstone_wall": "Siltstone pared", - "block.mineralogy.siltstone_brick_wall": "Siltstone Pared de ladrillo", - "block.mineralogy.siltstone_smooth_wall": "Siltstone Pared pulida", - "block.mineralogy.siltstone_smooth_brick_wall": "Siltstone Ladrillo pulido pared", - "block.mineralogy.siltstone_furnace": "Siltstone Horno", - "block.mineralogy.siltstone_brick_furnace": "Siltstone Horno de ladrillo", - "block.mineralogy.siltstone_smooth_furnace": "Siltstone Horno pulido", - "block.mineralogy.siltstone_smooth_brick_furnace": "Siltstone Ladrillo pulido Horno", + "block.mineralogy.tuff_stairs": "Escaleras de Toba", + "block.mineralogy.tuff_slab": "Losa de Toba", + "block.mineralogy.tuff_brick": "Ladrillos de Toba", + "block.mineralogy.tuff_brick_stairs": "Escaleras de ladrillos de Toba", + "block.mineralogy.tuff_brick_slab": "Losa de ladrillos de Toba", + "block.mineralogy.tuff_smooth": "Bloque pulido de Toba", + "block.mineralogy.tuff_smooth_stairs": "Escaleras pulidas de Toba", + "block.mineralogy.tuff_smooth_slab": "Losa pulida de Toba", + "block.mineralogy.tuff_smooth_brick": "Ladrillos pulidos de Toba", + "block.mineralogy.tuff_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Toba", + "block.mineralogy.tuff_smooth_brick_slab": "Losa de ladrillos pulidos de Toba", + "block.mineralogy.tuff_wall": "Muro de Toba", + "block.mineralogy.tuff_brick_wall": "Muro de ladrillos de Toba", + "block.mineralogy.tuff_smooth_wall": "Muro pulido de Toba", + "block.mineralogy.tuff_smooth_brick_wall": "Muro de ladrillos pulidos de Toba", + "block.mineralogy.tuff_furnace": "Horno de Toba", + "block.mineralogy.tuff_brick_furnace": "Horno de ladrillos de Toba", + "block.mineralogy.tuff_smooth_furnace": "Horno pulido de Toba", + "block.mineralogy.tuff_smooth_brick_furnace": "Horno de ladrillos pulidos de Toba", + "block.mineralogy.siltstone": "Limolita", + "block.mineralogy.siltstone_stairs": "Escaleras de Limolita", + "block.mineralogy.siltstone_slab": "Losa de Limolita", + "block.mineralogy.siltstone_brick": "Ladrillos de Limolita", + "block.mineralogy.siltstone_brick_stairs": "Escaleras de ladrillos de Limolita", + "block.mineralogy.siltstone_brick_slab": "Losa de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth": "Bloque pulido de Limolita", + "block.mineralogy.siltstone_smooth_stairs": "Escaleras pulidas de Limolita", + "block.mineralogy.siltstone_smooth_slab": "Losa pulida de Limolita", + "block.mineralogy.siltstone_smooth_brick": "Ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_smooth_brick_slab": "Losa de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_wall": "Muro de Limolita", + "block.mineralogy.siltstone_brick_wall": "Muro de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth_wall": "Muro pulido de Limolita", + "block.mineralogy.siltstone_smooth_brick_wall": "Muro de ladrillos pulidos de Limolita", + "block.mineralogy.siltstone_furnace": "Horno de Limolita", + "block.mineralogy.siltstone_brick_furnace": "Horno de ladrillos de Limolita", + "block.mineralogy.siltstone_smooth_furnace": "Horno pulido de Limolita", + "block.mineralogy.siltstone_smooth_brick_furnace": "Horno de ladrillos pulidos de Limolita", "block.mineralogy.rock_salt": "Sal de roca", - "block.mineralogy.rock_salt_stairs": "Sal de roca Escalera", - "block.mineralogy.rock_salt_slab": "Sal de roca Losa", - "block.mineralogy.rock_salt_brick": "Sal de roca Ladrillo", - "block.mineralogy.rock_salt_brick_stairs": "Sal de roca Escaleras de ladrillo", - "block.mineralogy.rock_salt_brick_slab": "Sal de roca Losa de ladrillo", - "block.mineralogy.rock_salt_smooth": "Polished Sal de roca", - "block.mineralogy.rock_salt_smooth_stairs": "Sal de roca Escaleras pulidas", - "block.mineralogy.rock_salt_smooth_slab": "Sal de roca Losa pulida", - "block.mineralogy.rock_salt_smooth_brick": "Sal de roca Ladrillo pulido", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Sal de roca Polished Escaleras de ladrillo", - "block.mineralogy.rock_salt_smooth_brick_slab": "Sal de roca Polished Losa de ladrillo", - "block.mineralogy.rock_salt_wall": "Sal de roca pared", - "block.mineralogy.rock_salt_brick_wall": "Sal de roca Pared de ladrillo", - "block.mineralogy.rock_salt_smooth_wall": "Sal de roca Pared pulida", - "block.mineralogy.rock_salt_smooth_brick_wall": "Sal de roca Ladrillo pulido pared", - "block.mineralogy.rock_salt_furnace": "Sal de roca Horno", - "block.mineralogy.rock_salt_brick_furnace": "Sal de roca Horno de ladrillo", - "block.mineralogy.rock_salt_smooth_furnace": "Sal de roca Horno pulido", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Sal de roca Ladrillo pulido Horno", - "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Escalera", - "block.mineralogy.hornfels_slab": "Hornfels Losa", - "block.mineralogy.hornfels_brick": "Hornfels Ladrillo", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Escaleras de ladrillo", - "block.mineralogy.hornfels_brick_slab": "Hornfels Losa de ladrillo", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Escaleras pulidas", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Losa pulida", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Ladrillo pulido", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Polished Escaleras de ladrillo", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Polished Losa de ladrillo", - "block.mineralogy.hornfels_wall": "Hornfels pared", - "block.mineralogy.hornfels_brick_wall": "Hornfels Pared de ladrillo", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Pared pulida", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Ladrillo pulido pared", - "block.mineralogy.hornfels_furnace": "Hornfels Horno", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Horno de ladrillo", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Horno pulido", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Ladrillo pulido Horno", + "block.mineralogy.rock_salt_stairs": "Escaleras de Sal de roca", + "block.mineralogy.rock_salt_slab": "Losa de Sal de roca", + "block.mineralogy.rock_salt_brick": "Ladrillos de Sal de roca", + "block.mineralogy.rock_salt_brick_stairs": "Escaleras de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_brick_slab": "Losa de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth": "Bloque pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_stairs": "Escaleras pulidas de Sal de roca", + "block.mineralogy.rock_salt_smooth_slab": "Losa pulida de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick": "Ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_slab": "Losa de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_wall": "Muro de Sal de roca", + "block.mineralogy.rock_salt_brick_wall": "Muro de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth_wall": "Muro pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muro de ladrillos pulidos de Sal de roca", + "block.mineralogy.rock_salt_furnace": "Horno de Sal de roca", + "block.mineralogy.rock_salt_brick_furnace": "Horno de ladrillos de Sal de roca", + "block.mineralogy.rock_salt_smooth_furnace": "Horno pulido de Sal de roca", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Horno de ladrillos pulidos de Sal de roca", + "block.mineralogy.hornfels": "Corneana", + "block.mineralogy.hornfels_stairs": "Escaleras de Corneana", + "block.mineralogy.hornfels_slab": "Losa de Corneana", + "block.mineralogy.hornfels_brick": "Ladrillos de Corneana", + "block.mineralogy.hornfels_brick_stairs": "Escaleras de ladrillos de Corneana", + "block.mineralogy.hornfels_brick_slab": "Losa de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth": "Bloque pulido de Corneana", + "block.mineralogy.hornfels_smooth_stairs": "Escaleras pulidas de Corneana", + "block.mineralogy.hornfels_smooth_slab": "Losa pulida de Corneana", + "block.mineralogy.hornfels_smooth_brick": "Ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_smooth_brick_slab": "Losa de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_wall": "Muro de Corneana", + "block.mineralogy.hornfels_brick_wall": "Muro de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth_wall": "Muro pulido de Corneana", + "block.mineralogy.hornfels_smooth_brick_wall": "Muro de ladrillos pulidos de Corneana", + "block.mineralogy.hornfels_furnace": "Horno de Corneana", + "block.mineralogy.hornfels_brick_furnace": "Horno de ladrillos de Corneana", + "block.mineralogy.hornfels_smooth_furnace": "Horno pulido de Corneana", + "block.mineralogy.hornfels_smooth_brick_furnace": "Horno de ladrillos pulidos de Corneana", "block.mineralogy.quartzite": "Cuarcita", - "block.mineralogy.quartzite_stairs": "Cuarcita Escalera", - "block.mineralogy.quartzite_slab": "Cuarcita Losa", - "block.mineralogy.quartzite_brick": "Cuarcita Ladrillo", - "block.mineralogy.quartzite_brick_stairs": "Cuarcita Escaleras de ladrillo", - "block.mineralogy.quartzite_brick_slab": "Cuarcita Losa de ladrillo", - "block.mineralogy.quartzite_smooth": "Polished Cuarcita", - "block.mineralogy.quartzite_smooth_stairs": "Cuarcita Escaleras pulidas", - "block.mineralogy.quartzite_smooth_slab": "Cuarcita Losa pulida", - "block.mineralogy.quartzite_smooth_brick": "Cuarcita Ladrillo pulido", - "block.mineralogy.quartzite_smooth_brick_stairs": "Cuarcita Polished Escaleras de ladrillo", - "block.mineralogy.quartzite_smooth_brick_slab": "Cuarcita Polished Losa de ladrillo", - "block.mineralogy.quartzite_wall": "Cuarcita pared", - "block.mineralogy.quartzite_brick_wall": "Cuarcita Pared de ladrillo", - "block.mineralogy.quartzite_smooth_wall": "Cuarcita Pared pulida", - "block.mineralogy.quartzite_smooth_brick_wall": "Cuarcita Ladrillo pulido pared", - "block.mineralogy.quartzite_furnace": "Cuarcita Horno", - "block.mineralogy.quartzite_brick_furnace": "Cuarcita Horno de ladrillo", - "block.mineralogy.quartzite_smooth_furnace": "Cuarcita Horno pulido", - "block.mineralogy.quartzite_smooth_brick_furnace": "Cuarcita Ladrillo pulido Horno", + "block.mineralogy.quartzite_stairs": "Escaleras de Cuarcita", + "block.mineralogy.quartzite_slab": "Losa de Cuarcita", + "block.mineralogy.quartzite_brick": "Ladrillos de Cuarcita", + "block.mineralogy.quartzite_brick_stairs": "Escaleras de ladrillos de Cuarcita", + "block.mineralogy.quartzite_brick_slab": "Losa de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth": "Bloque pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_stairs": "Escaleras pulidas de Cuarcita", + "block.mineralogy.quartzite_smooth_slab": "Losa pulida de Cuarcita", + "block.mineralogy.quartzite_smooth_brick": "Ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_slab": "Losa de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_wall": "Muro de Cuarcita", + "block.mineralogy.quartzite_brick_wall": "Muro de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth_wall": "Muro pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_wall": "Muro de ladrillos pulidos de Cuarcita", + "block.mineralogy.quartzite_furnace": "Horno de Cuarcita", + "block.mineralogy.quartzite_brick_furnace": "Horno de ladrillos de Cuarcita", + "block.mineralogy.quartzite_smooth_furnace": "Horno pulido de Cuarcita", + "block.mineralogy.quartzite_smooth_brick_furnace": "Horno de ladrillos pulidos de Cuarcita", "block.mineralogy.novaculite": "Novaculita", - "block.mineralogy.novaculite_stairs": "Novaculita Escalera", - "block.mineralogy.novaculite_slab": "Novaculita Losa", - "block.mineralogy.novaculite_brick": "Novaculita Ladrillo", - "block.mineralogy.novaculite_brick_stairs": "Novaculita Escaleras de ladrillo", - "block.mineralogy.novaculite_brick_slab": "Novaculita Losa de ladrillo", - "block.mineralogy.novaculite_smooth": "Polished Novaculita", - "block.mineralogy.novaculite_smooth_stairs": "Novaculita Escaleras pulidas", - "block.mineralogy.novaculite_smooth_slab": "Novaculita Losa pulida", - "block.mineralogy.novaculite_smooth_brick": "Novaculita Ladrillo pulido", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculita Polished Escaleras de ladrillo", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculita Polished Losa de ladrillo", - "block.mineralogy.novaculite_wall": "Novaculita pared", - "block.mineralogy.novaculite_brick_wall": "Novaculita Pared de ladrillo", - "block.mineralogy.novaculite_smooth_wall": "Novaculita Pared pulida", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculita Ladrillo pulido pared", - "block.mineralogy.novaculite_furnace": "Novaculita Horno", - "block.mineralogy.novaculite_brick_furnace": "Novaculita Horno de ladrillo", - "block.mineralogy.novaculite_smooth_furnace": "Novaculita Horno pulido", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculita Ladrillo pulido Horno", + "block.mineralogy.novaculite_stairs": "Escaleras de Novaculita", + "block.mineralogy.novaculite_slab": "Losa de Novaculita", + "block.mineralogy.novaculite_brick": "Ladrillos de Novaculita", + "block.mineralogy.novaculite_brick_stairs": "Escaleras de ladrillos de Novaculita", + "block.mineralogy.novaculite_brick_slab": "Losa de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth": "Bloque pulido de Novaculita", + "block.mineralogy.novaculite_smooth_stairs": "Escaleras pulidas de Novaculita", + "block.mineralogy.novaculite_smooth_slab": "Losa pulida de Novaculita", + "block.mineralogy.novaculite_smooth_brick": "Ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escaleras de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_slab": "Losa de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_wall": "Muro de Novaculita", + "block.mineralogy.novaculite_brick_wall": "Muro de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth_wall": "Muro pulido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_wall": "Muro de ladrillos pulidos de Novaculita", + "block.mineralogy.novaculite_furnace": "Horno de Novaculita", + "block.mineralogy.novaculite_brick_furnace": "Horno de ladrillos de Novaculita", + "block.mineralogy.novaculite_smooth_furnace": "Horno pulido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_furnace": "Horno de ladrillos pulidos de Novaculita", "block.mineralogy.chalk": "Tiza", "item.mineralogy.chalk_dust": "Polvo de tiza", "item.mineralogy.salt_dust": "Sal", "item.mineralogy.rock_salt_dust": "Cristales de sal de roca", "block.mineralogy.rocksaltlamp": "Lámpara de sal de roca", "block.mineralogy.rocksaltstreetlamp": "Farola de sal de roca", - "block.mineralogy.andesite_relief_axe": "Andesita Alivio del hacha", - "block.mineralogy.andesite_relief_blank": "Andesita Alivio en blanco", - "block.mineralogy.andesite_relief_cross": "Andesita Alivio cruzado", - "block.mineralogy.andesite_relief_hammer": "Andesita Alivio del martillo", - "block.mineralogy.andesite_relief_hoe": "Andesita Alivio de azada", - "block.mineralogy.andesite_relief_horizontal": "Andesita Alivio horizontal", - "block.mineralogy.andesite_relief_i": "Andesita I alivio", - "block.mineralogy.andesite_relief_left": "Andesita Alivio izquierdo", - "block.mineralogy.andesite_relief_pickaxe": "Andesita Alivio de pico", - "block.mineralogy.andesite_relief_plus": "Andesita Más alivio", - "block.mineralogy.andesite_relief_right": "Andesita Alivio correcto", - "block.mineralogy.andesite_relief_sword": "Andesita Alivio de espada", - "block.mineralogy.andesite_relief_vertical": "Andesita Alivio vertical", - "block.mineralogy.basalt_relief_axe": "Basalto Alivio del hacha", - "block.mineralogy.basalt_relief_blank": "Basalto Alivio en blanco", - "block.mineralogy.basalt_relief_cross": "Basalto Alivio cruzado", - "block.mineralogy.basalt_relief_hammer": "Basalto Alivio del martillo", - "block.mineralogy.basalt_relief_hoe": "Basalto Alivio de azada", - "block.mineralogy.basalt_relief_horizontal": "Basalto Alivio horizontal", - "block.mineralogy.basalt_relief_i": "Basalto I alivio", - "block.mineralogy.basalt_relief_left": "Basalto Alivio izquierdo", - "block.mineralogy.basalt_relief_pickaxe": "Basalto Alivio de pico", - "block.mineralogy.basalt_relief_plus": "Basalto Más alivio", - "block.mineralogy.basalt_relief_right": "Basalto Alivio correcto", - "block.mineralogy.basalt_relief_sword": "Basalto Alivio de espada", - "block.mineralogy.basalt_relief_vertical": "Basalto Alivio vertical", - "block.mineralogy.diorite_relief_axe": "Diorita Alivio del hacha", - "block.mineralogy.diorite_relief_blank": "Diorita Alivio en blanco", - "block.mineralogy.diorite_relief_cross": "Diorita Alivio cruzado", - "block.mineralogy.diorite_relief_hammer": "Diorita Alivio del martillo", - "block.mineralogy.diorite_relief_hoe": "Diorita Alivio de azada", - "block.mineralogy.diorite_relief_horizontal": "Diorita Alivio horizontal", - "block.mineralogy.diorite_relief_i": "Diorita I alivio", - "block.mineralogy.diorite_relief_left": "Diorita Alivio izquierdo", - "block.mineralogy.diorite_relief_pickaxe": "Diorita Alivio de pico", - "block.mineralogy.diorite_relief_plus": "Diorita Más alivio", - "block.mineralogy.diorite_relief_right": "Diorita Alivio correcto", - "block.mineralogy.diorite_relief_sword": "Diorita Alivio de espada", - "block.mineralogy.diorite_relief_vertical": "Diorita Alivio vertical", - "block.mineralogy.granite_relief_axe": "Granito Alivio del hacha", - "block.mineralogy.granite_relief_blank": "Granito Alivio en blanco", - "block.mineralogy.granite_relief_cross": "Granito Alivio cruzado", - "block.mineralogy.granite_relief_hammer": "Granito Alivio del martillo", - "block.mineralogy.granite_relief_hoe": "Granito Alivio de azada", - "block.mineralogy.granite_relief_horizontal": "Granito Alivio horizontal", - "block.mineralogy.granite_relief_i": "Granito I alivio", - "block.mineralogy.granite_relief_left": "Granito Alivio izquierdo", - "block.mineralogy.granite_relief_pickaxe": "Granito Alivio de pico", - "block.mineralogy.granite_relief_plus": "Granito Más alivio", - "block.mineralogy.granite_relief_right": "Granito Alivio correcto", - "block.mineralogy.granite_relief_sword": "Granito Alivio de espada", - "block.mineralogy.granite_relief_vertical": "Granito Alivio vertical", - "block.mineralogy.rhyolite_relief_axe": "Riolita Alivio del hacha", - "block.mineralogy.rhyolite_relief_blank": "Riolita Alivio en blanco", - "block.mineralogy.rhyolite_relief_cross": "Riolita Alivio cruzado", - "block.mineralogy.rhyolite_relief_hammer": "Riolita Alivio del martillo", - "block.mineralogy.rhyolite_relief_hoe": "Riolita Alivio de azada", - "block.mineralogy.rhyolite_relief_horizontal": "Riolita Alivio horizontal", - "block.mineralogy.rhyolite_relief_i": "Riolita I alivio", - "block.mineralogy.rhyolite_relief_left": "Riolita Alivio izquierdo", - "block.mineralogy.rhyolite_relief_pickaxe": "Riolita Alivio de pico", - "block.mineralogy.rhyolite_relief_plus": "Riolita Más alivio", - "block.mineralogy.rhyolite_relief_right": "Riolita Alivio correcto", - "block.mineralogy.rhyolite_relief_sword": "Riolita Alivio de espada", - "block.mineralogy.rhyolite_relief_vertical": "Riolita Alivio vertical", - "block.mineralogy.pegmatite_relief_axe": "Pegmatita Alivio del hacha", - "block.mineralogy.pegmatite_relief_blank": "Pegmatita Alivio en blanco", - "block.mineralogy.pegmatite_relief_cross": "Pegmatita Alivio cruzado", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatita Alivio del martillo", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatita Alivio de azada", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatita Alivio horizontal", - "block.mineralogy.pegmatite_relief_i": "Pegmatita I alivio", - "block.mineralogy.pegmatite_relief_left": "Pegmatita Alivio izquierdo", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatita Alivio de pico", - "block.mineralogy.pegmatite_relief_plus": "Pegmatita Más alivio", - "block.mineralogy.pegmatite_relief_right": "Pegmatita Alivio correcto", - "block.mineralogy.pegmatite_relief_sword": "Pegmatita Alivio de espada", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatita Alivio vertical", - "block.mineralogy.shale_relief_axe": "Esquisto Alivio del hacha", - "block.mineralogy.shale_relief_blank": "Esquisto Alivio en blanco", - "block.mineralogy.shale_relief_cross": "Esquisto Alivio cruzado", - "block.mineralogy.shale_relief_hammer": "Esquisto Alivio del martillo", - "block.mineralogy.shale_relief_hoe": "Esquisto Alivio de azada", - "block.mineralogy.shale_relief_horizontal": "Esquisto Alivio horizontal", - "block.mineralogy.shale_relief_i": "Esquisto I alivio", - "block.mineralogy.shale_relief_left": "Esquisto Alivio izquierdo", - "block.mineralogy.shale_relief_pickaxe": "Esquisto Alivio de pico", - "block.mineralogy.shale_relief_plus": "Esquisto Más alivio", - "block.mineralogy.shale_relief_right": "Esquisto Alivio correcto", - "block.mineralogy.shale_relief_sword": "Esquisto Alivio de espada", - "block.mineralogy.shale_relief_vertical": "Esquisto Alivio vertical", - "block.mineralogy.conglomerate_relief_axe": "Conglomerado Alivio del hacha", - "block.mineralogy.conglomerate_relief_blank": "Conglomerado Alivio en blanco", - "block.mineralogy.conglomerate_relief_cross": "Conglomerado Alivio cruzado", - "block.mineralogy.conglomerate_relief_hammer": "Conglomerado Alivio del martillo", - "block.mineralogy.conglomerate_relief_hoe": "Conglomerado Alivio de azada", - "block.mineralogy.conglomerate_relief_horizontal": "Conglomerado Alivio horizontal", - "block.mineralogy.conglomerate_relief_i": "Conglomerado I alivio", - "block.mineralogy.conglomerate_relief_left": "Conglomerado Alivio izquierdo", - "block.mineralogy.conglomerate_relief_pickaxe": "Conglomerado Alivio de pico", - "block.mineralogy.conglomerate_relief_plus": "Conglomerado Más alivio", - "block.mineralogy.conglomerate_relief_right": "Conglomerado Alivio correcto", - "block.mineralogy.conglomerate_relief_sword": "Conglomerado Alivio de espada", - "block.mineralogy.conglomerate_relief_vertical": "Conglomerado Alivio vertical", - "block.mineralogy.dolomite_relief_axe": "Dolomita Alivio del hacha", - "block.mineralogy.dolomite_relief_blank": "Dolomita Alivio en blanco", - "block.mineralogy.dolomite_relief_cross": "Dolomita Alivio cruzado", - "block.mineralogy.dolomite_relief_hammer": "Dolomita Alivio del martillo", - "block.mineralogy.dolomite_relief_hoe": "Dolomita Alivio de azada", - "block.mineralogy.dolomite_relief_horizontal": "Dolomita Alivio horizontal", - "block.mineralogy.dolomite_relief_i": "Dolomita I alivio", - "block.mineralogy.dolomite_relief_left": "Dolomita Alivio izquierdo", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomita Alivio de pico", - "block.mineralogy.dolomite_relief_plus": "Dolomita Más alivio", - "block.mineralogy.dolomite_relief_right": "Dolomita Alivio correcto", - "block.mineralogy.dolomite_relief_sword": "Dolomita Alivio de espada", - "block.mineralogy.dolomite_relief_vertical": "Dolomita Alivio vertical", - "block.mineralogy.limestone_relief_axe": "Caliza Alivio del hacha", - "block.mineralogy.limestone_relief_blank": "Caliza Alivio en blanco", - "block.mineralogy.limestone_relief_cross": "Caliza Alivio cruzado", - "block.mineralogy.limestone_relief_hammer": "Caliza Alivio del martillo", - "block.mineralogy.limestone_relief_hoe": "Caliza Alivio de azada", - "block.mineralogy.limestone_relief_horizontal": "Caliza Alivio horizontal", - "block.mineralogy.limestone_relief_i": "Caliza I alivio", - "block.mineralogy.limestone_relief_left": "Caliza Alivio izquierdo", - "block.mineralogy.limestone_relief_pickaxe": "Caliza Alivio de pico", - "block.mineralogy.limestone_relief_plus": "Caliza Más alivio", - "block.mineralogy.limestone_relief_right": "Caliza Alivio correcto", - "block.mineralogy.limestone_relief_sword": "Caliza Alivio de espada", - "block.mineralogy.limestone_relief_vertical": "Caliza Alivio vertical", - "block.mineralogy.marble_relief_axe": "Mármol Alivio del hacha", - "block.mineralogy.marble_relief_blank": "Mármol Alivio en blanco", - "block.mineralogy.marble_relief_cross": "Mármol Alivio cruzado", - "block.mineralogy.marble_relief_hammer": "Mármol Alivio del martillo", - "block.mineralogy.marble_relief_hoe": "Mármol Alivio de azada", - "block.mineralogy.marble_relief_horizontal": "Mármol Alivio horizontal", - "block.mineralogy.marble_relief_i": "Mármol I alivio", - "block.mineralogy.marble_relief_left": "Mármol Alivio izquierdo", - "block.mineralogy.marble_relief_pickaxe": "Mármol Alivio de pico", - "block.mineralogy.marble_relief_plus": "Mármol Más alivio", - "block.mineralogy.marble_relief_right": "Mármol Alivio correcto", - "block.mineralogy.marble_relief_sword": "Mármol Alivio de espada", - "block.mineralogy.marble_relief_vertical": "Mármol Alivio vertical", - "block.mineralogy.slate_relief_axe": "Pizarra Alivio del hacha", - "block.mineralogy.slate_relief_blank": "Pizarra Alivio en blanco", - "block.mineralogy.slate_relief_cross": "Pizarra Alivio cruzado", - "block.mineralogy.slate_relief_hammer": "Pizarra Alivio del martillo", - "block.mineralogy.slate_relief_hoe": "Pizarra Alivio de azada", - "block.mineralogy.slate_relief_horizontal": "Pizarra Alivio horizontal", - "block.mineralogy.slate_relief_i": "Pizarra I alivio", - "block.mineralogy.slate_relief_left": "Pizarra Alivio izquierdo", - "block.mineralogy.slate_relief_pickaxe": "Pizarra Alivio de pico", - "block.mineralogy.slate_relief_plus": "Pizarra Más alivio", - "block.mineralogy.slate_relief_right": "Pizarra Alivio correcto", - "block.mineralogy.slate_relief_sword": "Pizarra Alivio de espada", - "block.mineralogy.slate_relief_vertical": "Pizarra Alivio vertical", - "block.mineralogy.schist_relief_axe": "Esquisto Alivio del hacha", - "block.mineralogy.schist_relief_blank": "Esquisto Alivio en blanco", - "block.mineralogy.schist_relief_cross": "Esquisto Alivio cruzado", - "block.mineralogy.schist_relief_hammer": "Esquisto Alivio del martillo", - "block.mineralogy.schist_relief_hoe": "Esquisto Alivio de azada", - "block.mineralogy.schist_relief_horizontal": "Esquisto Alivio horizontal", - "block.mineralogy.schist_relief_i": "Esquisto I alivio", - "block.mineralogy.schist_relief_left": "Esquisto Alivio izquierdo", - "block.mineralogy.schist_relief_pickaxe": "Esquisto Alivio de pico", - "block.mineralogy.schist_relief_plus": "Esquisto Más alivio", - "block.mineralogy.schist_relief_right": "Esquisto Alivio correcto", - "block.mineralogy.schist_relief_sword": "Esquisto Alivio de espada", - "block.mineralogy.schist_relief_vertical": "Esquisto Alivio vertical", - "block.mineralogy.gneiss_relief_axe": "Gneis Alivio del hacha", - "block.mineralogy.gneiss_relief_blank": "Gneis Alivio en blanco", - "block.mineralogy.gneiss_relief_cross": "Gneis Alivio cruzado", - "block.mineralogy.gneiss_relief_hammer": "Gneis Alivio del martillo", - "block.mineralogy.gneiss_relief_hoe": "Gneis Alivio de azada", - "block.mineralogy.gneiss_relief_horizontal": "Gneis Alivio horizontal", - "block.mineralogy.gneiss_relief_i": "Gneis I alivio", - "block.mineralogy.gneiss_relief_left": "Gneis Alivio izquierdo", - "block.mineralogy.gneiss_relief_pickaxe": "Gneis Alivio de pico", - "block.mineralogy.gneiss_relief_plus": "Gneis Más alivio", - "block.mineralogy.gneiss_relief_right": "Gneis Alivio correcto", - "block.mineralogy.gneiss_relief_sword": "Gneis Alivio de espada", - "block.mineralogy.gneiss_relief_vertical": "Gneis Alivio vertical", - "block.mineralogy.phyllite_relief_axe": "Filita Alivio del hacha", - "block.mineralogy.phyllite_relief_blank": "Filita Alivio en blanco", - "block.mineralogy.phyllite_relief_cross": "Filita Alivio cruzado", - "block.mineralogy.phyllite_relief_hammer": "Filita Alivio del martillo", - "block.mineralogy.phyllite_relief_hoe": "Filita Alivio de azada", - "block.mineralogy.phyllite_relief_horizontal": "Filita Alivio horizontal", - "block.mineralogy.phyllite_relief_i": "Filita I alivio", - "block.mineralogy.phyllite_relief_left": "Filita Alivio izquierdo", - "block.mineralogy.phyllite_relief_pickaxe": "Filita Alivio de pico", - "block.mineralogy.phyllite_relief_plus": "Filita Más alivio", - "block.mineralogy.phyllite_relief_right": "Filita Alivio correcto", - "block.mineralogy.phyllite_relief_sword": "Filita Alivio de espada", - "block.mineralogy.phyllite_relief_vertical": "Filita Alivio vertical", - "block.mineralogy.amphibolite_relief_axe": "Anfibolita Alivio del hacha", - "block.mineralogy.amphibolite_relief_blank": "Anfibolita Alivio en blanco", - "block.mineralogy.amphibolite_relief_cross": "Anfibolita Alivio cruzado", - "block.mineralogy.amphibolite_relief_hammer": "Anfibolita Alivio del martillo", - "block.mineralogy.amphibolite_relief_hoe": "Anfibolita Alivio de azada", - "block.mineralogy.amphibolite_relief_horizontal": "Anfibolita Alivio horizontal", - "block.mineralogy.amphibolite_relief_i": "Anfibolita I alivio", - "block.mineralogy.amphibolite_relief_left": "Anfibolita Alivio izquierdo", - "block.mineralogy.amphibolite_relief_pickaxe": "Anfibolita Alivio de pico", - "block.mineralogy.amphibolite_relief_plus": "Anfibolita Más alivio", - "block.mineralogy.amphibolite_relief_right": "Anfibolita Alivio correcto", - "block.mineralogy.amphibolite_relief_sword": "Anfibolita Alivio de espada", - "block.mineralogy.amphibolite_relief_vertical": "Anfibolita Alivio vertical", - "block.mineralogy.diabase_relief_axe": "Diabasa Alivio del hacha", - "block.mineralogy.diabase_relief_blank": "Diabasa Alivio en blanco", - "block.mineralogy.diabase_relief_cross": "Diabasa Alivio cruzado", - "block.mineralogy.diabase_relief_hammer": "Diabasa Alivio del martillo", - "block.mineralogy.diabase_relief_hoe": "Diabasa Alivio de azada", - "block.mineralogy.diabase_relief_horizontal": "Diabasa Alivio horizontal", - "block.mineralogy.diabase_relief_i": "Diabasa I alivio", - "block.mineralogy.diabase_relief_left": "Diabasa Alivio izquierdo", - "block.mineralogy.diabase_relief_pickaxe": "Diabasa Alivio de pico", - "block.mineralogy.diabase_relief_plus": "Diabasa Más alivio", - "block.mineralogy.diabase_relief_right": "Diabasa Alivio correcto", - "block.mineralogy.diabase_relief_sword": "Diabasa Alivio de espada", - "block.mineralogy.diabase_relief_vertical": "Diabasa Alivio vertical", - "block.mineralogy.gabbro_relief_axe": "Gabbro Alivio del hacha", - "block.mineralogy.gabbro_relief_blank": "Gabbro Alivio en blanco", - "block.mineralogy.gabbro_relief_cross": "Gabbro Alivio cruzado", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Alivio del martillo", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Alivio de azada", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Alivio horizontal", - "block.mineralogy.gabbro_relief_i": "Gabbro I alivio", - "block.mineralogy.gabbro_relief_left": "Gabbro Alivio izquierdo", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Alivio de pico", - "block.mineralogy.gabbro_relief_plus": "Gabbro Más alivio", - "block.mineralogy.gabbro_relief_right": "Gabbro Alivio correcto", - "block.mineralogy.gabbro_relief_sword": "Gabbro Alivio de espada", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Alivio vertical", - "block.mineralogy.peridotite_relief_axe": "Peridotita Alivio del hacha", - "block.mineralogy.peridotite_relief_blank": "Peridotita Alivio en blanco", - "block.mineralogy.peridotite_relief_cross": "Peridotita Alivio cruzado", - "block.mineralogy.peridotite_relief_hammer": "Peridotita Alivio del martillo", - "block.mineralogy.peridotite_relief_hoe": "Peridotita Alivio de azada", - "block.mineralogy.peridotite_relief_horizontal": "Peridotita Alivio horizontal", - "block.mineralogy.peridotite_relief_i": "Peridotita I alivio", - "block.mineralogy.peridotite_relief_left": "Peridotita Alivio izquierdo", - "block.mineralogy.peridotite_relief_pickaxe": "Peridotita Alivio de pico", - "block.mineralogy.peridotite_relief_plus": "Peridotita Más alivio", - "block.mineralogy.peridotite_relief_right": "Peridotita Alivio correcto", - "block.mineralogy.peridotite_relief_sword": "Peridotita Alivio de espada", - "block.mineralogy.peridotite_relief_vertical": "Peridotita Alivio vertical", - "block.mineralogy.basaltic_glass_relief_axe": "Vidrio basaltoico Alivio del hacha", - "block.mineralogy.basaltic_glass_relief_blank": "Vidrio basaltoico Alivio en blanco", - "block.mineralogy.basaltic_glass_relief_cross": "Vidrio basaltoico Alivio cruzado", - "block.mineralogy.basaltic_glass_relief_hammer": "Vidrio basaltoico Alivio del martillo", - "block.mineralogy.basaltic_glass_relief_hoe": "Vidrio basaltoico Alivio de azada", - "block.mineralogy.basaltic_glass_relief_horizontal": "Vidrio basaltoico Alivio horizontal", - "block.mineralogy.basaltic_glass_relief_i": "Vidrio basaltoico I alivio", - "block.mineralogy.basaltic_glass_relief_left": "Vidrio basaltoico Alivio izquierdo", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Vidrio basaltoico Alivio de pico", - "block.mineralogy.basaltic_glass_relief_plus": "Vidrio basaltoico Más alivio", - "block.mineralogy.basaltic_glass_relief_right": "Vidrio basaltoico Alivio correcto", - "block.mineralogy.basaltic_glass_relief_sword": "Vidrio basaltoico Alivio de espada", - "block.mineralogy.basaltic_glass_relief_vertical": "Vidrio basaltoico Alivio vertical", - "block.mineralogy.scoria_relief_axe": "Escoria Alivio del hacha", - "block.mineralogy.scoria_relief_blank": "Escoria Alivio en blanco", - "block.mineralogy.scoria_relief_cross": "Escoria Alivio cruzado", - "block.mineralogy.scoria_relief_hammer": "Escoria Alivio del martillo", - "block.mineralogy.scoria_relief_hoe": "Escoria Alivio de azada", - "block.mineralogy.scoria_relief_horizontal": "Escoria Alivio horizontal", - "block.mineralogy.scoria_relief_i": "Escoria I alivio", - "block.mineralogy.scoria_relief_left": "Escoria Alivio izquierdo", - "block.mineralogy.scoria_relief_pickaxe": "Escoria Alivio de pico", - "block.mineralogy.scoria_relief_plus": "Escoria Más alivio", - "block.mineralogy.scoria_relief_right": "Escoria Alivio correcto", - "block.mineralogy.scoria_relief_sword": "Escoria Alivio de espada", - "block.mineralogy.scoria_relief_vertical": "Escoria Alivio vertical", - "block.mineralogy.tuff_relief_axe": "Toba Alivio del hacha", - "block.mineralogy.tuff_relief_blank": "Toba Alivio en blanco", - "block.mineralogy.tuff_relief_cross": "Toba Alivio cruzado", - "block.mineralogy.tuff_relief_hammer": "Toba Alivio del martillo", - "block.mineralogy.tuff_relief_hoe": "Toba Alivio de azada", - "block.mineralogy.tuff_relief_horizontal": "Toba Alivio horizontal", - "block.mineralogy.tuff_relief_i": "Toba I alivio", - "block.mineralogy.tuff_relief_left": "Toba Alivio izquierdo", - "block.mineralogy.tuff_relief_pickaxe": "Toba Alivio de pico", - "block.mineralogy.tuff_relief_plus": "Toba Más alivio", - "block.mineralogy.tuff_relief_right": "Toba Alivio correcto", - "block.mineralogy.tuff_relief_sword": "Toba Alivio de espada", - "block.mineralogy.tuff_relief_vertical": "Toba Alivio vertical", - "block.mineralogy.siltstone_relief_axe": "Siltstone Alivio del hacha", - "block.mineralogy.siltstone_relief_blank": "Siltstone Alivio en blanco", - "block.mineralogy.siltstone_relief_cross": "Siltstone Alivio cruzado", - "block.mineralogy.siltstone_relief_hammer": "Siltstone Alivio del martillo", - "block.mineralogy.siltstone_relief_hoe": "Siltstone Alivio de azada", - "block.mineralogy.siltstone_relief_horizontal": "Siltstone Alivio horizontal", - "block.mineralogy.siltstone_relief_i": "Siltstone I alivio", - "block.mineralogy.siltstone_relief_left": "Siltstone Alivio izquierdo", - "block.mineralogy.siltstone_relief_pickaxe": "Siltstone Alivio de pico", - "block.mineralogy.siltstone_relief_plus": "Siltstone Más alivio", - "block.mineralogy.siltstone_relief_right": "Siltstone Alivio correcto", - "block.mineralogy.siltstone_relief_sword": "Siltstone Alivio de espada", - "block.mineralogy.siltstone_relief_vertical": "Siltstone Alivio vertical", - "block.mineralogy.rock_salt_relief_axe": "Sal de roca Alivio del hacha", - "block.mineralogy.rock_salt_relief_blank": "Sal de roca Alivio en blanco", - "block.mineralogy.rock_salt_relief_cross": "Sal de roca Alivio cruzado", - "block.mineralogy.rock_salt_relief_hammer": "Sal de roca Alivio del martillo", - "block.mineralogy.rock_salt_relief_hoe": "Sal de roca Alivio de azada", - "block.mineralogy.rock_salt_relief_horizontal": "Sal de roca Alivio horizontal", - "block.mineralogy.rock_salt_relief_i": "Sal de roca I alivio", - "block.mineralogy.rock_salt_relief_left": "Sal de roca Alivio izquierdo", - "block.mineralogy.rock_salt_relief_pickaxe": "Sal de roca Alivio de pico", - "block.mineralogy.rock_salt_relief_plus": "Sal de roca Más alivio", - "block.mineralogy.rock_salt_relief_right": "Sal de roca Alivio correcto", - "block.mineralogy.rock_salt_relief_sword": "Sal de roca Alivio de espada", - "block.mineralogy.rock_salt_relief_vertical": "Sal de roca Alivio vertical", - "block.mineralogy.hornfels_relief_axe": "Hornfels Alivio del hacha", - "block.mineralogy.hornfels_relief_blank": "Hornfels Alivio en blanco", - "block.mineralogy.hornfels_relief_cross": "Hornfels Alivio cruzado", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Alivio del martillo", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Alivio de azada", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Alivio horizontal", - "block.mineralogy.hornfels_relief_i": "Hornfels I alivio", - "block.mineralogy.hornfels_relief_left": "Hornfels Alivio izquierdo", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Alivio de pico", - "block.mineralogy.hornfels_relief_plus": "Hornfels Más alivio", - "block.mineralogy.hornfels_relief_right": "Hornfels Alivio correcto", - "block.mineralogy.hornfels_relief_sword": "Hornfels Alivio de espada", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Alivio vertical", - "block.mineralogy.quartzite_relief_axe": "Cuarcita Alivio del hacha", - "block.mineralogy.quartzite_relief_blank": "Cuarcita Alivio en blanco", - "block.mineralogy.quartzite_relief_cross": "Cuarcita Alivio cruzado", - "block.mineralogy.quartzite_relief_hammer": "Cuarcita Alivio del martillo", - "block.mineralogy.quartzite_relief_hoe": "Cuarcita Alivio de azada", - "block.mineralogy.quartzite_relief_horizontal": "Cuarcita Alivio horizontal", - "block.mineralogy.quartzite_relief_i": "Cuarcita I alivio", - "block.mineralogy.quartzite_relief_left": "Cuarcita Alivio izquierdo", - "block.mineralogy.quartzite_relief_pickaxe": "Cuarcita Alivio de pico", - "block.mineralogy.quartzite_relief_plus": "Cuarcita Más alivio", - "block.mineralogy.quartzite_relief_right": "Cuarcita Alivio correcto", - "block.mineralogy.quartzite_relief_sword": "Cuarcita Alivio de espada", - "block.mineralogy.quartzite_relief_vertical": "Cuarcita Alivio vertical", - "block.mineralogy.novaculite_relief_axe": "Novaculita Alivio del hacha", - "block.mineralogy.novaculite_relief_blank": "Novaculita Alivio en blanco", - "block.mineralogy.novaculite_relief_cross": "Novaculita Alivio cruzado", - "block.mineralogy.novaculite_relief_hammer": "Novaculita Alivio del martillo", - "block.mineralogy.novaculite_relief_hoe": "Novaculita Alivio de azada", - "block.mineralogy.novaculite_relief_horizontal": "Novaculita Alivio horizontal", - "block.mineralogy.novaculite_relief_i": "Novaculita I alivio", - "block.mineralogy.novaculite_relief_left": "Novaculita Alivio izquierdo", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculita Alivio de pico", - "block.mineralogy.novaculite_relief_plus": "Novaculita Más alivio", - "block.mineralogy.novaculite_relief_right": "Novaculita Alivio correcto", - "block.mineralogy.novaculite_relief_sword": "Novaculita Alivio de espada", - "block.mineralogy.novaculite_relief_vertical": "Novaculita Alivio vertical", - "advancements.mineralogy.all_the_rocks.title": "¡Llama a las rocas Ludo!", - "advancements.mineralogy.all_the_rocks.description": "¡Vaya, has encontrado todos los tipos de rocas estándar en Mineralogía!", - "fluid.mineralogy.crude_oil": "Petróleo Crudo", - "block.mineralogy.crude_oil": "Petróleo Crudo", - "item.mineralogy.crude_oil_bucket": "Balde de petróleo crudo", + "block.mineralogy.andesite_relief_axe": "Relieve de Andesita (hacha)", + "block.mineralogy.andesite_relief_blank": "Relieve de Andesita (sin motivo)", + "block.mineralogy.andesite_relief_cross": "Relieve de Andesita (cruz)", + "block.mineralogy.andesite_relief_hammer": "Relieve de Andesita (martillo)", + "block.mineralogy.andesite_relief_hoe": "Relieve de Andesita (azada)", + "block.mineralogy.andesite_relief_horizontal": "Relieve de Andesita (horizontal)", + "block.mineralogy.andesite_relief_i": "Relieve de Andesita (I)", + "block.mineralogy.andesite_relief_left": "Relieve de Andesita (izquierda)", + "block.mineralogy.andesite_relief_pickaxe": "Relieve de Andesita (pico)", + "block.mineralogy.andesite_relief_plus": "Relieve de Andesita (signo más)", + "block.mineralogy.andesite_relief_right": "Relieve de Andesita (derecha)", + "block.mineralogy.andesite_relief_sword": "Relieve de Andesita (espada)", + "block.mineralogy.andesite_relief_vertical": "Relieve de Andesita (vertical)", + "block.mineralogy.basalt_relief_axe": "Relieve de Basalto (hacha)", + "block.mineralogy.basalt_relief_blank": "Relieve de Basalto (sin motivo)", + "block.mineralogy.basalt_relief_cross": "Relieve de Basalto (cruz)", + "block.mineralogy.basalt_relief_hammer": "Relieve de Basalto (martillo)", + "block.mineralogy.basalt_relief_hoe": "Relieve de Basalto (azada)", + "block.mineralogy.basalt_relief_horizontal": "Relieve de Basalto (horizontal)", + "block.mineralogy.basalt_relief_i": "Relieve de Basalto (I)", + "block.mineralogy.basalt_relief_left": "Relieve de Basalto (izquierda)", + "block.mineralogy.basalt_relief_pickaxe": "Relieve de Basalto (pico)", + "block.mineralogy.basalt_relief_plus": "Relieve de Basalto (signo más)", + "block.mineralogy.basalt_relief_right": "Relieve de Basalto (derecha)", + "block.mineralogy.basalt_relief_sword": "Relieve de Basalto (espada)", + "block.mineralogy.basalt_relief_vertical": "Relieve de Basalto (vertical)", + "block.mineralogy.diorite_relief_axe": "Relieve de Diorita (hacha)", + "block.mineralogy.diorite_relief_blank": "Relieve de Diorita (sin motivo)", + "block.mineralogy.diorite_relief_cross": "Relieve de Diorita (cruz)", + "block.mineralogy.diorite_relief_hammer": "Relieve de Diorita (martillo)", + "block.mineralogy.diorite_relief_hoe": "Relieve de Diorita (azada)", + "block.mineralogy.diorite_relief_horizontal": "Relieve de Diorita (horizontal)", + "block.mineralogy.diorite_relief_i": "Relieve de Diorita (I)", + "block.mineralogy.diorite_relief_left": "Relieve de Diorita (izquierda)", + "block.mineralogy.diorite_relief_pickaxe": "Relieve de Diorita (pico)", + "block.mineralogy.diorite_relief_plus": "Relieve de Diorita (signo más)", + "block.mineralogy.diorite_relief_right": "Relieve de Diorita (derecha)", + "block.mineralogy.diorite_relief_sword": "Relieve de Diorita (espada)", + "block.mineralogy.diorite_relief_vertical": "Relieve de Diorita (vertical)", + "block.mineralogy.granite_relief_axe": "Relieve de Granito (hacha)", + "block.mineralogy.granite_relief_blank": "Relieve de Granito (sin motivo)", + "block.mineralogy.granite_relief_cross": "Relieve de Granito (cruz)", + "block.mineralogy.granite_relief_hammer": "Relieve de Granito (martillo)", + "block.mineralogy.granite_relief_hoe": "Relieve de Granito (azada)", + "block.mineralogy.granite_relief_horizontal": "Relieve de Granito (horizontal)", + "block.mineralogy.granite_relief_i": "Relieve de Granito (I)", + "block.mineralogy.granite_relief_left": "Relieve de Granito (izquierda)", + "block.mineralogy.granite_relief_pickaxe": "Relieve de Granito (pico)", + "block.mineralogy.granite_relief_plus": "Relieve de Granito (signo más)", + "block.mineralogy.granite_relief_right": "Relieve de Granito (derecha)", + "block.mineralogy.granite_relief_sword": "Relieve de Granito (espada)", + "block.mineralogy.granite_relief_vertical": "Relieve de Granito (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Relieve de Riolita (hacha)", + "block.mineralogy.rhyolite_relief_blank": "Relieve de Riolita (sin motivo)", + "block.mineralogy.rhyolite_relief_cross": "Relieve de Riolita (cruz)", + "block.mineralogy.rhyolite_relief_hammer": "Relieve de Riolita (martillo)", + "block.mineralogy.rhyolite_relief_hoe": "Relieve de Riolita (azada)", + "block.mineralogy.rhyolite_relief_horizontal": "Relieve de Riolita (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Relieve de Riolita (I)", + "block.mineralogy.rhyolite_relief_left": "Relieve de Riolita (izquierda)", + "block.mineralogy.rhyolite_relief_pickaxe": "Relieve de Riolita (pico)", + "block.mineralogy.rhyolite_relief_plus": "Relieve de Riolita (signo más)", + "block.mineralogy.rhyolite_relief_right": "Relieve de Riolita (derecha)", + "block.mineralogy.rhyolite_relief_sword": "Relieve de Riolita (espada)", + "block.mineralogy.rhyolite_relief_vertical": "Relieve de Riolita (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Relieve de Pegmatita (hacha)", + "block.mineralogy.pegmatite_relief_blank": "Relieve de Pegmatita (sin motivo)", + "block.mineralogy.pegmatite_relief_cross": "Relieve de Pegmatita (cruz)", + "block.mineralogy.pegmatite_relief_hammer": "Relieve de Pegmatita (martillo)", + "block.mineralogy.pegmatite_relief_hoe": "Relieve de Pegmatita (azada)", + "block.mineralogy.pegmatite_relief_horizontal": "Relieve de Pegmatita (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Relieve de Pegmatita (I)", + "block.mineralogy.pegmatite_relief_left": "Relieve de Pegmatita (izquierda)", + "block.mineralogy.pegmatite_relief_pickaxe": "Relieve de Pegmatita (pico)", + "block.mineralogy.pegmatite_relief_plus": "Relieve de Pegmatita (signo más)", + "block.mineralogy.pegmatite_relief_right": "Relieve de Pegmatita (derecha)", + "block.mineralogy.pegmatite_relief_sword": "Relieve de Pegmatita (espada)", + "block.mineralogy.pegmatite_relief_vertical": "Relieve de Pegmatita (vertical)", + "block.mineralogy.shale_relief_axe": "Relieve de Lutita (hacha)", + "block.mineralogy.shale_relief_blank": "Relieve de Lutita (sin motivo)", + "block.mineralogy.shale_relief_cross": "Relieve de Lutita (cruz)", + "block.mineralogy.shale_relief_hammer": "Relieve de Lutita (martillo)", + "block.mineralogy.shale_relief_hoe": "Relieve de Lutita (azada)", + "block.mineralogy.shale_relief_horizontal": "Relieve de Lutita (horizontal)", + "block.mineralogy.shale_relief_i": "Relieve de Lutita (I)", + "block.mineralogy.shale_relief_left": "Relieve de Lutita (izquierda)", + "block.mineralogy.shale_relief_pickaxe": "Relieve de Lutita (pico)", + "block.mineralogy.shale_relief_plus": "Relieve de Lutita (signo más)", + "block.mineralogy.shale_relief_right": "Relieve de Lutita (derecha)", + "block.mineralogy.shale_relief_sword": "Relieve de Lutita (espada)", + "block.mineralogy.shale_relief_vertical": "Relieve de Lutita (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Relieve de Conglomerado (hacha)", + "block.mineralogy.conglomerate_relief_blank": "Relieve de Conglomerado (sin motivo)", + "block.mineralogy.conglomerate_relief_cross": "Relieve de Conglomerado (cruz)", + "block.mineralogy.conglomerate_relief_hammer": "Relieve de Conglomerado (martillo)", + "block.mineralogy.conglomerate_relief_hoe": "Relieve de Conglomerado (azada)", + "block.mineralogy.conglomerate_relief_horizontal": "Relieve de Conglomerado (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Relieve de Conglomerado (I)", + "block.mineralogy.conglomerate_relief_left": "Relieve de Conglomerado (izquierda)", + "block.mineralogy.conglomerate_relief_pickaxe": "Relieve de Conglomerado (pico)", + "block.mineralogy.conglomerate_relief_plus": "Relieve de Conglomerado (signo más)", + "block.mineralogy.conglomerate_relief_right": "Relieve de Conglomerado (derecha)", + "block.mineralogy.conglomerate_relief_sword": "Relieve de Conglomerado (espada)", + "block.mineralogy.conglomerate_relief_vertical": "Relieve de Conglomerado (vertical)", + "block.mineralogy.dolomite_relief_axe": "Relieve de Dolomita (hacha)", + "block.mineralogy.dolomite_relief_blank": "Relieve de Dolomita (sin motivo)", + "block.mineralogy.dolomite_relief_cross": "Relieve de Dolomita (cruz)", + "block.mineralogy.dolomite_relief_hammer": "Relieve de Dolomita (martillo)", + "block.mineralogy.dolomite_relief_hoe": "Relieve de Dolomita (azada)", + "block.mineralogy.dolomite_relief_horizontal": "Relieve de Dolomita (horizontal)", + "block.mineralogy.dolomite_relief_i": "Relieve de Dolomita (I)", + "block.mineralogy.dolomite_relief_left": "Relieve de Dolomita (izquierda)", + "block.mineralogy.dolomite_relief_pickaxe": "Relieve de Dolomita (pico)", + "block.mineralogy.dolomite_relief_plus": "Relieve de Dolomita (signo más)", + "block.mineralogy.dolomite_relief_right": "Relieve de Dolomita (derecha)", + "block.mineralogy.dolomite_relief_sword": "Relieve de Dolomita (espada)", + "block.mineralogy.dolomite_relief_vertical": "Relieve de Dolomita (vertical)", + "block.mineralogy.limestone_relief_axe": "Relieve de Caliza (hacha)", + "block.mineralogy.limestone_relief_blank": "Relieve de Caliza (sin motivo)", + "block.mineralogy.limestone_relief_cross": "Relieve de Caliza (cruz)", + "block.mineralogy.limestone_relief_hammer": "Relieve de Caliza (martillo)", + "block.mineralogy.limestone_relief_hoe": "Relieve de Caliza (azada)", + "block.mineralogy.limestone_relief_horizontal": "Relieve de Caliza (horizontal)", + "block.mineralogy.limestone_relief_i": "Relieve de Caliza (I)", + "block.mineralogy.limestone_relief_left": "Relieve de Caliza (izquierda)", + "block.mineralogy.limestone_relief_pickaxe": "Relieve de Caliza (pico)", + "block.mineralogy.limestone_relief_plus": "Relieve de Caliza (signo más)", + "block.mineralogy.limestone_relief_right": "Relieve de Caliza (derecha)", + "block.mineralogy.limestone_relief_sword": "Relieve de Caliza (espada)", + "block.mineralogy.limestone_relief_vertical": "Relieve de Caliza (vertical)", + "block.mineralogy.marble_relief_axe": "Relieve de Mármol (hacha)", + "block.mineralogy.marble_relief_blank": "Relieve de Mármol (sin motivo)", + "block.mineralogy.marble_relief_cross": "Relieve de Mármol (cruz)", + "block.mineralogy.marble_relief_hammer": "Relieve de Mármol (martillo)", + "block.mineralogy.marble_relief_hoe": "Relieve de Mármol (azada)", + "block.mineralogy.marble_relief_horizontal": "Relieve de Mármol (horizontal)", + "block.mineralogy.marble_relief_i": "Relieve de Mármol (I)", + "block.mineralogy.marble_relief_left": "Relieve de Mármol (izquierda)", + "block.mineralogy.marble_relief_pickaxe": "Relieve de Mármol (pico)", + "block.mineralogy.marble_relief_plus": "Relieve de Mármol (signo más)", + "block.mineralogy.marble_relief_right": "Relieve de Mármol (derecha)", + "block.mineralogy.marble_relief_sword": "Relieve de Mármol (espada)", + "block.mineralogy.marble_relief_vertical": "Relieve de Mármol (vertical)", + "block.mineralogy.slate_relief_axe": "Relieve de Pizarra (hacha)", + "block.mineralogy.slate_relief_blank": "Relieve de Pizarra (sin motivo)", + "block.mineralogy.slate_relief_cross": "Relieve de Pizarra (cruz)", + "block.mineralogy.slate_relief_hammer": "Relieve de Pizarra (martillo)", + "block.mineralogy.slate_relief_hoe": "Relieve de Pizarra (azada)", + "block.mineralogy.slate_relief_horizontal": "Relieve de Pizarra (horizontal)", + "block.mineralogy.slate_relief_i": "Relieve de Pizarra (I)", + "block.mineralogy.slate_relief_left": "Relieve de Pizarra (izquierda)", + "block.mineralogy.slate_relief_pickaxe": "Relieve de Pizarra (pico)", + "block.mineralogy.slate_relief_plus": "Relieve de Pizarra (signo más)", + "block.mineralogy.slate_relief_right": "Relieve de Pizarra (derecha)", + "block.mineralogy.slate_relief_sword": "Relieve de Pizarra (espada)", + "block.mineralogy.slate_relief_vertical": "Relieve de Pizarra (vertical)", + "block.mineralogy.schist_relief_axe": "Relieve de Esquisto (hacha)", + "block.mineralogy.schist_relief_blank": "Relieve de Esquisto (sin motivo)", + "block.mineralogy.schist_relief_cross": "Relieve de Esquisto (cruz)", + "block.mineralogy.schist_relief_hammer": "Relieve de Esquisto (martillo)", + "block.mineralogy.schist_relief_hoe": "Relieve de Esquisto (azada)", + "block.mineralogy.schist_relief_horizontal": "Relieve de Esquisto (horizontal)", + "block.mineralogy.schist_relief_i": "Relieve de Esquisto (I)", + "block.mineralogy.schist_relief_left": "Relieve de Esquisto (izquierda)", + "block.mineralogy.schist_relief_pickaxe": "Relieve de Esquisto (pico)", + "block.mineralogy.schist_relief_plus": "Relieve de Esquisto (signo más)", + "block.mineralogy.schist_relief_right": "Relieve de Esquisto (derecha)", + "block.mineralogy.schist_relief_sword": "Relieve de Esquisto (espada)", + "block.mineralogy.schist_relief_vertical": "Relieve de Esquisto (vertical)", + "block.mineralogy.gneiss_relief_axe": "Relieve de Gneis (hacha)", + "block.mineralogy.gneiss_relief_blank": "Relieve de Gneis (sin motivo)", + "block.mineralogy.gneiss_relief_cross": "Relieve de Gneis (cruz)", + "block.mineralogy.gneiss_relief_hammer": "Relieve de Gneis (martillo)", + "block.mineralogy.gneiss_relief_hoe": "Relieve de Gneis (azada)", + "block.mineralogy.gneiss_relief_horizontal": "Relieve de Gneis (horizontal)", + "block.mineralogy.gneiss_relief_i": "Relieve de Gneis (I)", + "block.mineralogy.gneiss_relief_left": "Relieve de Gneis (izquierda)", + "block.mineralogy.gneiss_relief_pickaxe": "Relieve de Gneis (pico)", + "block.mineralogy.gneiss_relief_plus": "Relieve de Gneis (signo más)", + "block.mineralogy.gneiss_relief_right": "Relieve de Gneis (derecha)", + "block.mineralogy.gneiss_relief_sword": "Relieve de Gneis (espada)", + "block.mineralogy.gneiss_relief_vertical": "Relieve de Gneis (vertical)", + "block.mineralogy.phyllite_relief_axe": "Relieve de Filita (hacha)", + "block.mineralogy.phyllite_relief_blank": "Relieve de Filita (sin motivo)", + "block.mineralogy.phyllite_relief_cross": "Relieve de Filita (cruz)", + "block.mineralogy.phyllite_relief_hammer": "Relieve de Filita (martillo)", + "block.mineralogy.phyllite_relief_hoe": "Relieve de Filita (azada)", + "block.mineralogy.phyllite_relief_horizontal": "Relieve de Filita (horizontal)", + "block.mineralogy.phyllite_relief_i": "Relieve de Filita (I)", + "block.mineralogy.phyllite_relief_left": "Relieve de Filita (izquierda)", + "block.mineralogy.phyllite_relief_pickaxe": "Relieve de Filita (pico)", + "block.mineralogy.phyllite_relief_plus": "Relieve de Filita (signo más)", + "block.mineralogy.phyllite_relief_right": "Relieve de Filita (derecha)", + "block.mineralogy.phyllite_relief_sword": "Relieve de Filita (espada)", + "block.mineralogy.phyllite_relief_vertical": "Relieve de Filita (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Relieve de Anfibolita (hacha)", + "block.mineralogy.amphibolite_relief_blank": "Relieve de Anfibolita (sin motivo)", + "block.mineralogy.amphibolite_relief_cross": "Relieve de Anfibolita (cruz)", + "block.mineralogy.amphibolite_relief_hammer": "Relieve de Anfibolita (martillo)", + "block.mineralogy.amphibolite_relief_hoe": "Relieve de Anfibolita (azada)", + "block.mineralogy.amphibolite_relief_horizontal": "Relieve de Anfibolita (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Relieve de Anfibolita (I)", + "block.mineralogy.amphibolite_relief_left": "Relieve de Anfibolita (izquierda)", + "block.mineralogy.amphibolite_relief_pickaxe": "Relieve de Anfibolita (pico)", + "block.mineralogy.amphibolite_relief_plus": "Relieve de Anfibolita (signo más)", + "block.mineralogy.amphibolite_relief_right": "Relieve de Anfibolita (derecha)", + "block.mineralogy.amphibolite_relief_sword": "Relieve de Anfibolita (espada)", + "block.mineralogy.amphibolite_relief_vertical": "Relieve de Anfibolita (vertical)", + "block.mineralogy.diabase_relief_axe": "Relieve de Diabasa (hacha)", + "block.mineralogy.diabase_relief_blank": "Relieve de Diabasa (sin motivo)", + "block.mineralogy.diabase_relief_cross": "Relieve de Diabasa (cruz)", + "block.mineralogy.diabase_relief_hammer": "Relieve de Diabasa (martillo)", + "block.mineralogy.diabase_relief_hoe": "Relieve de Diabasa (azada)", + "block.mineralogy.diabase_relief_horizontal": "Relieve de Diabasa (horizontal)", + "block.mineralogy.diabase_relief_i": "Relieve de Diabasa (I)", + "block.mineralogy.diabase_relief_left": "Relieve de Diabasa (izquierda)", + "block.mineralogy.diabase_relief_pickaxe": "Relieve de Diabasa (pico)", + "block.mineralogy.diabase_relief_plus": "Relieve de Diabasa (signo más)", + "block.mineralogy.diabase_relief_right": "Relieve de Diabasa (derecha)", + "block.mineralogy.diabase_relief_sword": "Relieve de Diabasa (espada)", + "block.mineralogy.diabase_relief_vertical": "Relieve de Diabasa (vertical)", + "block.mineralogy.gabbro_relief_axe": "Relieve de Gabro (hacha)", + "block.mineralogy.gabbro_relief_blank": "Relieve de Gabro (sin motivo)", + "block.mineralogy.gabbro_relief_cross": "Relieve de Gabro (cruz)", + "block.mineralogy.gabbro_relief_hammer": "Relieve de Gabro (martillo)", + "block.mineralogy.gabbro_relief_hoe": "Relieve de Gabro (azada)", + "block.mineralogy.gabbro_relief_horizontal": "Relieve de Gabro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Relieve de Gabro (I)", + "block.mineralogy.gabbro_relief_left": "Relieve de Gabro (izquierda)", + "block.mineralogy.gabbro_relief_pickaxe": "Relieve de Gabro (pico)", + "block.mineralogy.gabbro_relief_plus": "Relieve de Gabro (signo más)", + "block.mineralogy.gabbro_relief_right": "Relieve de Gabro (derecha)", + "block.mineralogy.gabbro_relief_sword": "Relieve de Gabro (espada)", + "block.mineralogy.gabbro_relief_vertical": "Relieve de Gabro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Relieve de Peridotita (hacha)", + "block.mineralogy.peridotite_relief_blank": "Relieve de Peridotita (sin motivo)", + "block.mineralogy.peridotite_relief_cross": "Relieve de Peridotita (cruz)", + "block.mineralogy.peridotite_relief_hammer": "Relieve de Peridotita (martillo)", + "block.mineralogy.peridotite_relief_hoe": "Relieve de Peridotita (azada)", + "block.mineralogy.peridotite_relief_horizontal": "Relieve de Peridotita (horizontal)", + "block.mineralogy.peridotite_relief_i": "Relieve de Peridotita (I)", + "block.mineralogy.peridotite_relief_left": "Relieve de Peridotita (izquierda)", + "block.mineralogy.peridotite_relief_pickaxe": "Relieve de Peridotita (pico)", + "block.mineralogy.peridotite_relief_plus": "Relieve de Peridotita (signo más)", + "block.mineralogy.peridotite_relief_right": "Relieve de Peridotita (derecha)", + "block.mineralogy.peridotite_relief_sword": "Relieve de Peridotita (espada)", + "block.mineralogy.peridotite_relief_vertical": "Relieve de Peridotita (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Relieve de Vidrio basáltico (hacha)", + "block.mineralogy.basaltic_glass_relief_blank": "Relieve de Vidrio basáltico (sin motivo)", + "block.mineralogy.basaltic_glass_relief_cross": "Relieve de Vidrio basáltico (cruz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Relieve de Vidrio basáltico (martillo)", + "block.mineralogy.basaltic_glass_relief_hoe": "Relieve de Vidrio basáltico (azada)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Relieve de Vidrio basáltico (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Relieve de Vidrio basáltico (I)", + "block.mineralogy.basaltic_glass_relief_left": "Relieve de Vidrio basáltico (izquierda)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Relieve de Vidrio basáltico (pico)", + "block.mineralogy.basaltic_glass_relief_plus": "Relieve de Vidrio basáltico (signo más)", + "block.mineralogy.basaltic_glass_relief_right": "Relieve de Vidrio basáltico (derecha)", + "block.mineralogy.basaltic_glass_relief_sword": "Relieve de Vidrio basáltico (espada)", + "block.mineralogy.basaltic_glass_relief_vertical": "Relieve de Vidrio basáltico (vertical)", + "block.mineralogy.scoria_relief_axe": "Relieve de Escoria (hacha)", + "block.mineralogy.scoria_relief_blank": "Relieve de Escoria (sin motivo)", + "block.mineralogy.scoria_relief_cross": "Relieve de Escoria (cruz)", + "block.mineralogy.scoria_relief_hammer": "Relieve de Escoria (martillo)", + "block.mineralogy.scoria_relief_hoe": "Relieve de Escoria (azada)", + "block.mineralogy.scoria_relief_horizontal": "Relieve de Escoria (horizontal)", + "block.mineralogy.scoria_relief_i": "Relieve de Escoria (I)", + "block.mineralogy.scoria_relief_left": "Relieve de Escoria (izquierda)", + "block.mineralogy.scoria_relief_pickaxe": "Relieve de Escoria (pico)", + "block.mineralogy.scoria_relief_plus": "Relieve de Escoria (signo más)", + "block.mineralogy.scoria_relief_right": "Relieve de Escoria (derecha)", + "block.mineralogy.scoria_relief_sword": "Relieve de Escoria (espada)", + "block.mineralogy.scoria_relief_vertical": "Relieve de Escoria (vertical)", + "block.mineralogy.tuff_relief_axe": "Relieve de Toba (hacha)", + "block.mineralogy.tuff_relief_blank": "Relieve de Toba (sin motivo)", + "block.mineralogy.tuff_relief_cross": "Relieve de Toba (cruz)", + "block.mineralogy.tuff_relief_hammer": "Relieve de Toba (martillo)", + "block.mineralogy.tuff_relief_hoe": "Relieve de Toba (azada)", + "block.mineralogy.tuff_relief_horizontal": "Relieve de Toba (horizontal)", + "block.mineralogy.tuff_relief_i": "Relieve de Toba (I)", + "block.mineralogy.tuff_relief_left": "Relieve de Toba (izquierda)", + "block.mineralogy.tuff_relief_pickaxe": "Relieve de Toba (pico)", + "block.mineralogy.tuff_relief_plus": "Relieve de Toba (signo más)", + "block.mineralogy.tuff_relief_right": "Relieve de Toba (derecha)", + "block.mineralogy.tuff_relief_sword": "Relieve de Toba (espada)", + "block.mineralogy.tuff_relief_vertical": "Relieve de Toba (vertical)", + "block.mineralogy.siltstone_relief_axe": "Relieve de Limolita (hacha)", + "block.mineralogy.siltstone_relief_blank": "Relieve de Limolita (sin motivo)", + "block.mineralogy.siltstone_relief_cross": "Relieve de Limolita (cruz)", + "block.mineralogy.siltstone_relief_hammer": "Relieve de Limolita (martillo)", + "block.mineralogy.siltstone_relief_hoe": "Relieve de Limolita (azada)", + "block.mineralogy.siltstone_relief_horizontal": "Relieve de Limolita (horizontal)", + "block.mineralogy.siltstone_relief_i": "Relieve de Limolita (I)", + "block.mineralogy.siltstone_relief_left": "Relieve de Limolita (izquierda)", + "block.mineralogy.siltstone_relief_pickaxe": "Relieve de Limolita (pico)", + "block.mineralogy.siltstone_relief_plus": "Relieve de Limolita (signo más)", + "block.mineralogy.siltstone_relief_right": "Relieve de Limolita (derecha)", + "block.mineralogy.siltstone_relief_sword": "Relieve de Limolita (espada)", + "block.mineralogy.siltstone_relief_vertical": "Relieve de Limolita (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Relieve de Sal de roca (hacha)", + "block.mineralogy.rock_salt_relief_blank": "Relieve de Sal de roca (sin motivo)", + "block.mineralogy.rock_salt_relief_cross": "Relieve de Sal de roca (cruz)", + "block.mineralogy.rock_salt_relief_hammer": "Relieve de Sal de roca (martillo)", + "block.mineralogy.rock_salt_relief_hoe": "Relieve de Sal de roca (azada)", + "block.mineralogy.rock_salt_relief_horizontal": "Relieve de Sal de roca (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Relieve de Sal de roca (I)", + "block.mineralogy.rock_salt_relief_left": "Relieve de Sal de roca (izquierda)", + "block.mineralogy.rock_salt_relief_pickaxe": "Relieve de Sal de roca (pico)", + "block.mineralogy.rock_salt_relief_plus": "Relieve de Sal de roca (signo más)", + "block.mineralogy.rock_salt_relief_right": "Relieve de Sal de roca (derecha)", + "block.mineralogy.rock_salt_relief_sword": "Relieve de Sal de roca (espada)", + "block.mineralogy.rock_salt_relief_vertical": "Relieve de Sal de roca (vertical)", + "block.mineralogy.hornfels_relief_axe": "Relieve de Corneana (hacha)", + "block.mineralogy.hornfels_relief_blank": "Relieve de Corneana (sin motivo)", + "block.mineralogy.hornfels_relief_cross": "Relieve de Corneana (cruz)", + "block.mineralogy.hornfels_relief_hammer": "Relieve de Corneana (martillo)", + "block.mineralogy.hornfels_relief_hoe": "Relieve de Corneana (azada)", + "block.mineralogy.hornfels_relief_horizontal": "Relieve de Corneana (horizontal)", + "block.mineralogy.hornfels_relief_i": "Relieve de Corneana (I)", + "block.mineralogy.hornfels_relief_left": "Relieve de Corneana (izquierda)", + "block.mineralogy.hornfels_relief_pickaxe": "Relieve de Corneana (pico)", + "block.mineralogy.hornfels_relief_plus": "Relieve de Corneana (signo más)", + "block.mineralogy.hornfels_relief_right": "Relieve de Corneana (derecha)", + "block.mineralogy.hornfels_relief_sword": "Relieve de Corneana (espada)", + "block.mineralogy.hornfels_relief_vertical": "Relieve de Corneana (vertical)", + "block.mineralogy.quartzite_relief_axe": "Relieve de Cuarcita (hacha)", + "block.mineralogy.quartzite_relief_blank": "Relieve de Cuarcita (sin motivo)", + "block.mineralogy.quartzite_relief_cross": "Relieve de Cuarcita (cruz)", + "block.mineralogy.quartzite_relief_hammer": "Relieve de Cuarcita (martillo)", + "block.mineralogy.quartzite_relief_hoe": "Relieve de Cuarcita (azada)", + "block.mineralogy.quartzite_relief_horizontal": "Relieve de Cuarcita (horizontal)", + "block.mineralogy.quartzite_relief_i": "Relieve de Cuarcita (I)", + "block.mineralogy.quartzite_relief_left": "Relieve de Cuarcita (izquierda)", + "block.mineralogy.quartzite_relief_pickaxe": "Relieve de Cuarcita (pico)", + "block.mineralogy.quartzite_relief_plus": "Relieve de Cuarcita (signo más)", + "block.mineralogy.quartzite_relief_right": "Relieve de Cuarcita (derecha)", + "block.mineralogy.quartzite_relief_sword": "Relieve de Cuarcita (espada)", + "block.mineralogy.quartzite_relief_vertical": "Relieve de Cuarcita (vertical)", + "block.mineralogy.novaculite_relief_axe": "Relieve de Novaculita (hacha)", + "block.mineralogy.novaculite_relief_blank": "Relieve de Novaculita (sin motivo)", + "block.mineralogy.novaculite_relief_cross": "Relieve de Novaculita (cruz)", + "block.mineralogy.novaculite_relief_hammer": "Relieve de Novaculita (martillo)", + "block.mineralogy.novaculite_relief_hoe": "Relieve de Novaculita (azada)", + "block.mineralogy.novaculite_relief_horizontal": "Relieve de Novaculita (horizontal)", + "block.mineralogy.novaculite_relief_i": "Relieve de Novaculita (I)", + "block.mineralogy.novaculite_relief_left": "Relieve de Novaculita (izquierda)", + "block.mineralogy.novaculite_relief_pickaxe": "Relieve de Novaculita (pico)", + "block.mineralogy.novaculite_relief_plus": "Relieve de Novaculita (signo más)", + "block.mineralogy.novaculite_relief_right": "Relieve de Novaculita (derecha)", + "block.mineralogy.novaculite_relief_sword": "Relieve de Novaculita (espada)", + "block.mineralogy.novaculite_relief_vertical": "Relieve de Novaculita (vertical)", "itemGroup.mineralogy.mineralogy": "Mineralogía", - "itemGroup.mineralogy.rock": "Mineralogía de rocas", + "itemGroup.mineralogy.rock": "Rocas de Mineralogía", "itemGroup.mineralogy.stair": "Escaleras de Mineralogía", "itemGroup.mineralogy.slab": "Losas de Mineralogía", "itemGroup.mineralogy.wall": "Muros de Mineralogía", - "itemGroup.mineralogy.item": "Artículos de Mineralogía" + "itemGroup.mineralogy.item": "Objetos de Mineralogía", + "block.mineralogy.crude_oil": "Petróleo crudo", + "item.mineralogy.crude_oil_bucket": "Cubo de petróleo crudo", + "fluid.mineralogy.crude_oil": "Petróleo crudo", + "advancements.mineralogy.all_the_rocks.title": "Todas las rocas", + "advancements.mineralogy.all_the_rocks.description": "¡Has encontrado todos los tipos de roca estándar de Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/fr_ca.json b/src/main/resources/assets/mineralogy/lang/fr_ca.json index e58696710..adfa816a0 100644 --- a/src/main/resources/assets/mineralogy/lang/fr_ca.json +++ b/src/main/resources/assets/mineralogy/lang/fr_ca.json @@ -1,196 +1,196 @@ { "block.mineralogy.andesite": "Andésite", - "block.mineralogy.andesite_stairs": "Escaliers Andésites", - "block.mineralogy.andesite_slab": "Dalle d'Andésite", - "block.mineralogy.andesite_brick": "Brique d'Andésite", - "block.mineralogy.andesite_brick_stairs": "Escaliers en brique d'Andesite", - "block.mineralogy.andesite_brick_slab": "Dalle de brique d'Andesite", - "block.mineralogy.andesite_smooth": "Andésite polie", - "block.mineralogy.andesite_smooth_stairs": "Escaliers polis d'Andésite", - "block.mineralogy.andesite_smooth_slab": "Dalle polie d'Andésite", - "block.mineralogy.andesite_smooth_brick": "Brique polie d'Andésite", - "block.mineralogy.andesite_smooth_brick_stairs": "Escaliers en brique polis par Andesite", - "block.mineralogy.andesite_smooth_brick_slab": "Dalle de brique polie d'Andésite", + "block.mineralogy.andesite_stairs": "Escalier en Andésite", + "block.mineralogy.andesite_slab": "Dalle en Andésite", + "block.mineralogy.andesite_brick": "Briques en Andésite", + "block.mineralogy.andesite_brick_stairs": "Escalier en briques de Andésite", + "block.mineralogy.andesite_brick_slab": "Dalle en briques de Andésite", + "block.mineralogy.andesite_smooth": "Bloc poli en Andésite", + "block.mineralogy.andesite_smooth_stairs": "Escalier poli en Andésite", + "block.mineralogy.andesite_smooth_slab": "Dalle polie en Andésite", + "block.mineralogy.andesite_smooth_brick": "Briques polies en Andésite", + "block.mineralogy.andesite_smooth_brick_stairs": "Escalier en briques polies de Andésite", + "block.mineralogy.andesite_smooth_brick_slab": "Dalle en briques polies de Andésite", "block.mineralogy.basalt": "Basalte", - "block.mineralogy.basalt_stairs": "Escaliers basaltiques", - "block.mineralogy.basalt_slab": "Dalle de basalte", - "block.mineralogy.basalt_brick": "Brique de basalte", - "block.mineralogy.basalt_brick_stairs": "Escaliers de brique de basalte", - "block.mineralogy.basalt_brick_slab": "Dalle de brique de basalte", - "block.mineralogy.basalt_smooth": "Basalte poli", - "block.mineralogy.basalt_smooth_stairs": "Escaliers polis au basalte", - "block.mineralogy.basalt_smooth_slab": "Dalle polie au basalte", - "block.mineralogy.basalt_smooth_brick": "Brique polie au basalte", - "block.mineralogy.basalt_smooth_brick_stairs": "Escaliers en brique polis au basalte", - "block.mineralogy.basalt_smooth_brick_slab": "Dalle de brique polie au basalte", + "block.mineralogy.basalt_stairs": "Escalier en Basalte", + "block.mineralogy.basalt_slab": "Dalle en Basalte", + "block.mineralogy.basalt_brick": "Briques en Basalte", + "block.mineralogy.basalt_brick_stairs": "Escalier en briques de Basalte", + "block.mineralogy.basalt_brick_slab": "Dalle en briques de Basalte", + "block.mineralogy.basalt_smooth": "Bloc poli en Basalte", + "block.mineralogy.basalt_smooth_stairs": "Escalier poli en Basalte", + "block.mineralogy.basalt_smooth_slab": "Dalle polie en Basalte", + "block.mineralogy.basalt_smooth_brick": "Briques polies en Basalte", + "block.mineralogy.basalt_smooth_brick_stairs": "Escalier en briques polies de Basalte", + "block.mineralogy.basalt_smooth_brick_slab": "Dalle en briques polies de Basalte", "block.mineralogy.diorite": "Diorite", - "block.mineralogy.diorite_stairs": "Escaliers Diorite", - "block.mineralogy.diorite_slab": "Dalle de Diorite", - "block.mineralogy.diorite_brick": "Brique Diorite", - "block.mineralogy.diorite_brick_stairs": "Escaliers en brique Diorite", - "block.mineralogy.diorite_brick_slab": "Dalle de brique Diorite", - "block.mineralogy.diorite_smooth": "Diorite polie", - "block.mineralogy.diorite_smooth_stairs": "Escaliers polis au Diorite", - "block.mineralogy.diorite_smooth_slab": "Dalle polie Diorite", - "block.mineralogy.diorite_smooth_brick": "Brique polie Diorite", - "block.mineralogy.diorite_smooth_brick_stairs": "Escaliers en briques polies Diorite", - "block.mineralogy.diorite_smooth_brick_slab": "Dalle de brique polie Diorite", - "block.mineralogy.granite": "Granit", - "block.mineralogy.granite_stairs": "Escaliers en granit", - "block.mineralogy.granite_slab": "Dalle de granit", - "block.mineralogy.granite_brick": "Brique de granit", - "block.mineralogy.granite_brick_stairs": "Escaliers en brique de granit", - "block.mineralogy.granite_brick_slab": "Dalle de brique de granit", - "block.mineralogy.granite_smooth": "Granit poli", - "block.mineralogy.granite_smooth_stairs": "Escaliers polis de granit", - "block.mineralogy.granite_smooth_slab": "Dalle polie de granit", - "block.mineralogy.granite_smooth_brick": "Brique polie de granit", - "block.mineralogy.granite_smooth_brick_stairs": "Escaliers en brique polis de granit", - "block.mineralogy.granite_smooth_brick_slab": "Dalle de brique polie de granit", + "block.mineralogy.diorite_stairs": "Escalier en Diorite", + "block.mineralogy.diorite_slab": "Dalle en Diorite", + "block.mineralogy.diorite_brick": "Briques en Diorite", + "block.mineralogy.diorite_brick_stairs": "Escalier en briques de Diorite", + "block.mineralogy.diorite_brick_slab": "Dalle en briques de Diorite", + "block.mineralogy.diorite_smooth": "Bloc poli en Diorite", + "block.mineralogy.diorite_smooth_stairs": "Escalier poli en Diorite", + "block.mineralogy.diorite_smooth_slab": "Dalle polie en Diorite", + "block.mineralogy.diorite_smooth_brick": "Briques polies en Diorite", + "block.mineralogy.diorite_smooth_brick_stairs": "Escalier en briques polies de Diorite", + "block.mineralogy.diorite_smooth_brick_slab": "Dalle en briques polies de Diorite", + "block.mineralogy.granite": "Granite", + "block.mineralogy.granite_stairs": "Escalier en Granite", + "block.mineralogy.granite_slab": "Dalle en Granite", + "block.mineralogy.granite_brick": "Briques en Granite", + "block.mineralogy.granite_brick_stairs": "Escalier en briques de Granite", + "block.mineralogy.granite_brick_slab": "Dalle en briques de Granite", + "block.mineralogy.granite_smooth": "Bloc poli en Granite", + "block.mineralogy.granite_smooth_stairs": "Escalier poli en Granite", + "block.mineralogy.granite_smooth_slab": "Dalle polie en Granite", + "block.mineralogy.granite_smooth_brick": "Briques polies en Granite", + "block.mineralogy.granite_smooth_brick_stairs": "Escalier en briques polies de Granite", + "block.mineralogy.granite_smooth_brick_slab": "Dalle en briques polies de Granite", "block.mineralogy.rhyolite": "Rhyolite", - "block.mineralogy.rhyolite_stairs": "Escaliers en rhyolite", - "block.mineralogy.rhyolite_slab": "Dalle de rhyolite", - "block.mineralogy.rhyolite_brick": "Brique de rhyolite", - "block.mineralogy.rhyolite_brick_stairs": "Escaliers en brique de rhyolite", - "block.mineralogy.rhyolite_brick_slab": "Dalle de brique de rhyolite", - "block.mineralogy.rhyolite_smooth": "Rhyolite polie", - "block.mineralogy.rhyolite_smooth_stairs": "Escaliers polis à la rhyolite", - "block.mineralogy.rhyolite_smooth_slab": "Dalle polie à la rhyolite", - "block.mineralogy.rhyolite_smooth_brick": "Brique polie de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaliers en briques polies à la rhyolite", - "block.mineralogy.rhyolite_smooth_brick_slab": "Dalle de brique polie rhyolite", + "block.mineralogy.rhyolite_stairs": "Escalier en Rhyolite", + "block.mineralogy.rhyolite_slab": "Dalle en Rhyolite", + "block.mineralogy.rhyolite_brick": "Briques en Rhyolite", + "block.mineralogy.rhyolite_brick_stairs": "Escalier en briques de Rhyolite", + "block.mineralogy.rhyolite_brick_slab": "Dalle en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth": "Bloc poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_stairs": "Escalier poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_slab": "Dalle polie en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick": "Briques polies en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escalier en briques polies de Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_slab": "Dalle en briques polies de Rhyolite", "block.mineralogy.pegmatite": "Pegmatite", - "block.mineralogy.pegmatite_stairs": "Escaliers en Pegmatite", - "block.mineralogy.pegmatite_slab": "Dalle de Pegmatite", - "block.mineralogy.pegmatite_brick": "Brique de Pegmatite", - "block.mineralogy.pegmatite_brick_stairs": "Escaliers en brique de Pegmatite", - "block.mineralogy.pegmatite_brick_slab": "Dalle de brique de Pegmatite", - "block.mineralogy.pegmatite_smooth": "Pegmatite polie", - "block.mineralogy.pegmatite_smooth_stairs": "Escaliers polis à la Pegmatite", - "block.mineralogy.pegmatite_smooth_slab": "Dalle polie de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick": "Brique polie de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaliers en briques polies à la Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_slab": "Dalle de brique polie par Pegmatite", + "block.mineralogy.pegmatite_stairs": "Escalier en Pegmatite", + "block.mineralogy.pegmatite_slab": "Dalle en Pegmatite", + "block.mineralogy.pegmatite_brick": "Briques en Pegmatite", + "block.mineralogy.pegmatite_brick_stairs": "Escalier en briques de Pegmatite", + "block.mineralogy.pegmatite_brick_slab": "Dalle en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth": "Bloc poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_stairs": "Escalier poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_slab": "Dalle polie en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick": "Briques polies en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escalier en briques polies de Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_slab": "Dalle en briques polies de Pegmatite", "block.mineralogy.shale": "Schiste argileux", - "block.mineralogy.shale_stairs": "Escaliers de schiste", - "block.mineralogy.shale_slab": "Dalle de schiste", - "block.mineralogy.shale_brick": "Brique de schiste", - "block.mineralogy.shale_brick_stairs": "Escaliers de briques de schiste", - "block.mineralogy.shale_brick_slab": "Dalle de brique de schiste", - "block.mineralogy.shale_smooth": "Schiste poli", - "block.mineralogy.shale_smooth_stairs": "Escaliers polis au schiste", - "block.mineralogy.shale_smooth_slab": "Dalle polie au schiste", - "block.mineralogy.shale_smooth_brick": "Brique polie schiste", - "block.mineralogy.shale_smooth_brick_stairs": "Escaliers de brique polis au schiste", - "block.mineralogy.shale_smooth_brick_slab": "Dalle de brique polie au schiste", + "block.mineralogy.shale_stairs": "Escalier en Schiste argileux", + "block.mineralogy.shale_slab": "Dalle en Schiste argileux", + "block.mineralogy.shale_brick": "Briques en Schiste argileux", + "block.mineralogy.shale_brick_stairs": "Escalier en briques de Schiste argileux", + "block.mineralogy.shale_brick_slab": "Dalle en briques de Schiste argileux", + "block.mineralogy.shale_smooth": "Bloc poli en Schiste argileux", + "block.mineralogy.shale_smooth_stairs": "Escalier poli en Schiste argileux", + "block.mineralogy.shale_smooth_slab": "Dalle polie en Schiste argileux", + "block.mineralogy.shale_smooth_brick": "Briques polies en Schiste argileux", + "block.mineralogy.shale_smooth_brick_stairs": "Escalier en briques polies de Schiste argileux", + "block.mineralogy.shale_smooth_brick_slab": "Dalle en briques polies de Schiste argileux", "block.mineralogy.conglomerate": "Conglomérat", - "block.mineralogy.conglomerate_stairs": "Escaliers du Conglomérat", - "block.mineralogy.conglomerate_slab": "Dalle de conglomérat", - "block.mineralogy.conglomerate_brick": "Brique Conglomérat", - "block.mineralogy.conglomerate_brick_stairs": "Escaliers en brique de Conglomérat", - "block.mineralogy.conglomerate_brick_slab": "Dalle de brique de conglomérat", - "block.mineralogy.conglomerate_smooth": "Conglomérat poli", - "block.mineralogy.conglomerate_smooth_stairs": "Escaliers polis au conglomérat", - "block.mineralogy.conglomerate_smooth_slab": "Conglomerate dalle polie", - "block.mineralogy.conglomerate_smooth_brick": "Conglomerate brique polie", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Conglomerate poli escalier en brique", - "block.mineralogy.conglomerate_smooth_brick_slab": "Plaque de brique polie Conglomerate", + "block.mineralogy.conglomerate_stairs": "Escalier en Conglomérat", + "block.mineralogy.conglomerate_slab": "Dalle en Conglomérat", + "block.mineralogy.conglomerate_brick": "Briques en Conglomérat", + "block.mineralogy.conglomerate_brick_stairs": "Escalier en briques de Conglomérat", + "block.mineralogy.conglomerate_brick_slab": "Dalle en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth": "Bloc poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_stairs": "Escalier poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_slab": "Dalle polie en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick": "Briques polies en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escalier en briques polies de Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_slab": "Dalle en briques polies de Conglomérat", "block.mineralogy.dolomite": "Dolomie", - "block.mineralogy.dolomite_stairs": "Escaliers en dolomite", - "block.mineralogy.dolomite_slab": "Dalle de dolomite", - "block.mineralogy.dolomite_brick": "Brique de dolomite", - "block.mineralogy.dolomite_brick_stairs": "Escaliers de brique en dolomite", - "block.mineralogy.dolomite_brick_slab": "Dalle de brique en dolomite", - "block.mineralogy.dolomite_smooth": "Dolomite polie", - "block.mineralogy.dolomite_smooth_stairs": "Escaliers polis en dolomite", - "block.mineralogy.dolomite_smooth_slab": "Dalle polie en dolomite", - "block.mineralogy.dolomite_smooth_brick": "Brique polie de Dolomite", - "block.mineralogy.dolomite_smooth_brick_stairs": "Escaliers en briques polies dolomitiques", - "block.mineralogy.dolomite_smooth_brick_slab": "Dalle de brique polie en dolomite", + "block.mineralogy.dolomite_stairs": "Escalier en Dolomie", + "block.mineralogy.dolomite_slab": "Dalle en Dolomie", + "block.mineralogy.dolomite_brick": "Briques en Dolomie", + "block.mineralogy.dolomite_brick_stairs": "Escalier en briques de Dolomie", + "block.mineralogy.dolomite_brick_slab": "Dalle en briques de Dolomie", + "block.mineralogy.dolomite_smooth": "Bloc poli en Dolomie", + "block.mineralogy.dolomite_smooth_stairs": "Escalier poli en Dolomie", + "block.mineralogy.dolomite_smooth_slab": "Dalle polie en Dolomie", + "block.mineralogy.dolomite_smooth_brick": "Briques polies en Dolomie", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escalier en briques polies de Dolomie", + "block.mineralogy.dolomite_smooth_brick_slab": "Dalle en briques polies de Dolomie", "block.mineralogy.limestone": "Calcaire", - "block.mineralogy.limestone_stairs": "Escaliers en calcaire", - "block.mineralogy.limestone_slab": "Dalle de calcaire", - "block.mineralogy.limestone_brick": "Brique de calcaire", - "block.mineralogy.limestone_brick_stairs": "Escaliers en brique calcaire", - "block.mineralogy.limestone_brick_slab": "Dalle de brique en calcaire", - "block.mineralogy.limestone_smooth": "Calcaire poli", - "block.mineralogy.limestone_smooth_stairs": "Escaliers polis au calcaire", - "block.mineralogy.limestone_smooth_slab": "Dalle polie en calcaire", - "block.mineralogy.limestone_smooth_brick": "Brique polie au calcaire", - "block.mineralogy.limestone_smooth_brick_stairs": "Escaliers en briques polis à la chaux", - "block.mineralogy.limestone_smooth_brick_slab": "Dalle de brique polie au calcaire", + "block.mineralogy.limestone_stairs": "Escalier en Calcaire", + "block.mineralogy.limestone_slab": "Dalle en Calcaire", + "block.mineralogy.limestone_brick": "Briques en Calcaire", + "block.mineralogy.limestone_brick_stairs": "Escalier en briques de Calcaire", + "block.mineralogy.limestone_brick_slab": "Dalle en briques de Calcaire", + "block.mineralogy.limestone_smooth": "Bloc poli en Calcaire", + "block.mineralogy.limestone_smooth_stairs": "Escalier poli en Calcaire", + "block.mineralogy.limestone_smooth_slab": "Dalle polie en Calcaire", + "block.mineralogy.limestone_smooth_brick": "Briques polies en Calcaire", + "block.mineralogy.limestone_smooth_brick_stairs": "Escalier en briques polies de Calcaire", + "block.mineralogy.limestone_smooth_brick_slab": "Dalle en briques polies de Calcaire", "block.mineralogy.slate": "Ardoise", - "block.mineralogy.slate_stairs": "Escaliers en ardoise", - "block.mineralogy.slate_slab": "Dalle d'ardoise", - "block.mineralogy.slate_brick": "Brique d'ardoise", - "block.mineralogy.slate_brick_stairs": "Escaliers en briques d'ardoise", - "block.mineralogy.slate_brick_slab": "Dalle de briques d'ardoise", - "block.mineralogy.slate_smooth": "Ardoise polie", - "block.mineralogy.slate_smooth_stairs": "Escaliers polis en ardoise", - "block.mineralogy.slate_smooth_slab": "Dalle polie en ardoise", - "block.mineralogy.slate_smooth_brick": "Brique polie d'ardoise", - "block.mineralogy.slate_smooth_brick_stairs": "Escaliers en brique polie en ardoise", - "block.mineralogy.slate_smooth_brick_slab": "Dalle de brique polie ardoise", - "block.mineralogy.schist": "Schiste", - "block.mineralogy.schist_stairs": "Escaliers de schiste", - "block.mineralogy.schist_slab": "Dalle de schiste", - "block.mineralogy.schist_brick": "Brique de schiste", - "block.mineralogy.schist_brick_stairs": "Escaliers en brique de schiste", - "block.mineralogy.schist_brick_slab": "Dalle de brique de schiste", - "block.mineralogy.schist_smooth": "Schiste poli", - "block.mineralogy.schist_smooth_stairs": "Escaliers polis Schiste", - "block.mineralogy.schist_smooth_slab": "Dalle polie par schiste", - "block.mineralogy.schist_smooth_brick": "Brique polie par schiste", - "block.mineralogy.schist_smooth_brick_stairs": "Escaliers de brique polis par schiste", - "block.mineralogy.schist_smooth_brick_slab": "Dalle de brique polie par schiste", + "block.mineralogy.slate_stairs": "Escalier en Ardoise", + "block.mineralogy.slate_slab": "Dalle en Ardoise", + "block.mineralogy.slate_brick": "Briques en Ardoise", + "block.mineralogy.slate_brick_stairs": "Escalier en briques de Ardoise", + "block.mineralogy.slate_brick_slab": "Dalle en briques de Ardoise", + "block.mineralogy.slate_smooth": "Bloc poli en Ardoise", + "block.mineralogy.slate_smooth_stairs": "Escalier poli en Ardoise", + "block.mineralogy.slate_smooth_slab": "Dalle polie en Ardoise", + "block.mineralogy.slate_smooth_brick": "Briques polies en Ardoise", + "block.mineralogy.slate_smooth_brick_stairs": "Escalier en briques polies de Ardoise", + "block.mineralogy.slate_smooth_brick_slab": "Dalle en briques polies de Ardoise", + "block.mineralogy.schist": "Micaschiste", + "block.mineralogy.schist_stairs": "Escalier en Micaschiste", + "block.mineralogy.schist_slab": "Dalle en Micaschiste", + "block.mineralogy.schist_brick": "Briques en Micaschiste", + "block.mineralogy.schist_brick_stairs": "Escalier en briques de Micaschiste", + "block.mineralogy.schist_brick_slab": "Dalle en briques de Micaschiste", + "block.mineralogy.schist_smooth": "Bloc poli en Micaschiste", + "block.mineralogy.schist_smooth_stairs": "Escalier poli en Micaschiste", + "block.mineralogy.schist_smooth_slab": "Dalle polie en Micaschiste", + "block.mineralogy.schist_smooth_brick": "Briques polies en Micaschiste", + "block.mineralogy.schist_smooth_brick_stairs": "Escalier en briques polies de Micaschiste", + "block.mineralogy.schist_smooth_brick_slab": "Dalle en briques polies de Micaschiste", "block.mineralogy.gneiss": "Gneiss", - "block.mineralogy.gneiss_stairs": "Escaliers de gneiss", - "block.mineralogy.gneiss_slab": "Dalle de gneiss", - "block.mineralogy.gneiss_brick": "Brique de gneiss", - "block.mineralogy.gneiss_brick_stairs": "Escaliers en brique de gneiss", - "block.mineralogy.gneiss_brick_slab": "Dalle de brique de gneiss", - "block.mineralogy.gneiss_smooth": "Gneiss poli", - "block.mineralogy.gneiss_smooth_stairs": "Escaliers polis Gneiss", - "block.mineralogy.gneiss_smooth_slab": "Dalle polie au gneiss", - "block.mineralogy.gneiss_smooth_brick": "Brique polie gneiss", - "block.mineralogy.gneiss_smooth_brick_stairs": "Escaliers en brique polis gneiss", - "block.mineralogy.gneiss_smooth_brick_slab": "Dalle de brique polie par gneiss", + "block.mineralogy.gneiss_stairs": "Escalier en Gneiss", + "block.mineralogy.gneiss_slab": "Dalle en Gneiss", + "block.mineralogy.gneiss_brick": "Briques en Gneiss", + "block.mineralogy.gneiss_brick_stairs": "Escalier en briques de Gneiss", + "block.mineralogy.gneiss_brick_slab": "Dalle en briques de Gneiss", + "block.mineralogy.gneiss_smooth": "Bloc poli en Gneiss", + "block.mineralogy.gneiss_smooth_stairs": "Escalier poli en Gneiss", + "block.mineralogy.gneiss_smooth_slab": "Dalle polie en Gneiss", + "block.mineralogy.gneiss_smooth_brick": "Briques polies en Gneiss", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escalier en briques polies de Gneiss", + "block.mineralogy.gneiss_smooth_brick_slab": "Dalle en briques polies de Gneiss", "block.mineralogy.marble": "Marbre", - "block.mineralogy.marble_stairs": "Escaliers en marbre", - "block.mineralogy.marble_slab": "Dalle de marbre", - "block.mineralogy.marble_brick": "Brique de marbre", - "block.mineralogy.marble_brick_stairs": "Escaliers en brique de marbre", - "block.mineralogy.marble_brick_slab": "Dalle de brique en marbre", - "block.mineralogy.marble_smooth": "Marbre poli", - "block.mineralogy.marble_smooth_stairs": "Escaliers polis en marbre", - "block.mineralogy.marble_smooth_slab": "Dalle polie en marbre", - "block.mineralogy.marble_smooth_brick": "Brique polie en marbre", - "block.mineralogy.marble_smooth_brick_stairs": "Escaliers en brique polis en marbre", - "block.mineralogy.marble_smooth_brick_slab": "Dalle de brique polie en marbre", - "block.mineralogy.phyllite": "Phyllite", - "block.mineralogy.phyllite_stairs": "Escaliers en phyllite", - "block.mineralogy.phyllite_slab": "Dalle de Phyllite", - "block.mineralogy.phyllite_brick": "Brique de phyllite", - "block.mineralogy.phyllite_brick_stairs": "Escaliers en brique de phyllite", - "block.mineralogy.phyllite_brick_slab": "Dalle de brique de phyllite", - "block.mineralogy.phyllite_smooth": "Phyllite polie", - "block.mineralogy.phyllite_smooth_stairs": "Escaliers polis en phyllite", - "block.mineralogy.phyllite_smooth_slab": "Dalle polie en phyllite", - "block.mineralogy.phyllite_smooth_brick": "Brique polie de phyllite", - "block.mineralogy.phyllite_smooth_brick_stairs": "Escaliers en briques polies en phyllite", - "block.mineralogy.phyllite_smooth_brick_slab": "Dalle de brique poli en phyllite", + "block.mineralogy.marble_stairs": "Escalier en Marbre", + "block.mineralogy.marble_slab": "Dalle en Marbre", + "block.mineralogy.marble_brick": "Briques en Marbre", + "block.mineralogy.marble_brick_stairs": "Escalier en briques de Marbre", + "block.mineralogy.marble_brick_slab": "Dalle en briques de Marbre", + "block.mineralogy.marble_smooth": "Bloc poli en Marbre", + "block.mineralogy.marble_smooth_stairs": "Escalier poli en Marbre", + "block.mineralogy.marble_smooth_slab": "Dalle polie en Marbre", + "block.mineralogy.marble_smooth_brick": "Briques polies en Marbre", + "block.mineralogy.marble_smooth_brick_stairs": "Escalier en briques polies de Marbre", + "block.mineralogy.marble_smooth_brick_slab": "Dalle en briques polies de Marbre", + "block.mineralogy.phyllite": "Phyllade", + "block.mineralogy.phyllite_stairs": "Escalier en Phyllade", + "block.mineralogy.phyllite_slab": "Dalle en Phyllade", + "block.mineralogy.phyllite_brick": "Briques en Phyllade", + "block.mineralogy.phyllite_brick_stairs": "Escalier en briques de Phyllade", + "block.mineralogy.phyllite_brick_slab": "Dalle en briques de Phyllade", + "block.mineralogy.phyllite_smooth": "Bloc poli en Phyllade", + "block.mineralogy.phyllite_smooth_stairs": "Escalier poli en Phyllade", + "block.mineralogy.phyllite_smooth_slab": "Dalle polie en Phyllade", + "block.mineralogy.phyllite_smooth_brick": "Briques polies en Phyllade", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escalier en briques polies de Phyllade", + "block.mineralogy.phyllite_smooth_brick_slab": "Dalle en briques polies de Phyllade", "block.mineralogy.amphibolite": "Amphibolite", - "block.mineralogy.amphibolite_stairs": "Escaliers amphibolites", - "block.mineralogy.amphibolite_slab": "Plaque d'amphibolite", - "block.mineralogy.amphibolite_brick": "Brique d'amphibolite", - "block.mineralogy.amphibolite_brick_stairs": "Escaliers en brique amphibolite", - "block.mineralogy.amphibolite_brick_slab": "Plaque de brique d'amphibolite", - "block.mineralogy.amphibolite_smooth": "Amphibolite polie", - "block.mineralogy.amphibolite_smooth_stairs": "Escaliers polis à l'amphibolite", - "block.mineralogy.amphibolite_smooth_slab": "Dalle polie d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick": "Brique polie d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaliers en brique polis à l'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_slab": "Plaque de brique polie à l'amphibolite", + "block.mineralogy.amphibolite_stairs": "Escalier en Amphibolite", + "block.mineralogy.amphibolite_slab": "Dalle en Amphibolite", + "block.mineralogy.amphibolite_brick": "Briques en Amphibolite", + "block.mineralogy.amphibolite_brick_stairs": "Escalier en briques de Amphibolite", + "block.mineralogy.amphibolite_brick_slab": "Dalle en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth": "Bloc poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_stairs": "Escalier poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_slab": "Dalle polie en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick": "Briques polies en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escalier en briques polies de Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_slab": "Dalle en briques polies de Amphibolite", "item.mineralogy.gypsum_dust": "Poudre de gypse", "item.mineralogy.sulfur_dust": "Poudre de soufre", "item.mineralogy.phosphorous_dust": "Poudre de phosphore", @@ -201,740 +201,740 @@ "block.mineralogy.pumice": "Pierre ponce", "block.mineralogy.sulfur_block": "Soufre", "block.mineralogy.sulfur_ore": "Minerai de soufre", - "block.mineralogy.phosphorous_block": "Phosphoreux", + "block.mineralogy.phosphorous_block": "Phosphore", "block.mineralogy.phosphorous_ore": "Minerai de phosphore", "block.mineralogy.nitrate_block": "Nitrate", "block.mineralogy.nitrate_ore": "Minerai de nitrate", - "block.mineralogy.drywall_black": "Cloison sèche noire", - "block.mineralogy.drywall_red": "Cloison sèche rouge", - "block.mineralogy.drywall_green": "Cloison sèche verte", - "block.mineralogy.drywall_brown": "Cloison sèche brune", - "block.mineralogy.drywall_blue": "Cloison sèche bleue", - "block.mineralogy.drywall_purple": "Cloison sèche pourpre", - "block.mineralogy.drywall_cyan": "Cloison sèche cyan", - "block.mineralogy.drywall_silver": "Cloison sèche plafond gris", - "block.mineralogy.drywall_gray": "Cloison sèche grise", - "block.mineralogy.drywall_pink": "Cloison sèche rose", - "block.mineralogy.drywall_lime": "Cloison sèche vert-lime", - "block.mineralogy.drywall_yellow": "Cloison sèche jaune", - "block.mineralogy.drywall_light_blue": "Cloison sèche bleu clair", - "block.mineralogy.drywall_magenta": "Cloison sèche magenta", - "block.mineralogy.drywall_orange": "Cloison sèche orange", - "block.mineralogy.drywall_white": "Cloison sèche blanche", - "block.mineralogy.andesite_wall": "Mur d'Andésite", - "block.mineralogy.andesite_brick_wall": "Mur de briques d'Andésite", - "block.mineralogy.andesite_smooth_wall": "Mur poli d'Andésite", - "block.mineralogy.andesite_smooth_brick_wall": "Mur de briques polies par Andesite", - "block.mineralogy.basalt_wall": "Mur de basalte", - "block.mineralogy.basalt_brick_wall": "Mur de brique de basalte", - "block.mineralogy.basalt_smooth_wall": "Mur poli au basalte", - "block.mineralogy.basalt_smooth_brick_wall": "Mur de briques polies au basalte", - "block.mineralogy.diorite_wall": "Mur de Diorite", - "block.mineralogy.diorite_brick_wall": "Mur de briques Diorite", - "block.mineralogy.diorite_smooth_wall": "Mur Poli Diorite", - "block.mineralogy.diorite_smooth_brick_wall": "Mur de briques poli Diorite", - "block.mineralogy.granite_wall": "Mur de granit", - "block.mineralogy.granite_brick_wall": "Mur de briques de granit", - "block.mineralogy.granite_smooth_wall": "Mur poli de granit", - "block.mineralogy.granite_smooth_brick_wall": "Mur de briques poli de granit", - "block.mineralogy.rhyolite_wall": "Mur de rhyolite", - "block.mineralogy.rhyolite_brick_wall": "Mur de brique de rhyolite", - "block.mineralogy.rhyolite_smooth_wall": "Mur poli de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_wall": "Mur de briques polies à la rhyolite", - "block.mineralogy.pegmatite_wall": "Mur de Pegmatite", - "block.mineralogy.pegmatite_brick_wall": "Mur de briques de Pegmatite", - "block.mineralogy.pegmatite_smooth_wall": "Mur poli de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_wall": "Mur de briques poli à la Pegmatite", - "block.mineralogy.shale_wall": "Mur de schiste", - "block.mineralogy.shale_brick_wall": "Mur de briques de schiste", - "block.mineralogy.shale_smooth_wall": "Mur poli de schiste", - "block.mineralogy.shale_smooth_brick_wall": "Mur de briques polies au schiste", - "block.mineralogy.conglomerate_wall": "Conglomérat mur", - "block.mineralogy.conglomerate_brick_wall": "Mur de briques Conglomérat", - "block.mineralogy.conglomerate_smooth_wall": "Conglomerate mur poli", - "block.mineralogy.conglomerate_smooth_brick_wall": "Conglomerate mur de briques polies", - "block.mineralogy.dolomite_wall": "Mur de dolomite", - "block.mineralogy.dolomite_brick_wall": "Mur de briques de dolomite", - "block.mineralogy.dolomite_smooth_wall": "Mur poli de Dolomite", - "block.mineralogy.dolomite_smooth_brick_wall": "Mur de briques poli à la dolomite", - "block.mineralogy.limestone_wall": "Mur de calcaire", - "block.mineralogy.limestone_brick_wall": "Mur de briques en calcaire", - "block.mineralogy.limestone_smooth_wall": "Mur poli au calcaire", - "block.mineralogy.limestone_smooth_brick_wall": "Mur de briques poli au calcaire", - "block.mineralogy.marble_wall": "Mur de marbre", - "block.mineralogy.marble_brick_wall": "Mur de briques en marbre", - "block.mineralogy.marble_smooth_wall": "Mur poli en marbre", - "block.mineralogy.marble_smooth_brick_wall": "Mur de briques polies en marbre", - "block.mineralogy.slate_wall": "Mur d'ardoise", - "block.mineralogy.slate_brick_wall": "Mur de briques d'ardoise", - "block.mineralogy.slate_smooth_wall": "Mur d'ardoise poli", - "block.mineralogy.slate_smooth_brick_wall": "Ardoise polie mur de briques", - "block.mineralogy.schist_wall": "Mur de schiste", - "block.mineralogy.schist_brick_wall": "Mur de briques de schiste", - "block.mineralogy.schist_smooth_wall": "Schiste poli mur", - "block.mineralogy.schist_smooth_brick_wall": "Mur de briques schist poli", - "block.mineralogy.gneiss_wall": "Mur de gneiss", - "block.mineralogy.gneiss_brick_wall": "Mur de briques en gneiss", - "block.mineralogy.gneiss_smooth_wall": "Gneiss poli mur", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneiss poli mur de briques", - "block.mineralogy.phyllite_wall": "Mur de phyllite", - "block.mineralogy.phyllite_brick_wall": "Mur de briques de phyllite", - "block.mineralogy.phyllite_smooth_wall": "Mur poli de phyllite", - "block.mineralogy.phyllite_smooth_brick_wall": "Mur de briques poli en phyllite", - "block.mineralogy.amphibolite_wall": "Mur d'amphibolite", - "block.mineralogy.amphibolite_brick_wall": "Mur de briques d'amphibolite", - "block.mineralogy.amphibolite_smooth_wall": "Mur poli d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_wall": "Mur de briques poli à l'amphibolite", - "block.mineralogy.andesite_furnace": "Four à andésite", - "block.mineralogy.andesite_brick_furnace": "Four à briques d'andésite", - "block.mineralogy.andesite_smooth_furnace": "Four poli à andésite", - "block.mineralogy.andesite_smooth_brick_furnace": "Four à briques polies andésite", - "block.mineralogy.basalt_furnace": "Four à basalte", - "block.mineralogy.basalt_brick_furnace": "Four à briques de basalte", - "block.mineralogy.basalt_smooth_furnace": "Four à basalte poli", - "block.mineralogy.basalt_smooth_brick_furnace": "Four à briques polies en basalte", - "block.mineralogy.diorite_furnace": "Fourneau de Diorite", - "block.mineralogy.diorite_brick_furnace": "Fourneau de briques Diorite", - "block.mineralogy.diorite_smooth_furnace": "Fourneau Poli Diorite", - "block.mineralogy.diorite_smooth_brick_furnace": "Fourneau de briques poli Diorite", - "block.mineralogy.granite_furnace": "Fourneau de granit", - "block.mineralogy.granite_brick_furnace": "Fourneau de briques de granit", - "block.mineralogy.granite_smooth_furnace": "Fourneau poli de granit", - "block.mineralogy.granite_smooth_brick_furnace": "Fourneau de briques poli de granit", - "block.mineralogy.rhyolite_furnace": "Fourneau de rhyolite", - "block.mineralogy.rhyolite_brick_furnace": "Fourneau de brique de rhyolite", - "block.mineralogy.rhyolite_smooth_furnace": "Fourneau poli de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Fourneau de briques polies à la rhyolite", - "block.mineralogy.pegmatite_furnace": "Fourneau de Pegmatite", - "block.mineralogy.pegmatite_brick_furnace": "Fourneau de briques de Pegmatite", - "block.mineralogy.pegmatite_smooth_furnace": "Fourneau poli de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Fourneau de briques poli à la Pegmatite", - "block.mineralogy.shale_furnace": "Fourneau de schiste", - "block.mineralogy.shale_brick_furnace": "Fourneau de briques de schiste", - "block.mineralogy.shale_smooth_furnace": "Fourneau poli de schiste", - "block.mineralogy.shale_smooth_brick_furnace": "Fourneau de briques polies au schiste", - "block.mineralogy.conglomerate_furnace": "Conglomérat mur", - "block.mineralogy.conglomerate_brick_furnace": "Fourneau de briques Conglomérat", - "block.mineralogy.conglomerate_smooth_furnace": "Conglomerate mur poli", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Conglomerate mur de briques polies", - "block.mineralogy.dolomite_furnace": "Fourneau de dolomite", - "block.mineralogy.dolomite_brick_furnace": "Fourneau de briques de dolomite", - "block.mineralogy.dolomite_smooth_furnace": "Fourneau poli de Dolomite", - "block.mineralogy.dolomite_smooth_brick_furnace": "Fourneau de briques poli à la dolomite", - "block.mineralogy.limestone_furnace": "Fourneau de calcaire", - "block.mineralogy.limestone_brick_furnace": "Fourneau de briques en calcaire", - "block.mineralogy.limestone_smooth_furnace": "Fourneau poli au calcaire", - "block.mineralogy.limestone_smooth_brick_furnace": "Fourneau de briques poli au calcaire", - "block.mineralogy.marble_furnace": "Fourneau de marbre", - "block.mineralogy.marble_brick_furnace": "Fourneau de briques en marbre", - "block.mineralogy.marble_smooth_furnace": "Fourneau poli en marbre", - "block.mineralogy.marble_smooth_brick_furnace": "Fourneau de briques polies en marbre", - "block.mineralogy.slate_furnace": "Fourneau d'ardoise", - "block.mineralogy.slate_brick_furnace": "Fourneau de briques d'ardoise", - "block.mineralogy.slate_smooth_furnace": "Fourneau d'ardoise poli", - "block.mineralogy.slate_smooth_brick_furnace": "Ardoise polie mur de briques", - "block.mineralogy.schist_furnace": "Fourneau de schiste", - "block.mineralogy.schist_brick_furnace": "Fourneau de briques de schiste", - "block.mineralogy.schist_smooth_furnace": "Schiste poli mur", - "block.mineralogy.schist_smooth_brick_furnace": "Fourneau de briques schist poli", - "block.mineralogy.gneiss_furnace": "Fourneau de gneiss", - "block.mineralogy.gneiss_brick_furnace": "Fourneau de briques en gneiss", - "block.mineralogy.gneiss_smooth_furnace": "Gneiss poli mur", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneiss poli mur de briques", - "block.mineralogy.phyllite_furnace": "Fourneau de phyllite", - "block.mineralogy.phyllite_brick_furnace": "Fourneau de briques de phyllite", - "block.mineralogy.phyllite_smooth_furnace": "Fourneau poli de phyllite", - "block.mineralogy.phyllite_smooth_brick_furnace": "Fourneau de briques poli en phyllite", - "block.mineralogy.amphibolite_furnace": "Fourneau d'amphibolite", - "block.mineralogy.amphibolite_brick_furnace": "Fourneau de briques d'amphibolite", - "block.mineralogy.amphibolite_smooth_furnace": "Fourneau poli d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Fourneau de briques poli à l'amphibolite", + "block.mineralogy.drywall_black": "Plaque de plâtre noire", + "block.mineralogy.drywall_red": "Plaque de plâtre rouge", + "block.mineralogy.drywall_green": "Plaque de plâtre verte", + "block.mineralogy.drywall_brown": "Plaque de plâtre marron", + "block.mineralogy.drywall_blue": "Plaque de plâtre bleue", + "block.mineralogy.drywall_purple": "Plaque de plâtre violette", + "block.mineralogy.drywall_cyan": "Plaque de plâtre cyan", + "block.mineralogy.drywall_silver": "Plaque de plâtre gris clair", + "block.mineralogy.drywall_gray": "Plaque de plâtre grise", + "block.mineralogy.drywall_pink": "Plaque de plâtre rose", + "block.mineralogy.drywall_lime": "Plaque de plâtre vert citron", + "block.mineralogy.drywall_yellow": "Plaque de plâtre jaune", + "block.mineralogy.drywall_light_blue": "Plaque de plâtre bleu clair", + "block.mineralogy.drywall_magenta": "Plaque de plâtre magenta", + "block.mineralogy.drywall_orange": "Plaque de plâtre orange", + "block.mineralogy.drywall_white": "Plaque de plâtre blanche", + "block.mineralogy.andesite_wall": "Muret en Andésite", + "block.mineralogy.andesite_brick_wall": "Muret en briques de Andésite", + "block.mineralogy.andesite_smooth_wall": "Muret poli en Andésite", + "block.mineralogy.andesite_smooth_brick_wall": "Muret en briques polies de Andésite", + "block.mineralogy.basalt_wall": "Muret en Basalte", + "block.mineralogy.basalt_brick_wall": "Muret en briques de Basalte", + "block.mineralogy.basalt_smooth_wall": "Muret poli en Basalte", + "block.mineralogy.basalt_smooth_brick_wall": "Muret en briques polies de Basalte", + "block.mineralogy.diorite_wall": "Muret en Diorite", + "block.mineralogy.diorite_brick_wall": "Muret en briques de Diorite", + "block.mineralogy.diorite_smooth_wall": "Muret poli en Diorite", + "block.mineralogy.diorite_smooth_brick_wall": "Muret en briques polies de Diorite", + "block.mineralogy.granite_wall": "Muret en Granite", + "block.mineralogy.granite_brick_wall": "Muret en briques de Granite", + "block.mineralogy.granite_smooth_wall": "Muret poli en Granite", + "block.mineralogy.granite_smooth_brick_wall": "Muret en briques polies de Granite", + "block.mineralogy.rhyolite_wall": "Muret en Rhyolite", + "block.mineralogy.rhyolite_brick_wall": "Muret en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth_wall": "Muret poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muret en briques polies de Rhyolite", + "block.mineralogy.pegmatite_wall": "Muret en Pegmatite", + "block.mineralogy.pegmatite_brick_wall": "Muret en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth_wall": "Muret poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muret en briques polies de Pegmatite", + "block.mineralogy.shale_wall": "Muret en Schiste argileux", + "block.mineralogy.shale_brick_wall": "Muret en briques de Schiste argileux", + "block.mineralogy.shale_smooth_wall": "Muret poli en Schiste argileux", + "block.mineralogy.shale_smooth_brick_wall": "Muret en briques polies de Schiste argileux", + "block.mineralogy.conglomerate_wall": "Muret en Conglomérat", + "block.mineralogy.conglomerate_brick_wall": "Muret en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth_wall": "Muret poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muret en briques polies de Conglomérat", + "block.mineralogy.dolomite_wall": "Muret en Dolomie", + "block.mineralogy.dolomite_brick_wall": "Muret en briques de Dolomie", + "block.mineralogy.dolomite_smooth_wall": "Muret poli en Dolomie", + "block.mineralogy.dolomite_smooth_brick_wall": "Muret en briques polies de Dolomie", + "block.mineralogy.limestone_wall": "Muret en Calcaire", + "block.mineralogy.limestone_brick_wall": "Muret en briques de Calcaire", + "block.mineralogy.limestone_smooth_wall": "Muret poli en Calcaire", + "block.mineralogy.limestone_smooth_brick_wall": "Muret en briques polies de Calcaire", + "block.mineralogy.marble_wall": "Muret en Marbre", + "block.mineralogy.marble_brick_wall": "Muret en briques de Marbre", + "block.mineralogy.marble_smooth_wall": "Muret poli en Marbre", + "block.mineralogy.marble_smooth_brick_wall": "Muret en briques polies de Marbre", + "block.mineralogy.slate_wall": "Muret en Ardoise", + "block.mineralogy.slate_brick_wall": "Muret en briques de Ardoise", + "block.mineralogy.slate_smooth_wall": "Muret poli en Ardoise", + "block.mineralogy.slate_smooth_brick_wall": "Muret en briques polies de Ardoise", + "block.mineralogy.schist_wall": "Muret en Micaschiste", + "block.mineralogy.schist_brick_wall": "Muret en briques de Micaschiste", + "block.mineralogy.schist_smooth_wall": "Muret poli en Micaschiste", + "block.mineralogy.schist_smooth_brick_wall": "Muret en briques polies de Micaschiste", + "block.mineralogy.gneiss_wall": "Muret en Gneiss", + "block.mineralogy.gneiss_brick_wall": "Muret en briques de Gneiss", + "block.mineralogy.gneiss_smooth_wall": "Muret poli en Gneiss", + "block.mineralogy.gneiss_smooth_brick_wall": "Muret en briques polies de Gneiss", + "block.mineralogy.phyllite_wall": "Muret en Phyllade", + "block.mineralogy.phyllite_brick_wall": "Muret en briques de Phyllade", + "block.mineralogy.phyllite_smooth_wall": "Muret poli en Phyllade", + "block.mineralogy.phyllite_smooth_brick_wall": "Muret en briques polies de Phyllade", + "block.mineralogy.amphibolite_wall": "Muret en Amphibolite", + "block.mineralogy.amphibolite_brick_wall": "Muret en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth_wall": "Muret poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muret en briques polies de Amphibolite", + "block.mineralogy.andesite_furnace": "Fourneau en Andésite", + "block.mineralogy.andesite_brick_furnace": "Fourneau en briques de Andésite", + "block.mineralogy.andesite_smooth_furnace": "Fourneau poli en Andésite", + "block.mineralogy.andesite_smooth_brick_furnace": "Fourneau en briques polies de Andésite", + "block.mineralogy.basalt_furnace": "Fourneau en Basalte", + "block.mineralogy.basalt_brick_furnace": "Fourneau en briques de Basalte", + "block.mineralogy.basalt_smooth_furnace": "Fourneau poli en Basalte", + "block.mineralogy.basalt_smooth_brick_furnace": "Fourneau en briques polies de Basalte", + "block.mineralogy.diorite_furnace": "Fourneau en Diorite", + "block.mineralogy.diorite_brick_furnace": "Fourneau en briques de Diorite", + "block.mineralogy.diorite_smooth_furnace": "Fourneau poli en Diorite", + "block.mineralogy.diorite_smooth_brick_furnace": "Fourneau en briques polies de Diorite", + "block.mineralogy.granite_furnace": "Fourneau en Granite", + "block.mineralogy.granite_brick_furnace": "Fourneau en briques de Granite", + "block.mineralogy.granite_smooth_furnace": "Fourneau poli en Granite", + "block.mineralogy.granite_smooth_brick_furnace": "Fourneau en briques polies de Granite", + "block.mineralogy.rhyolite_furnace": "Fourneau en Rhyolite", + "block.mineralogy.rhyolite_brick_furnace": "Fourneau en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth_furnace": "Fourneau poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Fourneau en briques polies de Rhyolite", + "block.mineralogy.pegmatite_furnace": "Fourneau en Pegmatite", + "block.mineralogy.pegmatite_brick_furnace": "Fourneau en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth_furnace": "Fourneau poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Fourneau en briques polies de Pegmatite", + "block.mineralogy.shale_furnace": "Fourneau en Schiste argileux", + "block.mineralogy.shale_brick_furnace": "Fourneau en briques de Schiste argileux", + "block.mineralogy.shale_smooth_furnace": "Fourneau poli en Schiste argileux", + "block.mineralogy.shale_smooth_brick_furnace": "Fourneau en briques polies de Schiste argileux", + "block.mineralogy.conglomerate_furnace": "Fourneau en Conglomérat", + "block.mineralogy.conglomerate_brick_furnace": "Fourneau en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth_furnace": "Fourneau poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Fourneau en briques polies de Conglomérat", + "block.mineralogy.dolomite_furnace": "Fourneau en Dolomie", + "block.mineralogy.dolomite_brick_furnace": "Fourneau en briques de Dolomie", + "block.mineralogy.dolomite_smooth_furnace": "Fourneau poli en Dolomie", + "block.mineralogy.dolomite_smooth_brick_furnace": "Fourneau en briques polies de Dolomie", + "block.mineralogy.limestone_furnace": "Fourneau en Calcaire", + "block.mineralogy.limestone_brick_furnace": "Fourneau en briques de Calcaire", + "block.mineralogy.limestone_smooth_furnace": "Fourneau poli en Calcaire", + "block.mineralogy.limestone_smooth_brick_furnace": "Fourneau en briques polies de Calcaire", + "block.mineralogy.marble_furnace": "Fourneau en Marbre", + "block.mineralogy.marble_brick_furnace": "Fourneau en briques de Marbre", + "block.mineralogy.marble_smooth_furnace": "Fourneau poli en Marbre", + "block.mineralogy.marble_smooth_brick_furnace": "Fourneau en briques polies de Marbre", + "block.mineralogy.slate_furnace": "Fourneau en Ardoise", + "block.mineralogy.slate_brick_furnace": "Fourneau en briques de Ardoise", + "block.mineralogy.slate_smooth_furnace": "Fourneau poli en Ardoise", + "block.mineralogy.slate_smooth_brick_furnace": "Fourneau en briques polies de Ardoise", + "block.mineralogy.schist_furnace": "Fourneau en Micaschiste", + "block.mineralogy.schist_brick_furnace": "Fourneau en briques de Micaschiste", + "block.mineralogy.schist_smooth_furnace": "Fourneau poli en Micaschiste", + "block.mineralogy.schist_smooth_brick_furnace": "Fourneau en briques polies de Micaschiste", + "block.mineralogy.gneiss_furnace": "Fourneau en Gneiss", + "block.mineralogy.gneiss_brick_furnace": "Fourneau en briques de Gneiss", + "block.mineralogy.gneiss_smooth_furnace": "Fourneau poli en Gneiss", + "block.mineralogy.gneiss_smooth_brick_furnace": "Fourneau en briques polies de Gneiss", + "block.mineralogy.phyllite_furnace": "Fourneau en Phyllade", + "block.mineralogy.phyllite_brick_furnace": "Fourneau en briques de Phyllade", + "block.mineralogy.phyllite_smooth_furnace": "Fourneau poli en Phyllade", + "block.mineralogy.phyllite_smooth_brick_furnace": "Fourneau en briques polies de Phyllade", + "block.mineralogy.amphibolite_furnace": "Fourneau en Amphibolite", + "block.mineralogy.amphibolite_brick_furnace": "Fourneau en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth_furnace": "Fourneau poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Fourneau en briques polies de Amphibolite", "block.mineralogy.diabase": "Diabase", - "block.mineralogy.diabase_stairs": "Diabase Escaliers", - "block.mineralogy.diabase_slab": "Diabase Dalle", - "block.mineralogy.diabase_brick": "Diabase Brique", - "block.mineralogy.diabase_brick_stairs": "Diabase Escalier De Brique", - "block.mineralogy.diabase_brick_slab": "Diabase Dalle de brique", - "block.mineralogy.diabase_smooth": "Polished Diabase", - "block.mineralogy.diabase_smooth_stairs": "Diabase Escalier Poli", - "block.mineralogy.diabase_smooth_slab": "Diabase Dalle polie", - "block.mineralogy.diabase_smooth_brick": "Diabase Brique polie", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabase Escalier en brique polie", - "block.mineralogy.diabase_smooth_brick_slab": "Diabase Dalle de brique polie", - "block.mineralogy.diabase_wall": "Diabase Wall", - "block.mineralogy.diabase_brick_wall": "Diabase Mur de briques", - "block.mineralogy.diabase_smooth_wall": "Diabase Mur poli", - "block.mineralogy.diabase_smooth_brick_wall": "Diabase Mur de brique poli", - "block.mineralogy.diabase_furnace": "Diabase Furnace", - "block.mineralogy.diabase_brick_furnace": "Diabase Four à briques", - "block.mineralogy.diabase_smooth_furnace": "Diabase Four poli", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabase Four à brique polie", + "block.mineralogy.diabase_stairs": "Escalier en Diabase", + "block.mineralogy.diabase_slab": "Dalle en Diabase", + "block.mineralogy.diabase_brick": "Briques en Diabase", + "block.mineralogy.diabase_brick_stairs": "Escalier en briques de Diabase", + "block.mineralogy.diabase_brick_slab": "Dalle en briques de Diabase", + "block.mineralogy.diabase_smooth": "Bloc poli en Diabase", + "block.mineralogy.diabase_smooth_stairs": "Escalier poli en Diabase", + "block.mineralogy.diabase_smooth_slab": "Dalle polie en Diabase", + "block.mineralogy.diabase_smooth_brick": "Briques polies en Diabase", + "block.mineralogy.diabase_smooth_brick_stairs": "Escalier en briques polies de Diabase", + "block.mineralogy.diabase_smooth_brick_slab": "Dalle en briques polies de Diabase", + "block.mineralogy.diabase_wall": "Muret en Diabase", + "block.mineralogy.diabase_brick_wall": "Muret en briques de Diabase", + "block.mineralogy.diabase_smooth_wall": "Muret poli en Diabase", + "block.mineralogy.diabase_smooth_brick_wall": "Muret en briques polies de Diabase", + "block.mineralogy.diabase_furnace": "Fourneau en Diabase", + "block.mineralogy.diabase_brick_furnace": "Fourneau en briques de Diabase", + "block.mineralogy.diabase_smooth_furnace": "Fourneau poli en Diabase", + "block.mineralogy.diabase_smooth_brick_furnace": "Fourneau en briques polies de Diabase", "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Escaliers", - "block.mineralogy.gabbro_slab": "Gabbro Dalle", - "block.mineralogy.gabbro_brick": "Gabbro Brique", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Escalier De Brique", - "block.mineralogy.gabbro_brick_slab": "Gabbro Dalle de brique", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Escalier Poli", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Dalle polie", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Brique polie", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Escalier en brique polie", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Dalle de brique polie", - "block.mineralogy.gabbro_wall": "Gabbro Wall", - "block.mineralogy.gabbro_brick_wall": "Gabbro Mur de briques", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Mur poli", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Mur de brique poli", - "block.mineralogy.gabbro_furnace": "Gabbro Furnace", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Four à briques", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Four poli", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Four à brique polie", + "block.mineralogy.gabbro_stairs": "Escalier en Gabbro", + "block.mineralogy.gabbro_slab": "Dalle en Gabbro", + "block.mineralogy.gabbro_brick": "Briques en Gabbro", + "block.mineralogy.gabbro_brick_stairs": "Escalier en briques de Gabbro", + "block.mineralogy.gabbro_brick_slab": "Dalle en briques de Gabbro", + "block.mineralogy.gabbro_smooth": "Bloc poli en Gabbro", + "block.mineralogy.gabbro_smooth_stairs": "Escalier poli en Gabbro", + "block.mineralogy.gabbro_smooth_slab": "Dalle polie en Gabbro", + "block.mineralogy.gabbro_smooth_brick": "Briques polies en Gabbro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escalier en briques polies de Gabbro", + "block.mineralogy.gabbro_smooth_brick_slab": "Dalle en briques polies de Gabbro", + "block.mineralogy.gabbro_wall": "Muret en Gabbro", + "block.mineralogy.gabbro_brick_wall": "Muret en briques de Gabbro", + "block.mineralogy.gabbro_smooth_wall": "Muret poli en Gabbro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muret en briques polies de Gabbro", + "block.mineralogy.gabbro_furnace": "Fourneau en Gabbro", + "block.mineralogy.gabbro_brick_furnace": "Fourneau en briques de Gabbro", + "block.mineralogy.gabbro_smooth_furnace": "Fourneau poli en Gabbro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Fourneau en briques polies de Gabbro", "block.mineralogy.peridotite": "Péridotite", - "block.mineralogy.peridotite_stairs": "Péridotite Escaliers", - "block.mineralogy.peridotite_slab": "Péridotite Dalle", - "block.mineralogy.peridotite_brick": "Péridotite Brique", - "block.mineralogy.peridotite_brick_stairs": "Péridotite Escalier De Brique", - "block.mineralogy.peridotite_brick_slab": "Péridotite Dalle de brique", - "block.mineralogy.peridotite_smooth": "Polished Péridotite", - "block.mineralogy.peridotite_smooth_stairs": "Péridotite Escalier Poli", - "block.mineralogy.peridotite_smooth_slab": "Péridotite Dalle polie", - "block.mineralogy.peridotite_smooth_brick": "Péridotite Brique polie", - "block.mineralogy.peridotite_smooth_brick_stairs": "Péridotite Escalier en brique polie", - "block.mineralogy.peridotite_smooth_brick_slab": "Péridotite Dalle de brique polie", - "block.mineralogy.peridotite_wall": "Péridotite Wall", - "block.mineralogy.peridotite_brick_wall": "Péridotite Mur de briques", - "block.mineralogy.peridotite_smooth_wall": "Péridotite Mur poli", - "block.mineralogy.peridotite_smooth_brick_wall": "Péridotite Mur de brique poli", - "block.mineralogy.peridotite_furnace": "Péridotite Furnace", - "block.mineralogy.peridotite_brick_furnace": "Péridotite Four à briques", - "block.mineralogy.peridotite_smooth_furnace": "Péridotite Four poli", - "block.mineralogy.peridotite_smooth_brick_furnace": "Péridotite Four à brique polie", + "block.mineralogy.peridotite_stairs": "Escalier en Péridotite", + "block.mineralogy.peridotite_slab": "Dalle en Péridotite", + "block.mineralogy.peridotite_brick": "Briques en Péridotite", + "block.mineralogy.peridotite_brick_stairs": "Escalier en briques de Péridotite", + "block.mineralogy.peridotite_brick_slab": "Dalle en briques de Péridotite", + "block.mineralogy.peridotite_smooth": "Bloc poli en Péridotite", + "block.mineralogy.peridotite_smooth_stairs": "Escalier poli en Péridotite", + "block.mineralogy.peridotite_smooth_slab": "Dalle polie en Péridotite", + "block.mineralogy.peridotite_smooth_brick": "Briques polies en Péridotite", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escalier en briques polies de Péridotite", + "block.mineralogy.peridotite_smooth_brick_slab": "Dalle en briques polies de Péridotite", + "block.mineralogy.peridotite_wall": "Muret en Péridotite", + "block.mineralogy.peridotite_brick_wall": "Muret en briques de Péridotite", + "block.mineralogy.peridotite_smooth_wall": "Muret poli en Péridotite", + "block.mineralogy.peridotite_smooth_brick_wall": "Muret en briques polies de Péridotite", + "block.mineralogy.peridotite_furnace": "Fourneau en Péridotite", + "block.mineralogy.peridotite_brick_furnace": "Fourneau en briques de Péridotite", + "block.mineralogy.peridotite_smooth_furnace": "Fourneau poli en Péridotite", + "block.mineralogy.peridotite_smooth_brick_furnace": "Fourneau en briques polies de Péridotite", "block.mineralogy.basaltic_glass": "Verre basaltique", - "block.mineralogy.basaltic_glass_stairs": "Verre basaltique Escaliers", - "block.mineralogy.basaltic_glass_slab": "Verre basaltique Dalle", - "block.mineralogy.basaltic_glass_brick": "Verre basaltique Brique", - "block.mineralogy.basaltic_glass_brick_stairs": "Verre basaltique Escalier De Brique", - "block.mineralogy.basaltic_glass_brick_slab": "Verre basaltique Dalle de brique", - "block.mineralogy.basaltic_glass_smooth": "Polished Verre basaltique", - "block.mineralogy.basaltic_glass_smooth_stairs": "Verre basaltique Escalier Poli", - "block.mineralogy.basaltic_glass_smooth_slab": "Verre basaltique Dalle polie", - "block.mineralogy.basaltic_glass_smooth_brick": "Verre basaltique Brique polie", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Verre basaltique Escalier en brique polie", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Verre basaltique Dalle de brique polie", - "block.mineralogy.basaltic_glass_wall": "Verre basaltique Wall", - "block.mineralogy.basaltic_glass_brick_wall": "Verre basaltique Mur de briques", - "block.mineralogy.basaltic_glass_smooth_wall": "Verre basaltique Mur poli", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Verre basaltique Mur de brique poli", - "block.mineralogy.basaltic_glass_furnace": "Verre basaltique Furnace", - "block.mineralogy.basaltic_glass_brick_furnace": "Verre basaltique Four à briques", - "block.mineralogy.basaltic_glass_smooth_furnace": "Verre basaltique Four poli", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Verre basaltique Four à brique polie", - "block.mineralogy.scoria": "Scories", - "block.mineralogy.scoria_stairs": "Scories Escaliers", - "block.mineralogy.scoria_slab": "Scories Dalle", - "block.mineralogy.scoria_brick": "Scories Brique", - "block.mineralogy.scoria_brick_stairs": "Scories Escalier De Brique", - "block.mineralogy.scoria_brick_slab": "Scories Dalle de brique", - "block.mineralogy.scoria_smooth": "Polished Scories", - "block.mineralogy.scoria_smooth_stairs": "Scories Escalier Poli", - "block.mineralogy.scoria_smooth_slab": "Scories Dalle polie", - "block.mineralogy.scoria_smooth_brick": "Scories Brique polie", - "block.mineralogy.scoria_smooth_brick_stairs": "Scories Escalier en brique polie", - "block.mineralogy.scoria_smooth_brick_slab": "Scories Dalle de brique polie", - "block.mineralogy.scoria_wall": "Scories Wall", - "block.mineralogy.scoria_brick_wall": "Scories Mur de briques", - "block.mineralogy.scoria_smooth_wall": "Scories Mur poli", - "block.mineralogy.scoria_smooth_brick_wall": "Scories Mur de brique poli", - "block.mineralogy.scoria_furnace": "Scories Furnace", - "block.mineralogy.scoria_brick_furnace": "Scories Four à briques", - "block.mineralogy.scoria_smooth_furnace": "Scories Four poli", - "block.mineralogy.scoria_smooth_brick_furnace": "Scories Four à brique polie", + "block.mineralogy.basaltic_glass_stairs": "Escalier en Verre basaltique", + "block.mineralogy.basaltic_glass_slab": "Dalle en Verre basaltique", + "block.mineralogy.basaltic_glass_brick": "Briques en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_stairs": "Escalier en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_brick_slab": "Dalle en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth": "Bloc poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escalier poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_slab": "Dalle polie en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick": "Briques polies en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escalier en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Dalle en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_wall": "Muret en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_wall": "Muret en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_wall": "Muret poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muret en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_furnace": "Fourneau en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_furnace": "Fourneau en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_furnace": "Fourneau poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Fourneau en briques polies de Verre basaltique", + "block.mineralogy.scoria": "Scorie", + "block.mineralogy.scoria_stairs": "Escalier en Scorie", + "block.mineralogy.scoria_slab": "Dalle en Scorie", + "block.mineralogy.scoria_brick": "Briques en Scorie", + "block.mineralogy.scoria_brick_stairs": "Escalier en briques de Scorie", + "block.mineralogy.scoria_brick_slab": "Dalle en briques de Scorie", + "block.mineralogy.scoria_smooth": "Bloc poli en Scorie", + "block.mineralogy.scoria_smooth_stairs": "Escalier poli en Scorie", + "block.mineralogy.scoria_smooth_slab": "Dalle polie en Scorie", + "block.mineralogy.scoria_smooth_brick": "Briques polies en Scorie", + "block.mineralogy.scoria_smooth_brick_stairs": "Escalier en briques polies de Scorie", + "block.mineralogy.scoria_smooth_brick_slab": "Dalle en briques polies de Scorie", + "block.mineralogy.scoria_wall": "Muret en Scorie", + "block.mineralogy.scoria_brick_wall": "Muret en briques de Scorie", + "block.mineralogy.scoria_smooth_wall": "Muret poli en Scorie", + "block.mineralogy.scoria_smooth_brick_wall": "Muret en briques polies de Scorie", + "block.mineralogy.scoria_furnace": "Fourneau en Scorie", + "block.mineralogy.scoria_brick_furnace": "Fourneau en briques de Scorie", + "block.mineralogy.scoria_smooth_furnace": "Fourneau poli en Scorie", + "block.mineralogy.scoria_smooth_brick_furnace": "Fourneau en briques polies de Scorie", "block.mineralogy.tuff": "Tuf", - "block.mineralogy.tuff_stairs": "Tuf Escaliers", - "block.mineralogy.tuff_slab": "Tuf Dalle", - "block.mineralogy.tuff_brick": "Tuf Brique", - "block.mineralogy.tuff_brick_stairs": "Tuf Escalier De Brique", - "block.mineralogy.tuff_brick_slab": "Tuf Dalle de brique", - "block.mineralogy.tuff_smooth": "Polished Tuf", - "block.mineralogy.tuff_smooth_stairs": "Tuf Escalier Poli", - "block.mineralogy.tuff_smooth_slab": "Tuf Dalle polie", - "block.mineralogy.tuff_smooth_brick": "Tuf Brique polie", - "block.mineralogy.tuff_smooth_brick_stairs": "Tuf Escalier en brique polie", - "block.mineralogy.tuff_smooth_brick_slab": "Tuf Dalle de brique polie", - "block.mineralogy.tuff_wall": "Tuf Wall", - "block.mineralogy.tuff_brick_wall": "Tuf Mur de briques", - "block.mineralogy.tuff_smooth_wall": "Tuf Mur poli", - "block.mineralogy.tuff_smooth_brick_wall": "Tuf Mur de brique poli", - "block.mineralogy.tuff_furnace": "Tuf Furnace", - "block.mineralogy.tuff_brick_furnace": "Tuf Four à briques", - "block.mineralogy.tuff_smooth_furnace": "Tuf Four poli", - "block.mineralogy.tuff_smooth_brick_furnace": "Tuf Four à brique polie", - "block.mineralogy.siltstone": "Pierre de terre", - "block.mineralogy.siltstone_stairs": "Pierre de terre Escaliers", - "block.mineralogy.siltstone_slab": "Pierre de terre Dalle", - "block.mineralogy.siltstone_brick": "Pierre de terre Brique", - "block.mineralogy.siltstone_brick_stairs": "Pierre de terre Escalier De Brique", - "block.mineralogy.siltstone_brick_slab": "Pierre de terre Dalle de brique", - "block.mineralogy.siltstone_smooth": "Polished Pierre de terre", - "block.mineralogy.siltstone_smooth_stairs": "Pierre de terre Escalier Poli", - "block.mineralogy.siltstone_smooth_slab": "Pierre de terre Dalle polie", - "block.mineralogy.siltstone_smooth_brick": "Pierre de terre Brique polie", - "block.mineralogy.siltstone_smooth_brick_stairs": "Pierre de terre Escalier en brique polie", - "block.mineralogy.siltstone_smooth_brick_slab": "Pierre de terre Dalle de brique polie", - "block.mineralogy.siltstone_wall": "Pierre de terre Wall", - "block.mineralogy.siltstone_brick_wall": "Pierre de terre Mur de briques", - "block.mineralogy.siltstone_smooth_wall": "Pierre de terre Mur poli", - "block.mineralogy.siltstone_smooth_brick_wall": "Pierre de terre Mur de brique poli", - "block.mineralogy.siltstone_furnace": "Pierre de terre Furnace", - "block.mineralogy.siltstone_brick_furnace": "Pierre de terre Four à briques", - "block.mineralogy.siltstone_smooth_furnace": "Pierre de terre Four poli", - "block.mineralogy.siltstone_smooth_brick_furnace": "Pierre de terre Four à brique polie", + "block.mineralogy.tuff_stairs": "Escalier en Tuf", + "block.mineralogy.tuff_slab": "Dalle en Tuf", + "block.mineralogy.tuff_brick": "Briques en Tuf", + "block.mineralogy.tuff_brick_stairs": "Escalier en briques de Tuf", + "block.mineralogy.tuff_brick_slab": "Dalle en briques de Tuf", + "block.mineralogy.tuff_smooth": "Bloc poli en Tuf", + "block.mineralogy.tuff_smooth_stairs": "Escalier poli en Tuf", + "block.mineralogy.tuff_smooth_slab": "Dalle polie en Tuf", + "block.mineralogy.tuff_smooth_brick": "Briques polies en Tuf", + "block.mineralogy.tuff_smooth_brick_stairs": "Escalier en briques polies de Tuf", + "block.mineralogy.tuff_smooth_brick_slab": "Dalle en briques polies de Tuf", + "block.mineralogy.tuff_wall": "Muret en Tuf", + "block.mineralogy.tuff_brick_wall": "Muret en briques de Tuf", + "block.mineralogy.tuff_smooth_wall": "Muret poli en Tuf", + "block.mineralogy.tuff_smooth_brick_wall": "Muret en briques polies de Tuf", + "block.mineralogy.tuff_furnace": "Fourneau en Tuf", + "block.mineralogy.tuff_brick_furnace": "Fourneau en briques de Tuf", + "block.mineralogy.tuff_smooth_furnace": "Fourneau poli en Tuf", + "block.mineralogy.tuff_smooth_brick_furnace": "Fourneau en briques polies de Tuf", + "block.mineralogy.siltstone": "Siltite", + "block.mineralogy.siltstone_stairs": "Escalier en Siltite", + "block.mineralogy.siltstone_slab": "Dalle en Siltite", + "block.mineralogy.siltstone_brick": "Briques en Siltite", + "block.mineralogy.siltstone_brick_stairs": "Escalier en briques de Siltite", + "block.mineralogy.siltstone_brick_slab": "Dalle en briques de Siltite", + "block.mineralogy.siltstone_smooth": "Bloc poli en Siltite", + "block.mineralogy.siltstone_smooth_stairs": "Escalier poli en Siltite", + "block.mineralogy.siltstone_smooth_slab": "Dalle polie en Siltite", + "block.mineralogy.siltstone_smooth_brick": "Briques polies en Siltite", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escalier en briques polies de Siltite", + "block.mineralogy.siltstone_smooth_brick_slab": "Dalle en briques polies de Siltite", + "block.mineralogy.siltstone_wall": "Muret en Siltite", + "block.mineralogy.siltstone_brick_wall": "Muret en briques de Siltite", + "block.mineralogy.siltstone_smooth_wall": "Muret poli en Siltite", + "block.mineralogy.siltstone_smooth_brick_wall": "Muret en briques polies de Siltite", + "block.mineralogy.siltstone_furnace": "Fourneau en Siltite", + "block.mineralogy.siltstone_brick_furnace": "Fourneau en briques de Siltite", + "block.mineralogy.siltstone_smooth_furnace": "Fourneau poli en Siltite", + "block.mineralogy.siltstone_smooth_brick_furnace": "Fourneau en briques polies de Siltite", "block.mineralogy.rock_salt": "Sel gemme", - "block.mineralogy.rock_salt_stairs": "Sel gemme Escaliers", - "block.mineralogy.rock_salt_slab": "Sel gemme Dalle", - "block.mineralogy.rock_salt_brick": "Sel gemme Brique", - "block.mineralogy.rock_salt_brick_stairs": "Sel gemme Escalier De Brique", - "block.mineralogy.rock_salt_brick_slab": "Sel gemme Dalle de brique", - "block.mineralogy.rock_salt_smooth": "Polished Sel gemme", - "block.mineralogy.rock_salt_smooth_stairs": "Sel gemme Escalier Poli", - "block.mineralogy.rock_salt_smooth_slab": "Sel gemme Dalle polie", - "block.mineralogy.rock_salt_smooth_brick": "Sel gemme Brique polie", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Sel gemme Escalier en brique polie", - "block.mineralogy.rock_salt_smooth_brick_slab": "Sel gemme Dalle de brique polie", - "block.mineralogy.rock_salt_wall": "Sel gemme Wall", - "block.mineralogy.rock_salt_brick_wall": "Sel gemme Mur de briques", - "block.mineralogy.rock_salt_smooth_wall": "Sel gemme Mur poli", - "block.mineralogy.rock_salt_smooth_brick_wall": "Sel gemme Mur de brique poli", - "block.mineralogy.rock_salt_furnace": "Sel gemme Furnace", - "block.mineralogy.rock_salt_brick_furnace": "Sel gemme Four à briques", - "block.mineralogy.rock_salt_smooth_furnace": "Sel gemme Four poli", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Sel gemme Four à brique polie", - "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Escaliers", - "block.mineralogy.hornfels_slab": "Hornfels Dalle", - "block.mineralogy.hornfels_brick": "Hornfels Brique", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Escalier De Brique", - "block.mineralogy.hornfels_brick_slab": "Hornfels Dalle de brique", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Escalier Poli", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Dalle polie", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Brique polie", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Escalier en brique polie", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Dalle de brique polie", - "block.mineralogy.hornfels_wall": "Hornfels Wall", - "block.mineralogy.hornfels_brick_wall": "Hornfels Mur de briques", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Mur poli", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Mur de brique poli", - "block.mineralogy.hornfels_furnace": "Hornfels Furnace", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Four à briques", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Four poli", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Four à brique polie", + "block.mineralogy.rock_salt_stairs": "Escalier en Sel gemme", + "block.mineralogy.rock_salt_slab": "Dalle en Sel gemme", + "block.mineralogy.rock_salt_brick": "Briques en Sel gemme", + "block.mineralogy.rock_salt_brick_stairs": "Escalier en briques de Sel gemme", + "block.mineralogy.rock_salt_brick_slab": "Dalle en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth": "Bloc poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_stairs": "Escalier poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_slab": "Dalle polie en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick": "Briques polies en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escalier en briques polies de Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_slab": "Dalle en briques polies de Sel gemme", + "block.mineralogy.rock_salt_wall": "Muret en Sel gemme", + "block.mineralogy.rock_salt_brick_wall": "Muret en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth_wall": "Muret poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muret en briques polies de Sel gemme", + "block.mineralogy.rock_salt_furnace": "Fourneau en Sel gemme", + "block.mineralogy.rock_salt_brick_furnace": "Fourneau en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth_furnace": "Fourneau poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Fourneau en briques polies de Sel gemme", + "block.mineralogy.hornfels": "Cornéenne", + "block.mineralogy.hornfels_stairs": "Escalier en Cornéenne", + "block.mineralogy.hornfels_slab": "Dalle en Cornéenne", + "block.mineralogy.hornfels_brick": "Briques en Cornéenne", + "block.mineralogy.hornfels_brick_stairs": "Escalier en briques de Cornéenne", + "block.mineralogy.hornfels_brick_slab": "Dalle en briques de Cornéenne", + "block.mineralogy.hornfels_smooth": "Bloc poli en Cornéenne", + "block.mineralogy.hornfels_smooth_stairs": "Escalier poli en Cornéenne", + "block.mineralogy.hornfels_smooth_slab": "Dalle polie en Cornéenne", + "block.mineralogy.hornfels_smooth_brick": "Briques polies en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escalier en briques polies de Cornéenne", + "block.mineralogy.hornfels_smooth_brick_slab": "Dalle en briques polies de Cornéenne", + "block.mineralogy.hornfels_wall": "Muret en Cornéenne", + "block.mineralogy.hornfels_brick_wall": "Muret en briques de Cornéenne", + "block.mineralogy.hornfels_smooth_wall": "Muret poli en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_wall": "Muret en briques polies de Cornéenne", + "block.mineralogy.hornfels_furnace": "Fourneau en Cornéenne", + "block.mineralogy.hornfels_brick_furnace": "Fourneau en briques de Cornéenne", + "block.mineralogy.hornfels_smooth_furnace": "Fourneau poli en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_furnace": "Fourneau en briques polies de Cornéenne", "block.mineralogy.quartzite": "Quartzite", - "block.mineralogy.quartzite_stairs": "Quartzite Escaliers", - "block.mineralogy.quartzite_slab": "Quartzite Dalle", - "block.mineralogy.quartzite_brick": "Quartzite Brique", - "block.mineralogy.quartzite_brick_stairs": "Quartzite Escalier De Brique", - "block.mineralogy.quartzite_brick_slab": "Quartzite Dalle de brique", - "block.mineralogy.quartzite_smooth": "Polished Quartzite", - "block.mineralogy.quartzite_smooth_stairs": "Quartzite Escalier Poli", - "block.mineralogy.quartzite_smooth_slab": "Quartzite Dalle polie", - "block.mineralogy.quartzite_smooth_brick": "Quartzite Brique polie", - "block.mineralogy.quartzite_smooth_brick_stairs": "Quartzite Escalier en brique polie", - "block.mineralogy.quartzite_smooth_brick_slab": "Quartzite Dalle de brique polie", - "block.mineralogy.quartzite_wall": "Quartzite Wall", - "block.mineralogy.quartzite_brick_wall": "Quartzite Mur de briques", - "block.mineralogy.quartzite_smooth_wall": "Quartzite Mur poli", - "block.mineralogy.quartzite_smooth_brick_wall": "Quartzite Mur de brique poli", - "block.mineralogy.quartzite_furnace": "Quartzite Furnace", - "block.mineralogy.quartzite_brick_furnace": "Quartzite Four à briques", - "block.mineralogy.quartzite_smooth_furnace": "Quartzite Four poli", - "block.mineralogy.quartzite_smooth_brick_furnace": "Quartzite Four à brique polie", + "block.mineralogy.quartzite_stairs": "Escalier en Quartzite", + "block.mineralogy.quartzite_slab": "Dalle en Quartzite", + "block.mineralogy.quartzite_brick": "Briques en Quartzite", + "block.mineralogy.quartzite_brick_stairs": "Escalier en briques de Quartzite", + "block.mineralogy.quartzite_brick_slab": "Dalle en briques de Quartzite", + "block.mineralogy.quartzite_smooth": "Bloc poli en Quartzite", + "block.mineralogy.quartzite_smooth_stairs": "Escalier poli en Quartzite", + "block.mineralogy.quartzite_smooth_slab": "Dalle polie en Quartzite", + "block.mineralogy.quartzite_smooth_brick": "Briques polies en Quartzite", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escalier en briques polies de Quartzite", + "block.mineralogy.quartzite_smooth_brick_slab": "Dalle en briques polies de Quartzite", + "block.mineralogy.quartzite_wall": "Muret en Quartzite", + "block.mineralogy.quartzite_brick_wall": "Muret en briques de Quartzite", + "block.mineralogy.quartzite_smooth_wall": "Muret poli en Quartzite", + "block.mineralogy.quartzite_smooth_brick_wall": "Muret en briques polies de Quartzite", + "block.mineralogy.quartzite_furnace": "Fourneau en Quartzite", + "block.mineralogy.quartzite_brick_furnace": "Fourneau en briques de Quartzite", + "block.mineralogy.quartzite_smooth_furnace": "Fourneau poli en Quartzite", + "block.mineralogy.quartzite_smooth_brick_furnace": "Fourneau en briques polies de Quartzite", "block.mineralogy.novaculite": "Novaculite", - "block.mineralogy.novaculite_stairs": "Novaculite Escaliers", - "block.mineralogy.novaculite_slab": "Novaculite Dalle", - "block.mineralogy.novaculite_brick": "Novaculite Brique", - "block.mineralogy.novaculite_brick_stairs": "Novaculite Escalier De Brique", - "block.mineralogy.novaculite_brick_slab": "Novaculite Dalle de brique", - "block.mineralogy.novaculite_smooth": "Polished Novaculite", - "block.mineralogy.novaculite_smooth_stairs": "Novaculite Escalier Poli", - "block.mineralogy.novaculite_smooth_slab": "Novaculite Dalle polie", - "block.mineralogy.novaculite_smooth_brick": "Novaculite Brique polie", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculite Escalier en brique polie", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculite Dalle de brique polie", - "block.mineralogy.novaculite_wall": "Novaculite Wall", - "block.mineralogy.novaculite_brick_wall": "Novaculite Mur de briques", - "block.mineralogy.novaculite_smooth_wall": "Novaculite Mur poli", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculite Mur de brique poli", - "block.mineralogy.novaculite_furnace": "Novaculite Furnace", - "block.mineralogy.novaculite_brick_furnace": "Novaculite Four à briques", - "block.mineralogy.novaculite_smooth_furnace": "Novaculite Four poli", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculite Four à brique polie", + "block.mineralogy.novaculite_stairs": "Escalier en Novaculite", + "block.mineralogy.novaculite_slab": "Dalle en Novaculite", + "block.mineralogy.novaculite_brick": "Briques en Novaculite", + "block.mineralogy.novaculite_brick_stairs": "Escalier en briques de Novaculite", + "block.mineralogy.novaculite_brick_slab": "Dalle en briques de Novaculite", + "block.mineralogy.novaculite_smooth": "Bloc poli en Novaculite", + "block.mineralogy.novaculite_smooth_stairs": "Escalier poli en Novaculite", + "block.mineralogy.novaculite_smooth_slab": "Dalle polie en Novaculite", + "block.mineralogy.novaculite_smooth_brick": "Briques polies en Novaculite", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escalier en briques polies de Novaculite", + "block.mineralogy.novaculite_smooth_brick_slab": "Dalle en briques polies de Novaculite", + "block.mineralogy.novaculite_wall": "Muret en Novaculite", + "block.mineralogy.novaculite_brick_wall": "Muret en briques de Novaculite", + "block.mineralogy.novaculite_smooth_wall": "Muret poli en Novaculite", + "block.mineralogy.novaculite_smooth_brick_wall": "Muret en briques polies de Novaculite", + "block.mineralogy.novaculite_furnace": "Fourneau en Novaculite", + "block.mineralogy.novaculite_brick_furnace": "Fourneau en briques de Novaculite", + "block.mineralogy.novaculite_smooth_furnace": "Fourneau poli en Novaculite", + "block.mineralogy.novaculite_smooth_brick_furnace": "Fourneau en briques polies de Novaculite", "block.mineralogy.chalk": "Craie", "item.mineralogy.chalk_dust": "Poudre de craie", "item.mineralogy.salt_dust": "Sel", "item.mineralogy.rock_salt_dust": "Cristaux de sel gemme", - "block.mineralogy.rocksaltlamp": "Lampe à sel", - "block.mineralogy.rocksaltstreetlamp": "Lampadaire à sel", - "block.mineralogy.andesite_relief_axe": "Andésite Soulagement de la hache", - "block.mineralogy.andesite_relief_blank": "Andésite Relief vide", - "block.mineralogy.andesite_relief_cross": "Andésite Relief croisé", - "block.mineralogy.andesite_relief_hammer": "Andésite Soulagement marteau", - "block.mineralogy.andesite_relief_hoe": "Andésite Hoe Relief", - "block.mineralogy.andesite_relief_horizontal": "Andésite Relief horizontal", - "block.mineralogy.andesite_relief_i": "Andésite I Relief", - "block.mineralogy.andesite_relief_left": "Andésite Relief gauche", - "block.mineralogy.andesite_relief_pickaxe": "Andésite Relief de pioche", - "block.mineralogy.andesite_relief_plus": "Andésite Plus de soulagement", - "block.mineralogy.andesite_relief_right": "Andésite Bon soulagement", - "block.mineralogy.andesite_relief_sword": "Andésite Soulagement de l'épée", - "block.mineralogy.andesite_relief_vertical": "Andésite Relief vertical", - "block.mineralogy.basalt_relief_axe": "Basalte Soulagement de la hache", - "block.mineralogy.basalt_relief_blank": "Basalte Relief vide", - "block.mineralogy.basalt_relief_cross": "Basalte Relief croisé", - "block.mineralogy.basalt_relief_hammer": "Basalte Soulagement marteau", - "block.mineralogy.basalt_relief_hoe": "Basalte Hoe Relief", - "block.mineralogy.basalt_relief_horizontal": "Basalte Relief horizontal", - "block.mineralogy.basalt_relief_i": "Basalte I Relief", - "block.mineralogy.basalt_relief_left": "Basalte Relief gauche", - "block.mineralogy.basalt_relief_pickaxe": "Basalte Relief de pioche", - "block.mineralogy.basalt_relief_plus": "Basalte Plus de soulagement", - "block.mineralogy.basalt_relief_right": "Basalte Bon soulagement", - "block.mineralogy.basalt_relief_sword": "Basalte Soulagement de l'épée", - "block.mineralogy.basalt_relief_vertical": "Basalte Relief vertical", - "block.mineralogy.diorite_relief_axe": "Diorite Soulagement de la hache", - "block.mineralogy.diorite_relief_blank": "Diorite Relief vide", - "block.mineralogy.diorite_relief_cross": "Diorite Relief croisé", - "block.mineralogy.diorite_relief_hammer": "Diorite Soulagement marteau", - "block.mineralogy.diorite_relief_hoe": "Diorite Hoe Relief", - "block.mineralogy.diorite_relief_horizontal": "Diorite Relief horizontal", - "block.mineralogy.diorite_relief_i": "Diorite I Relief", - "block.mineralogy.diorite_relief_left": "Diorite Relief gauche", - "block.mineralogy.diorite_relief_pickaxe": "Diorite Relief de pioche", - "block.mineralogy.diorite_relief_plus": "Diorite Plus de soulagement", - "block.mineralogy.diorite_relief_right": "Diorite Bon soulagement", - "block.mineralogy.diorite_relief_sword": "Diorite Soulagement de l'épée", - "block.mineralogy.diorite_relief_vertical": "Diorite Relief vertical", - "block.mineralogy.granite_relief_axe": "Granit Soulagement de la hache", - "block.mineralogy.granite_relief_blank": "Granit Relief vide", - "block.mineralogy.granite_relief_cross": "Granit Relief croisé", - "block.mineralogy.granite_relief_hammer": "Granit Soulagement marteau", - "block.mineralogy.granite_relief_hoe": "Granit Hoe Relief", - "block.mineralogy.granite_relief_horizontal": "Granit Relief horizontal", - "block.mineralogy.granite_relief_i": "Granit I Relief", - "block.mineralogy.granite_relief_left": "Granit Relief gauche", - "block.mineralogy.granite_relief_pickaxe": "Granit Relief de pioche", - "block.mineralogy.granite_relief_plus": "Granit Plus de soulagement", - "block.mineralogy.granite_relief_right": "Granit Bon soulagement", - "block.mineralogy.granite_relief_sword": "Granit Soulagement de l'épée", - "block.mineralogy.granite_relief_vertical": "Granit Relief vertical", - "block.mineralogy.rhyolite_relief_axe": "Rhyolite Soulagement de la hache", - "block.mineralogy.rhyolite_relief_blank": "Rhyolite Relief vide", - "block.mineralogy.rhyolite_relief_cross": "Rhyolite Relief croisé", - "block.mineralogy.rhyolite_relief_hammer": "Rhyolite Soulagement marteau", - "block.mineralogy.rhyolite_relief_hoe": "Rhyolite Hoe Relief", - "block.mineralogy.rhyolite_relief_horizontal": "Rhyolite Relief horizontal", - "block.mineralogy.rhyolite_relief_i": "Rhyolite I Relief", - "block.mineralogy.rhyolite_relief_left": "Rhyolite Relief gauche", - "block.mineralogy.rhyolite_relief_pickaxe": "Rhyolite Relief de pioche", - "block.mineralogy.rhyolite_relief_plus": "Rhyolite Plus de soulagement", - "block.mineralogy.rhyolite_relief_right": "Rhyolite Bon soulagement", - "block.mineralogy.rhyolite_relief_sword": "Rhyolite Soulagement de l'épée", - "block.mineralogy.rhyolite_relief_vertical": "Rhyolite Relief vertical", - "block.mineralogy.pegmatite_relief_axe": "Pegmatite Soulagement de la hache", - "block.mineralogy.pegmatite_relief_blank": "Pegmatite Relief vide", - "block.mineralogy.pegmatite_relief_cross": "Pegmatite Relief croisé", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatite Soulagement marteau", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatite Hoe Relief", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatite Relief horizontal", - "block.mineralogy.pegmatite_relief_i": "Pegmatite I Relief", - "block.mineralogy.pegmatite_relief_left": "Pegmatite Relief gauche", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatite Relief de pioche", - "block.mineralogy.pegmatite_relief_plus": "Pegmatite Plus de soulagement", - "block.mineralogy.pegmatite_relief_right": "Pegmatite Bon soulagement", - "block.mineralogy.pegmatite_relief_sword": "Pegmatite Soulagement de l'épée", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatite Relief vertical", - "block.mineralogy.shale_relief_axe": "Schistee argileux Soulagement de la hache", - "block.mineralogy.shale_relief_blank": "Schistee argileux Relief vide", - "block.mineralogy.shale_relief_cross": "Schistee argileux Relief croisé", - "block.mineralogy.shale_relief_hammer": "Schistee argileux Soulagement marteau", - "block.mineralogy.shale_relief_hoe": "Schistee argileux Hoe Relief", - "block.mineralogy.shale_relief_horizontal": "Schistee argileux Relief horizontal", - "block.mineralogy.shale_relief_i": "Schistee argileux I Relief", - "block.mineralogy.shale_relief_left": "Schistee argileux Relief gauche", - "block.mineralogy.shale_relief_pickaxe": "Schistee argileux Relief de pioche", - "block.mineralogy.shale_relief_plus": "Schistee argileux Plus de soulagement", - "block.mineralogy.shale_relief_right": "Schistee argileux Bon soulagement", - "block.mineralogy.shale_relief_sword": "Schistee argileux Soulagement de l'épée", - "block.mineralogy.shale_relief_vertical": "Schistee argileux Relief vertical", - "block.mineralogy.conglomerate_relief_axe": "Conglomérat Soulagement de la hache", - "block.mineralogy.conglomerate_relief_blank": "Conglomérat Relief vide", - "block.mineralogy.conglomerate_relief_cross": "Conglomérat Relief croisé", - "block.mineralogy.conglomerate_relief_hammer": "Conglomérat Soulagement marteau", - "block.mineralogy.conglomerate_relief_hoe": "Conglomérat Hoe Relief", - "block.mineralogy.conglomerate_relief_horizontal": "Conglomérat Relief horizontal", - "block.mineralogy.conglomerate_relief_i": "Conglomérat I Relief", - "block.mineralogy.conglomerate_relief_left": "Conglomérat Relief gauche", - "block.mineralogy.conglomerate_relief_pickaxe": "Conglomérat Relief de pioche", - "block.mineralogy.conglomerate_relief_plus": "Conglomérat Plus de soulagement", - "block.mineralogy.conglomerate_relief_right": "Conglomérat Bon soulagement", - "block.mineralogy.conglomerate_relief_sword": "Conglomérat Soulagement de l'épée", - "block.mineralogy.conglomerate_relief_vertical": "Conglomérat Relief vertical", - "block.mineralogy.dolomite_relief_axe": "Dolomie Soulagement de la hache", - "block.mineralogy.dolomite_relief_blank": "Dolomie Relief vide", - "block.mineralogy.dolomite_relief_cross": "Dolomie Relief croisé", - "block.mineralogy.dolomite_relief_hammer": "Dolomie Soulagement marteau", - "block.mineralogy.dolomite_relief_hoe": "Dolomie Hoe Relief", - "block.mineralogy.dolomite_relief_horizontal": "Dolomie Relief horizontal", - "block.mineralogy.dolomite_relief_i": "Dolomie I Relief", - "block.mineralogy.dolomite_relief_left": "Dolomie Relief gauche", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomie Relief de pioche", - "block.mineralogy.dolomite_relief_plus": "Dolomie Plus de soulagement", - "block.mineralogy.dolomite_relief_right": "Dolomie Bon soulagement", - "block.mineralogy.dolomite_relief_sword": "Dolomie Soulagement de l'épée", - "block.mineralogy.dolomite_relief_vertical": "Dolomie Relief vertical", - "block.mineralogy.limestone_relief_axe": "Calcaire Soulagement de la hache", - "block.mineralogy.limestone_relief_blank": "Calcaire Relief vide", - "block.mineralogy.limestone_relief_cross": "Calcaire Relief croisé", - "block.mineralogy.limestone_relief_hammer": "Calcaire Soulagement marteau", - "block.mineralogy.limestone_relief_hoe": "Calcaire Hoe Relief", - "block.mineralogy.limestone_relief_horizontal": "Calcaire Relief horizontal", - "block.mineralogy.limestone_relief_i": "Calcaire I Relief", - "block.mineralogy.limestone_relief_left": "Calcaire Relief gauche", - "block.mineralogy.limestone_relief_pickaxe": "Calcaire Relief de pioche", - "block.mineralogy.limestone_relief_plus": "Calcaire Plus de soulagement", - "block.mineralogy.limestone_relief_right": "Calcaire Bon soulagement", - "block.mineralogy.limestone_relief_sword": "Calcaire Soulagement de l'épée", - "block.mineralogy.limestone_relief_vertical": "Calcaire Relief vertical", - "block.mineralogy.marble_relief_axe": "Marbre Soulagement de la hache", - "block.mineralogy.marble_relief_blank": "Marbre Relief vide", - "block.mineralogy.marble_relief_cross": "Marbre Relief croisé", - "block.mineralogy.marble_relief_hammer": "Marbre Soulagement marteau", - "block.mineralogy.marble_relief_hoe": "Marbre Hoe Relief", - "block.mineralogy.marble_relief_horizontal": "Marbre Relief horizontal", - "block.mineralogy.marble_relief_i": "Marbre I Relief", - "block.mineralogy.marble_relief_left": "Marbre Relief gauche", - "block.mineralogy.marble_relief_pickaxe": "Marbre Relief de pioche", - "block.mineralogy.marble_relief_plus": "Marbre Plus de soulagement", - "block.mineralogy.marble_relief_right": "Marbre Bon soulagement", - "block.mineralogy.marble_relief_sword": "Marbre Soulagement de l'épée", - "block.mineralogy.marble_relief_vertical": "Marbre Relief vertical", - "block.mineralogy.slate_relief_axe": "Ardoise Soulagement de la hache", - "block.mineralogy.slate_relief_blank": "Ardoise Relief vide", - "block.mineralogy.slate_relief_cross": "Ardoise Relief croisé", - "block.mineralogy.slate_relief_hammer": "Ardoise Soulagement marteau", - "block.mineralogy.slate_relief_hoe": "Ardoise Hoe Relief", - "block.mineralogy.slate_relief_horizontal": "Ardoise Relief horizontal", - "block.mineralogy.slate_relief_i": "Ardoise I Relief", - "block.mineralogy.slate_relief_left": "Ardoise Relief gauche", - "block.mineralogy.slate_relief_pickaxe": "Ardoise Relief de pioche", - "block.mineralogy.slate_relief_plus": "Ardoise Plus de soulagement", - "block.mineralogy.slate_relief_right": "Ardoise Bon soulagement", - "block.mineralogy.slate_relief_sword": "Ardoise Soulagement de l'épée", - "block.mineralogy.slate_relief_vertical": "Ardoise Relief vertical", - "block.mineralogy.schist_relief_axe": "Schiste Soulagement de la hache", - "block.mineralogy.schist_relief_blank": "Schiste Relief vide", - "block.mineralogy.schist_relief_cross": "Schiste Relief croisé", - "block.mineralogy.schist_relief_hammer": "Schiste Soulagement marteau", - "block.mineralogy.schist_relief_hoe": "Schiste Hoe Relief", - "block.mineralogy.schist_relief_horizontal": "Schiste Relief horizontal", - "block.mineralogy.schist_relief_i": "Schiste I Relief", - "block.mineralogy.schist_relief_left": "Schiste Relief gauche", - "block.mineralogy.schist_relief_pickaxe": "Schiste Relief de pioche", - "block.mineralogy.schist_relief_plus": "Schiste Plus de soulagement", - "block.mineralogy.schist_relief_right": "Schiste Bon soulagement", - "block.mineralogy.schist_relief_sword": "Schiste Soulagement de l'épée", - "block.mineralogy.schist_relief_vertical": "Schiste Relief vertical", - "block.mineralogy.gneiss_relief_axe": "Gneiss Soulagement de la hache", - "block.mineralogy.gneiss_relief_blank": "Gneiss Relief vide", - "block.mineralogy.gneiss_relief_cross": "Gneiss Relief croisé", - "block.mineralogy.gneiss_relief_hammer": "Gneiss Soulagement marteau", - "block.mineralogy.gneiss_relief_hoe": "Gneiss Hoe Relief", - "block.mineralogy.gneiss_relief_horizontal": "Gneiss Relief horizontal", - "block.mineralogy.gneiss_relief_i": "Gneiss I Relief", - "block.mineralogy.gneiss_relief_left": "Gneiss Relief gauche", - "block.mineralogy.gneiss_relief_pickaxe": "Gneiss Relief de pioche", - "block.mineralogy.gneiss_relief_plus": "Gneiss Plus de soulagement", - "block.mineralogy.gneiss_relief_right": "Gneiss Bon soulagement", - "block.mineralogy.gneiss_relief_sword": "Gneiss Soulagement de l'épée", - "block.mineralogy.gneiss_relief_vertical": "Gneiss Relief vertical", - "block.mineralogy.phyllite_relief_axe": "Phyllite Soulagement de la hache", - "block.mineralogy.phyllite_relief_blank": "Phyllite Relief vide", - "block.mineralogy.phyllite_relief_cross": "Phyllite Relief croisé", - "block.mineralogy.phyllite_relief_hammer": "Phyllite Soulagement marteau", - "block.mineralogy.phyllite_relief_hoe": "Phyllite Hoe Relief", - "block.mineralogy.phyllite_relief_horizontal": "Phyllite Relief horizontal", - "block.mineralogy.phyllite_relief_i": "Phyllite I Relief", - "block.mineralogy.phyllite_relief_left": "Phyllite Relief gauche", - "block.mineralogy.phyllite_relief_pickaxe": "Phyllite Relief de pioche", - "block.mineralogy.phyllite_relief_plus": "Phyllite Plus de soulagement", - "block.mineralogy.phyllite_relief_right": "Phyllite Bon soulagement", - "block.mineralogy.phyllite_relief_sword": "Phyllite Soulagement de l'épée", - "block.mineralogy.phyllite_relief_vertical": "Phyllite Relief vertical", - "block.mineralogy.amphibolite_relief_axe": "Amphibolite Soulagement de la hache", - "block.mineralogy.amphibolite_relief_blank": "Amphibolite Relief vide", - "block.mineralogy.amphibolite_relief_cross": "Amphibolite Relief croisé", - "block.mineralogy.amphibolite_relief_hammer": "Amphibolite Soulagement marteau", - "block.mineralogy.amphibolite_relief_hoe": "Amphibolite Hoe Relief", - "block.mineralogy.amphibolite_relief_horizontal": "Amphibolite Relief horizontal", - "block.mineralogy.amphibolite_relief_i": "Amphibolite I Relief", - "block.mineralogy.amphibolite_relief_left": "Amphibolite Relief gauche", - "block.mineralogy.amphibolite_relief_pickaxe": "Amphibolite Relief de pioche", - "block.mineralogy.amphibolite_relief_plus": "Amphibolite Plus de soulagement", - "block.mineralogy.amphibolite_relief_right": "Amphibolite Bon soulagement", - "block.mineralogy.amphibolite_relief_sword": "Amphibolite Soulagement de l'épée", - "block.mineralogy.amphibolite_relief_vertical": "Amphibolite Relief vertical", - "block.mineralogy.diabase_relief_axe": "Diabase Soulagement de la hache", - "block.mineralogy.diabase_relief_blank": "Diabase Relief vide", - "block.mineralogy.diabase_relief_cross": "Diabase Relief croisé", - "block.mineralogy.diabase_relief_hammer": "Diabase Soulagement marteau", - "block.mineralogy.diabase_relief_hoe": "Diabase Hoe Relief", - "block.mineralogy.diabase_relief_horizontal": "Diabase Relief horizontal", - "block.mineralogy.diabase_relief_i": "Diabase I Relief", - "block.mineralogy.diabase_relief_left": "Diabase Relief gauche", - "block.mineralogy.diabase_relief_pickaxe": "Diabase Relief de pioche", - "block.mineralogy.diabase_relief_plus": "Diabase Plus de soulagement", - "block.mineralogy.diabase_relief_right": "Diabase Bon soulagement", - "block.mineralogy.diabase_relief_sword": "Diabase Soulagement de l'épée", - "block.mineralogy.diabase_relief_vertical": "Diabase Relief vertical", - "block.mineralogy.gabbro_relief_axe": "Gabbro Soulagement de la hache", - "block.mineralogy.gabbro_relief_blank": "Gabbro Relief vide", - "block.mineralogy.gabbro_relief_cross": "Gabbro Relief croisé", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Soulagement marteau", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Hoe Relief", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Relief horizontal", - "block.mineralogy.gabbro_relief_i": "Gabbro I Relief", - "block.mineralogy.gabbro_relief_left": "Gabbro Relief gauche", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Relief de pioche", - "block.mineralogy.gabbro_relief_plus": "Gabbro Plus de soulagement", - "block.mineralogy.gabbro_relief_right": "Gabbro Bon soulagement", - "block.mineralogy.gabbro_relief_sword": "Gabbro Soulagement de l'épée", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Relief vertical", - "block.mineralogy.peridotite_relief_axe": "Péridotite Soulagement de la hache", - "block.mineralogy.peridotite_relief_blank": "Péridotite Relief vide", - "block.mineralogy.peridotite_relief_cross": "Péridotite Relief croisé", - "block.mineralogy.peridotite_relief_hammer": "Péridotite Soulagement marteau", - "block.mineralogy.peridotite_relief_hoe": "Péridotite Hoe Relief", - "block.mineralogy.peridotite_relief_horizontal": "Péridotite Relief horizontal", - "block.mineralogy.peridotite_relief_i": "Péridotite I Relief", - "block.mineralogy.peridotite_relief_left": "Péridotite Relief gauche", - "block.mineralogy.peridotite_relief_pickaxe": "Péridotite Relief de pioche", - "block.mineralogy.peridotite_relief_plus": "Péridotite Plus de soulagement", - "block.mineralogy.peridotite_relief_right": "Péridotite Bon soulagement", - "block.mineralogy.peridotite_relief_sword": "Péridotite Soulagement de l'épée", - "block.mineralogy.peridotite_relief_vertical": "Péridotite Relief vertical", - "block.mineralogy.basaltic_glass_relief_axe": "Verre basaltique Soulagement de la hache", - "block.mineralogy.basaltic_glass_relief_blank": "Verre basaltique Relief vide", - "block.mineralogy.basaltic_glass_relief_cross": "Verre basaltique Relief croisé", - "block.mineralogy.basaltic_glass_relief_hammer": "Verre basaltique Soulagement marteau", - "block.mineralogy.basaltic_glass_relief_hoe": "Verre basaltique Hoe Relief", - "block.mineralogy.basaltic_glass_relief_horizontal": "Verre basaltique Relief horizontal", - "block.mineralogy.basaltic_glass_relief_i": "Verre basaltique I Relief", - "block.mineralogy.basaltic_glass_relief_left": "Verre basaltique Relief gauche", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Verre basaltique Relief de pioche", - "block.mineralogy.basaltic_glass_relief_plus": "Verre basaltique Plus de soulagement", - "block.mineralogy.basaltic_glass_relief_right": "Verre basaltique Bon soulagement", - "block.mineralogy.basaltic_glass_relief_sword": "Verre basaltique Soulagement de l'épée", - "block.mineralogy.basaltic_glass_relief_vertical": "Verre basaltique Relief vertical", - "block.mineralogy.scoria_relief_axe": "Scories Soulagement de la hache", - "block.mineralogy.scoria_relief_blank": "Scories Relief vide", - "block.mineralogy.scoria_relief_cross": "Scories Relief croisé", - "block.mineralogy.scoria_relief_hammer": "Scories Soulagement marteau", - "block.mineralogy.scoria_relief_hoe": "Scories Hoe Relief", - "block.mineralogy.scoria_relief_horizontal": "Scories Relief horizontal", - "block.mineralogy.scoria_relief_i": "Scories I Relief", - "block.mineralogy.scoria_relief_left": "Scories Relief gauche", - "block.mineralogy.scoria_relief_pickaxe": "Scories Relief de pioche", - "block.mineralogy.scoria_relief_plus": "Scories Plus de soulagement", - "block.mineralogy.scoria_relief_right": "Scories Bon soulagement", - "block.mineralogy.scoria_relief_sword": "Scories Soulagement de l'épée", - "block.mineralogy.scoria_relief_vertical": "Scories Relief vertical", - "block.mineralogy.tuff_relief_axe": "Tuf Soulagement de la hache", - "block.mineralogy.tuff_relief_blank": "Tuf Relief vide", - "block.mineralogy.tuff_relief_cross": "Tuf Relief croisé", - "block.mineralogy.tuff_relief_hammer": "Tuf Soulagement marteau", - "block.mineralogy.tuff_relief_hoe": "Tuf Hoe Relief", - "block.mineralogy.tuff_relief_horizontal": "Tuf Relief horizontal", - "block.mineralogy.tuff_relief_i": "Tuf I Relief", - "block.mineralogy.tuff_relief_left": "Tuf Relief gauche", - "block.mineralogy.tuff_relief_pickaxe": "Tuf Relief de pioche", - "block.mineralogy.tuff_relief_plus": "Tuf Plus de soulagement", - "block.mineralogy.tuff_relief_right": "Tuf Bon soulagement", - "block.mineralogy.tuff_relief_sword": "Tuf Soulagement de l'épée", - "block.mineralogy.tuff_relief_vertical": "Tuf Relief vertical", - "block.mineralogy.siltstone_relief_axe": "Pierre de terre Soulagement de la hache", - "block.mineralogy.siltstone_relief_blank": "Pierre de terre Relief vide", - "block.mineralogy.siltstone_relief_cross": "Pierre de terre Relief croisé", - "block.mineralogy.siltstone_relief_hammer": "Pierre de terre Soulagement marteau", - "block.mineralogy.siltstone_relief_hoe": "Pierre de terre Hoe Relief", - "block.mineralogy.siltstone_relief_horizontal": "Pierre de terre Relief horizontal", - "block.mineralogy.siltstone_relief_i": "Pierre de terre I Relief", - "block.mineralogy.siltstone_relief_left": "Pierre de terre Relief gauche", - "block.mineralogy.siltstone_relief_pickaxe": "Pierre de terre Relief de pioche", - "block.mineralogy.siltstone_relief_plus": "Pierre de terre Plus de soulagement", - "block.mineralogy.siltstone_relief_right": "Pierre de terre Bon soulagement", - "block.mineralogy.siltstone_relief_sword": "Pierre de terre Soulagement de l'épée", - "block.mineralogy.siltstone_relief_vertical": "Pierre de terre Relief vertical", - "block.mineralogy.rock_salt_relief_axe": "Sel gemme Soulagement de la hache", - "block.mineralogy.rock_salt_relief_blank": "Sel gemme Relief vide", - "block.mineralogy.rock_salt_relief_cross": "Sel gemme Relief croisé", - "block.mineralogy.rock_salt_relief_hammer": "Sel gemme Soulagement marteau", - "block.mineralogy.rock_salt_relief_hoe": "Sel gemme Hoe Relief", - "block.mineralogy.rock_salt_relief_horizontal": "Sel gemme Relief horizontal", - "block.mineralogy.rock_salt_relief_i": "Sel gemme I Relief", - "block.mineralogy.rock_salt_relief_left": "Sel gemme Relief gauche", - "block.mineralogy.rock_salt_relief_pickaxe": "Sel gemme Relief de pioche", - "block.mineralogy.rock_salt_relief_plus": "Sel gemme Plus de soulagement", - "block.mineralogy.rock_salt_relief_right": "Sel gemme Bon soulagement", - "block.mineralogy.rock_salt_relief_sword": "Sel gemme Soulagement de l'épée", - "block.mineralogy.rock_salt_relief_vertical": "Sel gemme Relief vertical", - "block.mineralogy.hornfels_relief_axe": "Hornfels Soulagement de la hache", - "block.mineralogy.hornfels_relief_blank": "Hornfels Relief vide", - "block.mineralogy.hornfels_relief_cross": "Hornfels Relief croisé", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Soulagement marteau", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Hoe Relief", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Relief horizontal", - "block.mineralogy.hornfels_relief_i": "Hornfels I Relief", - "block.mineralogy.hornfels_relief_left": "Hornfels Relief gauche", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Relief de pioche", - "block.mineralogy.hornfels_relief_plus": "Hornfels Plus de soulagement", - "block.mineralogy.hornfels_relief_right": "Hornfels Bon soulagement", - "block.mineralogy.hornfels_relief_sword": "Hornfels Soulagement de l'épée", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Relief vertical", - "block.mineralogy.quartzite_relief_axe": "Quartzite Soulagement de la hache", - "block.mineralogy.quartzite_relief_blank": "Quartzite Relief vide", - "block.mineralogy.quartzite_relief_cross": "Quartzite Relief croisé", - "block.mineralogy.quartzite_relief_hammer": "Quartzite Soulagement marteau", - "block.mineralogy.quartzite_relief_hoe": "Quartzite Hoe Relief", - "block.mineralogy.quartzite_relief_horizontal": "Quartzite Relief horizontal", - "block.mineralogy.quartzite_relief_i": "Quartzite I Relief", - "block.mineralogy.quartzite_relief_left": "Quartzite Relief gauche", - "block.mineralogy.quartzite_relief_pickaxe": "Quartzite Relief de pioche", - "block.mineralogy.quartzite_relief_plus": "Quartzite Plus de soulagement", - "block.mineralogy.quartzite_relief_right": "Quartzite Bon soulagement", - "block.mineralogy.quartzite_relief_sword": "Quartzite Soulagement de l'épée", - "block.mineralogy.quartzite_relief_vertical": "Quartzite Relief vertical", - "block.mineralogy.novaculite_relief_axe": "Novaculite Soulagement de la hache", - "block.mineralogy.novaculite_relief_blank": "Novaculite Relief vide", - "block.mineralogy.novaculite_relief_cross": "Novaculite Relief croisé", - "block.mineralogy.novaculite_relief_hammer": "Novaculite Soulagement marteau", - "block.mineralogy.novaculite_relief_hoe": "Novaculite Hoe Relief", - "block.mineralogy.novaculite_relief_horizontal": "Novaculite Relief horizontal", - "block.mineralogy.novaculite_relief_i": "Novaculite I Relief", - "block.mineralogy.novaculite_relief_left": "Novaculite Relief gauche", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculite Relief de pioche", - "block.mineralogy.novaculite_relief_plus": "Novaculite Plus de soulagement", - "block.mineralogy.novaculite_relief_right": "Novaculite Bon soulagement", - "block.mineralogy.novaculite_relief_sword": "Novaculite Soulagement de l'épée", - "block.mineralogy.novaculite_relief_vertical": "Novaculite Relief vertical", - "advancements.mineralogy.all_the_rocks.title": "Appelez les rochers Ludo !", - "advancements.mineralogy.all_the_rocks.description": "Wow, vous avez trouvé tous les types de roches standards en minéralogie !", - "fluid.mineralogy.crude_oil": "Pétrole brut", - "block.mineralogy.crude_oil": "Pétrole brut", - "item.mineralogy.crude_oil_bucket": "Seau de pétrole brut", + "block.mineralogy.rocksaltlamp": "Lampe en sel gemme", + "block.mineralogy.rocksaltstreetlamp": "Réverbère en sel gemme", + "block.mineralogy.andesite_relief_axe": "Bas-relief en Andésite (hache)", + "block.mineralogy.andesite_relief_blank": "Bas-relief en Andésite (sans motif)", + "block.mineralogy.andesite_relief_cross": "Bas-relief en Andésite (croix)", + "block.mineralogy.andesite_relief_hammer": "Bas-relief en Andésite (marteau)", + "block.mineralogy.andesite_relief_hoe": "Bas-relief en Andésite (houe)", + "block.mineralogy.andesite_relief_horizontal": "Bas-relief en Andésite (horizontal)", + "block.mineralogy.andesite_relief_i": "Bas-relief en Andésite (I)", + "block.mineralogy.andesite_relief_left": "Bas-relief en Andésite (gauche)", + "block.mineralogy.andesite_relief_pickaxe": "Bas-relief en Andésite (pioche)", + "block.mineralogy.andesite_relief_plus": "Bas-relief en Andésite (signe plus)", + "block.mineralogy.andesite_relief_right": "Bas-relief en Andésite (droite)", + "block.mineralogy.andesite_relief_sword": "Bas-relief en Andésite (épée)", + "block.mineralogy.andesite_relief_vertical": "Bas-relief en Andésite (vertical)", + "block.mineralogy.basalt_relief_axe": "Bas-relief en Basalte (hache)", + "block.mineralogy.basalt_relief_blank": "Bas-relief en Basalte (sans motif)", + "block.mineralogy.basalt_relief_cross": "Bas-relief en Basalte (croix)", + "block.mineralogy.basalt_relief_hammer": "Bas-relief en Basalte (marteau)", + "block.mineralogy.basalt_relief_hoe": "Bas-relief en Basalte (houe)", + "block.mineralogy.basalt_relief_horizontal": "Bas-relief en Basalte (horizontal)", + "block.mineralogy.basalt_relief_i": "Bas-relief en Basalte (I)", + "block.mineralogy.basalt_relief_left": "Bas-relief en Basalte (gauche)", + "block.mineralogy.basalt_relief_pickaxe": "Bas-relief en Basalte (pioche)", + "block.mineralogy.basalt_relief_plus": "Bas-relief en Basalte (signe plus)", + "block.mineralogy.basalt_relief_right": "Bas-relief en Basalte (droite)", + "block.mineralogy.basalt_relief_sword": "Bas-relief en Basalte (épée)", + "block.mineralogy.basalt_relief_vertical": "Bas-relief en Basalte (vertical)", + "block.mineralogy.diorite_relief_axe": "Bas-relief en Diorite (hache)", + "block.mineralogy.diorite_relief_blank": "Bas-relief en Diorite (sans motif)", + "block.mineralogy.diorite_relief_cross": "Bas-relief en Diorite (croix)", + "block.mineralogy.diorite_relief_hammer": "Bas-relief en Diorite (marteau)", + "block.mineralogy.diorite_relief_hoe": "Bas-relief en Diorite (houe)", + "block.mineralogy.diorite_relief_horizontal": "Bas-relief en Diorite (horizontal)", + "block.mineralogy.diorite_relief_i": "Bas-relief en Diorite (I)", + "block.mineralogy.diorite_relief_left": "Bas-relief en Diorite (gauche)", + "block.mineralogy.diorite_relief_pickaxe": "Bas-relief en Diorite (pioche)", + "block.mineralogy.diorite_relief_plus": "Bas-relief en Diorite (signe plus)", + "block.mineralogy.diorite_relief_right": "Bas-relief en Diorite (droite)", + "block.mineralogy.diorite_relief_sword": "Bas-relief en Diorite (épée)", + "block.mineralogy.diorite_relief_vertical": "Bas-relief en Diorite (vertical)", + "block.mineralogy.granite_relief_axe": "Bas-relief en Granite (hache)", + "block.mineralogy.granite_relief_blank": "Bas-relief en Granite (sans motif)", + "block.mineralogy.granite_relief_cross": "Bas-relief en Granite (croix)", + "block.mineralogy.granite_relief_hammer": "Bas-relief en Granite (marteau)", + "block.mineralogy.granite_relief_hoe": "Bas-relief en Granite (houe)", + "block.mineralogy.granite_relief_horizontal": "Bas-relief en Granite (horizontal)", + "block.mineralogy.granite_relief_i": "Bas-relief en Granite (I)", + "block.mineralogy.granite_relief_left": "Bas-relief en Granite (gauche)", + "block.mineralogy.granite_relief_pickaxe": "Bas-relief en Granite (pioche)", + "block.mineralogy.granite_relief_plus": "Bas-relief en Granite (signe plus)", + "block.mineralogy.granite_relief_right": "Bas-relief en Granite (droite)", + "block.mineralogy.granite_relief_sword": "Bas-relief en Granite (épée)", + "block.mineralogy.granite_relief_vertical": "Bas-relief en Granite (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Bas-relief en Rhyolite (hache)", + "block.mineralogy.rhyolite_relief_blank": "Bas-relief en Rhyolite (sans motif)", + "block.mineralogy.rhyolite_relief_cross": "Bas-relief en Rhyolite (croix)", + "block.mineralogy.rhyolite_relief_hammer": "Bas-relief en Rhyolite (marteau)", + "block.mineralogy.rhyolite_relief_hoe": "Bas-relief en Rhyolite (houe)", + "block.mineralogy.rhyolite_relief_horizontal": "Bas-relief en Rhyolite (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Bas-relief en Rhyolite (I)", + "block.mineralogy.rhyolite_relief_left": "Bas-relief en Rhyolite (gauche)", + "block.mineralogy.rhyolite_relief_pickaxe": "Bas-relief en Rhyolite (pioche)", + "block.mineralogy.rhyolite_relief_plus": "Bas-relief en Rhyolite (signe plus)", + "block.mineralogy.rhyolite_relief_right": "Bas-relief en Rhyolite (droite)", + "block.mineralogy.rhyolite_relief_sword": "Bas-relief en Rhyolite (épée)", + "block.mineralogy.rhyolite_relief_vertical": "Bas-relief en Rhyolite (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Bas-relief en Pegmatite (hache)", + "block.mineralogy.pegmatite_relief_blank": "Bas-relief en Pegmatite (sans motif)", + "block.mineralogy.pegmatite_relief_cross": "Bas-relief en Pegmatite (croix)", + "block.mineralogy.pegmatite_relief_hammer": "Bas-relief en Pegmatite (marteau)", + "block.mineralogy.pegmatite_relief_hoe": "Bas-relief en Pegmatite (houe)", + "block.mineralogy.pegmatite_relief_horizontal": "Bas-relief en Pegmatite (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Bas-relief en Pegmatite (I)", + "block.mineralogy.pegmatite_relief_left": "Bas-relief en Pegmatite (gauche)", + "block.mineralogy.pegmatite_relief_pickaxe": "Bas-relief en Pegmatite (pioche)", + "block.mineralogy.pegmatite_relief_plus": "Bas-relief en Pegmatite (signe plus)", + "block.mineralogy.pegmatite_relief_right": "Bas-relief en Pegmatite (droite)", + "block.mineralogy.pegmatite_relief_sword": "Bas-relief en Pegmatite (épée)", + "block.mineralogy.pegmatite_relief_vertical": "Bas-relief en Pegmatite (vertical)", + "block.mineralogy.shale_relief_axe": "Bas-relief en Schiste argileux (hache)", + "block.mineralogy.shale_relief_blank": "Bas-relief en Schiste argileux (sans motif)", + "block.mineralogy.shale_relief_cross": "Bas-relief en Schiste argileux (croix)", + "block.mineralogy.shale_relief_hammer": "Bas-relief en Schiste argileux (marteau)", + "block.mineralogy.shale_relief_hoe": "Bas-relief en Schiste argileux (houe)", + "block.mineralogy.shale_relief_horizontal": "Bas-relief en Schiste argileux (horizontal)", + "block.mineralogy.shale_relief_i": "Bas-relief en Schiste argileux (I)", + "block.mineralogy.shale_relief_left": "Bas-relief en Schiste argileux (gauche)", + "block.mineralogy.shale_relief_pickaxe": "Bas-relief en Schiste argileux (pioche)", + "block.mineralogy.shale_relief_plus": "Bas-relief en Schiste argileux (signe plus)", + "block.mineralogy.shale_relief_right": "Bas-relief en Schiste argileux (droite)", + "block.mineralogy.shale_relief_sword": "Bas-relief en Schiste argileux (épée)", + "block.mineralogy.shale_relief_vertical": "Bas-relief en Schiste argileux (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Bas-relief en Conglomérat (hache)", + "block.mineralogy.conglomerate_relief_blank": "Bas-relief en Conglomérat (sans motif)", + "block.mineralogy.conglomerate_relief_cross": "Bas-relief en Conglomérat (croix)", + "block.mineralogy.conglomerate_relief_hammer": "Bas-relief en Conglomérat (marteau)", + "block.mineralogy.conglomerate_relief_hoe": "Bas-relief en Conglomérat (houe)", + "block.mineralogy.conglomerate_relief_horizontal": "Bas-relief en Conglomérat (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Bas-relief en Conglomérat (I)", + "block.mineralogy.conglomerate_relief_left": "Bas-relief en Conglomérat (gauche)", + "block.mineralogy.conglomerate_relief_pickaxe": "Bas-relief en Conglomérat (pioche)", + "block.mineralogy.conglomerate_relief_plus": "Bas-relief en Conglomérat (signe plus)", + "block.mineralogy.conglomerate_relief_right": "Bas-relief en Conglomérat (droite)", + "block.mineralogy.conglomerate_relief_sword": "Bas-relief en Conglomérat (épée)", + "block.mineralogy.conglomerate_relief_vertical": "Bas-relief en Conglomérat (vertical)", + "block.mineralogy.dolomite_relief_axe": "Bas-relief en Dolomie (hache)", + "block.mineralogy.dolomite_relief_blank": "Bas-relief en Dolomie (sans motif)", + "block.mineralogy.dolomite_relief_cross": "Bas-relief en Dolomie (croix)", + "block.mineralogy.dolomite_relief_hammer": "Bas-relief en Dolomie (marteau)", + "block.mineralogy.dolomite_relief_hoe": "Bas-relief en Dolomie (houe)", + "block.mineralogy.dolomite_relief_horizontal": "Bas-relief en Dolomie (horizontal)", + "block.mineralogy.dolomite_relief_i": "Bas-relief en Dolomie (I)", + "block.mineralogy.dolomite_relief_left": "Bas-relief en Dolomie (gauche)", + "block.mineralogy.dolomite_relief_pickaxe": "Bas-relief en Dolomie (pioche)", + "block.mineralogy.dolomite_relief_plus": "Bas-relief en Dolomie (signe plus)", + "block.mineralogy.dolomite_relief_right": "Bas-relief en Dolomie (droite)", + "block.mineralogy.dolomite_relief_sword": "Bas-relief en Dolomie (épée)", + "block.mineralogy.dolomite_relief_vertical": "Bas-relief en Dolomie (vertical)", + "block.mineralogy.limestone_relief_axe": "Bas-relief en Calcaire (hache)", + "block.mineralogy.limestone_relief_blank": "Bas-relief en Calcaire (sans motif)", + "block.mineralogy.limestone_relief_cross": "Bas-relief en Calcaire (croix)", + "block.mineralogy.limestone_relief_hammer": "Bas-relief en Calcaire (marteau)", + "block.mineralogy.limestone_relief_hoe": "Bas-relief en Calcaire (houe)", + "block.mineralogy.limestone_relief_horizontal": "Bas-relief en Calcaire (horizontal)", + "block.mineralogy.limestone_relief_i": "Bas-relief en Calcaire (I)", + "block.mineralogy.limestone_relief_left": "Bas-relief en Calcaire (gauche)", + "block.mineralogy.limestone_relief_pickaxe": "Bas-relief en Calcaire (pioche)", + "block.mineralogy.limestone_relief_plus": "Bas-relief en Calcaire (signe plus)", + "block.mineralogy.limestone_relief_right": "Bas-relief en Calcaire (droite)", + "block.mineralogy.limestone_relief_sword": "Bas-relief en Calcaire (épée)", + "block.mineralogy.limestone_relief_vertical": "Bas-relief en Calcaire (vertical)", + "block.mineralogy.marble_relief_axe": "Bas-relief en Marbre (hache)", + "block.mineralogy.marble_relief_blank": "Bas-relief en Marbre (sans motif)", + "block.mineralogy.marble_relief_cross": "Bas-relief en Marbre (croix)", + "block.mineralogy.marble_relief_hammer": "Bas-relief en Marbre (marteau)", + "block.mineralogy.marble_relief_hoe": "Bas-relief en Marbre (houe)", + "block.mineralogy.marble_relief_horizontal": "Bas-relief en Marbre (horizontal)", + "block.mineralogy.marble_relief_i": "Bas-relief en Marbre (I)", + "block.mineralogy.marble_relief_left": "Bas-relief en Marbre (gauche)", + "block.mineralogy.marble_relief_pickaxe": "Bas-relief en Marbre (pioche)", + "block.mineralogy.marble_relief_plus": "Bas-relief en Marbre (signe plus)", + "block.mineralogy.marble_relief_right": "Bas-relief en Marbre (droite)", + "block.mineralogy.marble_relief_sword": "Bas-relief en Marbre (épée)", + "block.mineralogy.marble_relief_vertical": "Bas-relief en Marbre (vertical)", + "block.mineralogy.slate_relief_axe": "Bas-relief en Ardoise (hache)", + "block.mineralogy.slate_relief_blank": "Bas-relief en Ardoise (sans motif)", + "block.mineralogy.slate_relief_cross": "Bas-relief en Ardoise (croix)", + "block.mineralogy.slate_relief_hammer": "Bas-relief en Ardoise (marteau)", + "block.mineralogy.slate_relief_hoe": "Bas-relief en Ardoise (houe)", + "block.mineralogy.slate_relief_horizontal": "Bas-relief en Ardoise (horizontal)", + "block.mineralogy.slate_relief_i": "Bas-relief en Ardoise (I)", + "block.mineralogy.slate_relief_left": "Bas-relief en Ardoise (gauche)", + "block.mineralogy.slate_relief_pickaxe": "Bas-relief en Ardoise (pioche)", + "block.mineralogy.slate_relief_plus": "Bas-relief en Ardoise (signe plus)", + "block.mineralogy.slate_relief_right": "Bas-relief en Ardoise (droite)", + "block.mineralogy.slate_relief_sword": "Bas-relief en Ardoise (épée)", + "block.mineralogy.slate_relief_vertical": "Bas-relief en Ardoise (vertical)", + "block.mineralogy.schist_relief_axe": "Bas-relief en Micaschiste (hache)", + "block.mineralogy.schist_relief_blank": "Bas-relief en Micaschiste (sans motif)", + "block.mineralogy.schist_relief_cross": "Bas-relief en Micaschiste (croix)", + "block.mineralogy.schist_relief_hammer": "Bas-relief en Micaschiste (marteau)", + "block.mineralogy.schist_relief_hoe": "Bas-relief en Micaschiste (houe)", + "block.mineralogy.schist_relief_horizontal": "Bas-relief en Micaschiste (horizontal)", + "block.mineralogy.schist_relief_i": "Bas-relief en Micaschiste (I)", + "block.mineralogy.schist_relief_left": "Bas-relief en Micaschiste (gauche)", + "block.mineralogy.schist_relief_pickaxe": "Bas-relief en Micaschiste (pioche)", + "block.mineralogy.schist_relief_plus": "Bas-relief en Micaschiste (signe plus)", + "block.mineralogy.schist_relief_right": "Bas-relief en Micaschiste (droite)", + "block.mineralogy.schist_relief_sword": "Bas-relief en Micaschiste (épée)", + "block.mineralogy.schist_relief_vertical": "Bas-relief en Micaschiste (vertical)", + "block.mineralogy.gneiss_relief_axe": "Bas-relief en Gneiss (hache)", + "block.mineralogy.gneiss_relief_blank": "Bas-relief en Gneiss (sans motif)", + "block.mineralogy.gneiss_relief_cross": "Bas-relief en Gneiss (croix)", + "block.mineralogy.gneiss_relief_hammer": "Bas-relief en Gneiss (marteau)", + "block.mineralogy.gneiss_relief_hoe": "Bas-relief en Gneiss (houe)", + "block.mineralogy.gneiss_relief_horizontal": "Bas-relief en Gneiss (horizontal)", + "block.mineralogy.gneiss_relief_i": "Bas-relief en Gneiss (I)", + "block.mineralogy.gneiss_relief_left": "Bas-relief en Gneiss (gauche)", + "block.mineralogy.gneiss_relief_pickaxe": "Bas-relief en Gneiss (pioche)", + "block.mineralogy.gneiss_relief_plus": "Bas-relief en Gneiss (signe plus)", + "block.mineralogy.gneiss_relief_right": "Bas-relief en Gneiss (droite)", + "block.mineralogy.gneiss_relief_sword": "Bas-relief en Gneiss (épée)", + "block.mineralogy.gneiss_relief_vertical": "Bas-relief en Gneiss (vertical)", + "block.mineralogy.phyllite_relief_axe": "Bas-relief en Phyllade (hache)", + "block.mineralogy.phyllite_relief_blank": "Bas-relief en Phyllade (sans motif)", + "block.mineralogy.phyllite_relief_cross": "Bas-relief en Phyllade (croix)", + "block.mineralogy.phyllite_relief_hammer": "Bas-relief en Phyllade (marteau)", + "block.mineralogy.phyllite_relief_hoe": "Bas-relief en Phyllade (houe)", + "block.mineralogy.phyllite_relief_horizontal": "Bas-relief en Phyllade (horizontal)", + "block.mineralogy.phyllite_relief_i": "Bas-relief en Phyllade (I)", + "block.mineralogy.phyllite_relief_left": "Bas-relief en Phyllade (gauche)", + "block.mineralogy.phyllite_relief_pickaxe": "Bas-relief en Phyllade (pioche)", + "block.mineralogy.phyllite_relief_plus": "Bas-relief en Phyllade (signe plus)", + "block.mineralogy.phyllite_relief_right": "Bas-relief en Phyllade (droite)", + "block.mineralogy.phyllite_relief_sword": "Bas-relief en Phyllade (épée)", + "block.mineralogy.phyllite_relief_vertical": "Bas-relief en Phyllade (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Bas-relief en Amphibolite (hache)", + "block.mineralogy.amphibolite_relief_blank": "Bas-relief en Amphibolite (sans motif)", + "block.mineralogy.amphibolite_relief_cross": "Bas-relief en Amphibolite (croix)", + "block.mineralogy.amphibolite_relief_hammer": "Bas-relief en Amphibolite (marteau)", + "block.mineralogy.amphibolite_relief_hoe": "Bas-relief en Amphibolite (houe)", + "block.mineralogy.amphibolite_relief_horizontal": "Bas-relief en Amphibolite (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Bas-relief en Amphibolite (I)", + "block.mineralogy.amphibolite_relief_left": "Bas-relief en Amphibolite (gauche)", + "block.mineralogy.amphibolite_relief_pickaxe": "Bas-relief en Amphibolite (pioche)", + "block.mineralogy.amphibolite_relief_plus": "Bas-relief en Amphibolite (signe plus)", + "block.mineralogy.amphibolite_relief_right": "Bas-relief en Amphibolite (droite)", + "block.mineralogy.amphibolite_relief_sword": "Bas-relief en Amphibolite (épée)", + "block.mineralogy.amphibolite_relief_vertical": "Bas-relief en Amphibolite (vertical)", + "block.mineralogy.diabase_relief_axe": "Bas-relief en Diabase (hache)", + "block.mineralogy.diabase_relief_blank": "Bas-relief en Diabase (sans motif)", + "block.mineralogy.diabase_relief_cross": "Bas-relief en Diabase (croix)", + "block.mineralogy.diabase_relief_hammer": "Bas-relief en Diabase (marteau)", + "block.mineralogy.diabase_relief_hoe": "Bas-relief en Diabase (houe)", + "block.mineralogy.diabase_relief_horizontal": "Bas-relief en Diabase (horizontal)", + "block.mineralogy.diabase_relief_i": "Bas-relief en Diabase (I)", + "block.mineralogy.diabase_relief_left": "Bas-relief en Diabase (gauche)", + "block.mineralogy.diabase_relief_pickaxe": "Bas-relief en Diabase (pioche)", + "block.mineralogy.diabase_relief_plus": "Bas-relief en Diabase (signe plus)", + "block.mineralogy.diabase_relief_right": "Bas-relief en Diabase (droite)", + "block.mineralogy.diabase_relief_sword": "Bas-relief en Diabase (épée)", + "block.mineralogy.diabase_relief_vertical": "Bas-relief en Diabase (vertical)", + "block.mineralogy.gabbro_relief_axe": "Bas-relief en Gabbro (hache)", + "block.mineralogy.gabbro_relief_blank": "Bas-relief en Gabbro (sans motif)", + "block.mineralogy.gabbro_relief_cross": "Bas-relief en Gabbro (croix)", + "block.mineralogy.gabbro_relief_hammer": "Bas-relief en Gabbro (marteau)", + "block.mineralogy.gabbro_relief_hoe": "Bas-relief en Gabbro (houe)", + "block.mineralogy.gabbro_relief_horizontal": "Bas-relief en Gabbro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Bas-relief en Gabbro (I)", + "block.mineralogy.gabbro_relief_left": "Bas-relief en Gabbro (gauche)", + "block.mineralogy.gabbro_relief_pickaxe": "Bas-relief en Gabbro (pioche)", + "block.mineralogy.gabbro_relief_plus": "Bas-relief en Gabbro (signe plus)", + "block.mineralogy.gabbro_relief_right": "Bas-relief en Gabbro (droite)", + "block.mineralogy.gabbro_relief_sword": "Bas-relief en Gabbro (épée)", + "block.mineralogy.gabbro_relief_vertical": "Bas-relief en Gabbro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Bas-relief en Péridotite (hache)", + "block.mineralogy.peridotite_relief_blank": "Bas-relief en Péridotite (sans motif)", + "block.mineralogy.peridotite_relief_cross": "Bas-relief en Péridotite (croix)", + "block.mineralogy.peridotite_relief_hammer": "Bas-relief en Péridotite (marteau)", + "block.mineralogy.peridotite_relief_hoe": "Bas-relief en Péridotite (houe)", + "block.mineralogy.peridotite_relief_horizontal": "Bas-relief en Péridotite (horizontal)", + "block.mineralogy.peridotite_relief_i": "Bas-relief en Péridotite (I)", + "block.mineralogy.peridotite_relief_left": "Bas-relief en Péridotite (gauche)", + "block.mineralogy.peridotite_relief_pickaxe": "Bas-relief en Péridotite (pioche)", + "block.mineralogy.peridotite_relief_plus": "Bas-relief en Péridotite (signe plus)", + "block.mineralogy.peridotite_relief_right": "Bas-relief en Péridotite (droite)", + "block.mineralogy.peridotite_relief_sword": "Bas-relief en Péridotite (épée)", + "block.mineralogy.peridotite_relief_vertical": "Bas-relief en Péridotite (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Bas-relief en Verre basaltique (hache)", + "block.mineralogy.basaltic_glass_relief_blank": "Bas-relief en Verre basaltique (sans motif)", + "block.mineralogy.basaltic_glass_relief_cross": "Bas-relief en Verre basaltique (croix)", + "block.mineralogy.basaltic_glass_relief_hammer": "Bas-relief en Verre basaltique (marteau)", + "block.mineralogy.basaltic_glass_relief_hoe": "Bas-relief en Verre basaltique (houe)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Bas-relief en Verre basaltique (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Bas-relief en Verre basaltique (I)", + "block.mineralogy.basaltic_glass_relief_left": "Bas-relief en Verre basaltique (gauche)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Bas-relief en Verre basaltique (pioche)", + "block.mineralogy.basaltic_glass_relief_plus": "Bas-relief en Verre basaltique (signe plus)", + "block.mineralogy.basaltic_glass_relief_right": "Bas-relief en Verre basaltique (droite)", + "block.mineralogy.basaltic_glass_relief_sword": "Bas-relief en Verre basaltique (épée)", + "block.mineralogy.basaltic_glass_relief_vertical": "Bas-relief en Verre basaltique (vertical)", + "block.mineralogy.scoria_relief_axe": "Bas-relief en Scorie (hache)", + "block.mineralogy.scoria_relief_blank": "Bas-relief en Scorie (sans motif)", + "block.mineralogy.scoria_relief_cross": "Bas-relief en Scorie (croix)", + "block.mineralogy.scoria_relief_hammer": "Bas-relief en Scorie (marteau)", + "block.mineralogy.scoria_relief_hoe": "Bas-relief en Scorie (houe)", + "block.mineralogy.scoria_relief_horizontal": "Bas-relief en Scorie (horizontal)", + "block.mineralogy.scoria_relief_i": "Bas-relief en Scorie (I)", + "block.mineralogy.scoria_relief_left": "Bas-relief en Scorie (gauche)", + "block.mineralogy.scoria_relief_pickaxe": "Bas-relief en Scorie (pioche)", + "block.mineralogy.scoria_relief_plus": "Bas-relief en Scorie (signe plus)", + "block.mineralogy.scoria_relief_right": "Bas-relief en Scorie (droite)", + "block.mineralogy.scoria_relief_sword": "Bas-relief en Scorie (épée)", + "block.mineralogy.scoria_relief_vertical": "Bas-relief en Scorie (vertical)", + "block.mineralogy.tuff_relief_axe": "Bas-relief en Tuf (hache)", + "block.mineralogy.tuff_relief_blank": "Bas-relief en Tuf (sans motif)", + "block.mineralogy.tuff_relief_cross": "Bas-relief en Tuf (croix)", + "block.mineralogy.tuff_relief_hammer": "Bas-relief en Tuf (marteau)", + "block.mineralogy.tuff_relief_hoe": "Bas-relief en Tuf (houe)", + "block.mineralogy.tuff_relief_horizontal": "Bas-relief en Tuf (horizontal)", + "block.mineralogy.tuff_relief_i": "Bas-relief en Tuf (I)", + "block.mineralogy.tuff_relief_left": "Bas-relief en Tuf (gauche)", + "block.mineralogy.tuff_relief_pickaxe": "Bas-relief en Tuf (pioche)", + "block.mineralogy.tuff_relief_plus": "Bas-relief en Tuf (signe plus)", + "block.mineralogy.tuff_relief_right": "Bas-relief en Tuf (droite)", + "block.mineralogy.tuff_relief_sword": "Bas-relief en Tuf (épée)", + "block.mineralogy.tuff_relief_vertical": "Bas-relief en Tuf (vertical)", + "block.mineralogy.siltstone_relief_axe": "Bas-relief en Siltite (hache)", + "block.mineralogy.siltstone_relief_blank": "Bas-relief en Siltite (sans motif)", + "block.mineralogy.siltstone_relief_cross": "Bas-relief en Siltite (croix)", + "block.mineralogy.siltstone_relief_hammer": "Bas-relief en Siltite (marteau)", + "block.mineralogy.siltstone_relief_hoe": "Bas-relief en Siltite (houe)", + "block.mineralogy.siltstone_relief_horizontal": "Bas-relief en Siltite (horizontal)", + "block.mineralogy.siltstone_relief_i": "Bas-relief en Siltite (I)", + "block.mineralogy.siltstone_relief_left": "Bas-relief en Siltite (gauche)", + "block.mineralogy.siltstone_relief_pickaxe": "Bas-relief en Siltite (pioche)", + "block.mineralogy.siltstone_relief_plus": "Bas-relief en Siltite (signe plus)", + "block.mineralogy.siltstone_relief_right": "Bas-relief en Siltite (droite)", + "block.mineralogy.siltstone_relief_sword": "Bas-relief en Siltite (épée)", + "block.mineralogy.siltstone_relief_vertical": "Bas-relief en Siltite (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Bas-relief en Sel gemme (hache)", + "block.mineralogy.rock_salt_relief_blank": "Bas-relief en Sel gemme (sans motif)", + "block.mineralogy.rock_salt_relief_cross": "Bas-relief en Sel gemme (croix)", + "block.mineralogy.rock_salt_relief_hammer": "Bas-relief en Sel gemme (marteau)", + "block.mineralogy.rock_salt_relief_hoe": "Bas-relief en Sel gemme (houe)", + "block.mineralogy.rock_salt_relief_horizontal": "Bas-relief en Sel gemme (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Bas-relief en Sel gemme (I)", + "block.mineralogy.rock_salt_relief_left": "Bas-relief en Sel gemme (gauche)", + "block.mineralogy.rock_salt_relief_pickaxe": "Bas-relief en Sel gemme (pioche)", + "block.mineralogy.rock_salt_relief_plus": "Bas-relief en Sel gemme (signe plus)", + "block.mineralogy.rock_salt_relief_right": "Bas-relief en Sel gemme (droite)", + "block.mineralogy.rock_salt_relief_sword": "Bas-relief en Sel gemme (épée)", + "block.mineralogy.rock_salt_relief_vertical": "Bas-relief en Sel gemme (vertical)", + "block.mineralogy.hornfels_relief_axe": "Bas-relief en Cornéenne (hache)", + "block.mineralogy.hornfels_relief_blank": "Bas-relief en Cornéenne (sans motif)", + "block.mineralogy.hornfels_relief_cross": "Bas-relief en Cornéenne (croix)", + "block.mineralogy.hornfels_relief_hammer": "Bas-relief en Cornéenne (marteau)", + "block.mineralogy.hornfels_relief_hoe": "Bas-relief en Cornéenne (houe)", + "block.mineralogy.hornfels_relief_horizontal": "Bas-relief en Cornéenne (horizontal)", + "block.mineralogy.hornfels_relief_i": "Bas-relief en Cornéenne (I)", + "block.mineralogy.hornfels_relief_left": "Bas-relief en Cornéenne (gauche)", + "block.mineralogy.hornfels_relief_pickaxe": "Bas-relief en Cornéenne (pioche)", + "block.mineralogy.hornfels_relief_plus": "Bas-relief en Cornéenne (signe plus)", + "block.mineralogy.hornfels_relief_right": "Bas-relief en Cornéenne (droite)", + "block.mineralogy.hornfels_relief_sword": "Bas-relief en Cornéenne (épée)", + "block.mineralogy.hornfels_relief_vertical": "Bas-relief en Cornéenne (vertical)", + "block.mineralogy.quartzite_relief_axe": "Bas-relief en Quartzite (hache)", + "block.mineralogy.quartzite_relief_blank": "Bas-relief en Quartzite (sans motif)", + "block.mineralogy.quartzite_relief_cross": "Bas-relief en Quartzite (croix)", + "block.mineralogy.quartzite_relief_hammer": "Bas-relief en Quartzite (marteau)", + "block.mineralogy.quartzite_relief_hoe": "Bas-relief en Quartzite (houe)", + "block.mineralogy.quartzite_relief_horizontal": "Bas-relief en Quartzite (horizontal)", + "block.mineralogy.quartzite_relief_i": "Bas-relief en Quartzite (I)", + "block.mineralogy.quartzite_relief_left": "Bas-relief en Quartzite (gauche)", + "block.mineralogy.quartzite_relief_pickaxe": "Bas-relief en Quartzite (pioche)", + "block.mineralogy.quartzite_relief_plus": "Bas-relief en Quartzite (signe plus)", + "block.mineralogy.quartzite_relief_right": "Bas-relief en Quartzite (droite)", + "block.mineralogy.quartzite_relief_sword": "Bas-relief en Quartzite (épée)", + "block.mineralogy.quartzite_relief_vertical": "Bas-relief en Quartzite (vertical)", + "block.mineralogy.novaculite_relief_axe": "Bas-relief en Novaculite (hache)", + "block.mineralogy.novaculite_relief_blank": "Bas-relief en Novaculite (sans motif)", + "block.mineralogy.novaculite_relief_cross": "Bas-relief en Novaculite (croix)", + "block.mineralogy.novaculite_relief_hammer": "Bas-relief en Novaculite (marteau)", + "block.mineralogy.novaculite_relief_hoe": "Bas-relief en Novaculite (houe)", + "block.mineralogy.novaculite_relief_horizontal": "Bas-relief en Novaculite (horizontal)", + "block.mineralogy.novaculite_relief_i": "Bas-relief en Novaculite (I)", + "block.mineralogy.novaculite_relief_left": "Bas-relief en Novaculite (gauche)", + "block.mineralogy.novaculite_relief_pickaxe": "Bas-relief en Novaculite (pioche)", + "block.mineralogy.novaculite_relief_plus": "Bas-relief en Novaculite (signe plus)", + "block.mineralogy.novaculite_relief_right": "Bas-relief en Novaculite (droite)", + "block.mineralogy.novaculite_relief_sword": "Bas-relief en Novaculite (épée)", + "block.mineralogy.novaculite_relief_vertical": "Bas-relief en Novaculite (vertical)", "itemGroup.mineralogy.mineralogy": "Minéralogie", - "itemGroup.mineralogy.rock": "Roches minéralogiques", + "itemGroup.mineralogy.rock": "Roches de Minéralogie", "itemGroup.mineralogy.stair": "Escaliers de Minéralogie", - "itemGroup.mineralogy.slab": "Dalles de minéralogie", - "itemGroup.mineralogy.wall": "Murs de Minéralogie", - "itemGroup.mineralogy.item": "Objets de minéralogie" + "itemGroup.mineralogy.slab": "Dalles de Minéralogie", + "itemGroup.mineralogy.wall": "Murets de Minéralogie", + "itemGroup.mineralogy.item": "Objets de Minéralogie", + "block.mineralogy.crude_oil": "Pétrole brut", + "item.mineralogy.crude_oil_bucket": "Seau de pétrole brut", + "fluid.mineralogy.crude_oil": "Pétrole brut", + "advancements.mineralogy.all_the_rocks.title": "Toutes les roches", + "advancements.mineralogy.all_the_rocks.description": "Vous avez trouvé tous les types de roches standard de Mineralogy !" } diff --git a/src/main/resources/assets/mineralogy/lang/fr_fr.json b/src/main/resources/assets/mineralogy/lang/fr_fr.json index e58696710..adfa816a0 100644 --- a/src/main/resources/assets/mineralogy/lang/fr_fr.json +++ b/src/main/resources/assets/mineralogy/lang/fr_fr.json @@ -1,196 +1,196 @@ { "block.mineralogy.andesite": "Andésite", - "block.mineralogy.andesite_stairs": "Escaliers Andésites", - "block.mineralogy.andesite_slab": "Dalle d'Andésite", - "block.mineralogy.andesite_brick": "Brique d'Andésite", - "block.mineralogy.andesite_brick_stairs": "Escaliers en brique d'Andesite", - "block.mineralogy.andesite_brick_slab": "Dalle de brique d'Andesite", - "block.mineralogy.andesite_smooth": "Andésite polie", - "block.mineralogy.andesite_smooth_stairs": "Escaliers polis d'Andésite", - "block.mineralogy.andesite_smooth_slab": "Dalle polie d'Andésite", - "block.mineralogy.andesite_smooth_brick": "Brique polie d'Andésite", - "block.mineralogy.andesite_smooth_brick_stairs": "Escaliers en brique polis par Andesite", - "block.mineralogy.andesite_smooth_brick_slab": "Dalle de brique polie d'Andésite", + "block.mineralogy.andesite_stairs": "Escalier en Andésite", + "block.mineralogy.andesite_slab": "Dalle en Andésite", + "block.mineralogy.andesite_brick": "Briques en Andésite", + "block.mineralogy.andesite_brick_stairs": "Escalier en briques de Andésite", + "block.mineralogy.andesite_brick_slab": "Dalle en briques de Andésite", + "block.mineralogy.andesite_smooth": "Bloc poli en Andésite", + "block.mineralogy.andesite_smooth_stairs": "Escalier poli en Andésite", + "block.mineralogy.andesite_smooth_slab": "Dalle polie en Andésite", + "block.mineralogy.andesite_smooth_brick": "Briques polies en Andésite", + "block.mineralogy.andesite_smooth_brick_stairs": "Escalier en briques polies de Andésite", + "block.mineralogy.andesite_smooth_brick_slab": "Dalle en briques polies de Andésite", "block.mineralogy.basalt": "Basalte", - "block.mineralogy.basalt_stairs": "Escaliers basaltiques", - "block.mineralogy.basalt_slab": "Dalle de basalte", - "block.mineralogy.basalt_brick": "Brique de basalte", - "block.mineralogy.basalt_brick_stairs": "Escaliers de brique de basalte", - "block.mineralogy.basalt_brick_slab": "Dalle de brique de basalte", - "block.mineralogy.basalt_smooth": "Basalte poli", - "block.mineralogy.basalt_smooth_stairs": "Escaliers polis au basalte", - "block.mineralogy.basalt_smooth_slab": "Dalle polie au basalte", - "block.mineralogy.basalt_smooth_brick": "Brique polie au basalte", - "block.mineralogy.basalt_smooth_brick_stairs": "Escaliers en brique polis au basalte", - "block.mineralogy.basalt_smooth_brick_slab": "Dalle de brique polie au basalte", + "block.mineralogy.basalt_stairs": "Escalier en Basalte", + "block.mineralogy.basalt_slab": "Dalle en Basalte", + "block.mineralogy.basalt_brick": "Briques en Basalte", + "block.mineralogy.basalt_brick_stairs": "Escalier en briques de Basalte", + "block.mineralogy.basalt_brick_slab": "Dalle en briques de Basalte", + "block.mineralogy.basalt_smooth": "Bloc poli en Basalte", + "block.mineralogy.basalt_smooth_stairs": "Escalier poli en Basalte", + "block.mineralogy.basalt_smooth_slab": "Dalle polie en Basalte", + "block.mineralogy.basalt_smooth_brick": "Briques polies en Basalte", + "block.mineralogy.basalt_smooth_brick_stairs": "Escalier en briques polies de Basalte", + "block.mineralogy.basalt_smooth_brick_slab": "Dalle en briques polies de Basalte", "block.mineralogy.diorite": "Diorite", - "block.mineralogy.diorite_stairs": "Escaliers Diorite", - "block.mineralogy.diorite_slab": "Dalle de Diorite", - "block.mineralogy.diorite_brick": "Brique Diorite", - "block.mineralogy.diorite_brick_stairs": "Escaliers en brique Diorite", - "block.mineralogy.diorite_brick_slab": "Dalle de brique Diorite", - "block.mineralogy.diorite_smooth": "Diorite polie", - "block.mineralogy.diorite_smooth_stairs": "Escaliers polis au Diorite", - "block.mineralogy.diorite_smooth_slab": "Dalle polie Diorite", - "block.mineralogy.diorite_smooth_brick": "Brique polie Diorite", - "block.mineralogy.diorite_smooth_brick_stairs": "Escaliers en briques polies Diorite", - "block.mineralogy.diorite_smooth_brick_slab": "Dalle de brique polie Diorite", - "block.mineralogy.granite": "Granit", - "block.mineralogy.granite_stairs": "Escaliers en granit", - "block.mineralogy.granite_slab": "Dalle de granit", - "block.mineralogy.granite_brick": "Brique de granit", - "block.mineralogy.granite_brick_stairs": "Escaliers en brique de granit", - "block.mineralogy.granite_brick_slab": "Dalle de brique de granit", - "block.mineralogy.granite_smooth": "Granit poli", - "block.mineralogy.granite_smooth_stairs": "Escaliers polis de granit", - "block.mineralogy.granite_smooth_slab": "Dalle polie de granit", - "block.mineralogy.granite_smooth_brick": "Brique polie de granit", - "block.mineralogy.granite_smooth_brick_stairs": "Escaliers en brique polis de granit", - "block.mineralogy.granite_smooth_brick_slab": "Dalle de brique polie de granit", + "block.mineralogy.diorite_stairs": "Escalier en Diorite", + "block.mineralogy.diorite_slab": "Dalle en Diorite", + "block.mineralogy.diorite_brick": "Briques en Diorite", + "block.mineralogy.diorite_brick_stairs": "Escalier en briques de Diorite", + "block.mineralogy.diorite_brick_slab": "Dalle en briques de Diorite", + "block.mineralogy.diorite_smooth": "Bloc poli en Diorite", + "block.mineralogy.diorite_smooth_stairs": "Escalier poli en Diorite", + "block.mineralogy.diorite_smooth_slab": "Dalle polie en Diorite", + "block.mineralogy.diorite_smooth_brick": "Briques polies en Diorite", + "block.mineralogy.diorite_smooth_brick_stairs": "Escalier en briques polies de Diorite", + "block.mineralogy.diorite_smooth_brick_slab": "Dalle en briques polies de Diorite", + "block.mineralogy.granite": "Granite", + "block.mineralogy.granite_stairs": "Escalier en Granite", + "block.mineralogy.granite_slab": "Dalle en Granite", + "block.mineralogy.granite_brick": "Briques en Granite", + "block.mineralogy.granite_brick_stairs": "Escalier en briques de Granite", + "block.mineralogy.granite_brick_slab": "Dalle en briques de Granite", + "block.mineralogy.granite_smooth": "Bloc poli en Granite", + "block.mineralogy.granite_smooth_stairs": "Escalier poli en Granite", + "block.mineralogy.granite_smooth_slab": "Dalle polie en Granite", + "block.mineralogy.granite_smooth_brick": "Briques polies en Granite", + "block.mineralogy.granite_smooth_brick_stairs": "Escalier en briques polies de Granite", + "block.mineralogy.granite_smooth_brick_slab": "Dalle en briques polies de Granite", "block.mineralogy.rhyolite": "Rhyolite", - "block.mineralogy.rhyolite_stairs": "Escaliers en rhyolite", - "block.mineralogy.rhyolite_slab": "Dalle de rhyolite", - "block.mineralogy.rhyolite_brick": "Brique de rhyolite", - "block.mineralogy.rhyolite_brick_stairs": "Escaliers en brique de rhyolite", - "block.mineralogy.rhyolite_brick_slab": "Dalle de brique de rhyolite", - "block.mineralogy.rhyolite_smooth": "Rhyolite polie", - "block.mineralogy.rhyolite_smooth_stairs": "Escaliers polis à la rhyolite", - "block.mineralogy.rhyolite_smooth_slab": "Dalle polie à la rhyolite", - "block.mineralogy.rhyolite_smooth_brick": "Brique polie de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Escaliers en briques polies à la rhyolite", - "block.mineralogy.rhyolite_smooth_brick_slab": "Dalle de brique polie rhyolite", + "block.mineralogy.rhyolite_stairs": "Escalier en Rhyolite", + "block.mineralogy.rhyolite_slab": "Dalle en Rhyolite", + "block.mineralogy.rhyolite_brick": "Briques en Rhyolite", + "block.mineralogy.rhyolite_brick_stairs": "Escalier en briques de Rhyolite", + "block.mineralogy.rhyolite_brick_slab": "Dalle en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth": "Bloc poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_stairs": "Escalier poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_slab": "Dalle polie en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick": "Briques polies en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escalier en briques polies de Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_slab": "Dalle en briques polies de Rhyolite", "block.mineralogy.pegmatite": "Pegmatite", - "block.mineralogy.pegmatite_stairs": "Escaliers en Pegmatite", - "block.mineralogy.pegmatite_slab": "Dalle de Pegmatite", - "block.mineralogy.pegmatite_brick": "Brique de Pegmatite", - "block.mineralogy.pegmatite_brick_stairs": "Escaliers en brique de Pegmatite", - "block.mineralogy.pegmatite_brick_slab": "Dalle de brique de Pegmatite", - "block.mineralogy.pegmatite_smooth": "Pegmatite polie", - "block.mineralogy.pegmatite_smooth_stairs": "Escaliers polis à la Pegmatite", - "block.mineralogy.pegmatite_smooth_slab": "Dalle polie de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick": "Brique polie de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Escaliers en briques polies à la Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_slab": "Dalle de brique polie par Pegmatite", + "block.mineralogy.pegmatite_stairs": "Escalier en Pegmatite", + "block.mineralogy.pegmatite_slab": "Dalle en Pegmatite", + "block.mineralogy.pegmatite_brick": "Briques en Pegmatite", + "block.mineralogy.pegmatite_brick_stairs": "Escalier en briques de Pegmatite", + "block.mineralogy.pegmatite_brick_slab": "Dalle en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth": "Bloc poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_stairs": "Escalier poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_slab": "Dalle polie en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick": "Briques polies en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escalier en briques polies de Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_slab": "Dalle en briques polies de Pegmatite", "block.mineralogy.shale": "Schiste argileux", - "block.mineralogy.shale_stairs": "Escaliers de schiste", - "block.mineralogy.shale_slab": "Dalle de schiste", - "block.mineralogy.shale_brick": "Brique de schiste", - "block.mineralogy.shale_brick_stairs": "Escaliers de briques de schiste", - "block.mineralogy.shale_brick_slab": "Dalle de brique de schiste", - "block.mineralogy.shale_smooth": "Schiste poli", - "block.mineralogy.shale_smooth_stairs": "Escaliers polis au schiste", - "block.mineralogy.shale_smooth_slab": "Dalle polie au schiste", - "block.mineralogy.shale_smooth_brick": "Brique polie schiste", - "block.mineralogy.shale_smooth_brick_stairs": "Escaliers de brique polis au schiste", - "block.mineralogy.shale_smooth_brick_slab": "Dalle de brique polie au schiste", + "block.mineralogy.shale_stairs": "Escalier en Schiste argileux", + "block.mineralogy.shale_slab": "Dalle en Schiste argileux", + "block.mineralogy.shale_brick": "Briques en Schiste argileux", + "block.mineralogy.shale_brick_stairs": "Escalier en briques de Schiste argileux", + "block.mineralogy.shale_brick_slab": "Dalle en briques de Schiste argileux", + "block.mineralogy.shale_smooth": "Bloc poli en Schiste argileux", + "block.mineralogy.shale_smooth_stairs": "Escalier poli en Schiste argileux", + "block.mineralogy.shale_smooth_slab": "Dalle polie en Schiste argileux", + "block.mineralogy.shale_smooth_brick": "Briques polies en Schiste argileux", + "block.mineralogy.shale_smooth_brick_stairs": "Escalier en briques polies de Schiste argileux", + "block.mineralogy.shale_smooth_brick_slab": "Dalle en briques polies de Schiste argileux", "block.mineralogy.conglomerate": "Conglomérat", - "block.mineralogy.conglomerate_stairs": "Escaliers du Conglomérat", - "block.mineralogy.conglomerate_slab": "Dalle de conglomérat", - "block.mineralogy.conglomerate_brick": "Brique Conglomérat", - "block.mineralogy.conglomerate_brick_stairs": "Escaliers en brique de Conglomérat", - "block.mineralogy.conglomerate_brick_slab": "Dalle de brique de conglomérat", - "block.mineralogy.conglomerate_smooth": "Conglomérat poli", - "block.mineralogy.conglomerate_smooth_stairs": "Escaliers polis au conglomérat", - "block.mineralogy.conglomerate_smooth_slab": "Conglomerate dalle polie", - "block.mineralogy.conglomerate_smooth_brick": "Conglomerate brique polie", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Conglomerate poli escalier en brique", - "block.mineralogy.conglomerate_smooth_brick_slab": "Plaque de brique polie Conglomerate", + "block.mineralogy.conglomerate_stairs": "Escalier en Conglomérat", + "block.mineralogy.conglomerate_slab": "Dalle en Conglomérat", + "block.mineralogy.conglomerate_brick": "Briques en Conglomérat", + "block.mineralogy.conglomerate_brick_stairs": "Escalier en briques de Conglomérat", + "block.mineralogy.conglomerate_brick_slab": "Dalle en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth": "Bloc poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_stairs": "Escalier poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_slab": "Dalle polie en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick": "Briques polies en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escalier en briques polies de Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_slab": "Dalle en briques polies de Conglomérat", "block.mineralogy.dolomite": "Dolomie", - "block.mineralogy.dolomite_stairs": "Escaliers en dolomite", - "block.mineralogy.dolomite_slab": "Dalle de dolomite", - "block.mineralogy.dolomite_brick": "Brique de dolomite", - "block.mineralogy.dolomite_brick_stairs": "Escaliers de brique en dolomite", - "block.mineralogy.dolomite_brick_slab": "Dalle de brique en dolomite", - "block.mineralogy.dolomite_smooth": "Dolomite polie", - "block.mineralogy.dolomite_smooth_stairs": "Escaliers polis en dolomite", - "block.mineralogy.dolomite_smooth_slab": "Dalle polie en dolomite", - "block.mineralogy.dolomite_smooth_brick": "Brique polie de Dolomite", - "block.mineralogy.dolomite_smooth_brick_stairs": "Escaliers en briques polies dolomitiques", - "block.mineralogy.dolomite_smooth_brick_slab": "Dalle de brique polie en dolomite", + "block.mineralogy.dolomite_stairs": "Escalier en Dolomie", + "block.mineralogy.dolomite_slab": "Dalle en Dolomie", + "block.mineralogy.dolomite_brick": "Briques en Dolomie", + "block.mineralogy.dolomite_brick_stairs": "Escalier en briques de Dolomie", + "block.mineralogy.dolomite_brick_slab": "Dalle en briques de Dolomie", + "block.mineralogy.dolomite_smooth": "Bloc poli en Dolomie", + "block.mineralogy.dolomite_smooth_stairs": "Escalier poli en Dolomie", + "block.mineralogy.dolomite_smooth_slab": "Dalle polie en Dolomie", + "block.mineralogy.dolomite_smooth_brick": "Briques polies en Dolomie", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escalier en briques polies de Dolomie", + "block.mineralogy.dolomite_smooth_brick_slab": "Dalle en briques polies de Dolomie", "block.mineralogy.limestone": "Calcaire", - "block.mineralogy.limestone_stairs": "Escaliers en calcaire", - "block.mineralogy.limestone_slab": "Dalle de calcaire", - "block.mineralogy.limestone_brick": "Brique de calcaire", - "block.mineralogy.limestone_brick_stairs": "Escaliers en brique calcaire", - "block.mineralogy.limestone_brick_slab": "Dalle de brique en calcaire", - "block.mineralogy.limestone_smooth": "Calcaire poli", - "block.mineralogy.limestone_smooth_stairs": "Escaliers polis au calcaire", - "block.mineralogy.limestone_smooth_slab": "Dalle polie en calcaire", - "block.mineralogy.limestone_smooth_brick": "Brique polie au calcaire", - "block.mineralogy.limestone_smooth_brick_stairs": "Escaliers en briques polis à la chaux", - "block.mineralogy.limestone_smooth_brick_slab": "Dalle de brique polie au calcaire", + "block.mineralogy.limestone_stairs": "Escalier en Calcaire", + "block.mineralogy.limestone_slab": "Dalle en Calcaire", + "block.mineralogy.limestone_brick": "Briques en Calcaire", + "block.mineralogy.limestone_brick_stairs": "Escalier en briques de Calcaire", + "block.mineralogy.limestone_brick_slab": "Dalle en briques de Calcaire", + "block.mineralogy.limestone_smooth": "Bloc poli en Calcaire", + "block.mineralogy.limestone_smooth_stairs": "Escalier poli en Calcaire", + "block.mineralogy.limestone_smooth_slab": "Dalle polie en Calcaire", + "block.mineralogy.limestone_smooth_brick": "Briques polies en Calcaire", + "block.mineralogy.limestone_smooth_brick_stairs": "Escalier en briques polies de Calcaire", + "block.mineralogy.limestone_smooth_brick_slab": "Dalle en briques polies de Calcaire", "block.mineralogy.slate": "Ardoise", - "block.mineralogy.slate_stairs": "Escaliers en ardoise", - "block.mineralogy.slate_slab": "Dalle d'ardoise", - "block.mineralogy.slate_brick": "Brique d'ardoise", - "block.mineralogy.slate_brick_stairs": "Escaliers en briques d'ardoise", - "block.mineralogy.slate_brick_slab": "Dalle de briques d'ardoise", - "block.mineralogy.slate_smooth": "Ardoise polie", - "block.mineralogy.slate_smooth_stairs": "Escaliers polis en ardoise", - "block.mineralogy.slate_smooth_slab": "Dalle polie en ardoise", - "block.mineralogy.slate_smooth_brick": "Brique polie d'ardoise", - "block.mineralogy.slate_smooth_brick_stairs": "Escaliers en brique polie en ardoise", - "block.mineralogy.slate_smooth_brick_slab": "Dalle de brique polie ardoise", - "block.mineralogy.schist": "Schiste", - "block.mineralogy.schist_stairs": "Escaliers de schiste", - "block.mineralogy.schist_slab": "Dalle de schiste", - "block.mineralogy.schist_brick": "Brique de schiste", - "block.mineralogy.schist_brick_stairs": "Escaliers en brique de schiste", - "block.mineralogy.schist_brick_slab": "Dalle de brique de schiste", - "block.mineralogy.schist_smooth": "Schiste poli", - "block.mineralogy.schist_smooth_stairs": "Escaliers polis Schiste", - "block.mineralogy.schist_smooth_slab": "Dalle polie par schiste", - "block.mineralogy.schist_smooth_brick": "Brique polie par schiste", - "block.mineralogy.schist_smooth_brick_stairs": "Escaliers de brique polis par schiste", - "block.mineralogy.schist_smooth_brick_slab": "Dalle de brique polie par schiste", + "block.mineralogy.slate_stairs": "Escalier en Ardoise", + "block.mineralogy.slate_slab": "Dalle en Ardoise", + "block.mineralogy.slate_brick": "Briques en Ardoise", + "block.mineralogy.slate_brick_stairs": "Escalier en briques de Ardoise", + "block.mineralogy.slate_brick_slab": "Dalle en briques de Ardoise", + "block.mineralogy.slate_smooth": "Bloc poli en Ardoise", + "block.mineralogy.slate_smooth_stairs": "Escalier poli en Ardoise", + "block.mineralogy.slate_smooth_slab": "Dalle polie en Ardoise", + "block.mineralogy.slate_smooth_brick": "Briques polies en Ardoise", + "block.mineralogy.slate_smooth_brick_stairs": "Escalier en briques polies de Ardoise", + "block.mineralogy.slate_smooth_brick_slab": "Dalle en briques polies de Ardoise", + "block.mineralogy.schist": "Micaschiste", + "block.mineralogy.schist_stairs": "Escalier en Micaschiste", + "block.mineralogy.schist_slab": "Dalle en Micaschiste", + "block.mineralogy.schist_brick": "Briques en Micaschiste", + "block.mineralogy.schist_brick_stairs": "Escalier en briques de Micaschiste", + "block.mineralogy.schist_brick_slab": "Dalle en briques de Micaschiste", + "block.mineralogy.schist_smooth": "Bloc poli en Micaschiste", + "block.mineralogy.schist_smooth_stairs": "Escalier poli en Micaschiste", + "block.mineralogy.schist_smooth_slab": "Dalle polie en Micaschiste", + "block.mineralogy.schist_smooth_brick": "Briques polies en Micaschiste", + "block.mineralogy.schist_smooth_brick_stairs": "Escalier en briques polies de Micaschiste", + "block.mineralogy.schist_smooth_brick_slab": "Dalle en briques polies de Micaschiste", "block.mineralogy.gneiss": "Gneiss", - "block.mineralogy.gneiss_stairs": "Escaliers de gneiss", - "block.mineralogy.gneiss_slab": "Dalle de gneiss", - "block.mineralogy.gneiss_brick": "Brique de gneiss", - "block.mineralogy.gneiss_brick_stairs": "Escaliers en brique de gneiss", - "block.mineralogy.gneiss_brick_slab": "Dalle de brique de gneiss", - "block.mineralogy.gneiss_smooth": "Gneiss poli", - "block.mineralogy.gneiss_smooth_stairs": "Escaliers polis Gneiss", - "block.mineralogy.gneiss_smooth_slab": "Dalle polie au gneiss", - "block.mineralogy.gneiss_smooth_brick": "Brique polie gneiss", - "block.mineralogy.gneiss_smooth_brick_stairs": "Escaliers en brique polis gneiss", - "block.mineralogy.gneiss_smooth_brick_slab": "Dalle de brique polie par gneiss", + "block.mineralogy.gneiss_stairs": "Escalier en Gneiss", + "block.mineralogy.gneiss_slab": "Dalle en Gneiss", + "block.mineralogy.gneiss_brick": "Briques en Gneiss", + "block.mineralogy.gneiss_brick_stairs": "Escalier en briques de Gneiss", + "block.mineralogy.gneiss_brick_slab": "Dalle en briques de Gneiss", + "block.mineralogy.gneiss_smooth": "Bloc poli en Gneiss", + "block.mineralogy.gneiss_smooth_stairs": "Escalier poli en Gneiss", + "block.mineralogy.gneiss_smooth_slab": "Dalle polie en Gneiss", + "block.mineralogy.gneiss_smooth_brick": "Briques polies en Gneiss", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escalier en briques polies de Gneiss", + "block.mineralogy.gneiss_smooth_brick_slab": "Dalle en briques polies de Gneiss", "block.mineralogy.marble": "Marbre", - "block.mineralogy.marble_stairs": "Escaliers en marbre", - "block.mineralogy.marble_slab": "Dalle de marbre", - "block.mineralogy.marble_brick": "Brique de marbre", - "block.mineralogy.marble_brick_stairs": "Escaliers en brique de marbre", - "block.mineralogy.marble_brick_slab": "Dalle de brique en marbre", - "block.mineralogy.marble_smooth": "Marbre poli", - "block.mineralogy.marble_smooth_stairs": "Escaliers polis en marbre", - "block.mineralogy.marble_smooth_slab": "Dalle polie en marbre", - "block.mineralogy.marble_smooth_brick": "Brique polie en marbre", - "block.mineralogy.marble_smooth_brick_stairs": "Escaliers en brique polis en marbre", - "block.mineralogy.marble_smooth_brick_slab": "Dalle de brique polie en marbre", - "block.mineralogy.phyllite": "Phyllite", - "block.mineralogy.phyllite_stairs": "Escaliers en phyllite", - "block.mineralogy.phyllite_slab": "Dalle de Phyllite", - "block.mineralogy.phyllite_brick": "Brique de phyllite", - "block.mineralogy.phyllite_brick_stairs": "Escaliers en brique de phyllite", - "block.mineralogy.phyllite_brick_slab": "Dalle de brique de phyllite", - "block.mineralogy.phyllite_smooth": "Phyllite polie", - "block.mineralogy.phyllite_smooth_stairs": "Escaliers polis en phyllite", - "block.mineralogy.phyllite_smooth_slab": "Dalle polie en phyllite", - "block.mineralogy.phyllite_smooth_brick": "Brique polie de phyllite", - "block.mineralogy.phyllite_smooth_brick_stairs": "Escaliers en briques polies en phyllite", - "block.mineralogy.phyllite_smooth_brick_slab": "Dalle de brique poli en phyllite", + "block.mineralogy.marble_stairs": "Escalier en Marbre", + "block.mineralogy.marble_slab": "Dalle en Marbre", + "block.mineralogy.marble_brick": "Briques en Marbre", + "block.mineralogy.marble_brick_stairs": "Escalier en briques de Marbre", + "block.mineralogy.marble_brick_slab": "Dalle en briques de Marbre", + "block.mineralogy.marble_smooth": "Bloc poli en Marbre", + "block.mineralogy.marble_smooth_stairs": "Escalier poli en Marbre", + "block.mineralogy.marble_smooth_slab": "Dalle polie en Marbre", + "block.mineralogy.marble_smooth_brick": "Briques polies en Marbre", + "block.mineralogy.marble_smooth_brick_stairs": "Escalier en briques polies de Marbre", + "block.mineralogy.marble_smooth_brick_slab": "Dalle en briques polies de Marbre", + "block.mineralogy.phyllite": "Phyllade", + "block.mineralogy.phyllite_stairs": "Escalier en Phyllade", + "block.mineralogy.phyllite_slab": "Dalle en Phyllade", + "block.mineralogy.phyllite_brick": "Briques en Phyllade", + "block.mineralogy.phyllite_brick_stairs": "Escalier en briques de Phyllade", + "block.mineralogy.phyllite_brick_slab": "Dalle en briques de Phyllade", + "block.mineralogy.phyllite_smooth": "Bloc poli en Phyllade", + "block.mineralogy.phyllite_smooth_stairs": "Escalier poli en Phyllade", + "block.mineralogy.phyllite_smooth_slab": "Dalle polie en Phyllade", + "block.mineralogy.phyllite_smooth_brick": "Briques polies en Phyllade", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escalier en briques polies de Phyllade", + "block.mineralogy.phyllite_smooth_brick_slab": "Dalle en briques polies de Phyllade", "block.mineralogy.amphibolite": "Amphibolite", - "block.mineralogy.amphibolite_stairs": "Escaliers amphibolites", - "block.mineralogy.amphibolite_slab": "Plaque d'amphibolite", - "block.mineralogy.amphibolite_brick": "Brique d'amphibolite", - "block.mineralogy.amphibolite_brick_stairs": "Escaliers en brique amphibolite", - "block.mineralogy.amphibolite_brick_slab": "Plaque de brique d'amphibolite", - "block.mineralogy.amphibolite_smooth": "Amphibolite polie", - "block.mineralogy.amphibolite_smooth_stairs": "Escaliers polis à l'amphibolite", - "block.mineralogy.amphibolite_smooth_slab": "Dalle polie d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick": "Brique polie d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Escaliers en brique polis à l'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_slab": "Plaque de brique polie à l'amphibolite", + "block.mineralogy.amphibolite_stairs": "Escalier en Amphibolite", + "block.mineralogy.amphibolite_slab": "Dalle en Amphibolite", + "block.mineralogy.amphibolite_brick": "Briques en Amphibolite", + "block.mineralogy.amphibolite_brick_stairs": "Escalier en briques de Amphibolite", + "block.mineralogy.amphibolite_brick_slab": "Dalle en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth": "Bloc poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_stairs": "Escalier poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_slab": "Dalle polie en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick": "Briques polies en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escalier en briques polies de Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_slab": "Dalle en briques polies de Amphibolite", "item.mineralogy.gypsum_dust": "Poudre de gypse", "item.mineralogy.sulfur_dust": "Poudre de soufre", "item.mineralogy.phosphorous_dust": "Poudre de phosphore", @@ -201,740 +201,740 @@ "block.mineralogy.pumice": "Pierre ponce", "block.mineralogy.sulfur_block": "Soufre", "block.mineralogy.sulfur_ore": "Minerai de soufre", - "block.mineralogy.phosphorous_block": "Phosphoreux", + "block.mineralogy.phosphorous_block": "Phosphore", "block.mineralogy.phosphorous_ore": "Minerai de phosphore", "block.mineralogy.nitrate_block": "Nitrate", "block.mineralogy.nitrate_ore": "Minerai de nitrate", - "block.mineralogy.drywall_black": "Cloison sèche noire", - "block.mineralogy.drywall_red": "Cloison sèche rouge", - "block.mineralogy.drywall_green": "Cloison sèche verte", - "block.mineralogy.drywall_brown": "Cloison sèche brune", - "block.mineralogy.drywall_blue": "Cloison sèche bleue", - "block.mineralogy.drywall_purple": "Cloison sèche pourpre", - "block.mineralogy.drywall_cyan": "Cloison sèche cyan", - "block.mineralogy.drywall_silver": "Cloison sèche plafond gris", - "block.mineralogy.drywall_gray": "Cloison sèche grise", - "block.mineralogy.drywall_pink": "Cloison sèche rose", - "block.mineralogy.drywall_lime": "Cloison sèche vert-lime", - "block.mineralogy.drywall_yellow": "Cloison sèche jaune", - "block.mineralogy.drywall_light_blue": "Cloison sèche bleu clair", - "block.mineralogy.drywall_magenta": "Cloison sèche magenta", - "block.mineralogy.drywall_orange": "Cloison sèche orange", - "block.mineralogy.drywall_white": "Cloison sèche blanche", - "block.mineralogy.andesite_wall": "Mur d'Andésite", - "block.mineralogy.andesite_brick_wall": "Mur de briques d'Andésite", - "block.mineralogy.andesite_smooth_wall": "Mur poli d'Andésite", - "block.mineralogy.andesite_smooth_brick_wall": "Mur de briques polies par Andesite", - "block.mineralogy.basalt_wall": "Mur de basalte", - "block.mineralogy.basalt_brick_wall": "Mur de brique de basalte", - "block.mineralogy.basalt_smooth_wall": "Mur poli au basalte", - "block.mineralogy.basalt_smooth_brick_wall": "Mur de briques polies au basalte", - "block.mineralogy.diorite_wall": "Mur de Diorite", - "block.mineralogy.diorite_brick_wall": "Mur de briques Diorite", - "block.mineralogy.diorite_smooth_wall": "Mur Poli Diorite", - "block.mineralogy.diorite_smooth_brick_wall": "Mur de briques poli Diorite", - "block.mineralogy.granite_wall": "Mur de granit", - "block.mineralogy.granite_brick_wall": "Mur de briques de granit", - "block.mineralogy.granite_smooth_wall": "Mur poli de granit", - "block.mineralogy.granite_smooth_brick_wall": "Mur de briques poli de granit", - "block.mineralogy.rhyolite_wall": "Mur de rhyolite", - "block.mineralogy.rhyolite_brick_wall": "Mur de brique de rhyolite", - "block.mineralogy.rhyolite_smooth_wall": "Mur poli de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_wall": "Mur de briques polies à la rhyolite", - "block.mineralogy.pegmatite_wall": "Mur de Pegmatite", - "block.mineralogy.pegmatite_brick_wall": "Mur de briques de Pegmatite", - "block.mineralogy.pegmatite_smooth_wall": "Mur poli de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_wall": "Mur de briques poli à la Pegmatite", - "block.mineralogy.shale_wall": "Mur de schiste", - "block.mineralogy.shale_brick_wall": "Mur de briques de schiste", - "block.mineralogy.shale_smooth_wall": "Mur poli de schiste", - "block.mineralogy.shale_smooth_brick_wall": "Mur de briques polies au schiste", - "block.mineralogy.conglomerate_wall": "Conglomérat mur", - "block.mineralogy.conglomerate_brick_wall": "Mur de briques Conglomérat", - "block.mineralogy.conglomerate_smooth_wall": "Conglomerate mur poli", - "block.mineralogy.conglomerate_smooth_brick_wall": "Conglomerate mur de briques polies", - "block.mineralogy.dolomite_wall": "Mur de dolomite", - "block.mineralogy.dolomite_brick_wall": "Mur de briques de dolomite", - "block.mineralogy.dolomite_smooth_wall": "Mur poli de Dolomite", - "block.mineralogy.dolomite_smooth_brick_wall": "Mur de briques poli à la dolomite", - "block.mineralogy.limestone_wall": "Mur de calcaire", - "block.mineralogy.limestone_brick_wall": "Mur de briques en calcaire", - "block.mineralogy.limestone_smooth_wall": "Mur poli au calcaire", - "block.mineralogy.limestone_smooth_brick_wall": "Mur de briques poli au calcaire", - "block.mineralogy.marble_wall": "Mur de marbre", - "block.mineralogy.marble_brick_wall": "Mur de briques en marbre", - "block.mineralogy.marble_smooth_wall": "Mur poli en marbre", - "block.mineralogy.marble_smooth_brick_wall": "Mur de briques polies en marbre", - "block.mineralogy.slate_wall": "Mur d'ardoise", - "block.mineralogy.slate_brick_wall": "Mur de briques d'ardoise", - "block.mineralogy.slate_smooth_wall": "Mur d'ardoise poli", - "block.mineralogy.slate_smooth_brick_wall": "Ardoise polie mur de briques", - "block.mineralogy.schist_wall": "Mur de schiste", - "block.mineralogy.schist_brick_wall": "Mur de briques de schiste", - "block.mineralogy.schist_smooth_wall": "Schiste poli mur", - "block.mineralogy.schist_smooth_brick_wall": "Mur de briques schist poli", - "block.mineralogy.gneiss_wall": "Mur de gneiss", - "block.mineralogy.gneiss_brick_wall": "Mur de briques en gneiss", - "block.mineralogy.gneiss_smooth_wall": "Gneiss poli mur", - "block.mineralogy.gneiss_smooth_brick_wall": "Gneiss poli mur de briques", - "block.mineralogy.phyllite_wall": "Mur de phyllite", - "block.mineralogy.phyllite_brick_wall": "Mur de briques de phyllite", - "block.mineralogy.phyllite_smooth_wall": "Mur poli de phyllite", - "block.mineralogy.phyllite_smooth_brick_wall": "Mur de briques poli en phyllite", - "block.mineralogy.amphibolite_wall": "Mur d'amphibolite", - "block.mineralogy.amphibolite_brick_wall": "Mur de briques d'amphibolite", - "block.mineralogy.amphibolite_smooth_wall": "Mur poli d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_wall": "Mur de briques poli à l'amphibolite", - "block.mineralogy.andesite_furnace": "Four à andésite", - "block.mineralogy.andesite_brick_furnace": "Four à briques d'andésite", - "block.mineralogy.andesite_smooth_furnace": "Four poli à andésite", - "block.mineralogy.andesite_smooth_brick_furnace": "Four à briques polies andésite", - "block.mineralogy.basalt_furnace": "Four à basalte", - "block.mineralogy.basalt_brick_furnace": "Four à briques de basalte", - "block.mineralogy.basalt_smooth_furnace": "Four à basalte poli", - "block.mineralogy.basalt_smooth_brick_furnace": "Four à briques polies en basalte", - "block.mineralogy.diorite_furnace": "Fourneau de Diorite", - "block.mineralogy.diorite_brick_furnace": "Fourneau de briques Diorite", - "block.mineralogy.diorite_smooth_furnace": "Fourneau Poli Diorite", - "block.mineralogy.diorite_smooth_brick_furnace": "Fourneau de briques poli Diorite", - "block.mineralogy.granite_furnace": "Fourneau de granit", - "block.mineralogy.granite_brick_furnace": "Fourneau de briques de granit", - "block.mineralogy.granite_smooth_furnace": "Fourneau poli de granit", - "block.mineralogy.granite_smooth_brick_furnace": "Fourneau de briques poli de granit", - "block.mineralogy.rhyolite_furnace": "Fourneau de rhyolite", - "block.mineralogy.rhyolite_brick_furnace": "Fourneau de brique de rhyolite", - "block.mineralogy.rhyolite_smooth_furnace": "Fourneau poli de rhyolite", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Fourneau de briques polies à la rhyolite", - "block.mineralogy.pegmatite_furnace": "Fourneau de Pegmatite", - "block.mineralogy.pegmatite_brick_furnace": "Fourneau de briques de Pegmatite", - "block.mineralogy.pegmatite_smooth_furnace": "Fourneau poli de Pegmatite", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Fourneau de briques poli à la Pegmatite", - "block.mineralogy.shale_furnace": "Fourneau de schiste", - "block.mineralogy.shale_brick_furnace": "Fourneau de briques de schiste", - "block.mineralogy.shale_smooth_furnace": "Fourneau poli de schiste", - "block.mineralogy.shale_smooth_brick_furnace": "Fourneau de briques polies au schiste", - "block.mineralogy.conglomerate_furnace": "Conglomérat mur", - "block.mineralogy.conglomerate_brick_furnace": "Fourneau de briques Conglomérat", - "block.mineralogy.conglomerate_smooth_furnace": "Conglomerate mur poli", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Conglomerate mur de briques polies", - "block.mineralogy.dolomite_furnace": "Fourneau de dolomite", - "block.mineralogy.dolomite_brick_furnace": "Fourneau de briques de dolomite", - "block.mineralogy.dolomite_smooth_furnace": "Fourneau poli de Dolomite", - "block.mineralogy.dolomite_smooth_brick_furnace": "Fourneau de briques poli à la dolomite", - "block.mineralogy.limestone_furnace": "Fourneau de calcaire", - "block.mineralogy.limestone_brick_furnace": "Fourneau de briques en calcaire", - "block.mineralogy.limestone_smooth_furnace": "Fourneau poli au calcaire", - "block.mineralogy.limestone_smooth_brick_furnace": "Fourneau de briques poli au calcaire", - "block.mineralogy.marble_furnace": "Fourneau de marbre", - "block.mineralogy.marble_brick_furnace": "Fourneau de briques en marbre", - "block.mineralogy.marble_smooth_furnace": "Fourneau poli en marbre", - "block.mineralogy.marble_smooth_brick_furnace": "Fourneau de briques polies en marbre", - "block.mineralogy.slate_furnace": "Fourneau d'ardoise", - "block.mineralogy.slate_brick_furnace": "Fourneau de briques d'ardoise", - "block.mineralogy.slate_smooth_furnace": "Fourneau d'ardoise poli", - "block.mineralogy.slate_smooth_brick_furnace": "Ardoise polie mur de briques", - "block.mineralogy.schist_furnace": "Fourneau de schiste", - "block.mineralogy.schist_brick_furnace": "Fourneau de briques de schiste", - "block.mineralogy.schist_smooth_furnace": "Schiste poli mur", - "block.mineralogy.schist_smooth_brick_furnace": "Fourneau de briques schist poli", - "block.mineralogy.gneiss_furnace": "Fourneau de gneiss", - "block.mineralogy.gneiss_brick_furnace": "Fourneau de briques en gneiss", - "block.mineralogy.gneiss_smooth_furnace": "Gneiss poli mur", - "block.mineralogy.gneiss_smooth_brick_furnace": "Gneiss poli mur de briques", - "block.mineralogy.phyllite_furnace": "Fourneau de phyllite", - "block.mineralogy.phyllite_brick_furnace": "Fourneau de briques de phyllite", - "block.mineralogy.phyllite_smooth_furnace": "Fourneau poli de phyllite", - "block.mineralogy.phyllite_smooth_brick_furnace": "Fourneau de briques poli en phyllite", - "block.mineralogy.amphibolite_furnace": "Fourneau d'amphibolite", - "block.mineralogy.amphibolite_brick_furnace": "Fourneau de briques d'amphibolite", - "block.mineralogy.amphibolite_smooth_furnace": "Fourneau poli d'amphibolite", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Fourneau de briques poli à l'amphibolite", + "block.mineralogy.drywall_black": "Plaque de plâtre noire", + "block.mineralogy.drywall_red": "Plaque de plâtre rouge", + "block.mineralogy.drywall_green": "Plaque de plâtre verte", + "block.mineralogy.drywall_brown": "Plaque de plâtre marron", + "block.mineralogy.drywall_blue": "Plaque de plâtre bleue", + "block.mineralogy.drywall_purple": "Plaque de plâtre violette", + "block.mineralogy.drywall_cyan": "Plaque de plâtre cyan", + "block.mineralogy.drywall_silver": "Plaque de plâtre gris clair", + "block.mineralogy.drywall_gray": "Plaque de plâtre grise", + "block.mineralogy.drywall_pink": "Plaque de plâtre rose", + "block.mineralogy.drywall_lime": "Plaque de plâtre vert citron", + "block.mineralogy.drywall_yellow": "Plaque de plâtre jaune", + "block.mineralogy.drywall_light_blue": "Plaque de plâtre bleu clair", + "block.mineralogy.drywall_magenta": "Plaque de plâtre magenta", + "block.mineralogy.drywall_orange": "Plaque de plâtre orange", + "block.mineralogy.drywall_white": "Plaque de plâtre blanche", + "block.mineralogy.andesite_wall": "Muret en Andésite", + "block.mineralogy.andesite_brick_wall": "Muret en briques de Andésite", + "block.mineralogy.andesite_smooth_wall": "Muret poli en Andésite", + "block.mineralogy.andesite_smooth_brick_wall": "Muret en briques polies de Andésite", + "block.mineralogy.basalt_wall": "Muret en Basalte", + "block.mineralogy.basalt_brick_wall": "Muret en briques de Basalte", + "block.mineralogy.basalt_smooth_wall": "Muret poli en Basalte", + "block.mineralogy.basalt_smooth_brick_wall": "Muret en briques polies de Basalte", + "block.mineralogy.diorite_wall": "Muret en Diorite", + "block.mineralogy.diorite_brick_wall": "Muret en briques de Diorite", + "block.mineralogy.diorite_smooth_wall": "Muret poli en Diorite", + "block.mineralogy.diorite_smooth_brick_wall": "Muret en briques polies de Diorite", + "block.mineralogy.granite_wall": "Muret en Granite", + "block.mineralogy.granite_brick_wall": "Muret en briques de Granite", + "block.mineralogy.granite_smooth_wall": "Muret poli en Granite", + "block.mineralogy.granite_smooth_brick_wall": "Muret en briques polies de Granite", + "block.mineralogy.rhyolite_wall": "Muret en Rhyolite", + "block.mineralogy.rhyolite_brick_wall": "Muret en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth_wall": "Muret poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muret en briques polies de Rhyolite", + "block.mineralogy.pegmatite_wall": "Muret en Pegmatite", + "block.mineralogy.pegmatite_brick_wall": "Muret en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth_wall": "Muret poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muret en briques polies de Pegmatite", + "block.mineralogy.shale_wall": "Muret en Schiste argileux", + "block.mineralogy.shale_brick_wall": "Muret en briques de Schiste argileux", + "block.mineralogy.shale_smooth_wall": "Muret poli en Schiste argileux", + "block.mineralogy.shale_smooth_brick_wall": "Muret en briques polies de Schiste argileux", + "block.mineralogy.conglomerate_wall": "Muret en Conglomérat", + "block.mineralogy.conglomerate_brick_wall": "Muret en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth_wall": "Muret poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muret en briques polies de Conglomérat", + "block.mineralogy.dolomite_wall": "Muret en Dolomie", + "block.mineralogy.dolomite_brick_wall": "Muret en briques de Dolomie", + "block.mineralogy.dolomite_smooth_wall": "Muret poli en Dolomie", + "block.mineralogy.dolomite_smooth_brick_wall": "Muret en briques polies de Dolomie", + "block.mineralogy.limestone_wall": "Muret en Calcaire", + "block.mineralogy.limestone_brick_wall": "Muret en briques de Calcaire", + "block.mineralogy.limestone_smooth_wall": "Muret poli en Calcaire", + "block.mineralogy.limestone_smooth_brick_wall": "Muret en briques polies de Calcaire", + "block.mineralogy.marble_wall": "Muret en Marbre", + "block.mineralogy.marble_brick_wall": "Muret en briques de Marbre", + "block.mineralogy.marble_smooth_wall": "Muret poli en Marbre", + "block.mineralogy.marble_smooth_brick_wall": "Muret en briques polies de Marbre", + "block.mineralogy.slate_wall": "Muret en Ardoise", + "block.mineralogy.slate_brick_wall": "Muret en briques de Ardoise", + "block.mineralogy.slate_smooth_wall": "Muret poli en Ardoise", + "block.mineralogy.slate_smooth_brick_wall": "Muret en briques polies de Ardoise", + "block.mineralogy.schist_wall": "Muret en Micaschiste", + "block.mineralogy.schist_brick_wall": "Muret en briques de Micaschiste", + "block.mineralogy.schist_smooth_wall": "Muret poli en Micaschiste", + "block.mineralogy.schist_smooth_brick_wall": "Muret en briques polies de Micaschiste", + "block.mineralogy.gneiss_wall": "Muret en Gneiss", + "block.mineralogy.gneiss_brick_wall": "Muret en briques de Gneiss", + "block.mineralogy.gneiss_smooth_wall": "Muret poli en Gneiss", + "block.mineralogy.gneiss_smooth_brick_wall": "Muret en briques polies de Gneiss", + "block.mineralogy.phyllite_wall": "Muret en Phyllade", + "block.mineralogy.phyllite_brick_wall": "Muret en briques de Phyllade", + "block.mineralogy.phyllite_smooth_wall": "Muret poli en Phyllade", + "block.mineralogy.phyllite_smooth_brick_wall": "Muret en briques polies de Phyllade", + "block.mineralogy.amphibolite_wall": "Muret en Amphibolite", + "block.mineralogy.amphibolite_brick_wall": "Muret en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth_wall": "Muret poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muret en briques polies de Amphibolite", + "block.mineralogy.andesite_furnace": "Fourneau en Andésite", + "block.mineralogy.andesite_brick_furnace": "Fourneau en briques de Andésite", + "block.mineralogy.andesite_smooth_furnace": "Fourneau poli en Andésite", + "block.mineralogy.andesite_smooth_brick_furnace": "Fourneau en briques polies de Andésite", + "block.mineralogy.basalt_furnace": "Fourneau en Basalte", + "block.mineralogy.basalt_brick_furnace": "Fourneau en briques de Basalte", + "block.mineralogy.basalt_smooth_furnace": "Fourneau poli en Basalte", + "block.mineralogy.basalt_smooth_brick_furnace": "Fourneau en briques polies de Basalte", + "block.mineralogy.diorite_furnace": "Fourneau en Diorite", + "block.mineralogy.diorite_brick_furnace": "Fourneau en briques de Diorite", + "block.mineralogy.diorite_smooth_furnace": "Fourneau poli en Diorite", + "block.mineralogy.diorite_smooth_brick_furnace": "Fourneau en briques polies de Diorite", + "block.mineralogy.granite_furnace": "Fourneau en Granite", + "block.mineralogy.granite_brick_furnace": "Fourneau en briques de Granite", + "block.mineralogy.granite_smooth_furnace": "Fourneau poli en Granite", + "block.mineralogy.granite_smooth_brick_furnace": "Fourneau en briques polies de Granite", + "block.mineralogy.rhyolite_furnace": "Fourneau en Rhyolite", + "block.mineralogy.rhyolite_brick_furnace": "Fourneau en briques de Rhyolite", + "block.mineralogy.rhyolite_smooth_furnace": "Fourneau poli en Rhyolite", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Fourneau en briques polies de Rhyolite", + "block.mineralogy.pegmatite_furnace": "Fourneau en Pegmatite", + "block.mineralogy.pegmatite_brick_furnace": "Fourneau en briques de Pegmatite", + "block.mineralogy.pegmatite_smooth_furnace": "Fourneau poli en Pegmatite", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Fourneau en briques polies de Pegmatite", + "block.mineralogy.shale_furnace": "Fourneau en Schiste argileux", + "block.mineralogy.shale_brick_furnace": "Fourneau en briques de Schiste argileux", + "block.mineralogy.shale_smooth_furnace": "Fourneau poli en Schiste argileux", + "block.mineralogy.shale_smooth_brick_furnace": "Fourneau en briques polies de Schiste argileux", + "block.mineralogy.conglomerate_furnace": "Fourneau en Conglomérat", + "block.mineralogy.conglomerate_brick_furnace": "Fourneau en briques de Conglomérat", + "block.mineralogy.conglomerate_smooth_furnace": "Fourneau poli en Conglomérat", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Fourneau en briques polies de Conglomérat", + "block.mineralogy.dolomite_furnace": "Fourneau en Dolomie", + "block.mineralogy.dolomite_brick_furnace": "Fourneau en briques de Dolomie", + "block.mineralogy.dolomite_smooth_furnace": "Fourneau poli en Dolomie", + "block.mineralogy.dolomite_smooth_brick_furnace": "Fourneau en briques polies de Dolomie", + "block.mineralogy.limestone_furnace": "Fourneau en Calcaire", + "block.mineralogy.limestone_brick_furnace": "Fourneau en briques de Calcaire", + "block.mineralogy.limestone_smooth_furnace": "Fourneau poli en Calcaire", + "block.mineralogy.limestone_smooth_brick_furnace": "Fourneau en briques polies de Calcaire", + "block.mineralogy.marble_furnace": "Fourneau en Marbre", + "block.mineralogy.marble_brick_furnace": "Fourneau en briques de Marbre", + "block.mineralogy.marble_smooth_furnace": "Fourneau poli en Marbre", + "block.mineralogy.marble_smooth_brick_furnace": "Fourneau en briques polies de Marbre", + "block.mineralogy.slate_furnace": "Fourneau en Ardoise", + "block.mineralogy.slate_brick_furnace": "Fourneau en briques de Ardoise", + "block.mineralogy.slate_smooth_furnace": "Fourneau poli en Ardoise", + "block.mineralogy.slate_smooth_brick_furnace": "Fourneau en briques polies de Ardoise", + "block.mineralogy.schist_furnace": "Fourneau en Micaschiste", + "block.mineralogy.schist_brick_furnace": "Fourneau en briques de Micaschiste", + "block.mineralogy.schist_smooth_furnace": "Fourneau poli en Micaschiste", + "block.mineralogy.schist_smooth_brick_furnace": "Fourneau en briques polies de Micaschiste", + "block.mineralogy.gneiss_furnace": "Fourneau en Gneiss", + "block.mineralogy.gneiss_brick_furnace": "Fourneau en briques de Gneiss", + "block.mineralogy.gneiss_smooth_furnace": "Fourneau poli en Gneiss", + "block.mineralogy.gneiss_smooth_brick_furnace": "Fourneau en briques polies de Gneiss", + "block.mineralogy.phyllite_furnace": "Fourneau en Phyllade", + "block.mineralogy.phyllite_brick_furnace": "Fourneau en briques de Phyllade", + "block.mineralogy.phyllite_smooth_furnace": "Fourneau poli en Phyllade", + "block.mineralogy.phyllite_smooth_brick_furnace": "Fourneau en briques polies de Phyllade", + "block.mineralogy.amphibolite_furnace": "Fourneau en Amphibolite", + "block.mineralogy.amphibolite_brick_furnace": "Fourneau en briques de Amphibolite", + "block.mineralogy.amphibolite_smooth_furnace": "Fourneau poli en Amphibolite", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Fourneau en briques polies de Amphibolite", "block.mineralogy.diabase": "Diabase", - "block.mineralogy.diabase_stairs": "Diabase Escaliers", - "block.mineralogy.diabase_slab": "Diabase Dalle", - "block.mineralogy.diabase_brick": "Diabase Brique", - "block.mineralogy.diabase_brick_stairs": "Diabase Escalier De Brique", - "block.mineralogy.diabase_brick_slab": "Diabase Dalle de brique", - "block.mineralogy.diabase_smooth": "Polished Diabase", - "block.mineralogy.diabase_smooth_stairs": "Diabase Escalier Poli", - "block.mineralogy.diabase_smooth_slab": "Diabase Dalle polie", - "block.mineralogy.diabase_smooth_brick": "Diabase Brique polie", - "block.mineralogy.diabase_smooth_brick_stairs": "Diabase Escalier en brique polie", - "block.mineralogy.diabase_smooth_brick_slab": "Diabase Dalle de brique polie", - "block.mineralogy.diabase_wall": "Diabase Wall", - "block.mineralogy.diabase_brick_wall": "Diabase Mur de briques", - "block.mineralogy.diabase_smooth_wall": "Diabase Mur poli", - "block.mineralogy.diabase_smooth_brick_wall": "Diabase Mur de brique poli", - "block.mineralogy.diabase_furnace": "Diabase Furnace", - "block.mineralogy.diabase_brick_furnace": "Diabase Four à briques", - "block.mineralogy.diabase_smooth_furnace": "Diabase Four poli", - "block.mineralogy.diabase_smooth_brick_furnace": "Diabase Four à brique polie", + "block.mineralogy.diabase_stairs": "Escalier en Diabase", + "block.mineralogy.diabase_slab": "Dalle en Diabase", + "block.mineralogy.diabase_brick": "Briques en Diabase", + "block.mineralogy.diabase_brick_stairs": "Escalier en briques de Diabase", + "block.mineralogy.diabase_brick_slab": "Dalle en briques de Diabase", + "block.mineralogy.diabase_smooth": "Bloc poli en Diabase", + "block.mineralogy.diabase_smooth_stairs": "Escalier poli en Diabase", + "block.mineralogy.diabase_smooth_slab": "Dalle polie en Diabase", + "block.mineralogy.diabase_smooth_brick": "Briques polies en Diabase", + "block.mineralogy.diabase_smooth_brick_stairs": "Escalier en briques polies de Diabase", + "block.mineralogy.diabase_smooth_brick_slab": "Dalle en briques polies de Diabase", + "block.mineralogy.diabase_wall": "Muret en Diabase", + "block.mineralogy.diabase_brick_wall": "Muret en briques de Diabase", + "block.mineralogy.diabase_smooth_wall": "Muret poli en Diabase", + "block.mineralogy.diabase_smooth_brick_wall": "Muret en briques polies de Diabase", + "block.mineralogy.diabase_furnace": "Fourneau en Diabase", + "block.mineralogy.diabase_brick_furnace": "Fourneau en briques de Diabase", + "block.mineralogy.diabase_smooth_furnace": "Fourneau poli en Diabase", + "block.mineralogy.diabase_smooth_brick_furnace": "Fourneau en briques polies de Diabase", "block.mineralogy.gabbro": "Gabbro", - "block.mineralogy.gabbro_stairs": "Gabbro Escaliers", - "block.mineralogy.gabbro_slab": "Gabbro Dalle", - "block.mineralogy.gabbro_brick": "Gabbro Brique", - "block.mineralogy.gabbro_brick_stairs": "Gabbro Escalier De Brique", - "block.mineralogy.gabbro_brick_slab": "Gabbro Dalle de brique", - "block.mineralogy.gabbro_smooth": "Polished Gabbro", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro Escalier Poli", - "block.mineralogy.gabbro_smooth_slab": "Gabbro Dalle polie", - "block.mineralogy.gabbro_smooth_brick": "Gabbro Brique polie", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro Escalier en brique polie", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro Dalle de brique polie", - "block.mineralogy.gabbro_wall": "Gabbro Wall", - "block.mineralogy.gabbro_brick_wall": "Gabbro Mur de briques", - "block.mineralogy.gabbro_smooth_wall": "Gabbro Mur poli", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro Mur de brique poli", - "block.mineralogy.gabbro_furnace": "Gabbro Furnace", - "block.mineralogy.gabbro_brick_furnace": "Gabbro Four à briques", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro Four poli", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro Four à brique polie", + "block.mineralogy.gabbro_stairs": "Escalier en Gabbro", + "block.mineralogy.gabbro_slab": "Dalle en Gabbro", + "block.mineralogy.gabbro_brick": "Briques en Gabbro", + "block.mineralogy.gabbro_brick_stairs": "Escalier en briques de Gabbro", + "block.mineralogy.gabbro_brick_slab": "Dalle en briques de Gabbro", + "block.mineralogy.gabbro_smooth": "Bloc poli en Gabbro", + "block.mineralogy.gabbro_smooth_stairs": "Escalier poli en Gabbro", + "block.mineralogy.gabbro_smooth_slab": "Dalle polie en Gabbro", + "block.mineralogy.gabbro_smooth_brick": "Briques polies en Gabbro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escalier en briques polies de Gabbro", + "block.mineralogy.gabbro_smooth_brick_slab": "Dalle en briques polies de Gabbro", + "block.mineralogy.gabbro_wall": "Muret en Gabbro", + "block.mineralogy.gabbro_brick_wall": "Muret en briques de Gabbro", + "block.mineralogy.gabbro_smooth_wall": "Muret poli en Gabbro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muret en briques polies de Gabbro", + "block.mineralogy.gabbro_furnace": "Fourneau en Gabbro", + "block.mineralogy.gabbro_brick_furnace": "Fourneau en briques de Gabbro", + "block.mineralogy.gabbro_smooth_furnace": "Fourneau poli en Gabbro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Fourneau en briques polies de Gabbro", "block.mineralogy.peridotite": "Péridotite", - "block.mineralogy.peridotite_stairs": "Péridotite Escaliers", - "block.mineralogy.peridotite_slab": "Péridotite Dalle", - "block.mineralogy.peridotite_brick": "Péridotite Brique", - "block.mineralogy.peridotite_brick_stairs": "Péridotite Escalier De Brique", - "block.mineralogy.peridotite_brick_slab": "Péridotite Dalle de brique", - "block.mineralogy.peridotite_smooth": "Polished Péridotite", - "block.mineralogy.peridotite_smooth_stairs": "Péridotite Escalier Poli", - "block.mineralogy.peridotite_smooth_slab": "Péridotite Dalle polie", - "block.mineralogy.peridotite_smooth_brick": "Péridotite Brique polie", - "block.mineralogy.peridotite_smooth_brick_stairs": "Péridotite Escalier en brique polie", - "block.mineralogy.peridotite_smooth_brick_slab": "Péridotite Dalle de brique polie", - "block.mineralogy.peridotite_wall": "Péridotite Wall", - "block.mineralogy.peridotite_brick_wall": "Péridotite Mur de briques", - "block.mineralogy.peridotite_smooth_wall": "Péridotite Mur poli", - "block.mineralogy.peridotite_smooth_brick_wall": "Péridotite Mur de brique poli", - "block.mineralogy.peridotite_furnace": "Péridotite Furnace", - "block.mineralogy.peridotite_brick_furnace": "Péridotite Four à briques", - "block.mineralogy.peridotite_smooth_furnace": "Péridotite Four poli", - "block.mineralogy.peridotite_smooth_brick_furnace": "Péridotite Four à brique polie", + "block.mineralogy.peridotite_stairs": "Escalier en Péridotite", + "block.mineralogy.peridotite_slab": "Dalle en Péridotite", + "block.mineralogy.peridotite_brick": "Briques en Péridotite", + "block.mineralogy.peridotite_brick_stairs": "Escalier en briques de Péridotite", + "block.mineralogy.peridotite_brick_slab": "Dalle en briques de Péridotite", + "block.mineralogy.peridotite_smooth": "Bloc poli en Péridotite", + "block.mineralogy.peridotite_smooth_stairs": "Escalier poli en Péridotite", + "block.mineralogy.peridotite_smooth_slab": "Dalle polie en Péridotite", + "block.mineralogy.peridotite_smooth_brick": "Briques polies en Péridotite", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escalier en briques polies de Péridotite", + "block.mineralogy.peridotite_smooth_brick_slab": "Dalle en briques polies de Péridotite", + "block.mineralogy.peridotite_wall": "Muret en Péridotite", + "block.mineralogy.peridotite_brick_wall": "Muret en briques de Péridotite", + "block.mineralogy.peridotite_smooth_wall": "Muret poli en Péridotite", + "block.mineralogy.peridotite_smooth_brick_wall": "Muret en briques polies de Péridotite", + "block.mineralogy.peridotite_furnace": "Fourneau en Péridotite", + "block.mineralogy.peridotite_brick_furnace": "Fourneau en briques de Péridotite", + "block.mineralogy.peridotite_smooth_furnace": "Fourneau poli en Péridotite", + "block.mineralogy.peridotite_smooth_brick_furnace": "Fourneau en briques polies de Péridotite", "block.mineralogy.basaltic_glass": "Verre basaltique", - "block.mineralogy.basaltic_glass_stairs": "Verre basaltique Escaliers", - "block.mineralogy.basaltic_glass_slab": "Verre basaltique Dalle", - "block.mineralogy.basaltic_glass_brick": "Verre basaltique Brique", - "block.mineralogy.basaltic_glass_brick_stairs": "Verre basaltique Escalier De Brique", - "block.mineralogy.basaltic_glass_brick_slab": "Verre basaltique Dalle de brique", - "block.mineralogy.basaltic_glass_smooth": "Polished Verre basaltique", - "block.mineralogy.basaltic_glass_smooth_stairs": "Verre basaltique Escalier Poli", - "block.mineralogy.basaltic_glass_smooth_slab": "Verre basaltique Dalle polie", - "block.mineralogy.basaltic_glass_smooth_brick": "Verre basaltique Brique polie", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Verre basaltique Escalier en brique polie", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Verre basaltique Dalle de brique polie", - "block.mineralogy.basaltic_glass_wall": "Verre basaltique Wall", - "block.mineralogy.basaltic_glass_brick_wall": "Verre basaltique Mur de briques", - "block.mineralogy.basaltic_glass_smooth_wall": "Verre basaltique Mur poli", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Verre basaltique Mur de brique poli", - "block.mineralogy.basaltic_glass_furnace": "Verre basaltique Furnace", - "block.mineralogy.basaltic_glass_brick_furnace": "Verre basaltique Four à briques", - "block.mineralogy.basaltic_glass_smooth_furnace": "Verre basaltique Four poli", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Verre basaltique Four à brique polie", - "block.mineralogy.scoria": "Scories", - "block.mineralogy.scoria_stairs": "Scories Escaliers", - "block.mineralogy.scoria_slab": "Scories Dalle", - "block.mineralogy.scoria_brick": "Scories Brique", - "block.mineralogy.scoria_brick_stairs": "Scories Escalier De Brique", - "block.mineralogy.scoria_brick_slab": "Scories Dalle de brique", - "block.mineralogy.scoria_smooth": "Polished Scories", - "block.mineralogy.scoria_smooth_stairs": "Scories Escalier Poli", - "block.mineralogy.scoria_smooth_slab": "Scories Dalle polie", - "block.mineralogy.scoria_smooth_brick": "Scories Brique polie", - "block.mineralogy.scoria_smooth_brick_stairs": "Scories Escalier en brique polie", - "block.mineralogy.scoria_smooth_brick_slab": "Scories Dalle de brique polie", - "block.mineralogy.scoria_wall": "Scories Wall", - "block.mineralogy.scoria_brick_wall": "Scories Mur de briques", - "block.mineralogy.scoria_smooth_wall": "Scories Mur poli", - "block.mineralogy.scoria_smooth_brick_wall": "Scories Mur de brique poli", - "block.mineralogy.scoria_furnace": "Scories Furnace", - "block.mineralogy.scoria_brick_furnace": "Scories Four à briques", - "block.mineralogy.scoria_smooth_furnace": "Scories Four poli", - "block.mineralogy.scoria_smooth_brick_furnace": "Scories Four à brique polie", + "block.mineralogy.basaltic_glass_stairs": "Escalier en Verre basaltique", + "block.mineralogy.basaltic_glass_slab": "Dalle en Verre basaltique", + "block.mineralogy.basaltic_glass_brick": "Briques en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_stairs": "Escalier en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_brick_slab": "Dalle en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth": "Bloc poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escalier poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_slab": "Dalle polie en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick": "Briques polies en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escalier en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Dalle en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_wall": "Muret en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_wall": "Muret en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_wall": "Muret poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muret en briques polies de Verre basaltique", + "block.mineralogy.basaltic_glass_furnace": "Fourneau en Verre basaltique", + "block.mineralogy.basaltic_glass_brick_furnace": "Fourneau en briques de Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_furnace": "Fourneau poli en Verre basaltique", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Fourneau en briques polies de Verre basaltique", + "block.mineralogy.scoria": "Scorie", + "block.mineralogy.scoria_stairs": "Escalier en Scorie", + "block.mineralogy.scoria_slab": "Dalle en Scorie", + "block.mineralogy.scoria_brick": "Briques en Scorie", + "block.mineralogy.scoria_brick_stairs": "Escalier en briques de Scorie", + "block.mineralogy.scoria_brick_slab": "Dalle en briques de Scorie", + "block.mineralogy.scoria_smooth": "Bloc poli en Scorie", + "block.mineralogy.scoria_smooth_stairs": "Escalier poli en Scorie", + "block.mineralogy.scoria_smooth_slab": "Dalle polie en Scorie", + "block.mineralogy.scoria_smooth_brick": "Briques polies en Scorie", + "block.mineralogy.scoria_smooth_brick_stairs": "Escalier en briques polies de Scorie", + "block.mineralogy.scoria_smooth_brick_slab": "Dalle en briques polies de Scorie", + "block.mineralogy.scoria_wall": "Muret en Scorie", + "block.mineralogy.scoria_brick_wall": "Muret en briques de Scorie", + "block.mineralogy.scoria_smooth_wall": "Muret poli en Scorie", + "block.mineralogy.scoria_smooth_brick_wall": "Muret en briques polies de Scorie", + "block.mineralogy.scoria_furnace": "Fourneau en Scorie", + "block.mineralogy.scoria_brick_furnace": "Fourneau en briques de Scorie", + "block.mineralogy.scoria_smooth_furnace": "Fourneau poli en Scorie", + "block.mineralogy.scoria_smooth_brick_furnace": "Fourneau en briques polies de Scorie", "block.mineralogy.tuff": "Tuf", - "block.mineralogy.tuff_stairs": "Tuf Escaliers", - "block.mineralogy.tuff_slab": "Tuf Dalle", - "block.mineralogy.tuff_brick": "Tuf Brique", - "block.mineralogy.tuff_brick_stairs": "Tuf Escalier De Brique", - "block.mineralogy.tuff_brick_slab": "Tuf Dalle de brique", - "block.mineralogy.tuff_smooth": "Polished Tuf", - "block.mineralogy.tuff_smooth_stairs": "Tuf Escalier Poli", - "block.mineralogy.tuff_smooth_slab": "Tuf Dalle polie", - "block.mineralogy.tuff_smooth_brick": "Tuf Brique polie", - "block.mineralogy.tuff_smooth_brick_stairs": "Tuf Escalier en brique polie", - "block.mineralogy.tuff_smooth_brick_slab": "Tuf Dalle de brique polie", - "block.mineralogy.tuff_wall": "Tuf Wall", - "block.mineralogy.tuff_brick_wall": "Tuf Mur de briques", - "block.mineralogy.tuff_smooth_wall": "Tuf Mur poli", - "block.mineralogy.tuff_smooth_brick_wall": "Tuf Mur de brique poli", - "block.mineralogy.tuff_furnace": "Tuf Furnace", - "block.mineralogy.tuff_brick_furnace": "Tuf Four à briques", - "block.mineralogy.tuff_smooth_furnace": "Tuf Four poli", - "block.mineralogy.tuff_smooth_brick_furnace": "Tuf Four à brique polie", - "block.mineralogy.siltstone": "Pierre de terre", - "block.mineralogy.siltstone_stairs": "Pierre de terre Escaliers", - "block.mineralogy.siltstone_slab": "Pierre de terre Dalle", - "block.mineralogy.siltstone_brick": "Pierre de terre Brique", - "block.mineralogy.siltstone_brick_stairs": "Pierre de terre Escalier De Brique", - "block.mineralogy.siltstone_brick_slab": "Pierre de terre Dalle de brique", - "block.mineralogy.siltstone_smooth": "Polished Pierre de terre", - "block.mineralogy.siltstone_smooth_stairs": "Pierre de terre Escalier Poli", - "block.mineralogy.siltstone_smooth_slab": "Pierre de terre Dalle polie", - "block.mineralogy.siltstone_smooth_brick": "Pierre de terre Brique polie", - "block.mineralogy.siltstone_smooth_brick_stairs": "Pierre de terre Escalier en brique polie", - "block.mineralogy.siltstone_smooth_brick_slab": "Pierre de terre Dalle de brique polie", - "block.mineralogy.siltstone_wall": "Pierre de terre Wall", - "block.mineralogy.siltstone_brick_wall": "Pierre de terre Mur de briques", - "block.mineralogy.siltstone_smooth_wall": "Pierre de terre Mur poli", - "block.mineralogy.siltstone_smooth_brick_wall": "Pierre de terre Mur de brique poli", - "block.mineralogy.siltstone_furnace": "Pierre de terre Furnace", - "block.mineralogy.siltstone_brick_furnace": "Pierre de terre Four à briques", - "block.mineralogy.siltstone_smooth_furnace": "Pierre de terre Four poli", - "block.mineralogy.siltstone_smooth_brick_furnace": "Pierre de terre Four à brique polie", + "block.mineralogy.tuff_stairs": "Escalier en Tuf", + "block.mineralogy.tuff_slab": "Dalle en Tuf", + "block.mineralogy.tuff_brick": "Briques en Tuf", + "block.mineralogy.tuff_brick_stairs": "Escalier en briques de Tuf", + "block.mineralogy.tuff_brick_slab": "Dalle en briques de Tuf", + "block.mineralogy.tuff_smooth": "Bloc poli en Tuf", + "block.mineralogy.tuff_smooth_stairs": "Escalier poli en Tuf", + "block.mineralogy.tuff_smooth_slab": "Dalle polie en Tuf", + "block.mineralogy.tuff_smooth_brick": "Briques polies en Tuf", + "block.mineralogy.tuff_smooth_brick_stairs": "Escalier en briques polies de Tuf", + "block.mineralogy.tuff_smooth_brick_slab": "Dalle en briques polies de Tuf", + "block.mineralogy.tuff_wall": "Muret en Tuf", + "block.mineralogy.tuff_brick_wall": "Muret en briques de Tuf", + "block.mineralogy.tuff_smooth_wall": "Muret poli en Tuf", + "block.mineralogy.tuff_smooth_brick_wall": "Muret en briques polies de Tuf", + "block.mineralogy.tuff_furnace": "Fourneau en Tuf", + "block.mineralogy.tuff_brick_furnace": "Fourneau en briques de Tuf", + "block.mineralogy.tuff_smooth_furnace": "Fourneau poli en Tuf", + "block.mineralogy.tuff_smooth_brick_furnace": "Fourneau en briques polies de Tuf", + "block.mineralogy.siltstone": "Siltite", + "block.mineralogy.siltstone_stairs": "Escalier en Siltite", + "block.mineralogy.siltstone_slab": "Dalle en Siltite", + "block.mineralogy.siltstone_brick": "Briques en Siltite", + "block.mineralogy.siltstone_brick_stairs": "Escalier en briques de Siltite", + "block.mineralogy.siltstone_brick_slab": "Dalle en briques de Siltite", + "block.mineralogy.siltstone_smooth": "Bloc poli en Siltite", + "block.mineralogy.siltstone_smooth_stairs": "Escalier poli en Siltite", + "block.mineralogy.siltstone_smooth_slab": "Dalle polie en Siltite", + "block.mineralogy.siltstone_smooth_brick": "Briques polies en Siltite", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escalier en briques polies de Siltite", + "block.mineralogy.siltstone_smooth_brick_slab": "Dalle en briques polies de Siltite", + "block.mineralogy.siltstone_wall": "Muret en Siltite", + "block.mineralogy.siltstone_brick_wall": "Muret en briques de Siltite", + "block.mineralogy.siltstone_smooth_wall": "Muret poli en Siltite", + "block.mineralogy.siltstone_smooth_brick_wall": "Muret en briques polies de Siltite", + "block.mineralogy.siltstone_furnace": "Fourneau en Siltite", + "block.mineralogy.siltstone_brick_furnace": "Fourneau en briques de Siltite", + "block.mineralogy.siltstone_smooth_furnace": "Fourneau poli en Siltite", + "block.mineralogy.siltstone_smooth_brick_furnace": "Fourneau en briques polies de Siltite", "block.mineralogy.rock_salt": "Sel gemme", - "block.mineralogy.rock_salt_stairs": "Sel gemme Escaliers", - "block.mineralogy.rock_salt_slab": "Sel gemme Dalle", - "block.mineralogy.rock_salt_brick": "Sel gemme Brique", - "block.mineralogy.rock_salt_brick_stairs": "Sel gemme Escalier De Brique", - "block.mineralogy.rock_salt_brick_slab": "Sel gemme Dalle de brique", - "block.mineralogy.rock_salt_smooth": "Polished Sel gemme", - "block.mineralogy.rock_salt_smooth_stairs": "Sel gemme Escalier Poli", - "block.mineralogy.rock_salt_smooth_slab": "Sel gemme Dalle polie", - "block.mineralogy.rock_salt_smooth_brick": "Sel gemme Brique polie", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Sel gemme Escalier en brique polie", - "block.mineralogy.rock_salt_smooth_brick_slab": "Sel gemme Dalle de brique polie", - "block.mineralogy.rock_salt_wall": "Sel gemme Wall", - "block.mineralogy.rock_salt_brick_wall": "Sel gemme Mur de briques", - "block.mineralogy.rock_salt_smooth_wall": "Sel gemme Mur poli", - "block.mineralogy.rock_salt_smooth_brick_wall": "Sel gemme Mur de brique poli", - "block.mineralogy.rock_salt_furnace": "Sel gemme Furnace", - "block.mineralogy.rock_salt_brick_furnace": "Sel gemme Four à briques", - "block.mineralogy.rock_salt_smooth_furnace": "Sel gemme Four poli", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Sel gemme Four à brique polie", - "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Hornfels Escaliers", - "block.mineralogy.hornfels_slab": "Hornfels Dalle", - "block.mineralogy.hornfels_brick": "Hornfels Brique", - "block.mineralogy.hornfels_brick_stairs": "Hornfels Escalier De Brique", - "block.mineralogy.hornfels_brick_slab": "Hornfels Dalle de brique", - "block.mineralogy.hornfels_smooth": "Polished Hornfels", - "block.mineralogy.hornfels_smooth_stairs": "Hornfels Escalier Poli", - "block.mineralogy.hornfels_smooth_slab": "Hornfels Dalle polie", - "block.mineralogy.hornfels_smooth_brick": "Hornfels Brique polie", - "block.mineralogy.hornfels_smooth_brick_stairs": "Hornfels Escalier en brique polie", - "block.mineralogy.hornfels_smooth_brick_slab": "Hornfels Dalle de brique polie", - "block.mineralogy.hornfels_wall": "Hornfels Wall", - "block.mineralogy.hornfels_brick_wall": "Hornfels Mur de briques", - "block.mineralogy.hornfels_smooth_wall": "Hornfels Mur poli", - "block.mineralogy.hornfels_smooth_brick_wall": "Hornfels Mur de brique poli", - "block.mineralogy.hornfels_furnace": "Hornfels Furnace", - "block.mineralogy.hornfels_brick_furnace": "Hornfels Four à briques", - "block.mineralogy.hornfels_smooth_furnace": "Hornfels Four poli", - "block.mineralogy.hornfels_smooth_brick_furnace": "Hornfels Four à brique polie", + "block.mineralogy.rock_salt_stairs": "Escalier en Sel gemme", + "block.mineralogy.rock_salt_slab": "Dalle en Sel gemme", + "block.mineralogy.rock_salt_brick": "Briques en Sel gemme", + "block.mineralogy.rock_salt_brick_stairs": "Escalier en briques de Sel gemme", + "block.mineralogy.rock_salt_brick_slab": "Dalle en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth": "Bloc poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_stairs": "Escalier poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_slab": "Dalle polie en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick": "Briques polies en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escalier en briques polies de Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_slab": "Dalle en briques polies de Sel gemme", + "block.mineralogy.rock_salt_wall": "Muret en Sel gemme", + "block.mineralogy.rock_salt_brick_wall": "Muret en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth_wall": "Muret poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muret en briques polies de Sel gemme", + "block.mineralogy.rock_salt_furnace": "Fourneau en Sel gemme", + "block.mineralogy.rock_salt_brick_furnace": "Fourneau en briques de Sel gemme", + "block.mineralogy.rock_salt_smooth_furnace": "Fourneau poli en Sel gemme", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Fourneau en briques polies de Sel gemme", + "block.mineralogy.hornfels": "Cornéenne", + "block.mineralogy.hornfels_stairs": "Escalier en Cornéenne", + "block.mineralogy.hornfels_slab": "Dalle en Cornéenne", + "block.mineralogy.hornfels_brick": "Briques en Cornéenne", + "block.mineralogy.hornfels_brick_stairs": "Escalier en briques de Cornéenne", + "block.mineralogy.hornfels_brick_slab": "Dalle en briques de Cornéenne", + "block.mineralogy.hornfels_smooth": "Bloc poli en Cornéenne", + "block.mineralogy.hornfels_smooth_stairs": "Escalier poli en Cornéenne", + "block.mineralogy.hornfels_smooth_slab": "Dalle polie en Cornéenne", + "block.mineralogy.hornfels_smooth_brick": "Briques polies en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escalier en briques polies de Cornéenne", + "block.mineralogy.hornfels_smooth_brick_slab": "Dalle en briques polies de Cornéenne", + "block.mineralogy.hornfels_wall": "Muret en Cornéenne", + "block.mineralogy.hornfels_brick_wall": "Muret en briques de Cornéenne", + "block.mineralogy.hornfels_smooth_wall": "Muret poli en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_wall": "Muret en briques polies de Cornéenne", + "block.mineralogy.hornfels_furnace": "Fourneau en Cornéenne", + "block.mineralogy.hornfels_brick_furnace": "Fourneau en briques de Cornéenne", + "block.mineralogy.hornfels_smooth_furnace": "Fourneau poli en Cornéenne", + "block.mineralogy.hornfels_smooth_brick_furnace": "Fourneau en briques polies de Cornéenne", "block.mineralogy.quartzite": "Quartzite", - "block.mineralogy.quartzite_stairs": "Quartzite Escaliers", - "block.mineralogy.quartzite_slab": "Quartzite Dalle", - "block.mineralogy.quartzite_brick": "Quartzite Brique", - "block.mineralogy.quartzite_brick_stairs": "Quartzite Escalier De Brique", - "block.mineralogy.quartzite_brick_slab": "Quartzite Dalle de brique", - "block.mineralogy.quartzite_smooth": "Polished Quartzite", - "block.mineralogy.quartzite_smooth_stairs": "Quartzite Escalier Poli", - "block.mineralogy.quartzite_smooth_slab": "Quartzite Dalle polie", - "block.mineralogy.quartzite_smooth_brick": "Quartzite Brique polie", - "block.mineralogy.quartzite_smooth_brick_stairs": "Quartzite Escalier en brique polie", - "block.mineralogy.quartzite_smooth_brick_slab": "Quartzite Dalle de brique polie", - "block.mineralogy.quartzite_wall": "Quartzite Wall", - "block.mineralogy.quartzite_brick_wall": "Quartzite Mur de briques", - "block.mineralogy.quartzite_smooth_wall": "Quartzite Mur poli", - "block.mineralogy.quartzite_smooth_brick_wall": "Quartzite Mur de brique poli", - "block.mineralogy.quartzite_furnace": "Quartzite Furnace", - "block.mineralogy.quartzite_brick_furnace": "Quartzite Four à briques", - "block.mineralogy.quartzite_smooth_furnace": "Quartzite Four poli", - "block.mineralogy.quartzite_smooth_brick_furnace": "Quartzite Four à brique polie", + "block.mineralogy.quartzite_stairs": "Escalier en Quartzite", + "block.mineralogy.quartzite_slab": "Dalle en Quartzite", + "block.mineralogy.quartzite_brick": "Briques en Quartzite", + "block.mineralogy.quartzite_brick_stairs": "Escalier en briques de Quartzite", + "block.mineralogy.quartzite_brick_slab": "Dalle en briques de Quartzite", + "block.mineralogy.quartzite_smooth": "Bloc poli en Quartzite", + "block.mineralogy.quartzite_smooth_stairs": "Escalier poli en Quartzite", + "block.mineralogy.quartzite_smooth_slab": "Dalle polie en Quartzite", + "block.mineralogy.quartzite_smooth_brick": "Briques polies en Quartzite", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escalier en briques polies de Quartzite", + "block.mineralogy.quartzite_smooth_brick_slab": "Dalle en briques polies de Quartzite", + "block.mineralogy.quartzite_wall": "Muret en Quartzite", + "block.mineralogy.quartzite_brick_wall": "Muret en briques de Quartzite", + "block.mineralogy.quartzite_smooth_wall": "Muret poli en Quartzite", + "block.mineralogy.quartzite_smooth_brick_wall": "Muret en briques polies de Quartzite", + "block.mineralogy.quartzite_furnace": "Fourneau en Quartzite", + "block.mineralogy.quartzite_brick_furnace": "Fourneau en briques de Quartzite", + "block.mineralogy.quartzite_smooth_furnace": "Fourneau poli en Quartzite", + "block.mineralogy.quartzite_smooth_brick_furnace": "Fourneau en briques polies de Quartzite", "block.mineralogy.novaculite": "Novaculite", - "block.mineralogy.novaculite_stairs": "Novaculite Escaliers", - "block.mineralogy.novaculite_slab": "Novaculite Dalle", - "block.mineralogy.novaculite_brick": "Novaculite Brique", - "block.mineralogy.novaculite_brick_stairs": "Novaculite Escalier De Brique", - "block.mineralogy.novaculite_brick_slab": "Novaculite Dalle de brique", - "block.mineralogy.novaculite_smooth": "Polished Novaculite", - "block.mineralogy.novaculite_smooth_stairs": "Novaculite Escalier Poli", - "block.mineralogy.novaculite_smooth_slab": "Novaculite Dalle polie", - "block.mineralogy.novaculite_smooth_brick": "Novaculite Brique polie", - "block.mineralogy.novaculite_smooth_brick_stairs": "Novaculite Escalier en brique polie", - "block.mineralogy.novaculite_smooth_brick_slab": "Novaculite Dalle de brique polie", - "block.mineralogy.novaculite_wall": "Novaculite Wall", - "block.mineralogy.novaculite_brick_wall": "Novaculite Mur de briques", - "block.mineralogy.novaculite_smooth_wall": "Novaculite Mur poli", - "block.mineralogy.novaculite_smooth_brick_wall": "Novaculite Mur de brique poli", - "block.mineralogy.novaculite_furnace": "Novaculite Furnace", - "block.mineralogy.novaculite_brick_furnace": "Novaculite Four à briques", - "block.mineralogy.novaculite_smooth_furnace": "Novaculite Four poli", - "block.mineralogy.novaculite_smooth_brick_furnace": "Novaculite Four à brique polie", + "block.mineralogy.novaculite_stairs": "Escalier en Novaculite", + "block.mineralogy.novaculite_slab": "Dalle en Novaculite", + "block.mineralogy.novaculite_brick": "Briques en Novaculite", + "block.mineralogy.novaculite_brick_stairs": "Escalier en briques de Novaculite", + "block.mineralogy.novaculite_brick_slab": "Dalle en briques de Novaculite", + "block.mineralogy.novaculite_smooth": "Bloc poli en Novaculite", + "block.mineralogy.novaculite_smooth_stairs": "Escalier poli en Novaculite", + "block.mineralogy.novaculite_smooth_slab": "Dalle polie en Novaculite", + "block.mineralogy.novaculite_smooth_brick": "Briques polies en Novaculite", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escalier en briques polies de Novaculite", + "block.mineralogy.novaculite_smooth_brick_slab": "Dalle en briques polies de Novaculite", + "block.mineralogy.novaculite_wall": "Muret en Novaculite", + "block.mineralogy.novaculite_brick_wall": "Muret en briques de Novaculite", + "block.mineralogy.novaculite_smooth_wall": "Muret poli en Novaculite", + "block.mineralogy.novaculite_smooth_brick_wall": "Muret en briques polies de Novaculite", + "block.mineralogy.novaculite_furnace": "Fourneau en Novaculite", + "block.mineralogy.novaculite_brick_furnace": "Fourneau en briques de Novaculite", + "block.mineralogy.novaculite_smooth_furnace": "Fourneau poli en Novaculite", + "block.mineralogy.novaculite_smooth_brick_furnace": "Fourneau en briques polies de Novaculite", "block.mineralogy.chalk": "Craie", "item.mineralogy.chalk_dust": "Poudre de craie", "item.mineralogy.salt_dust": "Sel", "item.mineralogy.rock_salt_dust": "Cristaux de sel gemme", - "block.mineralogy.rocksaltlamp": "Lampe à sel", - "block.mineralogy.rocksaltstreetlamp": "Lampadaire à sel", - "block.mineralogy.andesite_relief_axe": "Andésite Soulagement de la hache", - "block.mineralogy.andesite_relief_blank": "Andésite Relief vide", - "block.mineralogy.andesite_relief_cross": "Andésite Relief croisé", - "block.mineralogy.andesite_relief_hammer": "Andésite Soulagement marteau", - "block.mineralogy.andesite_relief_hoe": "Andésite Hoe Relief", - "block.mineralogy.andesite_relief_horizontal": "Andésite Relief horizontal", - "block.mineralogy.andesite_relief_i": "Andésite I Relief", - "block.mineralogy.andesite_relief_left": "Andésite Relief gauche", - "block.mineralogy.andesite_relief_pickaxe": "Andésite Relief de pioche", - "block.mineralogy.andesite_relief_plus": "Andésite Plus de soulagement", - "block.mineralogy.andesite_relief_right": "Andésite Bon soulagement", - "block.mineralogy.andesite_relief_sword": "Andésite Soulagement de l'épée", - "block.mineralogy.andesite_relief_vertical": "Andésite Relief vertical", - "block.mineralogy.basalt_relief_axe": "Basalte Soulagement de la hache", - "block.mineralogy.basalt_relief_blank": "Basalte Relief vide", - "block.mineralogy.basalt_relief_cross": "Basalte Relief croisé", - "block.mineralogy.basalt_relief_hammer": "Basalte Soulagement marteau", - "block.mineralogy.basalt_relief_hoe": "Basalte Hoe Relief", - "block.mineralogy.basalt_relief_horizontal": "Basalte Relief horizontal", - "block.mineralogy.basalt_relief_i": "Basalte I Relief", - "block.mineralogy.basalt_relief_left": "Basalte Relief gauche", - "block.mineralogy.basalt_relief_pickaxe": "Basalte Relief de pioche", - "block.mineralogy.basalt_relief_plus": "Basalte Plus de soulagement", - "block.mineralogy.basalt_relief_right": "Basalte Bon soulagement", - "block.mineralogy.basalt_relief_sword": "Basalte Soulagement de l'épée", - "block.mineralogy.basalt_relief_vertical": "Basalte Relief vertical", - "block.mineralogy.diorite_relief_axe": "Diorite Soulagement de la hache", - "block.mineralogy.diorite_relief_blank": "Diorite Relief vide", - "block.mineralogy.diorite_relief_cross": "Diorite Relief croisé", - "block.mineralogy.diorite_relief_hammer": "Diorite Soulagement marteau", - "block.mineralogy.diorite_relief_hoe": "Diorite Hoe Relief", - "block.mineralogy.diorite_relief_horizontal": "Diorite Relief horizontal", - "block.mineralogy.diorite_relief_i": "Diorite I Relief", - "block.mineralogy.diorite_relief_left": "Diorite Relief gauche", - "block.mineralogy.diorite_relief_pickaxe": "Diorite Relief de pioche", - "block.mineralogy.diorite_relief_plus": "Diorite Plus de soulagement", - "block.mineralogy.diorite_relief_right": "Diorite Bon soulagement", - "block.mineralogy.diorite_relief_sword": "Diorite Soulagement de l'épée", - "block.mineralogy.diorite_relief_vertical": "Diorite Relief vertical", - "block.mineralogy.granite_relief_axe": "Granit Soulagement de la hache", - "block.mineralogy.granite_relief_blank": "Granit Relief vide", - "block.mineralogy.granite_relief_cross": "Granit Relief croisé", - "block.mineralogy.granite_relief_hammer": "Granit Soulagement marteau", - "block.mineralogy.granite_relief_hoe": "Granit Hoe Relief", - "block.mineralogy.granite_relief_horizontal": "Granit Relief horizontal", - "block.mineralogy.granite_relief_i": "Granit I Relief", - "block.mineralogy.granite_relief_left": "Granit Relief gauche", - "block.mineralogy.granite_relief_pickaxe": "Granit Relief de pioche", - "block.mineralogy.granite_relief_plus": "Granit Plus de soulagement", - "block.mineralogy.granite_relief_right": "Granit Bon soulagement", - "block.mineralogy.granite_relief_sword": "Granit Soulagement de l'épée", - "block.mineralogy.granite_relief_vertical": "Granit Relief vertical", - "block.mineralogy.rhyolite_relief_axe": "Rhyolite Soulagement de la hache", - "block.mineralogy.rhyolite_relief_blank": "Rhyolite Relief vide", - "block.mineralogy.rhyolite_relief_cross": "Rhyolite Relief croisé", - "block.mineralogy.rhyolite_relief_hammer": "Rhyolite Soulagement marteau", - "block.mineralogy.rhyolite_relief_hoe": "Rhyolite Hoe Relief", - "block.mineralogy.rhyolite_relief_horizontal": "Rhyolite Relief horizontal", - "block.mineralogy.rhyolite_relief_i": "Rhyolite I Relief", - "block.mineralogy.rhyolite_relief_left": "Rhyolite Relief gauche", - "block.mineralogy.rhyolite_relief_pickaxe": "Rhyolite Relief de pioche", - "block.mineralogy.rhyolite_relief_plus": "Rhyolite Plus de soulagement", - "block.mineralogy.rhyolite_relief_right": "Rhyolite Bon soulagement", - "block.mineralogy.rhyolite_relief_sword": "Rhyolite Soulagement de l'épée", - "block.mineralogy.rhyolite_relief_vertical": "Rhyolite Relief vertical", - "block.mineralogy.pegmatite_relief_axe": "Pegmatite Soulagement de la hache", - "block.mineralogy.pegmatite_relief_blank": "Pegmatite Relief vide", - "block.mineralogy.pegmatite_relief_cross": "Pegmatite Relief croisé", - "block.mineralogy.pegmatite_relief_hammer": "Pegmatite Soulagement marteau", - "block.mineralogy.pegmatite_relief_hoe": "Pegmatite Hoe Relief", - "block.mineralogy.pegmatite_relief_horizontal": "Pegmatite Relief horizontal", - "block.mineralogy.pegmatite_relief_i": "Pegmatite I Relief", - "block.mineralogy.pegmatite_relief_left": "Pegmatite Relief gauche", - "block.mineralogy.pegmatite_relief_pickaxe": "Pegmatite Relief de pioche", - "block.mineralogy.pegmatite_relief_plus": "Pegmatite Plus de soulagement", - "block.mineralogy.pegmatite_relief_right": "Pegmatite Bon soulagement", - "block.mineralogy.pegmatite_relief_sword": "Pegmatite Soulagement de l'épée", - "block.mineralogy.pegmatite_relief_vertical": "Pegmatite Relief vertical", - "block.mineralogy.shale_relief_axe": "Schistee argileux Soulagement de la hache", - "block.mineralogy.shale_relief_blank": "Schistee argileux Relief vide", - "block.mineralogy.shale_relief_cross": "Schistee argileux Relief croisé", - "block.mineralogy.shale_relief_hammer": "Schistee argileux Soulagement marteau", - "block.mineralogy.shale_relief_hoe": "Schistee argileux Hoe Relief", - "block.mineralogy.shale_relief_horizontal": "Schistee argileux Relief horizontal", - "block.mineralogy.shale_relief_i": "Schistee argileux I Relief", - "block.mineralogy.shale_relief_left": "Schistee argileux Relief gauche", - "block.mineralogy.shale_relief_pickaxe": "Schistee argileux Relief de pioche", - "block.mineralogy.shale_relief_plus": "Schistee argileux Plus de soulagement", - "block.mineralogy.shale_relief_right": "Schistee argileux Bon soulagement", - "block.mineralogy.shale_relief_sword": "Schistee argileux Soulagement de l'épée", - "block.mineralogy.shale_relief_vertical": "Schistee argileux Relief vertical", - "block.mineralogy.conglomerate_relief_axe": "Conglomérat Soulagement de la hache", - "block.mineralogy.conglomerate_relief_blank": "Conglomérat Relief vide", - "block.mineralogy.conglomerate_relief_cross": "Conglomérat Relief croisé", - "block.mineralogy.conglomerate_relief_hammer": "Conglomérat Soulagement marteau", - "block.mineralogy.conglomerate_relief_hoe": "Conglomérat Hoe Relief", - "block.mineralogy.conglomerate_relief_horizontal": "Conglomérat Relief horizontal", - "block.mineralogy.conglomerate_relief_i": "Conglomérat I Relief", - "block.mineralogy.conglomerate_relief_left": "Conglomérat Relief gauche", - "block.mineralogy.conglomerate_relief_pickaxe": "Conglomérat Relief de pioche", - "block.mineralogy.conglomerate_relief_plus": "Conglomérat Plus de soulagement", - "block.mineralogy.conglomerate_relief_right": "Conglomérat Bon soulagement", - "block.mineralogy.conglomerate_relief_sword": "Conglomérat Soulagement de l'épée", - "block.mineralogy.conglomerate_relief_vertical": "Conglomérat Relief vertical", - "block.mineralogy.dolomite_relief_axe": "Dolomie Soulagement de la hache", - "block.mineralogy.dolomite_relief_blank": "Dolomie Relief vide", - "block.mineralogy.dolomite_relief_cross": "Dolomie Relief croisé", - "block.mineralogy.dolomite_relief_hammer": "Dolomie Soulagement marteau", - "block.mineralogy.dolomite_relief_hoe": "Dolomie Hoe Relief", - "block.mineralogy.dolomite_relief_horizontal": "Dolomie Relief horizontal", - "block.mineralogy.dolomite_relief_i": "Dolomie I Relief", - "block.mineralogy.dolomite_relief_left": "Dolomie Relief gauche", - "block.mineralogy.dolomite_relief_pickaxe": "Dolomie Relief de pioche", - "block.mineralogy.dolomite_relief_plus": "Dolomie Plus de soulagement", - "block.mineralogy.dolomite_relief_right": "Dolomie Bon soulagement", - "block.mineralogy.dolomite_relief_sword": "Dolomie Soulagement de l'épée", - "block.mineralogy.dolomite_relief_vertical": "Dolomie Relief vertical", - "block.mineralogy.limestone_relief_axe": "Calcaire Soulagement de la hache", - "block.mineralogy.limestone_relief_blank": "Calcaire Relief vide", - "block.mineralogy.limestone_relief_cross": "Calcaire Relief croisé", - "block.mineralogy.limestone_relief_hammer": "Calcaire Soulagement marteau", - "block.mineralogy.limestone_relief_hoe": "Calcaire Hoe Relief", - "block.mineralogy.limestone_relief_horizontal": "Calcaire Relief horizontal", - "block.mineralogy.limestone_relief_i": "Calcaire I Relief", - "block.mineralogy.limestone_relief_left": "Calcaire Relief gauche", - "block.mineralogy.limestone_relief_pickaxe": "Calcaire Relief de pioche", - "block.mineralogy.limestone_relief_plus": "Calcaire Plus de soulagement", - "block.mineralogy.limestone_relief_right": "Calcaire Bon soulagement", - "block.mineralogy.limestone_relief_sword": "Calcaire Soulagement de l'épée", - "block.mineralogy.limestone_relief_vertical": "Calcaire Relief vertical", - "block.mineralogy.marble_relief_axe": "Marbre Soulagement de la hache", - "block.mineralogy.marble_relief_blank": "Marbre Relief vide", - "block.mineralogy.marble_relief_cross": "Marbre Relief croisé", - "block.mineralogy.marble_relief_hammer": "Marbre Soulagement marteau", - "block.mineralogy.marble_relief_hoe": "Marbre Hoe Relief", - "block.mineralogy.marble_relief_horizontal": "Marbre Relief horizontal", - "block.mineralogy.marble_relief_i": "Marbre I Relief", - "block.mineralogy.marble_relief_left": "Marbre Relief gauche", - "block.mineralogy.marble_relief_pickaxe": "Marbre Relief de pioche", - "block.mineralogy.marble_relief_plus": "Marbre Plus de soulagement", - "block.mineralogy.marble_relief_right": "Marbre Bon soulagement", - "block.mineralogy.marble_relief_sword": "Marbre Soulagement de l'épée", - "block.mineralogy.marble_relief_vertical": "Marbre Relief vertical", - "block.mineralogy.slate_relief_axe": "Ardoise Soulagement de la hache", - "block.mineralogy.slate_relief_blank": "Ardoise Relief vide", - "block.mineralogy.slate_relief_cross": "Ardoise Relief croisé", - "block.mineralogy.slate_relief_hammer": "Ardoise Soulagement marteau", - "block.mineralogy.slate_relief_hoe": "Ardoise Hoe Relief", - "block.mineralogy.slate_relief_horizontal": "Ardoise Relief horizontal", - "block.mineralogy.slate_relief_i": "Ardoise I Relief", - "block.mineralogy.slate_relief_left": "Ardoise Relief gauche", - "block.mineralogy.slate_relief_pickaxe": "Ardoise Relief de pioche", - "block.mineralogy.slate_relief_plus": "Ardoise Plus de soulagement", - "block.mineralogy.slate_relief_right": "Ardoise Bon soulagement", - "block.mineralogy.slate_relief_sword": "Ardoise Soulagement de l'épée", - "block.mineralogy.slate_relief_vertical": "Ardoise Relief vertical", - "block.mineralogy.schist_relief_axe": "Schiste Soulagement de la hache", - "block.mineralogy.schist_relief_blank": "Schiste Relief vide", - "block.mineralogy.schist_relief_cross": "Schiste Relief croisé", - "block.mineralogy.schist_relief_hammer": "Schiste Soulagement marteau", - "block.mineralogy.schist_relief_hoe": "Schiste Hoe Relief", - "block.mineralogy.schist_relief_horizontal": "Schiste Relief horizontal", - "block.mineralogy.schist_relief_i": "Schiste I Relief", - "block.mineralogy.schist_relief_left": "Schiste Relief gauche", - "block.mineralogy.schist_relief_pickaxe": "Schiste Relief de pioche", - "block.mineralogy.schist_relief_plus": "Schiste Plus de soulagement", - "block.mineralogy.schist_relief_right": "Schiste Bon soulagement", - "block.mineralogy.schist_relief_sword": "Schiste Soulagement de l'épée", - "block.mineralogy.schist_relief_vertical": "Schiste Relief vertical", - "block.mineralogy.gneiss_relief_axe": "Gneiss Soulagement de la hache", - "block.mineralogy.gneiss_relief_blank": "Gneiss Relief vide", - "block.mineralogy.gneiss_relief_cross": "Gneiss Relief croisé", - "block.mineralogy.gneiss_relief_hammer": "Gneiss Soulagement marteau", - "block.mineralogy.gneiss_relief_hoe": "Gneiss Hoe Relief", - "block.mineralogy.gneiss_relief_horizontal": "Gneiss Relief horizontal", - "block.mineralogy.gneiss_relief_i": "Gneiss I Relief", - "block.mineralogy.gneiss_relief_left": "Gneiss Relief gauche", - "block.mineralogy.gneiss_relief_pickaxe": "Gneiss Relief de pioche", - "block.mineralogy.gneiss_relief_plus": "Gneiss Plus de soulagement", - "block.mineralogy.gneiss_relief_right": "Gneiss Bon soulagement", - "block.mineralogy.gneiss_relief_sword": "Gneiss Soulagement de l'épée", - "block.mineralogy.gneiss_relief_vertical": "Gneiss Relief vertical", - "block.mineralogy.phyllite_relief_axe": "Phyllite Soulagement de la hache", - "block.mineralogy.phyllite_relief_blank": "Phyllite Relief vide", - "block.mineralogy.phyllite_relief_cross": "Phyllite Relief croisé", - "block.mineralogy.phyllite_relief_hammer": "Phyllite Soulagement marteau", - "block.mineralogy.phyllite_relief_hoe": "Phyllite Hoe Relief", - "block.mineralogy.phyllite_relief_horizontal": "Phyllite Relief horizontal", - "block.mineralogy.phyllite_relief_i": "Phyllite I Relief", - "block.mineralogy.phyllite_relief_left": "Phyllite Relief gauche", - "block.mineralogy.phyllite_relief_pickaxe": "Phyllite Relief de pioche", - "block.mineralogy.phyllite_relief_plus": "Phyllite Plus de soulagement", - "block.mineralogy.phyllite_relief_right": "Phyllite Bon soulagement", - "block.mineralogy.phyllite_relief_sword": "Phyllite Soulagement de l'épée", - "block.mineralogy.phyllite_relief_vertical": "Phyllite Relief vertical", - "block.mineralogy.amphibolite_relief_axe": "Amphibolite Soulagement de la hache", - "block.mineralogy.amphibolite_relief_blank": "Amphibolite Relief vide", - "block.mineralogy.amphibolite_relief_cross": "Amphibolite Relief croisé", - "block.mineralogy.amphibolite_relief_hammer": "Amphibolite Soulagement marteau", - "block.mineralogy.amphibolite_relief_hoe": "Amphibolite Hoe Relief", - "block.mineralogy.amphibolite_relief_horizontal": "Amphibolite Relief horizontal", - "block.mineralogy.amphibolite_relief_i": "Amphibolite I Relief", - "block.mineralogy.amphibolite_relief_left": "Amphibolite Relief gauche", - "block.mineralogy.amphibolite_relief_pickaxe": "Amphibolite Relief de pioche", - "block.mineralogy.amphibolite_relief_plus": "Amphibolite Plus de soulagement", - "block.mineralogy.amphibolite_relief_right": "Amphibolite Bon soulagement", - "block.mineralogy.amphibolite_relief_sword": "Amphibolite Soulagement de l'épée", - "block.mineralogy.amphibolite_relief_vertical": "Amphibolite Relief vertical", - "block.mineralogy.diabase_relief_axe": "Diabase Soulagement de la hache", - "block.mineralogy.diabase_relief_blank": "Diabase Relief vide", - "block.mineralogy.diabase_relief_cross": "Diabase Relief croisé", - "block.mineralogy.diabase_relief_hammer": "Diabase Soulagement marteau", - "block.mineralogy.diabase_relief_hoe": "Diabase Hoe Relief", - "block.mineralogy.diabase_relief_horizontal": "Diabase Relief horizontal", - "block.mineralogy.diabase_relief_i": "Diabase I Relief", - "block.mineralogy.diabase_relief_left": "Diabase Relief gauche", - "block.mineralogy.diabase_relief_pickaxe": "Diabase Relief de pioche", - "block.mineralogy.diabase_relief_plus": "Diabase Plus de soulagement", - "block.mineralogy.diabase_relief_right": "Diabase Bon soulagement", - "block.mineralogy.diabase_relief_sword": "Diabase Soulagement de l'épée", - "block.mineralogy.diabase_relief_vertical": "Diabase Relief vertical", - "block.mineralogy.gabbro_relief_axe": "Gabbro Soulagement de la hache", - "block.mineralogy.gabbro_relief_blank": "Gabbro Relief vide", - "block.mineralogy.gabbro_relief_cross": "Gabbro Relief croisé", - "block.mineralogy.gabbro_relief_hammer": "Gabbro Soulagement marteau", - "block.mineralogy.gabbro_relief_hoe": "Gabbro Hoe Relief", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro Relief horizontal", - "block.mineralogy.gabbro_relief_i": "Gabbro I Relief", - "block.mineralogy.gabbro_relief_left": "Gabbro Relief gauche", - "block.mineralogy.gabbro_relief_pickaxe": "Gabbro Relief de pioche", - "block.mineralogy.gabbro_relief_plus": "Gabbro Plus de soulagement", - "block.mineralogy.gabbro_relief_right": "Gabbro Bon soulagement", - "block.mineralogy.gabbro_relief_sword": "Gabbro Soulagement de l'épée", - "block.mineralogy.gabbro_relief_vertical": "Gabbro Relief vertical", - "block.mineralogy.peridotite_relief_axe": "Péridotite Soulagement de la hache", - "block.mineralogy.peridotite_relief_blank": "Péridotite Relief vide", - "block.mineralogy.peridotite_relief_cross": "Péridotite Relief croisé", - "block.mineralogy.peridotite_relief_hammer": "Péridotite Soulagement marteau", - "block.mineralogy.peridotite_relief_hoe": "Péridotite Hoe Relief", - "block.mineralogy.peridotite_relief_horizontal": "Péridotite Relief horizontal", - "block.mineralogy.peridotite_relief_i": "Péridotite I Relief", - "block.mineralogy.peridotite_relief_left": "Péridotite Relief gauche", - "block.mineralogy.peridotite_relief_pickaxe": "Péridotite Relief de pioche", - "block.mineralogy.peridotite_relief_plus": "Péridotite Plus de soulagement", - "block.mineralogy.peridotite_relief_right": "Péridotite Bon soulagement", - "block.mineralogy.peridotite_relief_sword": "Péridotite Soulagement de l'épée", - "block.mineralogy.peridotite_relief_vertical": "Péridotite Relief vertical", - "block.mineralogy.basaltic_glass_relief_axe": "Verre basaltique Soulagement de la hache", - "block.mineralogy.basaltic_glass_relief_blank": "Verre basaltique Relief vide", - "block.mineralogy.basaltic_glass_relief_cross": "Verre basaltique Relief croisé", - "block.mineralogy.basaltic_glass_relief_hammer": "Verre basaltique Soulagement marteau", - "block.mineralogy.basaltic_glass_relief_hoe": "Verre basaltique Hoe Relief", - "block.mineralogy.basaltic_glass_relief_horizontal": "Verre basaltique Relief horizontal", - "block.mineralogy.basaltic_glass_relief_i": "Verre basaltique I Relief", - "block.mineralogy.basaltic_glass_relief_left": "Verre basaltique Relief gauche", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Verre basaltique Relief de pioche", - "block.mineralogy.basaltic_glass_relief_plus": "Verre basaltique Plus de soulagement", - "block.mineralogy.basaltic_glass_relief_right": "Verre basaltique Bon soulagement", - "block.mineralogy.basaltic_glass_relief_sword": "Verre basaltique Soulagement de l'épée", - "block.mineralogy.basaltic_glass_relief_vertical": "Verre basaltique Relief vertical", - "block.mineralogy.scoria_relief_axe": "Scories Soulagement de la hache", - "block.mineralogy.scoria_relief_blank": "Scories Relief vide", - "block.mineralogy.scoria_relief_cross": "Scories Relief croisé", - "block.mineralogy.scoria_relief_hammer": "Scories Soulagement marteau", - "block.mineralogy.scoria_relief_hoe": "Scories Hoe Relief", - "block.mineralogy.scoria_relief_horizontal": "Scories Relief horizontal", - "block.mineralogy.scoria_relief_i": "Scories I Relief", - "block.mineralogy.scoria_relief_left": "Scories Relief gauche", - "block.mineralogy.scoria_relief_pickaxe": "Scories Relief de pioche", - "block.mineralogy.scoria_relief_plus": "Scories Plus de soulagement", - "block.mineralogy.scoria_relief_right": "Scories Bon soulagement", - "block.mineralogy.scoria_relief_sword": "Scories Soulagement de l'épée", - "block.mineralogy.scoria_relief_vertical": "Scories Relief vertical", - "block.mineralogy.tuff_relief_axe": "Tuf Soulagement de la hache", - "block.mineralogy.tuff_relief_blank": "Tuf Relief vide", - "block.mineralogy.tuff_relief_cross": "Tuf Relief croisé", - "block.mineralogy.tuff_relief_hammer": "Tuf Soulagement marteau", - "block.mineralogy.tuff_relief_hoe": "Tuf Hoe Relief", - "block.mineralogy.tuff_relief_horizontal": "Tuf Relief horizontal", - "block.mineralogy.tuff_relief_i": "Tuf I Relief", - "block.mineralogy.tuff_relief_left": "Tuf Relief gauche", - "block.mineralogy.tuff_relief_pickaxe": "Tuf Relief de pioche", - "block.mineralogy.tuff_relief_plus": "Tuf Plus de soulagement", - "block.mineralogy.tuff_relief_right": "Tuf Bon soulagement", - "block.mineralogy.tuff_relief_sword": "Tuf Soulagement de l'épée", - "block.mineralogy.tuff_relief_vertical": "Tuf Relief vertical", - "block.mineralogy.siltstone_relief_axe": "Pierre de terre Soulagement de la hache", - "block.mineralogy.siltstone_relief_blank": "Pierre de terre Relief vide", - "block.mineralogy.siltstone_relief_cross": "Pierre de terre Relief croisé", - "block.mineralogy.siltstone_relief_hammer": "Pierre de terre Soulagement marteau", - "block.mineralogy.siltstone_relief_hoe": "Pierre de terre Hoe Relief", - "block.mineralogy.siltstone_relief_horizontal": "Pierre de terre Relief horizontal", - "block.mineralogy.siltstone_relief_i": "Pierre de terre I Relief", - "block.mineralogy.siltstone_relief_left": "Pierre de terre Relief gauche", - "block.mineralogy.siltstone_relief_pickaxe": "Pierre de terre Relief de pioche", - "block.mineralogy.siltstone_relief_plus": "Pierre de terre Plus de soulagement", - "block.mineralogy.siltstone_relief_right": "Pierre de terre Bon soulagement", - "block.mineralogy.siltstone_relief_sword": "Pierre de terre Soulagement de l'épée", - "block.mineralogy.siltstone_relief_vertical": "Pierre de terre Relief vertical", - "block.mineralogy.rock_salt_relief_axe": "Sel gemme Soulagement de la hache", - "block.mineralogy.rock_salt_relief_blank": "Sel gemme Relief vide", - "block.mineralogy.rock_salt_relief_cross": "Sel gemme Relief croisé", - "block.mineralogy.rock_salt_relief_hammer": "Sel gemme Soulagement marteau", - "block.mineralogy.rock_salt_relief_hoe": "Sel gemme Hoe Relief", - "block.mineralogy.rock_salt_relief_horizontal": "Sel gemme Relief horizontal", - "block.mineralogy.rock_salt_relief_i": "Sel gemme I Relief", - "block.mineralogy.rock_salt_relief_left": "Sel gemme Relief gauche", - "block.mineralogy.rock_salt_relief_pickaxe": "Sel gemme Relief de pioche", - "block.mineralogy.rock_salt_relief_plus": "Sel gemme Plus de soulagement", - "block.mineralogy.rock_salt_relief_right": "Sel gemme Bon soulagement", - "block.mineralogy.rock_salt_relief_sword": "Sel gemme Soulagement de l'épée", - "block.mineralogy.rock_salt_relief_vertical": "Sel gemme Relief vertical", - "block.mineralogy.hornfels_relief_axe": "Hornfels Soulagement de la hache", - "block.mineralogy.hornfels_relief_blank": "Hornfels Relief vide", - "block.mineralogy.hornfels_relief_cross": "Hornfels Relief croisé", - "block.mineralogy.hornfels_relief_hammer": "Hornfels Soulagement marteau", - "block.mineralogy.hornfels_relief_hoe": "Hornfels Hoe Relief", - "block.mineralogy.hornfels_relief_horizontal": "Hornfels Relief horizontal", - "block.mineralogy.hornfels_relief_i": "Hornfels I Relief", - "block.mineralogy.hornfels_relief_left": "Hornfels Relief gauche", - "block.mineralogy.hornfels_relief_pickaxe": "Hornfels Relief de pioche", - "block.mineralogy.hornfels_relief_plus": "Hornfels Plus de soulagement", - "block.mineralogy.hornfels_relief_right": "Hornfels Bon soulagement", - "block.mineralogy.hornfels_relief_sword": "Hornfels Soulagement de l'épée", - "block.mineralogy.hornfels_relief_vertical": "Hornfels Relief vertical", - "block.mineralogy.quartzite_relief_axe": "Quartzite Soulagement de la hache", - "block.mineralogy.quartzite_relief_blank": "Quartzite Relief vide", - "block.mineralogy.quartzite_relief_cross": "Quartzite Relief croisé", - "block.mineralogy.quartzite_relief_hammer": "Quartzite Soulagement marteau", - "block.mineralogy.quartzite_relief_hoe": "Quartzite Hoe Relief", - "block.mineralogy.quartzite_relief_horizontal": "Quartzite Relief horizontal", - "block.mineralogy.quartzite_relief_i": "Quartzite I Relief", - "block.mineralogy.quartzite_relief_left": "Quartzite Relief gauche", - "block.mineralogy.quartzite_relief_pickaxe": "Quartzite Relief de pioche", - "block.mineralogy.quartzite_relief_plus": "Quartzite Plus de soulagement", - "block.mineralogy.quartzite_relief_right": "Quartzite Bon soulagement", - "block.mineralogy.quartzite_relief_sword": "Quartzite Soulagement de l'épée", - "block.mineralogy.quartzite_relief_vertical": "Quartzite Relief vertical", - "block.mineralogy.novaculite_relief_axe": "Novaculite Soulagement de la hache", - "block.mineralogy.novaculite_relief_blank": "Novaculite Relief vide", - "block.mineralogy.novaculite_relief_cross": "Novaculite Relief croisé", - "block.mineralogy.novaculite_relief_hammer": "Novaculite Soulagement marteau", - "block.mineralogy.novaculite_relief_hoe": "Novaculite Hoe Relief", - "block.mineralogy.novaculite_relief_horizontal": "Novaculite Relief horizontal", - "block.mineralogy.novaculite_relief_i": "Novaculite I Relief", - "block.mineralogy.novaculite_relief_left": "Novaculite Relief gauche", - "block.mineralogy.novaculite_relief_pickaxe": "Novaculite Relief de pioche", - "block.mineralogy.novaculite_relief_plus": "Novaculite Plus de soulagement", - "block.mineralogy.novaculite_relief_right": "Novaculite Bon soulagement", - "block.mineralogy.novaculite_relief_sword": "Novaculite Soulagement de l'épée", - "block.mineralogy.novaculite_relief_vertical": "Novaculite Relief vertical", - "advancements.mineralogy.all_the_rocks.title": "Appelez les rochers Ludo !", - "advancements.mineralogy.all_the_rocks.description": "Wow, vous avez trouvé tous les types de roches standards en minéralogie !", - "fluid.mineralogy.crude_oil": "Pétrole brut", - "block.mineralogy.crude_oil": "Pétrole brut", - "item.mineralogy.crude_oil_bucket": "Seau de pétrole brut", + "block.mineralogy.rocksaltlamp": "Lampe en sel gemme", + "block.mineralogy.rocksaltstreetlamp": "Réverbère en sel gemme", + "block.mineralogy.andesite_relief_axe": "Bas-relief en Andésite (hache)", + "block.mineralogy.andesite_relief_blank": "Bas-relief en Andésite (sans motif)", + "block.mineralogy.andesite_relief_cross": "Bas-relief en Andésite (croix)", + "block.mineralogy.andesite_relief_hammer": "Bas-relief en Andésite (marteau)", + "block.mineralogy.andesite_relief_hoe": "Bas-relief en Andésite (houe)", + "block.mineralogy.andesite_relief_horizontal": "Bas-relief en Andésite (horizontal)", + "block.mineralogy.andesite_relief_i": "Bas-relief en Andésite (I)", + "block.mineralogy.andesite_relief_left": "Bas-relief en Andésite (gauche)", + "block.mineralogy.andesite_relief_pickaxe": "Bas-relief en Andésite (pioche)", + "block.mineralogy.andesite_relief_plus": "Bas-relief en Andésite (signe plus)", + "block.mineralogy.andesite_relief_right": "Bas-relief en Andésite (droite)", + "block.mineralogy.andesite_relief_sword": "Bas-relief en Andésite (épée)", + "block.mineralogy.andesite_relief_vertical": "Bas-relief en Andésite (vertical)", + "block.mineralogy.basalt_relief_axe": "Bas-relief en Basalte (hache)", + "block.mineralogy.basalt_relief_blank": "Bas-relief en Basalte (sans motif)", + "block.mineralogy.basalt_relief_cross": "Bas-relief en Basalte (croix)", + "block.mineralogy.basalt_relief_hammer": "Bas-relief en Basalte (marteau)", + "block.mineralogy.basalt_relief_hoe": "Bas-relief en Basalte (houe)", + "block.mineralogy.basalt_relief_horizontal": "Bas-relief en Basalte (horizontal)", + "block.mineralogy.basalt_relief_i": "Bas-relief en Basalte (I)", + "block.mineralogy.basalt_relief_left": "Bas-relief en Basalte (gauche)", + "block.mineralogy.basalt_relief_pickaxe": "Bas-relief en Basalte (pioche)", + "block.mineralogy.basalt_relief_plus": "Bas-relief en Basalte (signe plus)", + "block.mineralogy.basalt_relief_right": "Bas-relief en Basalte (droite)", + "block.mineralogy.basalt_relief_sword": "Bas-relief en Basalte (épée)", + "block.mineralogy.basalt_relief_vertical": "Bas-relief en Basalte (vertical)", + "block.mineralogy.diorite_relief_axe": "Bas-relief en Diorite (hache)", + "block.mineralogy.diorite_relief_blank": "Bas-relief en Diorite (sans motif)", + "block.mineralogy.diorite_relief_cross": "Bas-relief en Diorite (croix)", + "block.mineralogy.diorite_relief_hammer": "Bas-relief en Diorite (marteau)", + "block.mineralogy.diorite_relief_hoe": "Bas-relief en Diorite (houe)", + "block.mineralogy.diorite_relief_horizontal": "Bas-relief en Diorite (horizontal)", + "block.mineralogy.diorite_relief_i": "Bas-relief en Diorite (I)", + "block.mineralogy.diorite_relief_left": "Bas-relief en Diorite (gauche)", + "block.mineralogy.diorite_relief_pickaxe": "Bas-relief en Diorite (pioche)", + "block.mineralogy.diorite_relief_plus": "Bas-relief en Diorite (signe plus)", + "block.mineralogy.diorite_relief_right": "Bas-relief en Diorite (droite)", + "block.mineralogy.diorite_relief_sword": "Bas-relief en Diorite (épée)", + "block.mineralogy.diorite_relief_vertical": "Bas-relief en Diorite (vertical)", + "block.mineralogy.granite_relief_axe": "Bas-relief en Granite (hache)", + "block.mineralogy.granite_relief_blank": "Bas-relief en Granite (sans motif)", + "block.mineralogy.granite_relief_cross": "Bas-relief en Granite (croix)", + "block.mineralogy.granite_relief_hammer": "Bas-relief en Granite (marteau)", + "block.mineralogy.granite_relief_hoe": "Bas-relief en Granite (houe)", + "block.mineralogy.granite_relief_horizontal": "Bas-relief en Granite (horizontal)", + "block.mineralogy.granite_relief_i": "Bas-relief en Granite (I)", + "block.mineralogy.granite_relief_left": "Bas-relief en Granite (gauche)", + "block.mineralogy.granite_relief_pickaxe": "Bas-relief en Granite (pioche)", + "block.mineralogy.granite_relief_plus": "Bas-relief en Granite (signe plus)", + "block.mineralogy.granite_relief_right": "Bas-relief en Granite (droite)", + "block.mineralogy.granite_relief_sword": "Bas-relief en Granite (épée)", + "block.mineralogy.granite_relief_vertical": "Bas-relief en Granite (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Bas-relief en Rhyolite (hache)", + "block.mineralogy.rhyolite_relief_blank": "Bas-relief en Rhyolite (sans motif)", + "block.mineralogy.rhyolite_relief_cross": "Bas-relief en Rhyolite (croix)", + "block.mineralogy.rhyolite_relief_hammer": "Bas-relief en Rhyolite (marteau)", + "block.mineralogy.rhyolite_relief_hoe": "Bas-relief en Rhyolite (houe)", + "block.mineralogy.rhyolite_relief_horizontal": "Bas-relief en Rhyolite (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Bas-relief en Rhyolite (I)", + "block.mineralogy.rhyolite_relief_left": "Bas-relief en Rhyolite (gauche)", + "block.mineralogy.rhyolite_relief_pickaxe": "Bas-relief en Rhyolite (pioche)", + "block.mineralogy.rhyolite_relief_plus": "Bas-relief en Rhyolite (signe plus)", + "block.mineralogy.rhyolite_relief_right": "Bas-relief en Rhyolite (droite)", + "block.mineralogy.rhyolite_relief_sword": "Bas-relief en Rhyolite (épée)", + "block.mineralogy.rhyolite_relief_vertical": "Bas-relief en Rhyolite (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Bas-relief en Pegmatite (hache)", + "block.mineralogy.pegmatite_relief_blank": "Bas-relief en Pegmatite (sans motif)", + "block.mineralogy.pegmatite_relief_cross": "Bas-relief en Pegmatite (croix)", + "block.mineralogy.pegmatite_relief_hammer": "Bas-relief en Pegmatite (marteau)", + "block.mineralogy.pegmatite_relief_hoe": "Bas-relief en Pegmatite (houe)", + "block.mineralogy.pegmatite_relief_horizontal": "Bas-relief en Pegmatite (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Bas-relief en Pegmatite (I)", + "block.mineralogy.pegmatite_relief_left": "Bas-relief en Pegmatite (gauche)", + "block.mineralogy.pegmatite_relief_pickaxe": "Bas-relief en Pegmatite (pioche)", + "block.mineralogy.pegmatite_relief_plus": "Bas-relief en Pegmatite (signe plus)", + "block.mineralogy.pegmatite_relief_right": "Bas-relief en Pegmatite (droite)", + "block.mineralogy.pegmatite_relief_sword": "Bas-relief en Pegmatite (épée)", + "block.mineralogy.pegmatite_relief_vertical": "Bas-relief en Pegmatite (vertical)", + "block.mineralogy.shale_relief_axe": "Bas-relief en Schiste argileux (hache)", + "block.mineralogy.shale_relief_blank": "Bas-relief en Schiste argileux (sans motif)", + "block.mineralogy.shale_relief_cross": "Bas-relief en Schiste argileux (croix)", + "block.mineralogy.shale_relief_hammer": "Bas-relief en Schiste argileux (marteau)", + "block.mineralogy.shale_relief_hoe": "Bas-relief en Schiste argileux (houe)", + "block.mineralogy.shale_relief_horizontal": "Bas-relief en Schiste argileux (horizontal)", + "block.mineralogy.shale_relief_i": "Bas-relief en Schiste argileux (I)", + "block.mineralogy.shale_relief_left": "Bas-relief en Schiste argileux (gauche)", + "block.mineralogy.shale_relief_pickaxe": "Bas-relief en Schiste argileux (pioche)", + "block.mineralogy.shale_relief_plus": "Bas-relief en Schiste argileux (signe plus)", + "block.mineralogy.shale_relief_right": "Bas-relief en Schiste argileux (droite)", + "block.mineralogy.shale_relief_sword": "Bas-relief en Schiste argileux (épée)", + "block.mineralogy.shale_relief_vertical": "Bas-relief en Schiste argileux (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Bas-relief en Conglomérat (hache)", + "block.mineralogy.conglomerate_relief_blank": "Bas-relief en Conglomérat (sans motif)", + "block.mineralogy.conglomerate_relief_cross": "Bas-relief en Conglomérat (croix)", + "block.mineralogy.conglomerate_relief_hammer": "Bas-relief en Conglomérat (marteau)", + "block.mineralogy.conglomerate_relief_hoe": "Bas-relief en Conglomérat (houe)", + "block.mineralogy.conglomerate_relief_horizontal": "Bas-relief en Conglomérat (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Bas-relief en Conglomérat (I)", + "block.mineralogy.conglomerate_relief_left": "Bas-relief en Conglomérat (gauche)", + "block.mineralogy.conglomerate_relief_pickaxe": "Bas-relief en Conglomérat (pioche)", + "block.mineralogy.conglomerate_relief_plus": "Bas-relief en Conglomérat (signe plus)", + "block.mineralogy.conglomerate_relief_right": "Bas-relief en Conglomérat (droite)", + "block.mineralogy.conglomerate_relief_sword": "Bas-relief en Conglomérat (épée)", + "block.mineralogy.conglomerate_relief_vertical": "Bas-relief en Conglomérat (vertical)", + "block.mineralogy.dolomite_relief_axe": "Bas-relief en Dolomie (hache)", + "block.mineralogy.dolomite_relief_blank": "Bas-relief en Dolomie (sans motif)", + "block.mineralogy.dolomite_relief_cross": "Bas-relief en Dolomie (croix)", + "block.mineralogy.dolomite_relief_hammer": "Bas-relief en Dolomie (marteau)", + "block.mineralogy.dolomite_relief_hoe": "Bas-relief en Dolomie (houe)", + "block.mineralogy.dolomite_relief_horizontal": "Bas-relief en Dolomie (horizontal)", + "block.mineralogy.dolomite_relief_i": "Bas-relief en Dolomie (I)", + "block.mineralogy.dolomite_relief_left": "Bas-relief en Dolomie (gauche)", + "block.mineralogy.dolomite_relief_pickaxe": "Bas-relief en Dolomie (pioche)", + "block.mineralogy.dolomite_relief_plus": "Bas-relief en Dolomie (signe plus)", + "block.mineralogy.dolomite_relief_right": "Bas-relief en Dolomie (droite)", + "block.mineralogy.dolomite_relief_sword": "Bas-relief en Dolomie (épée)", + "block.mineralogy.dolomite_relief_vertical": "Bas-relief en Dolomie (vertical)", + "block.mineralogy.limestone_relief_axe": "Bas-relief en Calcaire (hache)", + "block.mineralogy.limestone_relief_blank": "Bas-relief en Calcaire (sans motif)", + "block.mineralogy.limestone_relief_cross": "Bas-relief en Calcaire (croix)", + "block.mineralogy.limestone_relief_hammer": "Bas-relief en Calcaire (marteau)", + "block.mineralogy.limestone_relief_hoe": "Bas-relief en Calcaire (houe)", + "block.mineralogy.limestone_relief_horizontal": "Bas-relief en Calcaire (horizontal)", + "block.mineralogy.limestone_relief_i": "Bas-relief en Calcaire (I)", + "block.mineralogy.limestone_relief_left": "Bas-relief en Calcaire (gauche)", + "block.mineralogy.limestone_relief_pickaxe": "Bas-relief en Calcaire (pioche)", + "block.mineralogy.limestone_relief_plus": "Bas-relief en Calcaire (signe plus)", + "block.mineralogy.limestone_relief_right": "Bas-relief en Calcaire (droite)", + "block.mineralogy.limestone_relief_sword": "Bas-relief en Calcaire (épée)", + "block.mineralogy.limestone_relief_vertical": "Bas-relief en Calcaire (vertical)", + "block.mineralogy.marble_relief_axe": "Bas-relief en Marbre (hache)", + "block.mineralogy.marble_relief_blank": "Bas-relief en Marbre (sans motif)", + "block.mineralogy.marble_relief_cross": "Bas-relief en Marbre (croix)", + "block.mineralogy.marble_relief_hammer": "Bas-relief en Marbre (marteau)", + "block.mineralogy.marble_relief_hoe": "Bas-relief en Marbre (houe)", + "block.mineralogy.marble_relief_horizontal": "Bas-relief en Marbre (horizontal)", + "block.mineralogy.marble_relief_i": "Bas-relief en Marbre (I)", + "block.mineralogy.marble_relief_left": "Bas-relief en Marbre (gauche)", + "block.mineralogy.marble_relief_pickaxe": "Bas-relief en Marbre (pioche)", + "block.mineralogy.marble_relief_plus": "Bas-relief en Marbre (signe plus)", + "block.mineralogy.marble_relief_right": "Bas-relief en Marbre (droite)", + "block.mineralogy.marble_relief_sword": "Bas-relief en Marbre (épée)", + "block.mineralogy.marble_relief_vertical": "Bas-relief en Marbre (vertical)", + "block.mineralogy.slate_relief_axe": "Bas-relief en Ardoise (hache)", + "block.mineralogy.slate_relief_blank": "Bas-relief en Ardoise (sans motif)", + "block.mineralogy.slate_relief_cross": "Bas-relief en Ardoise (croix)", + "block.mineralogy.slate_relief_hammer": "Bas-relief en Ardoise (marteau)", + "block.mineralogy.slate_relief_hoe": "Bas-relief en Ardoise (houe)", + "block.mineralogy.slate_relief_horizontal": "Bas-relief en Ardoise (horizontal)", + "block.mineralogy.slate_relief_i": "Bas-relief en Ardoise (I)", + "block.mineralogy.slate_relief_left": "Bas-relief en Ardoise (gauche)", + "block.mineralogy.slate_relief_pickaxe": "Bas-relief en Ardoise (pioche)", + "block.mineralogy.slate_relief_plus": "Bas-relief en Ardoise (signe plus)", + "block.mineralogy.slate_relief_right": "Bas-relief en Ardoise (droite)", + "block.mineralogy.slate_relief_sword": "Bas-relief en Ardoise (épée)", + "block.mineralogy.slate_relief_vertical": "Bas-relief en Ardoise (vertical)", + "block.mineralogy.schist_relief_axe": "Bas-relief en Micaschiste (hache)", + "block.mineralogy.schist_relief_blank": "Bas-relief en Micaschiste (sans motif)", + "block.mineralogy.schist_relief_cross": "Bas-relief en Micaschiste (croix)", + "block.mineralogy.schist_relief_hammer": "Bas-relief en Micaschiste (marteau)", + "block.mineralogy.schist_relief_hoe": "Bas-relief en Micaschiste (houe)", + "block.mineralogy.schist_relief_horizontal": "Bas-relief en Micaschiste (horizontal)", + "block.mineralogy.schist_relief_i": "Bas-relief en Micaschiste (I)", + "block.mineralogy.schist_relief_left": "Bas-relief en Micaschiste (gauche)", + "block.mineralogy.schist_relief_pickaxe": "Bas-relief en Micaschiste (pioche)", + "block.mineralogy.schist_relief_plus": "Bas-relief en Micaschiste (signe plus)", + "block.mineralogy.schist_relief_right": "Bas-relief en Micaschiste (droite)", + "block.mineralogy.schist_relief_sword": "Bas-relief en Micaschiste (épée)", + "block.mineralogy.schist_relief_vertical": "Bas-relief en Micaschiste (vertical)", + "block.mineralogy.gneiss_relief_axe": "Bas-relief en Gneiss (hache)", + "block.mineralogy.gneiss_relief_blank": "Bas-relief en Gneiss (sans motif)", + "block.mineralogy.gneiss_relief_cross": "Bas-relief en Gneiss (croix)", + "block.mineralogy.gneiss_relief_hammer": "Bas-relief en Gneiss (marteau)", + "block.mineralogy.gneiss_relief_hoe": "Bas-relief en Gneiss (houe)", + "block.mineralogy.gneiss_relief_horizontal": "Bas-relief en Gneiss (horizontal)", + "block.mineralogy.gneiss_relief_i": "Bas-relief en Gneiss (I)", + "block.mineralogy.gneiss_relief_left": "Bas-relief en Gneiss (gauche)", + "block.mineralogy.gneiss_relief_pickaxe": "Bas-relief en Gneiss (pioche)", + "block.mineralogy.gneiss_relief_plus": "Bas-relief en Gneiss (signe plus)", + "block.mineralogy.gneiss_relief_right": "Bas-relief en Gneiss (droite)", + "block.mineralogy.gneiss_relief_sword": "Bas-relief en Gneiss (épée)", + "block.mineralogy.gneiss_relief_vertical": "Bas-relief en Gneiss (vertical)", + "block.mineralogy.phyllite_relief_axe": "Bas-relief en Phyllade (hache)", + "block.mineralogy.phyllite_relief_blank": "Bas-relief en Phyllade (sans motif)", + "block.mineralogy.phyllite_relief_cross": "Bas-relief en Phyllade (croix)", + "block.mineralogy.phyllite_relief_hammer": "Bas-relief en Phyllade (marteau)", + "block.mineralogy.phyllite_relief_hoe": "Bas-relief en Phyllade (houe)", + "block.mineralogy.phyllite_relief_horizontal": "Bas-relief en Phyllade (horizontal)", + "block.mineralogy.phyllite_relief_i": "Bas-relief en Phyllade (I)", + "block.mineralogy.phyllite_relief_left": "Bas-relief en Phyllade (gauche)", + "block.mineralogy.phyllite_relief_pickaxe": "Bas-relief en Phyllade (pioche)", + "block.mineralogy.phyllite_relief_plus": "Bas-relief en Phyllade (signe plus)", + "block.mineralogy.phyllite_relief_right": "Bas-relief en Phyllade (droite)", + "block.mineralogy.phyllite_relief_sword": "Bas-relief en Phyllade (épée)", + "block.mineralogy.phyllite_relief_vertical": "Bas-relief en Phyllade (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Bas-relief en Amphibolite (hache)", + "block.mineralogy.amphibolite_relief_blank": "Bas-relief en Amphibolite (sans motif)", + "block.mineralogy.amphibolite_relief_cross": "Bas-relief en Amphibolite (croix)", + "block.mineralogy.amphibolite_relief_hammer": "Bas-relief en Amphibolite (marteau)", + "block.mineralogy.amphibolite_relief_hoe": "Bas-relief en Amphibolite (houe)", + "block.mineralogy.amphibolite_relief_horizontal": "Bas-relief en Amphibolite (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Bas-relief en Amphibolite (I)", + "block.mineralogy.amphibolite_relief_left": "Bas-relief en Amphibolite (gauche)", + "block.mineralogy.amphibolite_relief_pickaxe": "Bas-relief en Amphibolite (pioche)", + "block.mineralogy.amphibolite_relief_plus": "Bas-relief en Amphibolite (signe plus)", + "block.mineralogy.amphibolite_relief_right": "Bas-relief en Amphibolite (droite)", + "block.mineralogy.amphibolite_relief_sword": "Bas-relief en Amphibolite (épée)", + "block.mineralogy.amphibolite_relief_vertical": "Bas-relief en Amphibolite (vertical)", + "block.mineralogy.diabase_relief_axe": "Bas-relief en Diabase (hache)", + "block.mineralogy.diabase_relief_blank": "Bas-relief en Diabase (sans motif)", + "block.mineralogy.diabase_relief_cross": "Bas-relief en Diabase (croix)", + "block.mineralogy.diabase_relief_hammer": "Bas-relief en Diabase (marteau)", + "block.mineralogy.diabase_relief_hoe": "Bas-relief en Diabase (houe)", + "block.mineralogy.diabase_relief_horizontal": "Bas-relief en Diabase (horizontal)", + "block.mineralogy.diabase_relief_i": "Bas-relief en Diabase (I)", + "block.mineralogy.diabase_relief_left": "Bas-relief en Diabase (gauche)", + "block.mineralogy.diabase_relief_pickaxe": "Bas-relief en Diabase (pioche)", + "block.mineralogy.diabase_relief_plus": "Bas-relief en Diabase (signe plus)", + "block.mineralogy.diabase_relief_right": "Bas-relief en Diabase (droite)", + "block.mineralogy.diabase_relief_sword": "Bas-relief en Diabase (épée)", + "block.mineralogy.diabase_relief_vertical": "Bas-relief en Diabase (vertical)", + "block.mineralogy.gabbro_relief_axe": "Bas-relief en Gabbro (hache)", + "block.mineralogy.gabbro_relief_blank": "Bas-relief en Gabbro (sans motif)", + "block.mineralogy.gabbro_relief_cross": "Bas-relief en Gabbro (croix)", + "block.mineralogy.gabbro_relief_hammer": "Bas-relief en Gabbro (marteau)", + "block.mineralogy.gabbro_relief_hoe": "Bas-relief en Gabbro (houe)", + "block.mineralogy.gabbro_relief_horizontal": "Bas-relief en Gabbro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Bas-relief en Gabbro (I)", + "block.mineralogy.gabbro_relief_left": "Bas-relief en Gabbro (gauche)", + "block.mineralogy.gabbro_relief_pickaxe": "Bas-relief en Gabbro (pioche)", + "block.mineralogy.gabbro_relief_plus": "Bas-relief en Gabbro (signe plus)", + "block.mineralogy.gabbro_relief_right": "Bas-relief en Gabbro (droite)", + "block.mineralogy.gabbro_relief_sword": "Bas-relief en Gabbro (épée)", + "block.mineralogy.gabbro_relief_vertical": "Bas-relief en Gabbro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Bas-relief en Péridotite (hache)", + "block.mineralogy.peridotite_relief_blank": "Bas-relief en Péridotite (sans motif)", + "block.mineralogy.peridotite_relief_cross": "Bas-relief en Péridotite (croix)", + "block.mineralogy.peridotite_relief_hammer": "Bas-relief en Péridotite (marteau)", + "block.mineralogy.peridotite_relief_hoe": "Bas-relief en Péridotite (houe)", + "block.mineralogy.peridotite_relief_horizontal": "Bas-relief en Péridotite (horizontal)", + "block.mineralogy.peridotite_relief_i": "Bas-relief en Péridotite (I)", + "block.mineralogy.peridotite_relief_left": "Bas-relief en Péridotite (gauche)", + "block.mineralogy.peridotite_relief_pickaxe": "Bas-relief en Péridotite (pioche)", + "block.mineralogy.peridotite_relief_plus": "Bas-relief en Péridotite (signe plus)", + "block.mineralogy.peridotite_relief_right": "Bas-relief en Péridotite (droite)", + "block.mineralogy.peridotite_relief_sword": "Bas-relief en Péridotite (épée)", + "block.mineralogy.peridotite_relief_vertical": "Bas-relief en Péridotite (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Bas-relief en Verre basaltique (hache)", + "block.mineralogy.basaltic_glass_relief_blank": "Bas-relief en Verre basaltique (sans motif)", + "block.mineralogy.basaltic_glass_relief_cross": "Bas-relief en Verre basaltique (croix)", + "block.mineralogy.basaltic_glass_relief_hammer": "Bas-relief en Verre basaltique (marteau)", + "block.mineralogy.basaltic_glass_relief_hoe": "Bas-relief en Verre basaltique (houe)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Bas-relief en Verre basaltique (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Bas-relief en Verre basaltique (I)", + "block.mineralogy.basaltic_glass_relief_left": "Bas-relief en Verre basaltique (gauche)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Bas-relief en Verre basaltique (pioche)", + "block.mineralogy.basaltic_glass_relief_plus": "Bas-relief en Verre basaltique (signe plus)", + "block.mineralogy.basaltic_glass_relief_right": "Bas-relief en Verre basaltique (droite)", + "block.mineralogy.basaltic_glass_relief_sword": "Bas-relief en Verre basaltique (épée)", + "block.mineralogy.basaltic_glass_relief_vertical": "Bas-relief en Verre basaltique (vertical)", + "block.mineralogy.scoria_relief_axe": "Bas-relief en Scorie (hache)", + "block.mineralogy.scoria_relief_blank": "Bas-relief en Scorie (sans motif)", + "block.mineralogy.scoria_relief_cross": "Bas-relief en Scorie (croix)", + "block.mineralogy.scoria_relief_hammer": "Bas-relief en Scorie (marteau)", + "block.mineralogy.scoria_relief_hoe": "Bas-relief en Scorie (houe)", + "block.mineralogy.scoria_relief_horizontal": "Bas-relief en Scorie (horizontal)", + "block.mineralogy.scoria_relief_i": "Bas-relief en Scorie (I)", + "block.mineralogy.scoria_relief_left": "Bas-relief en Scorie (gauche)", + "block.mineralogy.scoria_relief_pickaxe": "Bas-relief en Scorie (pioche)", + "block.mineralogy.scoria_relief_plus": "Bas-relief en Scorie (signe plus)", + "block.mineralogy.scoria_relief_right": "Bas-relief en Scorie (droite)", + "block.mineralogy.scoria_relief_sword": "Bas-relief en Scorie (épée)", + "block.mineralogy.scoria_relief_vertical": "Bas-relief en Scorie (vertical)", + "block.mineralogy.tuff_relief_axe": "Bas-relief en Tuf (hache)", + "block.mineralogy.tuff_relief_blank": "Bas-relief en Tuf (sans motif)", + "block.mineralogy.tuff_relief_cross": "Bas-relief en Tuf (croix)", + "block.mineralogy.tuff_relief_hammer": "Bas-relief en Tuf (marteau)", + "block.mineralogy.tuff_relief_hoe": "Bas-relief en Tuf (houe)", + "block.mineralogy.tuff_relief_horizontal": "Bas-relief en Tuf (horizontal)", + "block.mineralogy.tuff_relief_i": "Bas-relief en Tuf (I)", + "block.mineralogy.tuff_relief_left": "Bas-relief en Tuf (gauche)", + "block.mineralogy.tuff_relief_pickaxe": "Bas-relief en Tuf (pioche)", + "block.mineralogy.tuff_relief_plus": "Bas-relief en Tuf (signe plus)", + "block.mineralogy.tuff_relief_right": "Bas-relief en Tuf (droite)", + "block.mineralogy.tuff_relief_sword": "Bas-relief en Tuf (épée)", + "block.mineralogy.tuff_relief_vertical": "Bas-relief en Tuf (vertical)", + "block.mineralogy.siltstone_relief_axe": "Bas-relief en Siltite (hache)", + "block.mineralogy.siltstone_relief_blank": "Bas-relief en Siltite (sans motif)", + "block.mineralogy.siltstone_relief_cross": "Bas-relief en Siltite (croix)", + "block.mineralogy.siltstone_relief_hammer": "Bas-relief en Siltite (marteau)", + "block.mineralogy.siltstone_relief_hoe": "Bas-relief en Siltite (houe)", + "block.mineralogy.siltstone_relief_horizontal": "Bas-relief en Siltite (horizontal)", + "block.mineralogy.siltstone_relief_i": "Bas-relief en Siltite (I)", + "block.mineralogy.siltstone_relief_left": "Bas-relief en Siltite (gauche)", + "block.mineralogy.siltstone_relief_pickaxe": "Bas-relief en Siltite (pioche)", + "block.mineralogy.siltstone_relief_plus": "Bas-relief en Siltite (signe plus)", + "block.mineralogy.siltstone_relief_right": "Bas-relief en Siltite (droite)", + "block.mineralogy.siltstone_relief_sword": "Bas-relief en Siltite (épée)", + "block.mineralogy.siltstone_relief_vertical": "Bas-relief en Siltite (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Bas-relief en Sel gemme (hache)", + "block.mineralogy.rock_salt_relief_blank": "Bas-relief en Sel gemme (sans motif)", + "block.mineralogy.rock_salt_relief_cross": "Bas-relief en Sel gemme (croix)", + "block.mineralogy.rock_salt_relief_hammer": "Bas-relief en Sel gemme (marteau)", + "block.mineralogy.rock_salt_relief_hoe": "Bas-relief en Sel gemme (houe)", + "block.mineralogy.rock_salt_relief_horizontal": "Bas-relief en Sel gemme (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Bas-relief en Sel gemme (I)", + "block.mineralogy.rock_salt_relief_left": "Bas-relief en Sel gemme (gauche)", + "block.mineralogy.rock_salt_relief_pickaxe": "Bas-relief en Sel gemme (pioche)", + "block.mineralogy.rock_salt_relief_plus": "Bas-relief en Sel gemme (signe plus)", + "block.mineralogy.rock_salt_relief_right": "Bas-relief en Sel gemme (droite)", + "block.mineralogy.rock_salt_relief_sword": "Bas-relief en Sel gemme (épée)", + "block.mineralogy.rock_salt_relief_vertical": "Bas-relief en Sel gemme (vertical)", + "block.mineralogy.hornfels_relief_axe": "Bas-relief en Cornéenne (hache)", + "block.mineralogy.hornfels_relief_blank": "Bas-relief en Cornéenne (sans motif)", + "block.mineralogy.hornfels_relief_cross": "Bas-relief en Cornéenne (croix)", + "block.mineralogy.hornfels_relief_hammer": "Bas-relief en Cornéenne (marteau)", + "block.mineralogy.hornfels_relief_hoe": "Bas-relief en Cornéenne (houe)", + "block.mineralogy.hornfels_relief_horizontal": "Bas-relief en Cornéenne (horizontal)", + "block.mineralogy.hornfels_relief_i": "Bas-relief en Cornéenne (I)", + "block.mineralogy.hornfels_relief_left": "Bas-relief en Cornéenne (gauche)", + "block.mineralogy.hornfels_relief_pickaxe": "Bas-relief en Cornéenne (pioche)", + "block.mineralogy.hornfels_relief_plus": "Bas-relief en Cornéenne (signe plus)", + "block.mineralogy.hornfels_relief_right": "Bas-relief en Cornéenne (droite)", + "block.mineralogy.hornfels_relief_sword": "Bas-relief en Cornéenne (épée)", + "block.mineralogy.hornfels_relief_vertical": "Bas-relief en Cornéenne (vertical)", + "block.mineralogy.quartzite_relief_axe": "Bas-relief en Quartzite (hache)", + "block.mineralogy.quartzite_relief_blank": "Bas-relief en Quartzite (sans motif)", + "block.mineralogy.quartzite_relief_cross": "Bas-relief en Quartzite (croix)", + "block.mineralogy.quartzite_relief_hammer": "Bas-relief en Quartzite (marteau)", + "block.mineralogy.quartzite_relief_hoe": "Bas-relief en Quartzite (houe)", + "block.mineralogy.quartzite_relief_horizontal": "Bas-relief en Quartzite (horizontal)", + "block.mineralogy.quartzite_relief_i": "Bas-relief en Quartzite (I)", + "block.mineralogy.quartzite_relief_left": "Bas-relief en Quartzite (gauche)", + "block.mineralogy.quartzite_relief_pickaxe": "Bas-relief en Quartzite (pioche)", + "block.mineralogy.quartzite_relief_plus": "Bas-relief en Quartzite (signe plus)", + "block.mineralogy.quartzite_relief_right": "Bas-relief en Quartzite (droite)", + "block.mineralogy.quartzite_relief_sword": "Bas-relief en Quartzite (épée)", + "block.mineralogy.quartzite_relief_vertical": "Bas-relief en Quartzite (vertical)", + "block.mineralogy.novaculite_relief_axe": "Bas-relief en Novaculite (hache)", + "block.mineralogy.novaculite_relief_blank": "Bas-relief en Novaculite (sans motif)", + "block.mineralogy.novaculite_relief_cross": "Bas-relief en Novaculite (croix)", + "block.mineralogy.novaculite_relief_hammer": "Bas-relief en Novaculite (marteau)", + "block.mineralogy.novaculite_relief_hoe": "Bas-relief en Novaculite (houe)", + "block.mineralogy.novaculite_relief_horizontal": "Bas-relief en Novaculite (horizontal)", + "block.mineralogy.novaculite_relief_i": "Bas-relief en Novaculite (I)", + "block.mineralogy.novaculite_relief_left": "Bas-relief en Novaculite (gauche)", + "block.mineralogy.novaculite_relief_pickaxe": "Bas-relief en Novaculite (pioche)", + "block.mineralogy.novaculite_relief_plus": "Bas-relief en Novaculite (signe plus)", + "block.mineralogy.novaculite_relief_right": "Bas-relief en Novaculite (droite)", + "block.mineralogy.novaculite_relief_sword": "Bas-relief en Novaculite (épée)", + "block.mineralogy.novaculite_relief_vertical": "Bas-relief en Novaculite (vertical)", "itemGroup.mineralogy.mineralogy": "Minéralogie", - "itemGroup.mineralogy.rock": "Roches minéralogiques", + "itemGroup.mineralogy.rock": "Roches de Minéralogie", "itemGroup.mineralogy.stair": "Escaliers de Minéralogie", - "itemGroup.mineralogy.slab": "Dalles de minéralogie", - "itemGroup.mineralogy.wall": "Murs de Minéralogie", - "itemGroup.mineralogy.item": "Objets de minéralogie" + "itemGroup.mineralogy.slab": "Dalles de Minéralogie", + "itemGroup.mineralogy.wall": "Murets de Minéralogie", + "itemGroup.mineralogy.item": "Objets de Minéralogie", + "block.mineralogy.crude_oil": "Pétrole brut", + "item.mineralogy.crude_oil_bucket": "Seau de pétrole brut", + "fluid.mineralogy.crude_oil": "Pétrole brut", + "advancements.mineralogy.all_the_rocks.title": "Toutes les roches", + "advancements.mineralogy.all_the_rocks.description": "Vous avez trouvé tous les types de roches standard de Mineralogy !" } diff --git a/src/main/resources/assets/mineralogy/lang/ja_jp.json b/src/main/resources/assets/mineralogy/lang/ja_jp.json index af005e1b6..16f64de12 100644 --- a/src/main/resources/assets/mineralogy/lang/ja_jp.json +++ b/src/main/resources/assets/mineralogy/lang/ja_jp.json @@ -1,201 +1,201 @@ { "block.mineralogy.andesite": "安山岩", "block.mineralogy.andesite_stairs": "安山岩の階段", - "block.mineralogy.andesite_slab": "安山岩のスラブ", + "block.mineralogy.andesite_slab": "安山岩のハーフブロック", "block.mineralogy.andesite_brick": "安山岩レンガ", - "block.mineralogy.andesite_brick_stairs": "安山岩のレンガの階段", - "block.mineralogy.andesite_brick_slab": "安山岩レンガ板", + "block.mineralogy.andesite_brick_stairs": "安山岩レンガの階段", + "block.mineralogy.andesite_brick_slab": "安山岩レンガのハーフブロック", "block.mineralogy.andesite_smooth": "磨かれた安山岩", - "block.mineralogy.andesite_smooth_stairs": "安山岩の磨かれた階段", - "block.mineralogy.andesite_smooth_slab": "安山岩研磨スラブ", - "block.mineralogy.andesite_smooth_brick": "安山岩磨きレンガ", - "block.mineralogy.andesite_smooth_brick_stairs": "安山岩の磨かれたレンガの階段", - "block.mineralogy.andesite_smooth_brick_slab": "安山岩の磨かれたレンガのスラブ", + "block.mineralogy.andesite_smooth_stairs": "磨かれた安山岩の階段", + "block.mineralogy.andesite_smooth_slab": "磨かれた安山岩のハーフブロック", + "block.mineralogy.andesite_smooth_brick": "磨かれた安山岩レンガ", + "block.mineralogy.andesite_smooth_brick_stairs": "磨かれた安山岩レンガの階段", + "block.mineralogy.andesite_smooth_brick_slab": "磨かれた安山岩レンガのハーフブロック", "block.mineralogy.basalt": "玄武岩", "block.mineralogy.basalt_stairs": "玄武岩の階段", - "block.mineralogy.basalt_slab": "玄武岩の板", + "block.mineralogy.basalt_slab": "玄武岩のハーフブロック", "block.mineralogy.basalt_brick": "玄武岩レンガ", - "block.mineralogy.basalt_brick_stairs": "玄武岩のレンガの階段", - "block.mineralogy.basalt_brick_slab": "玄武岩レンガ板", + "block.mineralogy.basalt_brick_stairs": "玄武岩レンガの階段", + "block.mineralogy.basalt_brick_slab": "玄武岩レンガのハーフブロック", "block.mineralogy.basalt_smooth": "磨かれた玄武岩", - "block.mineralogy.basalt_smooth_stairs": "玄武岩で磨かれた階段", - "block.mineralogy.basalt_smooth_slab": "玄武岩の磨かれたスラブ", - "block.mineralogy.basalt_smooth_brick": "玄武岩磨きレンガ", - "block.mineralogy.basalt_smooth_brick_stairs": "玄武岩で磨かれたレンガの階段", - "block.mineralogy.basalt_smooth_brick_slab": "玄武岩の磨かれたレンガのスラブ", + "block.mineralogy.basalt_smooth_stairs": "磨かれた玄武岩の階段", + "block.mineralogy.basalt_smooth_slab": "磨かれた玄武岩のハーフブロック", + "block.mineralogy.basalt_smooth_brick": "磨かれた玄武岩レンガ", + "block.mineralogy.basalt_smooth_brick_stairs": "磨かれた玄武岩レンガの階段", + "block.mineralogy.basalt_smooth_brick_slab": "磨かれた玄武岩レンガのハーフブロック", "block.mineralogy.diorite": "閃緑岩", "block.mineralogy.diorite_stairs": "閃緑岩の階段", - "block.mineralogy.diorite_slab": "閃緑岩のスラブ", + "block.mineralogy.diorite_slab": "閃緑岩のハーフブロック", "block.mineralogy.diorite_brick": "閃緑岩レンガ", - "block.mineralogy.diorite_brick_stairs": "閃緑岩のレンガの階段", - "block.mineralogy.diorite_brick_slab": "閃緑岩レンガ板", + "block.mineralogy.diorite_brick_stairs": "閃緑岩レンガの階段", + "block.mineralogy.diorite_brick_slab": "閃緑岩レンガのハーフブロック", "block.mineralogy.diorite_smooth": "磨かれた閃緑岩", - "block.mineralogy.diorite_smooth_stairs": "閃緑岩の磨かれた階段", - "block.mineralogy.diorite_smooth_slab": "閃緑岩の研磨スラブ", - "block.mineralogy.diorite_smooth_brick": "閃緑岩磨きレンガ", - "block.mineralogy.diorite_smooth_brick_stairs": "閃緑岩の磨かれたレンガの階段", - "block.mineralogy.diorite_smooth_brick_slab": "閃緑岩の磨かれたレンガのスラブ", + "block.mineralogy.diorite_smooth_stairs": "磨かれた閃緑岩の階段", + "block.mineralogy.diorite_smooth_slab": "磨かれた閃緑岩のハーフブロック", + "block.mineralogy.diorite_smooth_brick": "磨かれた閃緑岩レンガ", + "block.mineralogy.diorite_smooth_brick_stairs": "磨かれた閃緑岩レンガの階段", + "block.mineralogy.diorite_smooth_brick_slab": "磨かれた閃緑岩レンガのハーフブロック", "block.mineralogy.granite": "花崗岩", "block.mineralogy.granite_stairs": "花崗岩の階段", - "block.mineralogy.granite_slab": "花崗岩のスラブ", + "block.mineralogy.granite_slab": "花崗岩のハーフブロック", "block.mineralogy.granite_brick": "花崗岩レンガ", - "block.mineralogy.granite_brick_stairs": "花崗岩のレンガの階段", - "block.mineralogy.granite_brick_slab": "花崗岩のレンガ板", + "block.mineralogy.granite_brick_stairs": "花崗岩レンガの階段", + "block.mineralogy.granite_brick_slab": "花崗岩レンガのハーフブロック", "block.mineralogy.granite_smooth": "磨かれた花崗岩", - "block.mineralogy.granite_smooth_stairs": "花崗岩の磨かれた階段", - "block.mineralogy.granite_smooth_slab": "花崗岩の磨かれたスラブ", - "block.mineralogy.granite_smooth_brick": "花崗岩の磨かれたレンガ", - "block.mineralogy.granite_smooth_brick_stairs": "花崗岩の磨かれたレンガの階段", - "block.mineralogy.granite_smooth_brick_slab": "花崗岩の磨かれたレンガのスラブ", + "block.mineralogy.granite_smooth_stairs": "磨かれた花崗岩の階段", + "block.mineralogy.granite_smooth_slab": "磨かれた花崗岩のハーフブロック", + "block.mineralogy.granite_smooth_brick": "磨かれた花崗岩レンガ", + "block.mineralogy.granite_smooth_brick_stairs": "磨かれた花崗岩レンガの階段", + "block.mineralogy.granite_smooth_brick_slab": "磨かれた花崗岩レンガのハーフブロック", "block.mineralogy.rhyolite": "流紋岩", "block.mineralogy.rhyolite_stairs": "流紋岩の階段", - "block.mineralogy.rhyolite_slab": "流紋岩のスラブ", + "block.mineralogy.rhyolite_slab": "流紋岩のハーフブロック", "block.mineralogy.rhyolite_brick": "流紋岩レンガ", - "block.mineralogy.rhyolite_brick_stairs": "流紋岩のレンガの階段", - "block.mineralogy.rhyolite_brick_slab": "流紋岩レンガ板", - "block.mineralogy.rhyolite_smooth": "研磨流紋岩", - "block.mineralogy.rhyolite_smooth_stairs": "流紋岩の磨かれた階段", - "block.mineralogy.rhyolite_smooth_slab": "流紋岩研磨スラブ", - "block.mineralogy.rhyolite_smooth_brick": "流紋岩磨きレンガ", - "block.mineralogy.rhyolite_smooth_brick_stairs": "流紋岩の磨かれたレンガの階段", - "block.mineralogy.rhyolite_smooth_brick_slab": "流紋岩研磨レンガスラブ", + "block.mineralogy.rhyolite_brick_stairs": "流紋岩レンガの階段", + "block.mineralogy.rhyolite_brick_slab": "流紋岩レンガのハーフブロック", + "block.mineralogy.rhyolite_smooth": "磨かれた流紋岩", + "block.mineralogy.rhyolite_smooth_stairs": "磨かれた流紋岩の階段", + "block.mineralogy.rhyolite_smooth_slab": "磨かれた流紋岩のハーフブロック", + "block.mineralogy.rhyolite_smooth_brick": "磨かれた流紋岩レンガ", + "block.mineralogy.rhyolite_smooth_brick_stairs": "磨かれた流紋岩レンガの階段", + "block.mineralogy.rhyolite_smooth_brick_slab": "磨かれた流紋岩レンガのハーフブロック", "block.mineralogy.pegmatite": "ペグマタイト", "block.mineralogy.pegmatite_stairs": "ペグマタイトの階段", - "block.mineralogy.pegmatite_slab": "ペグマタイトスラブ", + "block.mineralogy.pegmatite_slab": "ペグマタイトのハーフブロック", "block.mineralogy.pegmatite_brick": "ペグマタイトレンガ", "block.mineralogy.pegmatite_brick_stairs": "ペグマタイトレンガの階段", - "block.mineralogy.pegmatite_brick_slab": "ペグマタイト レンガ スラブ", - "block.mineralogy.pegmatite_smooth": "研磨ペグマタイト", - "block.mineralogy.pegmatite_smooth_stairs": "ペグマタイト研磨階段", - "block.mineralogy.pegmatite_smooth_slab": "ペグマタイト研磨スラブ", - "block.mineralogy.pegmatite_smooth_brick": "ペグマタイト磨きレンガ", - "block.mineralogy.pegmatite_smooth_brick_stairs": "ペグマタイトの磨かれたレンガの階段", - "block.mineralogy.pegmatite_smooth_brick_slab": "ペグマタイト研磨レンガスラブ", + "block.mineralogy.pegmatite_brick_slab": "ペグマタイトレンガのハーフブロック", + "block.mineralogy.pegmatite_smooth": "磨かれたペグマタイト", + "block.mineralogy.pegmatite_smooth_stairs": "磨かれたペグマタイトの階段", + "block.mineralogy.pegmatite_smooth_slab": "磨かれたペグマタイトのハーフブロック", + "block.mineralogy.pegmatite_smooth_brick": "磨かれたペグマタイトレンガ", + "block.mineralogy.pegmatite_smooth_brick_stairs": "磨かれたペグマタイトレンガの階段", + "block.mineralogy.pegmatite_smooth_brick_slab": "磨かれたペグマタイトレンガのハーフブロック", "block.mineralogy.shale": "頁岩", "block.mineralogy.shale_stairs": "頁岩の階段", - "block.mineralogy.shale_slab": "頁岩スラブ", + "block.mineralogy.shale_slab": "頁岩のハーフブロック", "block.mineralogy.shale_brick": "頁岩レンガ", "block.mineralogy.shale_brick_stairs": "頁岩レンガの階段", - "block.mineralogy.shale_brick_slab": "頁岩レンガスラブ", + "block.mineralogy.shale_brick_slab": "頁岩レンガのハーフブロック", "block.mineralogy.shale_smooth": "磨かれた頁岩", - "block.mineralogy.shale_smooth_stairs": "頁岩の磨かれた階段", - "block.mineralogy.shale_smooth_slab": "頁岩研磨スラブ", - "block.mineralogy.shale_smooth_brick": "頁岩磨きレンガ", - "block.mineralogy.shale_smooth_brick_stairs": "頁岩の磨かれたレンガの階段", - "block.mineralogy.shale_smooth_brick_slab": "頁岩研磨レンガスラブ", - "block.mineralogy.conglomerate": "複合企業", - "block.mineralogy.conglomerate_stairs": "コングロマリットの階段", - "block.mineralogy.conglomerate_slab": "複合石のスラブ", - "block.mineralogy.conglomerate_brick": "複合企業のレンガ", - "block.mineralogy.conglomerate_brick_stairs": "複合企業のレンガ階段", - "block.mineralogy.conglomerate_brick_slab": "複合レンガのスラブ", - "block.mineralogy.conglomerate_smooth": "磨かれた複合体", - "block.mineralogy.conglomerate_smooth_stairs": "複合企業の磨かれた階段", - "block.mineralogy.conglomerate_smooth_slab": "複合体研磨スラブ", - "block.mineralogy.conglomerate_smooth_brick": "複合体磨きレンガ", - "block.mineralogy.conglomerate_smooth_brick_stairs": "複合企業の磨かれたレンガの階段", - "block.mineralogy.conglomerate_smooth_brick_slab": "コングロマリットの磨かれたレンガのスラブ", - "block.mineralogy.dolomite": "ドロマイト", - "block.mineralogy.dolomite_stairs": "ドロマイトの階段", - "block.mineralogy.dolomite_slab": "ドロマイトのスラブ", - "block.mineralogy.dolomite_brick": "ドロマイトレンガ", - "block.mineralogy.dolomite_brick_stairs": "ドロマイトレンガの階段", - "block.mineralogy.dolomite_brick_slab": "ドロマイトレンガスラブ", - "block.mineralogy.dolomite_smooth": "ポリッシュドロマイト", - "block.mineralogy.dolomite_smooth_stairs": "ドロマイト研磨階段", - "block.mineralogy.dolomite_smooth_slab": "ドロマイト研磨スラブ", - "block.mineralogy.dolomite_smooth_brick": "ドロマイト磨きレンガ", - "block.mineralogy.dolomite_smooth_brick_stairs": "ドロマイト磨かれたレンガの階段", - "block.mineralogy.dolomite_smooth_brick_slab": "ドロマイト研磨レンガスラブ", + "block.mineralogy.shale_smooth_stairs": "磨かれた頁岩の階段", + "block.mineralogy.shale_smooth_slab": "磨かれた頁岩のハーフブロック", + "block.mineralogy.shale_smooth_brick": "磨かれた頁岩レンガ", + "block.mineralogy.shale_smooth_brick_stairs": "磨かれた頁岩レンガの階段", + "block.mineralogy.shale_smooth_brick_slab": "磨かれた頁岩レンガのハーフブロック", + "block.mineralogy.conglomerate": "礫岩", + "block.mineralogy.conglomerate_stairs": "礫岩の階段", + "block.mineralogy.conglomerate_slab": "礫岩のハーフブロック", + "block.mineralogy.conglomerate_brick": "礫岩レンガ", + "block.mineralogy.conglomerate_brick_stairs": "礫岩レンガの階段", + "block.mineralogy.conglomerate_brick_slab": "礫岩レンガのハーフブロック", + "block.mineralogy.conglomerate_smooth": "磨かれた礫岩", + "block.mineralogy.conglomerate_smooth_stairs": "磨かれた礫岩の階段", + "block.mineralogy.conglomerate_smooth_slab": "磨かれた礫岩のハーフブロック", + "block.mineralogy.conglomerate_smooth_brick": "磨かれた礫岩レンガ", + "block.mineralogy.conglomerate_smooth_brick_stairs": "磨かれた礫岩レンガの階段", + "block.mineralogy.conglomerate_smooth_brick_slab": "磨かれた礫岩レンガのハーフブロック", + "block.mineralogy.dolomite": "苦灰岩", + "block.mineralogy.dolomite_stairs": "苦灰岩の階段", + "block.mineralogy.dolomite_slab": "苦灰岩のハーフブロック", + "block.mineralogy.dolomite_brick": "苦灰岩レンガ", + "block.mineralogy.dolomite_brick_stairs": "苦灰岩レンガの階段", + "block.mineralogy.dolomite_brick_slab": "苦灰岩レンガのハーフブロック", + "block.mineralogy.dolomite_smooth": "磨かれた苦灰岩", + "block.mineralogy.dolomite_smooth_stairs": "磨かれた苦灰岩の階段", + "block.mineralogy.dolomite_smooth_slab": "磨かれた苦灰岩のハーフブロック", + "block.mineralogy.dolomite_smooth_brick": "磨かれた苦灰岩レンガ", + "block.mineralogy.dolomite_smooth_brick_stairs": "磨かれた苦灰岩レンガの階段", + "block.mineralogy.dolomite_smooth_brick_slab": "磨かれた苦灰岩レンガのハーフブロック", "block.mineralogy.limestone": "石灰岩", "block.mineralogy.limestone_stairs": "石灰岩の階段", - "block.mineralogy.limestone_slab": "石灰岩のスラブ", + "block.mineralogy.limestone_slab": "石灰岩のハーフブロック", "block.mineralogy.limestone_brick": "石灰岩レンガ", - "block.mineralogy.limestone_brick_stairs": "石灰岩のレンガの階段", - "block.mineralogy.limestone_brick_slab": "石灰岩レンガ板", + "block.mineralogy.limestone_brick_stairs": "石灰岩レンガの階段", + "block.mineralogy.limestone_brick_slab": "石灰岩レンガのハーフブロック", "block.mineralogy.limestone_smooth": "磨かれた石灰岩", - "block.mineralogy.limestone_smooth_stairs": "石灰岩で磨かれた階段", - "block.mineralogy.limestone_smooth_slab": "石灰岩の磨かれたスラブ", - "block.mineralogy.limestone_smooth_brick": "石灰岩磨きレンガ", - "block.mineralogy.limestone_smooth_brick_stairs": "石灰岩で磨かれたレンガの階段", - "block.mineralogy.limestone_smooth_brick_slab": "石灰岩で磨かれたレンガのスラブ", - "block.mineralogy.slate": "スレート", - "block.mineralogy.slate_stairs": "スレートの階段", - "block.mineralogy.slate_slab": "スレートスラブ", - "block.mineralogy.slate_brick": "スレートレンガ", - "block.mineralogy.slate_brick_stairs": "スレートレンガの階段", - "block.mineralogy.slate_brick_slab": "スレートレンガのスラブ", - "block.mineralogy.slate_smooth": "磨かれたスレート", - "block.mineralogy.slate_smooth_stairs": "スレート磨き階段", - "block.mineralogy.slate_smooth_slab": "スレート研磨スラブ", - "block.mineralogy.slate_smooth_brick": "スレート磨きレンガ", - "block.mineralogy.slate_smooth_brick_stairs": "スレート磨きレンガ階段", - "block.mineralogy.slate_smooth_brick_slab": "スレート研磨レンガスラブ", - "block.mineralogy.schist": "片岩", - "block.mineralogy.schist_stairs": "片岩の階段", - "block.mineralogy.schist_slab": "片岩スラブ", - "block.mineralogy.schist_brick": "片岩レンガ", - "block.mineralogy.schist_brick_stairs": "片岩レンガ階段", - "block.mineralogy.schist_brick_slab": "片岩レンガスラブ", - "block.mineralogy.schist_smooth": "研磨片岩", - "block.mineralogy.schist_smooth_stairs": "片岩研磨階段", - "block.mineralogy.schist_smooth_slab": "片岩研磨スラブ", - "block.mineralogy.schist_smooth_brick": "片岩磨きレンガ", - "block.mineralogy.schist_smooth_brick_stairs": "片岩磨きレンガ階段", - "block.mineralogy.schist_smooth_brick_slab": "片岩研磨レンガスラブ", + "block.mineralogy.limestone_smooth_stairs": "磨かれた石灰岩の階段", + "block.mineralogy.limestone_smooth_slab": "磨かれた石灰岩のハーフブロック", + "block.mineralogy.limestone_smooth_brick": "磨かれた石灰岩レンガ", + "block.mineralogy.limestone_smooth_brick_stairs": "磨かれた石灰岩レンガの階段", + "block.mineralogy.limestone_smooth_brick_slab": "磨かれた石灰岩レンガのハーフブロック", + "block.mineralogy.slate": "粘板岩", + "block.mineralogy.slate_stairs": "粘板岩の階段", + "block.mineralogy.slate_slab": "粘板岩のハーフブロック", + "block.mineralogy.slate_brick": "粘板岩レンガ", + "block.mineralogy.slate_brick_stairs": "粘板岩レンガの階段", + "block.mineralogy.slate_brick_slab": "粘板岩レンガのハーフブロック", + "block.mineralogy.slate_smooth": "磨かれた粘板岩", + "block.mineralogy.slate_smooth_stairs": "磨かれた粘板岩の階段", + "block.mineralogy.slate_smooth_slab": "磨かれた粘板岩のハーフブロック", + "block.mineralogy.slate_smooth_brick": "磨かれた粘板岩レンガ", + "block.mineralogy.slate_smooth_brick_stairs": "磨かれた粘板岩レンガの階段", + "block.mineralogy.slate_smooth_brick_slab": "磨かれた粘板岩レンガのハーフブロック", + "block.mineralogy.schist": "結晶片岩", + "block.mineralogy.schist_stairs": "結晶片岩の階段", + "block.mineralogy.schist_slab": "結晶片岩のハーフブロック", + "block.mineralogy.schist_brick": "結晶片岩レンガ", + "block.mineralogy.schist_brick_stairs": "結晶片岩レンガの階段", + "block.mineralogy.schist_brick_slab": "結晶片岩レンガのハーフブロック", + "block.mineralogy.schist_smooth": "磨かれた結晶片岩", + "block.mineralogy.schist_smooth_stairs": "磨かれた結晶片岩の階段", + "block.mineralogy.schist_smooth_slab": "磨かれた結晶片岩のハーフブロック", + "block.mineralogy.schist_smooth_brick": "磨かれた結晶片岩レンガ", + "block.mineralogy.schist_smooth_brick_stairs": "磨かれた結晶片岩レンガの階段", + "block.mineralogy.schist_smooth_brick_slab": "磨かれた結晶片岩レンガのハーフブロック", "block.mineralogy.gneiss": "片麻岩", "block.mineralogy.gneiss_stairs": "片麻岩の階段", - "block.mineralogy.gneiss_slab": "片麻岩スラブ", + "block.mineralogy.gneiss_slab": "片麻岩のハーフブロック", "block.mineralogy.gneiss_brick": "片麻岩レンガ", - "block.mineralogy.gneiss_brick_stairs": "片麻岩のレンガの階段", - "block.mineralogy.gneiss_brick_slab": "片麻岩レンガ板", + "block.mineralogy.gneiss_brick_stairs": "片麻岩レンガの階段", + "block.mineralogy.gneiss_brick_slab": "片麻岩レンガのハーフブロック", "block.mineralogy.gneiss_smooth": "磨かれた片麻岩", - "block.mineralogy.gneiss_smooth_stairs": "片麻岩の磨かれた階段", - "block.mineralogy.gneiss_smooth_slab": "片麻岩研磨スラブ", - "block.mineralogy.gneiss_smooth_brick": "片麻岩研磨レンガ", - "block.mineralogy.gneiss_smooth_brick_stairs": "片麻岩の磨かれたレンガの階段", - "block.mineralogy.gneiss_smooth_brick_slab": "片麻岩研磨レンガスラブ", + "block.mineralogy.gneiss_smooth_stairs": "磨かれた片麻岩の階段", + "block.mineralogy.gneiss_smooth_slab": "磨かれた片麻岩のハーフブロック", + "block.mineralogy.gneiss_smooth_brick": "磨かれた片麻岩レンガ", + "block.mineralogy.gneiss_smooth_brick_stairs": "磨かれた片麻岩レンガの階段", + "block.mineralogy.gneiss_smooth_brick_slab": "磨かれた片麻岩レンガのハーフブロック", "block.mineralogy.marble": "大理石", "block.mineralogy.marble_stairs": "大理石の階段", - "block.mineralogy.marble_slab": "大理石のスラブ", + "block.mineralogy.marble_slab": "大理石のハーフブロック", "block.mineralogy.marble_brick": "大理石レンガ", - "block.mineralogy.marble_brick_stairs": "大理石のレンガの階段", - "block.mineralogy.marble_brick_slab": "大理石のレンガのスラブ", + "block.mineralogy.marble_brick_stairs": "大理石レンガの階段", + "block.mineralogy.marble_brick_slab": "大理石レンガのハーフブロック", "block.mineralogy.marble_smooth": "磨かれた大理石", - "block.mineralogy.marble_smooth_stairs": "大理石の磨かれた階段", - "block.mineralogy.marble_smooth_slab": "大理石の磨かれたスラブ", - "block.mineralogy.marble_smooth_brick": "大理石磨きレンガ", - "block.mineralogy.marble_smooth_brick_stairs": "大理石の磨かれたレンガの階段", - "block.mineralogy.marble_smooth_brick_slab": "大理石の磨かれたレンガのスラブ", + "block.mineralogy.marble_smooth_stairs": "磨かれた大理石の階段", + "block.mineralogy.marble_smooth_slab": "磨かれた大理石のハーフブロック", + "block.mineralogy.marble_smooth_brick": "磨かれた大理石レンガ", + "block.mineralogy.marble_smooth_brick_stairs": "磨かれた大理石レンガの階段", + "block.mineralogy.marble_smooth_brick_slab": "磨かれた大理石レンガのハーフブロック", "block.mineralogy.phyllite": "千枚岩", "block.mineralogy.phyllite_stairs": "千枚岩の階段", - "block.mineralogy.phyllite_slab": "千枚岩の平板", + "block.mineralogy.phyllite_slab": "千枚岩のハーフブロック", "block.mineralogy.phyllite_brick": "千枚岩レンガ", "block.mineralogy.phyllite_brick_stairs": "千枚岩レンガの階段", - "block.mineralogy.phyllite_brick_slab": "千枚岩レンガ板", - "block.mineralogy.phyllite_smooth": "研磨千枚岩", - "block.mineralogy.phyllite_smooth_stairs": "千枚岩研磨階段", - "block.mineralogy.phyllite_smooth_slab": "千枚岩研磨スラブ", - "block.mineralogy.phyllite_smooth_brick": "千枚岩磨きレンガ", - "block.mineralogy.phyllite_smooth_brick_stairs": "千枚岩の磨かれたレンガの階段", - "block.mineralogy.phyllite_smooth_brick_slab": "千枚岩研磨レンガスラブ", - "block.mineralogy.amphibolite": "角閃石", + "block.mineralogy.phyllite_brick_slab": "千枚岩レンガのハーフブロック", + "block.mineralogy.phyllite_smooth": "磨かれた千枚岩", + "block.mineralogy.phyllite_smooth_stairs": "磨かれた千枚岩の階段", + "block.mineralogy.phyllite_smooth_slab": "磨かれた千枚岩のハーフブロック", + "block.mineralogy.phyllite_smooth_brick": "磨かれた千枚岩レンガ", + "block.mineralogy.phyllite_smooth_brick_stairs": "磨かれた千枚岩レンガの階段", + "block.mineralogy.phyllite_smooth_brick_slab": "磨かれた千枚岩レンガのハーフブロック", + "block.mineralogy.amphibolite": "角閃岩", "block.mineralogy.amphibolite_stairs": "角閃岩の階段", - "block.mineralogy.amphibolite_slab": "角閃岩スラブ", - "block.mineralogy.amphibolite_brick": "角閃石レンガ", - "block.mineralogy.amphibolite_brick_stairs": "角閃岩のレンガの階段", - "block.mineralogy.amphibolite_brick_slab": "角閃岩レンガ板", - "block.mineralogy.amphibolite_smooth": "滑らかな角閃石", - "block.mineralogy.amphibolite_smooth_stairs": "角閃岩の磨かれた階段", - "block.mineralogy.amphibolite_smooth_slab": "角閃石研磨スラブ", - "block.mineralogy.amphibolite_smooth_brick": "角閃石磨きレンガ", - "block.mineralogy.amphibolite_smooth_brick_stairs": "角閃岩の磨かれたレンガの階段", - "block.mineralogy.amphibolite_smooth_brick_slab": "角閃岩の磨かれたレンガのスラブ", + "block.mineralogy.amphibolite_slab": "角閃岩のハーフブロック", + "block.mineralogy.amphibolite_brick": "角閃岩レンガ", + "block.mineralogy.amphibolite_brick_stairs": "角閃岩レンガの階段", + "block.mineralogy.amphibolite_brick_slab": "角閃岩レンガのハーフブロック", + "block.mineralogy.amphibolite_smooth": "磨かれた角閃岩", + "block.mineralogy.amphibolite_smooth_stairs": "磨かれた角閃岩の階段", + "block.mineralogy.amphibolite_smooth_slab": "磨かれた角閃岩のハーフブロック", + "block.mineralogy.amphibolite_smooth_brick": "磨かれた角閃岩レンガ", + "block.mineralogy.amphibolite_smooth_brick_stairs": "磨かれた角閃岩レンガの階段", + "block.mineralogy.amphibolite_smooth_brick_slab": "磨かれた角閃岩レンガのハーフブロック", "item.mineralogy.gypsum_dust": "石膏粉末", "item.mineralogy.sulfur_dust": "硫黄粉末", "item.mineralogy.phosphorous_dust": "リン粉末", "item.mineralogy.nitrate_dust": "硝酸塩粉末", - "item.mineralogy.mineral_fertilizer": "ミネラル肥料", + "item.mineralogy.mineral_fertilizer": "鉱物肥料", "block.mineralogy.chert": "チャート", "block.mineralogy.gypsum": "石膏", "block.mineralogy.pumice": "軽石", @@ -205,736 +205,736 @@ "block.mineralogy.phosphorous_ore": "リン鉱石", "block.mineralogy.nitrate_block": "硝酸塩", "block.mineralogy.nitrate_ore": "硝酸塩鉱石", - "block.mineralogy.drywall_black": "ブラック乾式壁", - "block.mineralogy.drywall_red": "赤い乾式壁", - "block.mineralogy.drywall_green": "グリーン乾式壁", - "block.mineralogy.drywall_brown": "茶色の乾式壁", - "block.mineralogy.drywall_blue": "ブルー乾式壁", - "block.mineralogy.drywall_purple": "パープル乾式壁", - "block.mineralogy.drywall_cyan": "シアン乾式壁", - "block.mineralogy.drywall_silver": "ライトグレーの乾式壁", - "block.mineralogy.drywall_gray": "灰色の乾式壁", - "block.mineralogy.drywall_pink": "ピンクの乾式壁", - "block.mineralogy.drywall_lime": "ライムグリーンの乾式壁", - "block.mineralogy.drywall_yellow": "黄色の乾式壁", - "block.mineralogy.drywall_light_blue": "ライトブルーの乾式壁", - "block.mineralogy.drywall_magenta": "マゼンタの乾式壁", - "block.mineralogy.drywall_orange": "オレンジの乾式壁", - "block.mineralogy.drywall_white": "白い乾式壁", - "block.mineralogy.andesite_wall": "安山岩の壁", - "block.mineralogy.andesite_brick_wall": "安山岩のレンガの壁", - "block.mineralogy.andesite_smooth_wall": "安山岩の磨かれた壁", - "block.mineralogy.andesite_smooth_brick_wall": "安山岩の磨かれたレンガの壁", - "block.mineralogy.basalt_wall": "玄武岩の壁", - "block.mineralogy.basalt_brick_wall": "玄武岩のレンガの壁", - "block.mineralogy.basalt_smooth_wall": "玄武岩の磨かれた壁", - "block.mineralogy.basalt_smooth_brick_wall": "玄武岩の磨かれたレンガの壁", - "block.mineralogy.diorite_wall": "閃緑岩の壁", - "block.mineralogy.diorite_brick_wall": "閃緑岩のレンガの壁", - "block.mineralogy.diorite_smooth_wall": "閃緑岩の磨かれた壁", - "block.mineralogy.diorite_smooth_brick_wall": "閃緑岩の磨かれたレンガ壁", - "block.mineralogy.granite_wall": "花崗岩の壁", - "block.mineralogy.granite_brick_wall": "花崗岩のレンガの壁", - "block.mineralogy.granite_smooth_wall": "花崗岩の磨かれた壁", - "block.mineralogy.granite_smooth_brick_wall": "花崗岩の磨かれたレンガの壁", - "block.mineralogy.rhyolite_wall": "流紋岩の壁", - "block.mineralogy.rhyolite_brick_wall": "流紋岩のレンガの壁", - "block.mineralogy.rhyolite_smooth_wall": "流紋岩の磨かれた壁", - "block.mineralogy.rhyolite_smooth_brick_wall": "流紋岩で磨かれたレンガの壁", - "block.mineralogy.pegmatite_wall": "ペグマタイトの壁", - "block.mineralogy.pegmatite_brick_wall": "ペグマタイト レンガ壁", - "block.mineralogy.pegmatite_smooth_wall": "ペグマタイト研磨壁", - "block.mineralogy.pegmatite_smooth_brick_wall": "ペグマタイトの磨かれたレンガ壁", - "block.mineralogy.shale_wall": "頁岩の壁", - "block.mineralogy.shale_brick_wall": "頁岩レンガの壁", - "block.mineralogy.shale_smooth_wall": "頁岩の磨かれた壁", - "block.mineralogy.shale_smooth_brick_wall": "頁岩の磨かれたレンガの壁", - "block.mineralogy.conglomerate_wall": "複合企業の壁", - "block.mineralogy.conglomerate_brick_wall": "複合企業体のレンガの壁", - "block.mineralogy.conglomerate_smooth_wall": "複合体の磨かれた壁", - "block.mineralogy.conglomerate_smooth_brick_wall": "複合企業の磨かれたレンガの壁", - "block.mineralogy.dolomite_wall": "ドロマイトの壁", - "block.mineralogy.dolomite_brick_wall": "ドロマイトのレンガの壁", - "block.mineralogy.dolomite_smooth_wall": "ドロマイト研磨壁", - "block.mineralogy.dolomite_smooth_brick_wall": "ドロマイトの磨かれたレンガの壁", - "block.mineralogy.limestone_wall": "石灰岩の壁", - "block.mineralogy.limestone_brick_wall": "石灰岩のレンガの壁", - "block.mineralogy.limestone_smooth_wall": "石灰岩で磨かれた壁", - "block.mineralogy.limestone_smooth_brick_wall": "石灰岩で磨かれたレンガの壁", - "block.mineralogy.marble_wall": "大理石の壁", - "block.mineralogy.marble_brick_wall": "大理石のレンガの壁", - "block.mineralogy.marble_smooth_wall": "大理石の磨かれた壁", - "block.mineralogy.marble_smooth_brick_wall": "大理石の磨かれたレンガの壁", - "block.mineralogy.slate_wall": "スレート壁", - "block.mineralogy.slate_brick_wall": "スレートレンガの壁", - "block.mineralogy.slate_smooth_wall": "スレート磨き壁", - "block.mineralogy.slate_smooth_brick_wall": "スレート磨きレンガ壁", - "block.mineralogy.schist_wall": "片岩壁", - "block.mineralogy.schist_brick_wall": "片岩レンガ壁", - "block.mineralogy.schist_smooth_wall": "片岩研磨壁", - "block.mineralogy.schist_smooth_brick_wall": "片岩磨きレンガ壁", - "block.mineralogy.gneiss_wall": "片麻岩の壁", - "block.mineralogy.gneiss_brick_wall": "片麻岩レンガ壁", - "block.mineralogy.gneiss_smooth_wall": "片麻岩の磨かれた壁", - "block.mineralogy.gneiss_smooth_brick_wall": "片麻岩の磨かれたレンガの壁", - "block.mineralogy.phyllite_wall": "千枚岩壁", - "block.mineralogy.phyllite_brick_wall": "千枚岩レンガ壁", - "block.mineralogy.phyllite_smooth_wall": "千枚岩研磨壁", - "block.mineralogy.phyllite_smooth_brick_wall": "千枚岩の磨かれたレンガの壁", - "block.mineralogy.amphibolite_wall": "角閃岩の壁", - "block.mineralogy.amphibolite_brick_wall": "角閃岩のレンガの壁", - "block.mineralogy.amphibolite_smooth_wall": "角閃石の磨かれた壁", - "block.mineralogy.amphibolite_smooth_brick_wall": "角閃石の磨かれたレンガ壁", - "block.mineralogy.andesite_furnace": "安山岩炉", - "block.mineralogy.andesite_brick_furnace": "安山岩のレンガ炉", - "block.mineralogy.andesite_smooth_furnace": "安山岩研磨炉", - "block.mineralogy.andesite_smooth_brick_furnace": "安山岩磨かれたレンガ炉", - "block.mineralogy.basalt_furnace": "玄武岩炉", - "block.mineralogy.basalt_brick_furnace": "玄武岩レンガ炉", - "block.mineralogy.basalt_smooth_furnace": "玄武岩研磨炉", - "block.mineralogy.basalt_smooth_brick_furnace": "玄武岩磨きレンガ炉", - "block.mineralogy.diorite_furnace": "閃緑岩炉", - "block.mineralogy.diorite_brick_furnace": "閃緑岩レンガ炉", - "block.mineralogy.diorite_smooth_furnace": "閃緑岩の研磨炉", - "block.mineralogy.diorite_smooth_brick_furnace": "閃緑岩の磨かれたレンガ炉", - "block.mineralogy.granite_furnace": "花崗岩炉", - "block.mineralogy.granite_brick_furnace": "花崗岩のレンガ炉", - "block.mineralogy.granite_smooth_furnace": "花崗岩の研磨炉", - "block.mineralogy.granite_smooth_brick_furnace": "花崗岩の磨かれたレンガ炉", - "block.mineralogy.rhyolite_furnace": "流紋岩炉", - "block.mineralogy.rhyolite_brick_furnace": "流紋岩煉瓦炉", - "block.mineralogy.rhyolite_smooth_furnace": "流紋岩研磨炉", - "block.mineralogy.rhyolite_smooth_brick_furnace": "流紋岩磨きレンガ炉", - "block.mineralogy.pegmatite_furnace": "ペグマタイト炉", - "block.mineralogy.pegmatite_brick_furnace": "ペグマタイト煉瓦炉", - "block.mineralogy.pegmatite_smooth_furnace": "ペグマタイト研磨炉", - "block.mineralogy.pegmatite_smooth_brick_furnace": "ペグマタイト磨きレンガ炉", - "block.mineralogy.shale_furnace": "シェール炉", - "block.mineralogy.shale_brick_furnace": "頁岩レンガ炉", - "block.mineralogy.shale_smooth_furnace": "頁岩研磨炉", - "block.mineralogy.shale_smooth_brick_furnace": "頁岩の磨かれたレンガ炉", - "block.mineralogy.conglomerate_furnace": "複合炉", - "block.mineralogy.conglomerate_brick_furnace": "複合企業のレンガ炉", - "block.mineralogy.conglomerate_smooth_furnace": "複合体研磨炉", - "block.mineralogy.conglomerate_smooth_brick_furnace": "複合企業の磨かれたレンガ炉", - "block.mineralogy.dolomite_furnace": "ドロマイト炉", - "block.mineralogy.dolomite_brick_furnace": "ドロマイトレンガ炉", - "block.mineralogy.dolomite_smooth_furnace": "ドロマイト研磨炉", - "block.mineralogy.dolomite_smooth_brick_furnace": "ドロマイト磨かれたレンガ炉", - "block.mineralogy.limestone_furnace": "石灰石炉", - "block.mineralogy.limestone_brick_furnace": "石灰石レンガ炉", - "block.mineralogy.limestone_smooth_furnace": "石灰石研磨炉", - "block.mineralogy.limestone_smooth_brick_furnace": "石灰石磨きレンガ炉", - "block.mineralogy.marble_furnace": "大理石炉", - "block.mineralogy.marble_brick_furnace": "大理石レンガ炉", - "block.mineralogy.marble_smooth_furnace": "大理石磨き炉", - "block.mineralogy.marble_smooth_brick_furnace": "大理石磨きレンガ炉", - "block.mineralogy.slate_furnace": "スレート炉", - "block.mineralogy.slate_brick_furnace": "スレートレンガ炉", - "block.mineralogy.slate_smooth_furnace": "スレート研磨炉", - "block.mineralogy.slate_smooth_brick_furnace": "スレート磨きレンガ炉", - "block.mineralogy.schist_furnace": "片岩炉", - "block.mineralogy.schist_brick_furnace": "片岩煉瓦炉", - "block.mineralogy.schist_smooth_furnace": "片岩研磨炉", - "block.mineralogy.schist_smooth_brick_furnace": "片岩磨き煉瓦炉", - "block.mineralogy.gneiss_furnace": "片麻岩炉", - "block.mineralogy.gneiss_brick_furnace": "片麻岩レンガ炉", - "block.mineralogy.gneiss_smooth_furnace": "片麻岩研磨炉", - "block.mineralogy.gneiss_smooth_brick_furnace": "片麻岩の磨かれたレンガ炉", - "block.mineralogy.phyllite_furnace": "千枚岩炉", - "block.mineralogy.phyllite_brick_furnace": "千枚石レンガ炉", - "block.mineralogy.phyllite_smooth_furnace": "千枚岩研磨炉", - "block.mineralogy.phyllite_smooth_brick_furnace": "千枚岩磨きレンガ炉", - "block.mineralogy.amphibolite_furnace": "角閃岩炉", - "block.mineralogy.amphibolite_brick_furnace": "角閃岩レンガ炉", - "block.mineralogy.amphibolite_smooth_furnace": "角閃石研磨炉", - "block.mineralogy.amphibolite_smooth_brick_furnace": "角閃岩の磨かれたレンガ炉", + "block.mineralogy.drywall_black": "黒色の石膏ボード", + "block.mineralogy.drywall_red": "赤色の石膏ボード", + "block.mineralogy.drywall_green": "緑色の石膏ボード", + "block.mineralogy.drywall_brown": "茶色の石膏ボード", + "block.mineralogy.drywall_blue": "青色の石膏ボード", + "block.mineralogy.drywall_purple": "紫色の石膏ボード", + "block.mineralogy.drywall_cyan": "青緑色の石膏ボード", + "block.mineralogy.drywall_silver": "薄灰色の石膏ボード", + "block.mineralogy.drywall_gray": "灰色の石膏ボード", + "block.mineralogy.drywall_pink": "桃色の石膏ボード", + "block.mineralogy.drywall_lime": "黄緑色の石膏ボード", + "block.mineralogy.drywall_yellow": "黄色の石膏ボード", + "block.mineralogy.drywall_light_blue": "空色の石膏ボード", + "block.mineralogy.drywall_magenta": "赤紫色の石膏ボード", + "block.mineralogy.drywall_orange": "橙色の石膏ボード", + "block.mineralogy.drywall_white": "白色の石膏ボード", + "block.mineralogy.andesite_wall": "安山岩の塀", + "block.mineralogy.andesite_brick_wall": "安山岩レンガの塀", + "block.mineralogy.andesite_smooth_wall": "磨かれた安山岩の塀", + "block.mineralogy.andesite_smooth_brick_wall": "磨かれた安山岩レンガの塀", + "block.mineralogy.basalt_wall": "玄武岩の塀", + "block.mineralogy.basalt_brick_wall": "玄武岩レンガの塀", + "block.mineralogy.basalt_smooth_wall": "磨かれた玄武岩の塀", + "block.mineralogy.basalt_smooth_brick_wall": "磨かれた玄武岩レンガの塀", + "block.mineralogy.diorite_wall": "閃緑岩の塀", + "block.mineralogy.diorite_brick_wall": "閃緑岩レンガの塀", + "block.mineralogy.diorite_smooth_wall": "磨かれた閃緑岩の塀", + "block.mineralogy.diorite_smooth_brick_wall": "磨かれた閃緑岩レンガの塀", + "block.mineralogy.granite_wall": "花崗岩の塀", + "block.mineralogy.granite_brick_wall": "花崗岩レンガの塀", + "block.mineralogy.granite_smooth_wall": "磨かれた花崗岩の塀", + "block.mineralogy.granite_smooth_brick_wall": "磨かれた花崗岩レンガの塀", + "block.mineralogy.rhyolite_wall": "流紋岩の塀", + "block.mineralogy.rhyolite_brick_wall": "流紋岩レンガの塀", + "block.mineralogy.rhyolite_smooth_wall": "磨かれた流紋岩の塀", + "block.mineralogy.rhyolite_smooth_brick_wall": "磨かれた流紋岩レンガの塀", + "block.mineralogy.pegmatite_wall": "ペグマタイトの塀", + "block.mineralogy.pegmatite_brick_wall": "ペグマタイトレンガの塀", + "block.mineralogy.pegmatite_smooth_wall": "磨かれたペグマタイトの塀", + "block.mineralogy.pegmatite_smooth_brick_wall": "磨かれたペグマタイトレンガの塀", + "block.mineralogy.shale_wall": "頁岩の塀", + "block.mineralogy.shale_brick_wall": "頁岩レンガの塀", + "block.mineralogy.shale_smooth_wall": "磨かれた頁岩の塀", + "block.mineralogy.shale_smooth_brick_wall": "磨かれた頁岩レンガの塀", + "block.mineralogy.conglomerate_wall": "礫岩の塀", + "block.mineralogy.conglomerate_brick_wall": "礫岩レンガの塀", + "block.mineralogy.conglomerate_smooth_wall": "磨かれた礫岩の塀", + "block.mineralogy.conglomerate_smooth_brick_wall": "磨かれた礫岩レンガの塀", + "block.mineralogy.dolomite_wall": "苦灰岩の塀", + "block.mineralogy.dolomite_brick_wall": "苦灰岩レンガの塀", + "block.mineralogy.dolomite_smooth_wall": "磨かれた苦灰岩の塀", + "block.mineralogy.dolomite_smooth_brick_wall": "磨かれた苦灰岩レンガの塀", + "block.mineralogy.limestone_wall": "石灰岩の塀", + "block.mineralogy.limestone_brick_wall": "石灰岩レンガの塀", + "block.mineralogy.limestone_smooth_wall": "磨かれた石灰岩の塀", + "block.mineralogy.limestone_smooth_brick_wall": "磨かれた石灰岩レンガの塀", + "block.mineralogy.marble_wall": "大理石の塀", + "block.mineralogy.marble_brick_wall": "大理石レンガの塀", + "block.mineralogy.marble_smooth_wall": "磨かれた大理石の塀", + "block.mineralogy.marble_smooth_brick_wall": "磨かれた大理石レンガの塀", + "block.mineralogy.slate_wall": "粘板岩の塀", + "block.mineralogy.slate_brick_wall": "粘板岩レンガの塀", + "block.mineralogy.slate_smooth_wall": "磨かれた粘板岩の塀", + "block.mineralogy.slate_smooth_brick_wall": "磨かれた粘板岩レンガの塀", + "block.mineralogy.schist_wall": "結晶片岩の塀", + "block.mineralogy.schist_brick_wall": "結晶片岩レンガの塀", + "block.mineralogy.schist_smooth_wall": "磨かれた結晶片岩の塀", + "block.mineralogy.schist_smooth_brick_wall": "磨かれた結晶片岩レンガの塀", + "block.mineralogy.gneiss_wall": "片麻岩の塀", + "block.mineralogy.gneiss_brick_wall": "片麻岩レンガの塀", + "block.mineralogy.gneiss_smooth_wall": "磨かれた片麻岩の塀", + "block.mineralogy.gneiss_smooth_brick_wall": "磨かれた片麻岩レンガの塀", + "block.mineralogy.phyllite_wall": "千枚岩の塀", + "block.mineralogy.phyllite_brick_wall": "千枚岩レンガの塀", + "block.mineralogy.phyllite_smooth_wall": "磨かれた千枚岩の塀", + "block.mineralogy.phyllite_smooth_brick_wall": "磨かれた千枚岩レンガの塀", + "block.mineralogy.amphibolite_wall": "角閃岩の塀", + "block.mineralogy.amphibolite_brick_wall": "角閃岩レンガの塀", + "block.mineralogy.amphibolite_smooth_wall": "磨かれた角閃岩の塀", + "block.mineralogy.amphibolite_smooth_brick_wall": "磨かれた角閃岩レンガの塀", + "block.mineralogy.andesite_furnace": "安山岩のかまど", + "block.mineralogy.andesite_brick_furnace": "安山岩レンガのかまど", + "block.mineralogy.andesite_smooth_furnace": "磨かれた安山岩のかまど", + "block.mineralogy.andesite_smooth_brick_furnace": "磨かれた安山岩レンガのかまど", + "block.mineralogy.basalt_furnace": "玄武岩のかまど", + "block.mineralogy.basalt_brick_furnace": "玄武岩レンガのかまど", + "block.mineralogy.basalt_smooth_furnace": "磨かれた玄武岩のかまど", + "block.mineralogy.basalt_smooth_brick_furnace": "磨かれた玄武岩レンガのかまど", + "block.mineralogy.diorite_furnace": "閃緑岩のかまど", + "block.mineralogy.diorite_brick_furnace": "閃緑岩レンガのかまど", + "block.mineralogy.diorite_smooth_furnace": "磨かれた閃緑岩のかまど", + "block.mineralogy.diorite_smooth_brick_furnace": "磨かれた閃緑岩レンガのかまど", + "block.mineralogy.granite_furnace": "花崗岩のかまど", + "block.mineralogy.granite_brick_furnace": "花崗岩レンガのかまど", + "block.mineralogy.granite_smooth_furnace": "磨かれた花崗岩のかまど", + "block.mineralogy.granite_smooth_brick_furnace": "磨かれた花崗岩レンガのかまど", + "block.mineralogy.rhyolite_furnace": "流紋岩のかまど", + "block.mineralogy.rhyolite_brick_furnace": "流紋岩レンガのかまど", + "block.mineralogy.rhyolite_smooth_furnace": "磨かれた流紋岩のかまど", + "block.mineralogy.rhyolite_smooth_brick_furnace": "磨かれた流紋岩レンガのかまど", + "block.mineralogy.pegmatite_furnace": "ペグマタイトのかまど", + "block.mineralogy.pegmatite_brick_furnace": "ペグマタイトレンガのかまど", + "block.mineralogy.pegmatite_smooth_furnace": "磨かれたペグマタイトのかまど", + "block.mineralogy.pegmatite_smooth_brick_furnace": "磨かれたペグマタイトレンガのかまど", + "block.mineralogy.shale_furnace": "頁岩のかまど", + "block.mineralogy.shale_brick_furnace": "頁岩レンガのかまど", + "block.mineralogy.shale_smooth_furnace": "磨かれた頁岩のかまど", + "block.mineralogy.shale_smooth_brick_furnace": "磨かれた頁岩レンガのかまど", + "block.mineralogy.conglomerate_furnace": "礫岩のかまど", + "block.mineralogy.conglomerate_brick_furnace": "礫岩レンガのかまど", + "block.mineralogy.conglomerate_smooth_furnace": "磨かれた礫岩のかまど", + "block.mineralogy.conglomerate_smooth_brick_furnace": "磨かれた礫岩レンガのかまど", + "block.mineralogy.dolomite_furnace": "苦灰岩のかまど", + "block.mineralogy.dolomite_brick_furnace": "苦灰岩レンガのかまど", + "block.mineralogy.dolomite_smooth_furnace": "磨かれた苦灰岩のかまど", + "block.mineralogy.dolomite_smooth_brick_furnace": "磨かれた苦灰岩レンガのかまど", + "block.mineralogy.limestone_furnace": "石灰岩のかまど", + "block.mineralogy.limestone_brick_furnace": "石灰岩レンガのかまど", + "block.mineralogy.limestone_smooth_furnace": "磨かれた石灰岩のかまど", + "block.mineralogy.limestone_smooth_brick_furnace": "磨かれた石灰岩レンガのかまど", + "block.mineralogy.marble_furnace": "大理石のかまど", + "block.mineralogy.marble_brick_furnace": "大理石レンガのかまど", + "block.mineralogy.marble_smooth_furnace": "磨かれた大理石のかまど", + "block.mineralogy.marble_smooth_brick_furnace": "磨かれた大理石レンガのかまど", + "block.mineralogy.slate_furnace": "粘板岩のかまど", + "block.mineralogy.slate_brick_furnace": "粘板岩レンガのかまど", + "block.mineralogy.slate_smooth_furnace": "磨かれた粘板岩のかまど", + "block.mineralogy.slate_smooth_brick_furnace": "磨かれた粘板岩レンガのかまど", + "block.mineralogy.schist_furnace": "結晶片岩のかまど", + "block.mineralogy.schist_brick_furnace": "結晶片岩レンガのかまど", + "block.mineralogy.schist_smooth_furnace": "磨かれた結晶片岩のかまど", + "block.mineralogy.schist_smooth_brick_furnace": "磨かれた結晶片岩レンガのかまど", + "block.mineralogy.gneiss_furnace": "片麻岩のかまど", + "block.mineralogy.gneiss_brick_furnace": "片麻岩レンガのかまど", + "block.mineralogy.gneiss_smooth_furnace": "磨かれた片麻岩のかまど", + "block.mineralogy.gneiss_smooth_brick_furnace": "磨かれた片麻岩レンガのかまど", + "block.mineralogy.phyllite_furnace": "千枚岩のかまど", + "block.mineralogy.phyllite_brick_furnace": "千枚岩レンガのかまど", + "block.mineralogy.phyllite_smooth_furnace": "磨かれた千枚岩のかまど", + "block.mineralogy.phyllite_smooth_brick_furnace": "磨かれた千枚岩レンガのかまど", + "block.mineralogy.amphibolite_furnace": "角閃岩のかまど", + "block.mineralogy.amphibolite_brick_furnace": "角閃岩レンガのかまど", + "block.mineralogy.amphibolite_smooth_furnace": "磨かれた角閃岩のかまど", + "block.mineralogy.amphibolite_smooth_brick_furnace": "磨かれた角閃岩レンガのかまど", "block.mineralogy.diabase": "輝緑岩", "block.mineralogy.diabase_stairs": "輝緑岩の階段", - "block.mineralogy.diabase_slab": "輝緑岩スラブ", - "block.mineralogy.diabase_brick": "輝緑煉瓦", - "block.mineralogy.diabase_brick_stairs": "輝緑レンガの階段", - "block.mineralogy.diabase_brick_slab": "輝緑岩レンガハーフブロック", - "block.mineralogy.diabase_smooth": "ポリッシュ輝緑岩", - "block.mineralogy.diabase_smooth_stairs": "輝緑岩磨き階段", - "block.mineralogy.diabase_smooth_slab": "輝緑岩研磨スラブ", - "block.mineralogy.diabase_smooth_brick": "輝緑岩磨きレンガ", - "block.mineralogy.diabase_smooth_brick_stairs": "輝緑岩の磨かれたレンガの階段", - "block.mineralogy.diabase_smooth_brick_slab": "輝緑岩磨きレンガスラブ", - "block.mineralogy.diabase_wall": "輝緑岩壁", - "block.mineralogy.diabase_brick_wall": "輝緑岩レンガ壁", - "block.mineralogy.diabase_smooth_wall": "輝緑岩磨き壁", - "block.mineralogy.diabase_smooth_brick_wall": "輝緑岩の磨かれたレンガ壁", - "block.mineralogy.diabase_furnace": "輝緑岩炉", - "block.mineralogy.diabase_brick_furnace": "輝緑岩煉瓦炉", - "block.mineralogy.diabase_smooth_furnace": "輝緑岩研磨炉", - "block.mineralogy.diabase_smooth_brick_furnace": "輝緑岩磨きレンガ炉", - "block.mineralogy.gabbro": "斑れい岩", - "block.mineralogy.gabbro_stairs": "斑れい岩の階段", - "block.mineralogy.gabbro_slab": "斑れい岩スラブ", - "block.mineralogy.gabbro_brick": "斑れい岩レンガ", - "block.mineralogy.gabbro_brick_stairs": "斑れいレンガの階段", - "block.mineralogy.gabbro_brick_slab": "斑れいレンガのスラブ", - "block.mineralogy.gabbro_smooth": "磨かれた斑れい岩", - "block.mineralogy.gabbro_smooth_stairs": "斑れい岩の磨かれた階段", - "block.mineralogy.gabbro_smooth_slab": "斑れい岩研磨スラブ", - "block.mineralogy.gabbro_smooth_brick": "斑れい岩磨きレンガ", - "block.mineralogy.gabbro_smooth_brick_stairs": "斑れい岩の磨かれたレンガの階段", - "block.mineralogy.gabbro_smooth_brick_slab": "斑れい岩研磨レンガスラブ", - "block.mineralogy.gabbro_wall": "斑れい岩の壁", - "block.mineralogy.gabbro_brick_wall": "斑れいレンガ壁", - "block.mineralogy.gabbro_smooth_wall": "斑れい岩の磨かれた壁", - "block.mineralogy.gabbro_smooth_brick_wall": "斑れい岩の磨かれたレンガ壁", - "block.mineralogy.gabbro_furnace": "斑れい岩炉", - "block.mineralogy.gabbro_brick_furnace": "斑れい岩レンガ炉", - "block.mineralogy.gabbro_smooth_furnace": "斑れい岩研磨炉", - "block.mineralogy.gabbro_smooth_brick_furnace": "斑れい岩磨きレンガ炉", + "block.mineralogy.diabase_slab": "輝緑岩のハーフブロック", + "block.mineralogy.diabase_brick": "輝緑岩レンガ", + "block.mineralogy.diabase_brick_stairs": "輝緑岩レンガの階段", + "block.mineralogy.diabase_brick_slab": "輝緑岩レンガのハーフブロック", + "block.mineralogy.diabase_smooth": "磨かれた輝緑岩", + "block.mineralogy.diabase_smooth_stairs": "磨かれた輝緑岩の階段", + "block.mineralogy.diabase_smooth_slab": "磨かれた輝緑岩のハーフブロック", + "block.mineralogy.diabase_smooth_brick": "磨かれた輝緑岩レンガ", + "block.mineralogy.diabase_smooth_brick_stairs": "磨かれた輝緑岩レンガの階段", + "block.mineralogy.diabase_smooth_brick_slab": "磨かれた輝緑岩レンガのハーフブロック", + "block.mineralogy.diabase_wall": "輝緑岩の塀", + "block.mineralogy.diabase_brick_wall": "輝緑岩レンガの塀", + "block.mineralogy.diabase_smooth_wall": "磨かれた輝緑岩の塀", + "block.mineralogy.diabase_smooth_brick_wall": "磨かれた輝緑岩レンガの塀", + "block.mineralogy.diabase_furnace": "輝緑岩のかまど", + "block.mineralogy.diabase_brick_furnace": "輝緑岩レンガのかまど", + "block.mineralogy.diabase_smooth_furnace": "磨かれた輝緑岩のかまど", + "block.mineralogy.diabase_smooth_brick_furnace": "磨かれた輝緑岩レンガのかまど", + "block.mineralogy.gabbro": "はんれい岩", + "block.mineralogy.gabbro_stairs": "はんれい岩の階段", + "block.mineralogy.gabbro_slab": "はんれい岩のハーフブロック", + "block.mineralogy.gabbro_brick": "はんれい岩レンガ", + "block.mineralogy.gabbro_brick_stairs": "はんれい岩レンガの階段", + "block.mineralogy.gabbro_brick_slab": "はんれい岩レンガのハーフブロック", + "block.mineralogy.gabbro_smooth": "磨かれたはんれい岩", + "block.mineralogy.gabbro_smooth_stairs": "磨かれたはんれい岩の階段", + "block.mineralogy.gabbro_smooth_slab": "磨かれたはんれい岩のハーフブロック", + "block.mineralogy.gabbro_smooth_brick": "磨かれたはんれい岩レンガ", + "block.mineralogy.gabbro_smooth_brick_stairs": "磨かれたはんれい岩レンガの階段", + "block.mineralogy.gabbro_smooth_brick_slab": "磨かれたはんれい岩レンガのハーフブロック", + "block.mineralogy.gabbro_wall": "はんれい岩の塀", + "block.mineralogy.gabbro_brick_wall": "はんれい岩レンガの塀", + "block.mineralogy.gabbro_smooth_wall": "磨かれたはんれい岩の塀", + "block.mineralogy.gabbro_smooth_brick_wall": "磨かれたはんれい岩レンガの塀", + "block.mineralogy.gabbro_furnace": "はんれい岩のかまど", + "block.mineralogy.gabbro_brick_furnace": "はんれい岩レンガのかまど", + "block.mineralogy.gabbro_smooth_furnace": "磨かれたはんれい岩のかまど", + "block.mineralogy.gabbro_smooth_brick_furnace": "磨かれたはんれい岩レンガのかまど", "block.mineralogy.peridotite": "かんらん岩", "block.mineralogy.peridotite_stairs": "かんらん岩の階段", - "block.mineralogy.peridotite_slab": "かんらん岩スラブ", + "block.mineralogy.peridotite_slab": "かんらん岩のハーフブロック", "block.mineralogy.peridotite_brick": "かんらん岩レンガ", "block.mineralogy.peridotite_brick_stairs": "かんらん岩レンガの階段", - "block.mineralogy.peridotite_brick_slab": "かんらん岩レンガ板", - "block.mineralogy.peridotite_smooth": "研磨されたかんらん岩", - "block.mineralogy.peridotite_smooth_stairs": "かんらん岩の磨かれた階段", - "block.mineralogy.peridotite_smooth_slab": "かんらん岩研磨スラブ", - "block.mineralogy.peridotite_smooth_brick": "かんらん岩磨きレンガ", - "block.mineralogy.peridotite_smooth_brick_stairs": "かんらん岩の磨かれたレンガの階段", - "block.mineralogy.peridotite_smooth_brick_slab": "かんらん岩の磨かれたレンガのスラブ", - "block.mineralogy.peridotite_wall": "かんらん岩の壁", - "block.mineralogy.peridotite_brick_wall": "かんらん岩レンガ壁", - "block.mineralogy.peridotite_smooth_wall": "かんらん岩の磨かれた壁", - "block.mineralogy.peridotite_smooth_brick_wall": "かんらん岩の磨かれたレンガの壁", - "block.mineralogy.peridotite_furnace": "かんらん岩炉", - "block.mineralogy.peridotite_brick_furnace": "かんらん岩レンガ炉", - "block.mineralogy.peridotite_smooth_furnace": "かんらん岩研磨炉", - "block.mineralogy.peridotite_smooth_brick_furnace": "かんらん岩の磨かれたレンガ炉", + "block.mineralogy.peridotite_brick_slab": "かんらん岩レンガのハーフブロック", + "block.mineralogy.peridotite_smooth": "磨かれたかんらん岩", + "block.mineralogy.peridotite_smooth_stairs": "磨かれたかんらん岩の階段", + "block.mineralogy.peridotite_smooth_slab": "磨かれたかんらん岩のハーフブロック", + "block.mineralogy.peridotite_smooth_brick": "磨かれたかんらん岩レンガ", + "block.mineralogy.peridotite_smooth_brick_stairs": "磨かれたかんらん岩レンガの階段", + "block.mineralogy.peridotite_smooth_brick_slab": "磨かれたかんらん岩レンガのハーフブロック", + "block.mineralogy.peridotite_wall": "かんらん岩の塀", + "block.mineralogy.peridotite_brick_wall": "かんらん岩レンガの塀", + "block.mineralogy.peridotite_smooth_wall": "磨かれたかんらん岩の塀", + "block.mineralogy.peridotite_smooth_brick_wall": "磨かれたかんらん岩レンガの塀", + "block.mineralogy.peridotite_furnace": "かんらん岩のかまど", + "block.mineralogy.peridotite_brick_furnace": "かんらん岩レンガのかまど", + "block.mineralogy.peridotite_smooth_furnace": "磨かれたかんらん岩のかまど", + "block.mineralogy.peridotite_smooth_brick_furnace": "磨かれたかんらん岩レンガのかまど", "block.mineralogy.basaltic_glass": "玄武岩質ガラス", "block.mineralogy.basaltic_glass_stairs": "玄武岩質ガラスの階段", - "block.mineralogy.basaltic_glass_slab": "玄武岩質ガラス板", + "block.mineralogy.basaltic_glass_slab": "玄武岩質ガラスのハーフブロック", "block.mineralogy.basaltic_glass_brick": "玄武岩質ガラスレンガ", "block.mineralogy.basaltic_glass_brick_stairs": "玄武岩質ガラスレンガの階段", - "block.mineralogy.basaltic_glass_brick_slab": "玄武岩質ガラスレンガ板", + "block.mineralogy.basaltic_glass_brick_slab": "玄武岩質ガラスレンガのハーフブロック", "block.mineralogy.basaltic_glass_smooth": "磨かれた玄武岩質ガラス", - "block.mineralogy.basaltic_glass_smooth_stairs": "玄武岩質ガラスの磨かれた階段", - "block.mineralogy.basaltic_glass_smooth_slab": "玄武岩質ガラス研磨スラブ", - "block.mineralogy.basaltic_glass_smooth_brick": "玄武岩質ガラス磨きレンガ", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "玄武岩質ガラスの磨かれたレンガの階段", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "玄武岩質ガラスの磨かれたレンガのスラブ", - "block.mineralogy.basaltic_glass_wall": "玄武岩質ガラス壁", - "block.mineralogy.basaltic_glass_brick_wall": "玄武岩質ガラスレンガ壁", - "block.mineralogy.basaltic_glass_smooth_wall": "玄武岩質ガラスの磨かれた壁", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "玄武岩質ガラスの磨かれたレンガの壁", - "block.mineralogy.basaltic_glass_furnace": "玄武岩質ガラス炉", - "block.mineralogy.basaltic_glass_brick_furnace": "玄武岩質ガラスレンガ炉", - "block.mineralogy.basaltic_glass_smooth_furnace": "玄武岩質ガラス研磨炉", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "玄武岩質ガラス磨きレンガ炉", + "block.mineralogy.basaltic_glass_smooth_stairs": "磨かれた玄武岩質ガラスの階段", + "block.mineralogy.basaltic_glass_smooth_slab": "磨かれた玄武岩質ガラスのハーフブロック", + "block.mineralogy.basaltic_glass_smooth_brick": "磨かれた玄武岩質ガラスレンガ", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "磨かれた玄武岩質ガラスレンガの階段", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "磨かれた玄武岩質ガラスレンガのハーフブロック", + "block.mineralogy.basaltic_glass_wall": "玄武岩質ガラスの塀", + "block.mineralogy.basaltic_glass_brick_wall": "玄武岩質ガラスレンガの塀", + "block.mineralogy.basaltic_glass_smooth_wall": "磨かれた玄武岩質ガラスの塀", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "磨かれた玄武岩質ガラスレンガの塀", + "block.mineralogy.basaltic_glass_furnace": "玄武岩質ガラスのかまど", + "block.mineralogy.basaltic_glass_brick_furnace": "玄武岩質ガラスレンガのかまど", + "block.mineralogy.basaltic_glass_smooth_furnace": "磨かれた玄武岩質ガラスのかまど", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "磨かれた玄武岩質ガラスレンガのかまど", "block.mineralogy.scoria": "スコリア", "block.mineralogy.scoria_stairs": "スコリアの階段", - "block.mineralogy.scoria_slab": "スコリア板", + "block.mineralogy.scoria_slab": "スコリアのハーフブロック", "block.mineralogy.scoria_brick": "スコリアレンガ", "block.mineralogy.scoria_brick_stairs": "スコリアレンガの階段", - "block.mineralogy.scoria_brick_slab": "スコリアレンガハーフブロック", - "block.mineralogy.scoria_smooth": "ポリッシュスコリア", - "block.mineralogy.scoria_smooth_stairs": "スコリアポリッシュ階段", - "block.mineralogy.scoria_smooth_slab": "スコリア研磨スラブ", - "block.mineralogy.scoria_smooth_brick": "スコリア磨かれたレンガ", - "block.mineralogy.scoria_smooth_brick_stairs": "スコリア磨かれたレンガの階段", - "block.mineralogy.scoria_smooth_brick_slab": "スコリアポリッシュレンガスラブ", - "block.mineralogy.scoria_wall": "スコリアの壁", - "block.mineralogy.scoria_brick_wall": "スコリアレンガ壁", - "block.mineralogy.scoria_smooth_wall": "スコリア研磨壁", - "block.mineralogy.scoria_smooth_brick_wall": "スコリア磨かれたレンガの壁", - "block.mineralogy.scoria_furnace": "スコリア炉", - "block.mineralogy.scoria_brick_furnace": "スコリア煉瓦炉", - "block.mineralogy.scoria_smooth_furnace": "スコリア研磨炉", - "block.mineralogy.scoria_smooth_brick_furnace": "スコリア磨かれたレンガ炉", - "block.mineralogy.tuff": "タフ", + "block.mineralogy.scoria_brick_slab": "スコリアレンガのハーフブロック", + "block.mineralogy.scoria_smooth": "磨かれたスコリア", + "block.mineralogy.scoria_smooth_stairs": "磨かれたスコリアの階段", + "block.mineralogy.scoria_smooth_slab": "磨かれたスコリアのハーフブロック", + "block.mineralogy.scoria_smooth_brick": "磨かれたスコリアレンガ", + "block.mineralogy.scoria_smooth_brick_stairs": "磨かれたスコリアレンガの階段", + "block.mineralogy.scoria_smooth_brick_slab": "磨かれたスコリアレンガのハーフブロック", + "block.mineralogy.scoria_wall": "スコリアの塀", + "block.mineralogy.scoria_brick_wall": "スコリアレンガの塀", + "block.mineralogy.scoria_smooth_wall": "磨かれたスコリアの塀", + "block.mineralogy.scoria_smooth_brick_wall": "磨かれたスコリアレンガの塀", + "block.mineralogy.scoria_furnace": "スコリアのかまど", + "block.mineralogy.scoria_brick_furnace": "スコリアレンガのかまど", + "block.mineralogy.scoria_smooth_furnace": "磨かれたスコリアのかまど", + "block.mineralogy.scoria_smooth_brick_furnace": "磨かれたスコリアレンガのかまど", + "block.mineralogy.tuff": "凝灰岩", "block.mineralogy.tuff_stairs": "凝灰岩の階段", - "block.mineralogy.tuff_slab": "凝灰岩スラブ", - "block.mineralogy.tuff_brick": "タフブリック", + "block.mineralogy.tuff_slab": "凝灰岩のハーフブロック", + "block.mineralogy.tuff_brick": "凝灰岩レンガ", "block.mineralogy.tuff_brick_stairs": "凝灰岩レンガの階段", - "block.mineralogy.tuff_brick_slab": "凝灰岩レンガ板", + "block.mineralogy.tuff_brick_slab": "凝灰岩レンガのハーフブロック", "block.mineralogy.tuff_smooth": "磨かれた凝灰岩", - "block.mineralogy.tuff_smooth_stairs": "凝灰岩で磨かれた階段", - "block.mineralogy.tuff_smooth_slab": "凝灰岩研磨スラブ", - "block.mineralogy.tuff_smooth_brick": "凝灰岩磨きレンガ", - "block.mineralogy.tuff_smooth_brick_stairs": "凝灰岩磨かれたレンガの階段", - "block.mineralogy.tuff_smooth_brick_slab": "凝灰岩研磨レンガスラブ", - "block.mineralogy.tuff_wall": "凝灰岩の壁", - "block.mineralogy.tuff_brick_wall": "凝灰岩レンガの壁", - "block.mineralogy.tuff_smooth_wall": "凝灰岩の磨かれた壁", - "block.mineralogy.tuff_smooth_brick_wall": "凝灰岩の磨かれたレンガの壁", - "block.mineralogy.tuff_furnace": "凝灰岩炉", - "block.mineralogy.tuff_brick_furnace": "凝灰岩レンガ炉", - "block.mineralogy.tuff_smooth_furnace": "凝灰岩研磨炉", - "block.mineralogy.tuff_smooth_brick_furnace": "凝灰岩磨きレンガ炉", + "block.mineralogy.tuff_smooth_stairs": "磨かれた凝灰岩の階段", + "block.mineralogy.tuff_smooth_slab": "磨かれた凝灰岩のハーフブロック", + "block.mineralogy.tuff_smooth_brick": "磨かれた凝灰岩レンガ", + "block.mineralogy.tuff_smooth_brick_stairs": "磨かれた凝灰岩レンガの階段", + "block.mineralogy.tuff_smooth_brick_slab": "磨かれた凝灰岩レンガのハーフブロック", + "block.mineralogy.tuff_wall": "凝灰岩の塀", + "block.mineralogy.tuff_brick_wall": "凝灰岩レンガの塀", + "block.mineralogy.tuff_smooth_wall": "磨かれた凝灰岩の塀", + "block.mineralogy.tuff_smooth_brick_wall": "磨かれた凝灰岩レンガの塀", + "block.mineralogy.tuff_furnace": "凝灰岩のかまど", + "block.mineralogy.tuff_brick_furnace": "凝灰岩レンガのかまど", + "block.mineralogy.tuff_smooth_furnace": "磨かれた凝灰岩のかまど", + "block.mineralogy.tuff_smooth_brick_furnace": "磨かれた凝灰岩レンガのかまど", "block.mineralogy.siltstone": "シルト岩", "block.mineralogy.siltstone_stairs": "シルト岩の階段", - "block.mineralogy.siltstone_slab": "シルト岩の板", + "block.mineralogy.siltstone_slab": "シルト岩のハーフブロック", "block.mineralogy.siltstone_brick": "シルト岩レンガ", - "block.mineralogy.siltstone_brick_stairs": "シルト岩のレンガの階段", - "block.mineralogy.siltstone_brick_slab": "シルト岩レンガ板", + "block.mineralogy.siltstone_brick_stairs": "シルト岩レンガの階段", + "block.mineralogy.siltstone_brick_slab": "シルト岩レンガのハーフブロック", "block.mineralogy.siltstone_smooth": "磨かれたシルト岩", - "block.mineralogy.siltstone_smooth_stairs": "シルト岩で磨かれた階段", - "block.mineralogy.siltstone_smooth_slab": "シルト岩研磨スラブ", - "block.mineralogy.siltstone_smooth_brick": "シルト岩磨きレンガ", - "block.mineralogy.siltstone_smooth_brick_stairs": "シルト岩で磨かれたレンガの階段", - "block.mineralogy.siltstone_smooth_brick_slab": "シルト岩で磨かれたレンガのスラブ", - "block.mineralogy.siltstone_wall": "シルト岩の壁", - "block.mineralogy.siltstone_brick_wall": "シルト岩のレンガの壁", - "block.mineralogy.siltstone_smooth_wall": "シルト岩で磨かれた壁", - "block.mineralogy.siltstone_smooth_brick_wall": "シルト岩で磨かれたレンガの壁", - "block.mineralogy.siltstone_furnace": "シルト岩炉", - "block.mineralogy.siltstone_brick_furnace": "シルト石レンガ炉", - "block.mineralogy.siltstone_smooth_furnace": "シルト岩研磨炉", - "block.mineralogy.siltstone_smooth_brick_furnace": "シルト岩磨きレンガ炉", + "block.mineralogy.siltstone_smooth_stairs": "磨かれたシルト岩の階段", + "block.mineralogy.siltstone_smooth_slab": "磨かれたシルト岩のハーフブロック", + "block.mineralogy.siltstone_smooth_brick": "磨かれたシルト岩レンガ", + "block.mineralogy.siltstone_smooth_brick_stairs": "磨かれたシルト岩レンガの階段", + "block.mineralogy.siltstone_smooth_brick_slab": "磨かれたシルト岩レンガのハーフブロック", + "block.mineralogy.siltstone_wall": "シルト岩の塀", + "block.mineralogy.siltstone_brick_wall": "シルト岩レンガの塀", + "block.mineralogy.siltstone_smooth_wall": "磨かれたシルト岩の塀", + "block.mineralogy.siltstone_smooth_brick_wall": "磨かれたシルト岩レンガの塀", + "block.mineralogy.siltstone_furnace": "シルト岩のかまど", + "block.mineralogy.siltstone_brick_furnace": "シルト岩レンガのかまど", + "block.mineralogy.siltstone_smooth_furnace": "磨かれたシルト岩のかまど", + "block.mineralogy.siltstone_smooth_brick_furnace": "磨かれたシルト岩レンガのかまど", "block.mineralogy.rock_salt": "岩塩", "block.mineralogy.rock_salt_stairs": "岩塩の階段", - "block.mineralogy.rock_salt_slab": "岩塩の板", + "block.mineralogy.rock_salt_slab": "岩塩のハーフブロック", "block.mineralogy.rock_salt_brick": "岩塩レンガ", - "block.mineralogy.rock_salt_brick_stairs": "岩塩レンガ階段", - "block.mineralogy.rock_salt_brick_slab": "岩塩レンガ板", - "block.mineralogy.rock_salt_smooth": "磨き岩塩", - "block.mineralogy.rock_salt_smooth_stairs": "岩塩磨き階段", - "block.mineralogy.rock_salt_smooth_slab": "岩塩研磨スラブ", - "block.mineralogy.rock_salt_smooth_brick": "岩塩磨きレンガ", - "block.mineralogy.rock_salt_smooth_brick_stairs": "岩塩磨きレンガ階段", - "block.mineralogy.rock_salt_smooth_brick_slab": "岩塩磨きレンガ板", - "block.mineralogy.rock_salt_wall": "岩塩の壁", - "block.mineralogy.rock_salt_brick_wall": "岩塩レンガ壁", - "block.mineralogy.rock_salt_smooth_wall": "岩塩磨き壁", - "block.mineralogy.rock_salt_smooth_brick_wall": "岩塩で磨いたレンガの壁", - "block.mineralogy.rock_salt_furnace": "岩塩炉", - "block.mineralogy.rock_salt_brick_furnace": "岩塩煉瓦炉", - "block.mineralogy.rock_salt_smooth_furnace": "岩塩磨き炉", - "block.mineralogy.rock_salt_smooth_brick_furnace": "岩塩磨きレンガ炉", + "block.mineralogy.rock_salt_brick_stairs": "岩塩レンガの階段", + "block.mineralogy.rock_salt_brick_slab": "岩塩レンガのハーフブロック", + "block.mineralogy.rock_salt_smooth": "磨かれた岩塩", + "block.mineralogy.rock_salt_smooth_stairs": "磨かれた岩塩の階段", + "block.mineralogy.rock_salt_smooth_slab": "磨かれた岩塩のハーフブロック", + "block.mineralogy.rock_salt_smooth_brick": "磨かれた岩塩レンガ", + "block.mineralogy.rock_salt_smooth_brick_stairs": "磨かれた岩塩レンガの階段", + "block.mineralogy.rock_salt_smooth_brick_slab": "磨かれた岩塩レンガのハーフブロック", + "block.mineralogy.rock_salt_wall": "岩塩の塀", + "block.mineralogy.rock_salt_brick_wall": "岩塩レンガの塀", + "block.mineralogy.rock_salt_smooth_wall": "磨かれた岩塩の塀", + "block.mineralogy.rock_salt_smooth_brick_wall": "磨かれた岩塩レンガの塀", + "block.mineralogy.rock_salt_furnace": "岩塩のかまど", + "block.mineralogy.rock_salt_brick_furnace": "岩塩レンガのかまど", + "block.mineralogy.rock_salt_smooth_furnace": "磨かれた岩塩のかまど", + "block.mineralogy.rock_salt_smooth_brick_furnace": "磨かれた岩塩レンガのかまど", "block.mineralogy.hornfels": "ホルンフェルス", "block.mineralogy.hornfels_stairs": "ホルンフェルスの階段", - "block.mineralogy.hornfels_slab": "ホルンフェルス板", + "block.mineralogy.hornfels_slab": "ホルンフェルスのハーフブロック", "block.mineralogy.hornfels_brick": "ホルンフェルスレンガ", - "block.mineralogy.hornfels_brick_stairs": "ホルンフェルスのレンガ階段", - "block.mineralogy.hornfels_brick_slab": "ホルンフェルスのレンガ板", - "block.mineralogy.hornfels_smooth": "ポリッシュドホルンフェルス", - "block.mineralogy.hornfels_smooth_stairs": "ホルンフェルスの磨かれた階段", - "block.mineralogy.hornfels_smooth_slab": "ホルンフェルス研磨スラブ", - "block.mineralogy.hornfels_smooth_brick": "ホルンフェルス磨きレンガ", - "block.mineralogy.hornfels_smooth_brick_stairs": "ホルンフェルスの磨かれたレンガの階段", - "block.mineralogy.hornfels_smooth_brick_slab": "ホルンフェルス磨きレンガ板", - "block.mineralogy.hornfels_wall": "ホルンフェルスの壁", - "block.mineralogy.hornfels_brick_wall": "ホルンフェルスのレンガの壁", - "block.mineralogy.hornfels_smooth_wall": "ホルンフェルスの磨かれた壁", - "block.mineralogy.hornfels_smooth_brick_wall": "ホルンフェルスの磨かれたレンガの壁", - "block.mineralogy.hornfels_furnace": "ホルンフェルス炉", - "block.mineralogy.hornfels_brick_furnace": "ホルンフェルス煉瓦炉", - "block.mineralogy.hornfels_smooth_furnace": "ホルンフェルス研磨炉", - "block.mineralogy.hornfels_smooth_brick_furnace": "ホルンフェルス磨きレンガ炉", - "block.mineralogy.quartzite": "クォーツァイト", - "block.mineralogy.quartzite_stairs": "珪岩の階段", - "block.mineralogy.quartzite_slab": "珪岩スラブ", - "block.mineralogy.quartzite_brick": "珪岩レンガ", - "block.mineralogy.quartzite_brick_stairs": "珪岩レンガの階段", - "block.mineralogy.quartzite_brick_slab": "珪岩レンガ板", - "block.mineralogy.quartzite_smooth": "磨かれた珪岩", - "block.mineralogy.quartzite_smooth_stairs": "珪岩の磨かれた階段", - "block.mineralogy.quartzite_smooth_slab": "珪岩研磨スラブ", - "block.mineralogy.quartzite_smooth_brick": "珪岩磨きレンガ", - "block.mineralogy.quartzite_smooth_brick_stairs": "珪岩の磨かれたレンガの階段", - "block.mineralogy.quartzite_smooth_brick_slab": "珪岩の磨かれたレンガのスラブ", - "block.mineralogy.quartzite_wall": "珪岩の壁", - "block.mineralogy.quartzite_brick_wall": "珪岩レンガの壁", - "block.mineralogy.quartzite_smooth_wall": "珪岩の磨かれた壁", - "block.mineralogy.quartzite_smooth_brick_wall": "珪岩の磨かれたレンガの壁", - "block.mineralogy.quartzite_furnace": "珪岩炉", - "block.mineralogy.quartzite_brick_furnace": "珪岩レンガ炉", - "block.mineralogy.quartzite_smooth_furnace": "珪岩研磨炉", - "block.mineralogy.quartzite_smooth_brick_furnace": "珪岩磨きレンガ炉", + "block.mineralogy.hornfels_brick_stairs": "ホルンフェルスレンガの階段", + "block.mineralogy.hornfels_brick_slab": "ホルンフェルスレンガのハーフブロック", + "block.mineralogy.hornfels_smooth": "磨かれたホルンフェルス", + "block.mineralogy.hornfels_smooth_stairs": "磨かれたホルンフェルスの階段", + "block.mineralogy.hornfels_smooth_slab": "磨かれたホルンフェルスのハーフブロック", + "block.mineralogy.hornfels_smooth_brick": "磨かれたホルンフェルスレンガ", + "block.mineralogy.hornfels_smooth_brick_stairs": "磨かれたホルンフェルスレンガの階段", + "block.mineralogy.hornfels_smooth_brick_slab": "磨かれたホルンフェルスレンガのハーフブロック", + "block.mineralogy.hornfels_wall": "ホルンフェルスの塀", + "block.mineralogy.hornfels_brick_wall": "ホルンフェルスレンガの塀", + "block.mineralogy.hornfels_smooth_wall": "磨かれたホルンフェルスの塀", + "block.mineralogy.hornfels_smooth_brick_wall": "磨かれたホルンフェルスレンガの塀", + "block.mineralogy.hornfels_furnace": "ホルンフェルスのかまど", + "block.mineralogy.hornfels_brick_furnace": "ホルンフェルスレンガのかまど", + "block.mineralogy.hornfels_smooth_furnace": "磨かれたホルンフェルスのかまど", + "block.mineralogy.hornfels_smooth_brick_furnace": "磨かれたホルンフェルスレンガのかまど", + "block.mineralogy.quartzite": "石英岩", + "block.mineralogy.quartzite_stairs": "石英岩の階段", + "block.mineralogy.quartzite_slab": "石英岩のハーフブロック", + "block.mineralogy.quartzite_brick": "石英岩レンガ", + "block.mineralogy.quartzite_brick_stairs": "石英岩レンガの階段", + "block.mineralogy.quartzite_brick_slab": "石英岩レンガのハーフブロック", + "block.mineralogy.quartzite_smooth": "磨かれた石英岩", + "block.mineralogy.quartzite_smooth_stairs": "磨かれた石英岩の階段", + "block.mineralogy.quartzite_smooth_slab": "磨かれた石英岩のハーフブロック", + "block.mineralogy.quartzite_smooth_brick": "磨かれた石英岩レンガ", + "block.mineralogy.quartzite_smooth_brick_stairs": "磨かれた石英岩レンガの階段", + "block.mineralogy.quartzite_smooth_brick_slab": "磨かれた石英岩レンガのハーフブロック", + "block.mineralogy.quartzite_wall": "石英岩の塀", + "block.mineralogy.quartzite_brick_wall": "石英岩レンガの塀", + "block.mineralogy.quartzite_smooth_wall": "磨かれた石英岩の塀", + "block.mineralogy.quartzite_smooth_brick_wall": "磨かれた石英岩レンガの塀", + "block.mineralogy.quartzite_furnace": "石英岩のかまど", + "block.mineralogy.quartzite_brick_furnace": "石英岩レンガのかまど", + "block.mineralogy.quartzite_smooth_furnace": "磨かれた石英岩のかまど", + "block.mineralogy.quartzite_smooth_brick_furnace": "磨かれた石英岩レンガのかまど", "block.mineralogy.novaculite": "ノバキュライト", "block.mineralogy.novaculite_stairs": "ノバキュライトの階段", - "block.mineralogy.novaculite_slab": "ノバキュライトスラブ", + "block.mineralogy.novaculite_slab": "ノバキュライトのハーフブロック", "block.mineralogy.novaculite_brick": "ノバキュライトレンガ", "block.mineralogy.novaculite_brick_stairs": "ノバキュライトレンガの階段", - "block.mineralogy.novaculite_brick_slab": "ノバキュライト レンガ スラブ", - "block.mineralogy.novaculite_smooth": "ポリッシュドノバキュライト", - "block.mineralogy.novaculite_smooth_stairs": "ノバキュライトの磨かれた階段", - "block.mineralogy.novaculite_smooth_slab": "ノバキュライト研磨スラブ", - "block.mineralogy.novaculite_smooth_brick": "ノバキュライト磨きレンガ", - "block.mineralogy.novaculite_smooth_brick_stairs": "ノバキュライトの磨かれたレンガの階段", - "block.mineralogy.novaculite_smooth_brick_slab": "ノバキュライトポリッシュレンガスラブ", - "block.mineralogy.novaculite_wall": "ノバキュライトの壁", - "block.mineralogy.novaculite_brick_wall": "ノバキュライトのレンガの壁", - "block.mineralogy.novaculite_smooth_wall": "ノバキュライトの磨かれた壁", - "block.mineralogy.novaculite_smooth_brick_wall": "ノバキュライトの磨かれたレンガ壁", - "block.mineralogy.novaculite_furnace": "ノバキュライト炉", - "block.mineralogy.novaculite_brick_furnace": "ノバキュライトレンガ炉", - "block.mineralogy.novaculite_smooth_furnace": "ノバキュライト研磨炉", - "block.mineralogy.novaculite_smooth_brick_furnace": "ノバキュライト磨きレンガ炉", + "block.mineralogy.novaculite_brick_slab": "ノバキュライトレンガのハーフブロック", + "block.mineralogy.novaculite_smooth": "磨かれたノバキュライト", + "block.mineralogy.novaculite_smooth_stairs": "磨かれたノバキュライトの階段", + "block.mineralogy.novaculite_smooth_slab": "磨かれたノバキュライトのハーフブロック", + "block.mineralogy.novaculite_smooth_brick": "磨かれたノバキュライトレンガ", + "block.mineralogy.novaculite_smooth_brick_stairs": "磨かれたノバキュライトレンガの階段", + "block.mineralogy.novaculite_smooth_brick_slab": "磨かれたノバキュライトレンガのハーフブロック", + "block.mineralogy.novaculite_wall": "ノバキュライトの塀", + "block.mineralogy.novaculite_brick_wall": "ノバキュライトレンガの塀", + "block.mineralogy.novaculite_smooth_wall": "磨かれたノバキュライトの塀", + "block.mineralogy.novaculite_smooth_brick_wall": "磨かれたノバキュライトレンガの塀", + "block.mineralogy.novaculite_furnace": "ノバキュライトのかまど", + "block.mineralogy.novaculite_brick_furnace": "ノバキュライトレンガのかまど", + "block.mineralogy.novaculite_smooth_furnace": "磨かれたノバキュライトのかまど", + "block.mineralogy.novaculite_smooth_brick_furnace": "磨かれたノバキュライトレンガのかまど", "block.mineralogy.chalk": "チョーク", - "item.mineralogy.chalk_dust": "チョークパウダー", + "item.mineralogy.chalk_dust": "チョーク粉末", "item.mineralogy.salt_dust": "塩", "item.mineralogy.rock_salt_dust": "岩塩の結晶", "block.mineralogy.rocksaltlamp": "岩塩ランプ", - "block.mineralogy.rocksaltstreetlamp": "岩塩街路灯", - "block.mineralogy.andesite_relief_axe": "安山岩の斧レリーフ", - "block.mineralogy.andesite_relief_blank": "安山岩のブランク レリーフ", - "block.mineralogy.andesite_relief_cross": "安山岩の十字レリーフ", - "block.mineralogy.andesite_relief_hammer": "安山岩のハンマーレリーフ", - "block.mineralogy.andesite_relief_hoe": "安山岩の鍬レリーフ", - "block.mineralogy.andesite_relief_horizontal": "安山岩の水平レリーフ", - "block.mineralogy.andesite_relief_i": "安山岩 I レリーフ", - "block.mineralogy.andesite_relief_left": "安山岩の左レリーフ", - "block.mineralogy.andesite_relief_pickaxe": "安山岩のつるはしレリーフ", - "block.mineralogy.andesite_relief_plus": "安山岩プラス レリーフ", - "block.mineralogy.andesite_relief_right": "安山岩の右レリーフ", - "block.mineralogy.andesite_relief_sword": "安山岩の剣レリーフ", - "block.mineralogy.andesite_relief_vertical": "安山岩の垂直レリーフ", - "block.mineralogy.basalt_relief_axe": "玄武岩の斧のレリーフ", - "block.mineralogy.basalt_relief_blank": "玄武岩のブランクレリーフ", - "block.mineralogy.basalt_relief_cross": "玄武岩クロスレリーフ", - "block.mineralogy.basalt_relief_hammer": "玄武岩ハンマーレリーフ", - "block.mineralogy.basalt_relief_hoe": "玄武岩の鍬レリーフ", - "block.mineralogy.basalt_relief_horizontal": "玄武岩の水平レリーフ", - "block.mineralogy.basalt_relief_i": "玄武岩 I レリーフ", - "block.mineralogy.basalt_relief_left": "玄武岩の左レリーフ", - "block.mineralogy.basalt_relief_pickaxe": "玄武岩のつるはしレリーフ", - "block.mineralogy.basalt_relief_plus": "バサルトプラス レリーフ", - "block.mineralogy.basalt_relief_right": "玄武岩の右レリーフ", - "block.mineralogy.basalt_relief_sword": "玄武岩の剣のレリーフ", - "block.mineralogy.basalt_relief_vertical": "玄武岩の垂直レリーフ", - "block.mineralogy.diorite_relief_axe": "閃緑岩の斧のレリーフ", - "block.mineralogy.diorite_relief_blank": "閃緑岩のブランクレリーフ", - "block.mineralogy.diorite_relief_cross": "閃緑岩のクロスレリーフ", - "block.mineralogy.diorite_relief_hammer": "閃緑岩のハンマーレリーフ", - "block.mineralogy.diorite_relief_hoe": "閃緑岩の鍬レリーフ", - "block.mineralogy.diorite_relief_horizontal": "閃緑岩の水平レリーフ", - "block.mineralogy.diorite_relief_i": "閃緑岩 I レリーフ", - "block.mineralogy.diorite_relief_left": "閃緑岩の左レリーフ", - "block.mineralogy.diorite_relief_pickaxe": "閃緑岩のつるはしレリーフ", - "block.mineralogy.diorite_relief_plus": "閃緑岩プラス レリーフ", - "block.mineralogy.diorite_relief_right": "閃緑岩の右レリーフ", - "block.mineralogy.diorite_relief_sword": "閃緑岩の剣のレリーフ", - "block.mineralogy.diorite_relief_vertical": "閃緑岩の垂直レリーフ", - "block.mineralogy.granite_relief_axe": "花崗岩の斧のレリーフ", - "block.mineralogy.granite_relief_blank": "花崗岩のブランクレリーフ", - "block.mineralogy.granite_relief_cross": "花崗岩の十字レリーフ", - "block.mineralogy.granite_relief_hammer": "花崗岩のハンマーレリーフ", - "block.mineralogy.granite_relief_hoe": "花崗岩の鍬レリーフ", - "block.mineralogy.granite_relief_horizontal": "花崗岩の水平レリーフ", - "block.mineralogy.granite_relief_i": "花崗岩 I レリーフ", - "block.mineralogy.granite_relief_left": "花崗岩の左レリーフ", - "block.mineralogy.granite_relief_pickaxe": "花崗岩のつるはしレリーフ", - "block.mineralogy.granite_relief_plus": "御影石プラス レリーフ", - "block.mineralogy.granite_relief_right": "花崗岩の右レリーフ", - "block.mineralogy.granite_relief_sword": "花崗岩の剣レリーフ", - "block.mineralogy.granite_relief_vertical": "花崗岩の垂直レリーフ", - "block.mineralogy.rhyolite_relief_axe": "流紋岩の斧のレリーフ", - "block.mineralogy.rhyolite_relief_blank": "流紋岩のブランクレリーフ", - "block.mineralogy.rhyolite_relief_cross": "流紋岩クロスレリーフ", - "block.mineralogy.rhyolite_relief_hammer": "流紋岩のハンマーレリーフ", - "block.mineralogy.rhyolite_relief_hoe": "流紋岩の鍬レリーフ", - "block.mineralogy.rhyolite_relief_horizontal": "流紋岩の水平レリーフ", - "block.mineralogy.rhyolite_relief_i": "流紋岩 I レリーフ", - "block.mineralogy.rhyolite_relief_left": "流紋岩の左レリーフ", - "block.mineralogy.rhyolite_relief_pickaxe": "流紋岩のつるはしレリーフ", - "block.mineralogy.rhyolite_relief_plus": "流紋岩プラス レリーフ", - "block.mineralogy.rhyolite_relief_right": "流紋岩の右レリーフ", - "block.mineralogy.rhyolite_relief_sword": "流紋岩の剣レリーフ", - "block.mineralogy.rhyolite_relief_vertical": "流紋岩の垂直レリーフ", - "block.mineralogy.pegmatite_relief_axe": "ペグマタイトアックス レリーフ", - "block.mineralogy.pegmatite_relief_blank": "ペグマタイト ブランク レリーフ", - "block.mineralogy.pegmatite_relief_cross": "ペグマタイト クロス レリーフ", - "block.mineralogy.pegmatite_relief_hammer": "ペグマタイトハンマーレリーフ", - "block.mineralogy.pegmatite_relief_hoe": "ペグマタイトのクワ レリーフ", - "block.mineralogy.pegmatite_relief_horizontal": "ペグマタイトの水平レリーフ", - "block.mineralogy.pegmatite_relief_i": "ペグマタイト I レリーフ", - "block.mineralogy.pegmatite_relief_left": "ペグマタイト左レリーフ", - "block.mineralogy.pegmatite_relief_pickaxe": "ペグマタイトのつるはしレリーフ", - "block.mineralogy.pegmatite_relief_plus": "ペグマタイトプラスレリーフ", - "block.mineralogy.pegmatite_relief_right": "ペグマタイト右レリーフ", - "block.mineralogy.pegmatite_relief_sword": "ペグマタイト剣レリーフ", - "block.mineralogy.pegmatite_relief_vertical": "ペグマタイトの垂直レリーフ", - "block.mineralogy.shale_relief_axe": "シェールアックス レリーフ", - "block.mineralogy.shale_relief_blank": "シェールブランクレリーフ", - "block.mineralogy.shale_relief_cross": "シェールクロスリリーフ", - "block.mineralogy.shale_relief_hammer": "シェールハンマーレリーフ", - "block.mineralogy.shale_relief_hoe": "頁岩鍬レリーフ", - "block.mineralogy.shale_relief_horizontal": "頁岩の水平起伏", - "block.mineralogy.shale_relief_i": "シェール I リリーフ", - "block.mineralogy.shale_relief_left": "シェール左リリーフ", - "block.mineralogy.shale_relief_pickaxe": "頁岩のつるはしレリーフ", - "block.mineralogy.shale_relief_plus": "シェールプラス・リリーフ", - "block.mineralogy.shale_relief_right": "シェール権救済", - "block.mineralogy.shale_relief_sword": "頁岩の剣のレリーフ", - "block.mineralogy.shale_relief_vertical": "頁岩の垂直起伏", - "block.mineralogy.conglomerate_relief_axe": "複合企業の斧のレリーフ", - "block.mineralogy.conglomerate_relief_blank": "複合企業のブランク レリーフ", - "block.mineralogy.conglomerate_relief_cross": "複合企業のクロスリリーフ", - "block.mineralogy.conglomerate_relief_hammer": "複合企業のハンマーレリーフ", - "block.mineralogy.conglomerate_relief_hoe": "複合企業のホーレリーフ", - "block.mineralogy.conglomerate_relief_horizontal": "複合体の水平レリーフ", - "block.mineralogy.conglomerate_relief_i": "コングロマリット I リリーフ", - "block.mineralogy.conglomerate_relief_left": "複合企業の左救済", - "block.mineralogy.conglomerate_relief_pickaxe": "複合企業のつるはしのレリーフ", - "block.mineralogy.conglomerate_relief_plus": "コングロマリット プラス リリーフ", - "block.mineralogy.conglomerate_relief_right": "複合企業の権利救済", - "block.mineralogy.conglomerate_relief_sword": "複合企業の剣のレリーフ", - "block.mineralogy.conglomerate_relief_vertical": "複合企業の垂直レリーフ", - "block.mineralogy.dolomite_relief_axe": "ドロマイトの斧のレリーフ", - "block.mineralogy.dolomite_relief_blank": "ドロマイト ブランク レリーフ", - "block.mineralogy.dolomite_relief_cross": "ドロマイト クロス レリーフ", - "block.mineralogy.dolomite_relief_hammer": "ドロマイトハンマーレリーフ", - "block.mineralogy.dolomite_relief_hoe": "ドロマイトの鍬レリーフ", - "block.mineralogy.dolomite_relief_horizontal": "ドロマイト水平レリーフ", - "block.mineralogy.dolomite_relief_i": "ドロミテ I レリーフ", - "block.mineralogy.dolomite_relief_left": "ドロマイト左レリーフ", - "block.mineralogy.dolomite_relief_pickaxe": "ドロマイトのつるはしレリーフ", - "block.mineralogy.dolomite_relief_plus": "ドロマイト プラス リリーフ", - "block.mineralogy.dolomite_relief_right": "ドロマイト右レリーフ", - "block.mineralogy.dolomite_relief_sword": "ドロマイト剣レリーフ", - "block.mineralogy.dolomite_relief_vertical": "ドロマイト垂直レリーフ", - "block.mineralogy.limestone_relief_axe": "石灰岩の斧のレリーフ", - "block.mineralogy.limestone_relief_blank": "石灰岩のブランクレリーフ", - "block.mineralogy.limestone_relief_cross": "石灰岩のクロスレリーフ", - "block.mineralogy.limestone_relief_hammer": "石灰岩のハンマーレリーフ", - "block.mineralogy.limestone_relief_hoe": "石灰岩の鍬レリーフ", - "block.mineralogy.limestone_relief_horizontal": "石灰岩の水平レリーフ", - "block.mineralogy.limestone_relief_i": "石灰岩 I レリーフ", - "block.mineralogy.limestone_relief_left": "石灰岩の左レリーフ", - "block.mineralogy.limestone_relief_pickaxe": "石灰岩のつるはしレリーフ", - "block.mineralogy.limestone_relief_plus": "ライムストーン プラス レリーフ", - "block.mineralogy.limestone_relief_right": "石灰岩の右レリーフ", - "block.mineralogy.limestone_relief_sword": "石灰岩の剣のレリーフ", - "block.mineralogy.limestone_relief_vertical": "石灰岩の垂直レリーフ", - "block.mineralogy.marble_relief_axe": "大理石の斧のレリーフ", - "block.mineralogy.marble_relief_blank": "大理石のブランクレリーフ", - "block.mineralogy.marble_relief_cross": "大理石クロスレリーフ", - "block.mineralogy.marble_relief_hammer": "大理石のハンマーレリーフ", - "block.mineralogy.marble_relief_hoe": "大理石の鍬レリーフ", - "block.mineralogy.marble_relief_horizontal": "大理石の水平レリーフ", - "block.mineralogy.marble_relief_i": "マーブル I レリーフ", - "block.mineralogy.marble_relief_left": "大理石の左レリーフ", - "block.mineralogy.marble_relief_pickaxe": "大理石のつるはしレリーフ", - "block.mineralogy.marble_relief_plus": "マーブルプラス レリーフ", - "block.mineralogy.marble_relief_right": "大理石の右レリーフ", - "block.mineralogy.marble_relief_sword": "大理石の剣レリーフ", - "block.mineralogy.marble_relief_vertical": "大理石の垂直レリーフ", - "block.mineralogy.slate_relief_axe": "石板の斧のレリーフ", - "block.mineralogy.slate_relief_blank": "スレートブランクレリーフ", - "block.mineralogy.slate_relief_cross": "スレートクロスレリーフ", - "block.mineralogy.slate_relief_hammer": "スレートハンマーレリーフ", - "block.mineralogy.slate_relief_hoe": "スレートクワレリーフ", - "block.mineralogy.slate_relief_horizontal": "スレート水平レリーフ", - "block.mineralogy.slate_relief_i": "スレート I レリーフ", - "block.mineralogy.slate_relief_left": "スレート左レリーフ", - "block.mineralogy.slate_relief_pickaxe": "石板のつるはしレリーフ", - "block.mineralogy.slate_relief_plus": "スレートプラス レリーフ", - "block.mineralogy.slate_relief_right": "スレート右レリーフ", - "block.mineralogy.slate_relief_sword": "石板の剣のレリーフ", - "block.mineralogy.slate_relief_vertical": "スレート垂直レリーフ", - "block.mineralogy.schist_relief_axe": "シストアックス レリーフ", - "block.mineralogy.schist_relief_blank": "片岩ブランクレリーフ", - "block.mineralogy.schist_relief_cross": "シストクロスレリーフ", - "block.mineralogy.schist_relief_hammer": "シストハンマーレリーフ", - "block.mineralogy.schist_relief_hoe": "片岩鍬レリーフ", - "block.mineralogy.schist_relief_horizontal": "片岩の水平レリーフ", - "block.mineralogy.schist_relief_i": "シスト I レリーフ", - "block.mineralogy.schist_relief_left": "片岩の左レリーフ", - "block.mineralogy.schist_relief_pickaxe": "片岩のつるはしレリーフ", - "block.mineralogy.schist_relief_plus": "シストプラスレリーフ", - "block.mineralogy.schist_relief_right": "片岩の右レリーフ", - "block.mineralogy.schist_relief_sword": "片岩剣レリーフ", - "block.mineralogy.schist_relief_vertical": "片岩の垂直レリーフ", - "block.mineralogy.gneiss_relief_axe": "片麻岩の斧のレリーフ", - "block.mineralogy.gneiss_relief_blank": "片麻岩のブランク レリーフ", - "block.mineralogy.gneiss_relief_cross": "片麻岩クロスレリーフ", - "block.mineralogy.gneiss_relief_hammer": "片麻岩ハンマーレリーフ", - "block.mineralogy.gneiss_relief_hoe": "片麻岩の鍬レリーフ", - "block.mineralogy.gneiss_relief_horizontal": "片麻岩の水平起伏", - "block.mineralogy.gneiss_relief_i": "片麻岩 I レリーフ", - "block.mineralogy.gneiss_relief_left": "片麻岩左レリーフ", - "block.mineralogy.gneiss_relief_pickaxe": "片麻岩のつるはしレリーフ", - "block.mineralogy.gneiss_relief_plus": "片麻岩プラス レリーフ", - "block.mineralogy.gneiss_relief_right": "片麻岩の右側のレリーフ", - "block.mineralogy.gneiss_relief_sword": "片麻岩の剣のレリーフ", - "block.mineralogy.gneiss_relief_vertical": "片麻岩の垂直起伏", - "block.mineralogy.phyllite_relief_axe": "千枚斧のレリーフ", - "block.mineralogy.phyllite_relief_blank": "千枚岩ブランクレリーフ", - "block.mineralogy.phyllite_relief_cross": "千枚岩クロスレリーフ", - "block.mineralogy.phyllite_relief_hammer": "千枚岩ハンマーレリーフ", - "block.mineralogy.phyllite_relief_hoe": "千枚岩鍬レリーフ", - "block.mineralogy.phyllite_relief_horizontal": "千枚岩水平レリーフ", - "block.mineralogy.phyllite_relief_i": "千枚岩 I レリーフ", - "block.mineralogy.phyllite_relief_left": "千枚岩左レリーフ", - "block.mineralogy.phyllite_relief_pickaxe": "千枚岩のつるはしレリーフ", - "block.mineralogy.phyllite_relief_plus": "フィライトプラスリリーフ", - "block.mineralogy.phyllite_relief_right": "千枚岩右レリーフ", - "block.mineralogy.phyllite_relief_sword": "千枚岩剣レリーフ", - "block.mineralogy.phyllite_relief_vertical": "千枚岩垂直レリーフ", - "block.mineralogy.amphibolite_relief_axe": "角閃石の斧のレリーフ", - "block.mineralogy.amphibolite_relief_blank": "角閃岩のブランク レリーフ", - "block.mineralogy.amphibolite_relief_cross": "角閃石クロスレリーフ", - "block.mineralogy.amphibolite_relief_hammer": "角閃岩のハンマーレリーフ", - "block.mineralogy.amphibolite_relief_hoe": "角閃岩の鍬レリーフ", - "block.mineralogy.amphibolite_relief_horizontal": "角閃石の水平レリーフ", - "block.mineralogy.amphibolite_relief_i": "角閃岩 I レリーフ", - "block.mineralogy.amphibolite_relief_left": "角閃岩の左レリーフ", - "block.mineralogy.amphibolite_relief_pickaxe": "角閃岩のつるはしレリーフ", - "block.mineralogy.amphibolite_relief_plus": "角閃石プラス レリーフ", - "block.mineralogy.amphibolite_relief_right": "角閃岩の右レリーフ", - "block.mineralogy.amphibolite_relief_sword": "角閃石剣レリーフ", - "block.mineralogy.amphibolite_relief_vertical": "角閃岩の垂直レリーフ", - "block.mineralogy.diabase_relief_axe": "輝緑岩の斧レリーフ", - "block.mineralogy.diabase_relief_blank": "輝緑岩ブランクレリーフ", - "block.mineralogy.diabase_relief_cross": "輝緑岩クロスレリーフ", - "block.mineralogy.diabase_relief_hammer": "輝緑岩ハンマーレリーフ", - "block.mineralogy.diabase_relief_hoe": "ダイアベースクワレリーフ", - "block.mineralogy.diabase_relief_horizontal": "輝緑岩の水平レリーフ", - "block.mineralogy.diabase_relief_i": "ダイアベース I レリーフ", - "block.mineralogy.diabase_relief_left": "ダイアベース左レリーフ", - "block.mineralogy.diabase_relief_pickaxe": "輝緑岩のつるはしレリーフ", - "block.mineralogy.diabase_relief_plus": "ダイアベースプラス レリーフ", - "block.mineralogy.diabase_relief_right": "ダイアベース右レリーフ", - "block.mineralogy.diabase_relief_sword": "ダイアベースソード レリーフ", - "block.mineralogy.diabase_relief_vertical": "輝緑岩の垂直レリーフ", - "block.mineralogy.gabbro_relief_axe": "斑れい岩斧レリーフ", - "block.mineralogy.gabbro_relief_blank": "斑れい岩ブランクレリーフ", - "block.mineralogy.gabbro_relief_cross": "斑れい岩クロスレリーフ", - "block.mineralogy.gabbro_relief_hammer": "斑れい岩ハンマーレリーフ", - "block.mineralogy.gabbro_relief_hoe": "斑れい岩鍬レリーフ", - "block.mineralogy.gabbro_relief_horizontal": "斑れい岩の水平レリーフ", - "block.mineralogy.gabbro_relief_i": "斑れい岩 I レリーフ", - "block.mineralogy.gabbro_relief_left": "斑れい岩左レリーフ", - "block.mineralogy.gabbro_relief_pickaxe": "斑れい岩のつるはしレリーフ", - "block.mineralogy.gabbro_relief_plus": "ガブロプラス レリーフ", - "block.mineralogy.gabbro_relief_right": "斑れい岩右レリーフ", - "block.mineralogy.gabbro_relief_sword": "斑れい岩剣レリーフ", - "block.mineralogy.gabbro_relief_vertical": "斑れい岩垂直レリーフ", - "block.mineralogy.peridotite_relief_axe": "かんらん岩の斧のレリーフ", - "block.mineralogy.peridotite_relief_blank": "かんらん岩ブランクレリーフ", - "block.mineralogy.peridotite_relief_cross": "かんらん岩クロスレリーフ", - "block.mineralogy.peridotite_relief_hammer": "かんらん岩ハンマーレリーフ", - "block.mineralogy.peridotite_relief_hoe": "かんらん岩の鍬レリーフ", - "block.mineralogy.peridotite_relief_horizontal": "かんらん岩の水平レリーフ", - "block.mineralogy.peridotite_relief_i": "かんらん岩 I レリーフ", - "block.mineralogy.peridotite_relief_left": "かんらん岩左レリーフ", - "block.mineralogy.peridotite_relief_pickaxe": "かんらん岩のつるはしレリーフ", - "block.mineralogy.peridotite_relief_plus": "ペリドタイトプラスレリーフ", - "block.mineralogy.peridotite_relief_right": "かんらん岩の右レリーフ", - "block.mineralogy.peridotite_relief_sword": "かんらん岩剣レリーフ", - "block.mineralogy.peridotite_relief_vertical": "かんらん岩の垂直レリーフ", - "block.mineralogy.basaltic_glass_relief_axe": "玄武岩質ガラスの斧のレリーフ", - "block.mineralogy.basaltic_glass_relief_blank": "玄武岩質ガラスのブランクレリーフ", - "block.mineralogy.basaltic_glass_relief_cross": "玄武岩質ガラスのクロスレリーフ", - "block.mineralogy.basaltic_glass_relief_hammer": "玄武岩質ガラスのハンマーレリーフ", - "block.mineralogy.basaltic_glass_relief_hoe": "玄武岩質ガラスの鍬レリーフ", - "block.mineralogy.basaltic_glass_relief_horizontal": "玄武岩質ガラスの水平レリーフ", - "block.mineralogy.basaltic_glass_relief_i": "玄武岩質ガラス I レリーフ", - "block.mineralogy.basaltic_glass_relief_left": "玄武岩質ガラス左レリーフ", - "block.mineralogy.basaltic_glass_relief_pickaxe": "玄武岩質ガラスのつるはしレリーフ", - "block.mineralogy.basaltic_glass_relief_plus": "玄武岩質ガラス プラス レリーフ", - "block.mineralogy.basaltic_glass_relief_right": "玄武岩質ガラスの右レリーフ", - "block.mineralogy.basaltic_glass_relief_sword": "玄武岩質ガラスの剣のレリーフ", - "block.mineralogy.basaltic_glass_relief_vertical": "玄武岩質ガラスの垂直レリーフ", - "block.mineralogy.scoria_relief_axe": "スコリアアックス レリーフ", - "block.mineralogy.scoria_relief_blank": "スコリア ブランク レリーフ", - "block.mineralogy.scoria_relief_cross": "スコリアクロスレリーフ", - "block.mineralogy.scoria_relief_hammer": "スコリアハンマーレリーフ", - "block.mineralogy.scoria_relief_hoe": "スコリア・ホー・レリーフ", - "block.mineralogy.scoria_relief_horizontal": "スコリア水平レリーフ", - "block.mineralogy.scoria_relief_i": "スコリア I レリーフ", - "block.mineralogy.scoria_relief_left": "スコリア左レリーフ", - "block.mineralogy.scoria_relief_pickaxe": "スコリアのつるはしレリーフ", - "block.mineralogy.scoria_relief_plus": "スコリアプラスリリーフ", - "block.mineralogy.scoria_relief_right": "スコリア右レリーフ", - "block.mineralogy.scoria_relief_sword": "スコリア剣レリーフ", - "block.mineralogy.scoria_relief_vertical": "スコリア垂直レリーフ", - "block.mineralogy.tuff_relief_axe": "タフアックスのレリーフ", - "block.mineralogy.tuff_relief_blank": "タフブランクレリーフ", - "block.mineralogy.tuff_relief_cross": "タフクロスレリーフ", - "block.mineralogy.tuff_relief_hammer": "タフハンマーレリーフ", - "block.mineralogy.tuff_relief_hoe": "タフホーレリーフ", - "block.mineralogy.tuff_relief_horizontal": "凝灰岩の水平レリーフ", - "block.mineralogy.tuff_relief_i": "タフ I レリーフ", - "block.mineralogy.tuff_relief_left": "タフレフトレリーフ", - "block.mineralogy.tuff_relief_pickaxe": "凝灰岩のつるはしのレリーフ", - "block.mineralogy.tuff_relief_plus": "タフプラスリリーフ", - "block.mineralogy.tuff_relief_right": "タフライトレリーフ", - "block.mineralogy.tuff_relief_sword": "凝灰岩の剣のレリーフ", - "block.mineralogy.tuff_relief_vertical": "凝灰岩垂直レリーフ", - "block.mineralogy.siltstone_relief_axe": "シルトストーンの斧のレリーフ", - "block.mineralogy.siltstone_relief_blank": "シルトストーンのブランク レリーフ", - "block.mineralogy.siltstone_relief_cross": "シルトストーン クロス レリーフ", - "block.mineralogy.siltstone_relief_hammer": "シルトストーンハンマーレリーフ", - "block.mineralogy.siltstone_relief_hoe": "シルトストーンの鍬レリーフ", - "block.mineralogy.siltstone_relief_horizontal": "シルト岩の水平レリーフ", - "block.mineralogy.siltstone_relief_i": "シルトストーン I レリーフ", - "block.mineralogy.siltstone_relief_left": "シルトストーン左レリーフ", - "block.mineralogy.siltstone_relief_pickaxe": "シルトストーンのつるはしレリーフ", - "block.mineralogy.siltstone_relief_plus": "シルトストーン プラス レリーフ", - "block.mineralogy.siltstone_relief_right": "シルトストーンの右レリーフ", - "block.mineralogy.siltstone_relief_sword": "シルトストーンの剣のレリーフ", - "block.mineralogy.siltstone_relief_vertical": "シルト岩の垂直レリーフ", - "block.mineralogy.rock_salt_relief_axe": "岩塩斧レリーフ", - "block.mineralogy.rock_salt_relief_blank": "岩塩ブランクレリーフ", - "block.mineralogy.rock_salt_relief_cross": "岩塩クロスレリーフ", - "block.mineralogy.rock_salt_relief_hammer": "岩塩ハンマーレリーフ", - "block.mineralogy.rock_salt_relief_hoe": "岩塩鍬レリーフ", - "block.mineralogy.rock_salt_relief_horizontal": "岩塩横レリーフ", - "block.mineralogy.rock_salt_relief_i": "岩塩 I レリーフ", - "block.mineralogy.rock_salt_relief_left": "岩塩左レリーフ", - "block.mineralogy.rock_salt_relief_pickaxe": "岩塩のつるはしレリーフ", - "block.mineralogy.rock_salt_relief_plus": "岩塩プラスリリーフ", - "block.mineralogy.rock_salt_relief_right": "岩塩右救済", - "block.mineralogy.rock_salt_relief_sword": "岩塩剣レリーフ", - "block.mineralogy.rock_salt_relief_vertical": "岩塩縦レリーフ", - "block.mineralogy.hornfels_relief_axe": "ホルンフェルスの斧のレリーフ", - "block.mineralogy.hornfels_relief_blank": "ホルンフェルスのブランクレリーフ", - "block.mineralogy.hornfels_relief_cross": "ホルンフェルスクロスレリーフ", - "block.mineralogy.hornfels_relief_hammer": "ホルンフェルスハンマーレリーフ", - "block.mineralogy.hornfels_relief_hoe": "ホルンフェルスの鍬レリーフ", - "block.mineralogy.hornfels_relief_horizontal": "ホルンフェルスの水平レリーフ", - "block.mineralogy.hornfels_relief_i": "ホルンフェルス I レリーフ", - "block.mineralogy.hornfels_relief_left": "ホルンフェルスの左リリーフ", - "block.mineralogy.hornfels_relief_pickaxe": "ホルンフェルスのつるはしレリーフ", - "block.mineralogy.hornfels_relief_plus": "ホルンフェルスプラスレリーフ", - "block.mineralogy.hornfels_relief_right": "ホルンフェルスの右レリーフ", - "block.mineralogy.hornfels_relief_sword": "ホルンフェルス剣のレリーフ", - "block.mineralogy.hornfels_relief_vertical": "ホルンフェルスの垂直レリーフ", - "block.mineralogy.quartzite_relief_axe": "珪岩の斧のレリーフ", - "block.mineralogy.quartzite_relief_blank": "珪岩ブランクレリーフ", - "block.mineralogy.quartzite_relief_cross": "クォーツァイト クロス レリーフ", - "block.mineralogy.quartzite_relief_hammer": "珪岩ハンマーレリーフ", - "block.mineralogy.quartzite_relief_hoe": "珪岩の鍬レリーフ", - "block.mineralogy.quartzite_relief_horizontal": "珪岩の水平レリーフ", - "block.mineralogy.quartzite_relief_i": "クォーツァイト I レリーフ", - "block.mineralogy.quartzite_relief_left": "珪岩左レリーフ", - "block.mineralogy.quartzite_relief_pickaxe": "珪岩のつるはしレリーフ", - "block.mineralogy.quartzite_relief_plus": "クォーツァイト プラス レリーフ", - "block.mineralogy.quartzite_relief_right": "珪岩右レリーフ", - "block.mineralogy.quartzite_relief_sword": "珪岩剣レリーフ", - "block.mineralogy.quartzite_relief_vertical": "珪岩の垂直レリーフ", - "block.mineralogy.novaculite_relief_axe": "ノバキュライトアックスレリーフ", - "block.mineralogy.novaculite_relief_blank": "ノバキュライト ブランク レリーフ", - "block.mineralogy.novaculite_relief_cross": "ノバキュライト クロス レリーフ", - "block.mineralogy.novaculite_relief_hammer": "ノバキュライト ハンマー レリーフ", - "block.mineralogy.novaculite_relief_hoe": "ノバキュライト ホー レリーフ", - "block.mineralogy.novaculite_relief_horizontal": "ノバキュライトの水平レリーフ", - "block.mineralogy.novaculite_relief_i": "ノバキュライト I レリーフ", - "block.mineralogy.novaculite_relief_left": "ノバキュライト左レリーフ", - "block.mineralogy.novaculite_relief_pickaxe": "ノバキュライトのつるはしレリーフ", - "block.mineralogy.novaculite_relief_plus": "ノバキュライト プラス リリーフ", - "block.mineralogy.novaculite_relief_right": "ノバキュライト右レリーフ", - "block.mineralogy.novaculite_relief_sword": "ノバキュライトソードレリーフ", - "block.mineralogy.novaculite_relief_vertical": "ノバキュライト垂直レリーフ", - "advancements.mineralogy.all_the_rocks.title": "岩をルードと呼べ!", - "advancements.mineralogy.all_the_rocks.description": "わお、鉱物学の標準的な岩石のタイプをすべて見つけました!", - "fluid.mineralogy.crude_oil": "原油", - "block.mineralogy.crude_oil": "原油", - "item.mineralogy.crude_oil_bucket": "原油バケツ", + "block.mineralogy.rocksaltstreetlamp": "岩塩街灯", + "block.mineralogy.andesite_relief_axe": "安山岩のレリーフ(斧)", + "block.mineralogy.andesite_relief_blank": "安山岩のレリーフ(無地)", + "block.mineralogy.andesite_relief_cross": "安山岩のレリーフ(十字)", + "block.mineralogy.andesite_relief_hammer": "安山岩のレリーフ(ハンマー)", + "block.mineralogy.andesite_relief_hoe": "安山岩のレリーフ(クワ)", + "block.mineralogy.andesite_relief_horizontal": "安山岩のレリーフ(横)", + "block.mineralogy.andesite_relief_i": "安山岩のレリーフ(I)", + "block.mineralogy.andesite_relief_left": "安山岩のレリーフ(左)", + "block.mineralogy.andesite_relief_pickaxe": "安山岩のレリーフ(ツルハシ)", + "block.mineralogy.andesite_relief_plus": "安山岩のレリーフ(プラス記号)", + "block.mineralogy.andesite_relief_right": "安山岩のレリーフ(右)", + "block.mineralogy.andesite_relief_sword": "安山岩のレリーフ(剣)", + "block.mineralogy.andesite_relief_vertical": "安山岩のレリーフ(縦)", + "block.mineralogy.basalt_relief_axe": "玄武岩のレリーフ(斧)", + "block.mineralogy.basalt_relief_blank": "玄武岩のレリーフ(無地)", + "block.mineralogy.basalt_relief_cross": "玄武岩のレリーフ(十字)", + "block.mineralogy.basalt_relief_hammer": "玄武岩のレリーフ(ハンマー)", + "block.mineralogy.basalt_relief_hoe": "玄武岩のレリーフ(クワ)", + "block.mineralogy.basalt_relief_horizontal": "玄武岩のレリーフ(横)", + "block.mineralogy.basalt_relief_i": "玄武岩のレリーフ(I)", + "block.mineralogy.basalt_relief_left": "玄武岩のレリーフ(左)", + "block.mineralogy.basalt_relief_pickaxe": "玄武岩のレリーフ(ツルハシ)", + "block.mineralogy.basalt_relief_plus": "玄武岩のレリーフ(プラス記号)", + "block.mineralogy.basalt_relief_right": "玄武岩のレリーフ(右)", + "block.mineralogy.basalt_relief_sword": "玄武岩のレリーフ(剣)", + "block.mineralogy.basalt_relief_vertical": "玄武岩のレリーフ(縦)", + "block.mineralogy.diorite_relief_axe": "閃緑岩のレリーフ(斧)", + "block.mineralogy.diorite_relief_blank": "閃緑岩のレリーフ(無地)", + "block.mineralogy.diorite_relief_cross": "閃緑岩のレリーフ(十字)", + "block.mineralogy.diorite_relief_hammer": "閃緑岩のレリーフ(ハンマー)", + "block.mineralogy.diorite_relief_hoe": "閃緑岩のレリーフ(クワ)", + "block.mineralogy.diorite_relief_horizontal": "閃緑岩のレリーフ(横)", + "block.mineralogy.diorite_relief_i": "閃緑岩のレリーフ(I)", + "block.mineralogy.diorite_relief_left": "閃緑岩のレリーフ(左)", + "block.mineralogy.diorite_relief_pickaxe": "閃緑岩のレリーフ(ツルハシ)", + "block.mineralogy.diorite_relief_plus": "閃緑岩のレリーフ(プラス記号)", + "block.mineralogy.diorite_relief_right": "閃緑岩のレリーフ(右)", + "block.mineralogy.diorite_relief_sword": "閃緑岩のレリーフ(剣)", + "block.mineralogy.diorite_relief_vertical": "閃緑岩のレリーフ(縦)", + "block.mineralogy.granite_relief_axe": "花崗岩のレリーフ(斧)", + "block.mineralogy.granite_relief_blank": "花崗岩のレリーフ(無地)", + "block.mineralogy.granite_relief_cross": "花崗岩のレリーフ(十字)", + "block.mineralogy.granite_relief_hammer": "花崗岩のレリーフ(ハンマー)", + "block.mineralogy.granite_relief_hoe": "花崗岩のレリーフ(クワ)", + "block.mineralogy.granite_relief_horizontal": "花崗岩のレリーフ(横)", + "block.mineralogy.granite_relief_i": "花崗岩のレリーフ(I)", + "block.mineralogy.granite_relief_left": "花崗岩のレリーフ(左)", + "block.mineralogy.granite_relief_pickaxe": "花崗岩のレリーフ(ツルハシ)", + "block.mineralogy.granite_relief_plus": "花崗岩のレリーフ(プラス記号)", + "block.mineralogy.granite_relief_right": "花崗岩のレリーフ(右)", + "block.mineralogy.granite_relief_sword": "花崗岩のレリーフ(剣)", + "block.mineralogy.granite_relief_vertical": "花崗岩のレリーフ(縦)", + "block.mineralogy.rhyolite_relief_axe": "流紋岩のレリーフ(斧)", + "block.mineralogy.rhyolite_relief_blank": "流紋岩のレリーフ(無地)", + "block.mineralogy.rhyolite_relief_cross": "流紋岩のレリーフ(十字)", + "block.mineralogy.rhyolite_relief_hammer": "流紋岩のレリーフ(ハンマー)", + "block.mineralogy.rhyolite_relief_hoe": "流紋岩のレリーフ(クワ)", + "block.mineralogy.rhyolite_relief_horizontal": "流紋岩のレリーフ(横)", + "block.mineralogy.rhyolite_relief_i": "流紋岩のレリーフ(I)", + "block.mineralogy.rhyolite_relief_left": "流紋岩のレリーフ(左)", + "block.mineralogy.rhyolite_relief_pickaxe": "流紋岩のレリーフ(ツルハシ)", + "block.mineralogy.rhyolite_relief_plus": "流紋岩のレリーフ(プラス記号)", + "block.mineralogy.rhyolite_relief_right": "流紋岩のレリーフ(右)", + "block.mineralogy.rhyolite_relief_sword": "流紋岩のレリーフ(剣)", + "block.mineralogy.rhyolite_relief_vertical": "流紋岩のレリーフ(縦)", + "block.mineralogy.pegmatite_relief_axe": "ペグマタイトのレリーフ(斧)", + "block.mineralogy.pegmatite_relief_blank": "ペグマタイトのレリーフ(無地)", + "block.mineralogy.pegmatite_relief_cross": "ペグマタイトのレリーフ(十字)", + "block.mineralogy.pegmatite_relief_hammer": "ペグマタイトのレリーフ(ハンマー)", + "block.mineralogy.pegmatite_relief_hoe": "ペグマタイトのレリーフ(クワ)", + "block.mineralogy.pegmatite_relief_horizontal": "ペグマタイトのレリーフ(横)", + "block.mineralogy.pegmatite_relief_i": "ペグマタイトのレリーフ(I)", + "block.mineralogy.pegmatite_relief_left": "ペグマタイトのレリーフ(左)", + "block.mineralogy.pegmatite_relief_pickaxe": "ペグマタイトのレリーフ(ツルハシ)", + "block.mineralogy.pegmatite_relief_plus": "ペグマタイトのレリーフ(プラス記号)", + "block.mineralogy.pegmatite_relief_right": "ペグマタイトのレリーフ(右)", + "block.mineralogy.pegmatite_relief_sword": "ペグマタイトのレリーフ(剣)", + "block.mineralogy.pegmatite_relief_vertical": "ペグマタイトのレリーフ(縦)", + "block.mineralogy.shale_relief_axe": "頁岩のレリーフ(斧)", + "block.mineralogy.shale_relief_blank": "頁岩のレリーフ(無地)", + "block.mineralogy.shale_relief_cross": "頁岩のレリーフ(十字)", + "block.mineralogy.shale_relief_hammer": "頁岩のレリーフ(ハンマー)", + "block.mineralogy.shale_relief_hoe": "頁岩のレリーフ(クワ)", + "block.mineralogy.shale_relief_horizontal": "頁岩のレリーフ(横)", + "block.mineralogy.shale_relief_i": "頁岩のレリーフ(I)", + "block.mineralogy.shale_relief_left": "頁岩のレリーフ(左)", + "block.mineralogy.shale_relief_pickaxe": "頁岩のレリーフ(ツルハシ)", + "block.mineralogy.shale_relief_plus": "頁岩のレリーフ(プラス記号)", + "block.mineralogy.shale_relief_right": "頁岩のレリーフ(右)", + "block.mineralogy.shale_relief_sword": "頁岩のレリーフ(剣)", + "block.mineralogy.shale_relief_vertical": "頁岩のレリーフ(縦)", + "block.mineralogy.conglomerate_relief_axe": "礫岩のレリーフ(斧)", + "block.mineralogy.conglomerate_relief_blank": "礫岩のレリーフ(無地)", + "block.mineralogy.conglomerate_relief_cross": "礫岩のレリーフ(十字)", + "block.mineralogy.conglomerate_relief_hammer": "礫岩のレリーフ(ハンマー)", + "block.mineralogy.conglomerate_relief_hoe": "礫岩のレリーフ(クワ)", + "block.mineralogy.conglomerate_relief_horizontal": "礫岩のレリーフ(横)", + "block.mineralogy.conglomerate_relief_i": "礫岩のレリーフ(I)", + "block.mineralogy.conglomerate_relief_left": "礫岩のレリーフ(左)", + "block.mineralogy.conglomerate_relief_pickaxe": "礫岩のレリーフ(ツルハシ)", + "block.mineralogy.conglomerate_relief_plus": "礫岩のレリーフ(プラス記号)", + "block.mineralogy.conglomerate_relief_right": "礫岩のレリーフ(右)", + "block.mineralogy.conglomerate_relief_sword": "礫岩のレリーフ(剣)", + "block.mineralogy.conglomerate_relief_vertical": "礫岩のレリーフ(縦)", + "block.mineralogy.dolomite_relief_axe": "苦灰岩のレリーフ(斧)", + "block.mineralogy.dolomite_relief_blank": "苦灰岩のレリーフ(無地)", + "block.mineralogy.dolomite_relief_cross": "苦灰岩のレリーフ(十字)", + "block.mineralogy.dolomite_relief_hammer": "苦灰岩のレリーフ(ハンマー)", + "block.mineralogy.dolomite_relief_hoe": "苦灰岩のレリーフ(クワ)", + "block.mineralogy.dolomite_relief_horizontal": "苦灰岩のレリーフ(横)", + "block.mineralogy.dolomite_relief_i": "苦灰岩のレリーフ(I)", + "block.mineralogy.dolomite_relief_left": "苦灰岩のレリーフ(左)", + "block.mineralogy.dolomite_relief_pickaxe": "苦灰岩のレリーフ(ツルハシ)", + "block.mineralogy.dolomite_relief_plus": "苦灰岩のレリーフ(プラス記号)", + "block.mineralogy.dolomite_relief_right": "苦灰岩のレリーフ(右)", + "block.mineralogy.dolomite_relief_sword": "苦灰岩のレリーフ(剣)", + "block.mineralogy.dolomite_relief_vertical": "苦灰岩のレリーフ(縦)", + "block.mineralogy.limestone_relief_axe": "石灰岩のレリーフ(斧)", + "block.mineralogy.limestone_relief_blank": "石灰岩のレリーフ(無地)", + "block.mineralogy.limestone_relief_cross": "石灰岩のレリーフ(十字)", + "block.mineralogy.limestone_relief_hammer": "石灰岩のレリーフ(ハンマー)", + "block.mineralogy.limestone_relief_hoe": "石灰岩のレリーフ(クワ)", + "block.mineralogy.limestone_relief_horizontal": "石灰岩のレリーフ(横)", + "block.mineralogy.limestone_relief_i": "石灰岩のレリーフ(I)", + "block.mineralogy.limestone_relief_left": "石灰岩のレリーフ(左)", + "block.mineralogy.limestone_relief_pickaxe": "石灰岩のレリーフ(ツルハシ)", + "block.mineralogy.limestone_relief_plus": "石灰岩のレリーフ(プラス記号)", + "block.mineralogy.limestone_relief_right": "石灰岩のレリーフ(右)", + "block.mineralogy.limestone_relief_sword": "石灰岩のレリーフ(剣)", + "block.mineralogy.limestone_relief_vertical": "石灰岩のレリーフ(縦)", + "block.mineralogy.marble_relief_axe": "大理石のレリーフ(斧)", + "block.mineralogy.marble_relief_blank": "大理石のレリーフ(無地)", + "block.mineralogy.marble_relief_cross": "大理石のレリーフ(十字)", + "block.mineralogy.marble_relief_hammer": "大理石のレリーフ(ハンマー)", + "block.mineralogy.marble_relief_hoe": "大理石のレリーフ(クワ)", + "block.mineralogy.marble_relief_horizontal": "大理石のレリーフ(横)", + "block.mineralogy.marble_relief_i": "大理石のレリーフ(I)", + "block.mineralogy.marble_relief_left": "大理石のレリーフ(左)", + "block.mineralogy.marble_relief_pickaxe": "大理石のレリーフ(ツルハシ)", + "block.mineralogy.marble_relief_plus": "大理石のレリーフ(プラス記号)", + "block.mineralogy.marble_relief_right": "大理石のレリーフ(右)", + "block.mineralogy.marble_relief_sword": "大理石のレリーフ(剣)", + "block.mineralogy.marble_relief_vertical": "大理石のレリーフ(縦)", + "block.mineralogy.slate_relief_axe": "粘板岩のレリーフ(斧)", + "block.mineralogy.slate_relief_blank": "粘板岩のレリーフ(無地)", + "block.mineralogy.slate_relief_cross": "粘板岩のレリーフ(十字)", + "block.mineralogy.slate_relief_hammer": "粘板岩のレリーフ(ハンマー)", + "block.mineralogy.slate_relief_hoe": "粘板岩のレリーフ(クワ)", + "block.mineralogy.slate_relief_horizontal": "粘板岩のレリーフ(横)", + "block.mineralogy.slate_relief_i": "粘板岩のレリーフ(I)", + "block.mineralogy.slate_relief_left": "粘板岩のレリーフ(左)", + "block.mineralogy.slate_relief_pickaxe": "粘板岩のレリーフ(ツルハシ)", + "block.mineralogy.slate_relief_plus": "粘板岩のレリーフ(プラス記号)", + "block.mineralogy.slate_relief_right": "粘板岩のレリーフ(右)", + "block.mineralogy.slate_relief_sword": "粘板岩のレリーフ(剣)", + "block.mineralogy.slate_relief_vertical": "粘板岩のレリーフ(縦)", + "block.mineralogy.schist_relief_axe": "結晶片岩のレリーフ(斧)", + "block.mineralogy.schist_relief_blank": "結晶片岩のレリーフ(無地)", + "block.mineralogy.schist_relief_cross": "結晶片岩のレリーフ(十字)", + "block.mineralogy.schist_relief_hammer": "結晶片岩のレリーフ(ハンマー)", + "block.mineralogy.schist_relief_hoe": "結晶片岩のレリーフ(クワ)", + "block.mineralogy.schist_relief_horizontal": "結晶片岩のレリーフ(横)", + "block.mineralogy.schist_relief_i": "結晶片岩のレリーフ(I)", + "block.mineralogy.schist_relief_left": "結晶片岩のレリーフ(左)", + "block.mineralogy.schist_relief_pickaxe": "結晶片岩のレリーフ(ツルハシ)", + "block.mineralogy.schist_relief_plus": "結晶片岩のレリーフ(プラス記号)", + "block.mineralogy.schist_relief_right": "結晶片岩のレリーフ(右)", + "block.mineralogy.schist_relief_sword": "結晶片岩のレリーフ(剣)", + "block.mineralogy.schist_relief_vertical": "結晶片岩のレリーフ(縦)", + "block.mineralogy.gneiss_relief_axe": "片麻岩のレリーフ(斧)", + "block.mineralogy.gneiss_relief_blank": "片麻岩のレリーフ(無地)", + "block.mineralogy.gneiss_relief_cross": "片麻岩のレリーフ(十字)", + "block.mineralogy.gneiss_relief_hammer": "片麻岩のレリーフ(ハンマー)", + "block.mineralogy.gneiss_relief_hoe": "片麻岩のレリーフ(クワ)", + "block.mineralogy.gneiss_relief_horizontal": "片麻岩のレリーフ(横)", + "block.mineralogy.gneiss_relief_i": "片麻岩のレリーフ(I)", + "block.mineralogy.gneiss_relief_left": "片麻岩のレリーフ(左)", + "block.mineralogy.gneiss_relief_pickaxe": "片麻岩のレリーフ(ツルハシ)", + "block.mineralogy.gneiss_relief_plus": "片麻岩のレリーフ(プラス記号)", + "block.mineralogy.gneiss_relief_right": "片麻岩のレリーフ(右)", + "block.mineralogy.gneiss_relief_sword": "片麻岩のレリーフ(剣)", + "block.mineralogy.gneiss_relief_vertical": "片麻岩のレリーフ(縦)", + "block.mineralogy.phyllite_relief_axe": "千枚岩のレリーフ(斧)", + "block.mineralogy.phyllite_relief_blank": "千枚岩のレリーフ(無地)", + "block.mineralogy.phyllite_relief_cross": "千枚岩のレリーフ(十字)", + "block.mineralogy.phyllite_relief_hammer": "千枚岩のレリーフ(ハンマー)", + "block.mineralogy.phyllite_relief_hoe": "千枚岩のレリーフ(クワ)", + "block.mineralogy.phyllite_relief_horizontal": "千枚岩のレリーフ(横)", + "block.mineralogy.phyllite_relief_i": "千枚岩のレリーフ(I)", + "block.mineralogy.phyllite_relief_left": "千枚岩のレリーフ(左)", + "block.mineralogy.phyllite_relief_pickaxe": "千枚岩のレリーフ(ツルハシ)", + "block.mineralogy.phyllite_relief_plus": "千枚岩のレリーフ(プラス記号)", + "block.mineralogy.phyllite_relief_right": "千枚岩のレリーフ(右)", + "block.mineralogy.phyllite_relief_sword": "千枚岩のレリーフ(剣)", + "block.mineralogy.phyllite_relief_vertical": "千枚岩のレリーフ(縦)", + "block.mineralogy.amphibolite_relief_axe": "角閃岩のレリーフ(斧)", + "block.mineralogy.amphibolite_relief_blank": "角閃岩のレリーフ(無地)", + "block.mineralogy.amphibolite_relief_cross": "角閃岩のレリーフ(十字)", + "block.mineralogy.amphibolite_relief_hammer": "角閃岩のレリーフ(ハンマー)", + "block.mineralogy.amphibolite_relief_hoe": "角閃岩のレリーフ(クワ)", + "block.mineralogy.amphibolite_relief_horizontal": "角閃岩のレリーフ(横)", + "block.mineralogy.amphibolite_relief_i": "角閃岩のレリーフ(I)", + "block.mineralogy.amphibolite_relief_left": "角閃岩のレリーフ(左)", + "block.mineralogy.amphibolite_relief_pickaxe": "角閃岩のレリーフ(ツルハシ)", + "block.mineralogy.amphibolite_relief_plus": "角閃岩のレリーフ(プラス記号)", + "block.mineralogy.amphibolite_relief_right": "角閃岩のレリーフ(右)", + "block.mineralogy.amphibolite_relief_sword": "角閃岩のレリーフ(剣)", + "block.mineralogy.amphibolite_relief_vertical": "角閃岩のレリーフ(縦)", + "block.mineralogy.diabase_relief_axe": "輝緑岩のレリーフ(斧)", + "block.mineralogy.diabase_relief_blank": "輝緑岩のレリーフ(無地)", + "block.mineralogy.diabase_relief_cross": "輝緑岩のレリーフ(十字)", + "block.mineralogy.diabase_relief_hammer": "輝緑岩のレリーフ(ハンマー)", + "block.mineralogy.diabase_relief_hoe": "輝緑岩のレリーフ(クワ)", + "block.mineralogy.diabase_relief_horizontal": "輝緑岩のレリーフ(横)", + "block.mineralogy.diabase_relief_i": "輝緑岩のレリーフ(I)", + "block.mineralogy.diabase_relief_left": "輝緑岩のレリーフ(左)", + "block.mineralogy.diabase_relief_pickaxe": "輝緑岩のレリーフ(ツルハシ)", + "block.mineralogy.diabase_relief_plus": "輝緑岩のレリーフ(プラス記号)", + "block.mineralogy.diabase_relief_right": "輝緑岩のレリーフ(右)", + "block.mineralogy.diabase_relief_sword": "輝緑岩のレリーフ(剣)", + "block.mineralogy.diabase_relief_vertical": "輝緑岩のレリーフ(縦)", + "block.mineralogy.gabbro_relief_axe": "はんれい岩のレリーフ(斧)", + "block.mineralogy.gabbro_relief_blank": "はんれい岩のレリーフ(無地)", + "block.mineralogy.gabbro_relief_cross": "はんれい岩のレリーフ(十字)", + "block.mineralogy.gabbro_relief_hammer": "はんれい岩のレリーフ(ハンマー)", + "block.mineralogy.gabbro_relief_hoe": "はんれい岩のレリーフ(クワ)", + "block.mineralogy.gabbro_relief_horizontal": "はんれい岩のレリーフ(横)", + "block.mineralogy.gabbro_relief_i": "はんれい岩のレリーフ(I)", + "block.mineralogy.gabbro_relief_left": "はんれい岩のレリーフ(左)", + "block.mineralogy.gabbro_relief_pickaxe": "はんれい岩のレリーフ(ツルハシ)", + "block.mineralogy.gabbro_relief_plus": "はんれい岩のレリーフ(プラス記号)", + "block.mineralogy.gabbro_relief_right": "はんれい岩のレリーフ(右)", + "block.mineralogy.gabbro_relief_sword": "はんれい岩のレリーフ(剣)", + "block.mineralogy.gabbro_relief_vertical": "はんれい岩のレリーフ(縦)", + "block.mineralogy.peridotite_relief_axe": "かんらん岩のレリーフ(斧)", + "block.mineralogy.peridotite_relief_blank": "かんらん岩のレリーフ(無地)", + "block.mineralogy.peridotite_relief_cross": "かんらん岩のレリーフ(十字)", + "block.mineralogy.peridotite_relief_hammer": "かんらん岩のレリーフ(ハンマー)", + "block.mineralogy.peridotite_relief_hoe": "かんらん岩のレリーフ(クワ)", + "block.mineralogy.peridotite_relief_horizontal": "かんらん岩のレリーフ(横)", + "block.mineralogy.peridotite_relief_i": "かんらん岩のレリーフ(I)", + "block.mineralogy.peridotite_relief_left": "かんらん岩のレリーフ(左)", + "block.mineralogy.peridotite_relief_pickaxe": "かんらん岩のレリーフ(ツルハシ)", + "block.mineralogy.peridotite_relief_plus": "かんらん岩のレリーフ(プラス記号)", + "block.mineralogy.peridotite_relief_right": "かんらん岩のレリーフ(右)", + "block.mineralogy.peridotite_relief_sword": "かんらん岩のレリーフ(剣)", + "block.mineralogy.peridotite_relief_vertical": "かんらん岩のレリーフ(縦)", + "block.mineralogy.basaltic_glass_relief_axe": "玄武岩質ガラスのレリーフ(斧)", + "block.mineralogy.basaltic_glass_relief_blank": "玄武岩質ガラスのレリーフ(無地)", + "block.mineralogy.basaltic_glass_relief_cross": "玄武岩質ガラスのレリーフ(十字)", + "block.mineralogy.basaltic_glass_relief_hammer": "玄武岩質ガラスのレリーフ(ハンマー)", + "block.mineralogy.basaltic_glass_relief_hoe": "玄武岩質ガラスのレリーフ(クワ)", + "block.mineralogy.basaltic_glass_relief_horizontal": "玄武岩質ガラスのレリーフ(横)", + "block.mineralogy.basaltic_glass_relief_i": "玄武岩質ガラスのレリーフ(I)", + "block.mineralogy.basaltic_glass_relief_left": "玄武岩質ガラスのレリーフ(左)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "玄武岩質ガラスのレリーフ(ツルハシ)", + "block.mineralogy.basaltic_glass_relief_plus": "玄武岩質ガラスのレリーフ(プラス記号)", + "block.mineralogy.basaltic_glass_relief_right": "玄武岩質ガラスのレリーフ(右)", + "block.mineralogy.basaltic_glass_relief_sword": "玄武岩質ガラスのレリーフ(剣)", + "block.mineralogy.basaltic_glass_relief_vertical": "玄武岩質ガラスのレリーフ(縦)", + "block.mineralogy.scoria_relief_axe": "スコリアのレリーフ(斧)", + "block.mineralogy.scoria_relief_blank": "スコリアのレリーフ(無地)", + "block.mineralogy.scoria_relief_cross": "スコリアのレリーフ(十字)", + "block.mineralogy.scoria_relief_hammer": "スコリアのレリーフ(ハンマー)", + "block.mineralogy.scoria_relief_hoe": "スコリアのレリーフ(クワ)", + "block.mineralogy.scoria_relief_horizontal": "スコリアのレリーフ(横)", + "block.mineralogy.scoria_relief_i": "スコリアのレリーフ(I)", + "block.mineralogy.scoria_relief_left": "スコリアのレリーフ(左)", + "block.mineralogy.scoria_relief_pickaxe": "スコリアのレリーフ(ツルハシ)", + "block.mineralogy.scoria_relief_plus": "スコリアのレリーフ(プラス記号)", + "block.mineralogy.scoria_relief_right": "スコリアのレリーフ(右)", + "block.mineralogy.scoria_relief_sword": "スコリアのレリーフ(剣)", + "block.mineralogy.scoria_relief_vertical": "スコリアのレリーフ(縦)", + "block.mineralogy.tuff_relief_axe": "凝灰岩のレリーフ(斧)", + "block.mineralogy.tuff_relief_blank": "凝灰岩のレリーフ(無地)", + "block.mineralogy.tuff_relief_cross": "凝灰岩のレリーフ(十字)", + "block.mineralogy.tuff_relief_hammer": "凝灰岩のレリーフ(ハンマー)", + "block.mineralogy.tuff_relief_hoe": "凝灰岩のレリーフ(クワ)", + "block.mineralogy.tuff_relief_horizontal": "凝灰岩のレリーフ(横)", + "block.mineralogy.tuff_relief_i": "凝灰岩のレリーフ(I)", + "block.mineralogy.tuff_relief_left": "凝灰岩のレリーフ(左)", + "block.mineralogy.tuff_relief_pickaxe": "凝灰岩のレリーフ(ツルハシ)", + "block.mineralogy.tuff_relief_plus": "凝灰岩のレリーフ(プラス記号)", + "block.mineralogy.tuff_relief_right": "凝灰岩のレリーフ(右)", + "block.mineralogy.tuff_relief_sword": "凝灰岩のレリーフ(剣)", + "block.mineralogy.tuff_relief_vertical": "凝灰岩のレリーフ(縦)", + "block.mineralogy.siltstone_relief_axe": "シルト岩のレリーフ(斧)", + "block.mineralogy.siltstone_relief_blank": "シルト岩のレリーフ(無地)", + "block.mineralogy.siltstone_relief_cross": "シルト岩のレリーフ(十字)", + "block.mineralogy.siltstone_relief_hammer": "シルト岩のレリーフ(ハンマー)", + "block.mineralogy.siltstone_relief_hoe": "シルト岩のレリーフ(クワ)", + "block.mineralogy.siltstone_relief_horizontal": "シルト岩のレリーフ(横)", + "block.mineralogy.siltstone_relief_i": "シルト岩のレリーフ(I)", + "block.mineralogy.siltstone_relief_left": "シルト岩のレリーフ(左)", + "block.mineralogy.siltstone_relief_pickaxe": "シルト岩のレリーフ(ツルハシ)", + "block.mineralogy.siltstone_relief_plus": "シルト岩のレリーフ(プラス記号)", + "block.mineralogy.siltstone_relief_right": "シルト岩のレリーフ(右)", + "block.mineralogy.siltstone_relief_sword": "シルト岩のレリーフ(剣)", + "block.mineralogy.siltstone_relief_vertical": "シルト岩のレリーフ(縦)", + "block.mineralogy.rock_salt_relief_axe": "岩塩のレリーフ(斧)", + "block.mineralogy.rock_salt_relief_blank": "岩塩のレリーフ(無地)", + "block.mineralogy.rock_salt_relief_cross": "岩塩のレリーフ(十字)", + "block.mineralogy.rock_salt_relief_hammer": "岩塩のレリーフ(ハンマー)", + "block.mineralogy.rock_salt_relief_hoe": "岩塩のレリーフ(クワ)", + "block.mineralogy.rock_salt_relief_horizontal": "岩塩のレリーフ(横)", + "block.mineralogy.rock_salt_relief_i": "岩塩のレリーフ(I)", + "block.mineralogy.rock_salt_relief_left": "岩塩のレリーフ(左)", + "block.mineralogy.rock_salt_relief_pickaxe": "岩塩のレリーフ(ツルハシ)", + "block.mineralogy.rock_salt_relief_plus": "岩塩のレリーフ(プラス記号)", + "block.mineralogy.rock_salt_relief_right": "岩塩のレリーフ(右)", + "block.mineralogy.rock_salt_relief_sword": "岩塩のレリーフ(剣)", + "block.mineralogy.rock_salt_relief_vertical": "岩塩のレリーフ(縦)", + "block.mineralogy.hornfels_relief_axe": "ホルンフェルスのレリーフ(斧)", + "block.mineralogy.hornfels_relief_blank": "ホルンフェルスのレリーフ(無地)", + "block.mineralogy.hornfels_relief_cross": "ホルンフェルスのレリーフ(十字)", + "block.mineralogy.hornfels_relief_hammer": "ホルンフェルスのレリーフ(ハンマー)", + "block.mineralogy.hornfels_relief_hoe": "ホルンフェルスのレリーフ(クワ)", + "block.mineralogy.hornfels_relief_horizontal": "ホルンフェルスのレリーフ(横)", + "block.mineralogy.hornfels_relief_i": "ホルンフェルスのレリーフ(I)", + "block.mineralogy.hornfels_relief_left": "ホルンフェルスのレリーフ(左)", + "block.mineralogy.hornfels_relief_pickaxe": "ホルンフェルスのレリーフ(ツルハシ)", + "block.mineralogy.hornfels_relief_plus": "ホルンフェルスのレリーフ(プラス記号)", + "block.mineralogy.hornfels_relief_right": "ホルンフェルスのレリーフ(右)", + "block.mineralogy.hornfels_relief_sword": "ホルンフェルスのレリーフ(剣)", + "block.mineralogy.hornfels_relief_vertical": "ホルンフェルスのレリーフ(縦)", + "block.mineralogy.quartzite_relief_axe": "石英岩のレリーフ(斧)", + "block.mineralogy.quartzite_relief_blank": "石英岩のレリーフ(無地)", + "block.mineralogy.quartzite_relief_cross": "石英岩のレリーフ(十字)", + "block.mineralogy.quartzite_relief_hammer": "石英岩のレリーフ(ハンマー)", + "block.mineralogy.quartzite_relief_hoe": "石英岩のレリーフ(クワ)", + "block.mineralogy.quartzite_relief_horizontal": "石英岩のレリーフ(横)", + "block.mineralogy.quartzite_relief_i": "石英岩のレリーフ(I)", + "block.mineralogy.quartzite_relief_left": "石英岩のレリーフ(左)", + "block.mineralogy.quartzite_relief_pickaxe": "石英岩のレリーフ(ツルハシ)", + "block.mineralogy.quartzite_relief_plus": "石英岩のレリーフ(プラス記号)", + "block.mineralogy.quartzite_relief_right": "石英岩のレリーフ(右)", + "block.mineralogy.quartzite_relief_sword": "石英岩のレリーフ(剣)", + "block.mineralogy.quartzite_relief_vertical": "石英岩のレリーフ(縦)", + "block.mineralogy.novaculite_relief_axe": "ノバキュライトのレリーフ(斧)", + "block.mineralogy.novaculite_relief_blank": "ノバキュライトのレリーフ(無地)", + "block.mineralogy.novaculite_relief_cross": "ノバキュライトのレリーフ(十字)", + "block.mineralogy.novaculite_relief_hammer": "ノバキュライトのレリーフ(ハンマー)", + "block.mineralogy.novaculite_relief_hoe": "ノバキュライトのレリーフ(クワ)", + "block.mineralogy.novaculite_relief_horizontal": "ノバキュライトのレリーフ(横)", + "block.mineralogy.novaculite_relief_i": "ノバキュライトのレリーフ(I)", + "block.mineralogy.novaculite_relief_left": "ノバキュライトのレリーフ(左)", + "block.mineralogy.novaculite_relief_pickaxe": "ノバキュライトのレリーフ(ツルハシ)", + "block.mineralogy.novaculite_relief_plus": "ノバキュライトのレリーフ(プラス記号)", + "block.mineralogy.novaculite_relief_right": "ノバキュライトのレリーフ(右)", + "block.mineralogy.novaculite_relief_sword": "ノバキュライトのレリーフ(剣)", + "block.mineralogy.novaculite_relief_vertical": "ノバキュライトのレリーフ(縦)", "itemGroup.mineralogy.mineralogy": "鉱物学", - "itemGroup.mineralogy.rock": "鉱物岩石", + "itemGroup.mineralogy.rock": "鉱物学の岩石", "itemGroup.mineralogy.stair": "鉱物学の階段", - "itemGroup.mineralogy.slab": "鉱物学スラブ", - "itemGroup.mineralogy.wall": "鉱物学の壁", - "itemGroup.mineralogy.item": "鉱物学アイテム" + "itemGroup.mineralogy.slab": "鉱物学のハーフブロック", + "itemGroup.mineralogy.wall": "鉱物学の塀", + "itemGroup.mineralogy.item": "鉱物学のアイテム", + "block.mineralogy.crude_oil": "原油", + "item.mineralogy.crude_oil_bucket": "原油入りバケツ", + "fluid.mineralogy.crude_oil": "原油", + "advancements.mineralogy.all_the_rocks.title": "すべての岩石", + "advancements.mineralogy.all_the_rocks.description": "鉱物学の標準的な岩石をすべて見つけました!" } diff --git a/src/main/resources/assets/mineralogy/lang/ko_kr.json b/src/main/resources/assets/mineralogy/lang/ko_kr.json index df47e57aa..5dfecde9c 100644 --- a/src/main/resources/assets/mineralogy/lang/ko_kr.json +++ b/src/main/resources/assets/mineralogy/lang/ko_kr.json @@ -1,940 +1,940 @@ { "block.mineralogy.andesite": "안산암", "block.mineralogy.andesite_stairs": "안산암 계단", - "block.mineralogy.andesite_slab": "안산암 석판", + "block.mineralogy.andesite_slab": "안산암 반 블록", "block.mineralogy.andesite_brick": "안산암 벽돌", "block.mineralogy.andesite_brick_stairs": "안산암 벽돌 계단", - "block.mineralogy.andesite_brick_slab": "안산암 벽돌 슬라브", - "block.mineralogy.andesite_smooth": "연마된 안산암", - "block.mineralogy.andesite_smooth_stairs": "안산암 광택 계단", - "block.mineralogy.andesite_smooth_slab": "안산암 광택 슬래브", - "block.mineralogy.andesite_smooth_brick": "안산암 광택 벽돌", - "block.mineralogy.andesite_smooth_brick_stairs": "안산암 광택 벽돌 계단", - "block.mineralogy.andesite_smooth_brick_slab": "안산암 광택 벽돌 슬래브", + "block.mineralogy.andesite_brick_slab": "안산암 벽돌 반 블록", + "block.mineralogy.andesite_smooth": "윤나는 안산암", + "block.mineralogy.andesite_smooth_stairs": "윤나는 안산암 계단", + "block.mineralogy.andesite_smooth_slab": "윤나는 안산암 반 블록", + "block.mineralogy.andesite_smooth_brick": "윤나는 안산암 벽돌", + "block.mineralogy.andesite_smooth_brick_stairs": "윤나는 안산암 벽돌 계단", + "block.mineralogy.andesite_smooth_brick_slab": "윤나는 안산암 벽돌 반 블록", "block.mineralogy.basalt": "현무암", "block.mineralogy.basalt_stairs": "현무암 계단", - "block.mineralogy.basalt_slab": "현무암 석판", + "block.mineralogy.basalt_slab": "현무암 반 블록", "block.mineralogy.basalt_brick": "현무암 벽돌", "block.mineralogy.basalt_brick_stairs": "현무암 벽돌 계단", - "block.mineralogy.basalt_brick_slab": "현무암 벽돌 슬라브", - "block.mineralogy.basalt_smooth": "연마된 현무암", - "block.mineralogy.basalt_smooth_stairs": "현무암 광택 계단", - "block.mineralogy.basalt_smooth_slab": "현무암 광택 슬래브", - "block.mineralogy.basalt_smooth_brick": "현무암 광택 벽돌", - "block.mineralogy.basalt_smooth_brick_stairs": "현무암 광택 벽돌 계단", - "block.mineralogy.basalt_smooth_brick_slab": "현무암 광택 벽돌 슬래브", + "block.mineralogy.basalt_brick_slab": "현무암 벽돌 반 블록", + "block.mineralogy.basalt_smooth": "윤나는 현무암", + "block.mineralogy.basalt_smooth_stairs": "윤나는 현무암 계단", + "block.mineralogy.basalt_smooth_slab": "윤나는 현무암 반 블록", + "block.mineralogy.basalt_smooth_brick": "윤나는 현무암 벽돌", + "block.mineralogy.basalt_smooth_brick_stairs": "윤나는 현무암 벽돌 계단", + "block.mineralogy.basalt_smooth_brick_slab": "윤나는 현무암 벽돌 반 블록", "block.mineralogy.diorite": "섬록암", "block.mineralogy.diorite_stairs": "섬록암 계단", - "block.mineralogy.diorite_slab": "섬록암 석판", + "block.mineralogy.diorite_slab": "섬록암 반 블록", "block.mineralogy.diorite_brick": "섬록암 벽돌", "block.mineralogy.diorite_brick_stairs": "섬록암 벽돌 계단", - "block.mineralogy.diorite_brick_slab": "섬록암 벽돌 슬라브", - "block.mineralogy.diorite_smooth": "연마된 섬록암", - "block.mineralogy.diorite_smooth_stairs": "섬록암 광택 계단", - "block.mineralogy.diorite_smooth_slab": "섬록암 연마 슬라브", - "block.mineralogy.diorite_smooth_brick": "섬록암 광택 벽돌", - "block.mineralogy.diorite_smooth_brick_stairs": "섬록암 광택 벽돌 계단", - "block.mineralogy.diorite_smooth_brick_slab": "섬록암 광택 벽돌 슬라브", + "block.mineralogy.diorite_brick_slab": "섬록암 벽돌 반 블록", + "block.mineralogy.diorite_smooth": "윤나는 섬록암", + "block.mineralogy.diorite_smooth_stairs": "윤나는 섬록암 계단", + "block.mineralogy.diorite_smooth_slab": "윤나는 섬록암 반 블록", + "block.mineralogy.diorite_smooth_brick": "윤나는 섬록암 벽돌", + "block.mineralogy.diorite_smooth_brick_stairs": "윤나는 섬록암 벽돌 계단", + "block.mineralogy.diorite_smooth_brick_slab": "윤나는 섬록암 벽돌 반 블록", "block.mineralogy.granite": "화강암", "block.mineralogy.granite_stairs": "화강암 계단", - "block.mineralogy.granite_slab": "화강암 석판", + "block.mineralogy.granite_slab": "화강암 반 블록", "block.mineralogy.granite_brick": "화강암 벽돌", "block.mineralogy.granite_brick_stairs": "화강암 벽돌 계단", - "block.mineralogy.granite_brick_slab": "화강암 벽돌 슬라브", - "block.mineralogy.granite_smooth": "연마된 화강암", - "block.mineralogy.granite_smooth_stairs": "화강암 광택 계단", - "block.mineralogy.granite_smooth_slab": "화강암 광택 슬래브", - "block.mineralogy.granite_smooth_brick": "화강암 광택 벽돌", - "block.mineralogy.granite_smooth_brick_stairs": "화강암 광택 벽돌 계단", - "block.mineralogy.granite_smooth_brick_slab": "화강암 광택 벽돌 슬라브", + "block.mineralogy.granite_brick_slab": "화강암 벽돌 반 블록", + "block.mineralogy.granite_smooth": "윤나는 화강암", + "block.mineralogy.granite_smooth_stairs": "윤나는 화강암 계단", + "block.mineralogy.granite_smooth_slab": "윤나는 화강암 반 블록", + "block.mineralogy.granite_smooth_brick": "윤나는 화강암 벽돌", + "block.mineralogy.granite_smooth_brick_stairs": "윤나는 화강암 벽돌 계단", + "block.mineralogy.granite_smooth_brick_slab": "윤나는 화강암 벽돌 반 블록", "block.mineralogy.rhyolite": "유문암", "block.mineralogy.rhyolite_stairs": "유문암 계단", - "block.mineralogy.rhyolite_slab": "유문암 석판", + "block.mineralogy.rhyolite_slab": "유문암 반 블록", "block.mineralogy.rhyolite_brick": "유문암 벽돌", "block.mineralogy.rhyolite_brick_stairs": "유문암 벽돌 계단", - "block.mineralogy.rhyolite_brick_slab": "유문암 벽돌 슬라브", - "block.mineralogy.rhyolite_smooth": "광택나는 유문암", - "block.mineralogy.rhyolite_smooth_stairs": "유문암 광택 계단", - "block.mineralogy.rhyolite_smooth_slab": "유문암 광택 슬래브", - "block.mineralogy.rhyolite_smooth_brick": "유문암 광택 벽돌", - "block.mineralogy.rhyolite_smooth_brick_stairs": "유문암 광택 벽돌 계단", - "block.mineralogy.rhyolite_smooth_brick_slab": "유문암 광택 벽돌 슬래브", + "block.mineralogy.rhyolite_brick_slab": "유문암 벽돌 반 블록", + "block.mineralogy.rhyolite_smooth": "윤나는 유문암", + "block.mineralogy.rhyolite_smooth_stairs": "윤나는 유문암 계단", + "block.mineralogy.rhyolite_smooth_slab": "윤나는 유문암 반 블록", + "block.mineralogy.rhyolite_smooth_brick": "윤나는 유문암 벽돌", + "block.mineralogy.rhyolite_smooth_brick_stairs": "윤나는 유문암 벽돌 계단", + "block.mineralogy.rhyolite_smooth_brick_slab": "윤나는 유문암 벽돌 반 블록", "block.mineralogy.pegmatite": "페그마타이트", "block.mineralogy.pegmatite_stairs": "페그마타이트 계단", - "block.mineralogy.pegmatite_slab": "페그마타이트 석판", + "block.mineralogy.pegmatite_slab": "페그마타이트 반 블록", "block.mineralogy.pegmatite_brick": "페그마타이트 벽돌", "block.mineralogy.pegmatite_brick_stairs": "페그마타이트 벽돌 계단", - "block.mineralogy.pegmatite_brick_slab": "페그마타이트 벽돌 슬라브", - "block.mineralogy.pegmatite_smooth": "연마된 페그마타이트", - "block.mineralogy.pegmatite_smooth_stairs": "페그마타이트 광택 계단", - "block.mineralogy.pegmatite_smooth_slab": "페그마타이트 광택 슬래브", - "block.mineralogy.pegmatite_smooth_brick": "페그마타이트 광택 벽돌", - "block.mineralogy.pegmatite_smooth_brick_stairs": "페그마타이트 광택 벽돌 계단", - "block.mineralogy.pegmatite_smooth_brick_slab": "페그마타이트 광택 벽돌 슬래브", + "block.mineralogy.pegmatite_brick_slab": "페그마타이트 벽돌 반 블록", + "block.mineralogy.pegmatite_smooth": "윤나는 페그마타이트", + "block.mineralogy.pegmatite_smooth_stairs": "윤나는 페그마타이트 계단", + "block.mineralogy.pegmatite_smooth_slab": "윤나는 페그마타이트 반 블록", + "block.mineralogy.pegmatite_smooth_brick": "윤나는 페그마타이트 벽돌", + "block.mineralogy.pegmatite_smooth_brick_stairs": "윤나는 페그마타이트 벽돌 계단", + "block.mineralogy.pegmatite_smooth_brick_slab": "윤나는 페그마타이트 벽돌 반 블록", "block.mineralogy.shale": "셰일", "block.mineralogy.shale_stairs": "셰일 계단", - "block.mineralogy.shale_slab": "셰일 슬래브", + "block.mineralogy.shale_slab": "셰일 반 블록", "block.mineralogy.shale_brick": "셰일 벽돌", "block.mineralogy.shale_brick_stairs": "셰일 벽돌 계단", - "block.mineralogy.shale_brick_slab": "셰일 벽돌 슬라브", - "block.mineralogy.shale_smooth": "연마된 셰일", - "block.mineralogy.shale_smooth_stairs": "셰일 광택 계단", - "block.mineralogy.shale_smooth_slab": "셰일 광택 슬래브", - "block.mineralogy.shale_smooth_brick": "셰일 광택 벽돌", - "block.mineralogy.shale_smooth_brick_stairs": "셰일 광택 벽돌 계단", - "block.mineralogy.shale_smooth_brick_slab": "셰일 광택 벽돌 슬래브", - "block.mineralogy.conglomerate": "대기업", - "block.mineralogy.conglomerate_stairs": "대기업 계단", - "block.mineralogy.conglomerate_slab": "대기업 석판", - "block.mineralogy.conglomerate_brick": "대기업 벽돌", - "block.mineralogy.conglomerate_brick_stairs": "대기업 벽돌 계단", - "block.mineralogy.conglomerate_brick_slab": "대기업 벽돌 슬라브", - "block.mineralogy.conglomerate_smooth": "연마된 대기업", - "block.mineralogy.conglomerate_smooth_stairs": "복합 광택 계단", - "block.mineralogy.conglomerate_smooth_slab": "복합 광택 슬래브", - "block.mineralogy.conglomerate_smooth_brick": "복합 광택 벽돌", - "block.mineralogy.conglomerate_smooth_brick_stairs": "대기업 광택 벽돌 계단", - "block.mineralogy.conglomerate_smooth_brick_slab": "대기업 광택 벽돌 슬라브", - "block.mineralogy.dolomite": "돌로미티", - "block.mineralogy.dolomite_stairs": "돌로미티 계단", - "block.mineralogy.dolomite_slab": "백운석 석판", - "block.mineralogy.dolomite_brick": "백운석 벽돌", - "block.mineralogy.dolomite_brick_stairs": "백운석 벽돌 계단", - "block.mineralogy.dolomite_brick_slab": "백운석 벽돌 슬라브", - "block.mineralogy.dolomite_smooth": "연마된 백운석", - "block.mineralogy.dolomite_smooth_stairs": "백운석 광택 계단", - "block.mineralogy.dolomite_smooth_slab": "백운석 광택 슬래브", - "block.mineralogy.dolomite_smooth_brick": "백운석 광택 벽돌", - "block.mineralogy.dolomite_smooth_brick_stairs": "백운석 광택 벽돌 계단", - "block.mineralogy.dolomite_smooth_brick_slab": "백운석 광택 벽돌 슬래브", + "block.mineralogy.shale_brick_slab": "셰일 벽돌 반 블록", + "block.mineralogy.shale_smooth": "윤나는 셰일", + "block.mineralogy.shale_smooth_stairs": "윤나는 셰일 계단", + "block.mineralogy.shale_smooth_slab": "윤나는 셰일 반 블록", + "block.mineralogy.shale_smooth_brick": "윤나는 셰일 벽돌", + "block.mineralogy.shale_smooth_brick_stairs": "윤나는 셰일 벽돌 계단", + "block.mineralogy.shale_smooth_brick_slab": "윤나는 셰일 벽돌 반 블록", + "block.mineralogy.conglomerate": "역암", + "block.mineralogy.conglomerate_stairs": "역암 계단", + "block.mineralogy.conglomerate_slab": "역암 반 블록", + "block.mineralogy.conglomerate_brick": "역암 벽돌", + "block.mineralogy.conglomerate_brick_stairs": "역암 벽돌 계단", + "block.mineralogy.conglomerate_brick_slab": "역암 벽돌 반 블록", + "block.mineralogy.conglomerate_smooth": "윤나는 역암", + "block.mineralogy.conglomerate_smooth_stairs": "윤나는 역암 계단", + "block.mineralogy.conglomerate_smooth_slab": "윤나는 역암 반 블록", + "block.mineralogy.conglomerate_smooth_brick": "윤나는 역암 벽돌", + "block.mineralogy.conglomerate_smooth_brick_stairs": "윤나는 역암 벽돌 계단", + "block.mineralogy.conglomerate_smooth_brick_slab": "윤나는 역암 벽돌 반 블록", + "block.mineralogy.dolomite": "백운암", + "block.mineralogy.dolomite_stairs": "백운암 계단", + "block.mineralogy.dolomite_slab": "백운암 반 블록", + "block.mineralogy.dolomite_brick": "백운암 벽돌", + "block.mineralogy.dolomite_brick_stairs": "백운암 벽돌 계단", + "block.mineralogy.dolomite_brick_slab": "백운암 벽돌 반 블록", + "block.mineralogy.dolomite_smooth": "윤나는 백운암", + "block.mineralogy.dolomite_smooth_stairs": "윤나는 백운암 계단", + "block.mineralogy.dolomite_smooth_slab": "윤나는 백운암 반 블록", + "block.mineralogy.dolomite_smooth_brick": "윤나는 백운암 벽돌", + "block.mineralogy.dolomite_smooth_brick_stairs": "윤나는 백운암 벽돌 계단", + "block.mineralogy.dolomite_smooth_brick_slab": "윤나는 백운암 벽돌 반 블록", "block.mineralogy.limestone": "석회암", "block.mineralogy.limestone_stairs": "석회암 계단", - "block.mineralogy.limestone_slab": "석회석 석판", + "block.mineralogy.limestone_slab": "석회암 반 블록", "block.mineralogy.limestone_brick": "석회암 벽돌", "block.mineralogy.limestone_brick_stairs": "석회암 벽돌 계단", - "block.mineralogy.limestone_brick_slab": "석회암 벽돌 슬라브", - "block.mineralogy.limestone_smooth": "연마된 석회암", - "block.mineralogy.limestone_smooth_stairs": "석회암 광택 계단", - "block.mineralogy.limestone_smooth_slab": "석회석 광택 슬래브", - "block.mineralogy.limestone_smooth_brick": "석회석 광택 벽돌", - "block.mineralogy.limestone_smooth_brick_stairs": "석회암 광택 벽돌 계단", - "block.mineralogy.limestone_smooth_brick_slab": "석회석 광택 벽돌 슬래브", - "block.mineralogy.slate": "슬레이트", - "block.mineralogy.slate_stairs": "슬레이트 계단", - "block.mineralogy.slate_slab": "슬레이트 슬래브", - "block.mineralogy.slate_brick": "슬레이트 벽돌", - "block.mineralogy.slate_brick_stairs": "슬레이트 벽돌 계단", - "block.mineralogy.slate_brick_slab": "슬레이트 벽돌 슬라브", - "block.mineralogy.slate_smooth": "광택나는 슬레이트", - "block.mineralogy.slate_smooth_stairs": "슬레이트 광택 계단", - "block.mineralogy.slate_smooth_slab": "슬레이트 광택 슬래브", - "block.mineralogy.slate_smooth_brick": "슬레이트 광택 벽돌", - "block.mineralogy.slate_smooth_brick_stairs": "슬레이트 광택 벽돌 계단", - "block.mineralogy.slate_smooth_brick_slab": "슬레이트 광택 벽돌 슬라브", + "block.mineralogy.limestone_brick_slab": "석회암 벽돌 반 블록", + "block.mineralogy.limestone_smooth": "윤나는 석회암", + "block.mineralogy.limestone_smooth_stairs": "윤나는 석회암 계단", + "block.mineralogy.limestone_smooth_slab": "윤나는 석회암 반 블록", + "block.mineralogy.limestone_smooth_brick": "윤나는 석회암 벽돌", + "block.mineralogy.limestone_smooth_brick_stairs": "윤나는 석회암 벽돌 계단", + "block.mineralogy.limestone_smooth_brick_slab": "윤나는 석회암 벽돌 반 블록", + "block.mineralogy.slate": "점판암", + "block.mineralogy.slate_stairs": "점판암 계단", + "block.mineralogy.slate_slab": "점판암 반 블록", + "block.mineralogy.slate_brick": "점판암 벽돌", + "block.mineralogy.slate_brick_stairs": "점판암 벽돌 계단", + "block.mineralogy.slate_brick_slab": "점판암 벽돌 반 블록", + "block.mineralogy.slate_smooth": "윤나는 점판암", + "block.mineralogy.slate_smooth_stairs": "윤나는 점판암 계단", + "block.mineralogy.slate_smooth_slab": "윤나는 점판암 반 블록", + "block.mineralogy.slate_smooth_brick": "윤나는 점판암 벽돌", + "block.mineralogy.slate_smooth_brick_stairs": "윤나는 점판암 벽돌 계단", + "block.mineralogy.slate_smooth_brick_slab": "윤나는 점판암 벽돌 반 블록", "block.mineralogy.schist": "편암", "block.mineralogy.schist_stairs": "편암 계단", - "block.mineralogy.schist_slab": "편암 석판", + "block.mineralogy.schist_slab": "편암 반 블록", "block.mineralogy.schist_brick": "편암 벽돌", "block.mineralogy.schist_brick_stairs": "편암 벽돌 계단", - "block.mineralogy.schist_brick_slab": "편암 벽돌 슬라브", - "block.mineralogy.schist_smooth": "광택나는 편암", - "block.mineralogy.schist_smooth_stairs": "편암 광택 계단", - "block.mineralogy.schist_smooth_slab": "편암 광택 슬래브", - "block.mineralogy.schist_smooth_brick": "편암 광택 벽돌", - "block.mineralogy.schist_smooth_brick_stairs": "편암 광택 벽돌 계단", - "block.mineralogy.schist_smooth_brick_slab": "편암 광택 벽돌 슬라브", + "block.mineralogy.schist_brick_slab": "편암 벽돌 반 블록", + "block.mineralogy.schist_smooth": "윤나는 편암", + "block.mineralogy.schist_smooth_stairs": "윤나는 편암 계단", + "block.mineralogy.schist_smooth_slab": "윤나는 편암 반 블록", + "block.mineralogy.schist_smooth_brick": "윤나는 편암 벽돌", + "block.mineralogy.schist_smooth_brick_stairs": "윤나는 편암 벽돌 계단", + "block.mineralogy.schist_smooth_brick_slab": "윤나는 편암 벽돌 반 블록", "block.mineralogy.gneiss": "편마암", "block.mineralogy.gneiss_stairs": "편마암 계단", "block.mineralogy.gneiss_slab": "편마암 반 블록", "block.mineralogy.gneiss_brick": "편마암 벽돌", "block.mineralogy.gneiss_brick_stairs": "편마암 벽돌 계단", "block.mineralogy.gneiss_brick_slab": "편마암 벽돌 반 블록", - "block.mineralogy.gneiss_smooth": "연마된 편마암", - "block.mineralogy.gneiss_smooth_stairs": "편마암 광택 계단", - "block.mineralogy.gneiss_smooth_slab": "편마암 광택 반 블록", - "block.mineralogy.gneiss_smooth_brick": "편마암 광택 벽돌", - "block.mineralogy.gneiss_smooth_brick_stairs": "편마암 광택 벽돌 계단", - "block.mineralogy.gneiss_smooth_brick_slab": "편마암 광택 벽돌 슬래브", + "block.mineralogy.gneiss_smooth": "윤나는 편마암", + "block.mineralogy.gneiss_smooth_stairs": "윤나는 편마암 계단", + "block.mineralogy.gneiss_smooth_slab": "윤나는 편마암 반 블록", + "block.mineralogy.gneiss_smooth_brick": "윤나는 편마암 벽돌", + "block.mineralogy.gneiss_smooth_brick_stairs": "윤나는 편마암 벽돌 계단", + "block.mineralogy.gneiss_smooth_brick_slab": "윤나는 편마암 벽돌 반 블록", "block.mineralogy.marble": "대리석", "block.mineralogy.marble_stairs": "대리석 계단", - "block.mineralogy.marble_slab": "대리석 석판", + "block.mineralogy.marble_slab": "대리석 반 블록", "block.mineralogy.marble_brick": "대리석 벽돌", "block.mineralogy.marble_brick_stairs": "대리석 벽돌 계단", - "block.mineralogy.marble_brick_slab": "대리석 벽돌 슬라브", - "block.mineralogy.marble_smooth": "연마된 대리석", - "block.mineralogy.marble_smooth_stairs": "대리석 광택 계단", - "block.mineralogy.marble_smooth_slab": "대리석 광택 슬래브", - "block.mineralogy.marble_smooth_brick": "대리석 광택 벽돌", - "block.mineralogy.marble_smooth_brick_stairs": "대리석 광택 벽돌 계단", - "block.mineralogy.marble_smooth_brick_slab": "대리석 광택 벽돌 슬라브", + "block.mineralogy.marble_brick_slab": "대리석 벽돌 반 블록", + "block.mineralogy.marble_smooth": "윤나는 대리석", + "block.mineralogy.marble_smooth_stairs": "윤나는 대리석 계단", + "block.mineralogy.marble_smooth_slab": "윤나는 대리석 반 블록", + "block.mineralogy.marble_smooth_brick": "윤나는 대리석 벽돌", + "block.mineralogy.marble_smooth_brick_stairs": "윤나는 대리석 벽돌 계단", + "block.mineralogy.marble_smooth_brick_slab": "윤나는 대리석 벽돌 반 블록", "block.mineralogy.phyllite": "천매암", "block.mineralogy.phyllite_stairs": "천매암 계단", "block.mineralogy.phyllite_slab": "천매암 반 블록", "block.mineralogy.phyllite_brick": "천매암 벽돌", "block.mineralogy.phyllite_brick_stairs": "천매암 벽돌 계단", - "block.mineralogy.phyllite_brick_slab": "천매암 벽돌 슬라브", - "block.mineralogy.phyllite_smooth": "연마된 천매암", - "block.mineralogy.phyllite_smooth_stairs": "천매암 광택 계단", - "block.mineralogy.phyllite_smooth_slab": "천매암 광택 슬래브", - "block.mineralogy.phyllite_smooth_brick": "천매암 광택 벽돌", - "block.mineralogy.phyllite_smooth_brick_stairs": "천매암 광택 벽돌 계단", - "block.mineralogy.phyllite_smooth_brick_slab": "천매암 광택 벽돌 슬라브", - "block.mineralogy.amphibolite": "각섬석", + "block.mineralogy.phyllite_brick_slab": "천매암 벽돌 반 블록", + "block.mineralogy.phyllite_smooth": "윤나는 천매암", + "block.mineralogy.phyllite_smooth_stairs": "윤나는 천매암 계단", + "block.mineralogy.phyllite_smooth_slab": "윤나는 천매암 반 블록", + "block.mineralogy.phyllite_smooth_brick": "윤나는 천매암 벽돌", + "block.mineralogy.phyllite_smooth_brick_stairs": "윤나는 천매암 벽돌 계단", + "block.mineralogy.phyllite_smooth_brick_slab": "윤나는 천매암 벽돌 반 블록", + "block.mineralogy.amphibolite": "각섬암", "block.mineralogy.amphibolite_stairs": "각섬암 계단", - "block.mineralogy.amphibolite_slab": "각섬암 석판", + "block.mineralogy.amphibolite_slab": "각섬암 반 블록", "block.mineralogy.amphibolite_brick": "각섬암 벽돌", - "block.mineralogy.amphibolite_brick_stairs": "각섬석 벽돌 계단", - "block.mineralogy.amphibolite_brick_slab": "각섬석 벽돌 슬라브", - "block.mineralogy.amphibolite_smooth": "매끄러운각섬석", - "block.mineralogy.amphibolite_smooth_stairs": "각섬석 광택 계단", - "block.mineralogy.amphibolite_smooth_slab": "각섬석 광택 슬래브", - "block.mineralogy.amphibolite_smooth_brick": "각섬석 광택 벽돌", - "block.mineralogy.amphibolite_smooth_brick_stairs": "각섬석 광택 벽돌 계단", - "block.mineralogy.amphibolite_smooth_brick_slab": "각섬석 광택 벽돌 슬래브", + "block.mineralogy.amphibolite_brick_stairs": "각섬암 벽돌 계단", + "block.mineralogy.amphibolite_brick_slab": "각섬암 벽돌 반 블록", + "block.mineralogy.amphibolite_smooth": "윤나는 각섬암", + "block.mineralogy.amphibolite_smooth_stairs": "윤나는 각섬암 계단", + "block.mineralogy.amphibolite_smooth_slab": "윤나는 각섬암 반 블록", + "block.mineralogy.amphibolite_smooth_brick": "윤나는 각섬암 벽돌", + "block.mineralogy.amphibolite_smooth_brick_stairs": "윤나는 각섬암 벽돌 계단", + "block.mineralogy.amphibolite_smooth_brick_slab": "윤나는 각섬암 벽돌 반 블록", "item.mineralogy.gypsum_dust": "석고 가루", - "item.mineralogy.sulfur_dust": "유황 분말", - "item.mineralogy.phosphorous_dust": "인 분말", - "item.mineralogy.nitrate_dust": "질산염 분말", - "item.mineralogy.mineral_fertilizer": "미네랄 비료", + "item.mineralogy.sulfur_dust": "유황 가루", + "item.mineralogy.phosphorous_dust": "인 가루", + "item.mineralogy.nitrate_dust": "질산염 가루", + "item.mineralogy.mineral_fertilizer": "광물 비료", "block.mineralogy.chert": "처트", "block.mineralogy.gypsum": "석고", "block.mineralogy.pumice": "부석", "block.mineralogy.sulfur_block": "유황", "block.mineralogy.sulfur_ore": "유황 광석", "block.mineralogy.phosphorous_block": "인", - "block.mineralogy.phosphorous_ore": "인광석", + "block.mineralogy.phosphorous_ore": "인 광석", "block.mineralogy.nitrate_block": "질산염", "block.mineralogy.nitrate_ore": "질산염 광석", - "block.mineralogy.drywall_black": "검은색 건식벽체", - "block.mineralogy.drywall_red": "빨간색 건식벽체", - "block.mineralogy.drywall_green": "녹색 건식벽체", - "block.mineralogy.drywall_brown": "갈색 건식벽체", - "block.mineralogy.drywall_blue": "파란색 건식벽체", - "block.mineralogy.drywall_purple": "보라색 건식벽체", - "block.mineralogy.drywall_cyan": "청록색 건식벽체", - "block.mineralogy.drywall_silver": "밝은 회색 건식벽체", - "block.mineralogy.drywall_gray": "회색 건식벽체", - "block.mineralogy.drywall_pink": "핑크 건식벽체", - "block.mineralogy.drywall_lime": "라임-그린 건식벽", - "block.mineralogy.drywall_yellow": "노란색 건식벽체", - "block.mineralogy.drywall_light_blue": "연청색 건식벽체", - "block.mineralogy.drywall_magenta": "마젠타 건식벽체", - "block.mineralogy.drywall_orange": "주황색 건식벽체", - "block.mineralogy.drywall_white": "흰색 건식벽체", - "block.mineralogy.andesite_wall": "안산암 벽", - "block.mineralogy.andesite_brick_wall": "안산암 벽돌 벽", - "block.mineralogy.andesite_smooth_wall": "안산암 광택 벽", - "block.mineralogy.andesite_smooth_brick_wall": "안산암 광택 벽돌 벽", - "block.mineralogy.basalt_wall": "현무암 벽", - "block.mineralogy.basalt_brick_wall": "현무암 벽돌 벽", - "block.mineralogy.basalt_smooth_wall": "현무암 광택 벽", - "block.mineralogy.basalt_smooth_brick_wall": "현무암 광택 벽돌 벽", - "block.mineralogy.diorite_wall": "섬록암 벽", - "block.mineralogy.diorite_brick_wall": "섬록암 벽돌 벽", - "block.mineralogy.diorite_smooth_wall": "섬록암 광택 벽", - "block.mineralogy.diorite_smooth_brick_wall": "섬록암 광택 벽돌 벽", - "block.mineralogy.granite_wall": "화강암 벽", - "block.mineralogy.granite_brick_wall": "화강암 벽돌 벽", - "block.mineralogy.granite_smooth_wall": "화강암 광택 벽", - "block.mineralogy.granite_smooth_brick_wall": "화강암 광택 벽돌 벽", - "block.mineralogy.rhyolite_wall": "유문암 벽", - "block.mineralogy.rhyolite_brick_wall": "유문암 벽돌 벽", - "block.mineralogy.rhyolite_smooth_wall": "유문암 광택 벽", - "block.mineralogy.rhyolite_smooth_brick_wall": "유문암 광택 벽돌 벽", - "block.mineralogy.pegmatite_wall": "페그마타이트 벽", - "block.mineralogy.pegmatite_brick_wall": "페그마타이트 벽돌 벽", - "block.mineralogy.pegmatite_smooth_wall": "페그마타이트 광택 벽", - "block.mineralogy.pegmatite_smooth_brick_wall": "페그마타이트 광택 벽돌 벽", - "block.mineralogy.shale_wall": "셰일 벽", - "block.mineralogy.shale_brick_wall": "셰일 벽돌 벽", - "block.mineralogy.shale_smooth_wall": "셰일 광택 벽", - "block.mineralogy.shale_smooth_brick_wall": "셰일 광택 벽돌 벽", - "block.mineralogy.conglomerate_wall": "대기업 벽", - "block.mineralogy.conglomerate_brick_wall": "대기업 벽돌담", - "block.mineralogy.conglomerate_smooth_wall": "복합 광택 벽", - "block.mineralogy.conglomerate_smooth_brick_wall": "복합 광택 벽돌 벽", - "block.mineralogy.dolomite_wall": "백운석 벽", - "block.mineralogy.dolomite_brick_wall": "백운석 벽돌 벽", - "block.mineralogy.dolomite_smooth_wall": "백운석 광택 벽", - "block.mineralogy.dolomite_smooth_brick_wall": "백운석 광택 벽돌 벽", - "block.mineralogy.limestone_wall": "석회암 벽", - "block.mineralogy.limestone_brick_wall": "석회암 벽돌 벽", - "block.mineralogy.limestone_smooth_wall": "석회암 광택 벽", - "block.mineralogy.limestone_smooth_brick_wall": "석회암 광택 벽돌 벽", - "block.mineralogy.marble_wall": "대리석 벽", - "block.mineralogy.marble_brick_wall": "대리석 벽돌 벽", - "block.mineralogy.marble_smooth_wall": "대리석 광택 벽", - "block.mineralogy.marble_smooth_brick_wall": "대리석 광택 벽돌 벽", - "block.mineralogy.slate_wall": "슬레이트 벽", - "block.mineralogy.slate_brick_wall": "슬레이트 벽돌 벽", - "block.mineralogy.slate_smooth_wall": "슬레이트 광택 벽", - "block.mineralogy.slate_smooth_brick_wall": "슬레이트 광택 벽돌 벽", - "block.mineralogy.schist_wall": "편암벽", - "block.mineralogy.schist_brick_wall": "편암 벽돌 벽", - "block.mineralogy.schist_smooth_wall": "편암 광택 벽", - "block.mineralogy.schist_smooth_brick_wall": "편암 광택 벽돌 벽", - "block.mineralogy.gneiss_wall": "편마암 벽", - "block.mineralogy.gneiss_brick_wall": "편마암 벽돌 벽", - "block.mineralogy.gneiss_smooth_wall": "편마암 광택 벽", - "block.mineralogy.gneiss_smooth_brick_wall": "편마암 광택 벽돌 벽", - "block.mineralogy.phyllite_wall": "천매암 벽", - "block.mineralogy.phyllite_brick_wall": "천매암 벽돌 벽", - "block.mineralogy.phyllite_smooth_wall": "천매암 광택 벽", - "block.mineralogy.phyllite_smooth_brick_wall": "천매암 광택 벽돌 벽", - "block.mineralogy.amphibolite_wall": "각섬석 벽", - "block.mineralogy.amphibolite_brick_wall": "각섬석 벽돌 벽", - "block.mineralogy.amphibolite_smooth_wall": "각섬석 광택 벽", - "block.mineralogy.amphibolite_smooth_brick_wall": "각섬석 광택 벽돌 벽", - "block.mineralogy.andesite_furnace": "안산암로", - "block.mineralogy.andesite_brick_furnace": "안산암 벽돌로", - "block.mineralogy.andesite_smooth_furnace": "안산암 연마로", - "block.mineralogy.andesite_smooth_brick_furnace": "안산암 광택 벽돌로", - "block.mineralogy.basalt_furnace": "현무암 용광로", - "block.mineralogy.basalt_brick_furnace": "현무암 벽돌로", - "block.mineralogy.basalt_smooth_furnace": "현무암 광택로", - "block.mineralogy.basalt_smooth_brick_furnace": "현무암 광택 벽돌로", - "block.mineralogy.diorite_furnace": "섬록암로", - "block.mineralogy.diorite_brick_furnace": "섬록암 벽돌로", - "block.mineralogy.diorite_smooth_furnace": "섬록암 광택로", - "block.mineralogy.diorite_smooth_brick_furnace": "섬록암 광택 벽돌로", + "block.mineralogy.drywall_black": "검은색 석고보드", + "block.mineralogy.drywall_red": "빨간색 석고보드", + "block.mineralogy.drywall_green": "초록색 석고보드", + "block.mineralogy.drywall_brown": "갈색 석고보드", + "block.mineralogy.drywall_blue": "파란색 석고보드", + "block.mineralogy.drywall_purple": "보라색 석고보드", + "block.mineralogy.drywall_cyan": "청록색 석고보드", + "block.mineralogy.drywall_silver": "밝은 회색 석고보드", + "block.mineralogy.drywall_gray": "회색 석고보드", + "block.mineralogy.drywall_pink": "분홍색 석고보드", + "block.mineralogy.drywall_lime": "연두색 석고보드", + "block.mineralogy.drywall_yellow": "노란색 석고보드", + "block.mineralogy.drywall_light_blue": "하늘색 석고보드", + "block.mineralogy.drywall_magenta": "자홍색 석고보드", + "block.mineralogy.drywall_orange": "주황색 석고보드", + "block.mineralogy.drywall_white": "흰색 석고보드", + "block.mineralogy.andesite_wall": "안산암 담장", + "block.mineralogy.andesite_brick_wall": "안산암 벽돌 담장", + "block.mineralogy.andesite_smooth_wall": "윤나는 안산암 담장", + "block.mineralogy.andesite_smooth_brick_wall": "윤나는 안산암 벽돌 담장", + "block.mineralogy.basalt_wall": "현무암 담장", + "block.mineralogy.basalt_brick_wall": "현무암 벽돌 담장", + "block.mineralogy.basalt_smooth_wall": "윤나는 현무암 담장", + "block.mineralogy.basalt_smooth_brick_wall": "윤나는 현무암 벽돌 담장", + "block.mineralogy.diorite_wall": "섬록암 담장", + "block.mineralogy.diorite_brick_wall": "섬록암 벽돌 담장", + "block.mineralogy.diorite_smooth_wall": "윤나는 섬록암 담장", + "block.mineralogy.diorite_smooth_brick_wall": "윤나는 섬록암 벽돌 담장", + "block.mineralogy.granite_wall": "화강암 담장", + "block.mineralogy.granite_brick_wall": "화강암 벽돌 담장", + "block.mineralogy.granite_smooth_wall": "윤나는 화강암 담장", + "block.mineralogy.granite_smooth_brick_wall": "윤나는 화강암 벽돌 담장", + "block.mineralogy.rhyolite_wall": "유문암 담장", + "block.mineralogy.rhyolite_brick_wall": "유문암 벽돌 담장", + "block.mineralogy.rhyolite_smooth_wall": "윤나는 유문암 담장", + "block.mineralogy.rhyolite_smooth_brick_wall": "윤나는 유문암 벽돌 담장", + "block.mineralogy.pegmatite_wall": "페그마타이트 담장", + "block.mineralogy.pegmatite_brick_wall": "페그마타이트 벽돌 담장", + "block.mineralogy.pegmatite_smooth_wall": "윤나는 페그마타이트 담장", + "block.mineralogy.pegmatite_smooth_brick_wall": "윤나는 페그마타이트 벽돌 담장", + "block.mineralogy.shale_wall": "셰일 담장", + "block.mineralogy.shale_brick_wall": "셰일 벽돌 담장", + "block.mineralogy.shale_smooth_wall": "윤나는 셰일 담장", + "block.mineralogy.shale_smooth_brick_wall": "윤나는 셰일 벽돌 담장", + "block.mineralogy.conglomerate_wall": "역암 담장", + "block.mineralogy.conglomerate_brick_wall": "역암 벽돌 담장", + "block.mineralogy.conglomerate_smooth_wall": "윤나는 역암 담장", + "block.mineralogy.conglomerate_smooth_brick_wall": "윤나는 역암 벽돌 담장", + "block.mineralogy.dolomite_wall": "백운암 담장", + "block.mineralogy.dolomite_brick_wall": "백운암 벽돌 담장", + "block.mineralogy.dolomite_smooth_wall": "윤나는 백운암 담장", + "block.mineralogy.dolomite_smooth_brick_wall": "윤나는 백운암 벽돌 담장", + "block.mineralogy.limestone_wall": "석회암 담장", + "block.mineralogy.limestone_brick_wall": "석회암 벽돌 담장", + "block.mineralogy.limestone_smooth_wall": "윤나는 석회암 담장", + "block.mineralogy.limestone_smooth_brick_wall": "윤나는 석회암 벽돌 담장", + "block.mineralogy.marble_wall": "대리석 담장", + "block.mineralogy.marble_brick_wall": "대리석 벽돌 담장", + "block.mineralogy.marble_smooth_wall": "윤나는 대리석 담장", + "block.mineralogy.marble_smooth_brick_wall": "윤나는 대리석 벽돌 담장", + "block.mineralogy.slate_wall": "점판암 담장", + "block.mineralogy.slate_brick_wall": "점판암 벽돌 담장", + "block.mineralogy.slate_smooth_wall": "윤나는 점판암 담장", + "block.mineralogy.slate_smooth_brick_wall": "윤나는 점판암 벽돌 담장", + "block.mineralogy.schist_wall": "편암 담장", + "block.mineralogy.schist_brick_wall": "편암 벽돌 담장", + "block.mineralogy.schist_smooth_wall": "윤나는 편암 담장", + "block.mineralogy.schist_smooth_brick_wall": "윤나는 편암 벽돌 담장", + "block.mineralogy.gneiss_wall": "편마암 담장", + "block.mineralogy.gneiss_brick_wall": "편마암 벽돌 담장", + "block.mineralogy.gneiss_smooth_wall": "윤나는 편마암 담장", + "block.mineralogy.gneiss_smooth_brick_wall": "윤나는 편마암 벽돌 담장", + "block.mineralogy.phyllite_wall": "천매암 담장", + "block.mineralogy.phyllite_brick_wall": "천매암 벽돌 담장", + "block.mineralogy.phyllite_smooth_wall": "윤나는 천매암 담장", + "block.mineralogy.phyllite_smooth_brick_wall": "윤나는 천매암 벽돌 담장", + "block.mineralogy.amphibolite_wall": "각섬암 담장", + "block.mineralogy.amphibolite_brick_wall": "각섬암 벽돌 담장", + "block.mineralogy.amphibolite_smooth_wall": "윤나는 각섬암 담장", + "block.mineralogy.amphibolite_smooth_brick_wall": "윤나는 각섬암 벽돌 담장", + "block.mineralogy.andesite_furnace": "안산암 화로", + "block.mineralogy.andesite_brick_furnace": "안산암 벽돌 화로", + "block.mineralogy.andesite_smooth_furnace": "윤나는 안산암 화로", + "block.mineralogy.andesite_smooth_brick_furnace": "윤나는 안산암 벽돌 화로", + "block.mineralogy.basalt_furnace": "현무암 화로", + "block.mineralogy.basalt_brick_furnace": "현무암 벽돌 화로", + "block.mineralogy.basalt_smooth_furnace": "윤나는 현무암 화로", + "block.mineralogy.basalt_smooth_brick_furnace": "윤나는 현무암 벽돌 화로", + "block.mineralogy.diorite_furnace": "섬록암 화로", + "block.mineralogy.diorite_brick_furnace": "섬록암 벽돌 화로", + "block.mineralogy.diorite_smooth_furnace": "윤나는 섬록암 화로", + "block.mineralogy.diorite_smooth_brick_furnace": "윤나는 섬록암 벽돌 화로", "block.mineralogy.granite_furnace": "화강암 화로", - "block.mineralogy.granite_brick_furnace": "화강암 벽돌로", - "block.mineralogy.granite_smooth_furnace": "화강암 광택로", - "block.mineralogy.granite_smooth_brick_furnace": "화강암 광택 벽돌 용광로", + "block.mineralogy.granite_brick_furnace": "화강암 벽돌 화로", + "block.mineralogy.granite_smooth_furnace": "윤나는 화강암 화로", + "block.mineralogy.granite_smooth_brick_furnace": "윤나는 화강암 벽돌 화로", "block.mineralogy.rhyolite_furnace": "유문암 화로", - "block.mineralogy.rhyolite_brick_furnace": "유문암 벽돌로", - "block.mineralogy.rhyolite_smooth_furnace": "유문암 연마로", - "block.mineralogy.rhyolite_smooth_brick_furnace": "유문암 광택 벽돌로", - "block.mineralogy.pegmatite_furnace": "페그마타이트 용광로", - "block.mineralogy.pegmatite_brick_furnace": "페그마타이트 벽돌로", - "block.mineralogy.pegmatite_smooth_furnace": "페그마타이트 연마로", - "block.mineralogy.pegmatite_smooth_brick_furnace": "페그마타이트 연마 벽돌로", - "block.mineralogy.shale_furnace": "셰일로", - "block.mineralogy.shale_brick_furnace": "셰일 벽돌 용광로", - "block.mineralogy.shale_smooth_furnace": "셰일 연마로", - "block.mineralogy.shale_smooth_brick_furnace": "셰일 광택 벽돌 용광로", - "block.mineralogy.conglomerate_furnace": "대기업 용광로", - "block.mineralogy.conglomerate_brick_furnace": "대기업 벽돌로", - "block.mineralogy.conglomerate_smooth_furnace": "대기업 연마로", - "block.mineralogy.conglomerate_smooth_brick_furnace": "대기업 광택 벽돌로", - "block.mineralogy.dolomite_furnace": "백운석 용광로", - "block.mineralogy.dolomite_brick_furnace": "백운석 벽돌로", - "block.mineralogy.dolomite_smooth_furnace": "백운석 연마로", - "block.mineralogy.dolomite_smooth_brick_furnace": "백운석 광택 벽돌로", - "block.mineralogy.limestone_furnace": "석회암로", - "block.mineralogy.limestone_brick_furnace": "석회석 벽돌로", - "block.mineralogy.limestone_smooth_furnace": "석회석 연마로", - "block.mineralogy.limestone_smooth_brick_furnace": "석회석 광택 벽돌로", - "block.mineralogy.marble_furnace": "대리석 용광로", - "block.mineralogy.marble_brick_furnace": "대리석 벽돌로", - "block.mineralogy.marble_smooth_furnace": "대리석 광택로", - "block.mineralogy.marble_smooth_brick_furnace": "대리석 광택 벽돌로", - "block.mineralogy.slate_furnace": "슬레이트 화로", - "block.mineralogy.slate_brick_furnace": "슬레이트 벽돌로", - "block.mineralogy.slate_smooth_furnace": "슬레이트 광택로", - "block.mineralogy.slate_smooth_brick_furnace": "슬레이트 광택 벽돌 용광로", - "block.mineralogy.schist_furnace": "편암로", - "block.mineralogy.schist_brick_furnace": "편암 벽돌로", - "block.mineralogy.schist_smooth_furnace": "편암 광택로", - "block.mineralogy.schist_smooth_brick_furnace": "편암 광택 벽돌로", - "block.mineralogy.gneiss_furnace": "편마암 용광로", - "block.mineralogy.gneiss_brick_furnace": "편마암 벽돌로", - "block.mineralogy.gneiss_smooth_furnace": "편마암 연마로", - "block.mineralogy.gneiss_smooth_brick_furnace": "편마암 연마 벽돌로", - "block.mineralogy.phyllite_furnace": "천매암로", - "block.mineralogy.phyllite_brick_furnace": "천매암 벽돌로", - "block.mineralogy.phyllite_smooth_furnace": "천매암 연마로", - "block.mineralogy.phyllite_smooth_brick_furnace": "천매암 광택 벽돌로", - "block.mineralogy.amphibolite_furnace": "각섬암로", - "block.mineralogy.amphibolite_brick_furnace": "각섬석 벽돌로", - "block.mineralogy.amphibolite_smooth_furnace": "각섬석 광택로", - "block.mineralogy.amphibolite_smooth_brick_furnace": "각섬석 광택 벽돌로", - "block.mineralogy.diabase": "디아베이스", - "block.mineralogy.diabase_stairs": "디아베이스 계단", - "block.mineralogy.diabase_slab": "다이암베이스 반 블록", - "block.mineralogy.diabase_brick": "디아베이스 벽돌", - "block.mineralogy.diabase_brick_stairs": "디아베이스 벽돌 계단", - "block.mineralogy.diabase_brick_slab": "디아베이스 벽돌 슬라브", - "block.mineralogy.diabase_smooth": "연마된 다이암베이스", - "block.mineralogy.diabase_smooth_stairs": "다이아베이스 광택 계단", - "block.mineralogy.diabase_smooth_slab": "다이암베이스 광택 슬래브", - "block.mineralogy.diabase_smooth_brick": "다이아베이스 광택 벽돌", - "block.mineralogy.diabase_smooth_brick_stairs": "디아베이스 광택 벽돌 계단", - "block.mineralogy.diabase_smooth_brick_slab": "디아베이스 광택 벽돌 슬래브", - "block.mineralogy.diabase_wall": "다이암베이스 벽", - "block.mineralogy.diabase_brick_wall": "디아베이스 벽돌 벽", - "block.mineralogy.diabase_smooth_wall": "다이아베이스 광택 벽", - "block.mineralogy.diabase_smooth_brick_wall": "디아베이스 광택 벽돌 벽", - "block.mineralogy.diabase_furnace": "다이아베이스 용광로", - "block.mineralogy.diabase_brick_furnace": "디아베이스 벽돌로", - "block.mineralogy.diabase_smooth_furnace": "다이아베이스 연마로", - "block.mineralogy.diabase_smooth_brick_furnace": "다이아베이스 광택 벽돌로", - "block.mineralogy.gabbro": "개브로", - "block.mineralogy.gabbro_stairs": "개브로 계단", - "block.mineralogy.gabbro_slab": "반려암 석판", - "block.mineralogy.gabbro_brick": "개브로 벽돌", - "block.mineralogy.gabbro_brick_stairs": "개브로 벽돌 계단", - "block.mineralogy.gabbro_brick_slab": "개브로 벽돌 슬라브", - "block.mineralogy.gabbro_smooth": "광택나는 개브로", - "block.mineralogy.gabbro_smooth_stairs": "Gabbro 광택 계단", - "block.mineralogy.gabbro_smooth_slab": "Gabbro 광택 슬래브", - "block.mineralogy.gabbro_smooth_brick": "Gabbro 광택 벽돌", - "block.mineralogy.gabbro_smooth_brick_stairs": "Gabbro 광택 벽돌 계단", - "block.mineralogy.gabbro_smooth_brick_slab": "Gabbro 광택 벽돌 슬래브", - "block.mineralogy.gabbro_wall": "개브로 벽", - "block.mineralogy.gabbro_brick_wall": "개브로 벽돌벽", - "block.mineralogy.gabbro_smooth_wall": "Gabbro 광택 벽", - "block.mineralogy.gabbro_smooth_brick_wall": "Gabbro 광택 벽돌 벽", - "block.mineralogy.gabbro_furnace": "개브로 화로", - "block.mineralogy.gabbro_brick_furnace": "개브로 벽돌로", - "block.mineralogy.gabbro_smooth_furnace": "Gabbro 광택로", - "block.mineralogy.gabbro_smooth_brick_furnace": "Gabbro 광택 벽돌로", + "block.mineralogy.rhyolite_brick_furnace": "유문암 벽돌 화로", + "block.mineralogy.rhyolite_smooth_furnace": "윤나는 유문암 화로", + "block.mineralogy.rhyolite_smooth_brick_furnace": "윤나는 유문암 벽돌 화로", + "block.mineralogy.pegmatite_furnace": "페그마타이트 화로", + "block.mineralogy.pegmatite_brick_furnace": "페그마타이트 벽돌 화로", + "block.mineralogy.pegmatite_smooth_furnace": "윤나는 페그마타이트 화로", + "block.mineralogy.pegmatite_smooth_brick_furnace": "윤나는 페그마타이트 벽돌 화로", + "block.mineralogy.shale_furnace": "셰일 화로", + "block.mineralogy.shale_brick_furnace": "셰일 벽돌 화로", + "block.mineralogy.shale_smooth_furnace": "윤나는 셰일 화로", + "block.mineralogy.shale_smooth_brick_furnace": "윤나는 셰일 벽돌 화로", + "block.mineralogy.conglomerate_furnace": "역암 화로", + "block.mineralogy.conglomerate_brick_furnace": "역암 벽돌 화로", + "block.mineralogy.conglomerate_smooth_furnace": "윤나는 역암 화로", + "block.mineralogy.conglomerate_smooth_brick_furnace": "윤나는 역암 벽돌 화로", + "block.mineralogy.dolomite_furnace": "백운암 화로", + "block.mineralogy.dolomite_brick_furnace": "백운암 벽돌 화로", + "block.mineralogy.dolomite_smooth_furnace": "윤나는 백운암 화로", + "block.mineralogy.dolomite_smooth_brick_furnace": "윤나는 백운암 벽돌 화로", + "block.mineralogy.limestone_furnace": "석회암 화로", + "block.mineralogy.limestone_brick_furnace": "석회암 벽돌 화로", + "block.mineralogy.limestone_smooth_furnace": "윤나는 석회암 화로", + "block.mineralogy.limestone_smooth_brick_furnace": "윤나는 석회암 벽돌 화로", + "block.mineralogy.marble_furnace": "대리석 화로", + "block.mineralogy.marble_brick_furnace": "대리석 벽돌 화로", + "block.mineralogy.marble_smooth_furnace": "윤나는 대리석 화로", + "block.mineralogy.marble_smooth_brick_furnace": "윤나는 대리석 벽돌 화로", + "block.mineralogy.slate_furnace": "점판암 화로", + "block.mineralogy.slate_brick_furnace": "점판암 벽돌 화로", + "block.mineralogy.slate_smooth_furnace": "윤나는 점판암 화로", + "block.mineralogy.slate_smooth_brick_furnace": "윤나는 점판암 벽돌 화로", + "block.mineralogy.schist_furnace": "편암 화로", + "block.mineralogy.schist_brick_furnace": "편암 벽돌 화로", + "block.mineralogy.schist_smooth_furnace": "윤나는 편암 화로", + "block.mineralogy.schist_smooth_brick_furnace": "윤나는 편암 벽돌 화로", + "block.mineralogy.gneiss_furnace": "편마암 화로", + "block.mineralogy.gneiss_brick_furnace": "편마암 벽돌 화로", + "block.mineralogy.gneiss_smooth_furnace": "윤나는 편마암 화로", + "block.mineralogy.gneiss_smooth_brick_furnace": "윤나는 편마암 벽돌 화로", + "block.mineralogy.phyllite_furnace": "천매암 화로", + "block.mineralogy.phyllite_brick_furnace": "천매암 벽돌 화로", + "block.mineralogy.phyllite_smooth_furnace": "윤나는 천매암 화로", + "block.mineralogy.phyllite_smooth_brick_furnace": "윤나는 천매암 벽돌 화로", + "block.mineralogy.amphibolite_furnace": "각섬암 화로", + "block.mineralogy.amphibolite_brick_furnace": "각섬암 벽돌 화로", + "block.mineralogy.amphibolite_smooth_furnace": "윤나는 각섬암 화로", + "block.mineralogy.amphibolite_smooth_brick_furnace": "윤나는 각섬암 벽돌 화로", + "block.mineralogy.diabase": "휘록암", + "block.mineralogy.diabase_stairs": "휘록암 계단", + "block.mineralogy.diabase_slab": "휘록암 반 블록", + "block.mineralogy.diabase_brick": "휘록암 벽돌", + "block.mineralogy.diabase_brick_stairs": "휘록암 벽돌 계단", + "block.mineralogy.diabase_brick_slab": "휘록암 벽돌 반 블록", + "block.mineralogy.diabase_smooth": "윤나는 휘록암", + "block.mineralogy.diabase_smooth_stairs": "윤나는 휘록암 계단", + "block.mineralogy.diabase_smooth_slab": "윤나는 휘록암 반 블록", + "block.mineralogy.diabase_smooth_brick": "윤나는 휘록암 벽돌", + "block.mineralogy.diabase_smooth_brick_stairs": "윤나는 휘록암 벽돌 계단", + "block.mineralogy.diabase_smooth_brick_slab": "윤나는 휘록암 벽돌 반 블록", + "block.mineralogy.diabase_wall": "휘록암 담장", + "block.mineralogy.diabase_brick_wall": "휘록암 벽돌 담장", + "block.mineralogy.diabase_smooth_wall": "윤나는 휘록암 담장", + "block.mineralogy.diabase_smooth_brick_wall": "윤나는 휘록암 벽돌 담장", + "block.mineralogy.diabase_furnace": "휘록암 화로", + "block.mineralogy.diabase_brick_furnace": "휘록암 벽돌 화로", + "block.mineralogy.diabase_smooth_furnace": "윤나는 휘록암 화로", + "block.mineralogy.diabase_smooth_brick_furnace": "윤나는 휘록암 벽돌 화로", + "block.mineralogy.gabbro": "반려암", + "block.mineralogy.gabbro_stairs": "반려암 계단", + "block.mineralogy.gabbro_slab": "반려암 반 블록", + "block.mineralogy.gabbro_brick": "반려암 벽돌", + "block.mineralogy.gabbro_brick_stairs": "반려암 벽돌 계단", + "block.mineralogy.gabbro_brick_slab": "반려암 벽돌 반 블록", + "block.mineralogy.gabbro_smooth": "윤나는 반려암", + "block.mineralogy.gabbro_smooth_stairs": "윤나는 반려암 계단", + "block.mineralogy.gabbro_smooth_slab": "윤나는 반려암 반 블록", + "block.mineralogy.gabbro_smooth_brick": "윤나는 반려암 벽돌", + "block.mineralogy.gabbro_smooth_brick_stairs": "윤나는 반려암 벽돌 계단", + "block.mineralogy.gabbro_smooth_brick_slab": "윤나는 반려암 벽돌 반 블록", + "block.mineralogy.gabbro_wall": "반려암 담장", + "block.mineralogy.gabbro_brick_wall": "반려암 벽돌 담장", + "block.mineralogy.gabbro_smooth_wall": "윤나는 반려암 담장", + "block.mineralogy.gabbro_smooth_brick_wall": "윤나는 반려암 벽돌 담장", + "block.mineralogy.gabbro_furnace": "반려암 화로", + "block.mineralogy.gabbro_brick_furnace": "반려암 벽돌 화로", + "block.mineralogy.gabbro_smooth_furnace": "윤나는 반려암 화로", + "block.mineralogy.gabbro_smooth_brick_furnace": "윤나는 반려암 벽돌 화로", "block.mineralogy.peridotite": "감람암", - "block.mineralogy.peridotite_stairs": "감람석 계단", - "block.mineralogy.peridotite_slab": "감람암 석판", - "block.mineralogy.peridotite_brick": "감람석 벽돌", + "block.mineralogy.peridotite_stairs": "감람암 계단", + "block.mineralogy.peridotite_slab": "감람암 반 블록", + "block.mineralogy.peridotite_brick": "감람암 벽돌", "block.mineralogy.peridotite_brick_stairs": "감람암 벽돌 계단", - "block.mineralogy.peridotite_brick_slab": "감람석 벽돌 슬라브", - "block.mineralogy.peridotite_smooth": "연마된 감람암", - "block.mineralogy.peridotite_smooth_stairs": "감람암 광택 계단", - "block.mineralogy.peridotite_smooth_slab": "감람석 광택 슬라브", - "block.mineralogy.peridotite_smooth_brick": "감람석 광택 벽돌", - "block.mineralogy.peridotite_smooth_brick_stairs": "감람암 광택 벽돌 계단", - "block.mineralogy.peridotite_smooth_brick_slab": "감람암 광택 벽돌 슬라브", - "block.mineralogy.peridotite_wall": "감람석 벽", - "block.mineralogy.peridotite_brick_wall": "감람암 벽돌 벽", - "block.mineralogy.peridotite_smooth_wall": "감람암 광택 벽", - "block.mineralogy.peridotite_smooth_brick_wall": "감람암 광택 벽돌 벽", - "block.mineralogy.peridotite_furnace": "감람석 용광로", - "block.mineralogy.peridotite_brick_furnace": "감람석 벽돌로", - "block.mineralogy.peridotite_smooth_furnace": "감람석 연마로", - "block.mineralogy.peridotite_smooth_brick_furnace": "감람석 광택 벽돌로", - "block.mineralogy.basaltic_glass": "현무암 유리", - "block.mineralogy.basaltic_glass_stairs": "현무암 유리 계단", - "block.mineralogy.basaltic_glass_slab": "현무암 유리판", - "block.mineralogy.basaltic_glass_brick": "현무암 유리 벽돌", - "block.mineralogy.basaltic_glass_brick_stairs": "현무암 유리 벽돌 계단", - "block.mineralogy.basaltic_glass_brick_slab": "현무암 유리 벽돌 석판", - "block.mineralogy.basaltic_glass_smooth": "연마된 현무암 유리", - "block.mineralogy.basaltic_glass_smooth_stairs": "현무암 유리 광택 계단", - "block.mineralogy.basaltic_glass_smooth_slab": "현무암 유리 광택 슬래브", - "block.mineralogy.basaltic_glass_smooth_brick": "현무암 유리 광택 벽돌", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "현무암 유리 광택 벽돌 계단", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "현무암 유리 광택 벽돌 슬래브", - "block.mineralogy.basaltic_glass_wall": "현무암 유리벽", - "block.mineralogy.basaltic_glass_brick_wall": "현무암 유리 벽돌 벽", - "block.mineralogy.basaltic_glass_smooth_wall": "현무암 유리 광택 벽", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "현무암 유리 광택 벽돌 벽", - "block.mineralogy.basaltic_glass_furnace": "현무암 유리 용광로", - "block.mineralogy.basaltic_glass_brick_furnace": "현무암 유리 벽돌로", - "block.mineralogy.basaltic_glass_smooth_furnace": "현무암 유리 연마로", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "현무암 유리 광택 벽돌로", + "block.mineralogy.peridotite_brick_slab": "감람암 벽돌 반 블록", + "block.mineralogy.peridotite_smooth": "윤나는 감람암", + "block.mineralogy.peridotite_smooth_stairs": "윤나는 감람암 계단", + "block.mineralogy.peridotite_smooth_slab": "윤나는 감람암 반 블록", + "block.mineralogy.peridotite_smooth_brick": "윤나는 감람암 벽돌", + "block.mineralogy.peridotite_smooth_brick_stairs": "윤나는 감람암 벽돌 계단", + "block.mineralogy.peridotite_smooth_brick_slab": "윤나는 감람암 벽돌 반 블록", + "block.mineralogy.peridotite_wall": "감람암 담장", + "block.mineralogy.peridotite_brick_wall": "감람암 벽돌 담장", + "block.mineralogy.peridotite_smooth_wall": "윤나는 감람암 담장", + "block.mineralogy.peridotite_smooth_brick_wall": "윤나는 감람암 벽돌 담장", + "block.mineralogy.peridotite_furnace": "감람암 화로", + "block.mineralogy.peridotite_brick_furnace": "감람암 벽돌 화로", + "block.mineralogy.peridotite_smooth_furnace": "윤나는 감람암 화로", + "block.mineralogy.peridotite_smooth_brick_furnace": "윤나는 감람암 벽돌 화로", + "block.mineralogy.basaltic_glass": "현무암질 유리", + "block.mineralogy.basaltic_glass_stairs": "현무암질 유리 계단", + "block.mineralogy.basaltic_glass_slab": "현무암질 유리 반 블록", + "block.mineralogy.basaltic_glass_brick": "현무암질 유리 벽돌", + "block.mineralogy.basaltic_glass_brick_stairs": "현무암질 유리 벽돌 계단", + "block.mineralogy.basaltic_glass_brick_slab": "현무암질 유리 벽돌 반 블록", + "block.mineralogy.basaltic_glass_smooth": "윤나는 현무암질 유리", + "block.mineralogy.basaltic_glass_smooth_stairs": "윤나는 현무암질 유리 계단", + "block.mineralogy.basaltic_glass_smooth_slab": "윤나는 현무암질 유리 반 블록", + "block.mineralogy.basaltic_glass_smooth_brick": "윤나는 현무암질 유리 벽돌", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "윤나는 현무암질 유리 벽돌 계단", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "윤나는 현무암질 유리 벽돌 반 블록", + "block.mineralogy.basaltic_glass_wall": "현무암질 유리 담장", + "block.mineralogy.basaltic_glass_brick_wall": "현무암질 유리 벽돌 담장", + "block.mineralogy.basaltic_glass_smooth_wall": "윤나는 현무암질 유리 담장", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "윤나는 현무암질 유리 벽돌 담장", + "block.mineralogy.basaltic_glass_furnace": "현무암질 유리 화로", + "block.mineralogy.basaltic_glass_brick_furnace": "현무암질 유리 벽돌 화로", + "block.mineralogy.basaltic_glass_smooth_furnace": "윤나는 현무암질 유리 화로", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "윤나는 현무암질 유리 벽돌 화로", "block.mineralogy.scoria": "스코리아", "block.mineralogy.scoria_stairs": "스코리아 계단", - "block.mineralogy.scoria_slab": "스코리아 석판", - "block.mineralogy.scoria_brick": "스리아 벽돌", - "block.mineralogy.scoria_brick_stairs": "스리아 벽돌 계단", - "block.mineralogy.scoria_brick_slab": "스리아 벽돌 슬라브", - "block.mineralogy.scoria_smooth": "광택나는 스리아", - "block.mineralogy.scoria_smooth_stairs": "스코리아 광택 계단", - "block.mineralogy.scoria_smooth_slab": "스리아 광택 반 블록", - "block.mineralogy.scoria_smooth_brick": "스코리아 광택 벽돌", - "block.mineralogy.scoria_smooth_brick_stairs": "스코리아 광택 벽돌 계단", - "block.mineralogy.scoria_smooth_brick_slab": "스코리아 광택 벽돌 슬라브", - "block.mineralogy.scoria_wall": "스코리아 벽", - "block.mineralogy.scoria_brick_wall": "스리아 벽돌담", - "block.mineralogy.scoria_smooth_wall": "스코리아 광택 벽", - "block.mineralogy.scoria_smooth_brick_wall": "스코리아 광택 벽돌 벽", + "block.mineralogy.scoria_slab": "스코리아 반 블록", + "block.mineralogy.scoria_brick": "스코리아 벽돌", + "block.mineralogy.scoria_brick_stairs": "스코리아 벽돌 계단", + "block.mineralogy.scoria_brick_slab": "스코리아 벽돌 반 블록", + "block.mineralogy.scoria_smooth": "윤나는 스코리아", + "block.mineralogy.scoria_smooth_stairs": "윤나는 스코리아 계단", + "block.mineralogy.scoria_smooth_slab": "윤나는 스코리아 반 블록", + "block.mineralogy.scoria_smooth_brick": "윤나는 스코리아 벽돌", + "block.mineralogy.scoria_smooth_brick_stairs": "윤나는 스코리아 벽돌 계단", + "block.mineralogy.scoria_smooth_brick_slab": "윤나는 스코리아 벽돌 반 블록", + "block.mineralogy.scoria_wall": "스코리아 담장", + "block.mineralogy.scoria_brick_wall": "스코리아 벽돌 담장", + "block.mineralogy.scoria_smooth_wall": "윤나는 스코리아 담장", + "block.mineralogy.scoria_smooth_brick_wall": "윤나는 스코리아 벽돌 담장", "block.mineralogy.scoria_furnace": "스코리아 화로", - "block.mineralogy.scoria_brick_furnace": "스코리아 벽돌로", - "block.mineralogy.scoria_smooth_furnace": "스코리아 광택로", - "block.mineralogy.scoria_smooth_brick_furnace": "스코리아 광택 벽돌로", + "block.mineralogy.scoria_brick_furnace": "스코리아 벽돌 화로", + "block.mineralogy.scoria_smooth_furnace": "윤나는 스코리아 화로", + "block.mineralogy.scoria_smooth_brick_furnace": "윤나는 스코리아 벽돌 화로", "block.mineralogy.tuff": "응회암", "block.mineralogy.tuff_stairs": "응회암 계단", "block.mineralogy.tuff_slab": "응회암 반 블록", "block.mineralogy.tuff_brick": "응회암 벽돌", "block.mineralogy.tuff_brick_stairs": "응회암 벽돌 계단", "block.mineralogy.tuff_brick_slab": "응회암 벽돌 반 블록", - "block.mineralogy.tuff_smooth": "윤이 나는 응회암", - "block.mineralogy.tuff_smooth_stairs": "응회암 광택 계단", - "block.mineralogy.tuff_smooth_slab": "응회암 광택 반 블록", - "block.mineralogy.tuff_smooth_brick": "응회암 광택 벽돌", - "block.mineralogy.tuff_smooth_brick_stairs": "응회암 광택 벽돌 계단", - "block.mineralogy.tuff_smooth_brick_slab": "응회암 광택 벽돌 슬라브", - "block.mineralogy.tuff_wall": "응회암 벽", - "block.mineralogy.tuff_brick_wall": "응회암 벽돌 벽", - "block.mineralogy.tuff_smooth_wall": "응회암 광택 벽", - "block.mineralogy.tuff_smooth_brick_wall": "응회암 광택 벽돌 벽", - "block.mineralogy.tuff_furnace": "응회암로", - "block.mineralogy.tuff_brick_furnace": "응회암 벽돌로", - "block.mineralogy.tuff_smooth_furnace": "응회암 광택로", - "block.mineralogy.tuff_smooth_brick_furnace": "응회암 광택 벽돌로", - "block.mineralogy.siltstone": "실트암", - "block.mineralogy.siltstone_stairs": "실트스톤 계단", - "block.mineralogy.siltstone_slab": "실트암 반 블록", - "block.mineralogy.siltstone_brick": "실트암 벽돌", - "block.mineralogy.siltstone_brick_stairs": "실트스톤 벽돌 계단", + "block.mineralogy.tuff_smooth": "윤나는 응회암", + "block.mineralogy.tuff_smooth_stairs": "윤나는 응회암 계단", + "block.mineralogy.tuff_smooth_slab": "윤나는 응회암 반 블록", + "block.mineralogy.tuff_smooth_brick": "윤나는 응회암 벽돌", + "block.mineralogy.tuff_smooth_brick_stairs": "윤나는 응회암 벽돌 계단", + "block.mineralogy.tuff_smooth_brick_slab": "윤나는 응회암 벽돌 반 블록", + "block.mineralogy.tuff_wall": "응회암 담장", + "block.mineralogy.tuff_brick_wall": "응회암 벽돌 담장", + "block.mineralogy.tuff_smooth_wall": "윤나는 응회암 담장", + "block.mineralogy.tuff_smooth_brick_wall": "윤나는 응회암 벽돌 담장", + "block.mineralogy.tuff_furnace": "응회암 화로", + "block.mineralogy.tuff_brick_furnace": "응회암 벽돌 화로", + "block.mineralogy.tuff_smooth_furnace": "윤나는 응회암 화로", + "block.mineralogy.tuff_smooth_brick_furnace": "윤나는 응회암 벽돌 화로", + "block.mineralogy.siltstone": "미사암", + "block.mineralogy.siltstone_stairs": "미사암 계단", + "block.mineralogy.siltstone_slab": "미사암 반 블록", + "block.mineralogy.siltstone_brick": "미사암 벽돌", + "block.mineralogy.siltstone_brick_stairs": "미사암 벽돌 계단", "block.mineralogy.siltstone_brick_slab": "미사암 벽돌 반 블록", - "block.mineralogy.siltstone_smooth": "광택나는 실트암", - "block.mineralogy.siltstone_smooth_stairs": "실트스톤 광택 계단", - "block.mineralogy.siltstone_smooth_slab": "실트스톤 광택 반 블록", - "block.mineralogy.siltstone_smooth_brick": "실트스톤 광택 벽돌", - "block.mineralogy.siltstone_smooth_brick_stairs": "실트스톤 광택 벽돌 계단", - "block.mineralogy.siltstone_smooth_brick_slab": "실트스톤 광택 벽돌 슬라브", - "block.mineralogy.siltstone_wall": "실트스톤 성벽", - "block.mineralogy.siltstone_brick_wall": "실트암 벽돌 벽", - "block.mineralogy.siltstone_smooth_wall": "실트스톤 광택 벽", - "block.mineralogy.siltstone_smooth_brick_wall": "실트스톤 광택 벽돌 벽", - "block.mineralogy.siltstone_furnace": "미사암 용광로", - "block.mineralogy.siltstone_brick_furnace": "실트암 벽돌 용광로", - "block.mineralogy.siltstone_smooth_furnace": "미사암 연마로", - "block.mineralogy.siltstone_smooth_brick_furnace": "실트스톤 광택 벽돌 용광로", + "block.mineralogy.siltstone_smooth": "윤나는 미사암", + "block.mineralogy.siltstone_smooth_stairs": "윤나는 미사암 계단", + "block.mineralogy.siltstone_smooth_slab": "윤나는 미사암 반 블록", + "block.mineralogy.siltstone_smooth_brick": "윤나는 미사암 벽돌", + "block.mineralogy.siltstone_smooth_brick_stairs": "윤나는 미사암 벽돌 계단", + "block.mineralogy.siltstone_smooth_brick_slab": "윤나는 미사암 벽돌 반 블록", + "block.mineralogy.siltstone_wall": "미사암 담장", + "block.mineralogy.siltstone_brick_wall": "미사암 벽돌 담장", + "block.mineralogy.siltstone_smooth_wall": "윤나는 미사암 담장", + "block.mineralogy.siltstone_smooth_brick_wall": "윤나는 미사암 벽돌 담장", + "block.mineralogy.siltstone_furnace": "미사암 화로", + "block.mineralogy.siltstone_brick_furnace": "미사암 벽돌 화로", + "block.mineralogy.siltstone_smooth_furnace": "윤나는 미사암 화로", + "block.mineralogy.siltstone_smooth_brick_furnace": "윤나는 미사암 벽돌 화로", "block.mineralogy.rock_salt": "암염", "block.mineralogy.rock_salt_stairs": "암염 계단", - "block.mineralogy.rock_salt_slab": "암염반", + "block.mineralogy.rock_salt_slab": "암염 반 블록", "block.mineralogy.rock_salt_brick": "암염 벽돌", "block.mineralogy.rock_salt_brick_stairs": "암염 벽돌 계단", - "block.mineralogy.rock_salt_brick_slab": "암염 벽돌 슬라브", - "block.mineralogy.rock_salt_smooth": "연마된 암염", - "block.mineralogy.rock_salt_smooth_stairs": "암염 광택 계단", - "block.mineralogy.rock_salt_smooth_slab": "암염 연마반", - "block.mineralogy.rock_salt_smooth_brick": "암염 광택 벽돌", - "block.mineralogy.rock_salt_smooth_brick_stairs": "암염 광택 벽돌 계단", - "block.mineralogy.rock_salt_smooth_brick_slab": "암염 광택 벽돌 슬라브", - "block.mineralogy.rock_salt_wall": "암염벽", - "block.mineralogy.rock_salt_brick_wall": "암염 벽돌 벽", - "block.mineralogy.rock_salt_smooth_wall": "암염 광택 벽", - "block.mineralogy.rock_salt_smooth_brick_wall": "암염 광택 벽돌 벽", - "block.mineralogy.rock_salt_furnace": "암염로", - "block.mineralogy.rock_salt_brick_furnace": "암염 벽돌로", - "block.mineralogy.rock_salt_smooth_furnace": "암염 연마로", - "block.mineralogy.rock_salt_smooth_brick_furnace": "암염 광택 벽돌로", + "block.mineralogy.rock_salt_brick_slab": "암염 벽돌 반 블록", + "block.mineralogy.rock_salt_smooth": "윤나는 암염", + "block.mineralogy.rock_salt_smooth_stairs": "윤나는 암염 계단", + "block.mineralogy.rock_salt_smooth_slab": "윤나는 암염 반 블록", + "block.mineralogy.rock_salt_smooth_brick": "윤나는 암염 벽돌", + "block.mineralogy.rock_salt_smooth_brick_stairs": "윤나는 암염 벽돌 계단", + "block.mineralogy.rock_salt_smooth_brick_slab": "윤나는 암염 벽돌 반 블록", + "block.mineralogy.rock_salt_wall": "암염 담장", + "block.mineralogy.rock_salt_brick_wall": "암염 벽돌 담장", + "block.mineralogy.rock_salt_smooth_wall": "윤나는 암염 담장", + "block.mineralogy.rock_salt_smooth_brick_wall": "윤나는 암염 벽돌 담장", + "block.mineralogy.rock_salt_furnace": "암염 화로", + "block.mineralogy.rock_salt_brick_furnace": "암염 벽돌 화로", + "block.mineralogy.rock_salt_smooth_furnace": "윤나는 암염 화로", + "block.mineralogy.rock_salt_smooth_brick_furnace": "윤나는 암염 벽돌 화로", "block.mineralogy.hornfels": "혼펠스", "block.mineralogy.hornfels_stairs": "혼펠스 계단", - "block.mineralogy.hornfels_slab": "혼펠스 석판", + "block.mineralogy.hornfels_slab": "혼펠스 반 블록", "block.mineralogy.hornfels_brick": "혼펠스 벽돌", "block.mineralogy.hornfels_brick_stairs": "혼펠스 벽돌 계단", "block.mineralogy.hornfels_brick_slab": "혼펠스 벽돌 반 블록", - "block.mineralogy.hornfels_smooth": "광택나는 혼펠스", - "block.mineralogy.hornfels_smooth_stairs": "혼펠스 광택 계단", - "block.mineralogy.hornfels_smooth_slab": "혼펠스 광택 반 블록", - "block.mineralogy.hornfels_smooth_brick": "혼펠스 광택 벽돌", - "block.mineralogy.hornfels_smooth_brick_stairs": "혼펠스 광택 벽돌 계단", - "block.mineralogy.hornfels_smooth_brick_slab": "혼펠스 광택 벽돌 슬라브", - "block.mineralogy.hornfels_wall": "혼펠스 성벽", - "block.mineralogy.hornfels_brick_wall": "혼펠스 벽돌 벽", - "block.mineralogy.hornfels_smooth_wall": "혼펠스 광택 벽", - "block.mineralogy.hornfels_smooth_brick_wall": "혼펠스 광택 벽돌 벽", - "block.mineralogy.hornfels_furnace": "혼펠스 용광로", - "block.mineralogy.hornfels_brick_furnace": "혼펠스 벽돌 용광로", - "block.mineralogy.hornfels_smooth_furnace": "혼펠스 광택로", - "block.mineralogy.hornfels_smooth_brick_furnace": "혼펠스 광택 벽돌 용광로", + "block.mineralogy.hornfels_smooth": "윤나는 혼펠스", + "block.mineralogy.hornfels_smooth_stairs": "윤나는 혼펠스 계단", + "block.mineralogy.hornfels_smooth_slab": "윤나는 혼펠스 반 블록", + "block.mineralogy.hornfels_smooth_brick": "윤나는 혼펠스 벽돌", + "block.mineralogy.hornfels_smooth_brick_stairs": "윤나는 혼펠스 벽돌 계단", + "block.mineralogy.hornfels_smooth_brick_slab": "윤나는 혼펠스 벽돌 반 블록", + "block.mineralogy.hornfels_wall": "혼펠스 담장", + "block.mineralogy.hornfels_brick_wall": "혼펠스 벽돌 담장", + "block.mineralogy.hornfels_smooth_wall": "윤나는 혼펠스 담장", + "block.mineralogy.hornfels_smooth_brick_wall": "윤나는 혼펠스 벽돌 담장", + "block.mineralogy.hornfels_furnace": "혼펠스 화로", + "block.mineralogy.hornfels_brick_furnace": "혼펠스 벽돌 화로", + "block.mineralogy.hornfels_smooth_furnace": "윤나는 혼펠스 화로", + "block.mineralogy.hornfels_smooth_brick_furnace": "윤나는 혼펠스 벽돌 화로", "block.mineralogy.quartzite": "규암", "block.mineralogy.quartzite_stairs": "규암 계단", - "block.mineralogy.quartzite_slab": "규암 석판", + "block.mineralogy.quartzite_slab": "규암 반 블록", "block.mineralogy.quartzite_brick": "규암 벽돌", "block.mineralogy.quartzite_brick_stairs": "규암 벽돌 계단", - "block.mineralogy.quartzite_brick_slab": "규암 벽돌 슬라브", - "block.mineralogy.quartzite_smooth": "연마된 규암", - "block.mineralogy.quartzite_smooth_stairs": "규암 광택 계단", - "block.mineralogy.quartzite_smooth_slab": "규암 광택 슬래브", - "block.mineralogy.quartzite_smooth_brick": "규암 광택 벽돌", - "block.mineralogy.quartzite_smooth_brick_stairs": "규암 광택 벽돌 계단", - "block.mineralogy.quartzite_smooth_brick_slab": "규암 광택 벽돌 슬래브", - "block.mineralogy.quartzite_wall": "규암 벽", - "block.mineralogy.quartzite_brick_wall": "규암 벽돌 벽", - "block.mineralogy.quartzite_smooth_wall": "규암 광택 벽", - "block.mineralogy.quartzite_smooth_brick_wall": "규암 광택 벽돌 벽", - "block.mineralogy.quartzite_furnace": "규암로", - "block.mineralogy.quartzite_brick_furnace": "규암 벽돌로", - "block.mineralogy.quartzite_smooth_furnace": "규암 연마로", - "block.mineralogy.quartzite_smooth_brick_furnace": "규암 광택 벽돌로", + "block.mineralogy.quartzite_brick_slab": "규암 벽돌 반 블록", + "block.mineralogy.quartzite_smooth": "윤나는 규암", + "block.mineralogy.quartzite_smooth_stairs": "윤나는 규암 계단", + "block.mineralogy.quartzite_smooth_slab": "윤나는 규암 반 블록", + "block.mineralogy.quartzite_smooth_brick": "윤나는 규암 벽돌", + "block.mineralogy.quartzite_smooth_brick_stairs": "윤나는 규암 벽돌 계단", + "block.mineralogy.quartzite_smooth_brick_slab": "윤나는 규암 벽돌 반 블록", + "block.mineralogy.quartzite_wall": "규암 담장", + "block.mineralogy.quartzite_brick_wall": "규암 벽돌 담장", + "block.mineralogy.quartzite_smooth_wall": "윤나는 규암 담장", + "block.mineralogy.quartzite_smooth_brick_wall": "윤나는 규암 벽돌 담장", + "block.mineralogy.quartzite_furnace": "규암 화로", + "block.mineralogy.quartzite_brick_furnace": "규암 벽돌 화로", + "block.mineralogy.quartzite_smooth_furnace": "윤나는 규암 화로", + "block.mineralogy.quartzite_smooth_brick_furnace": "윤나는 규암 벽돌 화로", "block.mineralogy.novaculite": "노바큘라이트", "block.mineralogy.novaculite_stairs": "노바큘라이트 계단", - "block.mineralogy.novaculite_slab": "노바큐라이트 석판", + "block.mineralogy.novaculite_slab": "노바큘라이트 반 블록", "block.mineralogy.novaculite_brick": "노바큘라이트 벽돌", "block.mineralogy.novaculite_brick_stairs": "노바큘라이트 벽돌 계단", - "block.mineralogy.novaculite_brick_slab": "노바큐라이트 벽돌 슬라브", - "block.mineralogy.novaculite_smooth": "연마된 노바큐라이트", - "block.mineralogy.novaculite_smooth_stairs": "노바큘라이트 광택 계단", - "block.mineralogy.novaculite_smooth_slab": "노바큐라이트 광택 슬래브", - "block.mineralogy.novaculite_smooth_brick": "노바큐라이트 광택 벽돌", - "block.mineralogy.novaculite_smooth_brick_stairs": "노바큘라이트 광택 벽돌 계단", - "block.mineralogy.novaculite_smooth_brick_slab": "노바큘라이트 광택 벽돌 슬라브", - "block.mineralogy.novaculite_wall": "노바큘라이트 벽", - "block.mineralogy.novaculite_brick_wall": "노바큘라이트 벽돌 벽", - "block.mineralogy.novaculite_smooth_wall": "노바큘라이트 광택 벽", - "block.mineralogy.novaculite_smooth_brick_wall": "노바큐라이트 광택 벽돌 벽", + "block.mineralogy.novaculite_brick_slab": "노바큘라이트 벽돌 반 블록", + "block.mineralogy.novaculite_smooth": "윤나는 노바큘라이트", + "block.mineralogy.novaculite_smooth_stairs": "윤나는 노바큘라이트 계단", + "block.mineralogy.novaculite_smooth_slab": "윤나는 노바큘라이트 반 블록", + "block.mineralogy.novaculite_smooth_brick": "윤나는 노바큘라이트 벽돌", + "block.mineralogy.novaculite_smooth_brick_stairs": "윤나는 노바큘라이트 벽돌 계단", + "block.mineralogy.novaculite_smooth_brick_slab": "윤나는 노바큘라이트 벽돌 반 블록", + "block.mineralogy.novaculite_wall": "노바큘라이트 담장", + "block.mineralogy.novaculite_brick_wall": "노바큘라이트 벽돌 담장", + "block.mineralogy.novaculite_smooth_wall": "윤나는 노바큘라이트 담장", + "block.mineralogy.novaculite_smooth_brick_wall": "윤나는 노바큘라이트 벽돌 담장", "block.mineralogy.novaculite_furnace": "노바큘라이트 화로", - "block.mineralogy.novaculite_brick_furnace": "노바큘라이트 벽돌로", - "block.mineralogy.novaculite_smooth_furnace": "노바큐라이트 연마로", - "block.mineralogy.novaculite_smooth_brick_furnace": "노바큐라이트 광택 벽돌로", + "block.mineralogy.novaculite_brick_furnace": "노바큘라이트 벽돌 화로", + "block.mineralogy.novaculite_smooth_furnace": "윤나는 노바큘라이트 화로", + "block.mineralogy.novaculite_smooth_brick_furnace": "윤나는 노바큘라이트 벽돌 화로", "block.mineralogy.chalk": "분필", "item.mineralogy.chalk_dust": "분필 가루", "item.mineralogy.salt_dust": "소금", "item.mineralogy.rock_salt_dust": "암염 결정", "block.mineralogy.rocksaltlamp": "암염 램프", "block.mineralogy.rocksaltstreetlamp": "암염 가로등", - "block.mineralogy.andesite_relief_axe": "안산암 도끼 부조", - "block.mineralogy.andesite_relief_blank": "안산암 공백 부조", - "block.mineralogy.andesite_relief_cross": "안산암 교차 부조", - "block.mineralogy.andesite_relief_hammer": "안산암 해머 부조", - "block.mineralogy.andesite_relief_hoe": "안산암 괭이 부조", - "block.mineralogy.andesite_relief_horizontal": "안산암 수평 기복", - "block.mineralogy.andesite_relief_i": "안산암 I 부조", - "block.mineralogy.andesite_relief_left": "안산암 왼쪽 부조", - "block.mineralogy.andesite_relief_pickaxe": "안산암 곡괭이 부조", - "block.mineralogy.andesite_relief_plus": "안산암 플러스 구호", - "block.mineralogy.andesite_relief_right": "안산암 오른쪽 부조", - "block.mineralogy.andesite_relief_sword": "안산암 검 부조", - "block.mineralogy.andesite_relief_vertical": "안산암 수직 기복", - "block.mineralogy.basalt_relief_axe": "현무암 도끼 부조", - "block.mineralogy.basalt_relief_blank": "현무암 공백 부조", - "block.mineralogy.basalt_relief_cross": "현무암 십자가 부조", - "block.mineralogy.basalt_relief_hammer": "현무암 망치 부조", - "block.mineralogy.basalt_relief_hoe": "현무암 괭이 부조", - "block.mineralogy.basalt_relief_horizontal": "현무암 수평 부조", - "block.mineralogy.basalt_relief_i": "현무암 I 부조", - "block.mineralogy.basalt_relief_left": "현무암 왼쪽 부조", - "block.mineralogy.basalt_relief_pickaxe": "현무암 곡괭이 부조", - "block.mineralogy.basalt_relief_plus": "현무암 플러스 부조", - "block.mineralogy.basalt_relief_right": "현무암 오른쪽 부조", - "block.mineralogy.basalt_relief_sword": "현무암 검 부조", - "block.mineralogy.basalt_relief_vertical": "현무암 수직 기복", - "block.mineralogy.diorite_relief_axe": "섬록암 도끼 부조", - "block.mineralogy.diorite_relief_blank": "섬록암 공백 부조", - "block.mineralogy.diorite_relief_cross": "섬록암 십자 부조", - "block.mineralogy.diorite_relief_hammer": "섬록암 해머 부조", - "block.mineralogy.diorite_relief_hoe": "섬록암 괭이 부조", - "block.mineralogy.diorite_relief_horizontal": "섬록암 수평 부조", - "block.mineralogy.diorite_relief_i": "섬록석 I 부조", - "block.mineralogy.diorite_relief_left": "섬록암 왼쪽 부조", - "block.mineralogy.diorite_relief_pickaxe": "섬록암 곡괭이 부조", - "block.mineralogy.diorite_relief_plus": "섬록석 플러스 릴리프", - "block.mineralogy.diorite_relief_right": "섬록암 오른쪽 부조", - "block.mineralogy.diorite_relief_sword": "섬록암 검 부조", - "block.mineralogy.diorite_relief_vertical": "섬록암 수직 부조", - "block.mineralogy.granite_relief_axe": "화강암 도끼 부조", - "block.mineralogy.granite_relief_blank": "화강암 공백 부조", - "block.mineralogy.granite_relief_cross": "화강암 십자형 부조", - "block.mineralogy.granite_relief_hammer": "화강암 해머 부조", - "block.mineralogy.granite_relief_hoe": "화강암 괭이 부조", - "block.mineralogy.granite_relief_horizontal": "화강암 수평 부조", - "block.mineralogy.granite_relief_i": "화강암 I 부조", - "block.mineralogy.granite_relief_left": "화강암 왼쪽 부조", - "block.mineralogy.granite_relief_pickaxe": "화강암 곡괭이 부조", - "block.mineralogy.granite_relief_plus": "화강암 플러스 부조", - "block.mineralogy.granite_relief_right": "화강암 오른쪽 부조", - "block.mineralogy.granite_relief_sword": "화강암 검 부조", - "block.mineralogy.granite_relief_vertical": "화강암 수직 부조", - "block.mineralogy.rhyolite_relief_axe": "유문암 도끼 부조", - "block.mineralogy.rhyolite_relief_blank": "유문암 공백 부조", - "block.mineralogy.rhyolite_relief_cross": "유문암 십자가 부조", - "block.mineralogy.rhyolite_relief_hammer": "유문암 망치 부조", - "block.mineralogy.rhyolite_relief_hoe": "유문암 괭이 부조", - "block.mineralogy.rhyolite_relief_horizontal": "유문암 수평 부조", - "block.mineralogy.rhyolite_relief_i": "유문암 I 부조", - "block.mineralogy.rhyolite_relief_left": "유문암 왼쪽 부조", - "block.mineralogy.rhyolite_relief_pickaxe": "유문암 곡괭이 부조", - "block.mineralogy.rhyolite_relief_plus": "유문암 플러스 릴리프", - "block.mineralogy.rhyolite_relief_right": "유문암 오른쪽 부조", - "block.mineralogy.rhyolite_relief_sword": "유문암 검 부조", - "block.mineralogy.rhyolite_relief_vertical": "유문암 수직 부조", - "block.mineralogy.pegmatite_relief_axe": "페그마타이트 도끼 부조", - "block.mineralogy.pegmatite_relief_blank": "페그마타이트 공백 부조", - "block.mineralogy.pegmatite_relief_cross": "페그마타이트 십자 부조", - "block.mineralogy.pegmatite_relief_hammer": "페그마타이트 해머 부조", - "block.mineralogy.pegmatite_relief_hoe": "페그마타이트 괭이 부조", - "block.mineralogy.pegmatite_relief_horizontal": "페그마타이트 수평 부조", - "block.mineralogy.pegmatite_relief_i": "페그마타이트 I 부조", - "block.mineralogy.pegmatite_relief_left": "페그마타이트 왼쪽 부조", - "block.mineralogy.pegmatite_relief_pickaxe": "페그마타이트 곡괭이 부조", - "block.mineralogy.pegmatite_relief_plus": "페그마타이트 플러스 릴리프", - "block.mineralogy.pegmatite_relief_right": "페그마타이트 오른쪽 부조", - "block.mineralogy.pegmatite_relief_sword": "페그마타이트 검 부조", - "block.mineralogy.pegmatite_relief_vertical": "페그마타이트 수직 부조", - "block.mineralogy.shale_relief_axe": "셰일 도끼 부조", - "block.mineralogy.shale_relief_blank": "셰일 블랭크 부조", - "block.mineralogy.shale_relief_cross": "셰일 교차 부조", - "block.mineralogy.shale_relief_hammer": "셰일 해머 릴리프", - "block.mineralogy.shale_relief_hoe": "셰일 괭이 구호", - "block.mineralogy.shale_relief_horizontal": "셰일 수평 기복", - "block.mineralogy.shale_relief_i": "셰일 I 구호", - "block.mineralogy.shale_relief_left": "셰일 왼쪽 구호", - "block.mineralogy.shale_relief_pickaxe": "셰일 곡괭이 부조", - "block.mineralogy.shale_relief_plus": "셰일 플러스 릴리프", - "block.mineralogy.shale_relief_right": "셰일 우량 구호", - "block.mineralogy.shale_relief_sword": "셰일 검 부조", - "block.mineralogy.shale_relief_vertical": "셰일 수직 기복", - "block.mineralogy.conglomerate_relief_axe": "대기업 도끼 부조", - "block.mineralogy.conglomerate_relief_blank": "대기업 공백 부조", - "block.mineralogy.conglomerate_relief_cross": "대기업 교차 구호", - "block.mineralogy.conglomerate_relief_hammer": "대기업 망치 부조", - "block.mineralogy.conglomerate_relief_hoe": "대기업 호미 구호품", - "block.mineralogy.conglomerate_relief_horizontal": "대기업 수평 부조", - "block.mineralogy.conglomerate_relief_i": "대기업 I 구호", - "block.mineralogy.conglomerate_relief_left": "대기업 왼쪽 구호", - "block.mineralogy.conglomerate_relief_pickaxe": "대기업 곡괭이 부조", - "block.mineralogy.conglomerate_relief_plus": "대기업 플러스 구호", - "block.mineralogy.conglomerate_relief_right": "대기업 우익 구호", - "block.mineralogy.conglomerate_relief_sword": "대기업 검 부조", - "block.mineralogy.conglomerate_relief_vertical": "대기업 수직 부조", - "block.mineralogy.dolomite_relief_axe": "백운석 도끼 부조", - "block.mineralogy.dolomite_relief_blank": "백운석 공백 부조", - "block.mineralogy.dolomite_relief_cross": "백운석 십자 부조", - "block.mineralogy.dolomite_relief_hammer": "백운석 해머 부조", - "block.mineralogy.dolomite_relief_hoe": "백운석 괭이 부조", - "block.mineralogy.dolomite_relief_horizontal": "백운석 수평 부조", - "block.mineralogy.dolomite_relief_i": "백운석 I 부조", - "block.mineralogy.dolomite_relief_left": "백운석 왼쪽 부조", - "block.mineralogy.dolomite_relief_pickaxe": "백운석 곡괭이 부조", - "block.mineralogy.dolomite_relief_plus": "백운석 플러스 릴리프", - "block.mineralogy.dolomite_relief_right": "백운석 오른쪽 부조", - "block.mineralogy.dolomite_relief_sword": "백운석 검 부조", - "block.mineralogy.dolomite_relief_vertical": "백운석 수직 부조", - "block.mineralogy.limestone_relief_axe": "석회암 도끼 부조", - "block.mineralogy.limestone_relief_blank": "석회암 공백 부조", - "block.mineralogy.limestone_relief_cross": "석회암 십자가 부조", - "block.mineralogy.limestone_relief_hammer": "석회암 망치 부조", - "block.mineralogy.limestone_relief_hoe": "석회암 괭이 부조", - "block.mineralogy.limestone_relief_horizontal": "석회암 수평 부조", - "block.mineralogy.limestone_relief_i": "석회암 I 부조", - "block.mineralogy.limestone_relief_left": "석회암 왼쪽 부조", - "block.mineralogy.limestone_relief_pickaxe": "석회석 곡괭이 부조", - "block.mineralogy.limestone_relief_plus": "라임스톤 플러스 릴리프", - "block.mineralogy.limestone_relief_right": "석회암 오른쪽 부조", - "block.mineralogy.limestone_relief_sword": "석회암 검 부조", - "block.mineralogy.limestone_relief_vertical": "석회암 수직 부조", - "block.mineralogy.marble_relief_axe": "대리석 도끼 부조", - "block.mineralogy.marble_relief_blank": "대리석 공백 부조", - "block.mineralogy.marble_relief_cross": "대리석 십자가 부조", - "block.mineralogy.marble_relief_hammer": "대리석 망치 부조", - "block.mineralogy.marble_relief_hoe": "대리석 괭이 부조", - "block.mineralogy.marble_relief_horizontal": "대리석 수평 부조", - "block.mineralogy.marble_relief_i": "대리석 I 부조", - "block.mineralogy.marble_relief_left": "대리석 왼쪽 부조", - "block.mineralogy.marble_relief_pickaxe": "대리석 곡괭이 부조", - "block.mineralogy.marble_relief_plus": "마블 플러스 부조", - "block.mineralogy.marble_relief_right": "대리석 오른쪽 부조", - "block.mineralogy.marble_relief_sword": "대리석 검 부조", - "block.mineralogy.marble_relief_vertical": "대리석 수직 부조", - "block.mineralogy.slate_relief_axe": "슬레이트 도끼 부조", - "block.mineralogy.slate_relief_blank": "빈 슬레이트 부조", - "block.mineralogy.slate_relief_cross": "슬레이트 크로스 릴리프", - "block.mineralogy.slate_relief_hammer": "슬레이트 해머 부조", - "block.mineralogy.slate_relief_hoe": "슬레이트 괭이 구호", - "block.mineralogy.slate_relief_horizontal": "슬레이트 수평 부조", - "block.mineralogy.slate_relief_i": "슬레이트 I 부조", - "block.mineralogy.slate_relief_left": "슬레이트 왼쪽 부조", - "block.mineralogy.slate_relief_pickaxe": "슬레이트 곡괭이 부조", - "block.mineralogy.slate_relief_plus": "슬레이트 플러스 릴리프", - "block.mineralogy.slate_relief_right": "슬레이트 오른쪽 부조", - "block.mineralogy.slate_relief_sword": "슬레이트 검 부조", - "block.mineralogy.slate_relief_vertical": "슬레이트 수직 부조", - "block.mineralogy.schist_relief_axe": "편암 도끼 부조", - "block.mineralogy.schist_relief_blank": "편암 공백 부조", - "block.mineralogy.schist_relief_cross": "편암 교차 부조", - "block.mineralogy.schist_relief_hammer": "편암 망치 부조", - "block.mineralogy.schist_relief_hoe": "편암 괭이 구호품", - "block.mineralogy.schist_relief_horizontal": "편암 수평 부조", - "block.mineralogy.schist_relief_i": "편암 I 구호", - "block.mineralogy.schist_relief_left": "편암 왼쪽 구호", - "block.mineralogy.schist_relief_pickaxe": "편암 곡괭이 부조", - "block.mineralogy.schist_relief_plus": "편암 플러스 구호", - "block.mineralogy.schist_relief_right": "편암 오른쪽 구호", - "block.mineralogy.schist_relief_sword": "편암 검 부조", - "block.mineralogy.schist_relief_vertical": "편암 수직 릴리프", - "block.mineralogy.gneiss_relief_axe": "편마암 도끼 부조", - "block.mineralogy.gneiss_relief_blank": "편마암 공백 부조", - "block.mineralogy.gneiss_relief_cross": "편마암 십자형 부조", - "block.mineralogy.gneiss_relief_hammer": "편마암 망치 부조", - "block.mineralogy.gneiss_relief_hoe": "편마암 괭이 부조", - "block.mineralogy.gneiss_relief_horizontal": "편마암 수평 부조", - "block.mineralogy.gneiss_relief_i": "편마암 I 부조", - "block.mineralogy.gneiss_relief_left": "편마암 왼쪽 부조", - "block.mineralogy.gneiss_relief_pickaxe": "편마암 곡괭이 부조", - "block.mineralogy.gneiss_relief_plus": "편마암 플러스 릴리프", - "block.mineralogy.gneiss_relief_right": "편마암 오른쪽 부조", - "block.mineralogy.gneiss_relief_sword": "편마암 검 부조", - "block.mineralogy.gneiss_relief_vertical": "편마암 수직 부조", - "block.mineralogy.phyllite_relief_axe": "천매암 도끼 부조", - "block.mineralogy.phyllite_relief_blank": "천매암 공백 부조", - "block.mineralogy.phyllite_relief_cross": "천매암 교차 부조", - "block.mineralogy.phyllite_relief_hammer": "천매암 해머 부조", - "block.mineralogy.phyllite_relief_hoe": "천매암 괭이 구호", - "block.mineralogy.phyllite_relief_horizontal": "천매암 수평 부조", - "block.mineralogy.phyllite_relief_i": "천매암 I 부조", - "block.mineralogy.phyllite_relief_left": "천매암 왼쪽 부조", - "block.mineralogy.phyllite_relief_pickaxe": "천매암 곡괭이 부조", - "block.mineralogy.phyllite_relief_plus": "천매암 플러스 구호", - "block.mineralogy.phyllite_relief_right": "천매암 오른쪽 부조", - "block.mineralogy.phyllite_relief_sword": "천매암 검 부조", - "block.mineralogy.phyllite_relief_vertical": "천매암 수직 부조", - "block.mineralogy.amphibolite_relief_axe": "각섬석 도끼 부조", - "block.mineralogy.amphibolite_relief_blank": "각섬석 공백 부조", - "block.mineralogy.amphibolite_relief_cross": "각섬석 교차 부조", - "block.mineralogy.amphibolite_relief_hammer": "각섬석 해머 부조", - "block.mineralogy.amphibolite_relief_hoe": "각섬석 괭이 부조", - "block.mineralogy.amphibolite_relief_horizontal": "각섬석 수평 부조", - "block.mineralogy.amphibolite_relief_i": "각섬석 I 부조", - "block.mineralogy.amphibolite_relief_left": "각섬석 왼쪽 부조", - "block.mineralogy.amphibolite_relief_pickaxe": "각섬석 곡괭이 부조", - "block.mineralogy.amphibolite_relief_plus": "각섬석 플러스 릴리프", - "block.mineralogy.amphibolite_relief_right": "각섬석 오른쪽 부조", - "block.mineralogy.amphibolite_relief_sword": "각섬석 검 부조", - "block.mineralogy.amphibolite_relief_vertical": "각섬석 수직 부조", - "block.mineralogy.diabase_relief_axe": "다이아베이스 도끼 부조", - "block.mineralogy.diabase_relief_blank": "다이아베이스 블랭크 부조", - "block.mineralogy.diabase_relief_cross": "다이아베이스 크로스 릴리프", - "block.mineralogy.diabase_relief_hammer": "다이아베이스 해머 릴리프", - "block.mineralogy.diabase_relief_hoe": "다이아베이스 괭이 부조", - "block.mineralogy.diabase_relief_horizontal": "다이아베이스 수평 부조", - "block.mineralogy.diabase_relief_i": "디아베이스 I 부조", - "block.mineralogy.diabase_relief_left": "다이아베이스 왼쪽 부조", - "block.mineralogy.diabase_relief_pickaxe": "디아베이스 곡괭이 부조", - "block.mineralogy.diabase_relief_plus": "다이아베이스 플러스 릴리프", - "block.mineralogy.diabase_relief_right": "다이아베이스 오른쪽 부조", - "block.mineralogy.diabase_relief_sword": "다이아베이스 소드 릴리프", - "block.mineralogy.diabase_relief_vertical": "다이베이스 수직 릴리프", - "block.mineralogy.gabbro_relief_axe": "개브로 도끼 부조", - "block.mineralogy.gabbro_relief_blank": "개브로 블랭크 부조", - "block.mineralogy.gabbro_relief_cross": "개브로 크로스 릴리프", - "block.mineralogy.gabbro_relief_hammer": "개브로 해머 릴리프", - "block.mineralogy.gabbro_relief_hoe": "개브로 괭이 구호품", - "block.mineralogy.gabbro_relief_horizontal": "Gabbro 수평 부조", - "block.mineralogy.gabbro_relief_i": "개브로 I 구호", - "block.mineralogy.gabbro_relief_left": "개브로 왼쪽 부조", - "block.mineralogy.gabbro_relief_pickaxe": "개브로 곡괭이 부조", - "block.mineralogy.gabbro_relief_plus": "가브로 플러스 릴리프", - "block.mineralogy.gabbro_relief_right": "개브로 오른쪽 부조", - "block.mineralogy.gabbro_relief_sword": "개브로 검 부조", - "block.mineralogy.gabbro_relief_vertical": "개브로 수직 부조", - "block.mineralogy.peridotite_relief_axe": "감람석 도끼 부조", - "block.mineralogy.peridotite_relief_blank": "감람석 공백 부조", - "block.mineralogy.peridotite_relief_cross": "감람석 십자가 부조", - "block.mineralogy.peridotite_relief_hammer": "감람암 해머 부조", - "block.mineralogy.peridotite_relief_hoe": "감람석 괭이 돋을새김", - "block.mineralogy.peridotite_relief_horizontal": "감람암 수평 부조", - "block.mineralogy.peridotite_relief_i": "감람석 I 부조", - "block.mineralogy.peridotite_relief_left": "감람암 왼쪽 부조", - "block.mineralogy.peridotite_relief_pickaxe": "감람석 곡괭이 부조", - "block.mineralogy.peridotite_relief_plus": "감람석 플러스 릴리프", - "block.mineralogy.peridotite_relief_right": "감람암 오른쪽 부조", - "block.mineralogy.peridotite_relief_sword": "감람암 검 부조", - "block.mineralogy.peridotite_relief_vertical": "감람암 수직 부조", - "block.mineralogy.basaltic_glass_relief_axe": "현무암 유리 도끼 부조", - "block.mineralogy.basaltic_glass_relief_blank": "현무암 유리 여백 부조", - "block.mineralogy.basaltic_glass_relief_cross": "현무암 유리 십자가 부조", - "block.mineralogy.basaltic_glass_relief_hammer": "현무암 유리 망치 부조", - "block.mineralogy.basaltic_glass_relief_hoe": "현무암 유리 괭이 부조", - "block.mineralogy.basaltic_glass_relief_horizontal": "현무암 유리 수평 부조", - "block.mineralogy.basaltic_glass_relief_i": "현무암 유리 I 부조", - "block.mineralogy.basaltic_glass_relief_left": "현무암 유리 왼쪽 부조", - "block.mineralogy.basaltic_glass_relief_pickaxe": "현무암 유리 곡괭이 부조", - "block.mineralogy.basaltic_glass_relief_plus": "현무암 유리 플러스 부조", - "block.mineralogy.basaltic_glass_relief_right": "현무암 유리 오른쪽 부조", - "block.mineralogy.basaltic_glass_relief_sword": "현무암 유리 검 부조", - "block.mineralogy.basaltic_glass_relief_vertical": "현무암 유리 수직 부조", - "block.mineralogy.scoria_relief_axe": "스코리아 도끼 부조", - "block.mineralogy.scoria_relief_blank": "스코리아 공백 부조", - "block.mineralogy.scoria_relief_cross": "스코리아 크로스 릴리프", - "block.mineralogy.scoria_relief_hammer": "스코리아 망치 부조", - "block.mineralogy.scoria_relief_hoe": "스코리아 괭이 부조", - "block.mineralogy.scoria_relief_horizontal": "스코리아 수평 부조", - "block.mineralogy.scoria_relief_i": "스코리아 I 부조", - "block.mineralogy.scoria_relief_left": "스코리아 왼쪽 부조", - "block.mineralogy.scoria_relief_pickaxe": "스코리아 곡괭이 부조", - "block.mineralogy.scoria_relief_plus": "스코리아 플러스 구호", - "block.mineralogy.scoria_relief_right": "스코리아 오른쪽 부조", - "block.mineralogy.scoria_relief_sword": "스코리아 검 부조", - "block.mineralogy.scoria_relief_vertical": "스코리아 수직 부조", - "block.mineralogy.tuff_relief_axe": "응회암 도끼 부조", - "block.mineralogy.tuff_relief_blank": "응회암 부조", - "block.mineralogy.tuff_relief_cross": "응회암 크로스 릴리프", - "block.mineralogy.tuff_relief_hammer": "응회암 부조", - "block.mineralogy.tuff_relief_hoe": "응회암 구호", - "block.mineralogy.tuff_relief_horizontal": "응회암 수평 부조", - "block.mineralogy.tuff_relief_i": "응회암 I 구호", - "block.mineralogy.tuff_relief_left": "응회암 왼쪽 구호", - "block.mineralogy.tuff_relief_pickaxe": "응회암 곡괭이 부조", - "block.mineralogy.tuff_relief_plus": "터프 플러스 릴리프", - "block.mineralogy.tuff_relief_right": "응회암 오른쪽 구호", - "block.mineralogy.tuff_relief_sword": "응회암 검 부조", - "block.mineralogy.tuff_relief_vertical": "응회암 수직 부조", - "block.mineralogy.siltstone_relief_axe": "실트스톤 도끼 부조", - "block.mineralogy.siltstone_relief_blank": "실트스톤 공백 부조", - "block.mineralogy.siltstone_relief_cross": "실트암 십자가 부조", - "block.mineralogy.siltstone_relief_hammer": "실트스톤 망치 부조", - "block.mineralogy.siltstone_relief_hoe": "실트스톤 괭이 부조", - "block.mineralogy.siltstone_relief_horizontal": "실트암 수평 부조", - "block.mineralogy.siltstone_relief_i": "실트스톤 I 부조", - "block.mineralogy.siltstone_relief_left": "실트암 왼쪽 부조", - "block.mineralogy.siltstone_relief_pickaxe": "실트스톤 곡괭이 부조", - "block.mineralogy.siltstone_relief_plus": "실트스톤 플러스 부조", - "block.mineralogy.siltstone_relief_right": "실트암 오른쪽 부조", - "block.mineralogy.siltstone_relief_sword": "실트스톤 검 부조", - "block.mineralogy.siltstone_relief_vertical": "실트암 수직 부조", - "block.mineralogy.rock_salt_relief_axe": "암염 도끼 부조", - "block.mineralogy.rock_salt_relief_blank": "암염 공백 부조", - "block.mineralogy.rock_salt_relief_cross": "암염 십자가 부조", - "block.mineralogy.rock_salt_relief_hammer": "암염 망치 부조", - "block.mineralogy.rock_salt_relief_hoe": "암염 괭이 부조", - "block.mineralogy.rock_salt_relief_horizontal": "암염 수평 부조", - "block.mineralogy.rock_salt_relief_i": "암염 I 구호", - "block.mineralogy.rock_salt_relief_left": "암염 왼쪽 부조", - "block.mineralogy.rock_salt_relief_pickaxe": "암염 곡괭이 부조", - "block.mineralogy.rock_salt_relief_plus": "암염 플러스 구호", - "block.mineralogy.rock_salt_relief_right": "암염 오른쪽 부조", - "block.mineralogy.rock_salt_relief_sword": "암염검 부조", - "block.mineralogy.rock_salt_relief_vertical": "암염 수직 부조", - "block.mineralogy.hornfels_relief_axe": "혼펠스 도끼 부조", - "block.mineralogy.hornfels_relief_blank": "혼펠스 공백 부조", - "block.mineralogy.hornfels_relief_cross": "혼펠스 크로스 릴리프", - "block.mineralogy.hornfels_relief_hammer": "혼펠스 해머 부조", - "block.mineralogy.hornfels_relief_hoe": "혼펠스 괭이 구호품", - "block.mineralogy.hornfels_relief_horizontal": "혼펠스 수평 부조", - "block.mineralogy.hornfels_relief_i": "혼펠스 I 구호", - "block.mineralogy.hornfels_relief_left": "혼펠스 왼쪽 구호", - "block.mineralogy.hornfels_relief_pickaxe": "혼펠스 곡괭이 부조", - "block.mineralogy.hornfels_relief_plus": "혼펠스 플러스 구호", - "block.mineralogy.hornfels_relief_right": "혼펠스 오른쪽 구호", - "block.mineralogy.hornfels_relief_sword": "혼펠스 검 부조", - "block.mineralogy.hornfels_relief_vertical": "혼펠스 수직 부조", - "block.mineralogy.quartzite_relief_axe": "규암 도끼 부조", - "block.mineralogy.quartzite_relief_blank": "규암 공백 부조", - "block.mineralogy.quartzite_relief_cross": "규암 교차 부조", - "block.mineralogy.quartzite_relief_hammer": "규암 해머 부조", - "block.mineralogy.quartzite_relief_hoe": "규암 괭이 부조", - "block.mineralogy.quartzite_relief_horizontal": "규암 수평 부조", - "block.mineralogy.quartzite_relief_i": "규암 I 부조", - "block.mineralogy.quartzite_relief_left": "규암 왼쪽 부조", - "block.mineralogy.quartzite_relief_pickaxe": "규암 곡괭이 부조", - "block.mineralogy.quartzite_relief_plus": "규암 플러스 부조", - "block.mineralogy.quartzite_relief_right": "규암 오른쪽 부조", - "block.mineralogy.quartzite_relief_sword": "규암 검 부조", - "block.mineralogy.quartzite_relief_vertical": "규암 수직 부조", - "block.mineralogy.novaculite_relief_axe": "노바큘라이트 도끼 부조", - "block.mineralogy.novaculite_relief_blank": "노바큘라이트 공백 부조", - "block.mineralogy.novaculite_relief_cross": "노바큘라이트 교차 부조", - "block.mineralogy.novaculite_relief_hammer": "노바큘라이트 해머 릴리프", - "block.mineralogy.novaculite_relief_hoe": "노바큘라이트 괭이 구호품", - "block.mineralogy.novaculite_relief_horizontal": "노바큘라이트 수평 부조", - "block.mineralogy.novaculite_relief_i": "노바큘라이트 I 부조", - "block.mineralogy.novaculite_relief_left": "노바큘라이트 왼쪽 부조", - "block.mineralogy.novaculite_relief_pickaxe": "노바큘라이트 곡괭이 부조", - "block.mineralogy.novaculite_relief_plus": "노바큘라이트 플러스 릴리프", - "block.mineralogy.novaculite_relief_right": "노바큘라이트 오른쪽 부조", - "block.mineralogy.novaculite_relief_sword": "노바큘라이트 검 부조", - "block.mineralogy.novaculite_relief_vertical": "노바큘라이트 수직 부조", - "advancements.mineralogy.all_the_rocks.title": "바위들을 루도라고 불러라!", - "advancements.mineralogy.all_the_rocks.description": "와, 광물학에서 표준 암석 유형을 모두 찾았습니다!", - "fluid.mineralogy.crude_oil": "원유", - "block.mineralogy.crude_oil": "원유", - "item.mineralogy.crude_oil_bucket": "원유 버킷", + "block.mineralogy.andesite_relief_axe": "안산암 부조 (도끼)", + "block.mineralogy.andesite_relief_blank": "안산암 부조 (무늬 없음)", + "block.mineralogy.andesite_relief_cross": "안산암 부조 (십자)", + "block.mineralogy.andesite_relief_hammer": "안산암 부조 (망치)", + "block.mineralogy.andesite_relief_hoe": "안산암 부조 (괭이)", + "block.mineralogy.andesite_relief_horizontal": "안산암 부조 (가로)", + "block.mineralogy.andesite_relief_i": "안산암 부조 (I)", + "block.mineralogy.andesite_relief_left": "안산암 부조 (왼쪽)", + "block.mineralogy.andesite_relief_pickaxe": "안산암 부조 (곡괭이)", + "block.mineralogy.andesite_relief_plus": "안산암 부조 (더하기 기호)", + "block.mineralogy.andesite_relief_right": "안산암 부조 (오른쪽)", + "block.mineralogy.andesite_relief_sword": "안산암 부조 (검)", + "block.mineralogy.andesite_relief_vertical": "안산암 부조 (세로)", + "block.mineralogy.basalt_relief_axe": "현무암 부조 (도끼)", + "block.mineralogy.basalt_relief_blank": "현무암 부조 (무늬 없음)", + "block.mineralogy.basalt_relief_cross": "현무암 부조 (십자)", + "block.mineralogy.basalt_relief_hammer": "현무암 부조 (망치)", + "block.mineralogy.basalt_relief_hoe": "현무암 부조 (괭이)", + "block.mineralogy.basalt_relief_horizontal": "현무암 부조 (가로)", + "block.mineralogy.basalt_relief_i": "현무암 부조 (I)", + "block.mineralogy.basalt_relief_left": "현무암 부조 (왼쪽)", + "block.mineralogy.basalt_relief_pickaxe": "현무암 부조 (곡괭이)", + "block.mineralogy.basalt_relief_plus": "현무암 부조 (더하기 기호)", + "block.mineralogy.basalt_relief_right": "현무암 부조 (오른쪽)", + "block.mineralogy.basalt_relief_sword": "현무암 부조 (검)", + "block.mineralogy.basalt_relief_vertical": "현무암 부조 (세로)", + "block.mineralogy.diorite_relief_axe": "섬록암 부조 (도끼)", + "block.mineralogy.diorite_relief_blank": "섬록암 부조 (무늬 없음)", + "block.mineralogy.diorite_relief_cross": "섬록암 부조 (십자)", + "block.mineralogy.diorite_relief_hammer": "섬록암 부조 (망치)", + "block.mineralogy.diorite_relief_hoe": "섬록암 부조 (괭이)", + "block.mineralogy.diorite_relief_horizontal": "섬록암 부조 (가로)", + "block.mineralogy.diorite_relief_i": "섬록암 부조 (I)", + "block.mineralogy.diorite_relief_left": "섬록암 부조 (왼쪽)", + "block.mineralogy.diorite_relief_pickaxe": "섬록암 부조 (곡괭이)", + "block.mineralogy.diorite_relief_plus": "섬록암 부조 (더하기 기호)", + "block.mineralogy.diorite_relief_right": "섬록암 부조 (오른쪽)", + "block.mineralogy.diorite_relief_sword": "섬록암 부조 (검)", + "block.mineralogy.diorite_relief_vertical": "섬록암 부조 (세로)", + "block.mineralogy.granite_relief_axe": "화강암 부조 (도끼)", + "block.mineralogy.granite_relief_blank": "화강암 부조 (무늬 없음)", + "block.mineralogy.granite_relief_cross": "화강암 부조 (십자)", + "block.mineralogy.granite_relief_hammer": "화강암 부조 (망치)", + "block.mineralogy.granite_relief_hoe": "화강암 부조 (괭이)", + "block.mineralogy.granite_relief_horizontal": "화강암 부조 (가로)", + "block.mineralogy.granite_relief_i": "화강암 부조 (I)", + "block.mineralogy.granite_relief_left": "화강암 부조 (왼쪽)", + "block.mineralogy.granite_relief_pickaxe": "화강암 부조 (곡괭이)", + "block.mineralogy.granite_relief_plus": "화강암 부조 (더하기 기호)", + "block.mineralogy.granite_relief_right": "화강암 부조 (오른쪽)", + "block.mineralogy.granite_relief_sword": "화강암 부조 (검)", + "block.mineralogy.granite_relief_vertical": "화강암 부조 (세로)", + "block.mineralogy.rhyolite_relief_axe": "유문암 부조 (도끼)", + "block.mineralogy.rhyolite_relief_blank": "유문암 부조 (무늬 없음)", + "block.mineralogy.rhyolite_relief_cross": "유문암 부조 (십자)", + "block.mineralogy.rhyolite_relief_hammer": "유문암 부조 (망치)", + "block.mineralogy.rhyolite_relief_hoe": "유문암 부조 (괭이)", + "block.mineralogy.rhyolite_relief_horizontal": "유문암 부조 (가로)", + "block.mineralogy.rhyolite_relief_i": "유문암 부조 (I)", + "block.mineralogy.rhyolite_relief_left": "유문암 부조 (왼쪽)", + "block.mineralogy.rhyolite_relief_pickaxe": "유문암 부조 (곡괭이)", + "block.mineralogy.rhyolite_relief_plus": "유문암 부조 (더하기 기호)", + "block.mineralogy.rhyolite_relief_right": "유문암 부조 (오른쪽)", + "block.mineralogy.rhyolite_relief_sword": "유문암 부조 (검)", + "block.mineralogy.rhyolite_relief_vertical": "유문암 부조 (세로)", + "block.mineralogy.pegmatite_relief_axe": "페그마타이트 부조 (도끼)", + "block.mineralogy.pegmatite_relief_blank": "페그마타이트 부조 (무늬 없음)", + "block.mineralogy.pegmatite_relief_cross": "페그마타이트 부조 (십자)", + "block.mineralogy.pegmatite_relief_hammer": "페그마타이트 부조 (망치)", + "block.mineralogy.pegmatite_relief_hoe": "페그마타이트 부조 (괭이)", + "block.mineralogy.pegmatite_relief_horizontal": "페그마타이트 부조 (가로)", + "block.mineralogy.pegmatite_relief_i": "페그마타이트 부조 (I)", + "block.mineralogy.pegmatite_relief_left": "페그마타이트 부조 (왼쪽)", + "block.mineralogy.pegmatite_relief_pickaxe": "페그마타이트 부조 (곡괭이)", + "block.mineralogy.pegmatite_relief_plus": "페그마타이트 부조 (더하기 기호)", + "block.mineralogy.pegmatite_relief_right": "페그마타이트 부조 (오른쪽)", + "block.mineralogy.pegmatite_relief_sword": "페그마타이트 부조 (검)", + "block.mineralogy.pegmatite_relief_vertical": "페그마타이트 부조 (세로)", + "block.mineralogy.shale_relief_axe": "셰일 부조 (도끼)", + "block.mineralogy.shale_relief_blank": "셰일 부조 (무늬 없음)", + "block.mineralogy.shale_relief_cross": "셰일 부조 (십자)", + "block.mineralogy.shale_relief_hammer": "셰일 부조 (망치)", + "block.mineralogy.shale_relief_hoe": "셰일 부조 (괭이)", + "block.mineralogy.shale_relief_horizontal": "셰일 부조 (가로)", + "block.mineralogy.shale_relief_i": "셰일 부조 (I)", + "block.mineralogy.shale_relief_left": "셰일 부조 (왼쪽)", + "block.mineralogy.shale_relief_pickaxe": "셰일 부조 (곡괭이)", + "block.mineralogy.shale_relief_plus": "셰일 부조 (더하기 기호)", + "block.mineralogy.shale_relief_right": "셰일 부조 (오른쪽)", + "block.mineralogy.shale_relief_sword": "셰일 부조 (검)", + "block.mineralogy.shale_relief_vertical": "셰일 부조 (세로)", + "block.mineralogy.conglomerate_relief_axe": "역암 부조 (도끼)", + "block.mineralogy.conglomerate_relief_blank": "역암 부조 (무늬 없음)", + "block.mineralogy.conglomerate_relief_cross": "역암 부조 (십자)", + "block.mineralogy.conglomerate_relief_hammer": "역암 부조 (망치)", + "block.mineralogy.conglomerate_relief_hoe": "역암 부조 (괭이)", + "block.mineralogy.conglomerate_relief_horizontal": "역암 부조 (가로)", + "block.mineralogy.conglomerate_relief_i": "역암 부조 (I)", + "block.mineralogy.conglomerate_relief_left": "역암 부조 (왼쪽)", + "block.mineralogy.conglomerate_relief_pickaxe": "역암 부조 (곡괭이)", + "block.mineralogy.conglomerate_relief_plus": "역암 부조 (더하기 기호)", + "block.mineralogy.conglomerate_relief_right": "역암 부조 (오른쪽)", + "block.mineralogy.conglomerate_relief_sword": "역암 부조 (검)", + "block.mineralogy.conglomerate_relief_vertical": "역암 부조 (세로)", + "block.mineralogy.dolomite_relief_axe": "백운암 부조 (도끼)", + "block.mineralogy.dolomite_relief_blank": "백운암 부조 (무늬 없음)", + "block.mineralogy.dolomite_relief_cross": "백운암 부조 (십자)", + "block.mineralogy.dolomite_relief_hammer": "백운암 부조 (망치)", + "block.mineralogy.dolomite_relief_hoe": "백운암 부조 (괭이)", + "block.mineralogy.dolomite_relief_horizontal": "백운암 부조 (가로)", + "block.mineralogy.dolomite_relief_i": "백운암 부조 (I)", + "block.mineralogy.dolomite_relief_left": "백운암 부조 (왼쪽)", + "block.mineralogy.dolomite_relief_pickaxe": "백운암 부조 (곡괭이)", + "block.mineralogy.dolomite_relief_plus": "백운암 부조 (더하기 기호)", + "block.mineralogy.dolomite_relief_right": "백운암 부조 (오른쪽)", + "block.mineralogy.dolomite_relief_sword": "백운암 부조 (검)", + "block.mineralogy.dolomite_relief_vertical": "백운암 부조 (세로)", + "block.mineralogy.limestone_relief_axe": "석회암 부조 (도끼)", + "block.mineralogy.limestone_relief_blank": "석회암 부조 (무늬 없음)", + "block.mineralogy.limestone_relief_cross": "석회암 부조 (십자)", + "block.mineralogy.limestone_relief_hammer": "석회암 부조 (망치)", + "block.mineralogy.limestone_relief_hoe": "석회암 부조 (괭이)", + "block.mineralogy.limestone_relief_horizontal": "석회암 부조 (가로)", + "block.mineralogy.limestone_relief_i": "석회암 부조 (I)", + "block.mineralogy.limestone_relief_left": "석회암 부조 (왼쪽)", + "block.mineralogy.limestone_relief_pickaxe": "석회암 부조 (곡괭이)", + "block.mineralogy.limestone_relief_plus": "석회암 부조 (더하기 기호)", + "block.mineralogy.limestone_relief_right": "석회암 부조 (오른쪽)", + "block.mineralogy.limestone_relief_sword": "석회암 부조 (검)", + "block.mineralogy.limestone_relief_vertical": "석회암 부조 (세로)", + "block.mineralogy.marble_relief_axe": "대리석 부조 (도끼)", + "block.mineralogy.marble_relief_blank": "대리석 부조 (무늬 없음)", + "block.mineralogy.marble_relief_cross": "대리석 부조 (십자)", + "block.mineralogy.marble_relief_hammer": "대리석 부조 (망치)", + "block.mineralogy.marble_relief_hoe": "대리석 부조 (괭이)", + "block.mineralogy.marble_relief_horizontal": "대리석 부조 (가로)", + "block.mineralogy.marble_relief_i": "대리석 부조 (I)", + "block.mineralogy.marble_relief_left": "대리석 부조 (왼쪽)", + "block.mineralogy.marble_relief_pickaxe": "대리석 부조 (곡괭이)", + "block.mineralogy.marble_relief_plus": "대리석 부조 (더하기 기호)", + "block.mineralogy.marble_relief_right": "대리석 부조 (오른쪽)", + "block.mineralogy.marble_relief_sword": "대리석 부조 (검)", + "block.mineralogy.marble_relief_vertical": "대리석 부조 (세로)", + "block.mineralogy.slate_relief_axe": "점판암 부조 (도끼)", + "block.mineralogy.slate_relief_blank": "점판암 부조 (무늬 없음)", + "block.mineralogy.slate_relief_cross": "점판암 부조 (십자)", + "block.mineralogy.slate_relief_hammer": "점판암 부조 (망치)", + "block.mineralogy.slate_relief_hoe": "점판암 부조 (괭이)", + "block.mineralogy.slate_relief_horizontal": "점판암 부조 (가로)", + "block.mineralogy.slate_relief_i": "점판암 부조 (I)", + "block.mineralogy.slate_relief_left": "점판암 부조 (왼쪽)", + "block.mineralogy.slate_relief_pickaxe": "점판암 부조 (곡괭이)", + "block.mineralogy.slate_relief_plus": "점판암 부조 (더하기 기호)", + "block.mineralogy.slate_relief_right": "점판암 부조 (오른쪽)", + "block.mineralogy.slate_relief_sword": "점판암 부조 (검)", + "block.mineralogy.slate_relief_vertical": "점판암 부조 (세로)", + "block.mineralogy.schist_relief_axe": "편암 부조 (도끼)", + "block.mineralogy.schist_relief_blank": "편암 부조 (무늬 없음)", + "block.mineralogy.schist_relief_cross": "편암 부조 (십자)", + "block.mineralogy.schist_relief_hammer": "편암 부조 (망치)", + "block.mineralogy.schist_relief_hoe": "편암 부조 (괭이)", + "block.mineralogy.schist_relief_horizontal": "편암 부조 (가로)", + "block.mineralogy.schist_relief_i": "편암 부조 (I)", + "block.mineralogy.schist_relief_left": "편암 부조 (왼쪽)", + "block.mineralogy.schist_relief_pickaxe": "편암 부조 (곡괭이)", + "block.mineralogy.schist_relief_plus": "편암 부조 (더하기 기호)", + "block.mineralogy.schist_relief_right": "편암 부조 (오른쪽)", + "block.mineralogy.schist_relief_sword": "편암 부조 (검)", + "block.mineralogy.schist_relief_vertical": "편암 부조 (세로)", + "block.mineralogy.gneiss_relief_axe": "편마암 부조 (도끼)", + "block.mineralogy.gneiss_relief_blank": "편마암 부조 (무늬 없음)", + "block.mineralogy.gneiss_relief_cross": "편마암 부조 (십자)", + "block.mineralogy.gneiss_relief_hammer": "편마암 부조 (망치)", + "block.mineralogy.gneiss_relief_hoe": "편마암 부조 (괭이)", + "block.mineralogy.gneiss_relief_horizontal": "편마암 부조 (가로)", + "block.mineralogy.gneiss_relief_i": "편마암 부조 (I)", + "block.mineralogy.gneiss_relief_left": "편마암 부조 (왼쪽)", + "block.mineralogy.gneiss_relief_pickaxe": "편마암 부조 (곡괭이)", + "block.mineralogy.gneiss_relief_plus": "편마암 부조 (더하기 기호)", + "block.mineralogy.gneiss_relief_right": "편마암 부조 (오른쪽)", + "block.mineralogy.gneiss_relief_sword": "편마암 부조 (검)", + "block.mineralogy.gneiss_relief_vertical": "편마암 부조 (세로)", + "block.mineralogy.phyllite_relief_axe": "천매암 부조 (도끼)", + "block.mineralogy.phyllite_relief_blank": "천매암 부조 (무늬 없음)", + "block.mineralogy.phyllite_relief_cross": "천매암 부조 (십자)", + "block.mineralogy.phyllite_relief_hammer": "천매암 부조 (망치)", + "block.mineralogy.phyllite_relief_hoe": "천매암 부조 (괭이)", + "block.mineralogy.phyllite_relief_horizontal": "천매암 부조 (가로)", + "block.mineralogy.phyllite_relief_i": "천매암 부조 (I)", + "block.mineralogy.phyllite_relief_left": "천매암 부조 (왼쪽)", + "block.mineralogy.phyllite_relief_pickaxe": "천매암 부조 (곡괭이)", + "block.mineralogy.phyllite_relief_plus": "천매암 부조 (더하기 기호)", + "block.mineralogy.phyllite_relief_right": "천매암 부조 (오른쪽)", + "block.mineralogy.phyllite_relief_sword": "천매암 부조 (검)", + "block.mineralogy.phyllite_relief_vertical": "천매암 부조 (세로)", + "block.mineralogy.amphibolite_relief_axe": "각섬암 부조 (도끼)", + "block.mineralogy.amphibolite_relief_blank": "각섬암 부조 (무늬 없음)", + "block.mineralogy.amphibolite_relief_cross": "각섬암 부조 (십자)", + "block.mineralogy.amphibolite_relief_hammer": "각섬암 부조 (망치)", + "block.mineralogy.amphibolite_relief_hoe": "각섬암 부조 (괭이)", + "block.mineralogy.amphibolite_relief_horizontal": "각섬암 부조 (가로)", + "block.mineralogy.amphibolite_relief_i": "각섬암 부조 (I)", + "block.mineralogy.amphibolite_relief_left": "각섬암 부조 (왼쪽)", + "block.mineralogy.amphibolite_relief_pickaxe": "각섬암 부조 (곡괭이)", + "block.mineralogy.amphibolite_relief_plus": "각섬암 부조 (더하기 기호)", + "block.mineralogy.amphibolite_relief_right": "각섬암 부조 (오른쪽)", + "block.mineralogy.amphibolite_relief_sword": "각섬암 부조 (검)", + "block.mineralogy.amphibolite_relief_vertical": "각섬암 부조 (세로)", + "block.mineralogy.diabase_relief_axe": "휘록암 부조 (도끼)", + "block.mineralogy.diabase_relief_blank": "휘록암 부조 (무늬 없음)", + "block.mineralogy.diabase_relief_cross": "휘록암 부조 (십자)", + "block.mineralogy.diabase_relief_hammer": "휘록암 부조 (망치)", + "block.mineralogy.diabase_relief_hoe": "휘록암 부조 (괭이)", + "block.mineralogy.diabase_relief_horizontal": "휘록암 부조 (가로)", + "block.mineralogy.diabase_relief_i": "휘록암 부조 (I)", + "block.mineralogy.diabase_relief_left": "휘록암 부조 (왼쪽)", + "block.mineralogy.diabase_relief_pickaxe": "휘록암 부조 (곡괭이)", + "block.mineralogy.diabase_relief_plus": "휘록암 부조 (더하기 기호)", + "block.mineralogy.diabase_relief_right": "휘록암 부조 (오른쪽)", + "block.mineralogy.diabase_relief_sword": "휘록암 부조 (검)", + "block.mineralogy.diabase_relief_vertical": "휘록암 부조 (세로)", + "block.mineralogy.gabbro_relief_axe": "반려암 부조 (도끼)", + "block.mineralogy.gabbro_relief_blank": "반려암 부조 (무늬 없음)", + "block.mineralogy.gabbro_relief_cross": "반려암 부조 (십자)", + "block.mineralogy.gabbro_relief_hammer": "반려암 부조 (망치)", + "block.mineralogy.gabbro_relief_hoe": "반려암 부조 (괭이)", + "block.mineralogy.gabbro_relief_horizontal": "반려암 부조 (가로)", + "block.mineralogy.gabbro_relief_i": "반려암 부조 (I)", + "block.mineralogy.gabbro_relief_left": "반려암 부조 (왼쪽)", + "block.mineralogy.gabbro_relief_pickaxe": "반려암 부조 (곡괭이)", + "block.mineralogy.gabbro_relief_plus": "반려암 부조 (더하기 기호)", + "block.mineralogy.gabbro_relief_right": "반려암 부조 (오른쪽)", + "block.mineralogy.gabbro_relief_sword": "반려암 부조 (검)", + "block.mineralogy.gabbro_relief_vertical": "반려암 부조 (세로)", + "block.mineralogy.peridotite_relief_axe": "감람암 부조 (도끼)", + "block.mineralogy.peridotite_relief_blank": "감람암 부조 (무늬 없음)", + "block.mineralogy.peridotite_relief_cross": "감람암 부조 (십자)", + "block.mineralogy.peridotite_relief_hammer": "감람암 부조 (망치)", + "block.mineralogy.peridotite_relief_hoe": "감람암 부조 (괭이)", + "block.mineralogy.peridotite_relief_horizontal": "감람암 부조 (가로)", + "block.mineralogy.peridotite_relief_i": "감람암 부조 (I)", + "block.mineralogy.peridotite_relief_left": "감람암 부조 (왼쪽)", + "block.mineralogy.peridotite_relief_pickaxe": "감람암 부조 (곡괭이)", + "block.mineralogy.peridotite_relief_plus": "감람암 부조 (더하기 기호)", + "block.mineralogy.peridotite_relief_right": "감람암 부조 (오른쪽)", + "block.mineralogy.peridotite_relief_sword": "감람암 부조 (검)", + "block.mineralogy.peridotite_relief_vertical": "감람암 부조 (세로)", + "block.mineralogy.basaltic_glass_relief_axe": "현무암질 유리 부조 (도끼)", + "block.mineralogy.basaltic_glass_relief_blank": "현무암질 유리 부조 (무늬 없음)", + "block.mineralogy.basaltic_glass_relief_cross": "현무암질 유리 부조 (십자)", + "block.mineralogy.basaltic_glass_relief_hammer": "현무암질 유리 부조 (망치)", + "block.mineralogy.basaltic_glass_relief_hoe": "현무암질 유리 부조 (괭이)", + "block.mineralogy.basaltic_glass_relief_horizontal": "현무암질 유리 부조 (가로)", + "block.mineralogy.basaltic_glass_relief_i": "현무암질 유리 부조 (I)", + "block.mineralogy.basaltic_glass_relief_left": "현무암질 유리 부조 (왼쪽)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "현무암질 유리 부조 (곡괭이)", + "block.mineralogy.basaltic_glass_relief_plus": "현무암질 유리 부조 (더하기 기호)", + "block.mineralogy.basaltic_glass_relief_right": "현무암질 유리 부조 (오른쪽)", + "block.mineralogy.basaltic_glass_relief_sword": "현무암질 유리 부조 (검)", + "block.mineralogy.basaltic_glass_relief_vertical": "현무암질 유리 부조 (세로)", + "block.mineralogy.scoria_relief_axe": "스코리아 부조 (도끼)", + "block.mineralogy.scoria_relief_blank": "스코리아 부조 (무늬 없음)", + "block.mineralogy.scoria_relief_cross": "스코리아 부조 (십자)", + "block.mineralogy.scoria_relief_hammer": "스코리아 부조 (망치)", + "block.mineralogy.scoria_relief_hoe": "스코리아 부조 (괭이)", + "block.mineralogy.scoria_relief_horizontal": "스코리아 부조 (가로)", + "block.mineralogy.scoria_relief_i": "스코리아 부조 (I)", + "block.mineralogy.scoria_relief_left": "스코리아 부조 (왼쪽)", + "block.mineralogy.scoria_relief_pickaxe": "스코리아 부조 (곡괭이)", + "block.mineralogy.scoria_relief_plus": "스코리아 부조 (더하기 기호)", + "block.mineralogy.scoria_relief_right": "스코리아 부조 (오른쪽)", + "block.mineralogy.scoria_relief_sword": "스코리아 부조 (검)", + "block.mineralogy.scoria_relief_vertical": "스코리아 부조 (세로)", + "block.mineralogy.tuff_relief_axe": "응회암 부조 (도끼)", + "block.mineralogy.tuff_relief_blank": "응회암 부조 (무늬 없음)", + "block.mineralogy.tuff_relief_cross": "응회암 부조 (십자)", + "block.mineralogy.tuff_relief_hammer": "응회암 부조 (망치)", + "block.mineralogy.tuff_relief_hoe": "응회암 부조 (괭이)", + "block.mineralogy.tuff_relief_horizontal": "응회암 부조 (가로)", + "block.mineralogy.tuff_relief_i": "응회암 부조 (I)", + "block.mineralogy.tuff_relief_left": "응회암 부조 (왼쪽)", + "block.mineralogy.tuff_relief_pickaxe": "응회암 부조 (곡괭이)", + "block.mineralogy.tuff_relief_plus": "응회암 부조 (더하기 기호)", + "block.mineralogy.tuff_relief_right": "응회암 부조 (오른쪽)", + "block.mineralogy.tuff_relief_sword": "응회암 부조 (검)", + "block.mineralogy.tuff_relief_vertical": "응회암 부조 (세로)", + "block.mineralogy.siltstone_relief_axe": "미사암 부조 (도끼)", + "block.mineralogy.siltstone_relief_blank": "미사암 부조 (무늬 없음)", + "block.mineralogy.siltstone_relief_cross": "미사암 부조 (십자)", + "block.mineralogy.siltstone_relief_hammer": "미사암 부조 (망치)", + "block.mineralogy.siltstone_relief_hoe": "미사암 부조 (괭이)", + "block.mineralogy.siltstone_relief_horizontal": "미사암 부조 (가로)", + "block.mineralogy.siltstone_relief_i": "미사암 부조 (I)", + "block.mineralogy.siltstone_relief_left": "미사암 부조 (왼쪽)", + "block.mineralogy.siltstone_relief_pickaxe": "미사암 부조 (곡괭이)", + "block.mineralogy.siltstone_relief_plus": "미사암 부조 (더하기 기호)", + "block.mineralogy.siltstone_relief_right": "미사암 부조 (오른쪽)", + "block.mineralogy.siltstone_relief_sword": "미사암 부조 (검)", + "block.mineralogy.siltstone_relief_vertical": "미사암 부조 (세로)", + "block.mineralogy.rock_salt_relief_axe": "암염 부조 (도끼)", + "block.mineralogy.rock_salt_relief_blank": "암염 부조 (무늬 없음)", + "block.mineralogy.rock_salt_relief_cross": "암염 부조 (십자)", + "block.mineralogy.rock_salt_relief_hammer": "암염 부조 (망치)", + "block.mineralogy.rock_salt_relief_hoe": "암염 부조 (괭이)", + "block.mineralogy.rock_salt_relief_horizontal": "암염 부조 (가로)", + "block.mineralogy.rock_salt_relief_i": "암염 부조 (I)", + "block.mineralogy.rock_salt_relief_left": "암염 부조 (왼쪽)", + "block.mineralogy.rock_salt_relief_pickaxe": "암염 부조 (곡괭이)", + "block.mineralogy.rock_salt_relief_plus": "암염 부조 (더하기 기호)", + "block.mineralogy.rock_salt_relief_right": "암염 부조 (오른쪽)", + "block.mineralogy.rock_salt_relief_sword": "암염 부조 (검)", + "block.mineralogy.rock_salt_relief_vertical": "암염 부조 (세로)", + "block.mineralogy.hornfels_relief_axe": "혼펠스 부조 (도끼)", + "block.mineralogy.hornfels_relief_blank": "혼펠스 부조 (무늬 없음)", + "block.mineralogy.hornfels_relief_cross": "혼펠스 부조 (십자)", + "block.mineralogy.hornfels_relief_hammer": "혼펠스 부조 (망치)", + "block.mineralogy.hornfels_relief_hoe": "혼펠스 부조 (괭이)", + "block.mineralogy.hornfels_relief_horizontal": "혼펠스 부조 (가로)", + "block.mineralogy.hornfels_relief_i": "혼펠스 부조 (I)", + "block.mineralogy.hornfels_relief_left": "혼펠스 부조 (왼쪽)", + "block.mineralogy.hornfels_relief_pickaxe": "혼펠스 부조 (곡괭이)", + "block.mineralogy.hornfels_relief_plus": "혼펠스 부조 (더하기 기호)", + "block.mineralogy.hornfels_relief_right": "혼펠스 부조 (오른쪽)", + "block.mineralogy.hornfels_relief_sword": "혼펠스 부조 (검)", + "block.mineralogy.hornfels_relief_vertical": "혼펠스 부조 (세로)", + "block.mineralogy.quartzite_relief_axe": "규암 부조 (도끼)", + "block.mineralogy.quartzite_relief_blank": "규암 부조 (무늬 없음)", + "block.mineralogy.quartzite_relief_cross": "규암 부조 (십자)", + "block.mineralogy.quartzite_relief_hammer": "규암 부조 (망치)", + "block.mineralogy.quartzite_relief_hoe": "규암 부조 (괭이)", + "block.mineralogy.quartzite_relief_horizontal": "규암 부조 (가로)", + "block.mineralogy.quartzite_relief_i": "규암 부조 (I)", + "block.mineralogy.quartzite_relief_left": "규암 부조 (왼쪽)", + "block.mineralogy.quartzite_relief_pickaxe": "규암 부조 (곡괭이)", + "block.mineralogy.quartzite_relief_plus": "규암 부조 (더하기 기호)", + "block.mineralogy.quartzite_relief_right": "규암 부조 (오른쪽)", + "block.mineralogy.quartzite_relief_sword": "규암 부조 (검)", + "block.mineralogy.quartzite_relief_vertical": "규암 부조 (세로)", + "block.mineralogy.novaculite_relief_axe": "노바큘라이트 부조 (도끼)", + "block.mineralogy.novaculite_relief_blank": "노바큘라이트 부조 (무늬 없음)", + "block.mineralogy.novaculite_relief_cross": "노바큘라이트 부조 (십자)", + "block.mineralogy.novaculite_relief_hammer": "노바큘라이트 부조 (망치)", + "block.mineralogy.novaculite_relief_hoe": "노바큘라이트 부조 (괭이)", + "block.mineralogy.novaculite_relief_horizontal": "노바큘라이트 부조 (가로)", + "block.mineralogy.novaculite_relief_i": "노바큘라이트 부조 (I)", + "block.mineralogy.novaculite_relief_left": "노바큘라이트 부조 (왼쪽)", + "block.mineralogy.novaculite_relief_pickaxe": "노바큘라이트 부조 (곡괭이)", + "block.mineralogy.novaculite_relief_plus": "노바큘라이트 부조 (더하기 기호)", + "block.mineralogy.novaculite_relief_right": "노바큘라이트 부조 (오른쪽)", + "block.mineralogy.novaculite_relief_sword": "노바큘라이트 부조 (검)", + "block.mineralogy.novaculite_relief_vertical": "노바큘라이트 부조 (세로)", "itemGroup.mineralogy.mineralogy": "광물학", "itemGroup.mineralogy.rock": "광물학 암석", "itemGroup.mineralogy.stair": "광물학 계단", - "itemGroup.mineralogy.slab": "광물학 석판", - "itemGroup.mineralogy.wall": "광물학 벽", - "itemGroup.mineralogy.item": "광물학 아이템" + "itemGroup.mineralogy.slab": "광물학 반 블록", + "itemGroup.mineralogy.wall": "광물학 담장", + "itemGroup.mineralogy.item": "광물학 아이템", + "block.mineralogy.crude_oil": "원유", + "item.mineralogy.crude_oil_bucket": "원유 양동이", + "fluid.mineralogy.crude_oil": "원유", + "advancements.mineralogy.all_the_rocks.title": "모든 암석", + "advancements.mineralogy.all_the_rocks.description": "광물학의 모든 표준 암석을 찾았습니다!" } diff --git a/src/main/resources/assets/mineralogy/lang/pt_br.json b/src/main/resources/assets/mineralogy/lang/pt_br.json index 54b020e92..867e9ac0d 100644 --- a/src/main/resources/assets/mineralogy/lang/pt_br.json +++ b/src/main/resources/assets/mineralogy/lang/pt_br.json @@ -1,940 +1,940 @@ { "block.mineralogy.andesite": "Andesito", - "block.mineralogy.andesite_stairs": "Escadas Andesíticas", + "block.mineralogy.andesite_stairs": "Escadas de Andesito", "block.mineralogy.andesite_slab": "Laje de Andesito", - "block.mineralogy.andesite_brick": "Tijolo Andesito", - "block.mineralogy.andesite_brick_stairs": "Escadas de tijolos andesíticos", - "block.mineralogy.andesite_brick_slab": "Laje de tijolo de andesito", - "block.mineralogy.andesite_smooth": "Andesito Polido", - "block.mineralogy.andesite_smooth_stairs": "Escadas polidas de andesita", - "block.mineralogy.andesite_smooth_slab": "Laje polida de andesita", - "block.mineralogy.andesite_smooth_brick": "Tijolo Polido Andesito", - "block.mineralogy.andesite_smooth_brick_stairs": "Escadas de tijolo polido de andesita", - "block.mineralogy.andesite_smooth_brick_slab": "Laje de tijolo polido de andesita", + "block.mineralogy.andesite_brick": "Tijolos de Andesito", + "block.mineralogy.andesite_brick_stairs": "Escadas de tijolos de Andesito", + "block.mineralogy.andesite_brick_slab": "Laje de tijolos de Andesito", + "block.mineralogy.andesite_smooth": "Bloco polido de Andesito", + "block.mineralogy.andesite_smooth_stairs": "Escadas polidas de Andesito", + "block.mineralogy.andesite_smooth_slab": "Laje polida de Andesito", + "block.mineralogy.andesite_smooth_brick": "Tijolos polidos de Andesito", + "block.mineralogy.andesite_smooth_brick_stairs": "Escadas de tijolos polidos de Andesito", + "block.mineralogy.andesite_smooth_brick_slab": "Laje de tijolos polidos de Andesito", "block.mineralogy.basalt": "Basalto", "block.mineralogy.basalt_stairs": "Escadas de Basalto", - "block.mineralogy.basalt_slab": "Laje de basalto", - "block.mineralogy.basalt_brick": "Tijolo Basáltico", - "block.mineralogy.basalt_brick_stairs": "Escadas de tijolos basálticos", - "block.mineralogy.basalt_brick_slab": "Laje de tijolo basáltico", - "block.mineralogy.basalt_smooth": "Basalto Polido", - "block.mineralogy.basalt_smooth_stairs": "Escadas polidas em basalto", - "block.mineralogy.basalt_smooth_slab": "Laje polida de basalto", - "block.mineralogy.basalt_smooth_brick": "Tijolo polido de basalto", - "block.mineralogy.basalt_smooth_brick_stairs": "Escadas de tijolo polido de basalto", - "block.mineralogy.basalt_smooth_brick_slab": "Laje de tijolo polido de basalto", + "block.mineralogy.basalt_slab": "Laje de Basalto", + "block.mineralogy.basalt_brick": "Tijolos de Basalto", + "block.mineralogy.basalt_brick_stairs": "Escadas de tijolos de Basalto", + "block.mineralogy.basalt_brick_slab": "Laje de tijolos de Basalto", + "block.mineralogy.basalt_smooth": "Bloco polido de Basalto", + "block.mineralogy.basalt_smooth_stairs": "Escadas polidas de Basalto", + "block.mineralogy.basalt_smooth_slab": "Laje polida de Basalto", + "block.mineralogy.basalt_smooth_brick": "Tijolos polidos de Basalto", + "block.mineralogy.basalt_smooth_brick_stairs": "Escadas de tijolos polidos de Basalto", + "block.mineralogy.basalt_smooth_brick_slab": "Laje de tijolos polidos de Basalto", "block.mineralogy.diorite": "Diorito", "block.mineralogy.diorite_stairs": "Escadas de Diorito", "block.mineralogy.diorite_slab": "Laje de Diorito", - "block.mineralogy.diorite_brick": "Tijolo Diorito", - "block.mineralogy.diorite_brick_stairs": "Escadas de tijolos de diorito", - "block.mineralogy.diorite_brick_slab": "Laje de tijolo de diorito", - "block.mineralogy.diorite_smooth": "Diorito Polido", - "block.mineralogy.diorite_smooth_stairs": "Escadas Polidas Diorito", - "block.mineralogy.diorite_smooth_slab": "Laje polida de diorito", - "block.mineralogy.diorite_smooth_brick": "Tijolo Polido Diorito", - "block.mineralogy.diorite_smooth_brick_stairs": "Escadas de tijolo polido de diorito", - "block.mineralogy.diorite_smooth_brick_slab": "Laje de tijolo polido de diorito", + "block.mineralogy.diorite_brick": "Tijolos de Diorito", + "block.mineralogy.diorite_brick_stairs": "Escadas de tijolos de Diorito", + "block.mineralogy.diorite_brick_slab": "Laje de tijolos de Diorito", + "block.mineralogy.diorite_smooth": "Bloco polido de Diorito", + "block.mineralogy.diorite_smooth_stairs": "Escadas polidas de Diorito", + "block.mineralogy.diorite_smooth_slab": "Laje polida de Diorito", + "block.mineralogy.diorite_smooth_brick": "Tijolos polidos de Diorito", + "block.mineralogy.diorite_smooth_brick_stairs": "Escadas de tijolos polidos de Diorito", + "block.mineralogy.diorite_smooth_brick_slab": "Laje de tijolos polidos de Diorito", "block.mineralogy.granite": "Granito", "block.mineralogy.granite_stairs": "Escadas de Granito", - "block.mineralogy.granite_slab": "Laje de granito", - "block.mineralogy.granite_brick": "Tijolo de Granito", - "block.mineralogy.granite_brick_stairs": "Escadas de tijolo de granito", - "block.mineralogy.granite_brick_slab": "Laje de tijolo de granito", - "block.mineralogy.granite_smooth": "Granito Polido", - "block.mineralogy.granite_smooth_stairs": "Escadas Polidas em Granito", - "block.mineralogy.granite_smooth_slab": "Laje Polida de Granito", - "block.mineralogy.granite_smooth_brick": "Tijolo polido de granito", - "block.mineralogy.granite_smooth_brick_stairs": "Escadas de tijolo polido em granito", - "block.mineralogy.granite_smooth_brick_slab": "Laje de tijolo polido de granito", + "block.mineralogy.granite_slab": "Laje de Granito", + "block.mineralogy.granite_brick": "Tijolos de Granito", + "block.mineralogy.granite_brick_stairs": "Escadas de tijolos de Granito", + "block.mineralogy.granite_brick_slab": "Laje de tijolos de Granito", + "block.mineralogy.granite_smooth": "Bloco polido de Granito", + "block.mineralogy.granite_smooth_stairs": "Escadas polidas de Granito", + "block.mineralogy.granite_smooth_slab": "Laje polida de Granito", + "block.mineralogy.granite_smooth_brick": "Tijolos polidos de Granito", + "block.mineralogy.granite_smooth_brick_stairs": "Escadas de tijolos polidos de Granito", + "block.mineralogy.granite_smooth_brick_slab": "Laje de tijolos polidos de Granito", "block.mineralogy.rhyolite": "Riolito", - "block.mineralogy.rhyolite_stairs": "Escadas de riolito", + "block.mineralogy.rhyolite_stairs": "Escadas de Riolito", "block.mineralogy.rhyolite_slab": "Laje de Riolito", - "block.mineralogy.rhyolite_brick": "Tijolo Riolito", - "block.mineralogy.rhyolite_brick_stairs": "Escadas de tijolo riolito", - "block.mineralogy.rhyolite_brick_slab": "Laje de tijolo riolito", - "block.mineralogy.rhyolite_smooth": "Riolito Polido", - "block.mineralogy.rhyolite_smooth_stairs": "Escadas Polidas Riolita", - "block.mineralogy.rhyolite_smooth_slab": "Laje polida de riolito", - "block.mineralogy.rhyolite_smooth_brick": "Tijolo Polido Riolito", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Escadas de tijolo polido riolito", - "block.mineralogy.rhyolite_smooth_brick_slab": "Laje de tijolo polido riolito", + "block.mineralogy.rhyolite_brick": "Tijolos de Riolito", + "block.mineralogy.rhyolite_brick_stairs": "Escadas de tijolos de Riolito", + "block.mineralogy.rhyolite_brick_slab": "Laje de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth": "Bloco polido de Riolito", + "block.mineralogy.rhyolite_smooth_stairs": "Escadas polidas de Riolito", + "block.mineralogy.rhyolite_smooth_slab": "Laje polida de Riolito", + "block.mineralogy.rhyolite_smooth_brick": "Tijolos polidos de Riolito", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escadas de tijolos polidos de Riolito", + "block.mineralogy.rhyolite_smooth_brick_slab": "Laje de tijolos polidos de Riolito", "block.mineralogy.pegmatite": "Pegmatito", - "block.mineralogy.pegmatite_stairs": "Escadas Pegmatíticas", - "block.mineralogy.pegmatite_slab": "Laje de Pegmatita", - "block.mineralogy.pegmatite_brick": "Tijolo Pegmatito", - "block.mineralogy.pegmatite_brick_stairs": "Escadas de tijolo pegmatita", - "block.mineralogy.pegmatite_brick_slab": "Laje de tijolo pegmatita", - "block.mineralogy.pegmatite_smooth": "Pegmatito Polido", - "block.mineralogy.pegmatite_smooth_stairs": "Escadas Polidas Pegmatita", - "block.mineralogy.pegmatite_smooth_slab": "Laje polida de pegmatita", - "block.mineralogy.pegmatite_smooth_brick": "Tijolo Polido Pegmatita", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Escadas de tijolo polido de pegmatita", - "block.mineralogy.pegmatite_smooth_brick_slab": "Laje de tijolo polido de pegmatita", - "block.mineralogy.shale": "Xisto", - "block.mineralogy.shale_stairs": "Escadas de Xisto", - "block.mineralogy.shale_slab": "Laje de xisto", - "block.mineralogy.shale_brick": "Tijolo de Xisto", - "block.mineralogy.shale_brick_stairs": "Escadas de tijolo de xisto", - "block.mineralogy.shale_brick_slab": "Laje de tijolo de xisto", - "block.mineralogy.shale_smooth": "Xisto Polido", - "block.mineralogy.shale_smooth_stairs": "Escadas de Xisto Polido", - "block.mineralogy.shale_smooth_slab": "Laje Polida de Xisto", - "block.mineralogy.shale_smooth_brick": "Tijolo polido de xisto", - "block.mineralogy.shale_smooth_brick_stairs": "Escadas de tijolo polido de xisto", - "block.mineralogy.shale_smooth_brick_slab": "Laje de tijolo polido de xisto", + "block.mineralogy.pegmatite_stairs": "Escadas de Pegmatito", + "block.mineralogy.pegmatite_slab": "Laje de Pegmatito", + "block.mineralogy.pegmatite_brick": "Tijolos de Pegmatito", + "block.mineralogy.pegmatite_brick_stairs": "Escadas de tijolos de Pegmatito", + "block.mineralogy.pegmatite_brick_slab": "Laje de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth": "Bloco polido de Pegmatito", + "block.mineralogy.pegmatite_smooth_stairs": "Escadas polidas de Pegmatito", + "block.mineralogy.pegmatite_smooth_slab": "Laje polida de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick": "Tijolos polidos de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escadas de tijolos polidos de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_slab": "Laje de tijolos polidos de Pegmatito", + "block.mineralogy.shale": "Folhelho", + "block.mineralogy.shale_stairs": "Escadas de Folhelho", + "block.mineralogy.shale_slab": "Laje de Folhelho", + "block.mineralogy.shale_brick": "Tijolos de Folhelho", + "block.mineralogy.shale_brick_stairs": "Escadas de tijolos de Folhelho", + "block.mineralogy.shale_brick_slab": "Laje de tijolos de Folhelho", + "block.mineralogy.shale_smooth": "Bloco polido de Folhelho", + "block.mineralogy.shale_smooth_stairs": "Escadas polidas de Folhelho", + "block.mineralogy.shale_smooth_slab": "Laje polida de Folhelho", + "block.mineralogy.shale_smooth_brick": "Tijolos polidos de Folhelho", + "block.mineralogy.shale_smooth_brick_stairs": "Escadas de tijolos polidos de Folhelho", + "block.mineralogy.shale_smooth_brick_slab": "Laje de tijolos polidos de Folhelho", "block.mineralogy.conglomerate": "Conglomerado", - "block.mineralogy.conglomerate_stairs": "Escadas Conglomeradas", - "block.mineralogy.conglomerate_slab": "Laje Conglomerada", - "block.mineralogy.conglomerate_brick": "Tijolo Conglomerado", - "block.mineralogy.conglomerate_brick_stairs": "Escadas de tijolos conglomerados", - "block.mineralogy.conglomerate_brick_slab": "Laje de Tijolo Conglomerado", - "block.mineralogy.conglomerate_smooth": "Conglomerado Polido", - "block.mineralogy.conglomerate_smooth_stairs": "Escadas Polidas Conglomeradas", - "block.mineralogy.conglomerate_smooth_slab": "Laje Polida Conglomerada", - "block.mineralogy.conglomerate_smooth_brick": "Tijolo Polido Conglomerado", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Escadas de tijolo polido conglomerado", - "block.mineralogy.conglomerate_smooth_brick_slab": "Laje de tijolo polido conglomerado", + "block.mineralogy.conglomerate_stairs": "Escadas de Conglomerado", + "block.mineralogy.conglomerate_slab": "Laje de Conglomerado", + "block.mineralogy.conglomerate_brick": "Tijolos de Conglomerado", + "block.mineralogy.conglomerate_brick_stairs": "Escadas de tijolos de Conglomerado", + "block.mineralogy.conglomerate_brick_slab": "Laje de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth": "Bloco polido de Conglomerado", + "block.mineralogy.conglomerate_smooth_stairs": "Escadas polidas de Conglomerado", + "block.mineralogy.conglomerate_smooth_slab": "Laje polida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick": "Tijolos polidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escadas de tijolos polidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_slab": "Laje de tijolos polidos de Conglomerado", "block.mineralogy.dolomite": "Dolomita", - "block.mineralogy.dolomite_stairs": "Escadas Dolomitas", - "block.mineralogy.dolomite_slab": "Laje Dolomita", - "block.mineralogy.dolomite_brick": "Tijolo Dolomita", - "block.mineralogy.dolomite_brick_stairs": "Escadas de tijolos dolomitas", - "block.mineralogy.dolomite_brick_slab": "Laje de tijolo de dolomita", - "block.mineralogy.dolomite_smooth": "Dolomita Polida", - "block.mineralogy.dolomite_smooth_stairs": "Escadas polidas em dolomita", - "block.mineralogy.dolomite_smooth_slab": "Laje Polida Dolomita", - "block.mineralogy.dolomite_smooth_brick": "Tijolo Dolomita Polido", - "block.mineralogy.dolomite_smooth_brick_stairs": "Escadas de tijolo polido em dolomita", - "block.mineralogy.dolomite_smooth_brick_slab": "Laje de tijolo polido dolomita", + "block.mineralogy.dolomite_stairs": "Escadas de Dolomita", + "block.mineralogy.dolomite_slab": "Laje de Dolomita", + "block.mineralogy.dolomite_brick": "Tijolos de Dolomita", + "block.mineralogy.dolomite_brick_stairs": "Escadas de tijolos de Dolomita", + "block.mineralogy.dolomite_brick_slab": "Laje de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth": "Bloco polido de Dolomita", + "block.mineralogy.dolomite_smooth_stairs": "Escadas polidas de Dolomita", + "block.mineralogy.dolomite_smooth_slab": "Laje polida de Dolomita", + "block.mineralogy.dolomite_smooth_brick": "Tijolos polidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escadas de tijolos polidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_slab": "Laje de tijolos polidos de Dolomita", "block.mineralogy.limestone": "Calcário", - "block.mineralogy.limestone_stairs": "Escadas de calcário", - "block.mineralogy.limestone_slab": "Laje de calcário", - "block.mineralogy.limestone_brick": "Tijolo de calcário", - "block.mineralogy.limestone_brick_stairs": "Escadas de tijolos de calcário", - "block.mineralogy.limestone_brick_slab": "Laje de tijolo de calcário", - "block.mineralogy.limestone_smooth": "Calcário Polido", - "block.mineralogy.limestone_smooth_stairs": "Escadas polidas em pedra calcária", - "block.mineralogy.limestone_smooth_slab": "Laje polida de calcário", - "block.mineralogy.limestone_smooth_brick": "Tijolo polido de calcário", - "block.mineralogy.limestone_smooth_brick_stairs": "Escadas de tijolo polido de calcário", - "block.mineralogy.limestone_smooth_brick_slab": "Laje de tijolo polido de calcário", + "block.mineralogy.limestone_stairs": "Escadas de Calcário", + "block.mineralogy.limestone_slab": "Laje de Calcário", + "block.mineralogy.limestone_brick": "Tijolos de Calcário", + "block.mineralogy.limestone_brick_stairs": "Escadas de tijolos de Calcário", + "block.mineralogy.limestone_brick_slab": "Laje de tijolos de Calcário", + "block.mineralogy.limestone_smooth": "Bloco polido de Calcário", + "block.mineralogy.limestone_smooth_stairs": "Escadas polidas de Calcário", + "block.mineralogy.limestone_smooth_slab": "Laje polida de Calcário", + "block.mineralogy.limestone_smooth_brick": "Tijolos polidos de Calcário", + "block.mineralogy.limestone_smooth_brick_stairs": "Escadas de tijolos polidos de Calcário", + "block.mineralogy.limestone_smooth_brick_slab": "Laje de tijolos polidos de Calcário", "block.mineralogy.slate": "Ardósia", - "block.mineralogy.slate_stairs": "Escadas de ardósia", - "block.mineralogy.slate_slab": "Laje de ardósia", - "block.mineralogy.slate_brick": "Tijolo de ardósia", - "block.mineralogy.slate_brick_stairs": "Escadas de tijolos de ardósia", - "block.mineralogy.slate_brick_slab": "Laje de tijolo de ardósia", - "block.mineralogy.slate_smooth": "Ardósia Polida", - "block.mineralogy.slate_smooth_stairs": "Escadas de ardósia polida", - "block.mineralogy.slate_smooth_slab": "Laje polida de ardósia", - "block.mineralogy.slate_smooth_brick": "Tijolo polido de ardósia", - "block.mineralogy.slate_smooth_brick_stairs": "Escadas de tijolo polido de ardósia", - "block.mineralogy.slate_smooth_brick_slab": "Laje de tijolo polido de ardósia", + "block.mineralogy.slate_stairs": "Escadas de Ardósia", + "block.mineralogy.slate_slab": "Laje de Ardósia", + "block.mineralogy.slate_brick": "Tijolos de Ardósia", + "block.mineralogy.slate_brick_stairs": "Escadas de tijolos de Ardósia", + "block.mineralogy.slate_brick_slab": "Laje de tijolos de Ardósia", + "block.mineralogy.slate_smooth": "Bloco polido de Ardósia", + "block.mineralogy.slate_smooth_stairs": "Escadas polidas de Ardósia", + "block.mineralogy.slate_smooth_slab": "Laje polida de Ardósia", + "block.mineralogy.slate_smooth_brick": "Tijolos polidos de Ardósia", + "block.mineralogy.slate_smooth_brick_stairs": "Escadas de tijolos polidos de Ardósia", + "block.mineralogy.slate_smooth_brick_slab": "Laje de tijolos polidos de Ardósia", "block.mineralogy.schist": "Xisto", "block.mineralogy.schist_stairs": "Escadas de Xisto", "block.mineralogy.schist_slab": "Laje de Xisto", - "block.mineralogy.schist_brick": "Tijolo de Xisto", - "block.mineralogy.schist_brick_stairs": "Escadas em tijolo de xisto", - "block.mineralogy.schist_brick_slab": "Laje de tijolo de xisto", - "block.mineralogy.schist_smooth": "Xisto Polido", - "block.mineralogy.schist_smooth_stairs": "Escadas em Xisto Polido", - "block.mineralogy.schist_smooth_slab": "Laje de Xisto Polido", - "block.mineralogy.schist_smooth_brick": "Tijolo Polido de Xisto", - "block.mineralogy.schist_smooth_brick_stairs": "Escadas em Tijolo Polido de Xisto", - "block.mineralogy.schist_smooth_brick_slab": "Laje de tijolo polido de xisto", + "block.mineralogy.schist_brick": "Tijolos de Xisto", + "block.mineralogy.schist_brick_stairs": "Escadas de tijolos de Xisto", + "block.mineralogy.schist_brick_slab": "Laje de tijolos de Xisto", + "block.mineralogy.schist_smooth": "Bloco polido de Xisto", + "block.mineralogy.schist_smooth_stairs": "Escadas polidas de Xisto", + "block.mineralogy.schist_smooth_slab": "Laje polida de Xisto", + "block.mineralogy.schist_smooth_brick": "Tijolos polidos de Xisto", + "block.mineralogy.schist_smooth_brick_stairs": "Escadas de tijolos polidos de Xisto", + "block.mineralogy.schist_smooth_brick_slab": "Laje de tijolos polidos de Xisto", "block.mineralogy.gneiss": "Gnaisse", "block.mineralogy.gneiss_stairs": "Escadas de Gnaisse", "block.mineralogy.gneiss_slab": "Laje de Gnaisse", - "block.mineralogy.gneiss_brick": "Tijolo Gnaisse", - "block.mineralogy.gneiss_brick_stairs": "Escadas de tijolos de gnaisse", - "block.mineralogy.gneiss_brick_slab": "Laje de tijolo de gnaisse", - "block.mineralogy.gneiss_smooth": "Gnaisse Polido", - "block.mineralogy.gneiss_smooth_stairs": "Escadas Polidas em Gnaisse", - "block.mineralogy.gneiss_smooth_slab": "Laje polida de gnaisse", - "block.mineralogy.gneiss_smooth_brick": "Tijolo Polido Gnaisse", - "block.mineralogy.gneiss_smooth_brick_stairs": "Escadas de tijolo polido de gnaisse", - "block.mineralogy.gneiss_smooth_brick_slab": "Laje de tijolo polido de gnaisse", + "block.mineralogy.gneiss_brick": "Tijolos de Gnaisse", + "block.mineralogy.gneiss_brick_stairs": "Escadas de tijolos de Gnaisse", + "block.mineralogy.gneiss_brick_slab": "Laje de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth": "Bloco polido de Gnaisse", + "block.mineralogy.gneiss_smooth_stairs": "Escadas polidas de Gnaisse", + "block.mineralogy.gneiss_smooth_slab": "Laje polida de Gnaisse", + "block.mineralogy.gneiss_smooth_brick": "Tijolos polidos de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escadas de tijolos polidos de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_slab": "Laje de tijolos polidos de Gnaisse", "block.mineralogy.marble": "Mármore", "block.mineralogy.marble_stairs": "Escadas de Mármore", - "block.mineralogy.marble_slab": "Laje de mármore", - "block.mineralogy.marble_brick": "Tijolo de Mármore", - "block.mineralogy.marble_brick_stairs": "Escadas de tijolos de mármore", - "block.mineralogy.marble_brick_slab": "Laje de tijolo de mármore", - "block.mineralogy.marble_smooth": "Mármore Polido", - "block.mineralogy.marble_smooth_stairs": "Escadas polidas em mármore", - "block.mineralogy.marble_smooth_slab": "Laje polida de mármore", - "block.mineralogy.marble_smooth_brick": "Tijolo polido de mármore", - "block.mineralogy.marble_smooth_brick_stairs": "Escadas de tijolo polido em mármore", - "block.mineralogy.marble_smooth_brick_slab": "Laje de tijolo polido em mármore", + "block.mineralogy.marble_slab": "Laje de Mármore", + "block.mineralogy.marble_brick": "Tijolos de Mármore", + "block.mineralogy.marble_brick_stairs": "Escadas de tijolos de Mármore", + "block.mineralogy.marble_brick_slab": "Laje de tijolos de Mármore", + "block.mineralogy.marble_smooth": "Bloco polido de Mármore", + "block.mineralogy.marble_smooth_stairs": "Escadas polidas de Mármore", + "block.mineralogy.marble_smooth_slab": "Laje polida de Mármore", + "block.mineralogy.marble_smooth_brick": "Tijolos polidos de Mármore", + "block.mineralogy.marble_smooth_brick_stairs": "Escadas de tijolos polidos de Mármore", + "block.mineralogy.marble_smooth_brick_slab": "Laje de tijolos polidos de Mármore", "block.mineralogy.phyllite": "Filito", - "block.mineralogy.phyllite_stairs": "Escadas de filito", - "block.mineralogy.phyllite_slab": "Laje de filito", - "block.mineralogy.phyllite_brick": "Tijolo Filito", - "block.mineralogy.phyllite_brick_stairs": "Escadas de tijolo filito", - "block.mineralogy.phyllite_brick_slab": "Laje de tijolo filito", - "block.mineralogy.phyllite_smooth": "Filito Polido", - "block.mineralogy.phyllite_smooth_stairs": "Escadas polidas de filito", - "block.mineralogy.phyllite_smooth_slab": "Laje polida de filito", - "block.mineralogy.phyllite_smooth_brick": "Tijolo polido filito", - "block.mineralogy.phyllite_smooth_brick_stairs": "Escadas de tijolo polido filito", - "block.mineralogy.phyllite_smooth_brick_slab": "Laje de tijolo polido filito", + "block.mineralogy.phyllite_stairs": "Escadas de Filito", + "block.mineralogy.phyllite_slab": "Laje de Filito", + "block.mineralogy.phyllite_brick": "Tijolos de Filito", + "block.mineralogy.phyllite_brick_stairs": "Escadas de tijolos de Filito", + "block.mineralogy.phyllite_brick_slab": "Laje de tijolos de Filito", + "block.mineralogy.phyllite_smooth": "Bloco polido de Filito", + "block.mineralogy.phyllite_smooth_stairs": "Escadas polidas de Filito", + "block.mineralogy.phyllite_smooth_slab": "Laje polida de Filito", + "block.mineralogy.phyllite_smooth_brick": "Tijolos polidos de Filito", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escadas de tijolos polidos de Filito", + "block.mineralogy.phyllite_smooth_brick_slab": "Laje de tijolos polidos de Filito", "block.mineralogy.amphibolite": "Anfibolito", - "block.mineralogy.amphibolite_stairs": "Escadas Anfibolitas", - "block.mineralogy.amphibolite_slab": "Laje Anfibolito", - "block.mineralogy.amphibolite_brick": "Tijolo Anfibolito", - "block.mineralogy.amphibolite_brick_stairs": "Escadas de tijolo anfibolito", - "block.mineralogy.amphibolite_brick_slab": "Laje de tijolo anfibolito", - "block.mineralogy.amphibolite_smooth": "SuaveAnfibolito", - "block.mineralogy.amphibolite_smooth_stairs": "Escadas Polidas Anfibolito", - "block.mineralogy.amphibolite_smooth_slab": "Laje Polida Anfibolito", - "block.mineralogy.amphibolite_smooth_brick": "Tijolo Polido Anfibolito", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Escadas de tijolo polido anfibolito", - "block.mineralogy.amphibolite_smooth_brick_slab": "Laje de tijolo polido anfibolito", - "item.mineralogy.gypsum_dust": "Gesso em Pó", - "item.mineralogy.sulfur_dust": "Enxofre em Pó", + "block.mineralogy.amphibolite_stairs": "Escadas de Anfibolito", + "block.mineralogy.amphibolite_slab": "Laje de Anfibolito", + "block.mineralogy.amphibolite_brick": "Tijolos de Anfibolito", + "block.mineralogy.amphibolite_brick_stairs": "Escadas de tijolos de Anfibolito", + "block.mineralogy.amphibolite_brick_slab": "Laje de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth": "Bloco polido de Anfibolito", + "block.mineralogy.amphibolite_smooth_stairs": "Escadas polidas de Anfibolito", + "block.mineralogy.amphibolite_smooth_slab": "Laje polida de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick": "Tijolos polidos de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escadas de tijolos polidos de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_slab": "Laje de tijolos polidos de Anfibolito", + "item.mineralogy.gypsum_dust": "Pó de gesso", + "item.mineralogy.sulfur_dust": "Pó de enxofre", "item.mineralogy.phosphorous_dust": "Pó de fósforo", - "item.mineralogy.nitrate_dust": "Nitrato em pó", - "item.mineralogy.mineral_fertilizer": "Fertilizante Mineral", - "block.mineralogy.chert": "Chert", + "item.mineralogy.nitrate_dust": "Pó de nitrato", + "item.mineralogy.mineral_fertilizer": "Fertilizante mineral", + "block.mineralogy.chert": "Sílex", "block.mineralogy.gypsum": "Gesso", "block.mineralogy.pumice": "Pedra-pomes", "block.mineralogy.sulfur_block": "Enxofre", - "block.mineralogy.sulfur_ore": "Minério de Enxofre", + "block.mineralogy.sulfur_ore": "Minério de enxofre", "block.mineralogy.phosphorous_block": "Fósforo", "block.mineralogy.phosphorous_ore": "Minério de fósforo", "block.mineralogy.nitrate_block": "Nitrato", "block.mineralogy.nitrate_ore": "Minério de nitrato", - "block.mineralogy.drywall_black": "Drywall preto", - "block.mineralogy.drywall_red": "Drywall vermelho", - "block.mineralogy.drywall_green": "Drywall Verde", - "block.mineralogy.drywall_brown": "Drywall marrom", - "block.mineralogy.drywall_blue": "Drywall Azul", - "block.mineralogy.drywall_purple": "Drywall roxo", - "block.mineralogy.drywall_cyan": "Drywall Ciano", - "block.mineralogy.drywall_silver": "Drywall cinza claro", - "block.mineralogy.drywall_gray": "Drywall cinza", - "block.mineralogy.drywall_pink": "Drywall rosa", - "block.mineralogy.drywall_lime": "Drywall verde-limão", - "block.mineralogy.drywall_yellow": "Drywall Amarelo", - "block.mineralogy.drywall_light_blue": "Drywall azul claro", - "block.mineralogy.drywall_magenta": "Drywall magenta", - "block.mineralogy.drywall_orange": "Drywall Laranja", - "block.mineralogy.drywall_white": "Drywall branco", - "block.mineralogy.andesite_wall": "Muralha Andesítica", - "block.mineralogy.andesite_brick_wall": "Parede de tijolos de andesito", - "block.mineralogy.andesite_smooth_wall": "Parede polida de andesita", - "block.mineralogy.andesite_smooth_brick_wall": "Parede de tijolo polido de andesita", - "block.mineralogy.basalt_wall": "Parede de Basalto", - "block.mineralogy.basalt_brick_wall": "Parede de tijolos de basalto", - "block.mineralogy.basalt_smooth_wall": "Parede polida de basalto", - "block.mineralogy.basalt_smooth_brick_wall": "Parede de tijolo polido de basalto", - "block.mineralogy.diorite_wall": "Parede de Diorito", - "block.mineralogy.diorite_brick_wall": "Parede de tijolos de diorito", - "block.mineralogy.diorite_smooth_wall": "Parede Polida Diorito", - "block.mineralogy.diorite_smooth_brick_wall": "Parede de tijolo polido com diorito", - "block.mineralogy.granite_wall": "Parede de Granito", - "block.mineralogy.granite_brick_wall": "Parede de tijolos de granito", - "block.mineralogy.granite_smooth_wall": "Parede Polida em Granito", - "block.mineralogy.granite_smooth_brick_wall": "Parede de tijolo polido de granito", - "block.mineralogy.rhyolite_wall": "Parede de Riolito", - "block.mineralogy.rhyolite_brick_wall": "Parede de tijolos riolito", - "block.mineralogy.rhyolite_smooth_wall": "Parede Polida Riolita", - "block.mineralogy.rhyolite_smooth_brick_wall": "Parede de tijolo polido riolito", - "block.mineralogy.pegmatite_wall": "Parede Pegmatita", - "block.mineralogy.pegmatite_brick_wall": "Parede de tijolos pegmatita", - "block.mineralogy.pegmatite_smooth_wall": "Parede Polida Pegmatita", - "block.mineralogy.pegmatite_smooth_brick_wall": "Parede de tijolo polido de pegmatita", - "block.mineralogy.shale_wall": "Parede de Xisto", - "block.mineralogy.shale_brick_wall": "Parede de tijolos de xisto", - "block.mineralogy.shale_smooth_wall": "Parede polida de xisto", - "block.mineralogy.shale_smooth_brick_wall": "Parede de tijolo polido de xisto", - "block.mineralogy.conglomerate_wall": "Parede do Conglomerado", - "block.mineralogy.conglomerate_brick_wall": "Parede de tijolos conglomerados", - "block.mineralogy.conglomerate_smooth_wall": "Parede Polida Conglomerada", - "block.mineralogy.conglomerate_smooth_brick_wall": "Parede de tijolo polido conglomerado", - "block.mineralogy.dolomite_wall": "Muralha Dolomita", - "block.mineralogy.dolomite_brick_wall": "Parede de tijolos de dolomita", - "block.mineralogy.dolomite_smooth_wall": "Parede Polida Dolomita", - "block.mineralogy.dolomite_smooth_brick_wall": "Parede de tijolo polido dolomita", - "block.mineralogy.limestone_wall": "Parede de calcário", - "block.mineralogy.limestone_brick_wall": "Parede de tijolos de calcário", - "block.mineralogy.limestone_smooth_wall": "Parede polida de calcário", - "block.mineralogy.limestone_smooth_brick_wall": "Parede de tijolo polido de calcário", - "block.mineralogy.marble_wall": "Parede de Mármore", - "block.mineralogy.marble_brick_wall": "Parede de tijolos de mármore", - "block.mineralogy.marble_smooth_wall": "Parede polida de mármore", - "block.mineralogy.marble_smooth_brick_wall": "Parede de tijolo polido em mármore", - "block.mineralogy.slate_wall": "Parede de ardósia", - "block.mineralogy.slate_brick_wall": "Parede de tijolos de ardósia", - "block.mineralogy.slate_smooth_wall": "Parede polida de ardósia", - "block.mineralogy.slate_smooth_brick_wall": "Parede de tijolo polido de ardósia", - "block.mineralogy.schist_wall": "Parede de Xisto", - "block.mineralogy.schist_brick_wall": "Parede de Tijolos de Xisto", - "block.mineralogy.schist_smooth_wall": "Parede de Xisto Polido", - "block.mineralogy.schist_smooth_brick_wall": "Parede de tijolo polido de xisto", - "block.mineralogy.gneiss_wall": "Parede de Gnaisse", - "block.mineralogy.gneiss_brick_wall": "Parede de tijolos de gnaisse", - "block.mineralogy.gneiss_smooth_wall": "Parede Polida Gnaisse", - "block.mineralogy.gneiss_smooth_brick_wall": "Parede de tijolo polido de gnaisse", - "block.mineralogy.phyllite_wall": "Parede de filito", - "block.mineralogy.phyllite_brick_wall": "Parede de tijolo filito", - "block.mineralogy.phyllite_smooth_wall": "Parede Polida Filita", - "block.mineralogy.phyllite_smooth_brick_wall": "Parede de tijolo polido filito", - "block.mineralogy.amphibolite_wall": "Parede Anfibolito", - "block.mineralogy.amphibolite_brick_wall": "Parede de tijolos anfibolito", - "block.mineralogy.amphibolite_smooth_wall": "Parede Polida Anfibolito", - "block.mineralogy.amphibolite_smooth_brick_wall": "Parede de tijolo polido anfibolito", - "block.mineralogy.andesite_furnace": "Forno Andesito", - "block.mineralogy.andesite_brick_furnace": "Forno de tijolos andesíticos", - "block.mineralogy.andesite_smooth_furnace": "Forno polido de andesita", - "block.mineralogy.andesite_smooth_brick_furnace": "Forno de tijolo polido de andesita", - "block.mineralogy.basalt_furnace": "Forno de basalto", - "block.mineralogy.basalt_brick_furnace": "Forno de tijolos basálticos", - "block.mineralogy.basalt_smooth_furnace": "Forno Polido de Basalto", - "block.mineralogy.basalt_smooth_brick_furnace": "Forno de tijolo polido de basalto", - "block.mineralogy.diorite_furnace": "Forno de Diorito", - "block.mineralogy.diorite_brick_furnace": "Forno de tijolos de diorito", - "block.mineralogy.diorite_smooth_furnace": "Forno Polido Diorito", - "block.mineralogy.diorite_smooth_brick_furnace": "Forno de tijolo polido de diorito", - "block.mineralogy.granite_furnace": "Forno de granito", - "block.mineralogy.granite_brick_furnace": "Forno de tijolo de granito", - "block.mineralogy.granite_smooth_furnace": "Forno Polido de Granito", - "block.mineralogy.granite_smooth_brick_furnace": "Forno de tijolo polido de granito", - "block.mineralogy.rhyolite_furnace": "Forno de riolito", - "block.mineralogy.rhyolite_brick_furnace": "Forno de tijolo riolito", - "block.mineralogy.rhyolite_smooth_furnace": "Forno polido de riolito", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Forno de tijolo polido riolito", - "block.mineralogy.pegmatite_furnace": "Forno de Pegmatita", - "block.mineralogy.pegmatite_brick_furnace": "Forno de tijolos de pegmatita", - "block.mineralogy.pegmatite_smooth_furnace": "Forno Polido de Pegmatita", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Forno de tijolo polido de pegmatita", - "block.mineralogy.shale_furnace": "Forno de Xisto", - "block.mineralogy.shale_brick_furnace": "Forno de tijolo de xisto", - "block.mineralogy.shale_smooth_furnace": "Forno de xisto polido", - "block.mineralogy.shale_smooth_brick_furnace": "Forno de tijolo polido de xisto", - "block.mineralogy.conglomerate_furnace": "Forno Conglomerado", - "block.mineralogy.conglomerate_brick_furnace": "Forno de tijolos conglomerados", - "block.mineralogy.conglomerate_smooth_furnace": "Forno Polido Conglomerado", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Forno de tijolo polido conglomerado", - "block.mineralogy.dolomite_furnace": "Forno Dolomita", - "block.mineralogy.dolomite_brick_furnace": "Forno de tijolos dolomita", - "block.mineralogy.dolomite_smooth_furnace": "Forno Dolomita Polido", - "block.mineralogy.dolomite_smooth_brick_furnace": "Forno de tijolo polido dolomita", - "block.mineralogy.limestone_furnace": "Forno de calcário", - "block.mineralogy.limestone_brick_furnace": "Forno de tijolos de calcário", - "block.mineralogy.limestone_smooth_furnace": "Forno Polido de Calcário", - "block.mineralogy.limestone_smooth_brick_furnace": "Forno de tijolo polido de calcário", - "block.mineralogy.marble_furnace": "Forno de mármore", - "block.mineralogy.marble_brick_furnace": "Forno de tijolo de mármore", - "block.mineralogy.marble_smooth_furnace": "Forno Polido de Mármore", - "block.mineralogy.marble_smooth_brick_furnace": "Forno de tijolo polido em mármore", - "block.mineralogy.slate_furnace": "Forno de ardósia", - "block.mineralogy.slate_brick_furnace": "Forno de tijolo de ardósia", - "block.mineralogy.slate_smooth_furnace": "Forno de ardósia polida", - "block.mineralogy.slate_smooth_brick_furnace": "Forno de tijolo polido de ardósia", - "block.mineralogy.schist_furnace": "Forno de Xisto", - "block.mineralogy.schist_brick_furnace": "Forno de tijolo de xisto", - "block.mineralogy.schist_smooth_furnace": "Forno de Xisto Polido", - "block.mineralogy.schist_smooth_brick_furnace": "Forno de tijolo polido de xisto", - "block.mineralogy.gneiss_furnace": "Forno de Gnaisse", - "block.mineralogy.gneiss_brick_furnace": "Forno de tijolos de gnaisse", - "block.mineralogy.gneiss_smooth_furnace": "Forno Polido de Gnaisse", - "block.mineralogy.gneiss_smooth_brick_furnace": "Forno de tijolo polido de gnaisse", - "block.mineralogy.phyllite_furnace": "Forno de filito", - "block.mineralogy.phyllite_brick_furnace": "Forno de tijolo filito", - "block.mineralogy.phyllite_smooth_furnace": "Forno Polido Filito", - "block.mineralogy.phyllite_smooth_brick_furnace": "Forno de tijolo polido filito", - "block.mineralogy.amphibolite_furnace": "Forno Anfibolito", - "block.mineralogy.amphibolite_brick_furnace": "Forno de tijolo anfibolito", - "block.mineralogy.amphibolite_smooth_furnace": "Forno Polido Anfibolito", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Forno de tijolo polido anfibolito", + "block.mineralogy.drywall_black": "Placa de gesso preta", + "block.mineralogy.drywall_red": "Placa de gesso vermelha", + "block.mineralogy.drywall_green": "Placa de gesso verde", + "block.mineralogy.drywall_brown": "Placa de gesso marrom", + "block.mineralogy.drywall_blue": "Placa de gesso azul", + "block.mineralogy.drywall_purple": "Placa de gesso roxa", + "block.mineralogy.drywall_cyan": "Placa de gesso ciana", + "block.mineralogy.drywall_silver": "Placa de gesso cinza-clara", + "block.mineralogy.drywall_gray": "Placa de gesso cinza", + "block.mineralogy.drywall_pink": "Placa de gesso rosa", + "block.mineralogy.drywall_lime": "Placa de gesso verde-limão", + "block.mineralogy.drywall_yellow": "Placa de gesso amarela", + "block.mineralogy.drywall_light_blue": "Placa de gesso azul-clara", + "block.mineralogy.drywall_magenta": "Placa de gesso magenta", + "block.mineralogy.drywall_orange": "Placa de gesso laranja", + "block.mineralogy.drywall_white": "Placa de gesso branca", + "block.mineralogy.andesite_wall": "Muro de Andesito", + "block.mineralogy.andesite_brick_wall": "Muro de tijolos de Andesito", + "block.mineralogy.andesite_smooth_wall": "Muro polido de Andesito", + "block.mineralogy.andesite_smooth_brick_wall": "Muro de tijolos polidos de Andesito", + "block.mineralogy.basalt_wall": "Muro de Basalto", + "block.mineralogy.basalt_brick_wall": "Muro de tijolos de Basalto", + "block.mineralogy.basalt_smooth_wall": "Muro polido de Basalto", + "block.mineralogy.basalt_smooth_brick_wall": "Muro de tijolos polidos de Basalto", + "block.mineralogy.diorite_wall": "Muro de Diorito", + "block.mineralogy.diorite_brick_wall": "Muro de tijolos de Diorito", + "block.mineralogy.diorite_smooth_wall": "Muro polido de Diorito", + "block.mineralogy.diorite_smooth_brick_wall": "Muro de tijolos polidos de Diorito", + "block.mineralogy.granite_wall": "Muro de Granito", + "block.mineralogy.granite_brick_wall": "Muro de tijolos de Granito", + "block.mineralogy.granite_smooth_wall": "Muro polido de Granito", + "block.mineralogy.granite_smooth_brick_wall": "Muro de tijolos polidos de Granito", + "block.mineralogy.rhyolite_wall": "Muro de Riolito", + "block.mineralogy.rhyolite_brick_wall": "Muro de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth_wall": "Muro polido de Riolito", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muro de tijolos polidos de Riolito", + "block.mineralogy.pegmatite_wall": "Muro de Pegmatito", + "block.mineralogy.pegmatite_brick_wall": "Muro de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth_wall": "Muro polido de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muro de tijolos polidos de Pegmatito", + "block.mineralogy.shale_wall": "Muro de Folhelho", + "block.mineralogy.shale_brick_wall": "Muro de tijolos de Folhelho", + "block.mineralogy.shale_smooth_wall": "Muro polido de Folhelho", + "block.mineralogy.shale_smooth_brick_wall": "Muro de tijolos polidos de Folhelho", + "block.mineralogy.conglomerate_wall": "Muro de Conglomerado", + "block.mineralogy.conglomerate_brick_wall": "Muro de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth_wall": "Muro polido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muro de tijolos polidos de Conglomerado", + "block.mineralogy.dolomite_wall": "Muro de Dolomita", + "block.mineralogy.dolomite_brick_wall": "Muro de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth_wall": "Muro polido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_wall": "Muro de tijolos polidos de Dolomita", + "block.mineralogy.limestone_wall": "Muro de Calcário", + "block.mineralogy.limestone_brick_wall": "Muro de tijolos de Calcário", + "block.mineralogy.limestone_smooth_wall": "Muro polido de Calcário", + "block.mineralogy.limestone_smooth_brick_wall": "Muro de tijolos polidos de Calcário", + "block.mineralogy.marble_wall": "Muro de Mármore", + "block.mineralogy.marble_brick_wall": "Muro de tijolos de Mármore", + "block.mineralogy.marble_smooth_wall": "Muro polido de Mármore", + "block.mineralogy.marble_smooth_brick_wall": "Muro de tijolos polidos de Mármore", + "block.mineralogy.slate_wall": "Muro de Ardósia", + "block.mineralogy.slate_brick_wall": "Muro de tijolos de Ardósia", + "block.mineralogy.slate_smooth_wall": "Muro polido de Ardósia", + "block.mineralogy.slate_smooth_brick_wall": "Muro de tijolos polidos de Ardósia", + "block.mineralogy.schist_wall": "Muro de Xisto", + "block.mineralogy.schist_brick_wall": "Muro de tijolos de Xisto", + "block.mineralogy.schist_smooth_wall": "Muro polido de Xisto", + "block.mineralogy.schist_smooth_brick_wall": "Muro de tijolos polidos de Xisto", + "block.mineralogy.gneiss_wall": "Muro de Gnaisse", + "block.mineralogy.gneiss_brick_wall": "Muro de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth_wall": "Muro polido de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_wall": "Muro de tijolos polidos de Gnaisse", + "block.mineralogy.phyllite_wall": "Muro de Filito", + "block.mineralogy.phyllite_brick_wall": "Muro de tijolos de Filito", + "block.mineralogy.phyllite_smooth_wall": "Muro polido de Filito", + "block.mineralogy.phyllite_smooth_brick_wall": "Muro de tijolos polidos de Filito", + "block.mineralogy.amphibolite_wall": "Muro de Anfibolito", + "block.mineralogy.amphibolite_brick_wall": "Muro de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth_wall": "Muro polido de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muro de tijolos polidos de Anfibolito", + "block.mineralogy.andesite_furnace": "Fornalha de Andesito", + "block.mineralogy.andesite_brick_furnace": "Fornalha de tijolos de Andesito", + "block.mineralogy.andesite_smooth_furnace": "Fornalha polida de Andesito", + "block.mineralogy.andesite_smooth_brick_furnace": "Fornalha de tijolos polidos de Andesito", + "block.mineralogy.basalt_furnace": "Fornalha de Basalto", + "block.mineralogy.basalt_brick_furnace": "Fornalha de tijolos de Basalto", + "block.mineralogy.basalt_smooth_furnace": "Fornalha polida de Basalto", + "block.mineralogy.basalt_smooth_brick_furnace": "Fornalha de tijolos polidos de Basalto", + "block.mineralogy.diorite_furnace": "Fornalha de Diorito", + "block.mineralogy.diorite_brick_furnace": "Fornalha de tijolos de Diorito", + "block.mineralogy.diorite_smooth_furnace": "Fornalha polida de Diorito", + "block.mineralogy.diorite_smooth_brick_furnace": "Fornalha de tijolos polidos de Diorito", + "block.mineralogy.granite_furnace": "Fornalha de Granito", + "block.mineralogy.granite_brick_furnace": "Fornalha de tijolos de Granito", + "block.mineralogy.granite_smooth_furnace": "Fornalha polida de Granito", + "block.mineralogy.granite_smooth_brick_furnace": "Fornalha de tijolos polidos de Granito", + "block.mineralogy.rhyolite_furnace": "Fornalha de Riolito", + "block.mineralogy.rhyolite_brick_furnace": "Fornalha de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth_furnace": "Fornalha polida de Riolito", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Fornalha de tijolos polidos de Riolito", + "block.mineralogy.pegmatite_furnace": "Fornalha de Pegmatito", + "block.mineralogy.pegmatite_brick_furnace": "Fornalha de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth_furnace": "Fornalha polida de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Fornalha de tijolos polidos de Pegmatito", + "block.mineralogy.shale_furnace": "Fornalha de Folhelho", + "block.mineralogy.shale_brick_furnace": "Fornalha de tijolos de Folhelho", + "block.mineralogy.shale_smooth_furnace": "Fornalha polida de Folhelho", + "block.mineralogy.shale_smooth_brick_furnace": "Fornalha de tijolos polidos de Folhelho", + "block.mineralogy.conglomerate_furnace": "Fornalha de Conglomerado", + "block.mineralogy.conglomerate_brick_furnace": "Fornalha de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth_furnace": "Fornalha polida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Fornalha de tijolos polidos de Conglomerado", + "block.mineralogy.dolomite_furnace": "Fornalha de Dolomita", + "block.mineralogy.dolomite_brick_furnace": "Fornalha de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth_furnace": "Fornalha polida de Dolomita", + "block.mineralogy.dolomite_smooth_brick_furnace": "Fornalha de tijolos polidos de Dolomita", + "block.mineralogy.limestone_furnace": "Fornalha de Calcário", + "block.mineralogy.limestone_brick_furnace": "Fornalha de tijolos de Calcário", + "block.mineralogy.limestone_smooth_furnace": "Fornalha polida de Calcário", + "block.mineralogy.limestone_smooth_brick_furnace": "Fornalha de tijolos polidos de Calcário", + "block.mineralogy.marble_furnace": "Fornalha de Mármore", + "block.mineralogy.marble_brick_furnace": "Fornalha de tijolos de Mármore", + "block.mineralogy.marble_smooth_furnace": "Fornalha polida de Mármore", + "block.mineralogy.marble_smooth_brick_furnace": "Fornalha de tijolos polidos de Mármore", + "block.mineralogy.slate_furnace": "Fornalha de Ardósia", + "block.mineralogy.slate_brick_furnace": "Fornalha de tijolos de Ardósia", + "block.mineralogy.slate_smooth_furnace": "Fornalha polida de Ardósia", + "block.mineralogy.slate_smooth_brick_furnace": "Fornalha de tijolos polidos de Ardósia", + "block.mineralogy.schist_furnace": "Fornalha de Xisto", + "block.mineralogy.schist_brick_furnace": "Fornalha de tijolos de Xisto", + "block.mineralogy.schist_smooth_furnace": "Fornalha polida de Xisto", + "block.mineralogy.schist_smooth_brick_furnace": "Fornalha de tijolos polidos de Xisto", + "block.mineralogy.gneiss_furnace": "Fornalha de Gnaisse", + "block.mineralogy.gneiss_brick_furnace": "Fornalha de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth_furnace": "Fornalha polida de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_furnace": "Fornalha de tijolos polidos de Gnaisse", + "block.mineralogy.phyllite_furnace": "Fornalha de Filito", + "block.mineralogy.phyllite_brick_furnace": "Fornalha de tijolos de Filito", + "block.mineralogy.phyllite_smooth_furnace": "Fornalha polida de Filito", + "block.mineralogy.phyllite_smooth_brick_furnace": "Fornalha de tijolos polidos de Filito", + "block.mineralogy.amphibolite_furnace": "Fornalha de Anfibolito", + "block.mineralogy.amphibolite_brick_furnace": "Fornalha de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth_furnace": "Fornalha polida de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Fornalha de tijolos polidos de Anfibolito", "block.mineralogy.diabase": "Diabásio", - "block.mineralogy.diabase_stairs": "Escada de Diabásio", + "block.mineralogy.diabase_stairs": "Escadas de Diabásio", "block.mineralogy.diabase_slab": "Laje de Diabásio", - "block.mineralogy.diabase_brick": "Tijolo de Diabásio", - "block.mineralogy.diabase_brick_stairs": "Escadas de tijolos de diabásio", - "block.mineralogy.diabase_brick_slab": "Laje de tijolo de diabásio", - "block.mineralogy.diabase_smooth": "Diabásio Polido", - "block.mineralogy.diabase_smooth_stairs": "Escada polida em diabásio", - "block.mineralogy.diabase_smooth_slab": "Laje Polida de Diabásio", - "block.mineralogy.diabase_smooth_brick": "Tijolo polido de diabásio", - "block.mineralogy.diabase_smooth_brick_stairs": "Escadas de tijolo polido de diabásio", - "block.mineralogy.diabase_smooth_brick_slab": "Laje de tijolo polido de diabásio", - "block.mineralogy.diabase_wall": "Parede de Diabásio", - "block.mineralogy.diabase_brick_wall": "Parede de tijolos de diabásio", - "block.mineralogy.diabase_smooth_wall": "Parede Polida Diabásio", - "block.mineralogy.diabase_smooth_brick_wall": "Parede de Tijolo Polido Diabásio", - "block.mineralogy.diabase_furnace": "Forno de Diabásio", - "block.mineralogy.diabase_brick_furnace": "Forno de tijolos de diabásio", - "block.mineralogy.diabase_smooth_furnace": "Forno Polido de Diabásio", - "block.mineralogy.diabase_smooth_brick_furnace": "Forno de tijolo polido de diabásio", + "block.mineralogy.diabase_brick": "Tijolos de Diabásio", + "block.mineralogy.diabase_brick_stairs": "Escadas de tijolos de Diabásio", + "block.mineralogy.diabase_brick_slab": "Laje de tijolos de Diabásio", + "block.mineralogy.diabase_smooth": "Bloco polido de Diabásio", + "block.mineralogy.diabase_smooth_stairs": "Escadas polidas de Diabásio", + "block.mineralogy.diabase_smooth_slab": "Laje polida de Diabásio", + "block.mineralogy.diabase_smooth_brick": "Tijolos polidos de Diabásio", + "block.mineralogy.diabase_smooth_brick_stairs": "Escadas de tijolos polidos de Diabásio", + "block.mineralogy.diabase_smooth_brick_slab": "Laje de tijolos polidos de Diabásio", + "block.mineralogy.diabase_wall": "Muro de Diabásio", + "block.mineralogy.diabase_brick_wall": "Muro de tijolos de Diabásio", + "block.mineralogy.diabase_smooth_wall": "Muro polido de Diabásio", + "block.mineralogy.diabase_smooth_brick_wall": "Muro de tijolos polidos de Diabásio", + "block.mineralogy.diabase_furnace": "Fornalha de Diabásio", + "block.mineralogy.diabase_brick_furnace": "Fornalha de tijolos de Diabásio", + "block.mineralogy.diabase_smooth_furnace": "Fornalha polida de Diabásio", + "block.mineralogy.diabase_smooth_brick_furnace": "Fornalha de tijolos polidos de Diabásio", "block.mineralogy.gabbro": "Gabro", - "block.mineralogy.gabbro_stairs": "Escada Gabbro", + "block.mineralogy.gabbro_stairs": "Escadas de Gabro", "block.mineralogy.gabbro_slab": "Laje de Gabro", - "block.mineralogy.gabbro_brick": "Tijolo Gabro", - "block.mineralogy.gabbro_brick_stairs": "Escadas de tijolo Gabbro", - "block.mineralogy.gabbro_brick_slab": "Laje de tijolo Gabbro", - "block.mineralogy.gabbro_smooth": "Gabro Polido", - "block.mineralogy.gabbro_smooth_stairs": "Escadas Polidas Gabbro", - "block.mineralogy.gabbro_smooth_slab": "Laje Polida Gabbro", - "block.mineralogy.gabbro_smooth_brick": "Tijolo Polido Gabbro", - "block.mineralogy.gabbro_smooth_brick_stairs": "Escadas de tijolo polido Gabbro", - "block.mineralogy.gabbro_smooth_brick_slab": "Laje de tijolo polido Gabbro", - "block.mineralogy.gabbro_wall": "Parede de Gabro", - "block.mineralogy.gabbro_brick_wall": "Parede de tijolos gabro", - "block.mineralogy.gabbro_smooth_wall": "Parede Polida Gabbro", - "block.mineralogy.gabbro_smooth_brick_wall": "Parede de tijolo polido Gabbro", - "block.mineralogy.gabbro_furnace": "Forno Gabro", - "block.mineralogy.gabbro_brick_furnace": "Forno de tijolos Gabbro", - "block.mineralogy.gabbro_smooth_furnace": "Forno Polido Gabro", - "block.mineralogy.gabbro_smooth_brick_furnace": "Forno de tijolo polido Gabbro", + "block.mineralogy.gabbro_brick": "Tijolos de Gabro", + "block.mineralogy.gabbro_brick_stairs": "Escadas de tijolos de Gabro", + "block.mineralogy.gabbro_brick_slab": "Laje de tijolos de Gabro", + "block.mineralogy.gabbro_smooth": "Bloco polido de Gabro", + "block.mineralogy.gabbro_smooth_stairs": "Escadas polidas de Gabro", + "block.mineralogy.gabbro_smooth_slab": "Laje polida de Gabro", + "block.mineralogy.gabbro_smooth_brick": "Tijolos polidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escadas de tijolos polidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_slab": "Laje de tijolos polidos de Gabro", + "block.mineralogy.gabbro_wall": "Muro de Gabro", + "block.mineralogy.gabbro_brick_wall": "Muro de tijolos de Gabro", + "block.mineralogy.gabbro_smooth_wall": "Muro polido de Gabro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muro de tijolos polidos de Gabro", + "block.mineralogy.gabbro_furnace": "Fornalha de Gabro", + "block.mineralogy.gabbro_brick_furnace": "Fornalha de tijolos de Gabro", + "block.mineralogy.gabbro_smooth_furnace": "Fornalha polida de Gabro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Fornalha de tijolos polidos de Gabro", "block.mineralogy.peridotite": "Peridotito", - "block.mineralogy.peridotite_stairs": "Escadas de Peridotita", - "block.mineralogy.peridotite_slab": "Laje de Peridotita", - "block.mineralogy.peridotite_brick": "Tijolo Peridotita", - "block.mineralogy.peridotite_brick_stairs": "Escadas de tijolos de peridotita", - "block.mineralogy.peridotite_brick_slab": "Laje de tijolo de peridotita", - "block.mineralogy.peridotite_smooth": "Peridotita Polida", - "block.mineralogy.peridotite_smooth_stairs": "Escadas polidas com peridotita", - "block.mineralogy.peridotite_smooth_slab": "Laje Polida de Peridotita", - "block.mineralogy.peridotite_smooth_brick": "Tijolo Polido Peridotita", - "block.mineralogy.peridotite_smooth_brick_stairs": "Escadas de tijolo polido com peridotita", - "block.mineralogy.peridotite_smooth_brick_slab": "Laje de tijolo polido com peridotita", - "block.mineralogy.peridotite_wall": "Parede de Peridotita", - "block.mineralogy.peridotite_brick_wall": "Parede de tijolos de peridotita", - "block.mineralogy.peridotite_smooth_wall": "Parede Polida Peridotita", - "block.mineralogy.peridotite_smooth_brick_wall": "Parede de tijolo polido com peridotita", - "block.mineralogy.peridotite_furnace": "Forno de Peridotita", - "block.mineralogy.peridotite_brick_furnace": "Forno de tijolos de peridotita", - "block.mineralogy.peridotite_smooth_furnace": "Forno Polido de Peridotita", - "block.mineralogy.peridotite_smooth_brick_furnace": "Forno de tijolo polido de peridotita", - "block.mineralogy.basaltic_glass": "Vidro Basáltico", - "block.mineralogy.basaltic_glass_stairs": "Escadas de vidro basáltico", - "block.mineralogy.basaltic_glass_slab": "Laje de vidro basáltico", - "block.mineralogy.basaltic_glass_brick": "Tijolo de vidro basáltico", - "block.mineralogy.basaltic_glass_brick_stairs": "Escadas de tijolos de vidro basáltico", - "block.mineralogy.basaltic_glass_brick_slab": "Laje de tijolo de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth": "Vidro Basáltico Polido", - "block.mineralogy.basaltic_glass_smooth_stairs": "Escadas polidas de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_slab": "Laje polida de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_brick": "Tijolo polido de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escadas de tijolo polido de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Laje de tijolo polido de vidro basáltico", - "block.mineralogy.basaltic_glass_wall": "Parede de vidro basáltico", - "block.mineralogy.basaltic_glass_brick_wall": "Parede de tijolos de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_wall": "Parede polida de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Parede de tijolo polido de vidro basáltico", - "block.mineralogy.basaltic_glass_furnace": "Forno de vidro basáltico", - "block.mineralogy.basaltic_glass_brick_furnace": "Forno de tijolo de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_furnace": "Forno polido de vidro basáltico", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Forno de tijolo polido de vidro basáltico", + "block.mineralogy.peridotite_stairs": "Escadas de Peridotito", + "block.mineralogy.peridotite_slab": "Laje de Peridotito", + "block.mineralogy.peridotite_brick": "Tijolos de Peridotito", + "block.mineralogy.peridotite_brick_stairs": "Escadas de tijolos de Peridotito", + "block.mineralogy.peridotite_brick_slab": "Laje de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth": "Bloco polido de Peridotito", + "block.mineralogy.peridotite_smooth_stairs": "Escadas polidas de Peridotito", + "block.mineralogy.peridotite_smooth_slab": "Laje polida de Peridotito", + "block.mineralogy.peridotite_smooth_brick": "Tijolos polidos de Peridotito", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escadas de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_smooth_brick_slab": "Laje de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_wall": "Muro de Peridotito", + "block.mineralogy.peridotite_brick_wall": "Muro de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth_wall": "Muro polido de Peridotito", + "block.mineralogy.peridotite_smooth_brick_wall": "Muro de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_furnace": "Fornalha de Peridotito", + "block.mineralogy.peridotite_brick_furnace": "Fornalha de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth_furnace": "Fornalha polida de Peridotito", + "block.mineralogy.peridotite_smooth_brick_furnace": "Fornalha de tijolos polidos de Peridotito", + "block.mineralogy.basaltic_glass": "Vidro basáltico", + "block.mineralogy.basaltic_glass_stairs": "Escadas de Vidro basáltico", + "block.mineralogy.basaltic_glass_slab": "Laje de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick": "Tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_stairs": "Escadas de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_slab": "Laje de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth": "Bloco polido de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escadas polidas de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_slab": "Laje polida de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick": "Tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escadas de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Laje de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_wall": "Muro de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_wall": "Muro de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_wall": "Muro polido de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muro de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_furnace": "Fornalha de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_furnace": "Fornalha de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_furnace": "Fornalha polida de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Fornalha de tijolos polidos de Vidro basáltico", "block.mineralogy.scoria": "Escória", "block.mineralogy.scoria_stairs": "Escadas de Escória", "block.mineralogy.scoria_slab": "Laje de Escória", - "block.mineralogy.scoria_brick": "Tijolo Escoria", - "block.mineralogy.scoria_brick_stairs": "Escadas de tijolos Scoria", - "block.mineralogy.scoria_brick_slab": "Laje de tijolo Scoria", - "block.mineralogy.scoria_smooth": "Escória Polida", - "block.mineralogy.scoria_smooth_stairs": "Escadas Polidas Scoria", - "block.mineralogy.scoria_smooth_slab": "Laje Polida Scoria", - "block.mineralogy.scoria_smooth_brick": "Tijolo polido Scoria", - "block.mineralogy.scoria_smooth_brick_stairs": "Escadas de tijolo polido Scoria", - "block.mineralogy.scoria_smooth_brick_slab": "Laje de tijolo polido Scoria", - "block.mineralogy.scoria_wall": "Parede de Escória", - "block.mineralogy.scoria_brick_wall": "Parede de tijolos de Scoria", - "block.mineralogy.scoria_smooth_wall": "Parede Polida Scoria", - "block.mineralogy.scoria_smooth_brick_wall": "Parede de tijolo polido Scoria", - "block.mineralogy.scoria_furnace": "Forno Scoria", - "block.mineralogy.scoria_brick_furnace": "Forno de tijolos Scoria", - "block.mineralogy.scoria_smooth_furnace": "Forno Polido Scoria", - "block.mineralogy.scoria_smooth_brick_furnace": "Forno de tijolo polido Scoria", + "block.mineralogy.scoria_brick": "Tijolos de Escória", + "block.mineralogy.scoria_brick_stairs": "Escadas de tijolos de Escória", + "block.mineralogy.scoria_brick_slab": "Laje de tijolos de Escória", + "block.mineralogy.scoria_smooth": "Bloco polido de Escória", + "block.mineralogy.scoria_smooth_stairs": "Escadas polidas de Escória", + "block.mineralogy.scoria_smooth_slab": "Laje polida de Escória", + "block.mineralogy.scoria_smooth_brick": "Tijolos polidos de Escória", + "block.mineralogy.scoria_smooth_brick_stairs": "Escadas de tijolos polidos de Escória", + "block.mineralogy.scoria_smooth_brick_slab": "Laje de tijolos polidos de Escória", + "block.mineralogy.scoria_wall": "Muro de Escória", + "block.mineralogy.scoria_brick_wall": "Muro de tijolos de Escória", + "block.mineralogy.scoria_smooth_wall": "Muro polido de Escória", + "block.mineralogy.scoria_smooth_brick_wall": "Muro de tijolos polidos de Escória", + "block.mineralogy.scoria_furnace": "Fornalha de Escória", + "block.mineralogy.scoria_brick_furnace": "Fornalha de tijolos de Escória", + "block.mineralogy.scoria_smooth_furnace": "Fornalha polida de Escória", + "block.mineralogy.scoria_smooth_brick_furnace": "Fornalha de tijolos polidos de Escória", "block.mineralogy.tuff": "Tufo", - "block.mineralogy.tuff_stairs": "Escadas de tufo", - "block.mineralogy.tuff_slab": "Laje de tufo", - "block.mineralogy.tuff_brick": "Tijolo de tufo", - "block.mineralogy.tuff_brick_stairs": "Escadas de tijolo tufo", - "block.mineralogy.tuff_brick_slab": "Laje de tijolo tufo", - "block.mineralogy.tuff_smooth": "Tufo Polido", - "block.mineralogy.tuff_smooth_stairs": "Escadas de tufo polido", - "block.mineralogy.tuff_smooth_slab": "Laje polida de tufo", - "block.mineralogy.tuff_smooth_brick": "Tijolo polido tufo", - "block.mineralogy.tuff_smooth_brick_stairs": "Escadas de tijolo polido", - "block.mineralogy.tuff_smooth_brick_slab": "Laje de tijolo polido de tufo", - "block.mineralogy.tuff_wall": "Parede de tufo", - "block.mineralogy.tuff_brick_wall": "Parede de tijolos de tufo", - "block.mineralogy.tuff_smooth_wall": "Parede polida de tufo", - "block.mineralogy.tuff_smooth_brick_wall": "Parede de tijolo polido tufo", - "block.mineralogy.tuff_furnace": "Forno de tufo", - "block.mineralogy.tuff_brick_furnace": "Forno de tijolo tufo", - "block.mineralogy.tuff_smooth_furnace": "Forno de tufo polido", - "block.mineralogy.tuff_smooth_brick_furnace": "Forno de tijolo polido de tufo", + "block.mineralogy.tuff_stairs": "Escadas de Tufo", + "block.mineralogy.tuff_slab": "Laje de Tufo", + "block.mineralogy.tuff_brick": "Tijolos de Tufo", + "block.mineralogy.tuff_brick_stairs": "Escadas de tijolos de Tufo", + "block.mineralogy.tuff_brick_slab": "Laje de tijolos de Tufo", + "block.mineralogy.tuff_smooth": "Bloco polido de Tufo", + "block.mineralogy.tuff_smooth_stairs": "Escadas polidas de Tufo", + "block.mineralogy.tuff_smooth_slab": "Laje polida de Tufo", + "block.mineralogy.tuff_smooth_brick": "Tijolos polidos de Tufo", + "block.mineralogy.tuff_smooth_brick_stairs": "Escadas de tijolos polidos de Tufo", + "block.mineralogy.tuff_smooth_brick_slab": "Laje de tijolos polidos de Tufo", + "block.mineralogy.tuff_wall": "Muro de Tufo", + "block.mineralogy.tuff_brick_wall": "Muro de tijolos de Tufo", + "block.mineralogy.tuff_smooth_wall": "Muro polido de Tufo", + "block.mineralogy.tuff_smooth_brick_wall": "Muro de tijolos polidos de Tufo", + "block.mineralogy.tuff_furnace": "Fornalha de Tufo", + "block.mineralogy.tuff_brick_furnace": "Fornalha de tijolos de Tufo", + "block.mineralogy.tuff_smooth_furnace": "Fornalha polida de Tufo", + "block.mineralogy.tuff_smooth_brick_furnace": "Fornalha de tijolos polidos de Tufo", "block.mineralogy.siltstone": "Siltito", - "block.mineralogy.siltstone_stairs": "Escadas de Siltstone", - "block.mineralogy.siltstone_slab": "Laje de siltito", - "block.mineralogy.siltstone_brick": "Tijolo de Siltstone", - "block.mineralogy.siltstone_brick_stairs": "Escadas de tijolos de siltstone", - "block.mineralogy.siltstone_brick_slab": "Laje de tijolo de siltito", - "block.mineralogy.siltstone_smooth": "Siltito Polido", - "block.mineralogy.siltstone_smooth_stairs": "Escadas Polidas de Siltstone", - "block.mineralogy.siltstone_smooth_slab": "Laje Polida de Siltstone", - "block.mineralogy.siltstone_smooth_brick": "Tijolo Polido de Siltstone", - "block.mineralogy.siltstone_smooth_brick_stairs": "Escadas de tijolo polido de siltstone", - "block.mineralogy.siltstone_smooth_brick_slab": "Laje de tijolo polido de siltito", - "block.mineralogy.siltstone_wall": "Parede de Siltito", - "block.mineralogy.siltstone_brick_wall": "Parede de tijolos de siltito", - "block.mineralogy.siltstone_smooth_wall": "Parede Polida de Siltstone", - "block.mineralogy.siltstone_smooth_brick_wall": "Parede de tijolo polido de siltstone", - "block.mineralogy.siltstone_furnace": "Forno de siltito", - "block.mineralogy.siltstone_brick_furnace": "Forno de tijolos de siltito", - "block.mineralogy.siltstone_smooth_furnace": "Forno Polido de Siltstone", - "block.mineralogy.siltstone_smooth_brick_furnace": "Forno de tijolo polido de siltstone", + "block.mineralogy.siltstone_stairs": "Escadas de Siltito", + "block.mineralogy.siltstone_slab": "Laje de Siltito", + "block.mineralogy.siltstone_brick": "Tijolos de Siltito", + "block.mineralogy.siltstone_brick_stairs": "Escadas de tijolos de Siltito", + "block.mineralogy.siltstone_brick_slab": "Laje de tijolos de Siltito", + "block.mineralogy.siltstone_smooth": "Bloco polido de Siltito", + "block.mineralogy.siltstone_smooth_stairs": "Escadas polidas de Siltito", + "block.mineralogy.siltstone_smooth_slab": "Laje polida de Siltito", + "block.mineralogy.siltstone_smooth_brick": "Tijolos polidos de Siltito", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escadas de tijolos polidos de Siltito", + "block.mineralogy.siltstone_smooth_brick_slab": "Laje de tijolos polidos de Siltito", + "block.mineralogy.siltstone_wall": "Muro de Siltito", + "block.mineralogy.siltstone_brick_wall": "Muro de tijolos de Siltito", + "block.mineralogy.siltstone_smooth_wall": "Muro polido de Siltito", + "block.mineralogy.siltstone_smooth_brick_wall": "Muro de tijolos polidos de Siltito", + "block.mineralogy.siltstone_furnace": "Fornalha de Siltito", + "block.mineralogy.siltstone_brick_furnace": "Fornalha de tijolos de Siltito", + "block.mineralogy.siltstone_smooth_furnace": "Fornalha polida de Siltito", + "block.mineralogy.siltstone_smooth_brick_furnace": "Fornalha de tijolos polidos de Siltito", "block.mineralogy.rock_salt": "Sal-gema", - "block.mineralogy.rock_salt_stairs": "Escadas de sal-gema", - "block.mineralogy.rock_salt_slab": "Laje de sal-gema", - "block.mineralogy.rock_salt_brick": "Tijolo de sal-gema", - "block.mineralogy.rock_salt_brick_stairs": "Escadas de tijolos de sal-gema", - "block.mineralogy.rock_salt_brick_slab": "Laje de tijolo de sal-gema", - "block.mineralogy.rock_salt_smooth": "Sal-gema polido", - "block.mineralogy.rock_salt_smooth_stairs": "Escadas polidas com sal-gema", - "block.mineralogy.rock_salt_smooth_slab": "Laje polida de sal-gema", - "block.mineralogy.rock_salt_smooth_brick": "Tijolo polido de sal-gema", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Escadas de tijolo polido com sal-gema", - "block.mineralogy.rock_salt_smooth_brick_slab": "Laje de tijolo polido com sal-gema", - "block.mineralogy.rock_salt_wall": "Parede de sal-gema", - "block.mineralogy.rock_salt_brick_wall": "Parede de tijolos de sal-gema", - "block.mineralogy.rock_salt_smooth_wall": "Parede polida com sal-gema", - "block.mineralogy.rock_salt_smooth_brick_wall": "Parede de tijolo polido com sal-gema", - "block.mineralogy.rock_salt_furnace": "Forno de sal-gema", - "block.mineralogy.rock_salt_brick_furnace": "Forno de tijolos de sal-gema", - "block.mineralogy.rock_salt_smooth_furnace": "Forno polido de sal-gema", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Forno de tijolo polido com sal-gema", - "block.mineralogy.hornfels": "Hornfels", - "block.mineralogy.hornfels_stairs": "Escadas Hornfels", - "block.mineralogy.hornfels_slab": "Laje Hornfels", - "block.mineralogy.hornfels_brick": "Tijolo Hornfels", - "block.mineralogy.hornfels_brick_stairs": "Escadas de tijolos Hornfels", - "block.mineralogy.hornfels_brick_slab": "Laje de tijolo Hornfels", - "block.mineralogy.hornfels_smooth": "Hornfels polidos", - "block.mineralogy.hornfels_smooth_stairs": "Escadas Polidas Hornfels", - "block.mineralogy.hornfels_smooth_slab": "Laje Polida Hornfels", - "block.mineralogy.hornfels_smooth_brick": "Tijolo Polido Hornfels", - "block.mineralogy.hornfels_smooth_brick_stairs": "Escadas de tijolo polido Hornfels", - "block.mineralogy.hornfels_smooth_brick_slab": "Laje de tijolo polido Hornfels", - "block.mineralogy.hornfels_wall": "Muralha de Hornfels", - "block.mineralogy.hornfels_brick_wall": "Parede de tijolos Hornfels", - "block.mineralogy.hornfels_smooth_wall": "Parede Polida Hornfels", - "block.mineralogy.hornfels_smooth_brick_wall": "Parede de tijolo polido Hornfels", - "block.mineralogy.hornfels_furnace": "Forno Hornfels", - "block.mineralogy.hornfels_brick_furnace": "Forno de tijolos Hornfels", - "block.mineralogy.hornfels_smooth_furnace": "Forno Polido Hornfels", - "block.mineralogy.hornfels_smooth_brick_furnace": "Forno de tijolo polido Hornfels", + "block.mineralogy.rock_salt_stairs": "Escadas de Sal-gema", + "block.mineralogy.rock_salt_slab": "Laje de Sal-gema", + "block.mineralogy.rock_salt_brick": "Tijolos de Sal-gema", + "block.mineralogy.rock_salt_brick_stairs": "Escadas de tijolos de Sal-gema", + "block.mineralogy.rock_salt_brick_slab": "Laje de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth": "Bloco polido de Sal-gema", + "block.mineralogy.rock_salt_smooth_stairs": "Escadas polidas de Sal-gema", + "block.mineralogy.rock_salt_smooth_slab": "Laje polida de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick": "Tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escadas de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_slab": "Laje de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_wall": "Muro de Sal-gema", + "block.mineralogy.rock_salt_brick_wall": "Muro de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth_wall": "Muro polido de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muro de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_furnace": "Fornalha de Sal-gema", + "block.mineralogy.rock_salt_brick_furnace": "Fornalha de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth_furnace": "Fornalha polida de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Fornalha de tijolos polidos de Sal-gema", + "block.mineralogy.hornfels": "Cornubianito", + "block.mineralogy.hornfels_stairs": "Escadas de Cornubianito", + "block.mineralogy.hornfels_slab": "Laje de Cornubianito", + "block.mineralogy.hornfels_brick": "Tijolos de Cornubianito", + "block.mineralogy.hornfels_brick_stairs": "Escadas de tijolos de Cornubianito", + "block.mineralogy.hornfels_brick_slab": "Laje de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth": "Bloco polido de Cornubianito", + "block.mineralogy.hornfels_smooth_stairs": "Escadas polidas de Cornubianito", + "block.mineralogy.hornfels_smooth_slab": "Laje polida de Cornubianito", + "block.mineralogy.hornfels_smooth_brick": "Tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escadas de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_slab": "Laje de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_wall": "Muro de Cornubianito", + "block.mineralogy.hornfels_brick_wall": "Muro de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth_wall": "Muro polido de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_wall": "Muro de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_furnace": "Fornalha de Cornubianito", + "block.mineralogy.hornfels_brick_furnace": "Fornalha de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth_furnace": "Fornalha polida de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_furnace": "Fornalha de tijolos polidos de Cornubianito", "block.mineralogy.quartzite": "Quartzito", "block.mineralogy.quartzite_stairs": "Escadas de Quartzito", "block.mineralogy.quartzite_slab": "Laje de Quartzito", - "block.mineralogy.quartzite_brick": "Tijolo de Quartzito", - "block.mineralogy.quartzite_brick_stairs": "Escadas de tijolos de quartzito", - "block.mineralogy.quartzite_brick_slab": "Laje de tijolo de quartzito", - "block.mineralogy.quartzite_smooth": "Quartzito Polido", - "block.mineralogy.quartzite_smooth_stairs": "Escadas Polidas em Quartzito", - "block.mineralogy.quartzite_smooth_slab": "Laje Polida de Quartzito", - "block.mineralogy.quartzite_smooth_brick": "Tijolo polido de quartzito", - "block.mineralogy.quartzite_smooth_brick_stairs": "Escadas de tijolo polido de quartzito", - "block.mineralogy.quartzite_smooth_brick_slab": "Laje de tijolo polido de quartzito", - "block.mineralogy.quartzite_wall": "Parede de Quartzito", - "block.mineralogy.quartzite_brick_wall": "Parede de tijolos de quartzito", - "block.mineralogy.quartzite_smooth_wall": "Parede Polida de Quartzito", - "block.mineralogy.quartzite_smooth_brick_wall": "Parede de tijolo polido de quartzito", - "block.mineralogy.quartzite_furnace": "Forno de Quartzito", - "block.mineralogy.quartzite_brick_furnace": "Forno de tijolos de quartzito", - "block.mineralogy.quartzite_smooth_furnace": "Forno Polido de Quartzito", - "block.mineralogy.quartzite_smooth_brick_furnace": "Forno de tijolo polido de quartzito", + "block.mineralogy.quartzite_brick": "Tijolos de Quartzito", + "block.mineralogy.quartzite_brick_stairs": "Escadas de tijolos de Quartzito", + "block.mineralogy.quartzite_brick_slab": "Laje de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth": "Bloco polido de Quartzito", + "block.mineralogy.quartzite_smooth_stairs": "Escadas polidas de Quartzito", + "block.mineralogy.quartzite_smooth_slab": "Laje polida de Quartzito", + "block.mineralogy.quartzite_smooth_brick": "Tijolos polidos de Quartzito", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escadas de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_smooth_brick_slab": "Laje de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_wall": "Muro de Quartzito", + "block.mineralogy.quartzite_brick_wall": "Muro de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth_wall": "Muro polido de Quartzito", + "block.mineralogy.quartzite_smooth_brick_wall": "Muro de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_furnace": "Fornalha de Quartzito", + "block.mineralogy.quartzite_brick_furnace": "Fornalha de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth_furnace": "Fornalha polida de Quartzito", + "block.mineralogy.quartzite_smooth_brick_furnace": "Fornalha de tijolos polidos de Quartzito", "block.mineralogy.novaculite": "Novaculita", - "block.mineralogy.novaculite_stairs": "Escada Novaculita", + "block.mineralogy.novaculite_stairs": "Escadas de Novaculita", "block.mineralogy.novaculite_slab": "Laje de Novaculita", - "block.mineralogy.novaculite_brick": "Tijolo Novaculita", - "block.mineralogy.novaculite_brick_stairs": "Escadas de Tijolo Novaculite", - "block.mineralogy.novaculite_brick_slab": "Laje de Tijolo Novaculita", - "block.mineralogy.novaculite_smooth": "Novaculita Polida", - "block.mineralogy.novaculite_smooth_stairs": "Escadas Polidas Novaculite", - "block.mineralogy.novaculite_smooth_slab": "Laje Polida Novaculite", - "block.mineralogy.novaculite_smooth_brick": "Tijolo Polido Novaculita", - "block.mineralogy.novaculite_smooth_brick_stairs": "Escadas de tijolo polido Novaculite", - "block.mineralogy.novaculite_smooth_brick_slab": "Laje de tijolo polido Novaculite", - "block.mineralogy.novaculite_wall": "Parede de Novaculita", - "block.mineralogy.novaculite_brick_wall": "Parede de Tijolos Novaculita", - "block.mineralogy.novaculite_smooth_wall": "Parede Polida Novaculite", - "block.mineralogy.novaculite_smooth_brick_wall": "Parede de tijolo polido Novaculite", - "block.mineralogy.novaculite_furnace": "Forno Novaculita", - "block.mineralogy.novaculite_brick_furnace": "Forno de tijolos de novaculita", - "block.mineralogy.novaculite_smooth_furnace": "Forno Polido Novaculite", - "block.mineralogy.novaculite_smooth_brick_furnace": "Forno de tijolo polido Novaculite", + "block.mineralogy.novaculite_brick": "Tijolos de Novaculita", + "block.mineralogy.novaculite_brick_stairs": "Escadas de tijolos de Novaculita", + "block.mineralogy.novaculite_brick_slab": "Laje de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth": "Bloco polido de Novaculita", + "block.mineralogy.novaculite_smooth_stairs": "Escadas polidas de Novaculita", + "block.mineralogy.novaculite_smooth_slab": "Laje polida de Novaculita", + "block.mineralogy.novaculite_smooth_brick": "Tijolos polidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escadas de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_slab": "Laje de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_wall": "Muro de Novaculita", + "block.mineralogy.novaculite_brick_wall": "Muro de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth_wall": "Muro polido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_wall": "Muro de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_furnace": "Fornalha de Novaculita", + "block.mineralogy.novaculite_brick_furnace": "Fornalha de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth_furnace": "Fornalha polida de Novaculita", + "block.mineralogy.novaculite_smooth_brick_furnace": "Fornalha de tijolos polidos de Novaculita", "block.mineralogy.chalk": "Giz", - "item.mineralogy.chalk_dust": "Giz em Pó", + "item.mineralogy.chalk_dust": "Pó de giz", "item.mineralogy.salt_dust": "Sal", "item.mineralogy.rock_salt_dust": "Cristais de sal-gema", - "block.mineralogy.rocksaltlamp": "Lâmpada de sal-gema", - "block.mineralogy.rocksaltstreetlamp": "Lâmpada de rua de sal-gema", - "block.mineralogy.andesite_relief_axe": "Alívio de Machado de Andesito", - "block.mineralogy.andesite_relief_blank": "Relevo em branco do andesito", - "block.mineralogy.andesite_relief_cross": "Relevo Cruzado Andesito", - "block.mineralogy.andesite_relief_hammer": "Alívio do Martelo Andesito", - "block.mineralogy.andesite_relief_hoe": "Alívio da enxada andesita", - "block.mineralogy.andesite_relief_horizontal": "Relevo Horizontal Andesítico", - "block.mineralogy.andesite_relief_i": "Andesito I Relevo", - "block.mineralogy.andesite_relief_left": "Relevo Andesito Esquerdo", - "block.mineralogy.andesite_relief_pickaxe": "Alívio de Picareta Andesita", - "block.mineralogy.andesite_relief_plus": "Andesita Plus Alívio", - "block.mineralogy.andesite_relief_right": "Relevo Andesito Direito", - "block.mineralogy.andesite_relief_sword": "Relevo da Espada Andesita", - "block.mineralogy.andesite_relief_vertical": "Relevo Vertical Andesítico", - "block.mineralogy.basalt_relief_axe": "Alívio de machado de basalto", - "block.mineralogy.basalt_relief_blank": "Relevo em branco de basalto", - "block.mineralogy.basalt_relief_cross": "Relevo Cruzado de Basalto", - "block.mineralogy.basalt_relief_hammer": "Relevo do martelo de basalto", - "block.mineralogy.basalt_relief_hoe": "Relevo de enxada de basalto", - "block.mineralogy.basalt_relief_horizontal": "Relevo Horizontal Basáltico", - "block.mineralogy.basalt_relief_i": "Basalto I Relevo", - "block.mineralogy.basalt_relief_left": "Relevo Basalto Esquerdo", - "block.mineralogy.basalt_relief_pickaxe": "Relevo de picareta de basalto", - "block.mineralogy.basalt_relief_plus": "Basalto Plus Relevo", - "block.mineralogy.basalt_relief_right": "Relevo direito de basalto", - "block.mineralogy.basalt_relief_sword": "Relevo de espada de basalto", - "block.mineralogy.basalt_relief_vertical": "Relevo Vertical Basáltico", - "block.mineralogy.diorite_relief_axe": "Alívio de machado de diorito", - "block.mineralogy.diorite_relief_blank": "Relevo em branco de diorito", - "block.mineralogy.diorite_relief_cross": "Relevo Cruzado Diorito", - "block.mineralogy.diorite_relief_hammer": "Alívio do Martelo Diorito", - "block.mineralogy.diorite_relief_hoe": "Relevo de enxada de diorito", - "block.mineralogy.diorite_relief_horizontal": "Relevo Horizontal Diorito", - "block.mineralogy.diorite_relief_i": "Relevo Diorito I", - "block.mineralogy.diorite_relief_left": "Diorito Esquerdo Relevo", - "block.mineralogy.diorite_relief_pickaxe": "Alívio de picareta de diorito", - "block.mineralogy.diorite_relief_plus": "Diorito Plus Alívio", - "block.mineralogy.diorite_relief_right": "Alívio Direito Diorito", - "block.mineralogy.diorite_relief_sword": "Relevo da Espada Diorita", - "block.mineralogy.diorite_relief_vertical": "Relevo Vertical Diorito", - "block.mineralogy.granite_relief_axe": "Relevo de machado de granito", - "block.mineralogy.granite_relief_blank": "Relevo em branco de granito", - "block.mineralogy.granite_relief_cross": "Relevo Cruzado em Granito", - "block.mineralogy.granite_relief_hammer": "Relevo de Martelo de Granito", - "block.mineralogy.granite_relief_hoe": "Relevo de enxada de granito", - "block.mineralogy.granite_relief_horizontal": "Relevo Horizontal Granito", - "block.mineralogy.granite_relief_i": "Granito I Relevo", - "block.mineralogy.granite_relief_left": "Relevo esquerdo em granito", - "block.mineralogy.granite_relief_pickaxe": "Relevo de Picareta em Granito", - "block.mineralogy.granite_relief_plus": "Granito Plus Relevo", - "block.mineralogy.granite_relief_right": "Relevo direito em granito", - "block.mineralogy.granite_relief_sword": "Relevo de Espada de Granito", - "block.mineralogy.granite_relief_vertical": "Relevo Vertical em Granito", - "block.mineralogy.rhyolite_relief_axe": "Alívio de machado de riolito", - "block.mineralogy.rhyolite_relief_blank": "Relevo em branco de riolito", - "block.mineralogy.rhyolite_relief_cross": "Relevo Cruzado de Riolito", - "block.mineralogy.rhyolite_relief_hammer": "Alívio do Martelo Riolito", - "block.mineralogy.rhyolite_relief_hoe": "Relevo de enxada de riolito", - "block.mineralogy.rhyolite_relief_horizontal": "Relevo horizontal do riolito", - "block.mineralogy.rhyolite_relief_i": "Relevo Riolito I", - "block.mineralogy.rhyolite_relief_left": "Relevo esquerdo do riolito", - "block.mineralogy.rhyolite_relief_pickaxe": "Alívio da Picareta Riolita", - "block.mineralogy.rhyolite_relief_plus": "Riolito Plus Alívio", - "block.mineralogy.rhyolite_relief_right": "Relevo direito do riolito", - "block.mineralogy.rhyolite_relief_sword": "Alívio da Espada Riolita", - "block.mineralogy.rhyolite_relief_vertical": "Relevo vertical do riolito", - "block.mineralogy.pegmatite_relief_axe": "Alívio de Machado Pegmatito", - "block.mineralogy.pegmatite_relief_blank": "Relevo em branco de pegmatito", - "block.mineralogy.pegmatite_relief_cross": "Relevo Cruzado Pegmatito", - "block.mineralogy.pegmatite_relief_hammer": "Alívio do Martelo Pegmatito", - "block.mineralogy.pegmatite_relief_hoe": "Relevo de enxada pegmatita", - "block.mineralogy.pegmatite_relief_horizontal": "Relevo Horizontal Pegmatítico", - "block.mineralogy.pegmatite_relief_i": "Relevo Pegmatito I", - "block.mineralogy.pegmatite_relief_left": "Relevo Pegmatito Esquerdo", - "block.mineralogy.pegmatite_relief_pickaxe": "Alívio de Picareta Pegmatita", - "block.mineralogy.pegmatite_relief_plus": "Pegmatita Plus Alívio", - "block.mineralogy.pegmatite_relief_right": "Relevo direito pegmatito", - "block.mineralogy.pegmatite_relief_sword": "Relevo da Espada Pegmatita", - "block.mineralogy.pegmatite_relief_vertical": "Relevo Vertical Pegmatítico", - "block.mineralogy.shale_relief_axe": "Alívio de machado de xisto", - "block.mineralogy.shale_relief_blank": "Relevo em branco de xisto", - "block.mineralogy.shale_relief_cross": "Relevo Cruzado de Xisto", - "block.mineralogy.shale_relief_hammer": "Alívio do Martelo de Xisto", - "block.mineralogy.shale_relief_hoe": "Relevo de enxada de xisto", - "block.mineralogy.shale_relief_horizontal": "Relevo Horizontal de Xisto", - "block.mineralogy.shale_relief_i": "Relevo de Xisto I", - "block.mineralogy.shale_relief_left": "Relevo Esquerdo de Xisto", - "block.mineralogy.shale_relief_pickaxe": "Alívio de picareta de xisto", - "block.mineralogy.shale_relief_plus": "Xisto Plus Alívio", - "block.mineralogy.shale_relief_right": "Relevo direito do xisto", - "block.mineralogy.shale_relief_sword": "Relevo da Espada de Xisto", - "block.mineralogy.shale_relief_vertical": "Relevo Vertical de Xisto", - "block.mineralogy.conglomerate_relief_axe": "Alívio do Machado do Conglomerado", - "block.mineralogy.conglomerate_relief_blank": "Alívio em branco do conglomerado", - "block.mineralogy.conglomerate_relief_cross": "Relevo Cruzado do Conglomerado", - "block.mineralogy.conglomerate_relief_hammer": "Alívio do Martelo Conglomerado", - "block.mineralogy.conglomerate_relief_hoe": "Alívio da enxada do conglomerado", - "block.mineralogy.conglomerate_relief_horizontal": "Relevo Horizontal Conglomerado", - "block.mineralogy.conglomerate_relief_i": "Alívio do Conglomerado I", - "block.mineralogy.conglomerate_relief_left": "Alívio Esquerdo do Conglomerado", - "block.mineralogy.conglomerate_relief_pickaxe": "Alívio da Picareta do Conglomerado", - "block.mineralogy.conglomerate_relief_plus": "Conglomerado Plus Alívio", - "block.mineralogy.conglomerate_relief_right": "Alívio à Direita do Conglomerado", - "block.mineralogy.conglomerate_relief_sword": "Alívio da Espada do Conglomerado", - "block.mineralogy.conglomerate_relief_vertical": "Relevo Vertical Conglomerado", - "block.mineralogy.dolomite_relief_axe": "Alívio de machado de dolomita", - "block.mineralogy.dolomite_relief_blank": "Relevo em branco dolomita", - "block.mineralogy.dolomite_relief_cross": "Relevo Cruzado Dolomita", - "block.mineralogy.dolomite_relief_hammer": "Alívio do Martelo Dolomita", - "block.mineralogy.dolomite_relief_hoe": "Alívio da enxada dolomita", - "block.mineralogy.dolomite_relief_horizontal": "Relevo Horizontal Dolomita", - "block.mineralogy.dolomite_relief_i": "Relevo Dolomita I", - "block.mineralogy.dolomite_relief_left": "Relevo Dolomita Esquerdo", - "block.mineralogy.dolomite_relief_pickaxe": "Alívio de Picareta Dolomita", - "block.mineralogy.dolomite_relief_plus": "Dolomita Plus Alívio", - "block.mineralogy.dolomite_relief_right": "Relevo Dolomita Direita", - "block.mineralogy.dolomite_relief_sword": "Relevo da Espada Dolomita", - "block.mineralogy.dolomite_relief_vertical": "Relevo Vertical Dolomita", - "block.mineralogy.limestone_relief_axe": "Alívio de machado de calcário", - "block.mineralogy.limestone_relief_blank": "Relevo em branco de calcário", - "block.mineralogy.limestone_relief_cross": "Relevo Cruzado de Calcário", - "block.mineralogy.limestone_relief_hammer": "Relevo de Martelo de Calcário", - "block.mineralogy.limestone_relief_hoe": "Relevo de enxada de calcário", - "block.mineralogy.limestone_relief_horizontal": "Relevo Horizontal de Calcário", - "block.mineralogy.limestone_relief_i": "Relevo de Calcário I", - "block.mineralogy.limestone_relief_left": "Relevo Esquerdo de Calcário", - "block.mineralogy.limestone_relief_pickaxe": "Relevo de picareta de calcário", - "block.mineralogy.limestone_relief_plus": "Calcário Plus Alívio", - "block.mineralogy.limestone_relief_right": "Relevo direito de calcário", - "block.mineralogy.limestone_relief_sword": "Relevo de Espada de Calcário", - "block.mineralogy.limestone_relief_vertical": "Relevo vertical de calcário", - "block.mineralogy.marble_relief_axe": "Alívio de Machado de Mármore", - "block.mineralogy.marble_relief_blank": "Relevo em branco de mármore", - "block.mineralogy.marble_relief_cross": "Relevo Cruzado em Mármore", - "block.mineralogy.marble_relief_hammer": "Relevo de martelo de mármore", - "block.mineralogy.marble_relief_hoe": "Relevo de enxada de mármore", - "block.mineralogy.marble_relief_horizontal": "Relevo Horizontal de Mármore", - "block.mineralogy.marble_relief_i": "Mármore I Relevo", - "block.mineralogy.marble_relief_left": "Mármore Relevo Esquerdo", - "block.mineralogy.marble_relief_pickaxe": "Relevo de Picareta de Mármore", - "block.mineralogy.marble_relief_plus": "Mármore Plus Relevo", - "block.mineralogy.marble_relief_right": "Mármore Relevo Direito", - "block.mineralogy.marble_relief_sword": "Relevo de Espada de Mármore", - "block.mineralogy.marble_relief_vertical": "Relevo vertical de mármore", - "block.mineralogy.slate_relief_axe": "Alívio de machado de ardósia", - "block.mineralogy.slate_relief_blank": "Relevo em branco de ardósia", - "block.mineralogy.slate_relief_cross": "Relevo Cruzado em Ardósia", - "block.mineralogy.slate_relief_hammer": "Alívio do martelo de ardósia", - "block.mineralogy.slate_relief_hoe": "Relevo de enxada de ardósia", - "block.mineralogy.slate_relief_horizontal": "Relevo Horizontal de Ardósia", - "block.mineralogy.slate_relief_i": "Relevo de Ardósia I", - "block.mineralogy.slate_relief_left": "Relevo Esquerdo em Ardósia", - "block.mineralogy.slate_relief_pickaxe": "Alívio de picareta de ardósia", - "block.mineralogy.slate_relief_plus": "Slate Plus Alívio", - "block.mineralogy.slate_relief_right": "Alívio direito de ardósia", - "block.mineralogy.slate_relief_sword": "Relevo da Espada de Ardósia", - "block.mineralogy.slate_relief_vertical": "Relevo Vertical de Ardósia", - "block.mineralogy.schist_relief_axe": "Relevo de Machado de Xisto", - "block.mineralogy.schist_relief_blank": "Relevo em Branco de Xisto", - "block.mineralogy.schist_relief_cross": "Cruzamento em Xisto", - "block.mineralogy.schist_relief_hammer": "Relevo do Martelo de Xisto", - "block.mineralogy.schist_relief_hoe": "Relevo de Enxada de Xisto", - "block.mineralogy.schist_relief_horizontal": "Relevo Horizontal de Xisto", - "block.mineralogy.schist_relief_i": "Relevo Xisto I", - "block.mineralogy.schist_relief_left": "Relevo Esquerdo de Xisto", - "block.mineralogy.schist_relief_pickaxe": "Relevo de Picareta de Xisto", - "block.mineralogy.schist_relief_plus": "Xisto Mais Alívio", - "block.mineralogy.schist_relief_right": "Relevo Direito do Xisto", - "block.mineralogy.schist_relief_sword": "Relevo da Espada de Xisto", - "block.mineralogy.schist_relief_vertical": "Relevo Vertical de Xisto", - "block.mineralogy.gneiss_relief_axe": "Relevo de machado de gnaisse", - "block.mineralogy.gneiss_relief_blank": "Relevo em branco de gnaisse", - "block.mineralogy.gneiss_relief_cross": "Relevo Cruzado Gnaisse", - "block.mineralogy.gneiss_relief_hammer": "Relevo do Martelo Gnaisse", - "block.mineralogy.gneiss_relief_hoe": "Relevo de enxada de gnaisse", - "block.mineralogy.gneiss_relief_horizontal": "Relevo Horizontal Gnaisse", - "block.mineralogy.gneiss_relief_i": "Gnaisse I Relevo", - "block.mineralogy.gneiss_relief_left": "Relevo Esquerdo do Gnaisse", - "block.mineralogy.gneiss_relief_pickaxe": "Alívio da Picareta Gnaisse", - "block.mineralogy.gneiss_relief_plus": "Gnaisse Plus Relevo", - "block.mineralogy.gneiss_relief_right": "Relevo direito do gnaisse", - "block.mineralogy.gneiss_relief_sword": "Relevo da Espada Gnaisse", - "block.mineralogy.gneiss_relief_vertical": "Relevo Vertical Gnaisse", - "block.mineralogy.phyllite_relief_axe": "Alívio de machado de filito", - "block.mineralogy.phyllite_relief_blank": "Relevo em branco de filito", - "block.mineralogy.phyllite_relief_cross": "Relevo Cruzado Filito", - "block.mineralogy.phyllite_relief_hammer": "Alívio do martelo filito", - "block.mineralogy.phyllite_relief_hoe": "Relevo de enxada de filito", - "block.mineralogy.phyllite_relief_horizontal": "Relevo Horizontal Filito", - "block.mineralogy.phyllite_relief_i": "Relevo Filito I", - "block.mineralogy.phyllite_relief_left": "Relevo esquerdo do filito", - "block.mineralogy.phyllite_relief_pickaxe": "Relevo de picareta filito", - "block.mineralogy.phyllite_relief_plus": "Filito Plus Alívio", - "block.mineralogy.phyllite_relief_right": "Relevo direito do filito", - "block.mineralogy.phyllite_relief_sword": "Relevo da Espada Filita", - "block.mineralogy.phyllite_relief_vertical": "Relevo Vertical Filito", - "block.mineralogy.amphibolite_relief_axe": "Alívio de Machado Anfibolito", - "block.mineralogy.amphibolite_relief_blank": "Relevo em Branco Anfibolito", - "block.mineralogy.amphibolite_relief_cross": "Relevo Cruzado Anfibolito", - "block.mineralogy.amphibolite_relief_hammer": "Alívio do Martelo Anfibolito", - "block.mineralogy.amphibolite_relief_hoe": "Alívio de enxada anfibolito", - "block.mineralogy.amphibolite_relief_horizontal": "Relevo Horizontal Anfibolito", - "block.mineralogy.amphibolite_relief_i": "Alívio Anfibolito I", - "block.mineralogy.amphibolite_relief_left": "Relevo Esquerdo Anfibolito", - "block.mineralogy.amphibolite_relief_pickaxe": "Alívio de Picareta Anfibolito", - "block.mineralogy.amphibolite_relief_plus": "Alívio Anfibolito Plus", - "block.mineralogy.amphibolite_relief_right": "Alívio Direito Anfibolito", - "block.mineralogy.amphibolite_relief_sword": "Alívio da Espada Anfibolita", - "block.mineralogy.amphibolite_relief_vertical": "Relevo Vertical Anfibolito", - "block.mineralogy.diabase_relief_axe": "Alívio do Machado de Diabásio", - "block.mineralogy.diabase_relief_blank": "Relevo em Branco de Diabásio", - "block.mineralogy.diabase_relief_cross": "Relevo Cruzado de Diabásio", - "block.mineralogy.diabase_relief_hammer": "Alívio do martelo de diabásio", - "block.mineralogy.diabase_relief_hoe": "Alívio da enxada de diabásio", - "block.mineralogy.diabase_relief_horizontal": "Diabásio Relevo Horizontal", - "block.mineralogy.diabase_relief_i": "Diabásio I Alívio", - "block.mineralogy.diabase_relief_left": "Diabásio Relevo Esquerdo", - "block.mineralogy.diabase_relief_pickaxe": "Alívio da Picareta de Diabásio", - "block.mineralogy.diabase_relief_plus": "Diabásio Plus Alívio", - "block.mineralogy.diabase_relief_right": "Diabásio Alívio Direito", - "block.mineralogy.diabase_relief_sword": "Alívio da Espada de Diabásio", - "block.mineralogy.diabase_relief_vertical": "Diabásio Relevo Vertical", - "block.mineralogy.gabbro_relief_axe": "Alívio do Machado Gabro", - "block.mineralogy.gabbro_relief_blank": "Gabbro em branco em relevo", - "block.mineralogy.gabbro_relief_cross": "Relevo Cruzado de Gabro", - "block.mineralogy.gabbro_relief_hammer": "Alívio do martelo gabro", - "block.mineralogy.gabbro_relief_hoe": "Alívio da enxada Gabbro", - "block.mineralogy.gabbro_relief_horizontal": "Gabro Relevo Horizontal", - "block.mineralogy.gabbro_relief_i": "Gabro I Alívio", - "block.mineralogy.gabbro_relief_left": "Gabbro deixou alívio", - "block.mineralogy.gabbro_relief_pickaxe": "Alívio da Picareta Gabbro", - "block.mineralogy.gabbro_relief_plus": "Gabro Plus Alívio", - "block.mineralogy.gabbro_relief_right": "Alívio direito de Gabbro", - "block.mineralogy.gabbro_relief_sword": "Alívio da Espada Gabbro", - "block.mineralogy.gabbro_relief_vertical": "Gabro Relevo Vertical", - "block.mineralogy.peridotite_relief_axe": "Alívio de machado de peridotita", - "block.mineralogy.peridotite_relief_blank": "Relevo em branco de peridotita", - "block.mineralogy.peridotite_relief_cross": "Relevo Cruzado de Peridotita", - "block.mineralogy.peridotite_relief_hammer": "Alívio de martelo de peridotita", - "block.mineralogy.peridotite_relief_hoe": "Alívio de enxada de peridotita", - "block.mineralogy.peridotite_relief_horizontal": "Relevo Horizontal Peridotita", - "block.mineralogy.peridotite_relief_i": "Relevo Peridotita I", - "block.mineralogy.peridotite_relief_left": "Relevo esquerdo de peridotita", - "block.mineralogy.peridotite_relief_pickaxe": "Alívio de Picareta Peridotita", - "block.mineralogy.peridotite_relief_plus": "Peridotita Plus Alívio", - "block.mineralogy.peridotite_relief_right": "Alívio direito de peridotita", - "block.mineralogy.peridotite_relief_sword": "Alívio da Espada Peridotita", - "block.mineralogy.peridotite_relief_vertical": "Relevo Vertical Peridotita", - "block.mineralogy.basaltic_glass_relief_axe": "Relevo de machado de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_blank": "Relevo em branco de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_cross": "Relevo Cruzado de Vidro Basáltico", - "block.mineralogy.basaltic_glass_relief_hammer": "Relevo de martelo de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_hoe": "Relevo de enxada de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_horizontal": "Relevo horizontal de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_i": "Vidro Basáltico I Relevo", - "block.mineralogy.basaltic_glass_relief_left": "Relevo Esquerdo de Vidro Basáltico", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Relevo de picareta de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_plus": "Vidro Basáltico Mais Relevo", - "block.mineralogy.basaltic_glass_relief_right": "Relevo direito do vidro basáltico", - "block.mineralogy.basaltic_glass_relief_sword": "Relevo de espada de vidro basáltico", - "block.mineralogy.basaltic_glass_relief_vertical": "Relevo vertical de vidro basáltico", - "block.mineralogy.scoria_relief_axe": "Alívio do machado de escória", - "block.mineralogy.scoria_relief_blank": "Alívio em branco de Scoria", - "block.mineralogy.scoria_relief_cross": "Relevo Cruzado de Escória", - "block.mineralogy.scoria_relief_hammer": "Alívio do martelo de escória", - "block.mineralogy.scoria_relief_hoe": "Alívio de enxada de Scoria", - "block.mineralogy.scoria_relief_horizontal": "Relevo horizontal da escória", - "block.mineralogy.scoria_relief_i": "Alívio da Escória I", - "block.mineralogy.scoria_relief_left": "Alívio Esquerdo de Scoria", - "block.mineralogy.scoria_relief_pickaxe": "Alívio da Picareta Scoria", - "block.mineralogy.scoria_relief_plus": "Alívio Scoria Plus", - "block.mineralogy.scoria_relief_right": "Alívio direito da escória", - "block.mineralogy.scoria_relief_sword": "Alívio da Espada Scoria", - "block.mineralogy.scoria_relief_vertical": "Relevo vertical da escória", - "block.mineralogy.tuff_relief_axe": "Alívio de machado de tufo", - "block.mineralogy.tuff_relief_blank": "Relevo em branco de tufo", - "block.mineralogy.tuff_relief_cross": "Relevo Cruzado em Tufo", - "block.mineralogy.tuff_relief_hammer": "Alívio do martelo tufo", - "block.mineralogy.tuff_relief_hoe": "Alívio de enxada de tufo", - "block.mineralogy.tuff_relief_horizontal": "Relevo Horizontal Tufo", - "block.mineralogy.tuff_relief_i": "Tufo I Alívio", - "block.mineralogy.tuff_relief_left": "Relevo esquerdo de tufo", - "block.mineralogy.tuff_relief_pickaxe": "Alívio de picareta de tufo", - "block.mineralogy.tuff_relief_plus": "Tuff Plus Alívio", - "block.mineralogy.tuff_relief_right": "Alívio direito do tufo", - "block.mineralogy.tuff_relief_sword": "Relevo de espada de tufo", - "block.mineralogy.tuff_relief_vertical": "Relevo Vertical Tufo", - "block.mineralogy.siltstone_relief_axe": "Alívio do Machado de Siltstone", - "block.mineralogy.siltstone_relief_blank": "Relevo em branco de siltito", - "block.mineralogy.siltstone_relief_cross": "Relevo Cruzado de Siltstone", - "block.mineralogy.siltstone_relief_hammer": "Alívio do Martelo de Siltstone", - "block.mineralogy.siltstone_relief_hoe": "Relevo de enxada de siltito", - "block.mineralogy.siltstone_relief_horizontal": "Relevo horizontal de siltito", - "block.mineralogy.siltstone_relief_i": "Siltstone I Relevo", - "block.mineralogy.siltstone_relief_left": "Relevo Esquerdo de Siltstone", - "block.mineralogy.siltstone_relief_pickaxe": "Alívio da Picareta de Siltstone", - "block.mineralogy.siltstone_relief_plus": "Siltstone Plus Alívio", - "block.mineralogy.siltstone_relief_right": "Relevo direito do siltito", - "block.mineralogy.siltstone_relief_sword": "Relevo da Espada de Siltstone", - "block.mineralogy.siltstone_relief_vertical": "Relevo vertical de siltito", - "block.mineralogy.rock_salt_relief_axe": "Alívio do machado de sal-gema", - "block.mineralogy.rock_salt_relief_blank": "Relevo em branco de sal-gema", - "block.mineralogy.rock_salt_relief_cross": "Relevo Cruzado de Sal-gema", - "block.mineralogy.rock_salt_relief_hammer": "Alívio do martelo de sal-gema", - "block.mineralogy.rock_salt_relief_hoe": "Alívio de enxada de sal-gema", - "block.mineralogy.rock_salt_relief_horizontal": "Relevo horizontal de sal-gema", - "block.mineralogy.rock_salt_relief_i": "Sal-gema I Relevo", - "block.mineralogy.rock_salt_relief_left": "Sal-gema à esquerda em relevo", - "block.mineralogy.rock_salt_relief_pickaxe": "Alívio da picareta de sal-gema", - "block.mineralogy.rock_salt_relief_plus": "Sal-gema mais alívio", - "block.mineralogy.rock_salt_relief_right": "Alívio direito de sal-gema", - "block.mineralogy.rock_salt_relief_sword": "Alívio da espada de sal-gema", - "block.mineralogy.rock_salt_relief_vertical": "Relevo vertical de sal-gema", - "block.mineralogy.hornfels_relief_axe": "Alívio do Machado Hornfels", - "block.mineralogy.hornfels_relief_blank": "Alívio em branco de Hornfels", - "block.mineralogy.hornfels_relief_cross": "Relevo Cruzado de Hornfels", - "block.mineralogy.hornfels_relief_hammer": "Alívio do Martelo Hornfels", - "block.mineralogy.hornfels_relief_hoe": "Alívio da enxada Hornfels", - "block.mineralogy.hornfels_relief_horizontal": "Relevo Horizontal Hornfels", - "block.mineralogy.hornfels_relief_i": "Hornfels I Alívio", - "block.mineralogy.hornfels_relief_left": "Alívio esquerdo de Hornfels", - "block.mineralogy.hornfels_relief_pickaxe": "Alívio da Picareta Hornfels", - "block.mineralogy.hornfels_relief_plus": "Hornfels Plus Alívio", - "block.mineralogy.hornfels_relief_right": "Alívio direito de Hornfels", - "block.mineralogy.hornfels_relief_sword": "Alívio da Espada Hornfels", - "block.mineralogy.hornfels_relief_vertical": "Relevo vertical de Hornfels", - "block.mineralogy.quartzite_relief_axe": "Relevo de machado de quartzito", - "block.mineralogy.quartzite_relief_blank": "Relevo em Branco de Quartzito", - "block.mineralogy.quartzite_relief_cross": "Relevo Cruzado em Quartzito", - "block.mineralogy.quartzite_relief_hammer": "Relevo de martelo de quartzito", - "block.mineralogy.quartzite_relief_hoe": "Relevo de enxada de quartzito", - "block.mineralogy.quartzite_relief_horizontal": "Relevo Horizontal Quartzito", - "block.mineralogy.quartzite_relief_i": "Quartzito I Relevo", - "block.mineralogy.quartzite_relief_left": "Quartzito Relevo Esquerdo", - "block.mineralogy.quartzite_relief_pickaxe": "Relevo de Picareta de Quartzito", - "block.mineralogy.quartzite_relief_plus": "Quartzito Mais Relevo", - "block.mineralogy.quartzite_relief_right": "Quartzito Relevo Direito", - "block.mineralogy.quartzite_relief_sword": "Relevo de Espada de Quartzito", - "block.mineralogy.quartzite_relief_vertical": "Relevo Vertical Quartzito", - "block.mineralogy.novaculite_relief_axe": "Alívio de Machado de Novaculita", - "block.mineralogy.novaculite_relief_blank": "Relevo em branco de Novaculita", - "block.mineralogy.novaculite_relief_cross": "Relevo Cruzado de Novaculita", - "block.mineralogy.novaculite_relief_hammer": "Alívio do martelo de novaculita", - "block.mineralogy.novaculite_relief_hoe": "Alívio de enxada de novaculita", - "block.mineralogy.novaculite_relief_horizontal": "Relevo Horizontal Novaculita", - "block.mineralogy.novaculite_relief_i": "Novaculita I Alívio", - "block.mineralogy.novaculite_relief_left": "Novaculita em relevo esquerdo", - "block.mineralogy.novaculite_relief_pickaxe": "Alívio da Picareta Novaculita", - "block.mineralogy.novaculite_relief_plus": "Novaculite Plus Alívio", - "block.mineralogy.novaculite_relief_right": "Alívio Direito de Novaculita", - "block.mineralogy.novaculite_relief_sword": "Alívio da Espada Novaculita", - "block.mineralogy.novaculite_relief_vertical": "Novaculita Relevo Vertical", - "advancements.mineralogy.all_the_rocks.title": "Chame as pedras de Ludo!", - "advancements.mineralogy.all_the_rocks.description": "Uau, você encontrou todos os tipos de rochas padrão na Mineralogia!", - "fluid.mineralogy.crude_oil": "Petróleo Bruto", - "block.mineralogy.crude_oil": "Petróleo Bruto", - "item.mineralogy.crude_oil_bucket": "Balde de petróleo bruto", + "block.mineralogy.rocksaltlamp": "Luminária de sal-gema", + "block.mineralogy.rocksaltstreetlamp": "Poste de luz de sal-gema", + "block.mineralogy.andesite_relief_axe": "Baixo-relevo de Andesito (machado)", + "block.mineralogy.andesite_relief_blank": "Baixo-relevo de Andesito (sem motivo)", + "block.mineralogy.andesite_relief_cross": "Baixo-relevo de Andesito (cruz)", + "block.mineralogy.andesite_relief_hammer": "Baixo-relevo de Andesito (martelo)", + "block.mineralogy.andesite_relief_hoe": "Baixo-relevo de Andesito (enxada)", + "block.mineralogy.andesite_relief_horizontal": "Baixo-relevo de Andesito (horizontal)", + "block.mineralogy.andesite_relief_i": "Baixo-relevo de Andesito (I)", + "block.mineralogy.andesite_relief_left": "Baixo-relevo de Andesito (esquerda)", + "block.mineralogy.andesite_relief_pickaxe": "Baixo-relevo de Andesito (picareta)", + "block.mineralogy.andesite_relief_plus": "Baixo-relevo de Andesito (sinal de mais)", + "block.mineralogy.andesite_relief_right": "Baixo-relevo de Andesito (direita)", + "block.mineralogy.andesite_relief_sword": "Baixo-relevo de Andesito (espada)", + "block.mineralogy.andesite_relief_vertical": "Baixo-relevo de Andesito (vertical)", + "block.mineralogy.basalt_relief_axe": "Baixo-relevo de Basalto (machado)", + "block.mineralogy.basalt_relief_blank": "Baixo-relevo de Basalto (sem motivo)", + "block.mineralogy.basalt_relief_cross": "Baixo-relevo de Basalto (cruz)", + "block.mineralogy.basalt_relief_hammer": "Baixo-relevo de Basalto (martelo)", + "block.mineralogy.basalt_relief_hoe": "Baixo-relevo de Basalto (enxada)", + "block.mineralogy.basalt_relief_horizontal": "Baixo-relevo de Basalto (horizontal)", + "block.mineralogy.basalt_relief_i": "Baixo-relevo de Basalto (I)", + "block.mineralogy.basalt_relief_left": "Baixo-relevo de Basalto (esquerda)", + "block.mineralogy.basalt_relief_pickaxe": "Baixo-relevo de Basalto (picareta)", + "block.mineralogy.basalt_relief_plus": "Baixo-relevo de Basalto (sinal de mais)", + "block.mineralogy.basalt_relief_right": "Baixo-relevo de Basalto (direita)", + "block.mineralogy.basalt_relief_sword": "Baixo-relevo de Basalto (espada)", + "block.mineralogy.basalt_relief_vertical": "Baixo-relevo de Basalto (vertical)", + "block.mineralogy.diorite_relief_axe": "Baixo-relevo de Diorito (machado)", + "block.mineralogy.diorite_relief_blank": "Baixo-relevo de Diorito (sem motivo)", + "block.mineralogy.diorite_relief_cross": "Baixo-relevo de Diorito (cruz)", + "block.mineralogy.diorite_relief_hammer": "Baixo-relevo de Diorito (martelo)", + "block.mineralogy.diorite_relief_hoe": "Baixo-relevo de Diorito (enxada)", + "block.mineralogy.diorite_relief_horizontal": "Baixo-relevo de Diorito (horizontal)", + "block.mineralogy.diorite_relief_i": "Baixo-relevo de Diorito (I)", + "block.mineralogy.diorite_relief_left": "Baixo-relevo de Diorito (esquerda)", + "block.mineralogy.diorite_relief_pickaxe": "Baixo-relevo de Diorito (picareta)", + "block.mineralogy.diorite_relief_plus": "Baixo-relevo de Diorito (sinal de mais)", + "block.mineralogy.diorite_relief_right": "Baixo-relevo de Diorito (direita)", + "block.mineralogy.diorite_relief_sword": "Baixo-relevo de Diorito (espada)", + "block.mineralogy.diorite_relief_vertical": "Baixo-relevo de Diorito (vertical)", + "block.mineralogy.granite_relief_axe": "Baixo-relevo de Granito (machado)", + "block.mineralogy.granite_relief_blank": "Baixo-relevo de Granito (sem motivo)", + "block.mineralogy.granite_relief_cross": "Baixo-relevo de Granito (cruz)", + "block.mineralogy.granite_relief_hammer": "Baixo-relevo de Granito (martelo)", + "block.mineralogy.granite_relief_hoe": "Baixo-relevo de Granito (enxada)", + "block.mineralogy.granite_relief_horizontal": "Baixo-relevo de Granito (horizontal)", + "block.mineralogy.granite_relief_i": "Baixo-relevo de Granito (I)", + "block.mineralogy.granite_relief_left": "Baixo-relevo de Granito (esquerda)", + "block.mineralogy.granite_relief_pickaxe": "Baixo-relevo de Granito (picareta)", + "block.mineralogy.granite_relief_plus": "Baixo-relevo de Granito (sinal de mais)", + "block.mineralogy.granite_relief_right": "Baixo-relevo de Granito (direita)", + "block.mineralogy.granite_relief_sword": "Baixo-relevo de Granito (espada)", + "block.mineralogy.granite_relief_vertical": "Baixo-relevo de Granito (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Baixo-relevo de Riolito (machado)", + "block.mineralogy.rhyolite_relief_blank": "Baixo-relevo de Riolito (sem motivo)", + "block.mineralogy.rhyolite_relief_cross": "Baixo-relevo de Riolito (cruz)", + "block.mineralogy.rhyolite_relief_hammer": "Baixo-relevo de Riolito (martelo)", + "block.mineralogy.rhyolite_relief_hoe": "Baixo-relevo de Riolito (enxada)", + "block.mineralogy.rhyolite_relief_horizontal": "Baixo-relevo de Riolito (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Baixo-relevo de Riolito (I)", + "block.mineralogy.rhyolite_relief_left": "Baixo-relevo de Riolito (esquerda)", + "block.mineralogy.rhyolite_relief_pickaxe": "Baixo-relevo de Riolito (picareta)", + "block.mineralogy.rhyolite_relief_plus": "Baixo-relevo de Riolito (sinal de mais)", + "block.mineralogy.rhyolite_relief_right": "Baixo-relevo de Riolito (direita)", + "block.mineralogy.rhyolite_relief_sword": "Baixo-relevo de Riolito (espada)", + "block.mineralogy.rhyolite_relief_vertical": "Baixo-relevo de Riolito (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Baixo-relevo de Pegmatito (machado)", + "block.mineralogy.pegmatite_relief_blank": "Baixo-relevo de Pegmatito (sem motivo)", + "block.mineralogy.pegmatite_relief_cross": "Baixo-relevo de Pegmatito (cruz)", + "block.mineralogy.pegmatite_relief_hammer": "Baixo-relevo de Pegmatito (martelo)", + "block.mineralogy.pegmatite_relief_hoe": "Baixo-relevo de Pegmatito (enxada)", + "block.mineralogy.pegmatite_relief_horizontal": "Baixo-relevo de Pegmatito (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Baixo-relevo de Pegmatito (I)", + "block.mineralogy.pegmatite_relief_left": "Baixo-relevo de Pegmatito (esquerda)", + "block.mineralogy.pegmatite_relief_pickaxe": "Baixo-relevo de Pegmatito (picareta)", + "block.mineralogy.pegmatite_relief_plus": "Baixo-relevo de Pegmatito (sinal de mais)", + "block.mineralogy.pegmatite_relief_right": "Baixo-relevo de Pegmatito (direita)", + "block.mineralogy.pegmatite_relief_sword": "Baixo-relevo de Pegmatito (espada)", + "block.mineralogy.pegmatite_relief_vertical": "Baixo-relevo de Pegmatito (vertical)", + "block.mineralogy.shale_relief_axe": "Baixo-relevo de Folhelho (machado)", + "block.mineralogy.shale_relief_blank": "Baixo-relevo de Folhelho (sem motivo)", + "block.mineralogy.shale_relief_cross": "Baixo-relevo de Folhelho (cruz)", + "block.mineralogy.shale_relief_hammer": "Baixo-relevo de Folhelho (martelo)", + "block.mineralogy.shale_relief_hoe": "Baixo-relevo de Folhelho (enxada)", + "block.mineralogy.shale_relief_horizontal": "Baixo-relevo de Folhelho (horizontal)", + "block.mineralogy.shale_relief_i": "Baixo-relevo de Folhelho (I)", + "block.mineralogy.shale_relief_left": "Baixo-relevo de Folhelho (esquerda)", + "block.mineralogy.shale_relief_pickaxe": "Baixo-relevo de Folhelho (picareta)", + "block.mineralogy.shale_relief_plus": "Baixo-relevo de Folhelho (sinal de mais)", + "block.mineralogy.shale_relief_right": "Baixo-relevo de Folhelho (direita)", + "block.mineralogy.shale_relief_sword": "Baixo-relevo de Folhelho (espada)", + "block.mineralogy.shale_relief_vertical": "Baixo-relevo de Folhelho (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Baixo-relevo de Conglomerado (machado)", + "block.mineralogy.conglomerate_relief_blank": "Baixo-relevo de Conglomerado (sem motivo)", + "block.mineralogy.conglomerate_relief_cross": "Baixo-relevo de Conglomerado (cruz)", + "block.mineralogy.conglomerate_relief_hammer": "Baixo-relevo de Conglomerado (martelo)", + "block.mineralogy.conglomerate_relief_hoe": "Baixo-relevo de Conglomerado (enxada)", + "block.mineralogy.conglomerate_relief_horizontal": "Baixo-relevo de Conglomerado (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Baixo-relevo de Conglomerado (I)", + "block.mineralogy.conglomerate_relief_left": "Baixo-relevo de Conglomerado (esquerda)", + "block.mineralogy.conglomerate_relief_pickaxe": "Baixo-relevo de Conglomerado (picareta)", + "block.mineralogy.conglomerate_relief_plus": "Baixo-relevo de Conglomerado (sinal de mais)", + "block.mineralogy.conglomerate_relief_right": "Baixo-relevo de Conglomerado (direita)", + "block.mineralogy.conglomerate_relief_sword": "Baixo-relevo de Conglomerado (espada)", + "block.mineralogy.conglomerate_relief_vertical": "Baixo-relevo de Conglomerado (vertical)", + "block.mineralogy.dolomite_relief_axe": "Baixo-relevo de Dolomita (machado)", + "block.mineralogy.dolomite_relief_blank": "Baixo-relevo de Dolomita (sem motivo)", + "block.mineralogy.dolomite_relief_cross": "Baixo-relevo de Dolomita (cruz)", + "block.mineralogy.dolomite_relief_hammer": "Baixo-relevo de Dolomita (martelo)", + "block.mineralogy.dolomite_relief_hoe": "Baixo-relevo de Dolomita (enxada)", + "block.mineralogy.dolomite_relief_horizontal": "Baixo-relevo de Dolomita (horizontal)", + "block.mineralogy.dolomite_relief_i": "Baixo-relevo de Dolomita (I)", + "block.mineralogy.dolomite_relief_left": "Baixo-relevo de Dolomita (esquerda)", + "block.mineralogy.dolomite_relief_pickaxe": "Baixo-relevo de Dolomita (picareta)", + "block.mineralogy.dolomite_relief_plus": "Baixo-relevo de Dolomita (sinal de mais)", + "block.mineralogy.dolomite_relief_right": "Baixo-relevo de Dolomita (direita)", + "block.mineralogy.dolomite_relief_sword": "Baixo-relevo de Dolomita (espada)", + "block.mineralogy.dolomite_relief_vertical": "Baixo-relevo de Dolomita (vertical)", + "block.mineralogy.limestone_relief_axe": "Baixo-relevo de Calcário (machado)", + "block.mineralogy.limestone_relief_blank": "Baixo-relevo de Calcário (sem motivo)", + "block.mineralogy.limestone_relief_cross": "Baixo-relevo de Calcário (cruz)", + "block.mineralogy.limestone_relief_hammer": "Baixo-relevo de Calcário (martelo)", + "block.mineralogy.limestone_relief_hoe": "Baixo-relevo de Calcário (enxada)", + "block.mineralogy.limestone_relief_horizontal": "Baixo-relevo de Calcário (horizontal)", + "block.mineralogy.limestone_relief_i": "Baixo-relevo de Calcário (I)", + "block.mineralogy.limestone_relief_left": "Baixo-relevo de Calcário (esquerda)", + "block.mineralogy.limestone_relief_pickaxe": "Baixo-relevo de Calcário (picareta)", + "block.mineralogy.limestone_relief_plus": "Baixo-relevo de Calcário (sinal de mais)", + "block.mineralogy.limestone_relief_right": "Baixo-relevo de Calcário (direita)", + "block.mineralogy.limestone_relief_sword": "Baixo-relevo de Calcário (espada)", + "block.mineralogy.limestone_relief_vertical": "Baixo-relevo de Calcário (vertical)", + "block.mineralogy.marble_relief_axe": "Baixo-relevo de Mármore (machado)", + "block.mineralogy.marble_relief_blank": "Baixo-relevo de Mármore (sem motivo)", + "block.mineralogy.marble_relief_cross": "Baixo-relevo de Mármore (cruz)", + "block.mineralogy.marble_relief_hammer": "Baixo-relevo de Mármore (martelo)", + "block.mineralogy.marble_relief_hoe": "Baixo-relevo de Mármore (enxada)", + "block.mineralogy.marble_relief_horizontal": "Baixo-relevo de Mármore (horizontal)", + "block.mineralogy.marble_relief_i": "Baixo-relevo de Mármore (I)", + "block.mineralogy.marble_relief_left": "Baixo-relevo de Mármore (esquerda)", + "block.mineralogy.marble_relief_pickaxe": "Baixo-relevo de Mármore (picareta)", + "block.mineralogy.marble_relief_plus": "Baixo-relevo de Mármore (sinal de mais)", + "block.mineralogy.marble_relief_right": "Baixo-relevo de Mármore (direita)", + "block.mineralogy.marble_relief_sword": "Baixo-relevo de Mármore (espada)", + "block.mineralogy.marble_relief_vertical": "Baixo-relevo de Mármore (vertical)", + "block.mineralogy.slate_relief_axe": "Baixo-relevo de Ardósia (machado)", + "block.mineralogy.slate_relief_blank": "Baixo-relevo de Ardósia (sem motivo)", + "block.mineralogy.slate_relief_cross": "Baixo-relevo de Ardósia (cruz)", + "block.mineralogy.slate_relief_hammer": "Baixo-relevo de Ardósia (martelo)", + "block.mineralogy.slate_relief_hoe": "Baixo-relevo de Ardósia (enxada)", + "block.mineralogy.slate_relief_horizontal": "Baixo-relevo de Ardósia (horizontal)", + "block.mineralogy.slate_relief_i": "Baixo-relevo de Ardósia (I)", + "block.mineralogy.slate_relief_left": "Baixo-relevo de Ardósia (esquerda)", + "block.mineralogy.slate_relief_pickaxe": "Baixo-relevo de Ardósia (picareta)", + "block.mineralogy.slate_relief_plus": "Baixo-relevo de Ardósia (sinal de mais)", + "block.mineralogy.slate_relief_right": "Baixo-relevo de Ardósia (direita)", + "block.mineralogy.slate_relief_sword": "Baixo-relevo de Ardósia (espada)", + "block.mineralogy.slate_relief_vertical": "Baixo-relevo de Ardósia (vertical)", + "block.mineralogy.schist_relief_axe": "Baixo-relevo de Xisto (machado)", + "block.mineralogy.schist_relief_blank": "Baixo-relevo de Xisto (sem motivo)", + "block.mineralogy.schist_relief_cross": "Baixo-relevo de Xisto (cruz)", + "block.mineralogy.schist_relief_hammer": "Baixo-relevo de Xisto (martelo)", + "block.mineralogy.schist_relief_hoe": "Baixo-relevo de Xisto (enxada)", + "block.mineralogy.schist_relief_horizontal": "Baixo-relevo de Xisto (horizontal)", + "block.mineralogy.schist_relief_i": "Baixo-relevo de Xisto (I)", + "block.mineralogy.schist_relief_left": "Baixo-relevo de Xisto (esquerda)", + "block.mineralogy.schist_relief_pickaxe": "Baixo-relevo de Xisto (picareta)", + "block.mineralogy.schist_relief_plus": "Baixo-relevo de Xisto (sinal de mais)", + "block.mineralogy.schist_relief_right": "Baixo-relevo de Xisto (direita)", + "block.mineralogy.schist_relief_sword": "Baixo-relevo de Xisto (espada)", + "block.mineralogy.schist_relief_vertical": "Baixo-relevo de Xisto (vertical)", + "block.mineralogy.gneiss_relief_axe": "Baixo-relevo de Gnaisse (machado)", + "block.mineralogy.gneiss_relief_blank": "Baixo-relevo de Gnaisse (sem motivo)", + "block.mineralogy.gneiss_relief_cross": "Baixo-relevo de Gnaisse (cruz)", + "block.mineralogy.gneiss_relief_hammer": "Baixo-relevo de Gnaisse (martelo)", + "block.mineralogy.gneiss_relief_hoe": "Baixo-relevo de Gnaisse (enxada)", + "block.mineralogy.gneiss_relief_horizontal": "Baixo-relevo de Gnaisse (horizontal)", + "block.mineralogy.gneiss_relief_i": "Baixo-relevo de Gnaisse (I)", + "block.mineralogy.gneiss_relief_left": "Baixo-relevo de Gnaisse (esquerda)", + "block.mineralogy.gneiss_relief_pickaxe": "Baixo-relevo de Gnaisse (picareta)", + "block.mineralogy.gneiss_relief_plus": "Baixo-relevo de Gnaisse (sinal de mais)", + "block.mineralogy.gneiss_relief_right": "Baixo-relevo de Gnaisse (direita)", + "block.mineralogy.gneiss_relief_sword": "Baixo-relevo de Gnaisse (espada)", + "block.mineralogy.gneiss_relief_vertical": "Baixo-relevo de Gnaisse (vertical)", + "block.mineralogy.phyllite_relief_axe": "Baixo-relevo de Filito (machado)", + "block.mineralogy.phyllite_relief_blank": "Baixo-relevo de Filito (sem motivo)", + "block.mineralogy.phyllite_relief_cross": "Baixo-relevo de Filito (cruz)", + "block.mineralogy.phyllite_relief_hammer": "Baixo-relevo de Filito (martelo)", + "block.mineralogy.phyllite_relief_hoe": "Baixo-relevo de Filito (enxada)", + "block.mineralogy.phyllite_relief_horizontal": "Baixo-relevo de Filito (horizontal)", + "block.mineralogy.phyllite_relief_i": "Baixo-relevo de Filito (I)", + "block.mineralogy.phyllite_relief_left": "Baixo-relevo de Filito (esquerda)", + "block.mineralogy.phyllite_relief_pickaxe": "Baixo-relevo de Filito (picareta)", + "block.mineralogy.phyllite_relief_plus": "Baixo-relevo de Filito (sinal de mais)", + "block.mineralogy.phyllite_relief_right": "Baixo-relevo de Filito (direita)", + "block.mineralogy.phyllite_relief_sword": "Baixo-relevo de Filito (espada)", + "block.mineralogy.phyllite_relief_vertical": "Baixo-relevo de Filito (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Baixo-relevo de Anfibolito (machado)", + "block.mineralogy.amphibolite_relief_blank": "Baixo-relevo de Anfibolito (sem motivo)", + "block.mineralogy.amphibolite_relief_cross": "Baixo-relevo de Anfibolito (cruz)", + "block.mineralogy.amphibolite_relief_hammer": "Baixo-relevo de Anfibolito (martelo)", + "block.mineralogy.amphibolite_relief_hoe": "Baixo-relevo de Anfibolito (enxada)", + "block.mineralogy.amphibolite_relief_horizontal": "Baixo-relevo de Anfibolito (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Baixo-relevo de Anfibolito (I)", + "block.mineralogy.amphibolite_relief_left": "Baixo-relevo de Anfibolito (esquerda)", + "block.mineralogy.amphibolite_relief_pickaxe": "Baixo-relevo de Anfibolito (picareta)", + "block.mineralogy.amphibolite_relief_plus": "Baixo-relevo de Anfibolito (sinal de mais)", + "block.mineralogy.amphibolite_relief_right": "Baixo-relevo de Anfibolito (direita)", + "block.mineralogy.amphibolite_relief_sword": "Baixo-relevo de Anfibolito (espada)", + "block.mineralogy.amphibolite_relief_vertical": "Baixo-relevo de Anfibolito (vertical)", + "block.mineralogy.diabase_relief_axe": "Baixo-relevo de Diabásio (machado)", + "block.mineralogy.diabase_relief_blank": "Baixo-relevo de Diabásio (sem motivo)", + "block.mineralogy.diabase_relief_cross": "Baixo-relevo de Diabásio (cruz)", + "block.mineralogy.diabase_relief_hammer": "Baixo-relevo de Diabásio (martelo)", + "block.mineralogy.diabase_relief_hoe": "Baixo-relevo de Diabásio (enxada)", + "block.mineralogy.diabase_relief_horizontal": "Baixo-relevo de Diabásio (horizontal)", + "block.mineralogy.diabase_relief_i": "Baixo-relevo de Diabásio (I)", + "block.mineralogy.diabase_relief_left": "Baixo-relevo de Diabásio (esquerda)", + "block.mineralogy.diabase_relief_pickaxe": "Baixo-relevo de Diabásio (picareta)", + "block.mineralogy.diabase_relief_plus": "Baixo-relevo de Diabásio (sinal de mais)", + "block.mineralogy.diabase_relief_right": "Baixo-relevo de Diabásio (direita)", + "block.mineralogy.diabase_relief_sword": "Baixo-relevo de Diabásio (espada)", + "block.mineralogy.diabase_relief_vertical": "Baixo-relevo de Diabásio (vertical)", + "block.mineralogy.gabbro_relief_axe": "Baixo-relevo de Gabro (machado)", + "block.mineralogy.gabbro_relief_blank": "Baixo-relevo de Gabro (sem motivo)", + "block.mineralogy.gabbro_relief_cross": "Baixo-relevo de Gabro (cruz)", + "block.mineralogy.gabbro_relief_hammer": "Baixo-relevo de Gabro (martelo)", + "block.mineralogy.gabbro_relief_hoe": "Baixo-relevo de Gabro (enxada)", + "block.mineralogy.gabbro_relief_horizontal": "Baixo-relevo de Gabro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Baixo-relevo de Gabro (I)", + "block.mineralogy.gabbro_relief_left": "Baixo-relevo de Gabro (esquerda)", + "block.mineralogy.gabbro_relief_pickaxe": "Baixo-relevo de Gabro (picareta)", + "block.mineralogy.gabbro_relief_plus": "Baixo-relevo de Gabro (sinal de mais)", + "block.mineralogy.gabbro_relief_right": "Baixo-relevo de Gabro (direita)", + "block.mineralogy.gabbro_relief_sword": "Baixo-relevo de Gabro (espada)", + "block.mineralogy.gabbro_relief_vertical": "Baixo-relevo de Gabro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Baixo-relevo de Peridotito (machado)", + "block.mineralogy.peridotite_relief_blank": "Baixo-relevo de Peridotito (sem motivo)", + "block.mineralogy.peridotite_relief_cross": "Baixo-relevo de Peridotito (cruz)", + "block.mineralogy.peridotite_relief_hammer": "Baixo-relevo de Peridotito (martelo)", + "block.mineralogy.peridotite_relief_hoe": "Baixo-relevo de Peridotito (enxada)", + "block.mineralogy.peridotite_relief_horizontal": "Baixo-relevo de Peridotito (horizontal)", + "block.mineralogy.peridotite_relief_i": "Baixo-relevo de Peridotito (I)", + "block.mineralogy.peridotite_relief_left": "Baixo-relevo de Peridotito (esquerda)", + "block.mineralogy.peridotite_relief_pickaxe": "Baixo-relevo de Peridotito (picareta)", + "block.mineralogy.peridotite_relief_plus": "Baixo-relevo de Peridotito (sinal de mais)", + "block.mineralogy.peridotite_relief_right": "Baixo-relevo de Peridotito (direita)", + "block.mineralogy.peridotite_relief_sword": "Baixo-relevo de Peridotito (espada)", + "block.mineralogy.peridotite_relief_vertical": "Baixo-relevo de Peridotito (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Baixo-relevo de Vidro basáltico (machado)", + "block.mineralogy.basaltic_glass_relief_blank": "Baixo-relevo de Vidro basáltico (sem motivo)", + "block.mineralogy.basaltic_glass_relief_cross": "Baixo-relevo de Vidro basáltico (cruz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Baixo-relevo de Vidro basáltico (martelo)", + "block.mineralogy.basaltic_glass_relief_hoe": "Baixo-relevo de Vidro basáltico (enxada)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Baixo-relevo de Vidro basáltico (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Baixo-relevo de Vidro basáltico (I)", + "block.mineralogy.basaltic_glass_relief_left": "Baixo-relevo de Vidro basáltico (esquerda)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Baixo-relevo de Vidro basáltico (picareta)", + "block.mineralogy.basaltic_glass_relief_plus": "Baixo-relevo de Vidro basáltico (sinal de mais)", + "block.mineralogy.basaltic_glass_relief_right": "Baixo-relevo de Vidro basáltico (direita)", + "block.mineralogy.basaltic_glass_relief_sword": "Baixo-relevo de Vidro basáltico (espada)", + "block.mineralogy.basaltic_glass_relief_vertical": "Baixo-relevo de Vidro basáltico (vertical)", + "block.mineralogy.scoria_relief_axe": "Baixo-relevo de Escória (machado)", + "block.mineralogy.scoria_relief_blank": "Baixo-relevo de Escória (sem motivo)", + "block.mineralogy.scoria_relief_cross": "Baixo-relevo de Escória (cruz)", + "block.mineralogy.scoria_relief_hammer": "Baixo-relevo de Escória (martelo)", + "block.mineralogy.scoria_relief_hoe": "Baixo-relevo de Escória (enxada)", + "block.mineralogy.scoria_relief_horizontal": "Baixo-relevo de Escória (horizontal)", + "block.mineralogy.scoria_relief_i": "Baixo-relevo de Escória (I)", + "block.mineralogy.scoria_relief_left": "Baixo-relevo de Escória (esquerda)", + "block.mineralogy.scoria_relief_pickaxe": "Baixo-relevo de Escória (picareta)", + "block.mineralogy.scoria_relief_plus": "Baixo-relevo de Escória (sinal de mais)", + "block.mineralogy.scoria_relief_right": "Baixo-relevo de Escória (direita)", + "block.mineralogy.scoria_relief_sword": "Baixo-relevo de Escória (espada)", + "block.mineralogy.scoria_relief_vertical": "Baixo-relevo de Escória (vertical)", + "block.mineralogy.tuff_relief_axe": "Baixo-relevo de Tufo (machado)", + "block.mineralogy.tuff_relief_blank": "Baixo-relevo de Tufo (sem motivo)", + "block.mineralogy.tuff_relief_cross": "Baixo-relevo de Tufo (cruz)", + "block.mineralogy.tuff_relief_hammer": "Baixo-relevo de Tufo (martelo)", + "block.mineralogy.tuff_relief_hoe": "Baixo-relevo de Tufo (enxada)", + "block.mineralogy.tuff_relief_horizontal": "Baixo-relevo de Tufo (horizontal)", + "block.mineralogy.tuff_relief_i": "Baixo-relevo de Tufo (I)", + "block.mineralogy.tuff_relief_left": "Baixo-relevo de Tufo (esquerda)", + "block.mineralogy.tuff_relief_pickaxe": "Baixo-relevo de Tufo (picareta)", + "block.mineralogy.tuff_relief_plus": "Baixo-relevo de Tufo (sinal de mais)", + "block.mineralogy.tuff_relief_right": "Baixo-relevo de Tufo (direita)", + "block.mineralogy.tuff_relief_sword": "Baixo-relevo de Tufo (espada)", + "block.mineralogy.tuff_relief_vertical": "Baixo-relevo de Tufo (vertical)", + "block.mineralogy.siltstone_relief_axe": "Baixo-relevo de Siltito (machado)", + "block.mineralogy.siltstone_relief_blank": "Baixo-relevo de Siltito (sem motivo)", + "block.mineralogy.siltstone_relief_cross": "Baixo-relevo de Siltito (cruz)", + "block.mineralogy.siltstone_relief_hammer": "Baixo-relevo de Siltito (martelo)", + "block.mineralogy.siltstone_relief_hoe": "Baixo-relevo de Siltito (enxada)", + "block.mineralogy.siltstone_relief_horizontal": "Baixo-relevo de Siltito (horizontal)", + "block.mineralogy.siltstone_relief_i": "Baixo-relevo de Siltito (I)", + "block.mineralogy.siltstone_relief_left": "Baixo-relevo de Siltito (esquerda)", + "block.mineralogy.siltstone_relief_pickaxe": "Baixo-relevo de Siltito (picareta)", + "block.mineralogy.siltstone_relief_plus": "Baixo-relevo de Siltito (sinal de mais)", + "block.mineralogy.siltstone_relief_right": "Baixo-relevo de Siltito (direita)", + "block.mineralogy.siltstone_relief_sword": "Baixo-relevo de Siltito (espada)", + "block.mineralogy.siltstone_relief_vertical": "Baixo-relevo de Siltito (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Baixo-relevo de Sal-gema (machado)", + "block.mineralogy.rock_salt_relief_blank": "Baixo-relevo de Sal-gema (sem motivo)", + "block.mineralogy.rock_salt_relief_cross": "Baixo-relevo de Sal-gema (cruz)", + "block.mineralogy.rock_salt_relief_hammer": "Baixo-relevo de Sal-gema (martelo)", + "block.mineralogy.rock_salt_relief_hoe": "Baixo-relevo de Sal-gema (enxada)", + "block.mineralogy.rock_salt_relief_horizontal": "Baixo-relevo de Sal-gema (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Baixo-relevo de Sal-gema (I)", + "block.mineralogy.rock_salt_relief_left": "Baixo-relevo de Sal-gema (esquerda)", + "block.mineralogy.rock_salt_relief_pickaxe": "Baixo-relevo de Sal-gema (picareta)", + "block.mineralogy.rock_salt_relief_plus": "Baixo-relevo de Sal-gema (sinal de mais)", + "block.mineralogy.rock_salt_relief_right": "Baixo-relevo de Sal-gema (direita)", + "block.mineralogy.rock_salt_relief_sword": "Baixo-relevo de Sal-gema (espada)", + "block.mineralogy.rock_salt_relief_vertical": "Baixo-relevo de Sal-gema (vertical)", + "block.mineralogy.hornfels_relief_axe": "Baixo-relevo de Cornubianito (machado)", + "block.mineralogy.hornfels_relief_blank": "Baixo-relevo de Cornubianito (sem motivo)", + "block.mineralogy.hornfels_relief_cross": "Baixo-relevo de Cornubianito (cruz)", + "block.mineralogy.hornfels_relief_hammer": "Baixo-relevo de Cornubianito (martelo)", + "block.mineralogy.hornfels_relief_hoe": "Baixo-relevo de Cornubianito (enxada)", + "block.mineralogy.hornfels_relief_horizontal": "Baixo-relevo de Cornubianito (horizontal)", + "block.mineralogy.hornfels_relief_i": "Baixo-relevo de Cornubianito (I)", + "block.mineralogy.hornfels_relief_left": "Baixo-relevo de Cornubianito (esquerda)", + "block.mineralogy.hornfels_relief_pickaxe": "Baixo-relevo de Cornubianito (picareta)", + "block.mineralogy.hornfels_relief_plus": "Baixo-relevo de Cornubianito (sinal de mais)", + "block.mineralogy.hornfels_relief_right": "Baixo-relevo de Cornubianito (direita)", + "block.mineralogy.hornfels_relief_sword": "Baixo-relevo de Cornubianito (espada)", + "block.mineralogy.hornfels_relief_vertical": "Baixo-relevo de Cornubianito (vertical)", + "block.mineralogy.quartzite_relief_axe": "Baixo-relevo de Quartzito (machado)", + "block.mineralogy.quartzite_relief_blank": "Baixo-relevo de Quartzito (sem motivo)", + "block.mineralogy.quartzite_relief_cross": "Baixo-relevo de Quartzito (cruz)", + "block.mineralogy.quartzite_relief_hammer": "Baixo-relevo de Quartzito (martelo)", + "block.mineralogy.quartzite_relief_hoe": "Baixo-relevo de Quartzito (enxada)", + "block.mineralogy.quartzite_relief_horizontal": "Baixo-relevo de Quartzito (horizontal)", + "block.mineralogy.quartzite_relief_i": "Baixo-relevo de Quartzito (I)", + "block.mineralogy.quartzite_relief_left": "Baixo-relevo de Quartzito (esquerda)", + "block.mineralogy.quartzite_relief_pickaxe": "Baixo-relevo de Quartzito (picareta)", + "block.mineralogy.quartzite_relief_plus": "Baixo-relevo de Quartzito (sinal de mais)", + "block.mineralogy.quartzite_relief_right": "Baixo-relevo de Quartzito (direita)", + "block.mineralogy.quartzite_relief_sword": "Baixo-relevo de Quartzito (espada)", + "block.mineralogy.quartzite_relief_vertical": "Baixo-relevo de Quartzito (vertical)", + "block.mineralogy.novaculite_relief_axe": "Baixo-relevo de Novaculita (machado)", + "block.mineralogy.novaculite_relief_blank": "Baixo-relevo de Novaculita (sem motivo)", + "block.mineralogy.novaculite_relief_cross": "Baixo-relevo de Novaculita (cruz)", + "block.mineralogy.novaculite_relief_hammer": "Baixo-relevo de Novaculita (martelo)", + "block.mineralogy.novaculite_relief_hoe": "Baixo-relevo de Novaculita (enxada)", + "block.mineralogy.novaculite_relief_horizontal": "Baixo-relevo de Novaculita (horizontal)", + "block.mineralogy.novaculite_relief_i": "Baixo-relevo de Novaculita (I)", + "block.mineralogy.novaculite_relief_left": "Baixo-relevo de Novaculita (esquerda)", + "block.mineralogy.novaculite_relief_pickaxe": "Baixo-relevo de Novaculita (picareta)", + "block.mineralogy.novaculite_relief_plus": "Baixo-relevo de Novaculita (sinal de mais)", + "block.mineralogy.novaculite_relief_right": "Baixo-relevo de Novaculita (direita)", + "block.mineralogy.novaculite_relief_sword": "Baixo-relevo de Novaculita (espada)", + "block.mineralogy.novaculite_relief_vertical": "Baixo-relevo de Novaculita (vertical)", "itemGroup.mineralogy.mineralogy": "Mineralogia", - "itemGroup.mineralogy.rock": "Rochas Mineralógicas", - "itemGroup.mineralogy.stair": "Escadas de Mineralogia", - "itemGroup.mineralogy.slab": "Lajes de Mineralogia", - "itemGroup.mineralogy.wall": "Paredes de Mineralogia", - "itemGroup.mineralogy.item": "Itens de mineralogia" + "itemGroup.mineralogy.rock": "Rochas da Mineralogia", + "itemGroup.mineralogy.stair": "Escadas da Mineralogia", + "itemGroup.mineralogy.slab": "Lajes da Mineralogia", + "itemGroup.mineralogy.wall": "Muros da Mineralogia", + "itemGroup.mineralogy.item": "Itens da Mineralogia", + "block.mineralogy.crude_oil": "Petróleo bruto", + "item.mineralogy.crude_oil_bucket": "Balde de petróleo bruto", + "fluid.mineralogy.crude_oil": "Petróleo bruto", + "advancements.mineralogy.all_the_rocks.title": "Todas as rochas", + "advancements.mineralogy.all_the_rocks.description": "Você encontrou todos os tipos de rocha padrão do Mineralogy!" } diff --git a/src/main/resources/assets/mineralogy/lang/pt_pt.json b/src/main/resources/assets/mineralogy/lang/pt_pt.json new file mode 100644 index 000000000..867e9ac0d --- /dev/null +++ b/src/main/resources/assets/mineralogy/lang/pt_pt.json @@ -0,0 +1,940 @@ +{ + "block.mineralogy.andesite": "Andesito", + "block.mineralogy.andesite_stairs": "Escadas de Andesito", + "block.mineralogy.andesite_slab": "Laje de Andesito", + "block.mineralogy.andesite_brick": "Tijolos de Andesito", + "block.mineralogy.andesite_brick_stairs": "Escadas de tijolos de Andesito", + "block.mineralogy.andesite_brick_slab": "Laje de tijolos de Andesito", + "block.mineralogy.andesite_smooth": "Bloco polido de Andesito", + "block.mineralogy.andesite_smooth_stairs": "Escadas polidas de Andesito", + "block.mineralogy.andesite_smooth_slab": "Laje polida de Andesito", + "block.mineralogy.andesite_smooth_brick": "Tijolos polidos de Andesito", + "block.mineralogy.andesite_smooth_brick_stairs": "Escadas de tijolos polidos de Andesito", + "block.mineralogy.andesite_smooth_brick_slab": "Laje de tijolos polidos de Andesito", + "block.mineralogy.basalt": "Basalto", + "block.mineralogy.basalt_stairs": "Escadas de Basalto", + "block.mineralogy.basalt_slab": "Laje de Basalto", + "block.mineralogy.basalt_brick": "Tijolos de Basalto", + "block.mineralogy.basalt_brick_stairs": "Escadas de tijolos de Basalto", + "block.mineralogy.basalt_brick_slab": "Laje de tijolos de Basalto", + "block.mineralogy.basalt_smooth": "Bloco polido de Basalto", + "block.mineralogy.basalt_smooth_stairs": "Escadas polidas de Basalto", + "block.mineralogy.basalt_smooth_slab": "Laje polida de Basalto", + "block.mineralogy.basalt_smooth_brick": "Tijolos polidos de Basalto", + "block.mineralogy.basalt_smooth_brick_stairs": "Escadas de tijolos polidos de Basalto", + "block.mineralogy.basalt_smooth_brick_slab": "Laje de tijolos polidos de Basalto", + "block.mineralogy.diorite": "Diorito", + "block.mineralogy.diorite_stairs": "Escadas de Diorito", + "block.mineralogy.diorite_slab": "Laje de Diorito", + "block.mineralogy.diorite_brick": "Tijolos de Diorito", + "block.mineralogy.diorite_brick_stairs": "Escadas de tijolos de Diorito", + "block.mineralogy.diorite_brick_slab": "Laje de tijolos de Diorito", + "block.mineralogy.diorite_smooth": "Bloco polido de Diorito", + "block.mineralogy.diorite_smooth_stairs": "Escadas polidas de Diorito", + "block.mineralogy.diorite_smooth_slab": "Laje polida de Diorito", + "block.mineralogy.diorite_smooth_brick": "Tijolos polidos de Diorito", + "block.mineralogy.diorite_smooth_brick_stairs": "Escadas de tijolos polidos de Diorito", + "block.mineralogy.diorite_smooth_brick_slab": "Laje de tijolos polidos de Diorito", + "block.mineralogy.granite": "Granito", + "block.mineralogy.granite_stairs": "Escadas de Granito", + "block.mineralogy.granite_slab": "Laje de Granito", + "block.mineralogy.granite_brick": "Tijolos de Granito", + "block.mineralogy.granite_brick_stairs": "Escadas de tijolos de Granito", + "block.mineralogy.granite_brick_slab": "Laje de tijolos de Granito", + "block.mineralogy.granite_smooth": "Bloco polido de Granito", + "block.mineralogy.granite_smooth_stairs": "Escadas polidas de Granito", + "block.mineralogy.granite_smooth_slab": "Laje polida de Granito", + "block.mineralogy.granite_smooth_brick": "Tijolos polidos de Granito", + "block.mineralogy.granite_smooth_brick_stairs": "Escadas de tijolos polidos de Granito", + "block.mineralogy.granite_smooth_brick_slab": "Laje de tijolos polidos de Granito", + "block.mineralogy.rhyolite": "Riolito", + "block.mineralogy.rhyolite_stairs": "Escadas de Riolito", + "block.mineralogy.rhyolite_slab": "Laje de Riolito", + "block.mineralogy.rhyolite_brick": "Tijolos de Riolito", + "block.mineralogy.rhyolite_brick_stairs": "Escadas de tijolos de Riolito", + "block.mineralogy.rhyolite_brick_slab": "Laje de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth": "Bloco polido de Riolito", + "block.mineralogy.rhyolite_smooth_stairs": "Escadas polidas de Riolito", + "block.mineralogy.rhyolite_smooth_slab": "Laje polida de Riolito", + "block.mineralogy.rhyolite_smooth_brick": "Tijolos polidos de Riolito", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Escadas de tijolos polidos de Riolito", + "block.mineralogy.rhyolite_smooth_brick_slab": "Laje de tijolos polidos de Riolito", + "block.mineralogy.pegmatite": "Pegmatito", + "block.mineralogy.pegmatite_stairs": "Escadas de Pegmatito", + "block.mineralogy.pegmatite_slab": "Laje de Pegmatito", + "block.mineralogy.pegmatite_brick": "Tijolos de Pegmatito", + "block.mineralogy.pegmatite_brick_stairs": "Escadas de tijolos de Pegmatito", + "block.mineralogy.pegmatite_brick_slab": "Laje de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth": "Bloco polido de Pegmatito", + "block.mineralogy.pegmatite_smooth_stairs": "Escadas polidas de Pegmatito", + "block.mineralogy.pegmatite_smooth_slab": "Laje polida de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick": "Tijolos polidos de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Escadas de tijolos polidos de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_slab": "Laje de tijolos polidos de Pegmatito", + "block.mineralogy.shale": "Folhelho", + "block.mineralogy.shale_stairs": "Escadas de Folhelho", + "block.mineralogy.shale_slab": "Laje de Folhelho", + "block.mineralogy.shale_brick": "Tijolos de Folhelho", + "block.mineralogy.shale_brick_stairs": "Escadas de tijolos de Folhelho", + "block.mineralogy.shale_brick_slab": "Laje de tijolos de Folhelho", + "block.mineralogy.shale_smooth": "Bloco polido de Folhelho", + "block.mineralogy.shale_smooth_stairs": "Escadas polidas de Folhelho", + "block.mineralogy.shale_smooth_slab": "Laje polida de Folhelho", + "block.mineralogy.shale_smooth_brick": "Tijolos polidos de Folhelho", + "block.mineralogy.shale_smooth_brick_stairs": "Escadas de tijolos polidos de Folhelho", + "block.mineralogy.shale_smooth_brick_slab": "Laje de tijolos polidos de Folhelho", + "block.mineralogy.conglomerate": "Conglomerado", + "block.mineralogy.conglomerate_stairs": "Escadas de Conglomerado", + "block.mineralogy.conglomerate_slab": "Laje de Conglomerado", + "block.mineralogy.conglomerate_brick": "Tijolos de Conglomerado", + "block.mineralogy.conglomerate_brick_stairs": "Escadas de tijolos de Conglomerado", + "block.mineralogy.conglomerate_brick_slab": "Laje de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth": "Bloco polido de Conglomerado", + "block.mineralogy.conglomerate_smooth_stairs": "Escadas polidas de Conglomerado", + "block.mineralogy.conglomerate_smooth_slab": "Laje polida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick": "Tijolos polidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Escadas de tijolos polidos de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_slab": "Laje de tijolos polidos de Conglomerado", + "block.mineralogy.dolomite": "Dolomita", + "block.mineralogy.dolomite_stairs": "Escadas de Dolomita", + "block.mineralogy.dolomite_slab": "Laje de Dolomita", + "block.mineralogy.dolomite_brick": "Tijolos de Dolomita", + "block.mineralogy.dolomite_brick_stairs": "Escadas de tijolos de Dolomita", + "block.mineralogy.dolomite_brick_slab": "Laje de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth": "Bloco polido de Dolomita", + "block.mineralogy.dolomite_smooth_stairs": "Escadas polidas de Dolomita", + "block.mineralogy.dolomite_smooth_slab": "Laje polida de Dolomita", + "block.mineralogy.dolomite_smooth_brick": "Tijolos polidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_stairs": "Escadas de tijolos polidos de Dolomita", + "block.mineralogy.dolomite_smooth_brick_slab": "Laje de tijolos polidos de Dolomita", + "block.mineralogy.limestone": "Calcário", + "block.mineralogy.limestone_stairs": "Escadas de Calcário", + "block.mineralogy.limestone_slab": "Laje de Calcário", + "block.mineralogy.limestone_brick": "Tijolos de Calcário", + "block.mineralogy.limestone_brick_stairs": "Escadas de tijolos de Calcário", + "block.mineralogy.limestone_brick_slab": "Laje de tijolos de Calcário", + "block.mineralogy.limestone_smooth": "Bloco polido de Calcário", + "block.mineralogy.limestone_smooth_stairs": "Escadas polidas de Calcário", + "block.mineralogy.limestone_smooth_slab": "Laje polida de Calcário", + "block.mineralogy.limestone_smooth_brick": "Tijolos polidos de Calcário", + "block.mineralogy.limestone_smooth_brick_stairs": "Escadas de tijolos polidos de Calcário", + "block.mineralogy.limestone_smooth_brick_slab": "Laje de tijolos polidos de Calcário", + "block.mineralogy.slate": "Ardósia", + "block.mineralogy.slate_stairs": "Escadas de Ardósia", + "block.mineralogy.slate_slab": "Laje de Ardósia", + "block.mineralogy.slate_brick": "Tijolos de Ardósia", + "block.mineralogy.slate_brick_stairs": "Escadas de tijolos de Ardósia", + "block.mineralogy.slate_brick_slab": "Laje de tijolos de Ardósia", + "block.mineralogy.slate_smooth": "Bloco polido de Ardósia", + "block.mineralogy.slate_smooth_stairs": "Escadas polidas de Ardósia", + "block.mineralogy.slate_smooth_slab": "Laje polida de Ardósia", + "block.mineralogy.slate_smooth_brick": "Tijolos polidos de Ardósia", + "block.mineralogy.slate_smooth_brick_stairs": "Escadas de tijolos polidos de Ardósia", + "block.mineralogy.slate_smooth_brick_slab": "Laje de tijolos polidos de Ardósia", + "block.mineralogy.schist": "Xisto", + "block.mineralogy.schist_stairs": "Escadas de Xisto", + "block.mineralogy.schist_slab": "Laje de Xisto", + "block.mineralogy.schist_brick": "Tijolos de Xisto", + "block.mineralogy.schist_brick_stairs": "Escadas de tijolos de Xisto", + "block.mineralogy.schist_brick_slab": "Laje de tijolos de Xisto", + "block.mineralogy.schist_smooth": "Bloco polido de Xisto", + "block.mineralogy.schist_smooth_stairs": "Escadas polidas de Xisto", + "block.mineralogy.schist_smooth_slab": "Laje polida de Xisto", + "block.mineralogy.schist_smooth_brick": "Tijolos polidos de Xisto", + "block.mineralogy.schist_smooth_brick_stairs": "Escadas de tijolos polidos de Xisto", + "block.mineralogy.schist_smooth_brick_slab": "Laje de tijolos polidos de Xisto", + "block.mineralogy.gneiss": "Gnaisse", + "block.mineralogy.gneiss_stairs": "Escadas de Gnaisse", + "block.mineralogy.gneiss_slab": "Laje de Gnaisse", + "block.mineralogy.gneiss_brick": "Tijolos de Gnaisse", + "block.mineralogy.gneiss_brick_stairs": "Escadas de tijolos de Gnaisse", + "block.mineralogy.gneiss_brick_slab": "Laje de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth": "Bloco polido de Gnaisse", + "block.mineralogy.gneiss_smooth_stairs": "Escadas polidas de Gnaisse", + "block.mineralogy.gneiss_smooth_slab": "Laje polida de Gnaisse", + "block.mineralogy.gneiss_smooth_brick": "Tijolos polidos de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_stairs": "Escadas de tijolos polidos de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_slab": "Laje de tijolos polidos de Gnaisse", + "block.mineralogy.marble": "Mármore", + "block.mineralogy.marble_stairs": "Escadas de Mármore", + "block.mineralogy.marble_slab": "Laje de Mármore", + "block.mineralogy.marble_brick": "Tijolos de Mármore", + "block.mineralogy.marble_brick_stairs": "Escadas de tijolos de Mármore", + "block.mineralogy.marble_brick_slab": "Laje de tijolos de Mármore", + "block.mineralogy.marble_smooth": "Bloco polido de Mármore", + "block.mineralogy.marble_smooth_stairs": "Escadas polidas de Mármore", + "block.mineralogy.marble_smooth_slab": "Laje polida de Mármore", + "block.mineralogy.marble_smooth_brick": "Tijolos polidos de Mármore", + "block.mineralogy.marble_smooth_brick_stairs": "Escadas de tijolos polidos de Mármore", + "block.mineralogy.marble_smooth_brick_slab": "Laje de tijolos polidos de Mármore", + "block.mineralogy.phyllite": "Filito", + "block.mineralogy.phyllite_stairs": "Escadas de Filito", + "block.mineralogy.phyllite_slab": "Laje de Filito", + "block.mineralogy.phyllite_brick": "Tijolos de Filito", + "block.mineralogy.phyllite_brick_stairs": "Escadas de tijolos de Filito", + "block.mineralogy.phyllite_brick_slab": "Laje de tijolos de Filito", + "block.mineralogy.phyllite_smooth": "Bloco polido de Filito", + "block.mineralogy.phyllite_smooth_stairs": "Escadas polidas de Filito", + "block.mineralogy.phyllite_smooth_slab": "Laje polida de Filito", + "block.mineralogy.phyllite_smooth_brick": "Tijolos polidos de Filito", + "block.mineralogy.phyllite_smooth_brick_stairs": "Escadas de tijolos polidos de Filito", + "block.mineralogy.phyllite_smooth_brick_slab": "Laje de tijolos polidos de Filito", + "block.mineralogy.amphibolite": "Anfibolito", + "block.mineralogy.amphibolite_stairs": "Escadas de Anfibolito", + "block.mineralogy.amphibolite_slab": "Laje de Anfibolito", + "block.mineralogy.amphibolite_brick": "Tijolos de Anfibolito", + "block.mineralogy.amphibolite_brick_stairs": "Escadas de tijolos de Anfibolito", + "block.mineralogy.amphibolite_brick_slab": "Laje de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth": "Bloco polido de Anfibolito", + "block.mineralogy.amphibolite_smooth_stairs": "Escadas polidas de Anfibolito", + "block.mineralogy.amphibolite_smooth_slab": "Laje polida de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick": "Tijolos polidos de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Escadas de tijolos polidos de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_slab": "Laje de tijolos polidos de Anfibolito", + "item.mineralogy.gypsum_dust": "Pó de gesso", + "item.mineralogy.sulfur_dust": "Pó de enxofre", + "item.mineralogy.phosphorous_dust": "Pó de fósforo", + "item.mineralogy.nitrate_dust": "Pó de nitrato", + "item.mineralogy.mineral_fertilizer": "Fertilizante mineral", + "block.mineralogy.chert": "Sílex", + "block.mineralogy.gypsum": "Gesso", + "block.mineralogy.pumice": "Pedra-pomes", + "block.mineralogy.sulfur_block": "Enxofre", + "block.mineralogy.sulfur_ore": "Minério de enxofre", + "block.mineralogy.phosphorous_block": "Fósforo", + "block.mineralogy.phosphorous_ore": "Minério de fósforo", + "block.mineralogy.nitrate_block": "Nitrato", + "block.mineralogy.nitrate_ore": "Minério de nitrato", + "block.mineralogy.drywall_black": "Placa de gesso preta", + "block.mineralogy.drywall_red": "Placa de gesso vermelha", + "block.mineralogy.drywall_green": "Placa de gesso verde", + "block.mineralogy.drywall_brown": "Placa de gesso marrom", + "block.mineralogy.drywall_blue": "Placa de gesso azul", + "block.mineralogy.drywall_purple": "Placa de gesso roxa", + "block.mineralogy.drywall_cyan": "Placa de gesso ciana", + "block.mineralogy.drywall_silver": "Placa de gesso cinza-clara", + "block.mineralogy.drywall_gray": "Placa de gesso cinza", + "block.mineralogy.drywall_pink": "Placa de gesso rosa", + "block.mineralogy.drywall_lime": "Placa de gesso verde-limão", + "block.mineralogy.drywall_yellow": "Placa de gesso amarela", + "block.mineralogy.drywall_light_blue": "Placa de gesso azul-clara", + "block.mineralogy.drywall_magenta": "Placa de gesso magenta", + "block.mineralogy.drywall_orange": "Placa de gesso laranja", + "block.mineralogy.drywall_white": "Placa de gesso branca", + "block.mineralogy.andesite_wall": "Muro de Andesito", + "block.mineralogy.andesite_brick_wall": "Muro de tijolos de Andesito", + "block.mineralogy.andesite_smooth_wall": "Muro polido de Andesito", + "block.mineralogy.andesite_smooth_brick_wall": "Muro de tijolos polidos de Andesito", + "block.mineralogy.basalt_wall": "Muro de Basalto", + "block.mineralogy.basalt_brick_wall": "Muro de tijolos de Basalto", + "block.mineralogy.basalt_smooth_wall": "Muro polido de Basalto", + "block.mineralogy.basalt_smooth_brick_wall": "Muro de tijolos polidos de Basalto", + "block.mineralogy.diorite_wall": "Muro de Diorito", + "block.mineralogy.diorite_brick_wall": "Muro de tijolos de Diorito", + "block.mineralogy.diorite_smooth_wall": "Muro polido de Diorito", + "block.mineralogy.diorite_smooth_brick_wall": "Muro de tijolos polidos de Diorito", + "block.mineralogy.granite_wall": "Muro de Granito", + "block.mineralogy.granite_brick_wall": "Muro de tijolos de Granito", + "block.mineralogy.granite_smooth_wall": "Muro polido de Granito", + "block.mineralogy.granite_smooth_brick_wall": "Muro de tijolos polidos de Granito", + "block.mineralogy.rhyolite_wall": "Muro de Riolito", + "block.mineralogy.rhyolite_brick_wall": "Muro de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth_wall": "Muro polido de Riolito", + "block.mineralogy.rhyolite_smooth_brick_wall": "Muro de tijolos polidos de Riolito", + "block.mineralogy.pegmatite_wall": "Muro de Pegmatito", + "block.mineralogy.pegmatite_brick_wall": "Muro de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth_wall": "Muro polido de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_wall": "Muro de tijolos polidos de Pegmatito", + "block.mineralogy.shale_wall": "Muro de Folhelho", + "block.mineralogy.shale_brick_wall": "Muro de tijolos de Folhelho", + "block.mineralogy.shale_smooth_wall": "Muro polido de Folhelho", + "block.mineralogy.shale_smooth_brick_wall": "Muro de tijolos polidos de Folhelho", + "block.mineralogy.conglomerate_wall": "Muro de Conglomerado", + "block.mineralogy.conglomerate_brick_wall": "Muro de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth_wall": "Muro polido de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_wall": "Muro de tijolos polidos de Conglomerado", + "block.mineralogy.dolomite_wall": "Muro de Dolomita", + "block.mineralogy.dolomite_brick_wall": "Muro de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth_wall": "Muro polido de Dolomita", + "block.mineralogy.dolomite_smooth_brick_wall": "Muro de tijolos polidos de Dolomita", + "block.mineralogy.limestone_wall": "Muro de Calcário", + "block.mineralogy.limestone_brick_wall": "Muro de tijolos de Calcário", + "block.mineralogy.limestone_smooth_wall": "Muro polido de Calcário", + "block.mineralogy.limestone_smooth_brick_wall": "Muro de tijolos polidos de Calcário", + "block.mineralogy.marble_wall": "Muro de Mármore", + "block.mineralogy.marble_brick_wall": "Muro de tijolos de Mármore", + "block.mineralogy.marble_smooth_wall": "Muro polido de Mármore", + "block.mineralogy.marble_smooth_brick_wall": "Muro de tijolos polidos de Mármore", + "block.mineralogy.slate_wall": "Muro de Ardósia", + "block.mineralogy.slate_brick_wall": "Muro de tijolos de Ardósia", + "block.mineralogy.slate_smooth_wall": "Muro polido de Ardósia", + "block.mineralogy.slate_smooth_brick_wall": "Muro de tijolos polidos de Ardósia", + "block.mineralogy.schist_wall": "Muro de Xisto", + "block.mineralogy.schist_brick_wall": "Muro de tijolos de Xisto", + "block.mineralogy.schist_smooth_wall": "Muro polido de Xisto", + "block.mineralogy.schist_smooth_brick_wall": "Muro de tijolos polidos de Xisto", + "block.mineralogy.gneiss_wall": "Muro de Gnaisse", + "block.mineralogy.gneiss_brick_wall": "Muro de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth_wall": "Muro polido de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_wall": "Muro de tijolos polidos de Gnaisse", + "block.mineralogy.phyllite_wall": "Muro de Filito", + "block.mineralogy.phyllite_brick_wall": "Muro de tijolos de Filito", + "block.mineralogy.phyllite_smooth_wall": "Muro polido de Filito", + "block.mineralogy.phyllite_smooth_brick_wall": "Muro de tijolos polidos de Filito", + "block.mineralogy.amphibolite_wall": "Muro de Anfibolito", + "block.mineralogy.amphibolite_brick_wall": "Muro de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth_wall": "Muro polido de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_wall": "Muro de tijolos polidos de Anfibolito", + "block.mineralogy.andesite_furnace": "Fornalha de Andesito", + "block.mineralogy.andesite_brick_furnace": "Fornalha de tijolos de Andesito", + "block.mineralogy.andesite_smooth_furnace": "Fornalha polida de Andesito", + "block.mineralogy.andesite_smooth_brick_furnace": "Fornalha de tijolos polidos de Andesito", + "block.mineralogy.basalt_furnace": "Fornalha de Basalto", + "block.mineralogy.basalt_brick_furnace": "Fornalha de tijolos de Basalto", + "block.mineralogy.basalt_smooth_furnace": "Fornalha polida de Basalto", + "block.mineralogy.basalt_smooth_brick_furnace": "Fornalha de tijolos polidos de Basalto", + "block.mineralogy.diorite_furnace": "Fornalha de Diorito", + "block.mineralogy.diorite_brick_furnace": "Fornalha de tijolos de Diorito", + "block.mineralogy.diorite_smooth_furnace": "Fornalha polida de Diorito", + "block.mineralogy.diorite_smooth_brick_furnace": "Fornalha de tijolos polidos de Diorito", + "block.mineralogy.granite_furnace": "Fornalha de Granito", + "block.mineralogy.granite_brick_furnace": "Fornalha de tijolos de Granito", + "block.mineralogy.granite_smooth_furnace": "Fornalha polida de Granito", + "block.mineralogy.granite_smooth_brick_furnace": "Fornalha de tijolos polidos de Granito", + "block.mineralogy.rhyolite_furnace": "Fornalha de Riolito", + "block.mineralogy.rhyolite_brick_furnace": "Fornalha de tijolos de Riolito", + "block.mineralogy.rhyolite_smooth_furnace": "Fornalha polida de Riolito", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Fornalha de tijolos polidos de Riolito", + "block.mineralogy.pegmatite_furnace": "Fornalha de Pegmatito", + "block.mineralogy.pegmatite_brick_furnace": "Fornalha de tijolos de Pegmatito", + "block.mineralogy.pegmatite_smooth_furnace": "Fornalha polida de Pegmatito", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Fornalha de tijolos polidos de Pegmatito", + "block.mineralogy.shale_furnace": "Fornalha de Folhelho", + "block.mineralogy.shale_brick_furnace": "Fornalha de tijolos de Folhelho", + "block.mineralogy.shale_smooth_furnace": "Fornalha polida de Folhelho", + "block.mineralogy.shale_smooth_brick_furnace": "Fornalha de tijolos polidos de Folhelho", + "block.mineralogy.conglomerate_furnace": "Fornalha de Conglomerado", + "block.mineralogy.conglomerate_brick_furnace": "Fornalha de tijolos de Conglomerado", + "block.mineralogy.conglomerate_smooth_furnace": "Fornalha polida de Conglomerado", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Fornalha de tijolos polidos de Conglomerado", + "block.mineralogy.dolomite_furnace": "Fornalha de Dolomita", + "block.mineralogy.dolomite_brick_furnace": "Fornalha de tijolos de Dolomita", + "block.mineralogy.dolomite_smooth_furnace": "Fornalha polida de Dolomita", + "block.mineralogy.dolomite_smooth_brick_furnace": "Fornalha de tijolos polidos de Dolomita", + "block.mineralogy.limestone_furnace": "Fornalha de Calcário", + "block.mineralogy.limestone_brick_furnace": "Fornalha de tijolos de Calcário", + "block.mineralogy.limestone_smooth_furnace": "Fornalha polida de Calcário", + "block.mineralogy.limestone_smooth_brick_furnace": "Fornalha de tijolos polidos de Calcário", + "block.mineralogy.marble_furnace": "Fornalha de Mármore", + "block.mineralogy.marble_brick_furnace": "Fornalha de tijolos de Mármore", + "block.mineralogy.marble_smooth_furnace": "Fornalha polida de Mármore", + "block.mineralogy.marble_smooth_brick_furnace": "Fornalha de tijolos polidos de Mármore", + "block.mineralogy.slate_furnace": "Fornalha de Ardósia", + "block.mineralogy.slate_brick_furnace": "Fornalha de tijolos de Ardósia", + "block.mineralogy.slate_smooth_furnace": "Fornalha polida de Ardósia", + "block.mineralogy.slate_smooth_brick_furnace": "Fornalha de tijolos polidos de Ardósia", + "block.mineralogy.schist_furnace": "Fornalha de Xisto", + "block.mineralogy.schist_brick_furnace": "Fornalha de tijolos de Xisto", + "block.mineralogy.schist_smooth_furnace": "Fornalha polida de Xisto", + "block.mineralogy.schist_smooth_brick_furnace": "Fornalha de tijolos polidos de Xisto", + "block.mineralogy.gneiss_furnace": "Fornalha de Gnaisse", + "block.mineralogy.gneiss_brick_furnace": "Fornalha de tijolos de Gnaisse", + "block.mineralogy.gneiss_smooth_furnace": "Fornalha polida de Gnaisse", + "block.mineralogy.gneiss_smooth_brick_furnace": "Fornalha de tijolos polidos de Gnaisse", + "block.mineralogy.phyllite_furnace": "Fornalha de Filito", + "block.mineralogy.phyllite_brick_furnace": "Fornalha de tijolos de Filito", + "block.mineralogy.phyllite_smooth_furnace": "Fornalha polida de Filito", + "block.mineralogy.phyllite_smooth_brick_furnace": "Fornalha de tijolos polidos de Filito", + "block.mineralogy.amphibolite_furnace": "Fornalha de Anfibolito", + "block.mineralogy.amphibolite_brick_furnace": "Fornalha de tijolos de Anfibolito", + "block.mineralogy.amphibolite_smooth_furnace": "Fornalha polida de Anfibolito", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Fornalha de tijolos polidos de Anfibolito", + "block.mineralogy.diabase": "Diabásio", + "block.mineralogy.diabase_stairs": "Escadas de Diabásio", + "block.mineralogy.diabase_slab": "Laje de Diabásio", + "block.mineralogy.diabase_brick": "Tijolos de Diabásio", + "block.mineralogy.diabase_brick_stairs": "Escadas de tijolos de Diabásio", + "block.mineralogy.diabase_brick_slab": "Laje de tijolos de Diabásio", + "block.mineralogy.diabase_smooth": "Bloco polido de Diabásio", + "block.mineralogy.diabase_smooth_stairs": "Escadas polidas de Diabásio", + "block.mineralogy.diabase_smooth_slab": "Laje polida de Diabásio", + "block.mineralogy.diabase_smooth_brick": "Tijolos polidos de Diabásio", + "block.mineralogy.diabase_smooth_brick_stairs": "Escadas de tijolos polidos de Diabásio", + "block.mineralogy.diabase_smooth_brick_slab": "Laje de tijolos polidos de Diabásio", + "block.mineralogy.diabase_wall": "Muro de Diabásio", + "block.mineralogy.diabase_brick_wall": "Muro de tijolos de Diabásio", + "block.mineralogy.diabase_smooth_wall": "Muro polido de Diabásio", + "block.mineralogy.diabase_smooth_brick_wall": "Muro de tijolos polidos de Diabásio", + "block.mineralogy.diabase_furnace": "Fornalha de Diabásio", + "block.mineralogy.diabase_brick_furnace": "Fornalha de tijolos de Diabásio", + "block.mineralogy.diabase_smooth_furnace": "Fornalha polida de Diabásio", + "block.mineralogy.diabase_smooth_brick_furnace": "Fornalha de tijolos polidos de Diabásio", + "block.mineralogy.gabbro": "Gabro", + "block.mineralogy.gabbro_stairs": "Escadas de Gabro", + "block.mineralogy.gabbro_slab": "Laje de Gabro", + "block.mineralogy.gabbro_brick": "Tijolos de Gabro", + "block.mineralogy.gabbro_brick_stairs": "Escadas de tijolos de Gabro", + "block.mineralogy.gabbro_brick_slab": "Laje de tijolos de Gabro", + "block.mineralogy.gabbro_smooth": "Bloco polido de Gabro", + "block.mineralogy.gabbro_smooth_stairs": "Escadas polidas de Gabro", + "block.mineralogy.gabbro_smooth_slab": "Laje polida de Gabro", + "block.mineralogy.gabbro_smooth_brick": "Tijolos polidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_stairs": "Escadas de tijolos polidos de Gabro", + "block.mineralogy.gabbro_smooth_brick_slab": "Laje de tijolos polidos de Gabro", + "block.mineralogy.gabbro_wall": "Muro de Gabro", + "block.mineralogy.gabbro_brick_wall": "Muro de tijolos de Gabro", + "block.mineralogy.gabbro_smooth_wall": "Muro polido de Gabro", + "block.mineralogy.gabbro_smooth_brick_wall": "Muro de tijolos polidos de Gabro", + "block.mineralogy.gabbro_furnace": "Fornalha de Gabro", + "block.mineralogy.gabbro_brick_furnace": "Fornalha de tijolos de Gabro", + "block.mineralogy.gabbro_smooth_furnace": "Fornalha polida de Gabro", + "block.mineralogy.gabbro_smooth_brick_furnace": "Fornalha de tijolos polidos de Gabro", + "block.mineralogy.peridotite": "Peridotito", + "block.mineralogy.peridotite_stairs": "Escadas de Peridotito", + "block.mineralogy.peridotite_slab": "Laje de Peridotito", + "block.mineralogy.peridotite_brick": "Tijolos de Peridotito", + "block.mineralogy.peridotite_brick_stairs": "Escadas de tijolos de Peridotito", + "block.mineralogy.peridotite_brick_slab": "Laje de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth": "Bloco polido de Peridotito", + "block.mineralogy.peridotite_smooth_stairs": "Escadas polidas de Peridotito", + "block.mineralogy.peridotite_smooth_slab": "Laje polida de Peridotito", + "block.mineralogy.peridotite_smooth_brick": "Tijolos polidos de Peridotito", + "block.mineralogy.peridotite_smooth_brick_stairs": "Escadas de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_smooth_brick_slab": "Laje de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_wall": "Muro de Peridotito", + "block.mineralogy.peridotite_brick_wall": "Muro de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth_wall": "Muro polido de Peridotito", + "block.mineralogy.peridotite_smooth_brick_wall": "Muro de tijolos polidos de Peridotito", + "block.mineralogy.peridotite_furnace": "Fornalha de Peridotito", + "block.mineralogy.peridotite_brick_furnace": "Fornalha de tijolos de Peridotito", + "block.mineralogy.peridotite_smooth_furnace": "Fornalha polida de Peridotito", + "block.mineralogy.peridotite_smooth_brick_furnace": "Fornalha de tijolos polidos de Peridotito", + "block.mineralogy.basaltic_glass": "Vidro basáltico", + "block.mineralogy.basaltic_glass_stairs": "Escadas de Vidro basáltico", + "block.mineralogy.basaltic_glass_slab": "Laje de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick": "Tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_stairs": "Escadas de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_slab": "Laje de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth": "Bloco polido de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_stairs": "Escadas polidas de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_slab": "Laje polida de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick": "Tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Escadas de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Laje de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_wall": "Muro de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_wall": "Muro de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_wall": "Muro polido de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Muro de tijolos polidos de Vidro basáltico", + "block.mineralogy.basaltic_glass_furnace": "Fornalha de Vidro basáltico", + "block.mineralogy.basaltic_glass_brick_furnace": "Fornalha de tijolos de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_furnace": "Fornalha polida de Vidro basáltico", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Fornalha de tijolos polidos de Vidro basáltico", + "block.mineralogy.scoria": "Escória", + "block.mineralogy.scoria_stairs": "Escadas de Escória", + "block.mineralogy.scoria_slab": "Laje de Escória", + "block.mineralogy.scoria_brick": "Tijolos de Escória", + "block.mineralogy.scoria_brick_stairs": "Escadas de tijolos de Escória", + "block.mineralogy.scoria_brick_slab": "Laje de tijolos de Escória", + "block.mineralogy.scoria_smooth": "Bloco polido de Escória", + "block.mineralogy.scoria_smooth_stairs": "Escadas polidas de Escória", + "block.mineralogy.scoria_smooth_slab": "Laje polida de Escória", + "block.mineralogy.scoria_smooth_brick": "Tijolos polidos de Escória", + "block.mineralogy.scoria_smooth_brick_stairs": "Escadas de tijolos polidos de Escória", + "block.mineralogy.scoria_smooth_brick_slab": "Laje de tijolos polidos de Escória", + "block.mineralogy.scoria_wall": "Muro de Escória", + "block.mineralogy.scoria_brick_wall": "Muro de tijolos de Escória", + "block.mineralogy.scoria_smooth_wall": "Muro polido de Escória", + "block.mineralogy.scoria_smooth_brick_wall": "Muro de tijolos polidos de Escória", + "block.mineralogy.scoria_furnace": "Fornalha de Escória", + "block.mineralogy.scoria_brick_furnace": "Fornalha de tijolos de Escória", + "block.mineralogy.scoria_smooth_furnace": "Fornalha polida de Escória", + "block.mineralogy.scoria_smooth_brick_furnace": "Fornalha de tijolos polidos de Escória", + "block.mineralogy.tuff": "Tufo", + "block.mineralogy.tuff_stairs": "Escadas de Tufo", + "block.mineralogy.tuff_slab": "Laje de Tufo", + "block.mineralogy.tuff_brick": "Tijolos de Tufo", + "block.mineralogy.tuff_brick_stairs": "Escadas de tijolos de Tufo", + "block.mineralogy.tuff_brick_slab": "Laje de tijolos de Tufo", + "block.mineralogy.tuff_smooth": "Bloco polido de Tufo", + "block.mineralogy.tuff_smooth_stairs": "Escadas polidas de Tufo", + "block.mineralogy.tuff_smooth_slab": "Laje polida de Tufo", + "block.mineralogy.tuff_smooth_brick": "Tijolos polidos de Tufo", + "block.mineralogy.tuff_smooth_brick_stairs": "Escadas de tijolos polidos de Tufo", + "block.mineralogy.tuff_smooth_brick_slab": "Laje de tijolos polidos de Tufo", + "block.mineralogy.tuff_wall": "Muro de Tufo", + "block.mineralogy.tuff_brick_wall": "Muro de tijolos de Tufo", + "block.mineralogy.tuff_smooth_wall": "Muro polido de Tufo", + "block.mineralogy.tuff_smooth_brick_wall": "Muro de tijolos polidos de Tufo", + "block.mineralogy.tuff_furnace": "Fornalha de Tufo", + "block.mineralogy.tuff_brick_furnace": "Fornalha de tijolos de Tufo", + "block.mineralogy.tuff_smooth_furnace": "Fornalha polida de Tufo", + "block.mineralogy.tuff_smooth_brick_furnace": "Fornalha de tijolos polidos de Tufo", + "block.mineralogy.siltstone": "Siltito", + "block.mineralogy.siltstone_stairs": "Escadas de Siltito", + "block.mineralogy.siltstone_slab": "Laje de Siltito", + "block.mineralogy.siltstone_brick": "Tijolos de Siltito", + "block.mineralogy.siltstone_brick_stairs": "Escadas de tijolos de Siltito", + "block.mineralogy.siltstone_brick_slab": "Laje de tijolos de Siltito", + "block.mineralogy.siltstone_smooth": "Bloco polido de Siltito", + "block.mineralogy.siltstone_smooth_stairs": "Escadas polidas de Siltito", + "block.mineralogy.siltstone_smooth_slab": "Laje polida de Siltito", + "block.mineralogy.siltstone_smooth_brick": "Tijolos polidos de Siltito", + "block.mineralogy.siltstone_smooth_brick_stairs": "Escadas de tijolos polidos de Siltito", + "block.mineralogy.siltstone_smooth_brick_slab": "Laje de tijolos polidos de Siltito", + "block.mineralogy.siltstone_wall": "Muro de Siltito", + "block.mineralogy.siltstone_brick_wall": "Muro de tijolos de Siltito", + "block.mineralogy.siltstone_smooth_wall": "Muro polido de Siltito", + "block.mineralogy.siltstone_smooth_brick_wall": "Muro de tijolos polidos de Siltito", + "block.mineralogy.siltstone_furnace": "Fornalha de Siltito", + "block.mineralogy.siltstone_brick_furnace": "Fornalha de tijolos de Siltito", + "block.mineralogy.siltstone_smooth_furnace": "Fornalha polida de Siltito", + "block.mineralogy.siltstone_smooth_brick_furnace": "Fornalha de tijolos polidos de Siltito", + "block.mineralogy.rock_salt": "Sal-gema", + "block.mineralogy.rock_salt_stairs": "Escadas de Sal-gema", + "block.mineralogy.rock_salt_slab": "Laje de Sal-gema", + "block.mineralogy.rock_salt_brick": "Tijolos de Sal-gema", + "block.mineralogy.rock_salt_brick_stairs": "Escadas de tijolos de Sal-gema", + "block.mineralogy.rock_salt_brick_slab": "Laje de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth": "Bloco polido de Sal-gema", + "block.mineralogy.rock_salt_smooth_stairs": "Escadas polidas de Sal-gema", + "block.mineralogy.rock_salt_smooth_slab": "Laje polida de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick": "Tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Escadas de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_slab": "Laje de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_wall": "Muro de Sal-gema", + "block.mineralogy.rock_salt_brick_wall": "Muro de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth_wall": "Muro polido de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_wall": "Muro de tijolos polidos de Sal-gema", + "block.mineralogy.rock_salt_furnace": "Fornalha de Sal-gema", + "block.mineralogy.rock_salt_brick_furnace": "Fornalha de tijolos de Sal-gema", + "block.mineralogy.rock_salt_smooth_furnace": "Fornalha polida de Sal-gema", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Fornalha de tijolos polidos de Sal-gema", + "block.mineralogy.hornfels": "Cornubianito", + "block.mineralogy.hornfels_stairs": "Escadas de Cornubianito", + "block.mineralogy.hornfels_slab": "Laje de Cornubianito", + "block.mineralogy.hornfels_brick": "Tijolos de Cornubianito", + "block.mineralogy.hornfels_brick_stairs": "Escadas de tijolos de Cornubianito", + "block.mineralogy.hornfels_brick_slab": "Laje de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth": "Bloco polido de Cornubianito", + "block.mineralogy.hornfels_smooth_stairs": "Escadas polidas de Cornubianito", + "block.mineralogy.hornfels_smooth_slab": "Laje polida de Cornubianito", + "block.mineralogy.hornfels_smooth_brick": "Tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_stairs": "Escadas de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_slab": "Laje de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_wall": "Muro de Cornubianito", + "block.mineralogy.hornfels_brick_wall": "Muro de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth_wall": "Muro polido de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_wall": "Muro de tijolos polidos de Cornubianito", + "block.mineralogy.hornfels_furnace": "Fornalha de Cornubianito", + "block.mineralogy.hornfels_brick_furnace": "Fornalha de tijolos de Cornubianito", + "block.mineralogy.hornfels_smooth_furnace": "Fornalha polida de Cornubianito", + "block.mineralogy.hornfels_smooth_brick_furnace": "Fornalha de tijolos polidos de Cornubianito", + "block.mineralogy.quartzite": "Quartzito", + "block.mineralogy.quartzite_stairs": "Escadas de Quartzito", + "block.mineralogy.quartzite_slab": "Laje de Quartzito", + "block.mineralogy.quartzite_brick": "Tijolos de Quartzito", + "block.mineralogy.quartzite_brick_stairs": "Escadas de tijolos de Quartzito", + "block.mineralogy.quartzite_brick_slab": "Laje de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth": "Bloco polido de Quartzito", + "block.mineralogy.quartzite_smooth_stairs": "Escadas polidas de Quartzito", + "block.mineralogy.quartzite_smooth_slab": "Laje polida de Quartzito", + "block.mineralogy.quartzite_smooth_brick": "Tijolos polidos de Quartzito", + "block.mineralogy.quartzite_smooth_brick_stairs": "Escadas de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_smooth_brick_slab": "Laje de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_wall": "Muro de Quartzito", + "block.mineralogy.quartzite_brick_wall": "Muro de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth_wall": "Muro polido de Quartzito", + "block.mineralogy.quartzite_smooth_brick_wall": "Muro de tijolos polidos de Quartzito", + "block.mineralogy.quartzite_furnace": "Fornalha de Quartzito", + "block.mineralogy.quartzite_brick_furnace": "Fornalha de tijolos de Quartzito", + "block.mineralogy.quartzite_smooth_furnace": "Fornalha polida de Quartzito", + "block.mineralogy.quartzite_smooth_brick_furnace": "Fornalha de tijolos polidos de Quartzito", + "block.mineralogy.novaculite": "Novaculita", + "block.mineralogy.novaculite_stairs": "Escadas de Novaculita", + "block.mineralogy.novaculite_slab": "Laje de Novaculita", + "block.mineralogy.novaculite_brick": "Tijolos de Novaculita", + "block.mineralogy.novaculite_brick_stairs": "Escadas de tijolos de Novaculita", + "block.mineralogy.novaculite_brick_slab": "Laje de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth": "Bloco polido de Novaculita", + "block.mineralogy.novaculite_smooth_stairs": "Escadas polidas de Novaculita", + "block.mineralogy.novaculite_smooth_slab": "Laje polida de Novaculita", + "block.mineralogy.novaculite_smooth_brick": "Tijolos polidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_stairs": "Escadas de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_smooth_brick_slab": "Laje de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_wall": "Muro de Novaculita", + "block.mineralogy.novaculite_brick_wall": "Muro de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth_wall": "Muro polido de Novaculita", + "block.mineralogy.novaculite_smooth_brick_wall": "Muro de tijolos polidos de Novaculita", + "block.mineralogy.novaculite_furnace": "Fornalha de Novaculita", + "block.mineralogy.novaculite_brick_furnace": "Fornalha de tijolos de Novaculita", + "block.mineralogy.novaculite_smooth_furnace": "Fornalha polida de Novaculita", + "block.mineralogy.novaculite_smooth_brick_furnace": "Fornalha de tijolos polidos de Novaculita", + "block.mineralogy.chalk": "Giz", + "item.mineralogy.chalk_dust": "Pó de giz", + "item.mineralogy.salt_dust": "Sal", + "item.mineralogy.rock_salt_dust": "Cristais de sal-gema", + "block.mineralogy.rocksaltlamp": "Luminária de sal-gema", + "block.mineralogy.rocksaltstreetlamp": "Poste de luz de sal-gema", + "block.mineralogy.andesite_relief_axe": "Baixo-relevo de Andesito (machado)", + "block.mineralogy.andesite_relief_blank": "Baixo-relevo de Andesito (sem motivo)", + "block.mineralogy.andesite_relief_cross": "Baixo-relevo de Andesito (cruz)", + "block.mineralogy.andesite_relief_hammer": "Baixo-relevo de Andesito (martelo)", + "block.mineralogy.andesite_relief_hoe": "Baixo-relevo de Andesito (enxada)", + "block.mineralogy.andesite_relief_horizontal": "Baixo-relevo de Andesito (horizontal)", + "block.mineralogy.andesite_relief_i": "Baixo-relevo de Andesito (I)", + "block.mineralogy.andesite_relief_left": "Baixo-relevo de Andesito (esquerda)", + "block.mineralogy.andesite_relief_pickaxe": "Baixo-relevo de Andesito (picareta)", + "block.mineralogy.andesite_relief_plus": "Baixo-relevo de Andesito (sinal de mais)", + "block.mineralogy.andesite_relief_right": "Baixo-relevo de Andesito (direita)", + "block.mineralogy.andesite_relief_sword": "Baixo-relevo de Andesito (espada)", + "block.mineralogy.andesite_relief_vertical": "Baixo-relevo de Andesito (vertical)", + "block.mineralogy.basalt_relief_axe": "Baixo-relevo de Basalto (machado)", + "block.mineralogy.basalt_relief_blank": "Baixo-relevo de Basalto (sem motivo)", + "block.mineralogy.basalt_relief_cross": "Baixo-relevo de Basalto (cruz)", + "block.mineralogy.basalt_relief_hammer": "Baixo-relevo de Basalto (martelo)", + "block.mineralogy.basalt_relief_hoe": "Baixo-relevo de Basalto (enxada)", + "block.mineralogy.basalt_relief_horizontal": "Baixo-relevo de Basalto (horizontal)", + "block.mineralogy.basalt_relief_i": "Baixo-relevo de Basalto (I)", + "block.mineralogy.basalt_relief_left": "Baixo-relevo de Basalto (esquerda)", + "block.mineralogy.basalt_relief_pickaxe": "Baixo-relevo de Basalto (picareta)", + "block.mineralogy.basalt_relief_plus": "Baixo-relevo de Basalto (sinal de mais)", + "block.mineralogy.basalt_relief_right": "Baixo-relevo de Basalto (direita)", + "block.mineralogy.basalt_relief_sword": "Baixo-relevo de Basalto (espada)", + "block.mineralogy.basalt_relief_vertical": "Baixo-relevo de Basalto (vertical)", + "block.mineralogy.diorite_relief_axe": "Baixo-relevo de Diorito (machado)", + "block.mineralogy.diorite_relief_blank": "Baixo-relevo de Diorito (sem motivo)", + "block.mineralogy.diorite_relief_cross": "Baixo-relevo de Diorito (cruz)", + "block.mineralogy.diorite_relief_hammer": "Baixo-relevo de Diorito (martelo)", + "block.mineralogy.diorite_relief_hoe": "Baixo-relevo de Diorito (enxada)", + "block.mineralogy.diorite_relief_horizontal": "Baixo-relevo de Diorito (horizontal)", + "block.mineralogy.diorite_relief_i": "Baixo-relevo de Diorito (I)", + "block.mineralogy.diorite_relief_left": "Baixo-relevo de Diorito (esquerda)", + "block.mineralogy.diorite_relief_pickaxe": "Baixo-relevo de Diorito (picareta)", + "block.mineralogy.diorite_relief_plus": "Baixo-relevo de Diorito (sinal de mais)", + "block.mineralogy.diorite_relief_right": "Baixo-relevo de Diorito (direita)", + "block.mineralogy.diorite_relief_sword": "Baixo-relevo de Diorito (espada)", + "block.mineralogy.diorite_relief_vertical": "Baixo-relevo de Diorito (vertical)", + "block.mineralogy.granite_relief_axe": "Baixo-relevo de Granito (machado)", + "block.mineralogy.granite_relief_blank": "Baixo-relevo de Granito (sem motivo)", + "block.mineralogy.granite_relief_cross": "Baixo-relevo de Granito (cruz)", + "block.mineralogy.granite_relief_hammer": "Baixo-relevo de Granito (martelo)", + "block.mineralogy.granite_relief_hoe": "Baixo-relevo de Granito (enxada)", + "block.mineralogy.granite_relief_horizontal": "Baixo-relevo de Granito (horizontal)", + "block.mineralogy.granite_relief_i": "Baixo-relevo de Granito (I)", + "block.mineralogy.granite_relief_left": "Baixo-relevo de Granito (esquerda)", + "block.mineralogy.granite_relief_pickaxe": "Baixo-relevo de Granito (picareta)", + "block.mineralogy.granite_relief_plus": "Baixo-relevo de Granito (sinal de mais)", + "block.mineralogy.granite_relief_right": "Baixo-relevo de Granito (direita)", + "block.mineralogy.granite_relief_sword": "Baixo-relevo de Granito (espada)", + "block.mineralogy.granite_relief_vertical": "Baixo-relevo de Granito (vertical)", + "block.mineralogy.rhyolite_relief_axe": "Baixo-relevo de Riolito (machado)", + "block.mineralogy.rhyolite_relief_blank": "Baixo-relevo de Riolito (sem motivo)", + "block.mineralogy.rhyolite_relief_cross": "Baixo-relevo de Riolito (cruz)", + "block.mineralogy.rhyolite_relief_hammer": "Baixo-relevo de Riolito (martelo)", + "block.mineralogy.rhyolite_relief_hoe": "Baixo-relevo de Riolito (enxada)", + "block.mineralogy.rhyolite_relief_horizontal": "Baixo-relevo de Riolito (horizontal)", + "block.mineralogy.rhyolite_relief_i": "Baixo-relevo de Riolito (I)", + "block.mineralogy.rhyolite_relief_left": "Baixo-relevo de Riolito (esquerda)", + "block.mineralogy.rhyolite_relief_pickaxe": "Baixo-relevo de Riolito (picareta)", + "block.mineralogy.rhyolite_relief_plus": "Baixo-relevo de Riolito (sinal de mais)", + "block.mineralogy.rhyolite_relief_right": "Baixo-relevo de Riolito (direita)", + "block.mineralogy.rhyolite_relief_sword": "Baixo-relevo de Riolito (espada)", + "block.mineralogy.rhyolite_relief_vertical": "Baixo-relevo de Riolito (vertical)", + "block.mineralogy.pegmatite_relief_axe": "Baixo-relevo de Pegmatito (machado)", + "block.mineralogy.pegmatite_relief_blank": "Baixo-relevo de Pegmatito (sem motivo)", + "block.mineralogy.pegmatite_relief_cross": "Baixo-relevo de Pegmatito (cruz)", + "block.mineralogy.pegmatite_relief_hammer": "Baixo-relevo de Pegmatito (martelo)", + "block.mineralogy.pegmatite_relief_hoe": "Baixo-relevo de Pegmatito (enxada)", + "block.mineralogy.pegmatite_relief_horizontal": "Baixo-relevo de Pegmatito (horizontal)", + "block.mineralogy.pegmatite_relief_i": "Baixo-relevo de Pegmatito (I)", + "block.mineralogy.pegmatite_relief_left": "Baixo-relevo de Pegmatito (esquerda)", + "block.mineralogy.pegmatite_relief_pickaxe": "Baixo-relevo de Pegmatito (picareta)", + "block.mineralogy.pegmatite_relief_plus": "Baixo-relevo de Pegmatito (sinal de mais)", + "block.mineralogy.pegmatite_relief_right": "Baixo-relevo de Pegmatito (direita)", + "block.mineralogy.pegmatite_relief_sword": "Baixo-relevo de Pegmatito (espada)", + "block.mineralogy.pegmatite_relief_vertical": "Baixo-relevo de Pegmatito (vertical)", + "block.mineralogy.shale_relief_axe": "Baixo-relevo de Folhelho (machado)", + "block.mineralogy.shale_relief_blank": "Baixo-relevo de Folhelho (sem motivo)", + "block.mineralogy.shale_relief_cross": "Baixo-relevo de Folhelho (cruz)", + "block.mineralogy.shale_relief_hammer": "Baixo-relevo de Folhelho (martelo)", + "block.mineralogy.shale_relief_hoe": "Baixo-relevo de Folhelho (enxada)", + "block.mineralogy.shale_relief_horizontal": "Baixo-relevo de Folhelho (horizontal)", + "block.mineralogy.shale_relief_i": "Baixo-relevo de Folhelho (I)", + "block.mineralogy.shale_relief_left": "Baixo-relevo de Folhelho (esquerda)", + "block.mineralogy.shale_relief_pickaxe": "Baixo-relevo de Folhelho (picareta)", + "block.mineralogy.shale_relief_plus": "Baixo-relevo de Folhelho (sinal de mais)", + "block.mineralogy.shale_relief_right": "Baixo-relevo de Folhelho (direita)", + "block.mineralogy.shale_relief_sword": "Baixo-relevo de Folhelho (espada)", + "block.mineralogy.shale_relief_vertical": "Baixo-relevo de Folhelho (vertical)", + "block.mineralogy.conglomerate_relief_axe": "Baixo-relevo de Conglomerado (machado)", + "block.mineralogy.conglomerate_relief_blank": "Baixo-relevo de Conglomerado (sem motivo)", + "block.mineralogy.conglomerate_relief_cross": "Baixo-relevo de Conglomerado (cruz)", + "block.mineralogy.conglomerate_relief_hammer": "Baixo-relevo de Conglomerado (martelo)", + "block.mineralogy.conglomerate_relief_hoe": "Baixo-relevo de Conglomerado (enxada)", + "block.mineralogy.conglomerate_relief_horizontal": "Baixo-relevo de Conglomerado (horizontal)", + "block.mineralogy.conglomerate_relief_i": "Baixo-relevo de Conglomerado (I)", + "block.mineralogy.conglomerate_relief_left": "Baixo-relevo de Conglomerado (esquerda)", + "block.mineralogy.conglomerate_relief_pickaxe": "Baixo-relevo de Conglomerado (picareta)", + "block.mineralogy.conglomerate_relief_plus": "Baixo-relevo de Conglomerado (sinal de mais)", + "block.mineralogy.conglomerate_relief_right": "Baixo-relevo de Conglomerado (direita)", + "block.mineralogy.conglomerate_relief_sword": "Baixo-relevo de Conglomerado (espada)", + "block.mineralogy.conglomerate_relief_vertical": "Baixo-relevo de Conglomerado (vertical)", + "block.mineralogy.dolomite_relief_axe": "Baixo-relevo de Dolomita (machado)", + "block.mineralogy.dolomite_relief_blank": "Baixo-relevo de Dolomita (sem motivo)", + "block.mineralogy.dolomite_relief_cross": "Baixo-relevo de Dolomita (cruz)", + "block.mineralogy.dolomite_relief_hammer": "Baixo-relevo de Dolomita (martelo)", + "block.mineralogy.dolomite_relief_hoe": "Baixo-relevo de Dolomita (enxada)", + "block.mineralogy.dolomite_relief_horizontal": "Baixo-relevo de Dolomita (horizontal)", + "block.mineralogy.dolomite_relief_i": "Baixo-relevo de Dolomita (I)", + "block.mineralogy.dolomite_relief_left": "Baixo-relevo de Dolomita (esquerda)", + "block.mineralogy.dolomite_relief_pickaxe": "Baixo-relevo de Dolomita (picareta)", + "block.mineralogy.dolomite_relief_plus": "Baixo-relevo de Dolomita (sinal de mais)", + "block.mineralogy.dolomite_relief_right": "Baixo-relevo de Dolomita (direita)", + "block.mineralogy.dolomite_relief_sword": "Baixo-relevo de Dolomita (espada)", + "block.mineralogy.dolomite_relief_vertical": "Baixo-relevo de Dolomita (vertical)", + "block.mineralogy.limestone_relief_axe": "Baixo-relevo de Calcário (machado)", + "block.mineralogy.limestone_relief_blank": "Baixo-relevo de Calcário (sem motivo)", + "block.mineralogy.limestone_relief_cross": "Baixo-relevo de Calcário (cruz)", + "block.mineralogy.limestone_relief_hammer": "Baixo-relevo de Calcário (martelo)", + "block.mineralogy.limestone_relief_hoe": "Baixo-relevo de Calcário (enxada)", + "block.mineralogy.limestone_relief_horizontal": "Baixo-relevo de Calcário (horizontal)", + "block.mineralogy.limestone_relief_i": "Baixo-relevo de Calcário (I)", + "block.mineralogy.limestone_relief_left": "Baixo-relevo de Calcário (esquerda)", + "block.mineralogy.limestone_relief_pickaxe": "Baixo-relevo de Calcário (picareta)", + "block.mineralogy.limestone_relief_plus": "Baixo-relevo de Calcário (sinal de mais)", + "block.mineralogy.limestone_relief_right": "Baixo-relevo de Calcário (direita)", + "block.mineralogy.limestone_relief_sword": "Baixo-relevo de Calcário (espada)", + "block.mineralogy.limestone_relief_vertical": "Baixo-relevo de Calcário (vertical)", + "block.mineralogy.marble_relief_axe": "Baixo-relevo de Mármore (machado)", + "block.mineralogy.marble_relief_blank": "Baixo-relevo de Mármore (sem motivo)", + "block.mineralogy.marble_relief_cross": "Baixo-relevo de Mármore (cruz)", + "block.mineralogy.marble_relief_hammer": "Baixo-relevo de Mármore (martelo)", + "block.mineralogy.marble_relief_hoe": "Baixo-relevo de Mármore (enxada)", + "block.mineralogy.marble_relief_horizontal": "Baixo-relevo de Mármore (horizontal)", + "block.mineralogy.marble_relief_i": "Baixo-relevo de Mármore (I)", + "block.mineralogy.marble_relief_left": "Baixo-relevo de Mármore (esquerda)", + "block.mineralogy.marble_relief_pickaxe": "Baixo-relevo de Mármore (picareta)", + "block.mineralogy.marble_relief_plus": "Baixo-relevo de Mármore (sinal de mais)", + "block.mineralogy.marble_relief_right": "Baixo-relevo de Mármore (direita)", + "block.mineralogy.marble_relief_sword": "Baixo-relevo de Mármore (espada)", + "block.mineralogy.marble_relief_vertical": "Baixo-relevo de Mármore (vertical)", + "block.mineralogy.slate_relief_axe": "Baixo-relevo de Ardósia (machado)", + "block.mineralogy.slate_relief_blank": "Baixo-relevo de Ardósia (sem motivo)", + "block.mineralogy.slate_relief_cross": "Baixo-relevo de Ardósia (cruz)", + "block.mineralogy.slate_relief_hammer": "Baixo-relevo de Ardósia (martelo)", + "block.mineralogy.slate_relief_hoe": "Baixo-relevo de Ardósia (enxada)", + "block.mineralogy.slate_relief_horizontal": "Baixo-relevo de Ardósia (horizontal)", + "block.mineralogy.slate_relief_i": "Baixo-relevo de Ardósia (I)", + "block.mineralogy.slate_relief_left": "Baixo-relevo de Ardósia (esquerda)", + "block.mineralogy.slate_relief_pickaxe": "Baixo-relevo de Ardósia (picareta)", + "block.mineralogy.slate_relief_plus": "Baixo-relevo de Ardósia (sinal de mais)", + "block.mineralogy.slate_relief_right": "Baixo-relevo de Ardósia (direita)", + "block.mineralogy.slate_relief_sword": "Baixo-relevo de Ardósia (espada)", + "block.mineralogy.slate_relief_vertical": "Baixo-relevo de Ardósia (vertical)", + "block.mineralogy.schist_relief_axe": "Baixo-relevo de Xisto (machado)", + "block.mineralogy.schist_relief_blank": "Baixo-relevo de Xisto (sem motivo)", + "block.mineralogy.schist_relief_cross": "Baixo-relevo de Xisto (cruz)", + "block.mineralogy.schist_relief_hammer": "Baixo-relevo de Xisto (martelo)", + "block.mineralogy.schist_relief_hoe": "Baixo-relevo de Xisto (enxada)", + "block.mineralogy.schist_relief_horizontal": "Baixo-relevo de Xisto (horizontal)", + "block.mineralogy.schist_relief_i": "Baixo-relevo de Xisto (I)", + "block.mineralogy.schist_relief_left": "Baixo-relevo de Xisto (esquerda)", + "block.mineralogy.schist_relief_pickaxe": "Baixo-relevo de Xisto (picareta)", + "block.mineralogy.schist_relief_plus": "Baixo-relevo de Xisto (sinal de mais)", + "block.mineralogy.schist_relief_right": "Baixo-relevo de Xisto (direita)", + "block.mineralogy.schist_relief_sword": "Baixo-relevo de Xisto (espada)", + "block.mineralogy.schist_relief_vertical": "Baixo-relevo de Xisto (vertical)", + "block.mineralogy.gneiss_relief_axe": "Baixo-relevo de Gnaisse (machado)", + "block.mineralogy.gneiss_relief_blank": "Baixo-relevo de Gnaisse (sem motivo)", + "block.mineralogy.gneiss_relief_cross": "Baixo-relevo de Gnaisse (cruz)", + "block.mineralogy.gneiss_relief_hammer": "Baixo-relevo de Gnaisse (martelo)", + "block.mineralogy.gneiss_relief_hoe": "Baixo-relevo de Gnaisse (enxada)", + "block.mineralogy.gneiss_relief_horizontal": "Baixo-relevo de Gnaisse (horizontal)", + "block.mineralogy.gneiss_relief_i": "Baixo-relevo de Gnaisse (I)", + "block.mineralogy.gneiss_relief_left": "Baixo-relevo de Gnaisse (esquerda)", + "block.mineralogy.gneiss_relief_pickaxe": "Baixo-relevo de Gnaisse (picareta)", + "block.mineralogy.gneiss_relief_plus": "Baixo-relevo de Gnaisse (sinal de mais)", + "block.mineralogy.gneiss_relief_right": "Baixo-relevo de Gnaisse (direita)", + "block.mineralogy.gneiss_relief_sword": "Baixo-relevo de Gnaisse (espada)", + "block.mineralogy.gneiss_relief_vertical": "Baixo-relevo de Gnaisse (vertical)", + "block.mineralogy.phyllite_relief_axe": "Baixo-relevo de Filito (machado)", + "block.mineralogy.phyllite_relief_blank": "Baixo-relevo de Filito (sem motivo)", + "block.mineralogy.phyllite_relief_cross": "Baixo-relevo de Filito (cruz)", + "block.mineralogy.phyllite_relief_hammer": "Baixo-relevo de Filito (martelo)", + "block.mineralogy.phyllite_relief_hoe": "Baixo-relevo de Filito (enxada)", + "block.mineralogy.phyllite_relief_horizontal": "Baixo-relevo de Filito (horizontal)", + "block.mineralogy.phyllite_relief_i": "Baixo-relevo de Filito (I)", + "block.mineralogy.phyllite_relief_left": "Baixo-relevo de Filito (esquerda)", + "block.mineralogy.phyllite_relief_pickaxe": "Baixo-relevo de Filito (picareta)", + "block.mineralogy.phyllite_relief_plus": "Baixo-relevo de Filito (sinal de mais)", + "block.mineralogy.phyllite_relief_right": "Baixo-relevo de Filito (direita)", + "block.mineralogy.phyllite_relief_sword": "Baixo-relevo de Filito (espada)", + "block.mineralogy.phyllite_relief_vertical": "Baixo-relevo de Filito (vertical)", + "block.mineralogy.amphibolite_relief_axe": "Baixo-relevo de Anfibolito (machado)", + "block.mineralogy.amphibolite_relief_blank": "Baixo-relevo de Anfibolito (sem motivo)", + "block.mineralogy.amphibolite_relief_cross": "Baixo-relevo de Anfibolito (cruz)", + "block.mineralogy.amphibolite_relief_hammer": "Baixo-relevo de Anfibolito (martelo)", + "block.mineralogy.amphibolite_relief_hoe": "Baixo-relevo de Anfibolito (enxada)", + "block.mineralogy.amphibolite_relief_horizontal": "Baixo-relevo de Anfibolito (horizontal)", + "block.mineralogy.amphibolite_relief_i": "Baixo-relevo de Anfibolito (I)", + "block.mineralogy.amphibolite_relief_left": "Baixo-relevo de Anfibolito (esquerda)", + "block.mineralogy.amphibolite_relief_pickaxe": "Baixo-relevo de Anfibolito (picareta)", + "block.mineralogy.amphibolite_relief_plus": "Baixo-relevo de Anfibolito (sinal de mais)", + "block.mineralogy.amphibolite_relief_right": "Baixo-relevo de Anfibolito (direita)", + "block.mineralogy.amphibolite_relief_sword": "Baixo-relevo de Anfibolito (espada)", + "block.mineralogy.amphibolite_relief_vertical": "Baixo-relevo de Anfibolito (vertical)", + "block.mineralogy.diabase_relief_axe": "Baixo-relevo de Diabásio (machado)", + "block.mineralogy.diabase_relief_blank": "Baixo-relevo de Diabásio (sem motivo)", + "block.mineralogy.diabase_relief_cross": "Baixo-relevo de Diabásio (cruz)", + "block.mineralogy.diabase_relief_hammer": "Baixo-relevo de Diabásio (martelo)", + "block.mineralogy.diabase_relief_hoe": "Baixo-relevo de Diabásio (enxada)", + "block.mineralogy.diabase_relief_horizontal": "Baixo-relevo de Diabásio (horizontal)", + "block.mineralogy.diabase_relief_i": "Baixo-relevo de Diabásio (I)", + "block.mineralogy.diabase_relief_left": "Baixo-relevo de Diabásio (esquerda)", + "block.mineralogy.diabase_relief_pickaxe": "Baixo-relevo de Diabásio (picareta)", + "block.mineralogy.diabase_relief_plus": "Baixo-relevo de Diabásio (sinal de mais)", + "block.mineralogy.diabase_relief_right": "Baixo-relevo de Diabásio (direita)", + "block.mineralogy.diabase_relief_sword": "Baixo-relevo de Diabásio (espada)", + "block.mineralogy.diabase_relief_vertical": "Baixo-relevo de Diabásio (vertical)", + "block.mineralogy.gabbro_relief_axe": "Baixo-relevo de Gabro (machado)", + "block.mineralogy.gabbro_relief_blank": "Baixo-relevo de Gabro (sem motivo)", + "block.mineralogy.gabbro_relief_cross": "Baixo-relevo de Gabro (cruz)", + "block.mineralogy.gabbro_relief_hammer": "Baixo-relevo de Gabro (martelo)", + "block.mineralogy.gabbro_relief_hoe": "Baixo-relevo de Gabro (enxada)", + "block.mineralogy.gabbro_relief_horizontal": "Baixo-relevo de Gabro (horizontal)", + "block.mineralogy.gabbro_relief_i": "Baixo-relevo de Gabro (I)", + "block.mineralogy.gabbro_relief_left": "Baixo-relevo de Gabro (esquerda)", + "block.mineralogy.gabbro_relief_pickaxe": "Baixo-relevo de Gabro (picareta)", + "block.mineralogy.gabbro_relief_plus": "Baixo-relevo de Gabro (sinal de mais)", + "block.mineralogy.gabbro_relief_right": "Baixo-relevo de Gabro (direita)", + "block.mineralogy.gabbro_relief_sword": "Baixo-relevo de Gabro (espada)", + "block.mineralogy.gabbro_relief_vertical": "Baixo-relevo de Gabro (vertical)", + "block.mineralogy.peridotite_relief_axe": "Baixo-relevo de Peridotito (machado)", + "block.mineralogy.peridotite_relief_blank": "Baixo-relevo de Peridotito (sem motivo)", + "block.mineralogy.peridotite_relief_cross": "Baixo-relevo de Peridotito (cruz)", + "block.mineralogy.peridotite_relief_hammer": "Baixo-relevo de Peridotito (martelo)", + "block.mineralogy.peridotite_relief_hoe": "Baixo-relevo de Peridotito (enxada)", + "block.mineralogy.peridotite_relief_horizontal": "Baixo-relevo de Peridotito (horizontal)", + "block.mineralogy.peridotite_relief_i": "Baixo-relevo de Peridotito (I)", + "block.mineralogy.peridotite_relief_left": "Baixo-relevo de Peridotito (esquerda)", + "block.mineralogy.peridotite_relief_pickaxe": "Baixo-relevo de Peridotito (picareta)", + "block.mineralogy.peridotite_relief_plus": "Baixo-relevo de Peridotito (sinal de mais)", + "block.mineralogy.peridotite_relief_right": "Baixo-relevo de Peridotito (direita)", + "block.mineralogy.peridotite_relief_sword": "Baixo-relevo de Peridotito (espada)", + "block.mineralogy.peridotite_relief_vertical": "Baixo-relevo de Peridotito (vertical)", + "block.mineralogy.basaltic_glass_relief_axe": "Baixo-relevo de Vidro basáltico (machado)", + "block.mineralogy.basaltic_glass_relief_blank": "Baixo-relevo de Vidro basáltico (sem motivo)", + "block.mineralogy.basaltic_glass_relief_cross": "Baixo-relevo de Vidro basáltico (cruz)", + "block.mineralogy.basaltic_glass_relief_hammer": "Baixo-relevo de Vidro basáltico (martelo)", + "block.mineralogy.basaltic_glass_relief_hoe": "Baixo-relevo de Vidro basáltico (enxada)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Baixo-relevo de Vidro basáltico (horizontal)", + "block.mineralogy.basaltic_glass_relief_i": "Baixo-relevo de Vidro basáltico (I)", + "block.mineralogy.basaltic_glass_relief_left": "Baixo-relevo de Vidro basáltico (esquerda)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Baixo-relevo de Vidro basáltico (picareta)", + "block.mineralogy.basaltic_glass_relief_plus": "Baixo-relevo de Vidro basáltico (sinal de mais)", + "block.mineralogy.basaltic_glass_relief_right": "Baixo-relevo de Vidro basáltico (direita)", + "block.mineralogy.basaltic_glass_relief_sword": "Baixo-relevo de Vidro basáltico (espada)", + "block.mineralogy.basaltic_glass_relief_vertical": "Baixo-relevo de Vidro basáltico (vertical)", + "block.mineralogy.scoria_relief_axe": "Baixo-relevo de Escória (machado)", + "block.mineralogy.scoria_relief_blank": "Baixo-relevo de Escória (sem motivo)", + "block.mineralogy.scoria_relief_cross": "Baixo-relevo de Escória (cruz)", + "block.mineralogy.scoria_relief_hammer": "Baixo-relevo de Escória (martelo)", + "block.mineralogy.scoria_relief_hoe": "Baixo-relevo de Escória (enxada)", + "block.mineralogy.scoria_relief_horizontal": "Baixo-relevo de Escória (horizontal)", + "block.mineralogy.scoria_relief_i": "Baixo-relevo de Escória (I)", + "block.mineralogy.scoria_relief_left": "Baixo-relevo de Escória (esquerda)", + "block.mineralogy.scoria_relief_pickaxe": "Baixo-relevo de Escória (picareta)", + "block.mineralogy.scoria_relief_plus": "Baixo-relevo de Escória (sinal de mais)", + "block.mineralogy.scoria_relief_right": "Baixo-relevo de Escória (direita)", + "block.mineralogy.scoria_relief_sword": "Baixo-relevo de Escória (espada)", + "block.mineralogy.scoria_relief_vertical": "Baixo-relevo de Escória (vertical)", + "block.mineralogy.tuff_relief_axe": "Baixo-relevo de Tufo (machado)", + "block.mineralogy.tuff_relief_blank": "Baixo-relevo de Tufo (sem motivo)", + "block.mineralogy.tuff_relief_cross": "Baixo-relevo de Tufo (cruz)", + "block.mineralogy.tuff_relief_hammer": "Baixo-relevo de Tufo (martelo)", + "block.mineralogy.tuff_relief_hoe": "Baixo-relevo de Tufo (enxada)", + "block.mineralogy.tuff_relief_horizontal": "Baixo-relevo de Tufo (horizontal)", + "block.mineralogy.tuff_relief_i": "Baixo-relevo de Tufo (I)", + "block.mineralogy.tuff_relief_left": "Baixo-relevo de Tufo (esquerda)", + "block.mineralogy.tuff_relief_pickaxe": "Baixo-relevo de Tufo (picareta)", + "block.mineralogy.tuff_relief_plus": "Baixo-relevo de Tufo (sinal de mais)", + "block.mineralogy.tuff_relief_right": "Baixo-relevo de Tufo (direita)", + "block.mineralogy.tuff_relief_sword": "Baixo-relevo de Tufo (espada)", + "block.mineralogy.tuff_relief_vertical": "Baixo-relevo de Tufo (vertical)", + "block.mineralogy.siltstone_relief_axe": "Baixo-relevo de Siltito (machado)", + "block.mineralogy.siltstone_relief_blank": "Baixo-relevo de Siltito (sem motivo)", + "block.mineralogy.siltstone_relief_cross": "Baixo-relevo de Siltito (cruz)", + "block.mineralogy.siltstone_relief_hammer": "Baixo-relevo de Siltito (martelo)", + "block.mineralogy.siltstone_relief_hoe": "Baixo-relevo de Siltito (enxada)", + "block.mineralogy.siltstone_relief_horizontal": "Baixo-relevo de Siltito (horizontal)", + "block.mineralogy.siltstone_relief_i": "Baixo-relevo de Siltito (I)", + "block.mineralogy.siltstone_relief_left": "Baixo-relevo de Siltito (esquerda)", + "block.mineralogy.siltstone_relief_pickaxe": "Baixo-relevo de Siltito (picareta)", + "block.mineralogy.siltstone_relief_plus": "Baixo-relevo de Siltito (sinal de mais)", + "block.mineralogy.siltstone_relief_right": "Baixo-relevo de Siltito (direita)", + "block.mineralogy.siltstone_relief_sword": "Baixo-relevo de Siltito (espada)", + "block.mineralogy.siltstone_relief_vertical": "Baixo-relevo de Siltito (vertical)", + "block.mineralogy.rock_salt_relief_axe": "Baixo-relevo de Sal-gema (machado)", + "block.mineralogy.rock_salt_relief_blank": "Baixo-relevo de Sal-gema (sem motivo)", + "block.mineralogy.rock_salt_relief_cross": "Baixo-relevo de Sal-gema (cruz)", + "block.mineralogy.rock_salt_relief_hammer": "Baixo-relevo de Sal-gema (martelo)", + "block.mineralogy.rock_salt_relief_hoe": "Baixo-relevo de Sal-gema (enxada)", + "block.mineralogy.rock_salt_relief_horizontal": "Baixo-relevo de Sal-gema (horizontal)", + "block.mineralogy.rock_salt_relief_i": "Baixo-relevo de Sal-gema (I)", + "block.mineralogy.rock_salt_relief_left": "Baixo-relevo de Sal-gema (esquerda)", + "block.mineralogy.rock_salt_relief_pickaxe": "Baixo-relevo de Sal-gema (picareta)", + "block.mineralogy.rock_salt_relief_plus": "Baixo-relevo de Sal-gema (sinal de mais)", + "block.mineralogy.rock_salt_relief_right": "Baixo-relevo de Sal-gema (direita)", + "block.mineralogy.rock_salt_relief_sword": "Baixo-relevo de Sal-gema (espada)", + "block.mineralogy.rock_salt_relief_vertical": "Baixo-relevo de Sal-gema (vertical)", + "block.mineralogy.hornfels_relief_axe": "Baixo-relevo de Cornubianito (machado)", + "block.mineralogy.hornfels_relief_blank": "Baixo-relevo de Cornubianito (sem motivo)", + "block.mineralogy.hornfels_relief_cross": "Baixo-relevo de Cornubianito (cruz)", + "block.mineralogy.hornfels_relief_hammer": "Baixo-relevo de Cornubianito (martelo)", + "block.mineralogy.hornfels_relief_hoe": "Baixo-relevo de Cornubianito (enxada)", + "block.mineralogy.hornfels_relief_horizontal": "Baixo-relevo de Cornubianito (horizontal)", + "block.mineralogy.hornfels_relief_i": "Baixo-relevo de Cornubianito (I)", + "block.mineralogy.hornfels_relief_left": "Baixo-relevo de Cornubianito (esquerda)", + "block.mineralogy.hornfels_relief_pickaxe": "Baixo-relevo de Cornubianito (picareta)", + "block.mineralogy.hornfels_relief_plus": "Baixo-relevo de Cornubianito (sinal de mais)", + "block.mineralogy.hornfels_relief_right": "Baixo-relevo de Cornubianito (direita)", + "block.mineralogy.hornfels_relief_sword": "Baixo-relevo de Cornubianito (espada)", + "block.mineralogy.hornfels_relief_vertical": "Baixo-relevo de Cornubianito (vertical)", + "block.mineralogy.quartzite_relief_axe": "Baixo-relevo de Quartzito (machado)", + "block.mineralogy.quartzite_relief_blank": "Baixo-relevo de Quartzito (sem motivo)", + "block.mineralogy.quartzite_relief_cross": "Baixo-relevo de Quartzito (cruz)", + "block.mineralogy.quartzite_relief_hammer": "Baixo-relevo de Quartzito (martelo)", + "block.mineralogy.quartzite_relief_hoe": "Baixo-relevo de Quartzito (enxada)", + "block.mineralogy.quartzite_relief_horizontal": "Baixo-relevo de Quartzito (horizontal)", + "block.mineralogy.quartzite_relief_i": "Baixo-relevo de Quartzito (I)", + "block.mineralogy.quartzite_relief_left": "Baixo-relevo de Quartzito (esquerda)", + "block.mineralogy.quartzite_relief_pickaxe": "Baixo-relevo de Quartzito (picareta)", + "block.mineralogy.quartzite_relief_plus": "Baixo-relevo de Quartzito (sinal de mais)", + "block.mineralogy.quartzite_relief_right": "Baixo-relevo de Quartzito (direita)", + "block.mineralogy.quartzite_relief_sword": "Baixo-relevo de Quartzito (espada)", + "block.mineralogy.quartzite_relief_vertical": "Baixo-relevo de Quartzito (vertical)", + "block.mineralogy.novaculite_relief_axe": "Baixo-relevo de Novaculita (machado)", + "block.mineralogy.novaculite_relief_blank": "Baixo-relevo de Novaculita (sem motivo)", + "block.mineralogy.novaculite_relief_cross": "Baixo-relevo de Novaculita (cruz)", + "block.mineralogy.novaculite_relief_hammer": "Baixo-relevo de Novaculita (martelo)", + "block.mineralogy.novaculite_relief_hoe": "Baixo-relevo de Novaculita (enxada)", + "block.mineralogy.novaculite_relief_horizontal": "Baixo-relevo de Novaculita (horizontal)", + "block.mineralogy.novaculite_relief_i": "Baixo-relevo de Novaculita (I)", + "block.mineralogy.novaculite_relief_left": "Baixo-relevo de Novaculita (esquerda)", + "block.mineralogy.novaculite_relief_pickaxe": "Baixo-relevo de Novaculita (picareta)", + "block.mineralogy.novaculite_relief_plus": "Baixo-relevo de Novaculita (sinal de mais)", + "block.mineralogy.novaculite_relief_right": "Baixo-relevo de Novaculita (direita)", + "block.mineralogy.novaculite_relief_sword": "Baixo-relevo de Novaculita (espada)", + "block.mineralogy.novaculite_relief_vertical": "Baixo-relevo de Novaculita (vertical)", + "itemGroup.mineralogy.mineralogy": "Mineralogia", + "itemGroup.mineralogy.rock": "Rochas da Mineralogia", + "itemGroup.mineralogy.stair": "Escadas da Mineralogia", + "itemGroup.mineralogy.slab": "Lajes da Mineralogia", + "itemGroup.mineralogy.wall": "Muros da Mineralogia", + "itemGroup.mineralogy.item": "Itens da Mineralogia", + "block.mineralogy.crude_oil": "Petróleo bruto", + "item.mineralogy.crude_oil_bucket": "Balde de petróleo bruto", + "fluid.mineralogy.crude_oil": "Petróleo bruto", + "advancements.mineralogy.all_the_rocks.title": "Todas as rochas", + "advancements.mineralogy.all_the_rocks.description": "Você encontrou todos os tipos de rocha padrão do Mineralogy!" +} diff --git a/src/main/resources/assets/mineralogy/lang/ru_ru.json b/src/main/resources/assets/mineralogy/lang/ru_ru.json index d53039a91..134ac56f5 100644 --- a/src/main/resources/assets/mineralogy/lang/ru_ru.json +++ b/src/main/resources/assets/mineralogy/lang/ru_ru.json @@ -1,202 +1,202 @@ { "block.mineralogy.andesite": "Андезит", - "block.mineralogy.andesite_stairs": "Андезитовая лестница", - "block.mineralogy.andesite_slab": "Андезитовая плита", - "block.mineralogy.andesite_brick": "Андезитовый кирпич", - "block.mineralogy.andesite_brick_stairs": "Лестница из андезитового кирпича", - "block.mineralogy.andesite_brick_slab": "Плита из андезитового кирпича", - "block.mineralogy.andesite_smooth": "Полированный андезит", - "block.mineralogy.andesite_smooth_stairs": "Андезитовая полированная лестница", - "block.mineralogy.andesite_smooth_slab": "Полированная андезитовая плита", - "block.mineralogy.andesite_smooth_brick": "Андезитовый полированный кирпич", - "block.mineralogy.andesite_smooth_brick_stairs": "Лестница из полированного андезитового кирпича", - "block.mineralogy.andesite_smooth_brick_slab": "Плита из полированного андезитового кирпича", + "block.mineralogy.andesite_stairs": "Ступеньки: Андезит", + "block.mineralogy.andesite_slab": "Плита: Андезит", + "block.mineralogy.andesite_brick": "Кирпичи: Андезит", + "block.mineralogy.andesite_brick_stairs": "Кирпичные ступеньки: Андезит", + "block.mineralogy.andesite_brick_slab": "Кирпичная плита: Андезит", + "block.mineralogy.andesite_smooth": "Полированный блок: Андезит", + "block.mineralogy.andesite_smooth_stairs": "Полированные ступеньки: Андезит", + "block.mineralogy.andesite_smooth_slab": "Полированная плита: Андезит", + "block.mineralogy.andesite_smooth_brick": "Полированные кирпичи: Андезит", + "block.mineralogy.andesite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Андезит", + "block.mineralogy.andesite_smooth_brick_slab": "Плита из полированного кирпича: Андезит", "block.mineralogy.basalt": "Базальт", - "block.mineralogy.basalt_stairs": "Базальтовая лестница", - "block.mineralogy.basalt_slab": "Базальтовая плита", - "block.mineralogy.basalt_brick": "Базальтовый кирпич", - "block.mineralogy.basalt_brick_stairs": "Лестница из базальтового кирпича", - "block.mineralogy.basalt_brick_slab": "Плита из базальтового кирпича", - "block.mineralogy.basalt_smooth": "Полированный базальт", - "block.mineralogy.basalt_smooth_stairs": "Базальтовая полированная лестница", - "block.mineralogy.basalt_smooth_slab": "Базальтовая полированная плита", - "block.mineralogy.basalt_smooth_brick": "Базальтовый полированный кирпич", - "block.mineralogy.basalt_smooth_brick_stairs": "Лестница из полированного базальтового кирпича", - "block.mineralogy.basalt_smooth_brick_slab": "Плита из полированного базальтового кирпича", + "block.mineralogy.basalt_stairs": "Ступеньки: Базальт", + "block.mineralogy.basalt_slab": "Плита: Базальт", + "block.mineralogy.basalt_brick": "Кирпичи: Базальт", + "block.mineralogy.basalt_brick_stairs": "Кирпичные ступеньки: Базальт", + "block.mineralogy.basalt_brick_slab": "Кирпичная плита: Базальт", + "block.mineralogy.basalt_smooth": "Полированный блок: Базальт", + "block.mineralogy.basalt_smooth_stairs": "Полированные ступеньки: Базальт", + "block.mineralogy.basalt_smooth_slab": "Полированная плита: Базальт", + "block.mineralogy.basalt_smooth_brick": "Полированные кирпичи: Базальт", + "block.mineralogy.basalt_smooth_brick_stairs": "Ступеньки из полированного кирпича: Базальт", + "block.mineralogy.basalt_smooth_brick_slab": "Плита из полированного кирпича: Базальт", "block.mineralogy.diorite": "Диорит", - "block.mineralogy.diorite_stairs": "Диоритовая лестница", - "block.mineralogy.diorite_slab": "Плита диорита", - "block.mineralogy.diorite_brick": "Диоритовый кирпич", - "block.mineralogy.diorite_brick_stairs": "Лестница из диоритового кирпича", - "block.mineralogy.diorite_brick_slab": "Плита из диоритового кирпича", - "block.mineralogy.diorite_smooth": "Полированный диорит", - "block.mineralogy.diorite_smooth_stairs": "Лестница из полированного диорита", - "block.mineralogy.diorite_smooth_slab": "Полированная плита диорита", - "block.mineralogy.diorite_smooth_brick": "Диоритовый полированный кирпич", - "block.mineralogy.diorite_smooth_brick_stairs": "Лестница из полированного диорита кирпича", - "block.mineralogy.diorite_smooth_brick_slab": "Плита из полированного кирпича из диорита", + "block.mineralogy.diorite_stairs": "Ступеньки: Диорит", + "block.mineralogy.diorite_slab": "Плита: Диорит", + "block.mineralogy.diorite_brick": "Кирпичи: Диорит", + "block.mineralogy.diorite_brick_stairs": "Кирпичные ступеньки: Диорит", + "block.mineralogy.diorite_brick_slab": "Кирпичная плита: Диорит", + "block.mineralogy.diorite_smooth": "Полированный блок: Диорит", + "block.mineralogy.diorite_smooth_stairs": "Полированные ступеньки: Диорит", + "block.mineralogy.diorite_smooth_slab": "Полированная плита: Диорит", + "block.mineralogy.diorite_smooth_brick": "Полированные кирпичи: Диорит", + "block.mineralogy.diorite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Диорит", + "block.mineralogy.diorite_smooth_brick_slab": "Плита из полированного кирпича: Диорит", "block.mineralogy.granite": "Гранит", - "block.mineralogy.granite_stairs": "Гранитная лестница", - "block.mineralogy.granite_slab": "Гранитная плита", - "block.mineralogy.granite_brick": "Гранитный кирпич", - "block.mineralogy.granite_brick_stairs": "Лестница из гранитного кирпича", - "block.mineralogy.granite_brick_slab": "Гранитная кирпичная плита", - "block.mineralogy.granite_smooth": "Полированный гранит", - "block.mineralogy.granite_smooth_stairs": "Гранитная полированная лестница", - "block.mineralogy.granite_smooth_slab": "Гранитная полированная плита", - "block.mineralogy.granite_smooth_brick": "Гранитный полированный кирпич", - "block.mineralogy.granite_smooth_brick_stairs": "Лестница из гранитного полированного кирпича", - "block.mineralogy.granite_smooth_brick_slab": "Гранитная полированная кирпичная плита", + "block.mineralogy.granite_stairs": "Ступеньки: Гранит", + "block.mineralogy.granite_slab": "Плита: Гранит", + "block.mineralogy.granite_brick": "Кирпичи: Гранит", + "block.mineralogy.granite_brick_stairs": "Кирпичные ступеньки: Гранит", + "block.mineralogy.granite_brick_slab": "Кирпичная плита: Гранит", + "block.mineralogy.granite_smooth": "Полированный блок: Гранит", + "block.mineralogy.granite_smooth_stairs": "Полированные ступеньки: Гранит", + "block.mineralogy.granite_smooth_slab": "Полированная плита: Гранит", + "block.mineralogy.granite_smooth_brick": "Полированные кирпичи: Гранит", + "block.mineralogy.granite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Гранит", + "block.mineralogy.granite_smooth_brick_slab": "Плита из полированного кирпича: Гранит", "block.mineralogy.rhyolite": "Риолит", - "block.mineralogy.rhyolite_stairs": "Риолитовая лестница", - "block.mineralogy.rhyolite_slab": "Риолитовая плита", - "block.mineralogy.rhyolite_brick": "Риолитовый кирпич", - "block.mineralogy.rhyolite_brick_stairs": "Лестница из риолитового кирпича", - "block.mineralogy.rhyolite_brick_slab": "Плита из риолитового кирпича", - "block.mineralogy.rhyolite_smooth": "Полированный риолит", - "block.mineralogy.rhyolite_smooth_stairs": "Лестница из полированного риолита", - "block.mineralogy.rhyolite_smooth_slab": "Риолитовая полированная плита", - "block.mineralogy.rhyolite_smooth_brick": "Риолитовый полированный кирпич", - "block.mineralogy.rhyolite_smooth_brick_stairs": "Лестница из полированного риолитового кирпича", - "block.mineralogy.rhyolite_smooth_brick_slab": "Плита из полированного риолитового кирпича", + "block.mineralogy.rhyolite_stairs": "Ступеньки: Риолит", + "block.mineralogy.rhyolite_slab": "Плита: Риолит", + "block.mineralogy.rhyolite_brick": "Кирпичи: Риолит", + "block.mineralogy.rhyolite_brick_stairs": "Кирпичные ступеньки: Риолит", + "block.mineralogy.rhyolite_brick_slab": "Кирпичная плита: Риолит", + "block.mineralogy.rhyolite_smooth": "Полированный блок: Риолит", + "block.mineralogy.rhyolite_smooth_stairs": "Полированные ступеньки: Риолит", + "block.mineralogy.rhyolite_smooth_slab": "Полированная плита: Риолит", + "block.mineralogy.rhyolite_smooth_brick": "Полированные кирпичи: Риолит", + "block.mineralogy.rhyolite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Риолит", + "block.mineralogy.rhyolite_smooth_brick_slab": "Плита из полированного кирпича: Риолит", "block.mineralogy.pegmatite": "Пегматит", - "block.mineralogy.pegmatite_stairs": "Пегматитовая лестница", - "block.mineralogy.pegmatite_slab": "Пегматитовая плита", - "block.mineralogy.pegmatite_brick": "Пегматитовый кирпич", - "block.mineralogy.pegmatite_brick_stairs": "Лестница из пегматитового кирпича", - "block.mineralogy.pegmatite_brick_slab": "Плита из пегматитового кирпича", - "block.mineralogy.pegmatite_smooth": "Полированный пегматит", - "block.mineralogy.pegmatite_smooth_stairs": "Полированная лестница из пегматита", - "block.mineralogy.pegmatite_smooth_slab": "Пегматитовая полированная плита", - "block.mineralogy.pegmatite_smooth_brick": "Пегматитовый полированный кирпич", - "block.mineralogy.pegmatite_smooth_brick_stairs": "Лестница из полированного кирпича из пегматита", - "block.mineralogy.pegmatite_smooth_brick_slab": "Пегматитовая полированная кирпичная плита", - "block.mineralogy.shale": "Сланец", - "block.mineralogy.shale_stairs": "Сланцевая лестница", - "block.mineralogy.shale_slab": "Сланцевая плита", - "block.mineralogy.shale_brick": "Сланцевый кирпич", - "block.mineralogy.shale_brick_stairs": "Лестница из сланцевого кирпича", - "block.mineralogy.shale_brick_slab": "Плита из сланцевого кирпича", - "block.mineralogy.shale_smooth": "Полированный сланец", - "block.mineralogy.shale_smooth_stairs": "Лестницы из полированного сланца", - "block.mineralogy.shale_smooth_slab": "Полированная плита из сланца", - "block.mineralogy.shale_smooth_brick": "Полированный сланцевый кирпич", - "block.mineralogy.shale_smooth_brick_stairs": "Лестница из полированного сланцевого кирпича", - "block.mineralogy.shale_smooth_brick_slab": "Плита из полированного сланцевого кирпича", + "block.mineralogy.pegmatite_stairs": "Ступеньки: Пегматит", + "block.mineralogy.pegmatite_slab": "Плита: Пегматит", + "block.mineralogy.pegmatite_brick": "Кирпичи: Пегматит", + "block.mineralogy.pegmatite_brick_stairs": "Кирпичные ступеньки: Пегматит", + "block.mineralogy.pegmatite_brick_slab": "Кирпичная плита: Пегматит", + "block.mineralogy.pegmatite_smooth": "Полированный блок: Пегматит", + "block.mineralogy.pegmatite_smooth_stairs": "Полированные ступеньки: Пегматит", + "block.mineralogy.pegmatite_smooth_slab": "Полированная плита: Пегматит", + "block.mineralogy.pegmatite_smooth_brick": "Полированные кирпичи: Пегматит", + "block.mineralogy.pegmatite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Пегматит", + "block.mineralogy.pegmatite_smooth_brick_slab": "Плита из полированного кирпича: Пегматит", + "block.mineralogy.shale": "Глинистый сланец", + "block.mineralogy.shale_stairs": "Ступеньки: Глинистый сланец", + "block.mineralogy.shale_slab": "Плита: Глинистый сланец", + "block.mineralogy.shale_brick": "Кирпичи: Глинистый сланец", + "block.mineralogy.shale_brick_stairs": "Кирпичные ступеньки: Глинистый сланец", + "block.mineralogy.shale_brick_slab": "Кирпичная плита: Глинистый сланец", + "block.mineralogy.shale_smooth": "Полированный блок: Глинистый сланец", + "block.mineralogy.shale_smooth_stairs": "Полированные ступеньки: Глинистый сланец", + "block.mineralogy.shale_smooth_slab": "Полированная плита: Глинистый сланец", + "block.mineralogy.shale_smooth_brick": "Полированные кирпичи: Глинистый сланец", + "block.mineralogy.shale_smooth_brick_stairs": "Ступеньки из полированного кирпича: Глинистый сланец", + "block.mineralogy.shale_smooth_brick_slab": "Плита из полированного кирпича: Глинистый сланец", "block.mineralogy.conglomerate": "Конгломерат", - "block.mineralogy.conglomerate_stairs": "Лестница конгломерата", - "block.mineralogy.conglomerate_slab": "Плита из конгломерата", - "block.mineralogy.conglomerate_brick": "Конгломератный кирпич", - "block.mineralogy.conglomerate_brick_stairs": "Кирпичная лестница из конгломерата", - "block.mineralogy.conglomerate_brick_slab": "Кирпичная плита из конгломерата", - "block.mineralogy.conglomerate_smooth": "Полированный конгломерат", - "block.mineralogy.conglomerate_smooth_stairs": "Полированная лестница из конгломерата", - "block.mineralogy.conglomerate_smooth_slab": "Полированная плита из конгломерата", - "block.mineralogy.conglomerate_smooth_brick": "Конгломератный полированный кирпич", - "block.mineralogy.conglomerate_smooth_brick_stairs": "Лестница из полированного кирпича из конгломерата", - "block.mineralogy.conglomerate_smooth_brick_slab": "Плита из полированного кирпича из конгломерата", + "block.mineralogy.conglomerate_stairs": "Ступеньки: Конгломерат", + "block.mineralogy.conglomerate_slab": "Плита: Конгломерат", + "block.mineralogy.conglomerate_brick": "Кирпичи: Конгломерат", + "block.mineralogy.conglomerate_brick_stairs": "Кирпичные ступеньки: Конгломерат", + "block.mineralogy.conglomerate_brick_slab": "Кирпичная плита: Конгломерат", + "block.mineralogy.conglomerate_smooth": "Полированный блок: Конгломерат", + "block.mineralogy.conglomerate_smooth_stairs": "Полированные ступеньки: Конгломерат", + "block.mineralogy.conglomerate_smooth_slab": "Полированная плита: Конгломерат", + "block.mineralogy.conglomerate_smooth_brick": "Полированные кирпичи: Конгломерат", + "block.mineralogy.conglomerate_smooth_brick_stairs": "Ступеньки из полированного кирпича: Конгломерат", + "block.mineralogy.conglomerate_smooth_brick_slab": "Плита из полированного кирпича: Конгломерат", "block.mineralogy.dolomite": "Доломит", - "block.mineralogy.dolomite_stairs": "Лестница из доломита", - "block.mineralogy.dolomite_slab": "Доломитовая плита", - "block.mineralogy.dolomite_brick": "Доломитовый кирпич", - "block.mineralogy.dolomite_brick_stairs": "Лестница из доломитового кирпича", - "block.mineralogy.dolomite_brick_slab": "Плита из доломитового кирпича", - "block.mineralogy.dolomite_smooth": "Полированный доломит", - "block.mineralogy.dolomite_smooth_stairs": "Полированные лестницы из доломита", - "block.mineralogy.dolomite_smooth_slab": "Полированная доломитовая плита", - "block.mineralogy.dolomite_smooth_brick": "Доломитовый полированный кирпич", - "block.mineralogy.dolomite_smooth_brick_stairs": "Лестница из полированного доломитового кирпича", - "block.mineralogy.dolomite_smooth_brick_slab": "Плита из полированного доломитового кирпича", + "block.mineralogy.dolomite_stairs": "Ступеньки: Доломит", + "block.mineralogy.dolomite_slab": "Плита: Доломит", + "block.mineralogy.dolomite_brick": "Кирпичи: Доломит", + "block.mineralogy.dolomite_brick_stairs": "Кирпичные ступеньки: Доломит", + "block.mineralogy.dolomite_brick_slab": "Кирпичная плита: Доломит", + "block.mineralogy.dolomite_smooth": "Полированный блок: Доломит", + "block.mineralogy.dolomite_smooth_stairs": "Полированные ступеньки: Доломит", + "block.mineralogy.dolomite_smooth_slab": "Полированная плита: Доломит", + "block.mineralogy.dolomite_smooth_brick": "Полированные кирпичи: Доломит", + "block.mineralogy.dolomite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Доломит", + "block.mineralogy.dolomite_smooth_brick_slab": "Плита из полированного кирпича: Доломит", "block.mineralogy.limestone": "Известняк", - "block.mineralogy.limestone_stairs": "Известняковая лестница", - "block.mineralogy.limestone_slab": "Известняковая плита", - "block.mineralogy.limestone_brick": "Известняковый кирпич", - "block.mineralogy.limestone_brick_stairs": "Лестница из известнякового кирпича", - "block.mineralogy.limestone_brick_slab": "Плита из известнякового кирпича", - "block.mineralogy.limestone_smooth": "Полированный известняк", - "block.mineralogy.limestone_smooth_stairs": "Лестницы из полированного известняка", - "block.mineralogy.limestone_smooth_slab": "Полированная плита из известняка", - "block.mineralogy.limestone_smooth_brick": "Полированный кирпич из известняка", - "block.mineralogy.limestone_smooth_brick_stairs": "Лестница из полированного кирпича из известняка", - "block.mineralogy.limestone_smooth_brick_slab": "Плита из полированного известнякового кирпича", - "block.mineralogy.slate": "Шифер", - "block.mineralogy.slate_stairs": "Сланцевая лестница", - "block.mineralogy.slate_slab": "Шиферная плита", - "block.mineralogy.slate_brick": "Сланцевый кирпич", - "block.mineralogy.slate_brick_stairs": "Лестница из шиферного кирпича", - "block.mineralogy.slate_brick_slab": "Кирпичная плита из шифера", - "block.mineralogy.slate_smooth": "Полированный сланец", - "block.mineralogy.slate_smooth_stairs": "Лестница из полированного шифера", - "block.mineralogy.slate_smooth_slab": "Полированная плита из сланца", - "block.mineralogy.slate_smooth_brick": "Кирпич из сланца, полированный", - "block.mineralogy.slate_smooth_brick_stairs": "Лестница из полированного шиферного кирпича", - "block.mineralogy.slate_smooth_brick_slab": "Кирпичная плита из полированного шифера", - "block.mineralogy.schist": "Сланец", - "block.mineralogy.schist_stairs": "Сланцевая лестница", - "block.mineralogy.schist_slab": "Сланцевая плита", - "block.mineralogy.schist_brick": "Кирпич из сланца", - "block.mineralogy.schist_brick_stairs": "Лестница из сланцевого кирпича", - "block.mineralogy.schist_brick_slab": "Кирпичная плита из сланцевого сланца", - "block.mineralogy.schist_smooth": "Полированный сланец", - "block.mineralogy.schist_smooth_stairs": "Лестница из полированного сланца", - "block.mineralogy.schist_smooth_slab": "Полированная плита из сланца", - "block.mineralogy.schist_smooth_brick": "Полированный кирпич из сланца", - "block.mineralogy.schist_smooth_brick_stairs": "Лестница из полированного кирпича из сланца", - "block.mineralogy.schist_smooth_brick_slab": "Плита из полированного кирпича из сланца", + "block.mineralogy.limestone_stairs": "Ступеньки: Известняк", + "block.mineralogy.limestone_slab": "Плита: Известняк", + "block.mineralogy.limestone_brick": "Кирпичи: Известняк", + "block.mineralogy.limestone_brick_stairs": "Кирпичные ступеньки: Известняк", + "block.mineralogy.limestone_brick_slab": "Кирпичная плита: Известняк", + "block.mineralogy.limestone_smooth": "Полированный блок: Известняк", + "block.mineralogy.limestone_smooth_stairs": "Полированные ступеньки: Известняк", + "block.mineralogy.limestone_smooth_slab": "Полированная плита: Известняк", + "block.mineralogy.limestone_smooth_brick": "Полированные кирпичи: Известняк", + "block.mineralogy.limestone_smooth_brick_stairs": "Ступеньки из полированного кирпича: Известняк", + "block.mineralogy.limestone_smooth_brick_slab": "Плита из полированного кирпича: Известняк", + "block.mineralogy.slate": "Аспидный сланец", + "block.mineralogy.slate_stairs": "Ступеньки: Аспидный сланец", + "block.mineralogy.slate_slab": "Плита: Аспидный сланец", + "block.mineralogy.slate_brick": "Кирпичи: Аспидный сланец", + "block.mineralogy.slate_brick_stairs": "Кирпичные ступеньки: Аспидный сланец", + "block.mineralogy.slate_brick_slab": "Кирпичная плита: Аспидный сланец", + "block.mineralogy.slate_smooth": "Полированный блок: Аспидный сланец", + "block.mineralogy.slate_smooth_stairs": "Полированные ступеньки: Аспидный сланец", + "block.mineralogy.slate_smooth_slab": "Полированная плита: Аспидный сланец", + "block.mineralogy.slate_smooth_brick": "Полированные кирпичи: Аспидный сланец", + "block.mineralogy.slate_smooth_brick_stairs": "Ступеньки из полированного кирпича: Аспидный сланец", + "block.mineralogy.slate_smooth_brick_slab": "Плита из полированного кирпича: Аспидный сланец", + "block.mineralogy.schist": "Кристаллический сланец", + "block.mineralogy.schist_stairs": "Ступеньки: Кристаллический сланец", + "block.mineralogy.schist_slab": "Плита: Кристаллический сланец", + "block.mineralogy.schist_brick": "Кирпичи: Кристаллический сланец", + "block.mineralogy.schist_brick_stairs": "Кирпичные ступеньки: Кристаллический сланец", + "block.mineralogy.schist_brick_slab": "Кирпичная плита: Кристаллический сланец", + "block.mineralogy.schist_smooth": "Полированный блок: Кристаллический сланец", + "block.mineralogy.schist_smooth_stairs": "Полированные ступеньки: Кристаллический сланец", + "block.mineralogy.schist_smooth_slab": "Полированная плита: Кристаллический сланец", + "block.mineralogy.schist_smooth_brick": "Полированные кирпичи: Кристаллический сланец", + "block.mineralogy.schist_smooth_brick_stairs": "Ступеньки из полированного кирпича: Кристаллический сланец", + "block.mineralogy.schist_smooth_brick_slab": "Плита из полированного кирпича: Кристаллический сланец", "block.mineralogy.gneiss": "Гнейс", - "block.mineralogy.gneiss_stairs": "Гнейсовая лестница", - "block.mineralogy.gneiss_slab": "Гнейсовая плита", - "block.mineralogy.gneiss_brick": "Гнейсовый кирпич", - "block.mineralogy.gneiss_brick_stairs": "Лестница из гнейсового кирпича", - "block.mineralogy.gneiss_brick_slab": "Кирпичная плита из гнейса", - "block.mineralogy.gneiss_smooth": "Полированный гнейс", - "block.mineralogy.gneiss_smooth_stairs": "Полированная лестница из гнейса", - "block.mineralogy.gneiss_smooth_slab": "Полированная плита из гнейса", - "block.mineralogy.gneiss_smooth_brick": "Гнейсовый полированный кирпич", - "block.mineralogy.gneiss_smooth_brick_stairs": "Лестница из полированного кирпича гнейса", - "block.mineralogy.gneiss_smooth_brick_slab": "Плита из полированного кирпича из гнейса", + "block.mineralogy.gneiss_stairs": "Ступеньки: Гнейс", + "block.mineralogy.gneiss_slab": "Плита: Гнейс", + "block.mineralogy.gneiss_brick": "Кирпичи: Гнейс", + "block.mineralogy.gneiss_brick_stairs": "Кирпичные ступеньки: Гнейс", + "block.mineralogy.gneiss_brick_slab": "Кирпичная плита: Гнейс", + "block.mineralogy.gneiss_smooth": "Полированный блок: Гнейс", + "block.mineralogy.gneiss_smooth_stairs": "Полированные ступеньки: Гнейс", + "block.mineralogy.gneiss_smooth_slab": "Полированная плита: Гнейс", + "block.mineralogy.gneiss_smooth_brick": "Полированные кирпичи: Гнейс", + "block.mineralogy.gneiss_smooth_brick_stairs": "Ступеньки из полированного кирпича: Гнейс", + "block.mineralogy.gneiss_smooth_brick_slab": "Плита из полированного кирпича: Гнейс", "block.mineralogy.marble": "Мрамор", - "block.mineralogy.marble_stairs": "Мраморная лестница", - "block.mineralogy.marble_slab": "Мраморная плита", - "block.mineralogy.marble_brick": "Мраморный кирпич", - "block.mineralogy.marble_brick_stairs": "Лестница из мраморного кирпича", - "block.mineralogy.marble_brick_slab": "Мраморная кирпичная плита", - "block.mineralogy.marble_smooth": "Полированный мрамор", - "block.mineralogy.marble_smooth_stairs": "Мраморная полированная лестница", - "block.mineralogy.marble_smooth_slab": "Мраморная полированная плита", - "block.mineralogy.marble_smooth_brick": "Мраморный полированный кирпич", - "block.mineralogy.marble_smooth_brick_stairs": "Лестница из полированного мрамора из кирпича", - "block.mineralogy.marble_smooth_brick_slab": "Мраморная полированная кирпичная плита", + "block.mineralogy.marble_stairs": "Ступеньки: Мрамор", + "block.mineralogy.marble_slab": "Плита: Мрамор", + "block.mineralogy.marble_brick": "Кирпичи: Мрамор", + "block.mineralogy.marble_brick_stairs": "Кирпичные ступеньки: Мрамор", + "block.mineralogy.marble_brick_slab": "Кирпичная плита: Мрамор", + "block.mineralogy.marble_smooth": "Полированный блок: Мрамор", + "block.mineralogy.marble_smooth_stairs": "Полированные ступеньки: Мрамор", + "block.mineralogy.marble_smooth_slab": "Полированная плита: Мрамор", + "block.mineralogy.marble_smooth_brick": "Полированные кирпичи: Мрамор", + "block.mineralogy.marble_smooth_brick_stairs": "Ступеньки из полированного кирпича: Мрамор", + "block.mineralogy.marble_smooth_brick_slab": "Плита из полированного кирпича: Мрамор", "block.mineralogy.phyllite": "Филлит", - "block.mineralogy.phyllite_stairs": "Филлитовая лестница", - "block.mineralogy.phyllite_slab": "Филлитовая плита", - "block.mineralogy.phyllite_brick": "Филлитовый кирпич", - "block.mineralogy.phyllite_brick_stairs": "Лестница из филлитового кирпича", - "block.mineralogy.phyllite_brick_slab": "Плита из филлитового кирпича", - "block.mineralogy.phyllite_smooth": "Филлит полированный", - "block.mineralogy.phyllite_smooth_stairs": "Лестница из полированного филлита", - "block.mineralogy.phyllite_smooth_slab": "Филлитовая полированная плита", - "block.mineralogy.phyllite_smooth_brick": "Филлитовый полированный кирпич", - "block.mineralogy.phyllite_smooth_brick_stairs": "Лестница из полированного кирпича из филлита", - "block.mineralogy.phyllite_smooth_brick_slab": "Плита из полированного кирпича из филлита", + "block.mineralogy.phyllite_stairs": "Ступеньки: Филлит", + "block.mineralogy.phyllite_slab": "Плита: Филлит", + "block.mineralogy.phyllite_brick": "Кирпичи: Филлит", + "block.mineralogy.phyllite_brick_stairs": "Кирпичные ступеньки: Филлит", + "block.mineralogy.phyllite_brick_slab": "Кирпичная плита: Филлит", + "block.mineralogy.phyllite_smooth": "Полированный блок: Филлит", + "block.mineralogy.phyllite_smooth_stairs": "Полированные ступеньки: Филлит", + "block.mineralogy.phyllite_smooth_slab": "Полированная плита: Филлит", + "block.mineralogy.phyllite_smooth_brick": "Полированные кирпичи: Филлит", + "block.mineralogy.phyllite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Филлит", + "block.mineralogy.phyllite_smooth_brick_slab": "Плита из полированного кирпича: Филлит", "block.mineralogy.amphibolite": "Амфиболит", - "block.mineralogy.amphibolite_stairs": "Амфиболитовая лестница", - "block.mineralogy.amphibolite_slab": "Амфиболитовая плита", - "block.mineralogy.amphibolite_brick": "Амфиболитовый кирпич", - "block.mineralogy.amphibolite_brick_stairs": "Лестница из амфиболитового кирпича", - "block.mineralogy.amphibolite_brick_slab": "Плита из амфиболитового кирпича", - "block.mineralogy.amphibolite_smooth": "Гладкий амфиболит", - "block.mineralogy.amphibolite_smooth_stairs": "Полированные лестницы из амфиболита", - "block.mineralogy.amphibolite_smooth_slab": "Полированная плита из амфиболита", - "block.mineralogy.amphibolite_smooth_brick": "Амфиболитовый полированный кирпич", - "block.mineralogy.amphibolite_smooth_brick_stairs": "Лестница из полированного амфиболитового кирпича", - "block.mineralogy.amphibolite_smooth_brick_slab": "Плита из полированного амфиболитового кирпича", + "block.mineralogy.amphibolite_stairs": "Ступеньки: Амфиболит", + "block.mineralogy.amphibolite_slab": "Плита: Амфиболит", + "block.mineralogy.amphibolite_brick": "Кирпичи: Амфиболит", + "block.mineralogy.amphibolite_brick_stairs": "Кирпичные ступеньки: Амфиболит", + "block.mineralogy.amphibolite_brick_slab": "Кирпичная плита: Амфиболит", + "block.mineralogy.amphibolite_smooth": "Полированный блок: Амфиболит", + "block.mineralogy.amphibolite_smooth_stairs": "Полированные ступеньки: Амфиболит", + "block.mineralogy.amphibolite_smooth_slab": "Полированная плита: Амфиболит", + "block.mineralogy.amphibolite_smooth_brick": "Полированные кирпичи: Амфиболит", + "block.mineralogy.amphibolite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Амфиболит", + "block.mineralogy.amphibolite_smooth_brick_slab": "Плита из полированного кирпича: Амфиболит", "item.mineralogy.gypsum_dust": "Гипсовый порошок", - "item.mineralogy.sulfur_dust": "Порошок серы", + "item.mineralogy.sulfur_dust": "Серный порошок", "item.mineralogy.phosphorous_dust": "Фосфорный порошок", "item.mineralogy.nitrate_dust": "Нитратный порошок", - "item.mineralogy.mineral_fertilizer": "Минеральные удобрения", - "block.mineralogy.chert": "Черт", + "item.mineralogy.mineral_fertilizer": "Минеральное удобрение", + "block.mineralogy.chert": "Кремень", "block.mineralogy.gypsum": "Гипс", "block.mineralogy.pumice": "Пемза", "block.mineralogy.sulfur_block": "Сера", @@ -205,736 +205,736 @@ "block.mineralogy.phosphorous_ore": "Фосфорная руда", "block.mineralogy.nitrate_block": "Нитрат", "block.mineralogy.nitrate_ore": "Нитратная руда", - "block.mineralogy.drywall_black": "Черный гипсокартон", - "block.mineralogy.drywall_red": "Красный гипсокартон", - "block.mineralogy.drywall_green": "Зеленый гипсокартон", - "block.mineralogy.drywall_brown": "Коричневый гипсокартон", - "block.mineralogy.drywall_blue": "Синий гипсокартон", - "block.mineralogy.drywall_purple": "Фиолетовый гипсокартон", - "block.mineralogy.drywall_cyan": "Голубой гипсокартон", - "block.mineralogy.drywall_silver": "Светло-серый гипсокартон", - "block.mineralogy.drywall_gray": "Серый гипсокартон", - "block.mineralogy.drywall_pink": "Розовый гипсокартон", - "block.mineralogy.drywall_lime": "Лаймово-зеленый гипсокартон", - "block.mineralogy.drywall_yellow": "Желтый гипсокартон", - "block.mineralogy.drywall_light_blue": "Голубой гипсокартон", - "block.mineralogy.drywall_magenta": "Пурпурный гипсокартон", - "block.mineralogy.drywall_orange": "Оранжевый гипсокартон", - "block.mineralogy.drywall_white": "Белый гипсокартон", - "block.mineralogy.andesite_wall": "Андезитовая стена", - "block.mineralogy.andesite_brick_wall": "Стена из андезитового кирпича", - "block.mineralogy.andesite_smooth_wall": "Андезитовая полированная стена", - "block.mineralogy.andesite_smooth_brick_wall": "Стена из полированного андезитового кирпича", - "block.mineralogy.basalt_wall": "Базальтовая стена", - "block.mineralogy.basalt_brick_wall": "Стена из базальтового кирпича", - "block.mineralogy.basalt_smooth_wall": "Полированная базальтовая стена", - "block.mineralogy.basalt_smooth_brick_wall": "Стена из полированного базальтового кирпича", - "block.mineralogy.diorite_wall": "Диоритовая стена", - "block.mineralogy.diorite_brick_wall": "Диоритовая кирпичная стена", - "block.mineralogy.diorite_smooth_wall": "Полированная стена из диорита", - "block.mineralogy.diorite_smooth_brick_wall": "Кирпичная стена из полированного диорита", - "block.mineralogy.granite_wall": "Гранитная стена", - "block.mineralogy.granite_brick_wall": "Гранитная кирпичная стена", - "block.mineralogy.granite_smooth_wall": "Гранитная полированная стена", - "block.mineralogy.granite_smooth_brick_wall": "Гранитная полированная кирпичная стена", - "block.mineralogy.rhyolite_wall": "Риолитовая стена", - "block.mineralogy.rhyolite_brick_wall": "Риолитовая кирпичная стена", - "block.mineralogy.rhyolite_smooth_wall": "Полированная стена из риолита", - "block.mineralogy.rhyolite_smooth_brick_wall": "Кирпичная стена из полированного риолита", - "block.mineralogy.pegmatite_wall": "Пегматитовая стена", - "block.mineralogy.pegmatite_brick_wall": "Пегматитовая кирпичная стена", - "block.mineralogy.pegmatite_smooth_wall": "Полированная стена из пегматита", - "block.mineralogy.pegmatite_smooth_brick_wall": "Пегматитовая полированная кирпичная стена", - "block.mineralogy.shale_wall": "Сланцевая стена", - "block.mineralogy.shale_brick_wall": "Кирпичная стена из сланца", - "block.mineralogy.shale_smooth_wall": "Полированная стена из сланца", - "block.mineralogy.shale_smooth_brick_wall": "Стена из полированного сланцевого кирпича", - "block.mineralogy.conglomerate_wall": "Стена Конгломерата", - "block.mineralogy.conglomerate_brick_wall": "Кирпичная стена конгломерата", - "block.mineralogy.conglomerate_smooth_wall": "Полированная стена из конгломерата", - "block.mineralogy.conglomerate_smooth_brick_wall": "Полированная кирпичная стена из конгломерата", - "block.mineralogy.dolomite_wall": "Доломитовая стена", - "block.mineralogy.dolomite_brick_wall": "Стена из доломитового кирпича", - "block.mineralogy.dolomite_smooth_wall": "Полированная стена из доломита", - "block.mineralogy.dolomite_smooth_brick_wall": "Кирпичная стена из полированного доломита", - "block.mineralogy.limestone_wall": "Известняковая стена", - "block.mineralogy.limestone_brick_wall": "Кирпичная стена из известняка", - "block.mineralogy.limestone_smooth_wall": "Полированная стена из известняка", - "block.mineralogy.limestone_smooth_brick_wall": "Кирпичная стена из полированного известняка", - "block.mineralogy.marble_wall": "Мраморная стена", - "block.mineralogy.marble_brick_wall": "Мраморная кирпичная стена", - "block.mineralogy.marble_smooth_wall": "Мраморная полированная стена", - "block.mineralogy.marble_smooth_brick_wall": "Мраморная полированная кирпичная стена", - "block.mineralogy.slate_wall": "Шиферная стена", - "block.mineralogy.slate_brick_wall": "Кирпичная стена из шифера", - "block.mineralogy.slate_smooth_wall": "Полированная стена из сланца", - "block.mineralogy.slate_smooth_brick_wall": "Полированная кирпичная стена из шифера", - "block.mineralogy.schist_wall": "Сланцевая стена", - "block.mineralogy.schist_brick_wall": "Кирпичная стена из сланца", - "block.mineralogy.schist_smooth_wall": "Полированная стена из сланца", - "block.mineralogy.schist_smooth_brick_wall": "Полированная кирпичная стена из сланца", - "block.mineralogy.gneiss_wall": "Гнейсовая стена", - "block.mineralogy.gneiss_brick_wall": "Кирпичная стена из гнейса", - "block.mineralogy.gneiss_smooth_wall": "Полированная стена из гнейса", - "block.mineralogy.gneiss_smooth_brick_wall": "Полированная кирпичная стена из гнейса", - "block.mineralogy.phyllite_wall": "Филлитовая стена", - "block.mineralogy.phyllite_brick_wall": "Кирпичная стена из филлита", - "block.mineralogy.phyllite_smooth_wall": "Полированная стена из филлита", - "block.mineralogy.phyllite_smooth_brick_wall": "Кирпичная стена из полированного филлита", - "block.mineralogy.amphibolite_wall": "Амфиболитовая стена", - "block.mineralogy.amphibolite_brick_wall": "Стена из амфиболитового кирпича", - "block.mineralogy.amphibolite_smooth_wall": "Полированная стена из амфиболита", - "block.mineralogy.amphibolite_smooth_brick_wall": "Стена из полированного амфиболита из кирпича", - "block.mineralogy.andesite_furnace": "Андезитовая печь", - "block.mineralogy.andesite_brick_furnace": "Печь из андезитового кирпича", - "block.mineralogy.andesite_smooth_furnace": "Печь для полировки андезита", - "block.mineralogy.andesite_smooth_brick_furnace": "Печь из андезитового полированного кирпича", - "block.mineralogy.basalt_furnace": "Базальтовая печь", - "block.mineralogy.basalt_brick_furnace": "Печь из базальтового кирпича", - "block.mineralogy.basalt_smooth_furnace": "Базальтовая полированная печь", - "block.mineralogy.basalt_smooth_brick_furnace": "Печь из базальтового полированного кирпича", - "block.mineralogy.diorite_furnace": "Диоритовая печь", - "block.mineralogy.diorite_brick_furnace": "Печь из диоритового кирпича", - "block.mineralogy.diorite_smooth_furnace": "Печь для полировки диорита", - "block.mineralogy.diorite_smooth_brick_furnace": "Печь из полированного кирпича из диорита", - "block.mineralogy.granite_furnace": "Гранитная печь", - "block.mineralogy.granite_brick_furnace": "Печь из гранитного кирпича", - "block.mineralogy.granite_smooth_furnace": "Гранитная полированная печь", - "block.mineralogy.granite_smooth_brick_furnace": "Печь из гранитного полированного кирпича", - "block.mineralogy.rhyolite_furnace": "Риолитовая печь", - "block.mineralogy.rhyolite_brick_furnace": "Печь из риолитового кирпича", - "block.mineralogy.rhyolite_smooth_furnace": "Печь для полировки риолита", - "block.mineralogy.rhyolite_smooth_brick_furnace": "Печь из полированного кирпича из риолита", - "block.mineralogy.pegmatite_furnace": "Пегматитовая печь", - "block.mineralogy.pegmatite_brick_furnace": "Пегматитовая кирпичная печь", - "block.mineralogy.pegmatite_smooth_furnace": "Пегматитовая полированная печь", - "block.mineralogy.pegmatite_smooth_brick_furnace": "Пегматитовая печь из полированного кирпича", - "block.mineralogy.shale_furnace": "Сланцевая печь", - "block.mineralogy.shale_brick_furnace": "Печь из сланцевого кирпича", - "block.mineralogy.shale_smooth_furnace": "Печь для полировки сланца", - "block.mineralogy.shale_smooth_brick_furnace": "Печь из полированного кирпича из сланца", - "block.mineralogy.conglomerate_furnace": "Печь для конгломерата", - "block.mineralogy.conglomerate_brick_furnace": "Кирпичная печь из конгломерата", - "block.mineralogy.conglomerate_smooth_furnace": "Печь для полировки конгломерата", - "block.mineralogy.conglomerate_smooth_brick_furnace": "Печь из полированного кирпича из конгломерата", - "block.mineralogy.dolomite_furnace": "Доломитовая печь", - "block.mineralogy.dolomite_brick_furnace": "Печь из доломитового кирпича", - "block.mineralogy.dolomite_smooth_furnace": "Печь для полировки доломита", - "block.mineralogy.dolomite_smooth_brick_furnace": "Печь из полированного доломитового кирпича", - "block.mineralogy.limestone_furnace": "Известняковая печь", - "block.mineralogy.limestone_brick_furnace": "Печь из известнякового кирпича", - "block.mineralogy.limestone_smooth_furnace": "Печь для полировки известняка", - "block.mineralogy.limestone_smooth_brick_furnace": "Печь из полированного кирпича из известняка", - "block.mineralogy.marble_furnace": "Мраморная печь", - "block.mineralogy.marble_brick_furnace": "Печь из мраморного кирпича", - "block.mineralogy.marble_smooth_furnace": "Печь для полировки мрамора", - "block.mineralogy.marble_smooth_brick_furnace": "Печь из мраморного полированного кирпича", - "block.mineralogy.slate_furnace": "Шиферная печь", - "block.mineralogy.slate_brick_furnace": "Печь из шиферного кирпича", - "block.mineralogy.slate_smooth_furnace": "Печь для полировки сланца", - "block.mineralogy.slate_smooth_brick_furnace": "Печь из полированного кирпича из сланца", - "block.mineralogy.schist_furnace": "Сланцевая печь", - "block.mineralogy.schist_brick_furnace": "Печь из сланцевого кирпича", - "block.mineralogy.schist_smooth_furnace": "Печь для полировки сланца", - "block.mineralogy.schist_smooth_brick_furnace": "Печь из полированного кирпича из сланца", - "block.mineralogy.gneiss_furnace": "Гнейсовая печь", - "block.mineralogy.gneiss_brick_furnace": "Кирпичная печь из гнейса", - "block.mineralogy.gneiss_smooth_furnace": "Печь для полировки гнейса", - "block.mineralogy.gneiss_smooth_brick_furnace": "Печь из полированного кирпича из гнейса", - "block.mineralogy.phyllite_furnace": "Филлитовая печь", - "block.mineralogy.phyllite_brick_furnace": "Печь из филлитового кирпича", - "block.mineralogy.phyllite_smooth_furnace": "Печь для полировки филлита", - "block.mineralogy.phyllite_smooth_brick_furnace": "Печь из полированного кирпича из филлита", - "block.mineralogy.amphibolite_furnace": "Амфиболитовая печь", - "block.mineralogy.amphibolite_brick_furnace": "Печь из амфиболитового кирпича", - "block.mineralogy.amphibolite_smooth_furnace": "Печь для полировки амфиболита", - "block.mineralogy.amphibolite_smooth_brick_furnace": "Печь из полированного амфиболитового кирпича", + "block.mineralogy.drywall_black": "Гипсокартон (чёрный)", + "block.mineralogy.drywall_red": "Гипсокартон (красный)", + "block.mineralogy.drywall_green": "Гипсокартон (зелёный)", + "block.mineralogy.drywall_brown": "Гипсокартон (коричневый)", + "block.mineralogy.drywall_blue": "Гипсокартон (синий)", + "block.mineralogy.drywall_purple": "Гипсокартон (фиолетовый)", + "block.mineralogy.drywall_cyan": "Гипсокартон (бирюзовый)", + "block.mineralogy.drywall_silver": "Гипсокартон (светло-серый)", + "block.mineralogy.drywall_gray": "Гипсокартон (серый)", + "block.mineralogy.drywall_pink": "Гипсокартон (розовый)", + "block.mineralogy.drywall_lime": "Гипсокартон (лаймовый)", + "block.mineralogy.drywall_yellow": "Гипсокартон (жёлтый)", + "block.mineralogy.drywall_light_blue": "Гипсокартон (голубой)", + "block.mineralogy.drywall_magenta": "Гипсокартон (пурпурный)", + "block.mineralogy.drywall_orange": "Гипсокартон (оранжевый)", + "block.mineralogy.drywall_white": "Гипсокартон (белый)", + "block.mineralogy.andesite_wall": "Ограда: Андезит", + "block.mineralogy.andesite_brick_wall": "Кирпичная ограда: Андезит", + "block.mineralogy.andesite_smooth_wall": "Полированная ограда: Андезит", + "block.mineralogy.andesite_smooth_brick_wall": "Ограда из полированного кирпича: Андезит", + "block.mineralogy.basalt_wall": "Ограда: Базальт", + "block.mineralogy.basalt_brick_wall": "Кирпичная ограда: Базальт", + "block.mineralogy.basalt_smooth_wall": "Полированная ограда: Базальт", + "block.mineralogy.basalt_smooth_brick_wall": "Ограда из полированного кирпича: Базальт", + "block.mineralogy.diorite_wall": "Ограда: Диорит", + "block.mineralogy.diorite_brick_wall": "Кирпичная ограда: Диорит", + "block.mineralogy.diorite_smooth_wall": "Полированная ограда: Диорит", + "block.mineralogy.diorite_smooth_brick_wall": "Ограда из полированного кирпича: Диорит", + "block.mineralogy.granite_wall": "Ограда: Гранит", + "block.mineralogy.granite_brick_wall": "Кирпичная ограда: Гранит", + "block.mineralogy.granite_smooth_wall": "Полированная ограда: Гранит", + "block.mineralogy.granite_smooth_brick_wall": "Ограда из полированного кирпича: Гранит", + "block.mineralogy.rhyolite_wall": "Ограда: Риолит", + "block.mineralogy.rhyolite_brick_wall": "Кирпичная ограда: Риолит", + "block.mineralogy.rhyolite_smooth_wall": "Полированная ограда: Риолит", + "block.mineralogy.rhyolite_smooth_brick_wall": "Ограда из полированного кирпича: Риолит", + "block.mineralogy.pegmatite_wall": "Ограда: Пегматит", + "block.mineralogy.pegmatite_brick_wall": "Кирпичная ограда: Пегматит", + "block.mineralogy.pegmatite_smooth_wall": "Полированная ограда: Пегматит", + "block.mineralogy.pegmatite_smooth_brick_wall": "Ограда из полированного кирпича: Пегматит", + "block.mineralogy.shale_wall": "Ограда: Глинистый сланец", + "block.mineralogy.shale_brick_wall": "Кирпичная ограда: Глинистый сланец", + "block.mineralogy.shale_smooth_wall": "Полированная ограда: Глинистый сланец", + "block.mineralogy.shale_smooth_brick_wall": "Ограда из полированного кирпича: Глинистый сланец", + "block.mineralogy.conglomerate_wall": "Ограда: Конгломерат", + "block.mineralogy.conglomerate_brick_wall": "Кирпичная ограда: Конгломерат", + "block.mineralogy.conglomerate_smooth_wall": "Полированная ограда: Конгломерат", + "block.mineralogy.conglomerate_smooth_brick_wall": "Ограда из полированного кирпича: Конгломерат", + "block.mineralogy.dolomite_wall": "Ограда: Доломит", + "block.mineralogy.dolomite_brick_wall": "Кирпичная ограда: Доломит", + "block.mineralogy.dolomite_smooth_wall": "Полированная ограда: Доломит", + "block.mineralogy.dolomite_smooth_brick_wall": "Ограда из полированного кирпича: Доломит", + "block.mineralogy.limestone_wall": "Ограда: Известняк", + "block.mineralogy.limestone_brick_wall": "Кирпичная ограда: Известняк", + "block.mineralogy.limestone_smooth_wall": "Полированная ограда: Известняк", + "block.mineralogy.limestone_smooth_brick_wall": "Ограда из полированного кирпича: Известняк", + "block.mineralogy.marble_wall": "Ограда: Мрамор", + "block.mineralogy.marble_brick_wall": "Кирпичная ограда: Мрамор", + "block.mineralogy.marble_smooth_wall": "Полированная ограда: Мрамор", + "block.mineralogy.marble_smooth_brick_wall": "Ограда из полированного кирпича: Мрамор", + "block.mineralogy.slate_wall": "Ограда: Аспидный сланец", + "block.mineralogy.slate_brick_wall": "Кирпичная ограда: Аспидный сланец", + "block.mineralogy.slate_smooth_wall": "Полированная ограда: Аспидный сланец", + "block.mineralogy.slate_smooth_brick_wall": "Ограда из полированного кирпича: Аспидный сланец", + "block.mineralogy.schist_wall": "Ограда: Кристаллический сланец", + "block.mineralogy.schist_brick_wall": "Кирпичная ограда: Кристаллический сланец", + "block.mineralogy.schist_smooth_wall": "Полированная ограда: Кристаллический сланец", + "block.mineralogy.schist_smooth_brick_wall": "Ограда из полированного кирпича: Кристаллический сланец", + "block.mineralogy.gneiss_wall": "Ограда: Гнейс", + "block.mineralogy.gneiss_brick_wall": "Кирпичная ограда: Гнейс", + "block.mineralogy.gneiss_smooth_wall": "Полированная ограда: Гнейс", + "block.mineralogy.gneiss_smooth_brick_wall": "Ограда из полированного кирпича: Гнейс", + "block.mineralogy.phyllite_wall": "Ограда: Филлит", + "block.mineralogy.phyllite_brick_wall": "Кирпичная ограда: Филлит", + "block.mineralogy.phyllite_smooth_wall": "Полированная ограда: Филлит", + "block.mineralogy.phyllite_smooth_brick_wall": "Ограда из полированного кирпича: Филлит", + "block.mineralogy.amphibolite_wall": "Ограда: Амфиболит", + "block.mineralogy.amphibolite_brick_wall": "Кирпичная ограда: Амфиболит", + "block.mineralogy.amphibolite_smooth_wall": "Полированная ограда: Амфиболит", + "block.mineralogy.amphibolite_smooth_brick_wall": "Ограда из полированного кирпича: Амфиболит", + "block.mineralogy.andesite_furnace": "Печь: Андезит", + "block.mineralogy.andesite_brick_furnace": "Кирпичная печь: Андезит", + "block.mineralogy.andesite_smooth_furnace": "Полированная печь: Андезит", + "block.mineralogy.andesite_smooth_brick_furnace": "Печь из полированного кирпича: Андезит", + "block.mineralogy.basalt_furnace": "Печь: Базальт", + "block.mineralogy.basalt_brick_furnace": "Кирпичная печь: Базальт", + "block.mineralogy.basalt_smooth_furnace": "Полированная печь: Базальт", + "block.mineralogy.basalt_smooth_brick_furnace": "Печь из полированного кирпича: Базальт", + "block.mineralogy.diorite_furnace": "Печь: Диорит", + "block.mineralogy.diorite_brick_furnace": "Кирпичная печь: Диорит", + "block.mineralogy.diorite_smooth_furnace": "Полированная печь: Диорит", + "block.mineralogy.diorite_smooth_brick_furnace": "Печь из полированного кирпича: Диорит", + "block.mineralogy.granite_furnace": "Печь: Гранит", + "block.mineralogy.granite_brick_furnace": "Кирпичная печь: Гранит", + "block.mineralogy.granite_smooth_furnace": "Полированная печь: Гранит", + "block.mineralogy.granite_smooth_brick_furnace": "Печь из полированного кирпича: Гранит", + "block.mineralogy.rhyolite_furnace": "Печь: Риолит", + "block.mineralogy.rhyolite_brick_furnace": "Кирпичная печь: Риолит", + "block.mineralogy.rhyolite_smooth_furnace": "Полированная печь: Риолит", + "block.mineralogy.rhyolite_smooth_brick_furnace": "Печь из полированного кирпича: Риолит", + "block.mineralogy.pegmatite_furnace": "Печь: Пегматит", + "block.mineralogy.pegmatite_brick_furnace": "Кирпичная печь: Пегматит", + "block.mineralogy.pegmatite_smooth_furnace": "Полированная печь: Пегматит", + "block.mineralogy.pegmatite_smooth_brick_furnace": "Печь из полированного кирпича: Пегматит", + "block.mineralogy.shale_furnace": "Печь: Глинистый сланец", + "block.mineralogy.shale_brick_furnace": "Кирпичная печь: Глинистый сланец", + "block.mineralogy.shale_smooth_furnace": "Полированная печь: Глинистый сланец", + "block.mineralogy.shale_smooth_brick_furnace": "Печь из полированного кирпича: Глинистый сланец", + "block.mineralogy.conglomerate_furnace": "Печь: Конгломерат", + "block.mineralogy.conglomerate_brick_furnace": "Кирпичная печь: Конгломерат", + "block.mineralogy.conglomerate_smooth_furnace": "Полированная печь: Конгломерат", + "block.mineralogy.conglomerate_smooth_brick_furnace": "Печь из полированного кирпича: Конгломерат", + "block.mineralogy.dolomite_furnace": "Печь: Доломит", + "block.mineralogy.dolomite_brick_furnace": "Кирпичная печь: Доломит", + "block.mineralogy.dolomite_smooth_furnace": "Полированная печь: Доломит", + "block.mineralogy.dolomite_smooth_brick_furnace": "Печь из полированного кирпича: Доломит", + "block.mineralogy.limestone_furnace": "Печь: Известняк", + "block.mineralogy.limestone_brick_furnace": "Кирпичная печь: Известняк", + "block.mineralogy.limestone_smooth_furnace": "Полированная печь: Известняк", + "block.mineralogy.limestone_smooth_brick_furnace": "Печь из полированного кирпича: Известняк", + "block.mineralogy.marble_furnace": "Печь: Мрамор", + "block.mineralogy.marble_brick_furnace": "Кирпичная печь: Мрамор", + "block.mineralogy.marble_smooth_furnace": "Полированная печь: Мрамор", + "block.mineralogy.marble_smooth_brick_furnace": "Печь из полированного кирпича: Мрамор", + "block.mineralogy.slate_furnace": "Печь: Аспидный сланец", + "block.mineralogy.slate_brick_furnace": "Кирпичная печь: Аспидный сланец", + "block.mineralogy.slate_smooth_furnace": "Полированная печь: Аспидный сланец", + "block.mineralogy.slate_smooth_brick_furnace": "Печь из полированного кирпича: Аспидный сланец", + "block.mineralogy.schist_furnace": "Печь: Кристаллический сланец", + "block.mineralogy.schist_brick_furnace": "Кирпичная печь: Кристаллический сланец", + "block.mineralogy.schist_smooth_furnace": "Полированная печь: Кристаллический сланец", + "block.mineralogy.schist_smooth_brick_furnace": "Печь из полированного кирпича: Кристаллический сланец", + "block.mineralogy.gneiss_furnace": "Печь: Гнейс", + "block.mineralogy.gneiss_brick_furnace": "Кирпичная печь: Гнейс", + "block.mineralogy.gneiss_smooth_furnace": "Полированная печь: Гнейс", + "block.mineralogy.gneiss_smooth_brick_furnace": "Печь из полированного кирпича: Гнейс", + "block.mineralogy.phyllite_furnace": "Печь: Филлит", + "block.mineralogy.phyllite_brick_furnace": "Кирпичная печь: Филлит", + "block.mineralogy.phyllite_smooth_furnace": "Полированная печь: Филлит", + "block.mineralogy.phyllite_smooth_brick_furnace": "Печь из полированного кирпича: Филлит", + "block.mineralogy.amphibolite_furnace": "Печь: Амфиболит", + "block.mineralogy.amphibolite_brick_furnace": "Кирпичная печь: Амфиболит", + "block.mineralogy.amphibolite_smooth_furnace": "Полированная печь: Амфиболит", + "block.mineralogy.amphibolite_smooth_brick_furnace": "Печь из полированного кирпича: Амфиболит", "block.mineralogy.diabase": "Диабаз", - "block.mineralogy.diabase_stairs": "Лестница из диабаза", - "block.mineralogy.diabase_slab": "Диабазовая плита", - "block.mineralogy.diabase_brick": "Диабазовый кирпич", - "block.mineralogy.diabase_brick_stairs": "Лестница из диабазового кирпича", - "block.mineralogy.diabase_brick_slab": "Плита из диабазового кирпича", - "block.mineralogy.diabase_smooth": "Полированный диабаз", - "block.mineralogy.diabase_smooth_stairs": "Полированные лестницы из диабаза", - "block.mineralogy.diabase_smooth_slab": "Полированная плита из диабаза", - "block.mineralogy.diabase_smooth_brick": "Кирпич полированный из диабаза", - "block.mineralogy.diabase_smooth_brick_stairs": "Лестница из полированного кирпича диабаза", - "block.mineralogy.diabase_smooth_brick_slab": "Плита из полированного кирпича из диабаза", - "block.mineralogy.diabase_wall": "Стена из диабаза", - "block.mineralogy.diabase_brick_wall": "Кирпичная стена из диабаза", - "block.mineralogy.diabase_smooth_wall": "Полированная стена из диабаза", - "block.mineralogy.diabase_smooth_brick_wall": "Полированная кирпичная стена из диабаза", - "block.mineralogy.diabase_furnace": "Диабазовая печь", - "block.mineralogy.diabase_brick_furnace": "Печь из диабазового кирпича", - "block.mineralogy.diabase_smooth_furnace": "Печь для полировки диабаза", - "block.mineralogy.diabase_smooth_brick_furnace": "Печь из полированного кирпича из диабаза", + "block.mineralogy.diabase_stairs": "Ступеньки: Диабаз", + "block.mineralogy.diabase_slab": "Плита: Диабаз", + "block.mineralogy.diabase_brick": "Кирпичи: Диабаз", + "block.mineralogy.diabase_brick_stairs": "Кирпичные ступеньки: Диабаз", + "block.mineralogy.diabase_brick_slab": "Кирпичная плита: Диабаз", + "block.mineralogy.diabase_smooth": "Полированный блок: Диабаз", + "block.mineralogy.diabase_smooth_stairs": "Полированные ступеньки: Диабаз", + "block.mineralogy.diabase_smooth_slab": "Полированная плита: Диабаз", + "block.mineralogy.diabase_smooth_brick": "Полированные кирпичи: Диабаз", + "block.mineralogy.diabase_smooth_brick_stairs": "Ступеньки из полированного кирпича: Диабаз", + "block.mineralogy.diabase_smooth_brick_slab": "Плита из полированного кирпича: Диабаз", + "block.mineralogy.diabase_wall": "Ограда: Диабаз", + "block.mineralogy.diabase_brick_wall": "Кирпичная ограда: Диабаз", + "block.mineralogy.diabase_smooth_wall": "Полированная ограда: Диабаз", + "block.mineralogy.diabase_smooth_brick_wall": "Ограда из полированного кирпича: Диабаз", + "block.mineralogy.diabase_furnace": "Печь: Диабаз", + "block.mineralogy.diabase_brick_furnace": "Кирпичная печь: Диабаз", + "block.mineralogy.diabase_smooth_furnace": "Полированная печь: Диабаз", + "block.mineralogy.diabase_smooth_brick_furnace": "Печь из полированного кирпича: Диабаз", "block.mineralogy.gabbro": "Габбро", - "block.mineralogy.gabbro_stairs": "Лестница Габбро", - "block.mineralogy.gabbro_slab": "Плита габбро", - "block.mineralogy.gabbro_brick": "Габбро Кирпич", - "block.mineralogy.gabbro_brick_stairs": "Лестница из кирпича Габбро", - "block.mineralogy.gabbro_brick_slab": "Кирпичная плита Габбро", - "block.mineralogy.gabbro_smooth": "Полированное габбро", - "block.mineralogy.gabbro_smooth_stairs": "Полированная лестница из габбро", - "block.mineralogy.gabbro_smooth_slab": "Полированная плита габбро", - "block.mineralogy.gabbro_smooth_brick": "Полированный кирпич Габбро", - "block.mineralogy.gabbro_smooth_brick_stairs": "Лестница из полированного кирпича габбро", - "block.mineralogy.gabbro_smooth_brick_slab": "Плита из полированного кирпича габбро", - "block.mineralogy.gabbro_wall": "Стена габбро", - "block.mineralogy.gabbro_brick_wall": "Кирпичная стена из габбро", - "block.mineralogy.gabbro_smooth_wall": "Полированная стена из габбро", - "block.mineralogy.gabbro_smooth_brick_wall": "Полированная кирпичная стена с габбро", - "block.mineralogy.gabbro_furnace": "Печь габбро", - "block.mineralogy.gabbro_brick_furnace": "Кирпичная печь из габбро", - "block.mineralogy.gabbro_smooth_furnace": "Печь для полировки габбро", - "block.mineralogy.gabbro_smooth_brick_furnace": "Печь из полированного кирпича габбро", + "block.mineralogy.gabbro_stairs": "Ступеньки: Габбро", + "block.mineralogy.gabbro_slab": "Плита: Габбро", + "block.mineralogy.gabbro_brick": "Кирпичи: Габбро", + "block.mineralogy.gabbro_brick_stairs": "Кирпичные ступеньки: Габбро", + "block.mineralogy.gabbro_brick_slab": "Кирпичная плита: Габбро", + "block.mineralogy.gabbro_smooth": "Полированный блок: Габбро", + "block.mineralogy.gabbro_smooth_stairs": "Полированные ступеньки: Габбро", + "block.mineralogy.gabbro_smooth_slab": "Полированная плита: Габбро", + "block.mineralogy.gabbro_smooth_brick": "Полированные кирпичи: Габбро", + "block.mineralogy.gabbro_smooth_brick_stairs": "Ступеньки из полированного кирпича: Габбро", + "block.mineralogy.gabbro_smooth_brick_slab": "Плита из полированного кирпича: Габбро", + "block.mineralogy.gabbro_wall": "Ограда: Габбро", + "block.mineralogy.gabbro_brick_wall": "Кирпичная ограда: Габбро", + "block.mineralogy.gabbro_smooth_wall": "Полированная ограда: Габбро", + "block.mineralogy.gabbro_smooth_brick_wall": "Ограда из полированного кирпича: Габбро", + "block.mineralogy.gabbro_furnace": "Печь: Габбро", + "block.mineralogy.gabbro_brick_furnace": "Кирпичная печь: Габбро", + "block.mineralogy.gabbro_smooth_furnace": "Полированная печь: Габбро", + "block.mineralogy.gabbro_smooth_brick_furnace": "Печь из полированного кирпича: Габбро", "block.mineralogy.peridotite": "Перидотит", - "block.mineralogy.peridotite_stairs": "Перидотитовая лестница", - "block.mineralogy.peridotite_slab": "Плита перидотита", - "block.mineralogy.peridotite_brick": "Перидотитовый кирпич", - "block.mineralogy.peridotite_brick_stairs": "Лестница из перидотитового кирпича", - "block.mineralogy.peridotite_brick_slab": "Плита из перидотитового кирпича", - "block.mineralogy.peridotite_smooth": "Полированный перидотит", - "block.mineralogy.peridotite_smooth_stairs": "Полированная лестница из перидотита", - "block.mineralogy.peridotite_smooth_slab": "Полированная плита перидотита", - "block.mineralogy.peridotite_smooth_brick": "Полированный перидотитовый кирпич", - "block.mineralogy.peridotite_smooth_brick_stairs": "Лестница из полированного перидотитового кирпича", - "block.mineralogy.peridotite_smooth_brick_slab": "Плита из полированного перидотитового кирпича", - "block.mineralogy.peridotite_wall": "Перидотитовая стена", - "block.mineralogy.peridotite_brick_wall": "Кирпичная стена из перидотита", - "block.mineralogy.peridotite_smooth_wall": "Полированная стена из перидотита", - "block.mineralogy.peridotite_smooth_brick_wall": "Полированная кирпичная стена с перидотитом", - "block.mineralogy.peridotite_furnace": "Перидотитовая печь", - "block.mineralogy.peridotite_brick_furnace": "Печь из перидотитового кирпича", - "block.mineralogy.peridotite_smooth_furnace": "Печь для полировки перидотита", - "block.mineralogy.peridotite_smooth_brick_furnace": "Печь из полированного кирпича из перидотита", + "block.mineralogy.peridotite_stairs": "Ступеньки: Перидотит", + "block.mineralogy.peridotite_slab": "Плита: Перидотит", + "block.mineralogy.peridotite_brick": "Кирпичи: Перидотит", + "block.mineralogy.peridotite_brick_stairs": "Кирпичные ступеньки: Перидотит", + "block.mineralogy.peridotite_brick_slab": "Кирпичная плита: Перидотит", + "block.mineralogy.peridotite_smooth": "Полированный блок: Перидотит", + "block.mineralogy.peridotite_smooth_stairs": "Полированные ступеньки: Перидотит", + "block.mineralogy.peridotite_smooth_slab": "Полированная плита: Перидотит", + "block.mineralogy.peridotite_smooth_brick": "Полированные кирпичи: Перидотит", + "block.mineralogy.peridotite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Перидотит", + "block.mineralogy.peridotite_smooth_brick_slab": "Плита из полированного кирпича: Перидотит", + "block.mineralogy.peridotite_wall": "Ограда: Перидотит", + "block.mineralogy.peridotite_brick_wall": "Кирпичная ограда: Перидотит", + "block.mineralogy.peridotite_smooth_wall": "Полированная ограда: Перидотит", + "block.mineralogy.peridotite_smooth_brick_wall": "Ограда из полированного кирпича: Перидотит", + "block.mineralogy.peridotite_furnace": "Печь: Перидотит", + "block.mineralogy.peridotite_brick_furnace": "Кирпичная печь: Перидотит", + "block.mineralogy.peridotite_smooth_furnace": "Полированная печь: Перидотит", + "block.mineralogy.peridotite_smooth_brick_furnace": "Печь из полированного кирпича: Перидотит", "block.mineralogy.basaltic_glass": "Базальтовое стекло", - "block.mineralogy.basaltic_glass_stairs": "Лестницы из базальтового стекла", - "block.mineralogy.basaltic_glass_slab": "Плита из базальтового стекла", - "block.mineralogy.basaltic_glass_brick": "Базальтовый стеклянный кирпич", - "block.mineralogy.basaltic_glass_brick_stairs": "Лестница из базальтового стеклянного кирпича", - "block.mineralogy.basaltic_glass_brick_slab": "Кирпичная плита из базальтового стекла", - "block.mineralogy.basaltic_glass_smooth": "Полированное базальтовое стекло", - "block.mineralogy.basaltic_glass_smooth_stairs": "Лестницы из полированного базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_slab": "Полированная плита из базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_brick": "Базальтовый стеклянный полированный кирпич", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Лестница из полированного кирпича из базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "Плита из полированного кирпича из базальтового стекла", - "block.mineralogy.basaltic_glass_wall": "Стена из базальтового стекла", - "block.mineralogy.basaltic_glass_brick_wall": "Кирпичная стена из базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_wall": "Полированная стена из базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "Кирпичная стена из полированного базальтового стекла", - "block.mineralogy.basaltic_glass_furnace": "Базальтовая стекловаренная печь", - "block.mineralogy.basaltic_glass_brick_furnace": "Печь из базальтового стеклокирпича", - "block.mineralogy.basaltic_glass_smooth_furnace": "Печь для полировки базальтового стекла", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Печь из базальтового стекла и полированного кирпича", + "block.mineralogy.basaltic_glass_stairs": "Ступеньки: Базальтовое стекло", + "block.mineralogy.basaltic_glass_slab": "Плита: Базальтовое стекло", + "block.mineralogy.basaltic_glass_brick": "Кирпичи: Базальтовое стекло", + "block.mineralogy.basaltic_glass_brick_stairs": "Кирпичные ступеньки: Базальтовое стекло", + "block.mineralogy.basaltic_glass_brick_slab": "Кирпичная плита: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth": "Полированный блок: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_stairs": "Полированные ступеньки: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_slab": "Полированная плита: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_brick": "Полированные кирпичи: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "Ступеньки из полированного кирпича: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "Плита из полированного кирпича: Базальтовое стекло", + "block.mineralogy.basaltic_glass_wall": "Ограда: Базальтовое стекло", + "block.mineralogy.basaltic_glass_brick_wall": "Кирпичная ограда: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_wall": "Полированная ограда: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "Ограда из полированного кирпича: Базальтовое стекло", + "block.mineralogy.basaltic_glass_furnace": "Печь: Базальтовое стекло", + "block.mineralogy.basaltic_glass_brick_furnace": "Кирпичная печь: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_furnace": "Полированная печь: Базальтовое стекло", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "Печь из полированного кирпича: Базальтовое стекло", "block.mineralogy.scoria": "Скория", - "block.mineralogy.scoria_stairs": "Лестница Скории", - "block.mineralogy.scoria_slab": "Плита шлака", - "block.mineralogy.scoria_brick": "Кирпич Скория", - "block.mineralogy.scoria_brick_stairs": "Кирпичная лестница Скории", - "block.mineralogy.scoria_brick_slab": "Кирпичная плита из скория", - "block.mineralogy.scoria_smooth": "Полированный шлак", - "block.mineralogy.scoria_smooth_stairs": "Полированная лестница Scoria", - "block.mineralogy.scoria_smooth_slab": "Полированная плита из скория", - "block.mineralogy.scoria_smooth_brick": "Полированный кирпич со скорией", - "block.mineralogy.scoria_smooth_brick_stairs": "Лестница из полированного кирпича Scoria", - "block.mineralogy.scoria_smooth_brick_slab": "Плита из полированного кирпича со скорией", - "block.mineralogy.scoria_wall": "Стена Скории", - "block.mineralogy.scoria_brick_wall": "Кирпичная стена Скории", - "block.mineralogy.scoria_smooth_wall": "Полированная стена со скорией", - "block.mineralogy.scoria_smooth_brick_wall": "Полированная кирпичная стена со скорией", - "block.mineralogy.scoria_furnace": "Печь со шлаком", - "block.mineralogy.scoria_brick_furnace": "Кирпичная печь из скория", - "block.mineralogy.scoria_smooth_furnace": "Печь для полировки скория", - "block.mineralogy.scoria_smooth_brick_furnace": "Печь из полированного кирпича Scoria", + "block.mineralogy.scoria_stairs": "Ступеньки: Скория", + "block.mineralogy.scoria_slab": "Плита: Скория", + "block.mineralogy.scoria_brick": "Кирпичи: Скория", + "block.mineralogy.scoria_brick_stairs": "Кирпичные ступеньки: Скория", + "block.mineralogy.scoria_brick_slab": "Кирпичная плита: Скория", + "block.mineralogy.scoria_smooth": "Полированный блок: Скория", + "block.mineralogy.scoria_smooth_stairs": "Полированные ступеньки: Скория", + "block.mineralogy.scoria_smooth_slab": "Полированная плита: Скория", + "block.mineralogy.scoria_smooth_brick": "Полированные кирпичи: Скория", + "block.mineralogy.scoria_smooth_brick_stairs": "Ступеньки из полированного кирпича: Скория", + "block.mineralogy.scoria_smooth_brick_slab": "Плита из полированного кирпича: Скория", + "block.mineralogy.scoria_wall": "Ограда: Скория", + "block.mineralogy.scoria_brick_wall": "Кирпичная ограда: Скория", + "block.mineralogy.scoria_smooth_wall": "Полированная ограда: Скория", + "block.mineralogy.scoria_smooth_brick_wall": "Ограда из полированного кирпича: Скория", + "block.mineralogy.scoria_furnace": "Печь: Скория", + "block.mineralogy.scoria_brick_furnace": "Кирпичная печь: Скория", + "block.mineralogy.scoria_smooth_furnace": "Полированная печь: Скория", + "block.mineralogy.scoria_smooth_brick_furnace": "Печь из полированного кирпича: Скория", "block.mineralogy.tuff": "Туф", - "block.mineralogy.tuff_stairs": "Лестница из туфа", - "block.mineralogy.tuff_slab": "Туфовая плита", - "block.mineralogy.tuff_brick": "Туфовый кирпич", - "block.mineralogy.tuff_brick_stairs": "Лестница из туфового кирпича", - "block.mineralogy.tuff_brick_slab": "Плита из туфового кирпича", - "block.mineralogy.tuff_smooth": "Полированный туф", - "block.mineralogy.tuff_smooth_stairs": "Лестница из полированного туфа", - "block.mineralogy.tuff_smooth_slab": "Полированная плита из туфа", - "block.mineralogy.tuff_smooth_brick": "Полированный кирпич из туфа", - "block.mineralogy.tuff_smooth_brick_stairs": "Лестница из полированного кирпича туфа", - "block.mineralogy.tuff_smooth_brick_slab": "Плита из полированного кирпича из туфа", - "block.mineralogy.tuff_wall": "Стена из туфа", - "block.mineralogy.tuff_brick_wall": "Кирпичная стена из туфа", - "block.mineralogy.tuff_smooth_wall": "Полированная стена из туфа", - "block.mineralogy.tuff_smooth_brick_wall": "Кирпичная стена из полированного туфа", - "block.mineralogy.tuff_furnace": "Туфовая печь", - "block.mineralogy.tuff_brick_furnace": "Печь из туфового кирпича", - "block.mineralogy.tuff_smooth_furnace": "Печь для полировки туфа", - "block.mineralogy.tuff_smooth_brick_furnace": "Печь из полированного кирпича из туфа", + "block.mineralogy.tuff_stairs": "Ступеньки: Туф", + "block.mineralogy.tuff_slab": "Плита: Туф", + "block.mineralogy.tuff_brick": "Кирпичи: Туф", + "block.mineralogy.tuff_brick_stairs": "Кирпичные ступеньки: Туф", + "block.mineralogy.tuff_brick_slab": "Кирпичная плита: Туф", + "block.mineralogy.tuff_smooth": "Полированный блок: Туф", + "block.mineralogy.tuff_smooth_stairs": "Полированные ступеньки: Туф", + "block.mineralogy.tuff_smooth_slab": "Полированная плита: Туф", + "block.mineralogy.tuff_smooth_brick": "Полированные кирпичи: Туф", + "block.mineralogy.tuff_smooth_brick_stairs": "Ступеньки из полированного кирпича: Туф", + "block.mineralogy.tuff_smooth_brick_slab": "Плита из полированного кирпича: Туф", + "block.mineralogy.tuff_wall": "Ограда: Туф", + "block.mineralogy.tuff_brick_wall": "Кирпичная ограда: Туф", + "block.mineralogy.tuff_smooth_wall": "Полированная ограда: Туф", + "block.mineralogy.tuff_smooth_brick_wall": "Ограда из полированного кирпича: Туф", + "block.mineralogy.tuff_furnace": "Печь: Туф", + "block.mineralogy.tuff_brick_furnace": "Кирпичная печь: Туф", + "block.mineralogy.tuff_smooth_furnace": "Полированная печь: Туф", + "block.mineralogy.tuff_smooth_brick_furnace": "Печь из полированного кирпича: Туф", "block.mineralogy.siltstone": "Алевролит", - "block.mineralogy.siltstone_stairs": "Лестница из алевролита", - "block.mineralogy.siltstone_slab": "Плита из алевролита", - "block.mineralogy.siltstone_brick": "Кирпич из алевролита", - "block.mineralogy.siltstone_brick_stairs": "Лестница из алевролитового кирпича", - "block.mineralogy.siltstone_brick_slab": "Кирпичная плита из алевролита", - "block.mineralogy.siltstone_smooth": "Полированный алевролит", - "block.mineralogy.siltstone_smooth_stairs": "Полированная лестница из алевролита", - "block.mineralogy.siltstone_smooth_slab": "Полированная плита из алевролита", - "block.mineralogy.siltstone_smooth_brick": "Полированный кирпич из алевролита", - "block.mineralogy.siltstone_smooth_brick_stairs": "Лестница из полированного кирпича из алевролита", - "block.mineralogy.siltstone_smooth_brick_slab": "Плита из полированного кирпича из алевролита", - "block.mineralogy.siltstone_wall": "Стена из алевролита", - "block.mineralogy.siltstone_brick_wall": "Кирпичная стена из алевролита", - "block.mineralogy.siltstone_smooth_wall": "Полированная стена из алевролита", - "block.mineralogy.siltstone_smooth_brick_wall": "Стена из полированного алевролитового кирпича", - "block.mineralogy.siltstone_furnace": "Алевролитовая печь", - "block.mineralogy.siltstone_brick_furnace": "Кирпичная печь из алевролита", - "block.mineralogy.siltstone_smooth_furnace": "Печь для полировки алевролита", - "block.mineralogy.siltstone_smooth_brick_furnace": "Печь из полированного кирпича из алевролита", + "block.mineralogy.siltstone_stairs": "Ступеньки: Алевролит", + "block.mineralogy.siltstone_slab": "Плита: Алевролит", + "block.mineralogy.siltstone_brick": "Кирпичи: Алевролит", + "block.mineralogy.siltstone_brick_stairs": "Кирпичные ступеньки: Алевролит", + "block.mineralogy.siltstone_brick_slab": "Кирпичная плита: Алевролит", + "block.mineralogy.siltstone_smooth": "Полированный блок: Алевролит", + "block.mineralogy.siltstone_smooth_stairs": "Полированные ступеньки: Алевролит", + "block.mineralogy.siltstone_smooth_slab": "Полированная плита: Алевролит", + "block.mineralogy.siltstone_smooth_brick": "Полированные кирпичи: Алевролит", + "block.mineralogy.siltstone_smooth_brick_stairs": "Ступеньки из полированного кирпича: Алевролит", + "block.mineralogy.siltstone_smooth_brick_slab": "Плита из полированного кирпича: Алевролит", + "block.mineralogy.siltstone_wall": "Ограда: Алевролит", + "block.mineralogy.siltstone_brick_wall": "Кирпичная ограда: Алевролит", + "block.mineralogy.siltstone_smooth_wall": "Полированная ограда: Алевролит", + "block.mineralogy.siltstone_smooth_brick_wall": "Ограда из полированного кирпича: Алевролит", + "block.mineralogy.siltstone_furnace": "Печь: Алевролит", + "block.mineralogy.siltstone_brick_furnace": "Кирпичная печь: Алевролит", + "block.mineralogy.siltstone_smooth_furnace": "Полированная печь: Алевролит", + "block.mineralogy.siltstone_smooth_brick_furnace": "Печь из полированного кирпича: Алевролит", "block.mineralogy.rock_salt": "Каменная соль", - "block.mineralogy.rock_salt_stairs": "Лестница из каменной соли", - "block.mineralogy.rock_salt_slab": "Плита из каменной соли", - "block.mineralogy.rock_salt_brick": "Кирпич из каменной соли", - "block.mineralogy.rock_salt_brick_stairs": "Лестница из кирпича из каменной соли", - "block.mineralogy.rock_salt_brick_slab": "Кирпичная плита из каменной соли", - "block.mineralogy.rock_salt_smooth": "Полированная каменная соль", - "block.mineralogy.rock_salt_smooth_stairs": "Лестницы, полированные каменной солью", - "block.mineralogy.rock_salt_smooth_slab": "Полированная плита из каменной соли", - "block.mineralogy.rock_salt_smooth_brick": "Полированный кирпич из каменной соли", - "block.mineralogy.rock_salt_smooth_brick_stairs": "Лестница из полированного кирпича с каменной солью", - "block.mineralogy.rock_salt_smooth_brick_slab": "Кирпичная плита, полированная каменной солью", - "block.mineralogy.rock_salt_wall": "Стена из каменной соли", - "block.mineralogy.rock_salt_brick_wall": "Кирпичная стена из каменной соли", - "block.mineralogy.rock_salt_smooth_wall": "Стена, полированная каменной солью", - "block.mineralogy.rock_salt_smooth_brick_wall": "Кирпичная стена, полированная каменной солью", - "block.mineralogy.rock_salt_furnace": "Печь из каменной соли", - "block.mineralogy.rock_salt_brick_furnace": "Кирпичная печь из каменной соли", - "block.mineralogy.rock_salt_smooth_furnace": "Печь для полировки каменной солью", - "block.mineralogy.rock_salt_smooth_brick_furnace": "Печь из полированного кирпича с каменной солью", + "block.mineralogy.rock_salt_stairs": "Ступеньки: Каменная соль", + "block.mineralogy.rock_salt_slab": "Плита: Каменная соль", + "block.mineralogy.rock_salt_brick": "Кирпичи: Каменная соль", + "block.mineralogy.rock_salt_brick_stairs": "Кирпичные ступеньки: Каменная соль", + "block.mineralogy.rock_salt_brick_slab": "Кирпичная плита: Каменная соль", + "block.mineralogy.rock_salt_smooth": "Полированный блок: Каменная соль", + "block.mineralogy.rock_salt_smooth_stairs": "Полированные ступеньки: Каменная соль", + "block.mineralogy.rock_salt_smooth_slab": "Полированная плита: Каменная соль", + "block.mineralogy.rock_salt_smooth_brick": "Полированные кирпичи: Каменная соль", + "block.mineralogy.rock_salt_smooth_brick_stairs": "Ступеньки из полированного кирпича: Каменная соль", + "block.mineralogy.rock_salt_smooth_brick_slab": "Плита из полированного кирпича: Каменная соль", + "block.mineralogy.rock_salt_wall": "Ограда: Каменная соль", + "block.mineralogy.rock_salt_brick_wall": "Кирпичная ограда: Каменная соль", + "block.mineralogy.rock_salt_smooth_wall": "Полированная ограда: Каменная соль", + "block.mineralogy.rock_salt_smooth_brick_wall": "Ограда из полированного кирпича: Каменная соль", + "block.mineralogy.rock_salt_furnace": "Печь: Каменная соль", + "block.mineralogy.rock_salt_brick_furnace": "Кирпичная печь: Каменная соль", + "block.mineralogy.rock_salt_smooth_furnace": "Полированная печь: Каменная соль", + "block.mineralogy.rock_salt_smooth_brick_furnace": "Печь из полированного кирпича: Каменная соль", "block.mineralogy.hornfels": "Роговик", - "block.mineralogy.hornfels_stairs": "Лестница Хорфелса", - "block.mineralogy.hornfels_slab": "Плита роговика", - "block.mineralogy.hornfels_brick": "Роговой кирпич", - "block.mineralogy.hornfels_brick_stairs": "Кирпичная лестница Hornfels", - "block.mineralogy.hornfels_brick_slab": "Кирпичная плита Роговик", - "block.mineralogy.hornfels_smooth": "Полированный роговик", - "block.mineralogy.hornfels_smooth_stairs": "Полированная лестница Hornfels", - "block.mineralogy.hornfels_smooth_slab": "Полированная плита роговика", - "block.mineralogy.hornfels_smooth_brick": "Полированный кирпич Hornfels", - "block.mineralogy.hornfels_smooth_brick_stairs": "Лестница из полированного кирпича Hornfels", - "block.mineralogy.hornfels_smooth_brick_slab": "Плита из полированного кирпича Hornfels", - "block.mineralogy.hornfels_wall": "Стена Роговиков", - "block.mineralogy.hornfels_brick_wall": "Кирпичная стена Хорфелса", - "block.mineralogy.hornfels_smooth_wall": "Полированная стена Hornfels", - "block.mineralogy.hornfels_smooth_brick_wall": "Полированная кирпичная стена Hornfels", - "block.mineralogy.hornfels_furnace": "Печь роговика", - "block.mineralogy.hornfels_brick_furnace": "Кирпичная печь Хорнфельса", - "block.mineralogy.hornfels_smooth_furnace": "Печь для полировки роговика", - "block.mineralogy.hornfels_smooth_brick_furnace": "Печь из полированного кирпича Hornfels", + "block.mineralogy.hornfels_stairs": "Ступеньки: Роговик", + "block.mineralogy.hornfels_slab": "Плита: Роговик", + "block.mineralogy.hornfels_brick": "Кирпичи: Роговик", + "block.mineralogy.hornfels_brick_stairs": "Кирпичные ступеньки: Роговик", + "block.mineralogy.hornfels_brick_slab": "Кирпичная плита: Роговик", + "block.mineralogy.hornfels_smooth": "Полированный блок: Роговик", + "block.mineralogy.hornfels_smooth_stairs": "Полированные ступеньки: Роговик", + "block.mineralogy.hornfels_smooth_slab": "Полированная плита: Роговик", + "block.mineralogy.hornfels_smooth_brick": "Полированные кирпичи: Роговик", + "block.mineralogy.hornfels_smooth_brick_stairs": "Ступеньки из полированного кирпича: Роговик", + "block.mineralogy.hornfels_smooth_brick_slab": "Плита из полированного кирпича: Роговик", + "block.mineralogy.hornfels_wall": "Ограда: Роговик", + "block.mineralogy.hornfels_brick_wall": "Кирпичная ограда: Роговик", + "block.mineralogy.hornfels_smooth_wall": "Полированная ограда: Роговик", + "block.mineralogy.hornfels_smooth_brick_wall": "Ограда из полированного кирпича: Роговик", + "block.mineralogy.hornfels_furnace": "Печь: Роговик", + "block.mineralogy.hornfels_brick_furnace": "Кирпичная печь: Роговик", + "block.mineralogy.hornfels_smooth_furnace": "Полированная печь: Роговик", + "block.mineralogy.hornfels_smooth_brick_furnace": "Печь из полированного кирпича: Роговик", "block.mineralogy.quartzite": "Кварцит", - "block.mineralogy.quartzite_stairs": "Кварцитовая лестница", - "block.mineralogy.quartzite_slab": "Кварцитовая плита", - "block.mineralogy.quartzite_brick": "Кварцитовый кирпич", - "block.mineralogy.quartzite_brick_stairs": "Лестница из кварцитового кирпича", - "block.mineralogy.quartzite_brick_slab": "Плита из кварцитового кирпича", - "block.mineralogy.quartzite_smooth": "Полированный кварцит", - "block.mineralogy.quartzite_smooth_stairs": "Лестница из полированного кварцита", - "block.mineralogy.quartzite_smooth_slab": "Полированная плита из кварцита", - "block.mineralogy.quartzite_smooth_brick": "Кварцитовый полированный кирпич", - "block.mineralogy.quartzite_smooth_brick_stairs": "Лестница из полированного кварцитового кирпича", - "block.mineralogy.quartzite_smooth_brick_slab": "Плита из полированного кирпича из кварцита", - "block.mineralogy.quartzite_wall": "Кварцитовая стена", - "block.mineralogy.quartzite_brick_wall": "Кирпичная стена из кварцита", - "block.mineralogy.quartzite_smooth_wall": "Полированная стена из кварцита", - "block.mineralogy.quartzite_smooth_brick_wall": "Кирпичная стена из полированного кварцита", - "block.mineralogy.quartzite_furnace": "Кварцитовая печь", - "block.mineralogy.quartzite_brick_furnace": "Печь из кварцитового кирпича", - "block.mineralogy.quartzite_smooth_furnace": "Печь для полировки кварцита", - "block.mineralogy.quartzite_smooth_brick_furnace": "Печь из кварцитового полированного кирпича", + "block.mineralogy.quartzite_stairs": "Ступеньки: Кварцит", + "block.mineralogy.quartzite_slab": "Плита: Кварцит", + "block.mineralogy.quartzite_brick": "Кирпичи: Кварцит", + "block.mineralogy.quartzite_brick_stairs": "Кирпичные ступеньки: Кварцит", + "block.mineralogy.quartzite_brick_slab": "Кирпичная плита: Кварцит", + "block.mineralogy.quartzite_smooth": "Полированный блок: Кварцит", + "block.mineralogy.quartzite_smooth_stairs": "Полированные ступеньки: Кварцит", + "block.mineralogy.quartzite_smooth_slab": "Полированная плита: Кварцит", + "block.mineralogy.quartzite_smooth_brick": "Полированные кирпичи: Кварцит", + "block.mineralogy.quartzite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Кварцит", + "block.mineralogy.quartzite_smooth_brick_slab": "Плита из полированного кирпича: Кварцит", + "block.mineralogy.quartzite_wall": "Ограда: Кварцит", + "block.mineralogy.quartzite_brick_wall": "Кирпичная ограда: Кварцит", + "block.mineralogy.quartzite_smooth_wall": "Полированная ограда: Кварцит", + "block.mineralogy.quartzite_smooth_brick_wall": "Ограда из полированного кирпича: Кварцит", + "block.mineralogy.quartzite_furnace": "Печь: Кварцит", + "block.mineralogy.quartzite_brick_furnace": "Кирпичная печь: Кварцит", + "block.mineralogy.quartzite_smooth_furnace": "Полированная печь: Кварцит", + "block.mineralogy.quartzite_smooth_brick_furnace": "Печь из полированного кирпича: Кварцит", "block.mineralogy.novaculite": "Новакулит", - "block.mineralogy.novaculite_stairs": "Новакулитовая лестница", - "block.mineralogy.novaculite_slab": "Новакулитовая плита", - "block.mineralogy.novaculite_brick": "Новакулитовый кирпич", - "block.mineralogy.novaculite_brick_stairs": "Лестница из новокулитового кирпича", - "block.mineralogy.novaculite_brick_slab": "Плита из новокулитового кирпича", - "block.mineralogy.novaculite_smooth": "Полированный новокулит", - "block.mineralogy.novaculite_smooth_stairs": "Новакулитовая полированная лестница", - "block.mineralogy.novaculite_smooth_slab": "Полированная плита из новокулита", - "block.mineralogy.novaculite_smooth_brick": "Новакулитовый полированный кирпич", - "block.mineralogy.novaculite_smooth_brick_stairs": "Лестница из полированного новокулитового кирпича", - "block.mineralogy.novaculite_smooth_brick_slab": "Плита из полированного кирпича из новокулита", - "block.mineralogy.novaculite_wall": "Новокулитовая стена", - "block.mineralogy.novaculite_brick_wall": "Стена из новокулитового кирпича", - "block.mineralogy.novaculite_smooth_wall": "Полированная стена из новокулита", - "block.mineralogy.novaculite_smooth_brick_wall": "Новокулитовая полированная кирпичная стена", - "block.mineralogy.novaculite_furnace": "Новокулитовая печь", - "block.mineralogy.novaculite_brick_furnace": "Печь из новокулитового кирпича", - "block.mineralogy.novaculite_smooth_furnace": "Печь для полировки новокулита", - "block.mineralogy.novaculite_smooth_brick_furnace": "Печь из новокулитового полированного кирпича", + "block.mineralogy.novaculite_stairs": "Ступеньки: Новакулит", + "block.mineralogy.novaculite_slab": "Плита: Новакулит", + "block.mineralogy.novaculite_brick": "Кирпичи: Новакулит", + "block.mineralogy.novaculite_brick_stairs": "Кирпичные ступеньки: Новакулит", + "block.mineralogy.novaculite_brick_slab": "Кирпичная плита: Новакулит", + "block.mineralogy.novaculite_smooth": "Полированный блок: Новакулит", + "block.mineralogy.novaculite_smooth_stairs": "Полированные ступеньки: Новакулит", + "block.mineralogy.novaculite_smooth_slab": "Полированная плита: Новакулит", + "block.mineralogy.novaculite_smooth_brick": "Полированные кирпичи: Новакулит", + "block.mineralogy.novaculite_smooth_brick_stairs": "Ступеньки из полированного кирпича: Новакулит", + "block.mineralogy.novaculite_smooth_brick_slab": "Плита из полированного кирпича: Новакулит", + "block.mineralogy.novaculite_wall": "Ограда: Новакулит", + "block.mineralogy.novaculite_brick_wall": "Кирпичная ограда: Новакулит", + "block.mineralogy.novaculite_smooth_wall": "Полированная ограда: Новакулит", + "block.mineralogy.novaculite_smooth_brick_wall": "Ограда из полированного кирпича: Новакулит", + "block.mineralogy.novaculite_furnace": "Печь: Новакулит", + "block.mineralogy.novaculite_brick_furnace": "Кирпичная печь: Новакулит", + "block.mineralogy.novaculite_smooth_furnace": "Полированная печь: Новакулит", + "block.mineralogy.novaculite_smooth_brick_furnace": "Печь из полированного кирпича: Новакулит", "block.mineralogy.chalk": "Мел", "item.mineralogy.chalk_dust": "Меловой порошок", "item.mineralogy.salt_dust": "Соль", "item.mineralogy.rock_salt_dust": "Кристаллы каменной соли", "block.mineralogy.rocksaltlamp": "Лампа из каменной соли", "block.mineralogy.rocksaltstreetlamp": "Уличный фонарь из каменной соли", - "block.mineralogy.andesite_relief_axe": "Рельеф из андезитового топора", - "block.mineralogy.andesite_relief_blank": "Андезитовый пустой рельеф", - "block.mineralogy.andesite_relief_cross": "Рельеф с андезитовым крестом", - "block.mineralogy.andesite_relief_hammer": "Рельеф из андезитового молота", - "block.mineralogy.andesite_relief_hoe": "Андезитовый рельеф мотыги", - "block.mineralogy.andesite_relief_horizontal": "Андезитовый горизонтальный рельеф", - "block.mineralogy.andesite_relief_i": "Андезит I Рельеф", - "block.mineralogy.andesite_relief_left": "Андезитовый левый рельеф", - "block.mineralogy.andesite_relief_pickaxe": "Рельеф с андезитовой киркой", - "block.mineralogy.andesite_relief_plus": "Андезит Плюс Релиф", - "block.mineralogy.andesite_relief_right": "Андезитовый правый рельеф", - "block.mineralogy.andesite_relief_sword": "Рельеф с андезитовым мечом", - "block.mineralogy.andesite_relief_vertical": "Андезитовый вертикальный рельеф", - "block.mineralogy.basalt_relief_axe": "Рельеф из базальтового топора", - "block.mineralogy.basalt_relief_blank": "Базальтовый пустой рельеф", - "block.mineralogy.basalt_relief_cross": "Базальтовый крестовый рельеф", - "block.mineralogy.basalt_relief_hammer": "Рельеф из базальтового молота", - "block.mineralogy.basalt_relief_hoe": "Рельеф из базальтовой мотыги", - "block.mineralogy.basalt_relief_horizontal": "Базальтовый горизонтальный рельеф", - "block.mineralogy.basalt_relief_i": "Базальт I Рельеф", - "block.mineralogy.basalt_relief_left": "Базальтовый левый рельеф", - "block.mineralogy.basalt_relief_pickaxe": "Рельеф с базальтовой киркой", - "block.mineralogy.basalt_relief_plus": "Базальт Плюс Релиф", - "block.mineralogy.basalt_relief_right": "Рельеф «Базальтовое право»", - "block.mineralogy.basalt_relief_sword": "Рельеф с базальтовым мечом", - "block.mineralogy.basalt_relief_vertical": "Базальтовый вертикальный рельеф", - "block.mineralogy.diorite_relief_axe": "Рельеф для топора из диорита", - "block.mineralogy.diorite_relief_blank": "Диорит Бланк Рельеф", - "block.mineralogy.diorite_relief_cross": "Рельеф с крестом из диорита", - "block.mineralogy.diorite_relief_hammer": "Рельеф из диорита «Молот»", - "block.mineralogy.diorite_relief_hoe": "Диорит Мотыга Рельеф", - "block.mineralogy.diorite_relief_horizontal": "Диорит Горизонтальный рельеф", - "block.mineralogy.diorite_relief_i": "Диорит I Рельеф", - "block.mineralogy.diorite_relief_left": "Диоритовый левый рельеф", - "block.mineralogy.diorite_relief_pickaxe": "Рельеф для кирки из диорита", - "block.mineralogy.diorite_relief_plus": "Диорит Плюс Релиф", - "block.mineralogy.diorite_relief_right": "Диоритовый правый рельеф", - "block.mineralogy.diorite_relief_sword": "Рельеф меча из диорита", - "block.mineralogy.diorite_relief_vertical": "Диорит Вертикальный рельеф", - "block.mineralogy.granite_relief_axe": "Рельеф с гранитным топором", - "block.mineralogy.granite_relief_blank": "Гранитный пустой рельеф", - "block.mineralogy.granite_relief_cross": "Рельеф из гранитного креста", - "block.mineralogy.granite_relief_hammer": "Рельеф с гранитным молотом", - "block.mineralogy.granite_relief_hoe": "Рельеф из гранитной мотыги", - "block.mineralogy.granite_relief_horizontal": "Гранитный горизонтальный рельеф", - "block.mineralogy.granite_relief_i": "Гранит I Рельеф", - "block.mineralogy.granite_relief_left": "Гранитный левый рельеф", - "block.mineralogy.granite_relief_pickaxe": "Рельеф с гранитной киркой", - "block.mineralogy.granite_relief_plus": "Гранит Плюс Релиф", - "block.mineralogy.granite_relief_right": "Гранитный правый рельеф", - "block.mineralogy.granite_relief_sword": "Рельеф с гранитным мечом", - "block.mineralogy.granite_relief_vertical": "Гранитный вертикальный рельеф", - "block.mineralogy.rhyolite_relief_axe": "Рельеф для топора из риолита", - "block.mineralogy.rhyolite_relief_blank": "Риолитовый бланковый рельеф", - "block.mineralogy.rhyolite_relief_cross": "Рельеф с риолитовым крестом", - "block.mineralogy.rhyolite_relief_hammer": "Риолитовый молоток Рельеф", - "block.mineralogy.rhyolite_relief_hoe": "Рельеф для мотыги из риолита", - "block.mineralogy.rhyolite_relief_horizontal": "Риолит Горизонтальный рельеф", - "block.mineralogy.rhyolite_relief_i": "Риолит I Рельеф", - "block.mineralogy.rhyolite_relief_left": "Риолитовый левый рельеф", - "block.mineralogy.rhyolite_relief_pickaxe": "Риолитовая кирка Рельеф", - "block.mineralogy.rhyolite_relief_plus": "Риолит Плюс Релиф", - "block.mineralogy.rhyolite_relief_right": "Риолитовый правый рельеф", - "block.mineralogy.rhyolite_relief_sword": "Рельеф меча из риолита", - "block.mineralogy.rhyolite_relief_vertical": "Риолит Вертикальный рельеф", - "block.mineralogy.pegmatite_relief_axe": "Рельеф из пегматитового топора", - "block.mineralogy.pegmatite_relief_blank": "Пегматитовый пустой рельеф", - "block.mineralogy.pegmatite_relief_cross": "Пегматитовый крестовый рельеф", - "block.mineralogy.pegmatite_relief_hammer": "Рельеф из пегматитового молота", - "block.mineralogy.pegmatite_relief_hoe": "Пегматитовый рельеф мотыги", - "block.mineralogy.pegmatite_relief_horizontal": "Пегматитовый горизонтальный рельеф", - "block.mineralogy.pegmatite_relief_i": "Пегматит I Рельеф", - "block.mineralogy.pegmatite_relief_left": "Пегматитовый левый рельеф", - "block.mineralogy.pegmatite_relief_pickaxe": "Рельеф с пегматитовой киркой", - "block.mineralogy.pegmatite_relief_plus": "Пегматит Плюс Релиф", - "block.mineralogy.pegmatite_relief_right": "Пегматитовый правый рельеф", - "block.mineralogy.pegmatite_relief_sword": "Рельеф с пегматитовым мечом", - "block.mineralogy.pegmatite_relief_vertical": "Пегматитовый вертикальный рельеф", - "block.mineralogy.shale_relief_axe": "Рельеф из сланцевого топора", - "block.mineralogy.shale_relief_blank": "Сланцевый пустой рельеф", - "block.mineralogy.shale_relief_cross": "Рельеф Сланцевого креста", - "block.mineralogy.shale_relief_hammer": "Рельеф Сланцевого молота", - "block.mineralogy.shale_relief_hoe": "Рельеф сланцевой мотыги", - "block.mineralogy.shale_relief_horizontal": "Сланцевый горизонтальный рельеф", - "block.mineralogy.shale_relief_i": "Рельеф Сланцев I", - "block.mineralogy.shale_relief_left": "Рельеф сланцевого остатка", - "block.mineralogy.shale_relief_pickaxe": "Рельеф сланцевой кирки", - "block.mineralogy.shale_relief_plus": "Сланец плюс помощь", - "block.mineralogy.shale_relief_right": "Облегчение сланцевых прав", - "block.mineralogy.shale_relief_sword": "Рельеф сланцевого меча", - "block.mineralogy.shale_relief_vertical": "Сланцевый вертикальный рельеф", - "block.mineralogy.conglomerate_relief_axe": "Рельеф топора Конгломерата", - "block.mineralogy.conglomerate_relief_blank": "Пустой рельеф конгломерата", - "block.mineralogy.conglomerate_relief_cross": "Рельеф с крестом из конгломерата", - "block.mineralogy.conglomerate_relief_hammer": "Рельеф молота конгломерата", - "block.mineralogy.conglomerate_relief_hoe": "Рельеф мотыги конгломерата", - "block.mineralogy.conglomerate_relief_horizontal": "Конгломерат Горизонтальный Рельеф", - "block.mineralogy.conglomerate_relief_i": "Конгломерат I. Облегчение", - "block.mineralogy.conglomerate_relief_left": "Конгломерат Левый Рельеф", - "block.mineralogy.conglomerate_relief_pickaxe": "Рельеф с киркой конгломерата", - "block.mineralogy.conglomerate_relief_plus": "Конгломерат плюс помощь", - "block.mineralogy.conglomerate_relief_right": "Помощь правым конгломератам", - "block.mineralogy.conglomerate_relief_sword": "Рельеф с мечом конгломерата", - "block.mineralogy.conglomerate_relief_vertical": "Конгломерат Вертикальный рельеф", - "block.mineralogy.dolomite_relief_axe": "Рельеф с доломитовым топором", - "block.mineralogy.dolomite_relief_blank": "Доломитовый пустой рельеф", - "block.mineralogy.dolomite_relief_cross": "Рельеф Доломитового Креста", - "block.mineralogy.dolomite_relief_hammer": "Рельеф Доломитового Молота", - "block.mineralogy.dolomite_relief_hoe": "Доломитовый рельеф Мотыги", - "block.mineralogy.dolomite_relief_horizontal": "Доломитовый горизонтальный рельеф", - "block.mineralogy.dolomite_relief_i": "Доломит I Рельеф", - "block.mineralogy.dolomite_relief_left": "Доломитовый левый рельеф", - "block.mineralogy.dolomite_relief_pickaxe": "Рельеф с доломитовой киркой", - "block.mineralogy.dolomite_relief_plus": "Доломит Плюс Релиф", - "block.mineralogy.dolomite_relief_right": "Доломитовый правый рельеф", - "block.mineralogy.dolomite_relief_sword": "Рельеф с мечом из доломита", - "block.mineralogy.dolomite_relief_vertical": "Доломитовый вертикальный рельеф", - "block.mineralogy.limestone_relief_axe": "Рельеф с топором из известняка", - "block.mineralogy.limestone_relief_blank": "Пустой рельеф из известняка", - "block.mineralogy.limestone_relief_cross": "Рельеф с крестом из известняка", - "block.mineralogy.limestone_relief_hammer": "Рельеф с известняковым молотом", - "block.mineralogy.limestone_relief_hoe": "Рельеф из известняковой мотыги", - "block.mineralogy.limestone_relief_horizontal": "Горизонтальный рельеф известняка", - "block.mineralogy.limestone_relief_i": "Известняк I Рельеф", - "block.mineralogy.limestone_relief_left": "Левый рельеф известняка", - "block.mineralogy.limestone_relief_pickaxe": "Рельеф с известняковой киркой", - "block.mineralogy.limestone_relief_plus": "Известняк плюс облегчение", - "block.mineralogy.limestone_relief_right": "Известняковый правый рельеф", - "block.mineralogy.limestone_relief_sword": "Рельеф с мечом из известняка", - "block.mineralogy.limestone_relief_vertical": "Известняковый вертикальный рельеф", - "block.mineralogy.marble_relief_axe": "Рельеф с мраморным топором", - "block.mineralogy.marble_relief_blank": "Мраморный пустой рельеф", - "block.mineralogy.marble_relief_cross": "Мраморный крест-рельеф", - "block.mineralogy.marble_relief_hammer": "Рельеф с мраморным молотом", - "block.mineralogy.marble_relief_hoe": "Рельеф из мраморной мотыги", - "block.mineralogy.marble_relief_horizontal": "Мраморный горизонтальный рельеф", - "block.mineralogy.marble_relief_i": "Мрамор I Рельеф", - "block.mineralogy.marble_relief_left": "Мраморный рельеф слева", - "block.mineralogy.marble_relief_pickaxe": "Рельеф с мраморной киркой", - "block.mineralogy.marble_relief_plus": "Мрамор плюс рельеф", - "block.mineralogy.marble_relief_right": "Мраморный правый рельеф", - "block.mineralogy.marble_relief_sword": "Рельеф с мраморным мечом", - "block.mineralogy.marble_relief_vertical": "Мраморный вертикальный рельеф", - "block.mineralogy.slate_relief_axe": "Рельеф для сланцевого топора", - "block.mineralogy.slate_relief_blank": "Рельеф из сланца", - "block.mineralogy.slate_relief_cross": "Рельеф из сланцевого креста", - "block.mineralogy.slate_relief_hammer": "Рельеф для сланцевого молота", - "block.mineralogy.slate_relief_hoe": "Рельеф для шиферной мотыги", - "block.mineralogy.slate_relief_horizontal": "Горизонтальный рельеф сланца", - "block.mineralogy.slate_relief_i": "Сланец I Рельеф", - "block.mineralogy.slate_relief_left": "Рельеф слева", - "block.mineralogy.slate_relief_pickaxe": "Рельеф от сланцевой кирки", - "block.mineralogy.slate_relief_plus": "Slate Plus Relief", - "block.mineralogy.slate_relief_right": "Правый рельеф шифера", - "block.mineralogy.slate_relief_sword": "Рельеф сланцевого меча", - "block.mineralogy.slate_relief_vertical": "Сланцевый вертикальный рельеф", - "block.mineralogy.schist_relief_axe": "Рельеф сланцевого топора", - "block.mineralogy.schist_relief_blank": "Сланцевый пустой рельеф", - "block.mineralogy.schist_relief_cross": "Рельеф Сланцевого Креста", - "block.mineralogy.schist_relief_hammer": "Рельеф сланцевого молота", - "block.mineralogy.schist_relief_hoe": "Рельеф сланцевой мотыги", - "block.mineralogy.schist_relief_horizontal": "Горизонтальный рельеф сланцев", - "block.mineralogy.schist_relief_i": "Сланец I Рельеф", - "block.mineralogy.schist_relief_left": "Сланцевый левый рельеф", - "block.mineralogy.schist_relief_pickaxe": "Рельеф сланцевой кирки", - "block.mineralogy.schist_relief_plus": "Сланец Плюс Релиф", - "block.mineralogy.schist_relief_right": "Сланцевый правый рельеф", - "block.mineralogy.schist_relief_sword": "Рельеф сланцевого меча", - "block.mineralogy.schist_relief_vertical": "Сланцевый вертикальный рельеф", - "block.mineralogy.gneiss_relief_axe": "Рельеф с топором из гнейса", - "block.mineralogy.gneiss_relief_blank": "Гнейсовый пустой рельеф", - "block.mineralogy.gneiss_relief_cross": "Рельеф «Гнейсовый крест»", - "block.mineralogy.gneiss_relief_hammer": "Рельеф «Гнейсовый молот»", - "block.mineralogy.gneiss_relief_hoe": "Гнейс Мотыга Рельеф", - "block.mineralogy.gneiss_relief_horizontal": "Гнейсовый горизонтальный рельеф", - "block.mineralogy.gneiss_relief_i": "Гнейс I Рельеф", - "block.mineralogy.gneiss_relief_left": "Гнейсовый левый рельеф", - "block.mineralogy.gneiss_relief_pickaxe": "Рельеф с гнейсовой киркой", - "block.mineralogy.gneiss_relief_plus": "Гнейс Плюс Релиф", - "block.mineralogy.gneiss_relief_right": "Правый рельеф Гнейса", - "block.mineralogy.gneiss_relief_sword": "Рельеф с гнейсовым мечом", - "block.mineralogy.gneiss_relief_vertical": "Гнейсовый вертикальный рельеф", - "block.mineralogy.phyllite_relief_axe": "Рельеф для топора из филлита", - "block.mineralogy.phyllite_relief_blank": "Филлитовый бланковый рельеф", - "block.mineralogy.phyllite_relief_cross": "Рельеф с филлитовым крестом", - "block.mineralogy.phyllite_relief_hammer": "Рельеф из филлитового молота", - "block.mineralogy.phyllite_relief_hoe": "Рельеф для мотыги из филлита", - "block.mineralogy.phyllite_relief_horizontal": "Филлит Горизонтальный рельеф", - "block.mineralogy.phyllite_relief_i": "Филлит I Рельеф", - "block.mineralogy.phyllite_relief_left": "Филлит левый рельеф", - "block.mineralogy.phyllite_relief_pickaxe": "Рельеф с киркой из филлита", - "block.mineralogy.phyllite_relief_plus": "Филлит Плюс Релиф", - "block.mineralogy.phyllite_relief_right": "Филлит Правый Рельеф", - "block.mineralogy.phyllite_relief_sword": "Рельеф с мечом из филлита", - "block.mineralogy.phyllite_relief_vertical": "Филлит Вертикальный рельеф", - "block.mineralogy.amphibolite_relief_axe": "Рельеф для топора из амфиболита", - "block.mineralogy.amphibolite_relief_blank": "Амфиболитовый бланковый рельеф", - "block.mineralogy.amphibolite_relief_cross": "Амфиболитовый крестовый рельеф", - "block.mineralogy.amphibolite_relief_hammer": "Амфиболитовый молоток Рельеф", - "block.mineralogy.amphibolite_relief_hoe": "Амфиболитовый рельеф мотыги", - "block.mineralogy.amphibolite_relief_horizontal": "Амфиболитовый горизонтальный рельеф", - "block.mineralogy.amphibolite_relief_i": "Амфиболит I Рельеф", - "block.mineralogy.amphibolite_relief_left": "Амфиболитовый левый рельеф", - "block.mineralogy.amphibolite_relief_pickaxe": "Рельеф с амфиболитовой киркой", - "block.mineralogy.amphibolite_relief_plus": "Амфиболит Плюс Релиф", - "block.mineralogy.amphibolite_relief_right": "Амфиболитовый правый рельеф", - "block.mineralogy.amphibolite_relief_sword": "Рельеф с мечом из амфиболита", - "block.mineralogy.amphibolite_relief_vertical": "Амфиболитовый вертикальный рельеф", - "block.mineralogy.diabase_relief_axe": "Рельеф для топора из диабаза", - "block.mineralogy.diabase_relief_blank": "Рельеф из диабаза", - "block.mineralogy.diabase_relief_cross": "Диабазовый крест-рельеф", - "block.mineralogy.diabase_relief_hammer": "Рельеф от диабазового молотка", - "block.mineralogy.diabase_relief_hoe": "Диабазовая мотыга", - "block.mineralogy.diabase_relief_horizontal": "Диабазовый горизонтальный рельеф", - "block.mineralogy.diabase_relief_i": "Диабаз I Рельеф", - "block.mineralogy.diabase_relief_left": "Рельеф левой диабаза", - "block.mineralogy.diabase_relief_pickaxe": "Рельеф от диабазовой кирки", - "block.mineralogy.diabase_relief_plus": "Диабаз Плюс Релиф", - "block.mineralogy.diabase_relief_right": "Рельеф правого диабаза", - "block.mineralogy.diabase_relief_sword": "Рельеф меча из диабаза", - "block.mineralogy.diabase_relief_vertical": "Вертикальный рельеф из диабаза", - "block.mineralogy.gabbro_relief_axe": "Рельеф топора габбро", - "block.mineralogy.gabbro_relief_blank": "Габбро Бланк Рельеф", - "block.mineralogy.gabbro_relief_cross": "Крест Габбро Рельеф", - "block.mineralogy.gabbro_relief_hammer": "Рельеф «Молот Габбро»", - "block.mineralogy.gabbro_relief_hoe": "Габбро Мотыга Рельеф", - "block.mineralogy.gabbro_relief_horizontal": "Габбро Горизонтальный рельеф", - "block.mineralogy.gabbro_relief_i": "Габбро I Рельеф", - "block.mineralogy.gabbro_relief_left": "Габбро левый рельеф", - "block.mineralogy.gabbro_relief_pickaxe": "Рельеф кирки Габбро", - "block.mineralogy.gabbro_relief_plus": "Габбро Плюс Релиф", - "block.mineralogy.gabbro_relief_right": "Габбро Правый Рельеф", - "block.mineralogy.gabbro_relief_sword": "Рельеф с мечом габбро", - "block.mineralogy.gabbro_relief_vertical": "Габбро Вертикальный рельеф", - "block.mineralogy.peridotite_relief_axe": "Рельеф с топором из перидотита", - "block.mineralogy.peridotite_relief_blank": "Перидотитовый пустой рельеф", - "block.mineralogy.peridotite_relief_cross": "Перидотитовый крестовый рельеф", - "block.mineralogy.peridotite_relief_hammer": "Рельеф из перидотитового молота", - "block.mineralogy.peridotite_relief_hoe": "Перидотитовый рельеф мотыги", - "block.mineralogy.peridotite_relief_horizontal": "Перидотитовый горизонтальный рельеф", - "block.mineralogy.peridotite_relief_i": "Перидотит I Рельеф", - "block.mineralogy.peridotite_relief_left": "Перидотитовый левый рельеф", - "block.mineralogy.peridotite_relief_pickaxe": "Рельеф с перидотитовой киркой", - "block.mineralogy.peridotite_relief_plus": "Перидотит Плюс Релиф", - "block.mineralogy.peridotite_relief_right": "Перидотитовый правый рельеф", - "block.mineralogy.peridotite_relief_sword": "Рельеф из перидотитового меча", - "block.mineralogy.peridotite_relief_vertical": "Перидотитовый вертикальный рельеф", - "block.mineralogy.basaltic_glass_relief_axe": "Рельеф с топором из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_blank": "Пустой рельеф из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_cross": "Крест из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_hammer": "Рельеф с молотом из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_hoe": "Рельеф мотыги из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_horizontal": "Горизонтальный рельеф из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_i": "Базальтовое стекло I Рельеф", - "block.mineralogy.basaltic_glass_relief_left": "Рельеф слева из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_pickaxe": "Рельеф кирки из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_plus": "Базальтовое стекло плюс рельеф", - "block.mineralogy.basaltic_glass_relief_right": "Рельеф справа из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_sword": "Рельеф с мечом из базальтового стекла", - "block.mineralogy.basaltic_glass_relief_vertical": "Вертикальный рельеф из базальтового стекла", - "block.mineralogy.scoria_relief_axe": "Рельеф топора скории", - "block.mineralogy.scoria_relief_blank": "Пустой рельеф Скории", - "block.mineralogy.scoria_relief_cross": "Рельеф Креста Скории", - "block.mineralogy.scoria_relief_hammer": "Рельеф Молота Скории", - "block.mineralogy.scoria_relief_hoe": "Рельеф для мотыги Scoria", - "block.mineralogy.scoria_relief_horizontal": "Горизонтальный рельеф Скория", - "block.mineralogy.scoria_relief_i": "Скория I Рельеф", - "block.mineralogy.scoria_relief_left": "Скория левый релиф", - "block.mineralogy.scoria_relief_pickaxe": "Рельеф кирки Скории", - "block.mineralogy.scoria_relief_plus": "Скория Плюс Релиф", - "block.mineralogy.scoria_relief_right": "Правый релиф Скории", - "block.mineralogy.scoria_relief_sword": "Рельеф Меча Скории", - "block.mineralogy.scoria_relief_vertical": "Вертикальный рельеф Скория", - "block.mineralogy.tuff_relief_axe": "Рельеф от туфового топора", - "block.mineralogy.tuff_relief_blank": "Рельеф из туфа", - "block.mineralogy.tuff_relief_cross": "Туфовый крестовый рельеф", - "block.mineralogy.tuff_relief_hammer": "Рельеф Туфового Молота", - "block.mineralogy.tuff_relief_hoe": "Рельеф для туфовой мотыги", - "block.mineralogy.tuff_relief_horizontal": "Туф Горизонтальный рельеф", - "block.mineralogy.tuff_relief_i": "Туф I Рельеф", - "block.mineralogy.tuff_relief_left": "Туфовый левый рельеф", - "block.mineralogy.tuff_relief_pickaxe": "Рельеф от кирки из туфа", - "block.mineralogy.tuff_relief_plus": "Туф Плюс Релиф", - "block.mineralogy.tuff_relief_right": "Рельеф правого туфа", - "block.mineralogy.tuff_relief_sword": "Рельеф меча из туфа", - "block.mineralogy.tuff_relief_vertical": "Туф Вертикальный рельеф", - "block.mineralogy.siltstone_relief_axe": "Рельеф топора из алевролитового камня", - "block.mineralogy.siltstone_relief_blank": "Пустой рельеф из алевролитов", - "block.mineralogy.siltstone_relief_cross": "Рельеф с алевролитовым крестом", - "block.mineralogy.siltstone_relief_hammer": "Рельеф с алевролитовым молотом", - "block.mineralogy.siltstone_relief_hoe": "Рельеф алевролитовой мотыги", - "block.mineralogy.siltstone_relief_horizontal": "Алевролитовый горизонтальный рельеф", - "block.mineralogy.siltstone_relief_i": "Алевролит I Рельеф", - "block.mineralogy.siltstone_relief_left": "Алевролитовый левый рельеф", - "block.mineralogy.siltstone_relief_pickaxe": "Рельеф с киркой из алевролита", - "block.mineralogy.siltstone_relief_plus": "Алевролит Плюс Релиф", - "block.mineralogy.siltstone_relief_right": "Алевролитовый правый рельеф", - "block.mineralogy.siltstone_relief_sword": "Рельеф с мечом из алевролита", - "block.mineralogy.siltstone_relief_vertical": "Алевролитовый вертикальный рельеф", - "block.mineralogy.rock_salt_relief_axe": "Рельеф топора из каменной соли", - "block.mineralogy.rock_salt_relief_blank": "Пустой рельеф из каменной соли", - "block.mineralogy.rock_salt_relief_cross": "Рельеф Креста из каменной соли", - "block.mineralogy.rock_salt_relief_hammer": "Рельеф от молота из каменной соли", - "block.mineralogy.rock_salt_relief_hoe": "Мотыга из каменной соли", - "block.mineralogy.rock_salt_relief_horizontal": "Каменная соль Горизонтальный рельеф", - "block.mineralogy.rock_salt_relief_i": "Каменная соль I Рельеф", - "block.mineralogy.rock_salt_relief_left": "Каменная соль, рельеф слева", - "block.mineralogy.rock_salt_relief_pickaxe": "Рельеф от кирки из каменной соли", - "block.mineralogy.rock_salt_relief_plus": "Каменная соль плюс облегчение", - "block.mineralogy.rock_salt_relief_right": "Помощь для прав на каменную соль", - "block.mineralogy.rock_salt_relief_sword": "Рельеф с мечом из каменной соли", - "block.mineralogy.rock_salt_relief_vertical": "Каменная соль Вертикальный рельеф", - "block.mineralogy.hornfels_relief_axe": "Рельеф для топора Hornfels", - "block.mineralogy.hornfels_relief_blank": "Пустой рельеф Hornfels", - "block.mineralogy.hornfels_relief_cross": "Рельеф с крестом Роговиков", - "block.mineralogy.hornfels_relief_hammer": "Рельеф для молота Хорнфельса", - "block.mineralogy.hornfels_relief_hoe": "Облегчение мотыги Hornfels", - "block.mineralogy.hornfels_relief_horizontal": "Роговик Горизонтальный рельеф", - "block.mineralogy.hornfels_relief_i": "Роговик I Облегчение", - "block.mineralogy.hornfels_relief_left": "Хорнфелс Левый Рельеф", - "block.mineralogy.hornfels_relief_pickaxe": "Рельеф от кирки Hornfels", - "block.mineralogy.hornfels_relief_plus": "Роговик плюс облегчение", - "block.mineralogy.hornfels_relief_right": "Правый рельеф Хорнфелса", - "block.mineralogy.hornfels_relief_sword": "Рельеф меча Хорнфелса", - "block.mineralogy.hornfels_relief_vertical": "Роговик Вертикальный рельеф", - "block.mineralogy.quartzite_relief_axe": "Рельеф для топора из кварцита", - "block.mineralogy.quartzite_relief_blank": "Кварцитовый бланковый рельеф", - "block.mineralogy.quartzite_relief_cross": "Кварцитовый крестовый рельеф", - "block.mineralogy.quartzite_relief_hammer": "Рельеф с кварцитовым молотком", - "block.mineralogy.quartzite_relief_hoe": "Рельеф для мотыги из кварцита", - "block.mineralogy.quartzite_relief_horizontal": "Кварцит Горизонтальный рельеф", - "block.mineralogy.quartzite_relief_i": "Кварцит I Рельеф", - "block.mineralogy.quartzite_relief_left": "Кварцитовый левый рельеф", - "block.mineralogy.quartzite_relief_pickaxe": "Рельеф для кирки из кварцита", - "block.mineralogy.quartzite_relief_plus": "Кварцит Плюс Релиф", - "block.mineralogy.quartzite_relief_right": "Кварцит Правый Рельеф", - "block.mineralogy.quartzite_relief_sword": "Рельеф меча из кварцита", - "block.mineralogy.quartzite_relief_vertical": "Кварцит Вертикальный рельеф", - "block.mineralogy.novaculite_relief_axe": "Рельеф для топора из новокулита", - "block.mineralogy.novaculite_relief_blank": "Новакулитовый пустой рельеф", - "block.mineralogy.novaculite_relief_cross": "Новакулитовый крестовый рельеф", - "block.mineralogy.novaculite_relief_hammer": "Рельеф из новокулитового молота", - "block.mineralogy.novaculite_relief_hoe": "Новакулитовая мотыга", - "block.mineralogy.novaculite_relief_horizontal": "Новокулитовый горизонтальный рельеф", - "block.mineralogy.novaculite_relief_i": "Новакулит I Рельеф", - "block.mineralogy.novaculite_relief_left": "Новокулитовый левый рельеф", - "block.mineralogy.novaculite_relief_pickaxe": "Рельеф из новокулитовой кирки", - "block.mineralogy.novaculite_relief_plus": "Новакулит Плюс Релиф", - "block.mineralogy.novaculite_relief_right": "Новакулит Правый Рельеф", - "block.mineralogy.novaculite_relief_sword": "Рельеф из новокулитового меча", - "block.mineralogy.novaculite_relief_vertical": "Новакулитовый вертикальный рельеф", - "advancements.mineralogy.all_the_rocks.title": "Назовите камни Людо!", - "advancements.mineralogy.all_the_rocks.description": "Ух ты, вы нашли все стандартные типы горных пород в минералогии!", - "fluid.mineralogy.crude_oil": "Сырая нефть", - "block.mineralogy.crude_oil": "Сырая нефть", - "item.mineralogy.crude_oil_bucket": "Ведро сырой нефти", + "block.mineralogy.andesite_relief_axe": "Барельеф: Андезит (топор)", + "block.mineralogy.andesite_relief_blank": "Барельеф: Андезит (без узора)", + "block.mineralogy.andesite_relief_cross": "Барельеф: Андезит (крест)", + "block.mineralogy.andesite_relief_hammer": "Барельеф: Андезит (молот)", + "block.mineralogy.andesite_relief_hoe": "Барельеф: Андезит (мотыга)", + "block.mineralogy.andesite_relief_horizontal": "Барельеф: Андезит (горизонтальный узор)", + "block.mineralogy.andesite_relief_i": "Барельеф: Андезит (I)", + "block.mineralogy.andesite_relief_left": "Барельеф: Андезит (левый узор)", + "block.mineralogy.andesite_relief_pickaxe": "Барельеф: Андезит (кирка)", + "block.mineralogy.andesite_relief_plus": "Барельеф: Андезит (знак плюса)", + "block.mineralogy.andesite_relief_right": "Барельеф: Андезит (правый узор)", + "block.mineralogy.andesite_relief_sword": "Барельеф: Андезит (меч)", + "block.mineralogy.andesite_relief_vertical": "Барельеф: Андезит (вертикальный узор)", + "block.mineralogy.basalt_relief_axe": "Барельеф: Базальт (топор)", + "block.mineralogy.basalt_relief_blank": "Барельеф: Базальт (без узора)", + "block.mineralogy.basalt_relief_cross": "Барельеф: Базальт (крест)", + "block.mineralogy.basalt_relief_hammer": "Барельеф: Базальт (молот)", + "block.mineralogy.basalt_relief_hoe": "Барельеф: Базальт (мотыга)", + "block.mineralogy.basalt_relief_horizontal": "Барельеф: Базальт (горизонтальный узор)", + "block.mineralogy.basalt_relief_i": "Барельеф: Базальт (I)", + "block.mineralogy.basalt_relief_left": "Барельеф: Базальт (левый узор)", + "block.mineralogy.basalt_relief_pickaxe": "Барельеф: Базальт (кирка)", + "block.mineralogy.basalt_relief_plus": "Барельеф: Базальт (знак плюса)", + "block.mineralogy.basalt_relief_right": "Барельеф: Базальт (правый узор)", + "block.mineralogy.basalt_relief_sword": "Барельеф: Базальт (меч)", + "block.mineralogy.basalt_relief_vertical": "Барельеф: Базальт (вертикальный узор)", + "block.mineralogy.diorite_relief_axe": "Барельеф: Диорит (топор)", + "block.mineralogy.diorite_relief_blank": "Барельеф: Диорит (без узора)", + "block.mineralogy.diorite_relief_cross": "Барельеф: Диорит (крест)", + "block.mineralogy.diorite_relief_hammer": "Барельеф: Диорит (молот)", + "block.mineralogy.diorite_relief_hoe": "Барельеф: Диорит (мотыга)", + "block.mineralogy.diorite_relief_horizontal": "Барельеф: Диорит (горизонтальный узор)", + "block.mineralogy.diorite_relief_i": "Барельеф: Диорит (I)", + "block.mineralogy.diorite_relief_left": "Барельеф: Диорит (левый узор)", + "block.mineralogy.diorite_relief_pickaxe": "Барельеф: Диорит (кирка)", + "block.mineralogy.diorite_relief_plus": "Барельеф: Диорит (знак плюса)", + "block.mineralogy.diorite_relief_right": "Барельеф: Диорит (правый узор)", + "block.mineralogy.diorite_relief_sword": "Барельеф: Диорит (меч)", + "block.mineralogy.diorite_relief_vertical": "Барельеф: Диорит (вертикальный узор)", + "block.mineralogy.granite_relief_axe": "Барельеф: Гранит (топор)", + "block.mineralogy.granite_relief_blank": "Барельеф: Гранит (без узора)", + "block.mineralogy.granite_relief_cross": "Барельеф: Гранит (крест)", + "block.mineralogy.granite_relief_hammer": "Барельеф: Гранит (молот)", + "block.mineralogy.granite_relief_hoe": "Барельеф: Гранит (мотыга)", + "block.mineralogy.granite_relief_horizontal": "Барельеф: Гранит (горизонтальный узор)", + "block.mineralogy.granite_relief_i": "Барельеф: Гранит (I)", + "block.mineralogy.granite_relief_left": "Барельеф: Гранит (левый узор)", + "block.mineralogy.granite_relief_pickaxe": "Барельеф: Гранит (кирка)", + "block.mineralogy.granite_relief_plus": "Барельеф: Гранит (знак плюса)", + "block.mineralogy.granite_relief_right": "Барельеф: Гранит (правый узор)", + "block.mineralogy.granite_relief_sword": "Барельеф: Гранит (меч)", + "block.mineralogy.granite_relief_vertical": "Барельеф: Гранит (вертикальный узор)", + "block.mineralogy.rhyolite_relief_axe": "Барельеф: Риолит (топор)", + "block.mineralogy.rhyolite_relief_blank": "Барельеф: Риолит (без узора)", + "block.mineralogy.rhyolite_relief_cross": "Барельеф: Риолит (крест)", + "block.mineralogy.rhyolite_relief_hammer": "Барельеф: Риолит (молот)", + "block.mineralogy.rhyolite_relief_hoe": "Барельеф: Риолит (мотыга)", + "block.mineralogy.rhyolite_relief_horizontal": "Барельеф: Риолит (горизонтальный узор)", + "block.mineralogy.rhyolite_relief_i": "Барельеф: Риолит (I)", + "block.mineralogy.rhyolite_relief_left": "Барельеф: Риолит (левый узор)", + "block.mineralogy.rhyolite_relief_pickaxe": "Барельеф: Риолит (кирка)", + "block.mineralogy.rhyolite_relief_plus": "Барельеф: Риолит (знак плюса)", + "block.mineralogy.rhyolite_relief_right": "Барельеф: Риолит (правый узор)", + "block.mineralogy.rhyolite_relief_sword": "Барельеф: Риолит (меч)", + "block.mineralogy.rhyolite_relief_vertical": "Барельеф: Риолит (вертикальный узор)", + "block.mineralogy.pegmatite_relief_axe": "Барельеф: Пегматит (топор)", + "block.mineralogy.pegmatite_relief_blank": "Барельеф: Пегматит (без узора)", + "block.mineralogy.pegmatite_relief_cross": "Барельеф: Пегматит (крест)", + "block.mineralogy.pegmatite_relief_hammer": "Барельеф: Пегматит (молот)", + "block.mineralogy.pegmatite_relief_hoe": "Барельеф: Пегматит (мотыга)", + "block.mineralogy.pegmatite_relief_horizontal": "Барельеф: Пегматит (горизонтальный узор)", + "block.mineralogy.pegmatite_relief_i": "Барельеф: Пегматит (I)", + "block.mineralogy.pegmatite_relief_left": "Барельеф: Пегматит (левый узор)", + "block.mineralogy.pegmatite_relief_pickaxe": "Барельеф: Пегматит (кирка)", + "block.mineralogy.pegmatite_relief_plus": "Барельеф: Пегматит (знак плюса)", + "block.mineralogy.pegmatite_relief_right": "Барельеф: Пегматит (правый узор)", + "block.mineralogy.pegmatite_relief_sword": "Барельеф: Пегматит (меч)", + "block.mineralogy.pegmatite_relief_vertical": "Барельеф: Пегматит (вертикальный узор)", + "block.mineralogy.shale_relief_axe": "Барельеф: Глинистый сланец (топор)", + "block.mineralogy.shale_relief_blank": "Барельеф: Глинистый сланец (без узора)", + "block.mineralogy.shale_relief_cross": "Барельеф: Глинистый сланец (крест)", + "block.mineralogy.shale_relief_hammer": "Барельеф: Глинистый сланец (молот)", + "block.mineralogy.shale_relief_hoe": "Барельеф: Глинистый сланец (мотыга)", + "block.mineralogy.shale_relief_horizontal": "Барельеф: Глинистый сланец (горизонтальный узор)", + "block.mineralogy.shale_relief_i": "Барельеф: Глинистый сланец (I)", + "block.mineralogy.shale_relief_left": "Барельеф: Глинистый сланец (левый узор)", + "block.mineralogy.shale_relief_pickaxe": "Барельеф: Глинистый сланец (кирка)", + "block.mineralogy.shale_relief_plus": "Барельеф: Глинистый сланец (знак плюса)", + "block.mineralogy.shale_relief_right": "Барельеф: Глинистый сланец (правый узор)", + "block.mineralogy.shale_relief_sword": "Барельеф: Глинистый сланец (меч)", + "block.mineralogy.shale_relief_vertical": "Барельеф: Глинистый сланец (вертикальный узор)", + "block.mineralogy.conglomerate_relief_axe": "Барельеф: Конгломерат (топор)", + "block.mineralogy.conglomerate_relief_blank": "Барельеф: Конгломерат (без узора)", + "block.mineralogy.conglomerate_relief_cross": "Барельеф: Конгломерат (крест)", + "block.mineralogy.conglomerate_relief_hammer": "Барельеф: Конгломерат (молот)", + "block.mineralogy.conglomerate_relief_hoe": "Барельеф: Конгломерат (мотыга)", + "block.mineralogy.conglomerate_relief_horizontal": "Барельеф: Конгломерат (горизонтальный узор)", + "block.mineralogy.conglomerate_relief_i": "Барельеф: Конгломерат (I)", + "block.mineralogy.conglomerate_relief_left": "Барельеф: Конгломерат (левый узор)", + "block.mineralogy.conglomerate_relief_pickaxe": "Барельеф: Конгломерат (кирка)", + "block.mineralogy.conglomerate_relief_plus": "Барельеф: Конгломерат (знак плюса)", + "block.mineralogy.conglomerate_relief_right": "Барельеф: Конгломерат (правый узор)", + "block.mineralogy.conglomerate_relief_sword": "Барельеф: Конгломерат (меч)", + "block.mineralogy.conglomerate_relief_vertical": "Барельеф: Конгломерат (вертикальный узор)", + "block.mineralogy.dolomite_relief_axe": "Барельеф: Доломит (топор)", + "block.mineralogy.dolomite_relief_blank": "Барельеф: Доломит (без узора)", + "block.mineralogy.dolomite_relief_cross": "Барельеф: Доломит (крест)", + "block.mineralogy.dolomite_relief_hammer": "Барельеф: Доломит (молот)", + "block.mineralogy.dolomite_relief_hoe": "Барельеф: Доломит (мотыга)", + "block.mineralogy.dolomite_relief_horizontal": "Барельеф: Доломит (горизонтальный узор)", + "block.mineralogy.dolomite_relief_i": "Барельеф: Доломит (I)", + "block.mineralogy.dolomite_relief_left": "Барельеф: Доломит (левый узор)", + "block.mineralogy.dolomite_relief_pickaxe": "Барельеф: Доломит (кирка)", + "block.mineralogy.dolomite_relief_plus": "Барельеф: Доломит (знак плюса)", + "block.mineralogy.dolomite_relief_right": "Барельеф: Доломит (правый узор)", + "block.mineralogy.dolomite_relief_sword": "Барельеф: Доломит (меч)", + "block.mineralogy.dolomite_relief_vertical": "Барельеф: Доломит (вертикальный узор)", + "block.mineralogy.limestone_relief_axe": "Барельеф: Известняк (топор)", + "block.mineralogy.limestone_relief_blank": "Барельеф: Известняк (без узора)", + "block.mineralogy.limestone_relief_cross": "Барельеф: Известняк (крест)", + "block.mineralogy.limestone_relief_hammer": "Барельеф: Известняк (молот)", + "block.mineralogy.limestone_relief_hoe": "Барельеф: Известняк (мотыга)", + "block.mineralogy.limestone_relief_horizontal": "Барельеф: Известняк (горизонтальный узор)", + "block.mineralogy.limestone_relief_i": "Барельеф: Известняк (I)", + "block.mineralogy.limestone_relief_left": "Барельеф: Известняк (левый узор)", + "block.mineralogy.limestone_relief_pickaxe": "Барельеф: Известняк (кирка)", + "block.mineralogy.limestone_relief_plus": "Барельеф: Известняк (знак плюса)", + "block.mineralogy.limestone_relief_right": "Барельеф: Известняк (правый узор)", + "block.mineralogy.limestone_relief_sword": "Барельеф: Известняк (меч)", + "block.mineralogy.limestone_relief_vertical": "Барельеф: Известняк (вертикальный узор)", + "block.mineralogy.marble_relief_axe": "Барельеф: Мрамор (топор)", + "block.mineralogy.marble_relief_blank": "Барельеф: Мрамор (без узора)", + "block.mineralogy.marble_relief_cross": "Барельеф: Мрамор (крест)", + "block.mineralogy.marble_relief_hammer": "Барельеф: Мрамор (молот)", + "block.mineralogy.marble_relief_hoe": "Барельеф: Мрамор (мотыга)", + "block.mineralogy.marble_relief_horizontal": "Барельеф: Мрамор (горизонтальный узор)", + "block.mineralogy.marble_relief_i": "Барельеф: Мрамор (I)", + "block.mineralogy.marble_relief_left": "Барельеф: Мрамор (левый узор)", + "block.mineralogy.marble_relief_pickaxe": "Барельеф: Мрамор (кирка)", + "block.mineralogy.marble_relief_plus": "Барельеф: Мрамор (знак плюса)", + "block.mineralogy.marble_relief_right": "Барельеф: Мрамор (правый узор)", + "block.mineralogy.marble_relief_sword": "Барельеф: Мрамор (меч)", + "block.mineralogy.marble_relief_vertical": "Барельеф: Мрамор (вертикальный узор)", + "block.mineralogy.slate_relief_axe": "Барельеф: Аспидный сланец (топор)", + "block.mineralogy.slate_relief_blank": "Барельеф: Аспидный сланец (без узора)", + "block.mineralogy.slate_relief_cross": "Барельеф: Аспидный сланец (крест)", + "block.mineralogy.slate_relief_hammer": "Барельеф: Аспидный сланец (молот)", + "block.mineralogy.slate_relief_hoe": "Барельеф: Аспидный сланец (мотыга)", + "block.mineralogy.slate_relief_horizontal": "Барельеф: Аспидный сланец (горизонтальный узор)", + "block.mineralogy.slate_relief_i": "Барельеф: Аспидный сланец (I)", + "block.mineralogy.slate_relief_left": "Барельеф: Аспидный сланец (левый узор)", + "block.mineralogy.slate_relief_pickaxe": "Барельеф: Аспидный сланец (кирка)", + "block.mineralogy.slate_relief_plus": "Барельеф: Аспидный сланец (знак плюса)", + "block.mineralogy.slate_relief_right": "Барельеф: Аспидный сланец (правый узор)", + "block.mineralogy.slate_relief_sword": "Барельеф: Аспидный сланец (меч)", + "block.mineralogy.slate_relief_vertical": "Барельеф: Аспидный сланец (вертикальный узор)", + "block.mineralogy.schist_relief_axe": "Барельеф: Кристаллический сланец (топор)", + "block.mineralogy.schist_relief_blank": "Барельеф: Кристаллический сланец (без узора)", + "block.mineralogy.schist_relief_cross": "Барельеф: Кристаллический сланец (крест)", + "block.mineralogy.schist_relief_hammer": "Барельеф: Кристаллический сланец (молот)", + "block.mineralogy.schist_relief_hoe": "Барельеф: Кристаллический сланец (мотыга)", + "block.mineralogy.schist_relief_horizontal": "Барельеф: Кристаллический сланец (горизонтальный узор)", + "block.mineralogy.schist_relief_i": "Барельеф: Кристаллический сланец (I)", + "block.mineralogy.schist_relief_left": "Барельеф: Кристаллический сланец (левый узор)", + "block.mineralogy.schist_relief_pickaxe": "Барельеф: Кристаллический сланец (кирка)", + "block.mineralogy.schist_relief_plus": "Барельеф: Кристаллический сланец (знак плюса)", + "block.mineralogy.schist_relief_right": "Барельеф: Кристаллический сланец (правый узор)", + "block.mineralogy.schist_relief_sword": "Барельеф: Кристаллический сланец (меч)", + "block.mineralogy.schist_relief_vertical": "Барельеф: Кристаллический сланец (вертикальный узор)", + "block.mineralogy.gneiss_relief_axe": "Барельеф: Гнейс (топор)", + "block.mineralogy.gneiss_relief_blank": "Барельеф: Гнейс (без узора)", + "block.mineralogy.gneiss_relief_cross": "Барельеф: Гнейс (крест)", + "block.mineralogy.gneiss_relief_hammer": "Барельеф: Гнейс (молот)", + "block.mineralogy.gneiss_relief_hoe": "Барельеф: Гнейс (мотыга)", + "block.mineralogy.gneiss_relief_horizontal": "Барельеф: Гнейс (горизонтальный узор)", + "block.mineralogy.gneiss_relief_i": "Барельеф: Гнейс (I)", + "block.mineralogy.gneiss_relief_left": "Барельеф: Гнейс (левый узор)", + "block.mineralogy.gneiss_relief_pickaxe": "Барельеф: Гнейс (кирка)", + "block.mineralogy.gneiss_relief_plus": "Барельеф: Гнейс (знак плюса)", + "block.mineralogy.gneiss_relief_right": "Барельеф: Гнейс (правый узор)", + "block.mineralogy.gneiss_relief_sword": "Барельеф: Гнейс (меч)", + "block.mineralogy.gneiss_relief_vertical": "Барельеф: Гнейс (вертикальный узор)", + "block.mineralogy.phyllite_relief_axe": "Барельеф: Филлит (топор)", + "block.mineralogy.phyllite_relief_blank": "Барельеф: Филлит (без узора)", + "block.mineralogy.phyllite_relief_cross": "Барельеф: Филлит (крест)", + "block.mineralogy.phyllite_relief_hammer": "Барельеф: Филлит (молот)", + "block.mineralogy.phyllite_relief_hoe": "Барельеф: Филлит (мотыга)", + "block.mineralogy.phyllite_relief_horizontal": "Барельеф: Филлит (горизонтальный узор)", + "block.mineralogy.phyllite_relief_i": "Барельеф: Филлит (I)", + "block.mineralogy.phyllite_relief_left": "Барельеф: Филлит (левый узор)", + "block.mineralogy.phyllite_relief_pickaxe": "Барельеф: Филлит (кирка)", + "block.mineralogy.phyllite_relief_plus": "Барельеф: Филлит (знак плюса)", + "block.mineralogy.phyllite_relief_right": "Барельеф: Филлит (правый узор)", + "block.mineralogy.phyllite_relief_sword": "Барельеф: Филлит (меч)", + "block.mineralogy.phyllite_relief_vertical": "Барельеф: Филлит (вертикальный узор)", + "block.mineralogy.amphibolite_relief_axe": "Барельеф: Амфиболит (топор)", + "block.mineralogy.amphibolite_relief_blank": "Барельеф: Амфиболит (без узора)", + "block.mineralogy.amphibolite_relief_cross": "Барельеф: Амфиболит (крест)", + "block.mineralogy.amphibolite_relief_hammer": "Барельеф: Амфиболит (молот)", + "block.mineralogy.amphibolite_relief_hoe": "Барельеф: Амфиболит (мотыга)", + "block.mineralogy.amphibolite_relief_horizontal": "Барельеф: Амфиболит (горизонтальный узор)", + "block.mineralogy.amphibolite_relief_i": "Барельеф: Амфиболит (I)", + "block.mineralogy.amphibolite_relief_left": "Барельеф: Амфиболит (левый узор)", + "block.mineralogy.amphibolite_relief_pickaxe": "Барельеф: Амфиболит (кирка)", + "block.mineralogy.amphibolite_relief_plus": "Барельеф: Амфиболит (знак плюса)", + "block.mineralogy.amphibolite_relief_right": "Барельеф: Амфиболит (правый узор)", + "block.mineralogy.amphibolite_relief_sword": "Барельеф: Амфиболит (меч)", + "block.mineralogy.amphibolite_relief_vertical": "Барельеф: Амфиболит (вертикальный узор)", + "block.mineralogy.diabase_relief_axe": "Барельеф: Диабаз (топор)", + "block.mineralogy.diabase_relief_blank": "Барельеф: Диабаз (без узора)", + "block.mineralogy.diabase_relief_cross": "Барельеф: Диабаз (крест)", + "block.mineralogy.diabase_relief_hammer": "Барельеф: Диабаз (молот)", + "block.mineralogy.diabase_relief_hoe": "Барельеф: Диабаз (мотыга)", + "block.mineralogy.diabase_relief_horizontal": "Барельеф: Диабаз (горизонтальный узор)", + "block.mineralogy.diabase_relief_i": "Барельеф: Диабаз (I)", + "block.mineralogy.diabase_relief_left": "Барельеф: Диабаз (левый узор)", + "block.mineralogy.diabase_relief_pickaxe": "Барельеф: Диабаз (кирка)", + "block.mineralogy.diabase_relief_plus": "Барельеф: Диабаз (знак плюса)", + "block.mineralogy.diabase_relief_right": "Барельеф: Диабаз (правый узор)", + "block.mineralogy.diabase_relief_sword": "Барельеф: Диабаз (меч)", + "block.mineralogy.diabase_relief_vertical": "Барельеф: Диабаз (вертикальный узор)", + "block.mineralogy.gabbro_relief_axe": "Барельеф: Габбро (топор)", + "block.mineralogy.gabbro_relief_blank": "Барельеф: Габбро (без узора)", + "block.mineralogy.gabbro_relief_cross": "Барельеф: Габбро (крест)", + "block.mineralogy.gabbro_relief_hammer": "Барельеф: Габбро (молот)", + "block.mineralogy.gabbro_relief_hoe": "Барельеф: Габбро (мотыга)", + "block.mineralogy.gabbro_relief_horizontal": "Барельеф: Габбро (горизонтальный узор)", + "block.mineralogy.gabbro_relief_i": "Барельеф: Габбро (I)", + "block.mineralogy.gabbro_relief_left": "Барельеф: Габбро (левый узор)", + "block.mineralogy.gabbro_relief_pickaxe": "Барельеф: Габбро (кирка)", + "block.mineralogy.gabbro_relief_plus": "Барельеф: Габбро (знак плюса)", + "block.mineralogy.gabbro_relief_right": "Барельеф: Габбро (правый узор)", + "block.mineralogy.gabbro_relief_sword": "Барельеф: Габбро (меч)", + "block.mineralogy.gabbro_relief_vertical": "Барельеф: Габбро (вертикальный узор)", + "block.mineralogy.peridotite_relief_axe": "Барельеф: Перидотит (топор)", + "block.mineralogy.peridotite_relief_blank": "Барельеф: Перидотит (без узора)", + "block.mineralogy.peridotite_relief_cross": "Барельеф: Перидотит (крест)", + "block.mineralogy.peridotite_relief_hammer": "Барельеф: Перидотит (молот)", + "block.mineralogy.peridotite_relief_hoe": "Барельеф: Перидотит (мотыга)", + "block.mineralogy.peridotite_relief_horizontal": "Барельеф: Перидотит (горизонтальный узор)", + "block.mineralogy.peridotite_relief_i": "Барельеф: Перидотит (I)", + "block.mineralogy.peridotite_relief_left": "Барельеф: Перидотит (левый узор)", + "block.mineralogy.peridotite_relief_pickaxe": "Барельеф: Перидотит (кирка)", + "block.mineralogy.peridotite_relief_plus": "Барельеф: Перидотит (знак плюса)", + "block.mineralogy.peridotite_relief_right": "Барельеф: Перидотит (правый узор)", + "block.mineralogy.peridotite_relief_sword": "Барельеф: Перидотит (меч)", + "block.mineralogy.peridotite_relief_vertical": "Барельеф: Перидотит (вертикальный узор)", + "block.mineralogy.basaltic_glass_relief_axe": "Барельеф: Базальтовое стекло (топор)", + "block.mineralogy.basaltic_glass_relief_blank": "Барельеф: Базальтовое стекло (без узора)", + "block.mineralogy.basaltic_glass_relief_cross": "Барельеф: Базальтовое стекло (крест)", + "block.mineralogy.basaltic_glass_relief_hammer": "Барельеф: Базальтовое стекло (молот)", + "block.mineralogy.basaltic_glass_relief_hoe": "Барельеф: Базальтовое стекло (мотыга)", + "block.mineralogy.basaltic_glass_relief_horizontal": "Барельеф: Базальтовое стекло (горизонтальный узор)", + "block.mineralogy.basaltic_glass_relief_i": "Барельеф: Базальтовое стекло (I)", + "block.mineralogy.basaltic_glass_relief_left": "Барельеф: Базальтовое стекло (левый узор)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "Барельеф: Базальтовое стекло (кирка)", + "block.mineralogy.basaltic_glass_relief_plus": "Барельеф: Базальтовое стекло (знак плюса)", + "block.mineralogy.basaltic_glass_relief_right": "Барельеф: Базальтовое стекло (правый узор)", + "block.mineralogy.basaltic_glass_relief_sword": "Барельеф: Базальтовое стекло (меч)", + "block.mineralogy.basaltic_glass_relief_vertical": "Барельеф: Базальтовое стекло (вертикальный узор)", + "block.mineralogy.scoria_relief_axe": "Барельеф: Скория (топор)", + "block.mineralogy.scoria_relief_blank": "Барельеф: Скория (без узора)", + "block.mineralogy.scoria_relief_cross": "Барельеф: Скория (крест)", + "block.mineralogy.scoria_relief_hammer": "Барельеф: Скория (молот)", + "block.mineralogy.scoria_relief_hoe": "Барельеф: Скория (мотыга)", + "block.mineralogy.scoria_relief_horizontal": "Барельеф: Скория (горизонтальный узор)", + "block.mineralogy.scoria_relief_i": "Барельеф: Скория (I)", + "block.mineralogy.scoria_relief_left": "Барельеф: Скория (левый узор)", + "block.mineralogy.scoria_relief_pickaxe": "Барельеф: Скория (кирка)", + "block.mineralogy.scoria_relief_plus": "Барельеф: Скория (знак плюса)", + "block.mineralogy.scoria_relief_right": "Барельеф: Скория (правый узор)", + "block.mineralogy.scoria_relief_sword": "Барельеф: Скория (меч)", + "block.mineralogy.scoria_relief_vertical": "Барельеф: Скория (вертикальный узор)", + "block.mineralogy.tuff_relief_axe": "Барельеф: Туф (топор)", + "block.mineralogy.tuff_relief_blank": "Барельеф: Туф (без узора)", + "block.mineralogy.tuff_relief_cross": "Барельеф: Туф (крест)", + "block.mineralogy.tuff_relief_hammer": "Барельеф: Туф (молот)", + "block.mineralogy.tuff_relief_hoe": "Барельеф: Туф (мотыга)", + "block.mineralogy.tuff_relief_horizontal": "Барельеф: Туф (горизонтальный узор)", + "block.mineralogy.tuff_relief_i": "Барельеф: Туф (I)", + "block.mineralogy.tuff_relief_left": "Барельеф: Туф (левый узор)", + "block.mineralogy.tuff_relief_pickaxe": "Барельеф: Туф (кирка)", + "block.mineralogy.tuff_relief_plus": "Барельеф: Туф (знак плюса)", + "block.mineralogy.tuff_relief_right": "Барельеф: Туф (правый узор)", + "block.mineralogy.tuff_relief_sword": "Барельеф: Туф (меч)", + "block.mineralogy.tuff_relief_vertical": "Барельеф: Туф (вертикальный узор)", + "block.mineralogy.siltstone_relief_axe": "Барельеф: Алевролит (топор)", + "block.mineralogy.siltstone_relief_blank": "Барельеф: Алевролит (без узора)", + "block.mineralogy.siltstone_relief_cross": "Барельеф: Алевролит (крест)", + "block.mineralogy.siltstone_relief_hammer": "Барельеф: Алевролит (молот)", + "block.mineralogy.siltstone_relief_hoe": "Барельеф: Алевролит (мотыга)", + "block.mineralogy.siltstone_relief_horizontal": "Барельеф: Алевролит (горизонтальный узор)", + "block.mineralogy.siltstone_relief_i": "Барельеф: Алевролит (I)", + "block.mineralogy.siltstone_relief_left": "Барельеф: Алевролит (левый узор)", + "block.mineralogy.siltstone_relief_pickaxe": "Барельеф: Алевролит (кирка)", + "block.mineralogy.siltstone_relief_plus": "Барельеф: Алевролит (знак плюса)", + "block.mineralogy.siltstone_relief_right": "Барельеф: Алевролит (правый узор)", + "block.mineralogy.siltstone_relief_sword": "Барельеф: Алевролит (меч)", + "block.mineralogy.siltstone_relief_vertical": "Барельеф: Алевролит (вертикальный узор)", + "block.mineralogy.rock_salt_relief_axe": "Барельеф: Каменная соль (топор)", + "block.mineralogy.rock_salt_relief_blank": "Барельеф: Каменная соль (без узора)", + "block.mineralogy.rock_salt_relief_cross": "Барельеф: Каменная соль (крест)", + "block.mineralogy.rock_salt_relief_hammer": "Барельеф: Каменная соль (молот)", + "block.mineralogy.rock_salt_relief_hoe": "Барельеф: Каменная соль (мотыга)", + "block.mineralogy.rock_salt_relief_horizontal": "Барельеф: Каменная соль (горизонтальный узор)", + "block.mineralogy.rock_salt_relief_i": "Барельеф: Каменная соль (I)", + "block.mineralogy.rock_salt_relief_left": "Барельеф: Каменная соль (левый узор)", + "block.mineralogy.rock_salt_relief_pickaxe": "Барельеф: Каменная соль (кирка)", + "block.mineralogy.rock_salt_relief_plus": "Барельеф: Каменная соль (знак плюса)", + "block.mineralogy.rock_salt_relief_right": "Барельеф: Каменная соль (правый узор)", + "block.mineralogy.rock_salt_relief_sword": "Барельеф: Каменная соль (меч)", + "block.mineralogy.rock_salt_relief_vertical": "Барельеф: Каменная соль (вертикальный узор)", + "block.mineralogy.hornfels_relief_axe": "Барельеф: Роговик (топор)", + "block.mineralogy.hornfels_relief_blank": "Барельеф: Роговик (без узора)", + "block.mineralogy.hornfels_relief_cross": "Барельеф: Роговик (крест)", + "block.mineralogy.hornfels_relief_hammer": "Барельеф: Роговик (молот)", + "block.mineralogy.hornfels_relief_hoe": "Барельеф: Роговик (мотыга)", + "block.mineralogy.hornfels_relief_horizontal": "Барельеф: Роговик (горизонтальный узор)", + "block.mineralogy.hornfels_relief_i": "Барельеф: Роговик (I)", + "block.mineralogy.hornfels_relief_left": "Барельеф: Роговик (левый узор)", + "block.mineralogy.hornfels_relief_pickaxe": "Барельеф: Роговик (кирка)", + "block.mineralogy.hornfels_relief_plus": "Барельеф: Роговик (знак плюса)", + "block.mineralogy.hornfels_relief_right": "Барельеф: Роговик (правый узор)", + "block.mineralogy.hornfels_relief_sword": "Барельеф: Роговик (меч)", + "block.mineralogy.hornfels_relief_vertical": "Барельеф: Роговик (вертикальный узор)", + "block.mineralogy.quartzite_relief_axe": "Барельеф: Кварцит (топор)", + "block.mineralogy.quartzite_relief_blank": "Барельеф: Кварцит (без узора)", + "block.mineralogy.quartzite_relief_cross": "Барельеф: Кварцит (крест)", + "block.mineralogy.quartzite_relief_hammer": "Барельеф: Кварцит (молот)", + "block.mineralogy.quartzite_relief_hoe": "Барельеф: Кварцит (мотыга)", + "block.mineralogy.quartzite_relief_horizontal": "Барельеф: Кварцит (горизонтальный узор)", + "block.mineralogy.quartzite_relief_i": "Барельеф: Кварцит (I)", + "block.mineralogy.quartzite_relief_left": "Барельеф: Кварцит (левый узор)", + "block.mineralogy.quartzite_relief_pickaxe": "Барельеф: Кварцит (кирка)", + "block.mineralogy.quartzite_relief_plus": "Барельеф: Кварцит (знак плюса)", + "block.mineralogy.quartzite_relief_right": "Барельеф: Кварцит (правый узор)", + "block.mineralogy.quartzite_relief_sword": "Барельеф: Кварцит (меч)", + "block.mineralogy.quartzite_relief_vertical": "Барельеф: Кварцит (вертикальный узор)", + "block.mineralogy.novaculite_relief_axe": "Барельеф: Новакулит (топор)", + "block.mineralogy.novaculite_relief_blank": "Барельеф: Новакулит (без узора)", + "block.mineralogy.novaculite_relief_cross": "Барельеф: Новакулит (крест)", + "block.mineralogy.novaculite_relief_hammer": "Барельеф: Новакулит (молот)", + "block.mineralogy.novaculite_relief_hoe": "Барельеф: Новакулит (мотыга)", + "block.mineralogy.novaculite_relief_horizontal": "Барельеф: Новакулит (горизонтальный узор)", + "block.mineralogy.novaculite_relief_i": "Барельеф: Новакулит (I)", + "block.mineralogy.novaculite_relief_left": "Барельеф: Новакулит (левый узор)", + "block.mineralogy.novaculite_relief_pickaxe": "Барельеф: Новакулит (кирка)", + "block.mineralogy.novaculite_relief_plus": "Барельеф: Новакулит (знак плюса)", + "block.mineralogy.novaculite_relief_right": "Барельеф: Новакулит (правый узор)", + "block.mineralogy.novaculite_relief_sword": "Барельеф: Новакулит (меч)", + "block.mineralogy.novaculite_relief_vertical": "Барельеф: Новакулит (вертикальный узор)", "itemGroup.mineralogy.mineralogy": "Минералогия", "itemGroup.mineralogy.rock": "Минералогические породы", - "itemGroup.mineralogy.stair": "Минералогическая лестница", + "itemGroup.mineralogy.stair": "Минералогические ступеньки", "itemGroup.mineralogy.slab": "Минералогические плиты", - "itemGroup.mineralogy.wall": "Стены минералогии", - "itemGroup.mineralogy.item": "Минералогические предметы" + "itemGroup.mineralogy.wall": "Минералогические ограды", + "itemGroup.mineralogy.item": "Минералогические предметы", + "block.mineralogy.crude_oil": "Сырая нефть", + "item.mineralogy.crude_oil_bucket": "Ведро сырой нефти", + "fluid.mineralogy.crude_oil": "Сырая нефть", + "advancements.mineralogy.all_the_rocks.title": "Все горные породы", + "advancements.mineralogy.all_the_rocks.description": "Вы нашли все стандартные горные породы Минералогии!" } diff --git a/src/main/resources/assets/mineralogy/lang/zh_cn.json b/src/main/resources/assets/mineralogy/lang/zh_cn.json index 98fff602f..4fb8d511c 100644 --- a/src/main/resources/assets/mineralogy/lang/zh_cn.json +++ b/src/main/resources/assets/mineralogy/lang/zh_cn.json @@ -1,196 +1,196 @@ { "block.mineralogy.andesite": "安山岩", "block.mineralogy.andesite_stairs": "安山岩楼梯", - "block.mineralogy.andesite_slab": "安山岩板", + "block.mineralogy.andesite_slab": "安山岩台阶", "block.mineralogy.andesite_brick": "安山岩砖", "block.mineralogy.andesite_brick_stairs": "安山岩砖楼梯", - "block.mineralogy.andesite_brick_slab": "安山岩砖板", - "block.mineralogy.andesite_smooth": "精致安山岩", - "block.mineralogy.andesite_smooth_stairs": "精致安山岩楼梯", - "block.mineralogy.andesite_smooth_slab": "精致安山岩板", - "block.mineralogy.andesite_smooth_brick": "精致安山岩砖", - "block.mineralogy.andesite_smooth_brick_stairs": "精致安山岩砖楼梯", - "block.mineralogy.andesite_smooth_brick_slab": "精致安山岩砖板", + "block.mineralogy.andesite_brick_slab": "安山岩砖台阶", + "block.mineralogy.andesite_smooth": "磨制安山岩", + "block.mineralogy.andesite_smooth_stairs": "磨制安山岩楼梯", + "block.mineralogy.andesite_smooth_slab": "磨制安山岩台阶", + "block.mineralogy.andesite_smooth_brick": "磨制安山岩砖", + "block.mineralogy.andesite_smooth_brick_stairs": "磨制安山岩砖楼梯", + "block.mineralogy.andesite_smooth_brick_slab": "磨制安山岩砖台阶", "block.mineralogy.basalt": "玄武岩", "block.mineralogy.basalt_stairs": "玄武岩楼梯", - "block.mineralogy.basalt_slab": "玄武岩板", + "block.mineralogy.basalt_slab": "玄武岩台阶", "block.mineralogy.basalt_brick": "玄武岩砖", "block.mineralogy.basalt_brick_stairs": "玄武岩砖楼梯", - "block.mineralogy.basalt_brick_slab": "玄武岩砖板", - "block.mineralogy.basalt_smooth": "精致玄武岩", - "block.mineralogy.basalt_smooth_stairs": "精致玄武岩楼梯", - "block.mineralogy.basalt_smooth_slab": "精致玄武岩板", - "block.mineralogy.basalt_smooth_brick": "精致玄武岩砖", - "block.mineralogy.basalt_smooth_brick_stairs": "精致玄武岩砖楼梯", - "block.mineralogy.basalt_smooth_brick_slab": "精致玄武岩砖板", + "block.mineralogy.basalt_brick_slab": "玄武岩砖台阶", + "block.mineralogy.basalt_smooth": "磨制玄武岩", + "block.mineralogy.basalt_smooth_stairs": "磨制玄武岩楼梯", + "block.mineralogy.basalt_smooth_slab": "磨制玄武岩台阶", + "block.mineralogy.basalt_smooth_brick": "磨制玄武岩砖", + "block.mineralogy.basalt_smooth_brick_stairs": "磨制玄武岩砖楼梯", + "block.mineralogy.basalt_smooth_brick_slab": "磨制玄武岩砖台阶", "block.mineralogy.diorite": "闪长岩", "block.mineralogy.diorite_stairs": "闪长岩楼梯", - "block.mineralogy.diorite_slab": "闪长岩板", + "block.mineralogy.diorite_slab": "闪长岩台阶", "block.mineralogy.diorite_brick": "闪长岩砖", "block.mineralogy.diorite_brick_stairs": "闪长岩砖楼梯", - "block.mineralogy.diorite_brick_slab": "闪长岩砖板", - "block.mineralogy.diorite_smooth": "精致闪长岩", - "block.mineralogy.diorite_smooth_stairs": "精致闪长岩楼梯", - "block.mineralogy.diorite_smooth_slab": "精致闪长岩板", - "block.mineralogy.diorite_smooth_brick": "精致闪长岩砖", - "block.mineralogy.diorite_smooth_brick_stairs": "精致闪长岩砖楼梯", - "block.mineralogy.diorite_smooth_brick_slab": "精致闪长岩砖板", + "block.mineralogy.diorite_brick_slab": "闪长岩砖台阶", + "block.mineralogy.diorite_smooth": "磨制闪长岩", + "block.mineralogy.diorite_smooth_stairs": "磨制闪长岩楼梯", + "block.mineralogy.diorite_smooth_slab": "磨制闪长岩台阶", + "block.mineralogy.diorite_smooth_brick": "磨制闪长岩砖", + "block.mineralogy.diorite_smooth_brick_stairs": "磨制闪长岩砖楼梯", + "block.mineralogy.diorite_smooth_brick_slab": "磨制闪长岩砖台阶", "block.mineralogy.granite": "花岗岩", "block.mineralogy.granite_stairs": "花岗岩楼梯", - "block.mineralogy.granite_slab": "花岗岩板", + "block.mineralogy.granite_slab": "花岗岩台阶", "block.mineralogy.granite_brick": "花岗岩砖", "block.mineralogy.granite_brick_stairs": "花岗岩砖楼梯", - "block.mineralogy.granite_brick_slab": "花岗岩砖板", - "block.mineralogy.granite_smooth": "精致花岗岩", - "block.mineralogy.granite_smooth_stairs": "精致花岗岩楼梯", - "block.mineralogy.granite_smooth_slab": "精致花岗岩板", - "block.mineralogy.granite_smooth_brick": "精致花岗岩砖", - "block.mineralogy.granite_smooth_brick_stairs": "精致花岗岩砖楼梯", - "block.mineralogy.granite_smooth_brick_slab": "精致花岗岩砖板", + "block.mineralogy.granite_brick_slab": "花岗岩砖台阶", + "block.mineralogy.granite_smooth": "磨制花岗岩", + "block.mineralogy.granite_smooth_stairs": "磨制花岗岩楼梯", + "block.mineralogy.granite_smooth_slab": "磨制花岗岩台阶", + "block.mineralogy.granite_smooth_brick": "磨制花岗岩砖", + "block.mineralogy.granite_smooth_brick_stairs": "磨制花岗岩砖楼梯", + "block.mineralogy.granite_smooth_brick_slab": "磨制花岗岩砖台阶", "block.mineralogy.rhyolite": "流纹岩", "block.mineralogy.rhyolite_stairs": "流纹岩楼梯", - "block.mineralogy.rhyolite_slab": "流纹岩板", + "block.mineralogy.rhyolite_slab": "流纹岩台阶", "block.mineralogy.rhyolite_brick": "流纹岩砖", "block.mineralogy.rhyolite_brick_stairs": "流纹岩砖楼梯", - "block.mineralogy.rhyolite_brick_slab": "流纹岩砖板", - "block.mineralogy.rhyolite_smooth": "精致流纹岩", - "block.mineralogy.rhyolite_smooth_stairs": "精致流纹岩楼梯", - "block.mineralogy.rhyolite_smooth_slab": "精致流纹岩板", - "block.mineralogy.rhyolite_smooth_brick": "精致流纹岩砖", - "block.mineralogy.rhyolite_smooth_brick_stairs": "精致流纹岩砖楼梯", - "block.mineralogy.rhyolite_smooth_brick_slab": "精致流纹岩砖板", + "block.mineralogy.rhyolite_brick_slab": "流纹岩砖台阶", + "block.mineralogy.rhyolite_smooth": "磨制流纹岩", + "block.mineralogy.rhyolite_smooth_stairs": "磨制流纹岩楼梯", + "block.mineralogy.rhyolite_smooth_slab": "磨制流纹岩台阶", + "block.mineralogy.rhyolite_smooth_brick": "磨制流纹岩砖", + "block.mineralogy.rhyolite_smooth_brick_stairs": "磨制流纹岩砖楼梯", + "block.mineralogy.rhyolite_smooth_brick_slab": "磨制流纹岩砖台阶", "block.mineralogy.pegmatite": "伟晶岩", "block.mineralogy.pegmatite_stairs": "伟晶岩楼梯", - "block.mineralogy.pegmatite_slab": "伟晶岩板", + "block.mineralogy.pegmatite_slab": "伟晶岩台阶", "block.mineralogy.pegmatite_brick": "伟晶岩砖", "block.mineralogy.pegmatite_brick_stairs": "伟晶岩砖楼梯", - "block.mineralogy.pegmatite_brick_slab": "伟晶岩砖板", - "block.mineralogy.pegmatite_smooth": "精致伟晶岩", - "block.mineralogy.pegmatite_smooth_stairs": "精致伟晶岩楼梯", - "block.mineralogy.pegmatite_smooth_slab": "精致伟晶岩板", - "block.mineralogy.pegmatite_smooth_brick": "精致伟晶岩砖", - "block.mineralogy.pegmatite_smooth_brick_stairs": "精致伟晶岩砖楼梯", - "block.mineralogy.pegmatite_smooth_brick_slab": "精致伟晶岩砖板", + "block.mineralogy.pegmatite_brick_slab": "伟晶岩砖台阶", + "block.mineralogy.pegmatite_smooth": "磨制伟晶岩", + "block.mineralogy.pegmatite_smooth_stairs": "磨制伟晶岩楼梯", + "block.mineralogy.pegmatite_smooth_slab": "磨制伟晶岩台阶", + "block.mineralogy.pegmatite_smooth_brick": "磨制伟晶岩砖", + "block.mineralogy.pegmatite_smooth_brick_stairs": "磨制伟晶岩砖楼梯", + "block.mineralogy.pegmatite_smooth_brick_slab": "磨制伟晶岩砖台阶", "block.mineralogy.shale": "页岩", "block.mineralogy.shale_stairs": "页岩楼梯", - "block.mineralogy.shale_slab": "页岩板", + "block.mineralogy.shale_slab": "页岩台阶", "block.mineralogy.shale_brick": "页岩砖", "block.mineralogy.shale_brick_stairs": "页岩砖楼梯", - "block.mineralogy.shale_brick_slab": "页岩砖板", - "block.mineralogy.shale_smooth": "精致页岩", - "block.mineralogy.shale_smooth_stairs": "精致页岩楼梯", - "block.mineralogy.shale_smooth_slab": "精致页岩板", - "block.mineralogy.shale_smooth_brick": "精致页岩砖", - "block.mineralogy.shale_smooth_brick_stairs": "精致页岩砖楼梯", - "block.mineralogy.shale_smooth_brick_slab": "精致页岩砖板", + "block.mineralogy.shale_brick_slab": "页岩砖台阶", + "block.mineralogy.shale_smooth": "磨制页岩", + "block.mineralogy.shale_smooth_stairs": "磨制页岩楼梯", + "block.mineralogy.shale_smooth_slab": "磨制页岩台阶", + "block.mineralogy.shale_smooth_brick": "磨制页岩砖", + "block.mineralogy.shale_smooth_brick_stairs": "磨制页岩砖楼梯", + "block.mineralogy.shale_smooth_brick_slab": "磨制页岩砖台阶", "block.mineralogy.conglomerate": "砾岩", "block.mineralogy.conglomerate_stairs": "砾岩楼梯", - "block.mineralogy.conglomerate_slab": "砾岩板", + "block.mineralogy.conglomerate_slab": "砾岩台阶", "block.mineralogy.conglomerate_brick": "砾岩砖", "block.mineralogy.conglomerate_brick_stairs": "砾岩砖楼梯", - "block.mineralogy.conglomerate_brick_slab": "砾岩砖板", - "block.mineralogy.conglomerate_smooth": "精致砾岩", - "block.mineralogy.conglomerate_smooth_stairs": "精致砾岩楼梯", - "block.mineralogy.conglomerate_smooth_slab": "精致砾岩板", - "block.mineralogy.conglomerate_smooth_brick": "精致砾岩砖", - "block.mineralogy.conglomerate_smooth_brick_stairs": "精致砾岩砖楼梯", - "block.mineralogy.conglomerate_smooth_brick_slab": "精致砾岩砖板", - "block.mineralogy.dolomite": "白云石", - "block.mineralogy.dolomite_stairs": "白云石楼梯", - "block.mineralogy.dolomite_slab": "白云石板", - "block.mineralogy.dolomite_brick": "白云石砖", - "block.mineralogy.dolomite_brick_stairs": "白云石砖楼梯", - "block.mineralogy.dolomite_brick_slab": "白云石砖板", - "block.mineralogy.dolomite_smooth": "精致白云石", - "block.mineralogy.dolomite_smooth_stairs": "精致白云石楼梯", - "block.mineralogy.dolomite_smooth_slab": "精致白云石板", - "block.mineralogy.dolomite_smooth_brick": "精致白云石砖", - "block.mineralogy.dolomite_smooth_brick_stairs": "精致白云石砖楼梯", - "block.mineralogy.dolomite_smooth_brick_slab": "精致白云石砖板", + "block.mineralogy.conglomerate_brick_slab": "砾岩砖台阶", + "block.mineralogy.conglomerate_smooth": "磨制砾岩", + "block.mineralogy.conglomerate_smooth_stairs": "磨制砾岩楼梯", + "block.mineralogy.conglomerate_smooth_slab": "磨制砾岩台阶", + "block.mineralogy.conglomerate_smooth_brick": "磨制砾岩砖", + "block.mineralogy.conglomerate_smooth_brick_stairs": "磨制砾岩砖楼梯", + "block.mineralogy.conglomerate_smooth_brick_slab": "磨制砾岩砖台阶", + "block.mineralogy.dolomite": "白云岩", + "block.mineralogy.dolomite_stairs": "白云岩楼梯", + "block.mineralogy.dolomite_slab": "白云岩台阶", + "block.mineralogy.dolomite_brick": "白云岩砖", + "block.mineralogy.dolomite_brick_stairs": "白云岩砖楼梯", + "block.mineralogy.dolomite_brick_slab": "白云岩砖台阶", + "block.mineralogy.dolomite_smooth": "磨制白云岩", + "block.mineralogy.dolomite_smooth_stairs": "磨制白云岩楼梯", + "block.mineralogy.dolomite_smooth_slab": "磨制白云岩台阶", + "block.mineralogy.dolomite_smooth_brick": "磨制白云岩砖", + "block.mineralogy.dolomite_smooth_brick_stairs": "磨制白云岩砖楼梯", + "block.mineralogy.dolomite_smooth_brick_slab": "磨制白云岩砖台阶", "block.mineralogy.limestone": "石灰石", "block.mineralogy.limestone_stairs": "石灰石楼梯", - "block.mineralogy.limestone_slab": "石灰石板", + "block.mineralogy.limestone_slab": "石灰石台阶", "block.mineralogy.limestone_brick": "石灰石砖", "block.mineralogy.limestone_brick_stairs": "石灰石砖楼梯", - "block.mineralogy.limestone_brick_slab": "石灰石砖板", - "block.mineralogy.limestone_smooth": "精致石灰石", - "block.mineralogy.limestone_smooth_stairs": "精致石灰石楼梯", - "block.mineralogy.limestone_smooth_slab": "精致石灰石板", - "block.mineralogy.limestone_smooth_brick": "精致石灰石砖", - "block.mineralogy.limestone_smooth_brick_stairs": "精致石灰石砖楼梯", - "block.mineralogy.limestone_smooth_brick_slab": "精致石灰石砖板", + "block.mineralogy.limestone_brick_slab": "石灰石砖台阶", + "block.mineralogy.limestone_smooth": "磨制石灰石", + "block.mineralogy.limestone_smooth_stairs": "磨制石灰石楼梯", + "block.mineralogy.limestone_smooth_slab": "磨制石灰石台阶", + "block.mineralogy.limestone_smooth_brick": "磨制石灰石砖", + "block.mineralogy.limestone_smooth_brick_stairs": "磨制石灰石砖楼梯", + "block.mineralogy.limestone_smooth_brick_slab": "磨制石灰石砖台阶", "block.mineralogy.slate": "板岩", "block.mineralogy.slate_stairs": "板岩楼梯", - "block.mineralogy.slate_slab": "板岩", + "block.mineralogy.slate_slab": "板岩台阶", "block.mineralogy.slate_brick": "板岩砖", "block.mineralogy.slate_brick_stairs": "板岩砖楼梯", - "block.mineralogy.slate_brick_slab": "板岩砖板", - "block.mineralogy.slate_smooth": "精致板岩", - "block.mineralogy.slate_smooth_stairs": "精致板岩楼梯", - "block.mineralogy.slate_smooth_slab": "精致板岩板", - "block.mineralogy.slate_smooth_brick": "精致板岩砖", - "block.mineralogy.slate_smooth_brick_stairs": "精致板岩砖楼梯", - "block.mineralogy.slate_smooth_brick_slab": "精致板岩砖板", + "block.mineralogy.slate_brick_slab": "板岩砖台阶", + "block.mineralogy.slate_smooth": "磨制板岩", + "block.mineralogy.slate_smooth_stairs": "磨制板岩楼梯", + "block.mineralogy.slate_smooth_slab": "磨制板岩台阶", + "block.mineralogy.slate_smooth_brick": "磨制板岩砖", + "block.mineralogy.slate_smooth_brick_stairs": "磨制板岩砖楼梯", + "block.mineralogy.slate_smooth_brick_slab": "磨制板岩砖台阶", "block.mineralogy.schist": "片岩", "block.mineralogy.schist_stairs": "片岩楼梯", - "block.mineralogy.schist_slab": "片岩板", + "block.mineralogy.schist_slab": "片岩台阶", "block.mineralogy.schist_brick": "片岩砖", "block.mineralogy.schist_brick_stairs": "片岩砖楼梯", - "block.mineralogy.schist_brick_slab": "片岩砖板", - "block.mineralogy.schist_smooth": "精致片岩", - "block.mineralogy.schist_smooth_stairs": "精致片岩楼梯", - "block.mineralogy.schist_smooth_slab": "精致片岩板", - "block.mineralogy.schist_smooth_brick": "精致片岩砖", - "block.mineralogy.schist_smooth_brick_stairs": "精致片岩砖楼梯", - "block.mineralogy.schist_smooth_brick_slab": "精致片岩砖板", + "block.mineralogy.schist_brick_slab": "片岩砖台阶", + "block.mineralogy.schist_smooth": "磨制片岩", + "block.mineralogy.schist_smooth_stairs": "磨制片岩楼梯", + "block.mineralogy.schist_smooth_slab": "磨制片岩台阶", + "block.mineralogy.schist_smooth_brick": "磨制片岩砖", + "block.mineralogy.schist_smooth_brick_stairs": "磨制片岩砖楼梯", + "block.mineralogy.schist_smooth_brick_slab": "磨制片岩砖台阶", "block.mineralogy.gneiss": "片麻岩", "block.mineralogy.gneiss_stairs": "片麻岩楼梯", - "block.mineralogy.gneiss_slab": "片麻岩板", - "block.mineralogy.gneiss_brick": "片麻岩板", + "block.mineralogy.gneiss_slab": "片麻岩台阶", + "block.mineralogy.gneiss_brick": "片麻岩砖", "block.mineralogy.gneiss_brick_stairs": "片麻岩砖楼梯", - "block.mineralogy.gneiss_brick_slab": "片麻岩砖板", - "block.mineralogy.gneiss_smooth": "精致片麻岩", - "block.mineralogy.gneiss_smooth_stairs": "精致片麻岩楼梯", - "block.mineralogy.gneiss_smooth_slab": "精致片麻岩板", - "block.mineralogy.gneiss_smooth_brick": "精致片麻岩砖", - "block.mineralogy.gneiss_smooth_brick_stairs": "精致片麻岩砖楼梯", - "block.mineralogy.gneiss_smooth_brick_slab": "精致片麻岩砖板", + "block.mineralogy.gneiss_brick_slab": "片麻岩砖台阶", + "block.mineralogy.gneiss_smooth": "磨制片麻岩", + "block.mineralogy.gneiss_smooth_stairs": "磨制片麻岩楼梯", + "block.mineralogy.gneiss_smooth_slab": "磨制片麻岩台阶", + "block.mineralogy.gneiss_smooth_brick": "磨制片麻岩砖", + "block.mineralogy.gneiss_smooth_brick_stairs": "磨制片麻岩砖楼梯", + "block.mineralogy.gneiss_smooth_brick_slab": "磨制片麻岩砖台阶", "block.mineralogy.marble": "大理石", "block.mineralogy.marble_stairs": "大理石楼梯", - "block.mineralogy.marble_slab": "大理石板", + "block.mineralogy.marble_slab": "大理石台阶", "block.mineralogy.marble_brick": "大理石砖", "block.mineralogy.marble_brick_stairs": "大理石砖楼梯", - "block.mineralogy.marble_brick_slab": "大理石砖板", - "block.mineralogy.marble_smooth": "精致大理石", - "block.mineralogy.marble_smooth_stairs": "精致大理石楼梯", - "block.mineralogy.marble_smooth_slab": "精致大理石板", - "block.mineralogy.marble_smooth_brick": "精致大理石砖", - "block.mineralogy.marble_smooth_brick_stairs": "精致大理石砖楼梯", - "block.mineralogy.marble_smooth_brick_slab": "精致大理石砖板", + "block.mineralogy.marble_brick_slab": "大理石砖台阶", + "block.mineralogy.marble_smooth": "磨制大理石", + "block.mineralogy.marble_smooth_stairs": "磨制大理石楼梯", + "block.mineralogy.marble_smooth_slab": "磨制大理石台阶", + "block.mineralogy.marble_smooth_brick": "磨制大理石砖", + "block.mineralogy.marble_smooth_brick_stairs": "磨制大理石砖楼梯", + "block.mineralogy.marble_smooth_brick_slab": "磨制大理石砖台阶", "block.mineralogy.phyllite": "千枚岩", "block.mineralogy.phyllite_stairs": "千枚岩楼梯", - "block.mineralogy.phyllite_slab": "千枚岩板", + "block.mineralogy.phyllite_slab": "千枚岩台阶", "block.mineralogy.phyllite_brick": "千枚岩砖", "block.mineralogy.phyllite_brick_stairs": "千枚岩砖楼梯", - "block.mineralogy.phyllite_brick_slab": "千枚岩砖板", - "block.mineralogy.phyllite_smooth": "精致千枚岩", - "block.mineralogy.phyllite_smooth_stairs": "精致千枚岩楼梯", - "block.mineralogy.phyllite_smooth_slab": "精致千枚岩板", - "block.mineralogy.phyllite_smooth_brick": "精致千枚岩砖", - "block.mineralogy.phyllite_smooth_brick_stairs": "精致千枚岩砖楼梯", - "block.mineralogy.phyllite_smooth_brick_slab": "精致千枚岩砖板", - "block.mineralogy.amphibolite": "闪岩", - "block.mineralogy.amphibolite_stairs": "闪岩楼梯", - "block.mineralogy.amphibolite_slab": "闪岩板", - "block.mineralogy.amphibolite_brick": "闪岩砖", - "block.mineralogy.amphibolite_brick_stairs": "闪岩砖楼梯", - "block.mineralogy.amphibolite_brick_slab": "闪岩砖板", - "block.mineralogy.amphibolite_smooth": "精致闪岩", - "block.mineralogy.amphibolite_smooth_stairs": "精致闪岩楼梯", - "block.mineralogy.amphibolite_smooth_slab": "精致闪岩板", - "block.mineralogy.amphibolite_smooth_brick": "精致闪岩砖", - "block.mineralogy.amphibolite_smooth_brick_stairs": "精致闪岩砖楼梯", - "block.mineralogy.amphibolite_smooth_brick_slab": "精致闪岩砖板", + "block.mineralogy.phyllite_brick_slab": "千枚岩砖台阶", + "block.mineralogy.phyllite_smooth": "磨制千枚岩", + "block.mineralogy.phyllite_smooth_stairs": "磨制千枚岩楼梯", + "block.mineralogy.phyllite_smooth_slab": "磨制千枚岩台阶", + "block.mineralogy.phyllite_smooth_brick": "磨制千枚岩砖", + "block.mineralogy.phyllite_smooth_brick_stairs": "磨制千枚岩砖楼梯", + "block.mineralogy.phyllite_smooth_brick_slab": "磨制千枚岩砖台阶", + "block.mineralogy.amphibolite": "角闪岩", + "block.mineralogy.amphibolite_stairs": "角闪岩楼梯", + "block.mineralogy.amphibolite_slab": "角闪岩台阶", + "block.mineralogy.amphibolite_brick": "角闪岩砖", + "block.mineralogy.amphibolite_brick_stairs": "角闪岩砖楼梯", + "block.mineralogy.amphibolite_brick_slab": "角闪岩砖台阶", + "block.mineralogy.amphibolite_smooth": "磨制角闪岩", + "block.mineralogy.amphibolite_smooth_stairs": "磨制角闪岩楼梯", + "block.mineralogy.amphibolite_smooth_slab": "磨制角闪岩台阶", + "block.mineralogy.amphibolite_smooth_brick": "磨制角闪岩砖", + "block.mineralogy.amphibolite_smooth_brick_stairs": "磨制角闪岩砖楼梯", + "block.mineralogy.amphibolite_smooth_brick_slab": "磨制角闪岩砖台阶", "item.mineralogy.gypsum_dust": "石膏粉", "item.mineralogy.sulfur_dust": "硫磺粉", "item.mineralogy.phosphorous_dust": "磷粉", @@ -199,12 +199,12 @@ "block.mineralogy.chert": "燧石", "block.mineralogy.gypsum": "石膏", "block.mineralogy.pumice": "浮石", - "block.mineralogy.sulfur_block": "硫", - "block.mineralogy.sulfur_ore": "硫矿", + "block.mineralogy.sulfur_block": "硫磺", + "block.mineralogy.sulfur_ore": "硫磺矿石", "block.mineralogy.phosphorous_block": "磷", - "block.mineralogy.phosphorous_ore": "磷矿", + "block.mineralogy.phosphorous_ore": "磷矿石", "block.mineralogy.nitrate_block": "硝酸盐", - "block.mineralogy.nitrate_ore": "硝酸盐矿", + "block.mineralogy.nitrate_ore": "硝酸盐矿石", "block.mineralogy.drywall_black": "黑色石膏板", "block.mineralogy.drywall_red": "红色石膏板", "block.mineralogy.drywall_green": "绿色石膏板", @@ -215,726 +215,726 @@ "block.mineralogy.drywall_silver": "浅灰色石膏板", "block.mineralogy.drywall_gray": "灰色石膏板", "block.mineralogy.drywall_pink": "粉红色石膏板", - "block.mineralogy.drywall_lime": "柠檬绿石膏板", + "block.mineralogy.drywall_lime": "黄绿色石膏板", "block.mineralogy.drywall_yellow": "黄色石膏板", - "block.mineralogy.drywall_light_blue": "浅蓝色石膏板", - "block.mineralogy.drywall_magenta": "洋红色石膏板", + "block.mineralogy.drywall_light_blue": "淡蓝色石膏板", + "block.mineralogy.drywall_magenta": "品红色石膏板", "block.mineralogy.drywall_orange": "橙色石膏板", "block.mineralogy.drywall_white": "白色石膏板", "block.mineralogy.andesite_wall": "安山岩墙", - "block.mineralogy.andesite_brick_wall": "安山石砖墙", - "block.mineralogy.andesite_smooth_wall": "安山岩抛光墙", - "block.mineralogy.andesite_smooth_brick_wall": "安山岩抛光砖墙", + "block.mineralogy.andesite_brick_wall": "安山岩砖墙", + "block.mineralogy.andesite_smooth_wall": "磨制安山岩墙", + "block.mineralogy.andesite_smooth_brick_wall": "磨制安山岩砖墙", "block.mineralogy.basalt_wall": "玄武岩墙", "block.mineralogy.basalt_brick_wall": "玄武岩砖墙", - "block.mineralogy.basalt_smooth_wall": "玄武岩抛光墙", - "block.mineralogy.basalt_smooth_brick_wall": "玄武岩抛光砖墙", + "block.mineralogy.basalt_smooth_wall": "磨制玄武岩墙", + "block.mineralogy.basalt_smooth_brick_wall": "磨制玄武岩砖墙", "block.mineralogy.diorite_wall": "闪长岩墙", "block.mineralogy.diorite_brick_wall": "闪长岩砖墙", - "block.mineralogy.diorite_smooth_wall": "闪长岩抛光墙", - "block.mineralogy.diorite_smooth_brick_wall": "闪长岩抛光砖墙", + "block.mineralogy.diorite_smooth_wall": "磨制闪长岩墙", + "block.mineralogy.diorite_smooth_brick_wall": "磨制闪长岩砖墙", "block.mineralogy.granite_wall": "花岗岩墙", "block.mineralogy.granite_brick_wall": "花岗岩砖墙", - "block.mineralogy.granite_smooth_wall": "花岗岩抛光墙", - "block.mineralogy.granite_smooth_brick_wall": "花岗岩抛光砖墙", + "block.mineralogy.granite_smooth_wall": "磨制花岗岩墙", + "block.mineralogy.granite_smooth_brick_wall": "磨制花岗岩砖墙", "block.mineralogy.rhyolite_wall": "流纹岩墙", "block.mineralogy.rhyolite_brick_wall": "流纹岩砖墙", - "block.mineralogy.rhyolite_smooth_wall": "流纹岩抛光墙", - "block.mineralogy.rhyolite_smooth_brick_wall": "流纹岩抛光砖墙", + "block.mineralogy.rhyolite_smooth_wall": "磨制流纹岩墙", + "block.mineralogy.rhyolite_smooth_brick_wall": "磨制流纹岩砖墙", "block.mineralogy.pegmatite_wall": "伟晶岩墙", "block.mineralogy.pegmatite_brick_wall": "伟晶岩砖墙", - "block.mineralogy.pegmatite_smooth_wall": "伟晶岩抛光墙", - "block.mineralogy.pegmatite_smooth_brick_wall": "伟晶岩抛光砖墙", + "block.mineralogy.pegmatite_smooth_wall": "磨制伟晶岩墙", + "block.mineralogy.pegmatite_smooth_brick_wall": "磨制伟晶岩砖墙", "block.mineralogy.shale_wall": "页岩墙", "block.mineralogy.shale_brick_wall": "页岩砖墙", - "block.mineralogy.shale_smooth_wall": "页岩抛光墙", - "block.mineralogy.shale_smooth_brick_wall": "页岩抛光砖墙", + "block.mineralogy.shale_smooth_wall": "磨制页岩墙", + "block.mineralogy.shale_smooth_brick_wall": "磨制页岩砖墙", "block.mineralogy.conglomerate_wall": "砾岩墙", "block.mineralogy.conglomerate_brick_wall": "砾岩砖墙", - "block.mineralogy.conglomerate_smooth_wall": "砾岩抛光墙", - "block.mineralogy.conglomerate_smooth_brick_wall": "砾岩抛光砖墙", + "block.mineralogy.conglomerate_smooth_wall": "磨制砾岩墙", + "block.mineralogy.conglomerate_smooth_brick_wall": "磨制砾岩砖墙", "block.mineralogy.dolomite_wall": "白云岩墙", "block.mineralogy.dolomite_brick_wall": "白云岩砖墙", - "block.mineralogy.dolomite_smooth_wall": "白云岩抛光墙", - "block.mineralogy.dolomite_smooth_brick_wall": "白云岩抛光砖墙", + "block.mineralogy.dolomite_smooth_wall": "磨制白云岩墙", + "block.mineralogy.dolomite_smooth_brick_wall": "磨制白云岩砖墙", "block.mineralogy.limestone_wall": "石灰石墙", "block.mineralogy.limestone_brick_wall": "石灰石砖墙", - "block.mineralogy.limestone_smooth_wall": "石灰石抛光墙", - "block.mineralogy.limestone_smooth_brick_wall": "石灰石抛光砖墙", + "block.mineralogy.limestone_smooth_wall": "磨制石灰石墙", + "block.mineralogy.limestone_smooth_brick_wall": "磨制石灰石砖墙", "block.mineralogy.marble_wall": "大理石墙", "block.mineralogy.marble_brick_wall": "大理石砖墙", - "block.mineralogy.marble_smooth_wall": "大理石抛光墙", - "block.mineralogy.marble_smooth_brick_wall": "大理石抛光砖墙", + "block.mineralogy.marble_smooth_wall": "磨制大理石墙", + "block.mineralogy.marble_smooth_brick_wall": "磨制大理石砖墙", "block.mineralogy.slate_wall": "板岩墙", "block.mineralogy.slate_brick_wall": "板岩砖墙", - "block.mineralogy.slate_smooth_wall": "板岩抛光墙", - "block.mineralogy.slate_smooth_brick_wall": "板岩抛光砖墙", + "block.mineralogy.slate_smooth_wall": "磨制板岩墙", + "block.mineralogy.slate_smooth_brick_wall": "磨制板岩砖墙", "block.mineralogy.schist_wall": "片岩墙", "block.mineralogy.schist_brick_wall": "片岩砖墙", - "block.mineralogy.schist_smooth_wall": "片岩抛光墙", - "block.mineralogy.schist_smooth_brick_wall": "片岩抛光砖墙", + "block.mineralogy.schist_smooth_wall": "磨制片岩墙", + "block.mineralogy.schist_smooth_brick_wall": "磨制片岩砖墙", "block.mineralogy.gneiss_wall": "片麻岩墙", "block.mineralogy.gneiss_brick_wall": "片麻岩砖墙", - "block.mineralogy.gneiss_smooth_wall": "片麻岩抛光墙", - "block.mineralogy.gneiss_smooth_brick_wall": "片麻岩抛光砖墙", + "block.mineralogy.gneiss_smooth_wall": "磨制片麻岩墙", + "block.mineralogy.gneiss_smooth_brick_wall": "磨制片麻岩砖墙", "block.mineralogy.phyllite_wall": "千枚岩墙", "block.mineralogy.phyllite_brick_wall": "千枚岩砖墙", - "block.mineralogy.phyllite_smooth_wall": "千枚岩抛光墙", - "block.mineralogy.phyllite_smooth_brick_wall": "千枚岩抛光砖墙", - "block.mineralogy.amphibolite_wall": "闪岩墙", - "block.mineralogy.amphibolite_brick_wall": "闪岩砖墙", - "block.mineralogy.amphibolite_smooth_wall": "闪岩抛光墙", - "block.mineralogy.amphibolite_smooth_brick_wall": "闪岩抛光砖墙", - "block.mineralogy.andesite_furnace": "安山岩炉", - "block.mineralogy.andesite_brick_furnace": "安山石砖炉", - "block.mineralogy.andesite_smooth_furnace": "安山岩抛光炉", - "block.mineralogy.andesite_smooth_brick_furnace": "安山岩抛光砖炉", - "block.mineralogy.basalt_furnace": "玄武岩炉", - "block.mineralogy.basalt_brick_furnace": "玄武岩砖炉", - "block.mineralogy.basalt_smooth_furnace": "玄武岩抛光炉", - "block.mineralogy.basalt_smooth_brick_furnace": "玄武岩抛光砖炉", - "block.mineralogy.diorite_furnace": "闪长岩炉", - "block.mineralogy.diorite_brick_furnace": "闪长岩砖炉", - "block.mineralogy.diorite_smooth_furnace": "闪长岩抛光炉", - "block.mineralogy.diorite_smooth_brick_furnace": "闪长岩抛光砖炉", - "block.mineralogy.granite_furnace": "花岗岩炉", - "block.mineralogy.granite_brick_furnace": "花岗岩砖炉", - "block.mineralogy.granite_smooth_furnace": "花岗岩抛光炉", - "block.mineralogy.granite_smooth_brick_furnace": "花岗岩抛光砖炉", - "block.mineralogy.rhyolite_furnace": "流纹岩炉", - "block.mineralogy.rhyolite_brick_furnace": "流纹岩砖炉", - "block.mineralogy.rhyolite_smooth_furnace": "流纹岩抛光炉", - "block.mineralogy.rhyolite_smooth_brick_furnace": "流纹岩抛光砖炉", - "block.mineralogy.pegmatite_furnace": "伟晶岩炉", - "block.mineralogy.pegmatite_brick_furnace": "伟晶岩砖炉", - "block.mineralogy.pegmatite_smooth_furnace": "伟晶岩抛光炉", - "block.mineralogy.pegmatite_smooth_brick_furnace": "伟晶岩抛光砖炉", - "block.mineralogy.shale_furnace": "页岩炉", - "block.mineralogy.shale_brick_furnace": "页岩砖炉", - "block.mineralogy.shale_smooth_furnace": "页岩抛光炉", - "block.mineralogy.shale_smooth_brick_furnace": "页岩抛光砖炉", - "block.mineralogy.conglomerate_furnace": "砾岩炉", - "block.mineralogy.conglomerate_brick_furnace": "砾岩砖炉", - "block.mineralogy.conglomerate_smooth_furnace": "砾岩抛光炉", - "block.mineralogy.conglomerate_smooth_brick_furnace": "砾岩抛光砖炉", - "block.mineralogy.dolomite_furnace": "白云岩炉", - "block.mineralogy.dolomite_brick_furnace": "白云岩砖炉", - "block.mineralogy.dolomite_smooth_furnace": "白云岩抛光炉", - "block.mineralogy.dolomite_smooth_brick_furnace": "白云岩抛光砖炉", - "block.mineralogy.limestone_furnace": "石灰石炉", - "block.mineralogy.limestone_brick_furnace": "石灰石砖炉", - "block.mineralogy.limestone_smooth_furnace": "石灰石抛光炉", - "block.mineralogy.limestone_smooth_brick_furnace": "石灰石抛光砖炉", - "block.mineralogy.marble_furnace": "大理石炉", - "block.mineralogy.marble_brick_furnace": "大理石砖炉", - "block.mineralogy.marble_smooth_furnace": "大理石抛光炉", - "block.mineralogy.marble_smooth_brick_furnace": "大理石抛光砖炉", - "block.mineralogy.slate_furnace": "板岩炉", - "block.mineralogy.slate_brick_furnace": "板岩砖炉", - "block.mineralogy.slate_smooth_furnace": "板岩抛光炉", - "block.mineralogy.slate_smooth_brick_furnace": "板岩抛光砖炉", - "block.mineralogy.schist_furnace": "片岩炉", - "block.mineralogy.schist_brick_furnace": "片岩砖炉", - "block.mineralogy.schist_smooth_furnace": "片岩抛光炉", - "block.mineralogy.schist_smooth_brick_furnace": "片岩抛光砖炉", - "block.mineralogy.gneiss_furnace": "片麻岩炉", - "block.mineralogy.gneiss_brick_furnace": "片麻岩砖炉", - "block.mineralogy.gneiss_smooth_furnace": "片麻岩抛光炉", - "block.mineralogy.gneiss_smooth_brick_furnace": "片麻岩抛光砖炉", - "block.mineralogy.phyllite_furnace": "千枚岩炉", - "block.mineralogy.phyllite_brick_furnace": "千枚岩砖炉", - "block.mineralogy.phyllite_smooth_furnace": "千枚岩抛光炉", - "block.mineralogy.phyllite_smooth_brick_furnace": "千枚岩抛光砖炉", - "block.mineralogy.amphibolite_furnace": "闪岩炉", - "block.mineralogy.amphibolite_brick_furnace": "闪岩砖炉", - "block.mineralogy.amphibolite_smooth_furnace": "闪岩抛光炉", - "block.mineralogy.amphibolite_smooth_brick_furnace": "闪岩抛光砖炉", + "block.mineralogy.phyllite_smooth_wall": "磨制千枚岩墙", + "block.mineralogy.phyllite_smooth_brick_wall": "磨制千枚岩砖墙", + "block.mineralogy.amphibolite_wall": "角闪岩墙", + "block.mineralogy.amphibolite_brick_wall": "角闪岩砖墙", + "block.mineralogy.amphibolite_smooth_wall": "磨制角闪岩墙", + "block.mineralogy.amphibolite_smooth_brick_wall": "磨制角闪岩砖墙", + "block.mineralogy.andesite_furnace": "安山岩熔炉", + "block.mineralogy.andesite_brick_furnace": "安山岩砖熔炉", + "block.mineralogy.andesite_smooth_furnace": "磨制安山岩熔炉", + "block.mineralogy.andesite_smooth_brick_furnace": "磨制安山岩砖熔炉", + "block.mineralogy.basalt_furnace": "玄武岩熔炉", + "block.mineralogy.basalt_brick_furnace": "玄武岩砖熔炉", + "block.mineralogy.basalt_smooth_furnace": "磨制玄武岩熔炉", + "block.mineralogy.basalt_smooth_brick_furnace": "磨制玄武岩砖熔炉", + "block.mineralogy.diorite_furnace": "闪长岩熔炉", + "block.mineralogy.diorite_brick_furnace": "闪长岩砖熔炉", + "block.mineralogy.diorite_smooth_furnace": "磨制闪长岩熔炉", + "block.mineralogy.diorite_smooth_brick_furnace": "磨制闪长岩砖熔炉", + "block.mineralogy.granite_furnace": "花岗岩熔炉", + "block.mineralogy.granite_brick_furnace": "花岗岩砖熔炉", + "block.mineralogy.granite_smooth_furnace": "磨制花岗岩熔炉", + "block.mineralogy.granite_smooth_brick_furnace": "磨制花岗岩砖熔炉", + "block.mineralogy.rhyolite_furnace": "流纹岩熔炉", + "block.mineralogy.rhyolite_brick_furnace": "流纹岩砖熔炉", + "block.mineralogy.rhyolite_smooth_furnace": "磨制流纹岩熔炉", + "block.mineralogy.rhyolite_smooth_brick_furnace": "磨制流纹岩砖熔炉", + "block.mineralogy.pegmatite_furnace": "伟晶岩熔炉", + "block.mineralogy.pegmatite_brick_furnace": "伟晶岩砖熔炉", + "block.mineralogy.pegmatite_smooth_furnace": "磨制伟晶岩熔炉", + "block.mineralogy.pegmatite_smooth_brick_furnace": "磨制伟晶岩砖熔炉", + "block.mineralogy.shale_furnace": "页岩熔炉", + "block.mineralogy.shale_brick_furnace": "页岩砖熔炉", + "block.mineralogy.shale_smooth_furnace": "磨制页岩熔炉", + "block.mineralogy.shale_smooth_brick_furnace": "磨制页岩砖熔炉", + "block.mineralogy.conglomerate_furnace": "砾岩熔炉", + "block.mineralogy.conglomerate_brick_furnace": "砾岩砖熔炉", + "block.mineralogy.conglomerate_smooth_furnace": "磨制砾岩熔炉", + "block.mineralogy.conglomerate_smooth_brick_furnace": "磨制砾岩砖熔炉", + "block.mineralogy.dolomite_furnace": "白云岩熔炉", + "block.mineralogy.dolomite_brick_furnace": "白云岩砖熔炉", + "block.mineralogy.dolomite_smooth_furnace": "磨制白云岩熔炉", + "block.mineralogy.dolomite_smooth_brick_furnace": "磨制白云岩砖熔炉", + "block.mineralogy.limestone_furnace": "石灰石熔炉", + "block.mineralogy.limestone_brick_furnace": "石灰石砖熔炉", + "block.mineralogy.limestone_smooth_furnace": "磨制石灰石熔炉", + "block.mineralogy.limestone_smooth_brick_furnace": "磨制石灰石砖熔炉", + "block.mineralogy.marble_furnace": "大理石熔炉", + "block.mineralogy.marble_brick_furnace": "大理石砖熔炉", + "block.mineralogy.marble_smooth_furnace": "磨制大理石熔炉", + "block.mineralogy.marble_smooth_brick_furnace": "磨制大理石砖熔炉", + "block.mineralogy.slate_furnace": "板岩熔炉", + "block.mineralogy.slate_brick_furnace": "板岩砖熔炉", + "block.mineralogy.slate_smooth_furnace": "磨制板岩熔炉", + "block.mineralogy.slate_smooth_brick_furnace": "磨制板岩砖熔炉", + "block.mineralogy.schist_furnace": "片岩熔炉", + "block.mineralogy.schist_brick_furnace": "片岩砖熔炉", + "block.mineralogy.schist_smooth_furnace": "磨制片岩熔炉", + "block.mineralogy.schist_smooth_brick_furnace": "磨制片岩砖熔炉", + "block.mineralogy.gneiss_furnace": "片麻岩熔炉", + "block.mineralogy.gneiss_brick_furnace": "片麻岩砖熔炉", + "block.mineralogy.gneiss_smooth_furnace": "磨制片麻岩熔炉", + "block.mineralogy.gneiss_smooth_brick_furnace": "磨制片麻岩砖熔炉", + "block.mineralogy.phyllite_furnace": "千枚岩熔炉", + "block.mineralogy.phyllite_brick_furnace": "千枚岩砖熔炉", + "block.mineralogy.phyllite_smooth_furnace": "磨制千枚岩熔炉", + "block.mineralogy.phyllite_smooth_brick_furnace": "磨制千枚岩砖熔炉", + "block.mineralogy.amphibolite_furnace": "角闪岩熔炉", + "block.mineralogy.amphibolite_brick_furnace": "角闪岩砖熔炉", + "block.mineralogy.amphibolite_smooth_furnace": "磨制角闪岩熔炉", + "block.mineralogy.amphibolite_smooth_brick_furnace": "磨制角闪岩砖熔炉", "block.mineralogy.diabase": "辉绿岩", - "block.mineralogy.diabase_stairs": "辉绿岩 楼梯", - "block.mineralogy.diabase_slab": "辉绿岩 板", - "block.mineralogy.diabase_brick": "辉绿岩 砖", - "block.mineralogy.diabase_brick_stairs": "辉绿岩 砖楼梯", - "block.mineralogy.diabase_brick_slab": "辉绿岩 砖板", - "block.mineralogy.diabase_smooth": "Polished 辉绿岩", - "block.mineralogy.diabase_smooth_stairs": "辉绿岩 抛光楼梯", - "block.mineralogy.diabase_smooth_slab": "辉绿岩 抛光板", - "block.mineralogy.diabase_smooth_brick": "辉绿岩 抛光砖", - "block.mineralogy.diabase_smooth_brick_stairs": "辉绿岩 抛光砖楼梯", - "block.mineralogy.diabase_smooth_brick_slab": "辉绿岩 抛光砖板", - "block.mineralogy.diabase_wall": "辉绿岩 Wall", - "block.mineralogy.diabase_brick_wall": "辉绿岩 砖墙", - "block.mineralogy.diabase_smooth_wall": "辉绿岩 抛光墙", - "block.mineralogy.diabase_smooth_brick_wall": "辉绿岩 抛光砖墙", - "block.mineralogy.diabase_furnace": "辉绿岩 炉", - "block.mineralogy.diabase_brick_furnace": "辉绿岩 砖炉", - "block.mineralogy.diabase_smooth_furnace": "辉绿岩 抛光炉", - "block.mineralogy.diabase_smooth_brick_furnace": "辉绿岩 抛光砖炉", + "block.mineralogy.diabase_stairs": "辉绿岩楼梯", + "block.mineralogy.diabase_slab": "辉绿岩台阶", + "block.mineralogy.diabase_brick": "辉绿岩砖", + "block.mineralogy.diabase_brick_stairs": "辉绿岩砖楼梯", + "block.mineralogy.diabase_brick_slab": "辉绿岩砖台阶", + "block.mineralogy.diabase_smooth": "磨制辉绿岩", + "block.mineralogy.diabase_smooth_stairs": "磨制辉绿岩楼梯", + "block.mineralogy.diabase_smooth_slab": "磨制辉绿岩台阶", + "block.mineralogy.diabase_smooth_brick": "磨制辉绿岩砖", + "block.mineralogy.diabase_smooth_brick_stairs": "磨制辉绿岩砖楼梯", + "block.mineralogy.diabase_smooth_brick_slab": "磨制辉绿岩砖台阶", + "block.mineralogy.diabase_wall": "辉绿岩墙", + "block.mineralogy.diabase_brick_wall": "辉绿岩砖墙", + "block.mineralogy.diabase_smooth_wall": "磨制辉绿岩墙", + "block.mineralogy.diabase_smooth_brick_wall": "磨制辉绿岩砖墙", + "block.mineralogy.diabase_furnace": "辉绿岩熔炉", + "block.mineralogy.diabase_brick_furnace": "辉绿岩砖熔炉", + "block.mineralogy.diabase_smooth_furnace": "磨制辉绿岩熔炉", + "block.mineralogy.diabase_smooth_brick_furnace": "磨制辉绿岩砖熔炉", "block.mineralogy.gabbro": "辉长岩", - "block.mineralogy.gabbro_stairs": "辉长岩 楼梯", - "block.mineralogy.gabbro_slab": "辉长岩 板", - "block.mineralogy.gabbro_brick": "辉长岩 砖", - "block.mineralogy.gabbro_brick_stairs": "辉长岩 砖楼梯", - "block.mineralogy.gabbro_brick_slab": "辉长岩 砖板", - "block.mineralogy.gabbro_smooth": "Polished 辉长岩", - "block.mineralogy.gabbro_smooth_stairs": "辉长岩 抛光楼梯", - "block.mineralogy.gabbro_smooth_slab": "辉长岩 抛光板", - "block.mineralogy.gabbro_smooth_brick": "辉长岩 抛光砖", - "block.mineralogy.gabbro_smooth_brick_stairs": "辉长岩 抛光砖楼梯", - "block.mineralogy.gabbro_smooth_brick_slab": "辉长岩 抛光砖板", - "block.mineralogy.gabbro_wall": "辉长岩 Wall", - "block.mineralogy.gabbro_brick_wall": "辉长岩 砖墙", - "block.mineralogy.gabbro_smooth_wall": "辉长岩 抛光墙", - "block.mineralogy.gabbro_smooth_brick_wall": "辉长岩 抛光砖墙", - "block.mineralogy.gabbro_furnace": "辉长岩 炉", - "block.mineralogy.gabbro_brick_furnace": "辉长岩 砖炉", - "block.mineralogy.gabbro_smooth_furnace": "辉长岩 抛光炉", - "block.mineralogy.gabbro_smooth_brick_furnace": "辉长岩 抛光砖炉", + "block.mineralogy.gabbro_stairs": "辉长岩楼梯", + "block.mineralogy.gabbro_slab": "辉长岩台阶", + "block.mineralogy.gabbro_brick": "辉长岩砖", + "block.mineralogy.gabbro_brick_stairs": "辉长岩砖楼梯", + "block.mineralogy.gabbro_brick_slab": "辉长岩砖台阶", + "block.mineralogy.gabbro_smooth": "磨制辉长岩", + "block.mineralogy.gabbro_smooth_stairs": "磨制辉长岩楼梯", + "block.mineralogy.gabbro_smooth_slab": "磨制辉长岩台阶", + "block.mineralogy.gabbro_smooth_brick": "磨制辉长岩砖", + "block.mineralogy.gabbro_smooth_brick_stairs": "磨制辉长岩砖楼梯", + "block.mineralogy.gabbro_smooth_brick_slab": "磨制辉长岩砖台阶", + "block.mineralogy.gabbro_wall": "辉长岩墙", + "block.mineralogy.gabbro_brick_wall": "辉长岩砖墙", + "block.mineralogy.gabbro_smooth_wall": "磨制辉长岩墙", + "block.mineralogy.gabbro_smooth_brick_wall": "磨制辉长岩砖墙", + "block.mineralogy.gabbro_furnace": "辉长岩熔炉", + "block.mineralogy.gabbro_brick_furnace": "辉长岩砖熔炉", + "block.mineralogy.gabbro_smooth_furnace": "磨制辉长岩熔炉", + "block.mineralogy.gabbro_smooth_brick_furnace": "磨制辉长岩砖熔炉", "block.mineralogy.peridotite": "橄榄岩", - "block.mineralogy.peridotite_stairs": "橄榄岩 楼梯", - "block.mineralogy.peridotite_slab": "橄榄岩 板", - "block.mineralogy.peridotite_brick": "橄榄岩 砖", - "block.mineralogy.peridotite_brick_stairs": "橄榄岩 砖楼梯", - "block.mineralogy.peridotite_brick_slab": "橄榄岩 砖板", - "block.mineralogy.peridotite_smooth": "Polished 橄榄岩", - "block.mineralogy.peridotite_smooth_stairs": "橄榄岩 抛光楼梯", - "block.mineralogy.peridotite_smooth_slab": "橄榄岩 抛光板", - "block.mineralogy.peridotite_smooth_brick": "橄榄岩 抛光砖", - "block.mineralogy.peridotite_smooth_brick_stairs": "橄榄岩 抛光砖楼梯", - "block.mineralogy.peridotite_smooth_brick_slab": "橄榄岩 抛光砖板", - "block.mineralogy.peridotite_wall": "橄榄岩 Wall", - "block.mineralogy.peridotite_brick_wall": "橄榄岩 砖墙", - "block.mineralogy.peridotite_smooth_wall": "橄榄岩 抛光墙", - "block.mineralogy.peridotite_smooth_brick_wall": "橄榄岩 抛光砖墙", - "block.mineralogy.peridotite_furnace": "橄榄岩 炉", - "block.mineralogy.peridotite_brick_furnace": "橄榄岩 砖炉", - "block.mineralogy.peridotite_smooth_furnace": "橄榄岩 抛光炉", - "block.mineralogy.peridotite_smooth_brick_furnace": "橄榄岩 抛光砖炉", - "block.mineralogy.basaltic_glass": "玄武玻璃", - "block.mineralogy.basaltic_glass_stairs": "玄武玻璃 楼梯", - "block.mineralogy.basaltic_glass_slab": "玄武玻璃 板", - "block.mineralogy.basaltic_glass_brick": "玄武玻璃 砖", - "block.mineralogy.basaltic_glass_brick_stairs": "玄武玻璃 砖楼梯", - "block.mineralogy.basaltic_glass_brick_slab": "玄武玻璃 砖板", - "block.mineralogy.basaltic_glass_smooth": "Polished 玄武玻璃", - "block.mineralogy.basaltic_glass_smooth_stairs": "玄武玻璃 抛光楼梯", - "block.mineralogy.basaltic_glass_smooth_slab": "玄武玻璃 抛光板", - "block.mineralogy.basaltic_glass_smooth_brick": "玄武玻璃 抛光砖", - "block.mineralogy.basaltic_glass_smooth_brick_stairs": "玄武玻璃 抛光砖楼梯", - "block.mineralogy.basaltic_glass_smooth_brick_slab": "玄武玻璃 抛光砖板", - "block.mineralogy.basaltic_glass_wall": "玄武玻璃 Wall", - "block.mineralogy.basaltic_glass_brick_wall": "玄武玻璃 砖墙", - "block.mineralogy.basaltic_glass_smooth_wall": "玄武玻璃 抛光墙", - "block.mineralogy.basaltic_glass_smooth_brick_wall": "玄武玻璃 抛光砖墙", - "block.mineralogy.basaltic_glass_furnace": "玄武玻璃 炉", - "block.mineralogy.basaltic_glass_brick_furnace": "玄武玻璃 砖炉", - "block.mineralogy.basaltic_glass_smooth_furnace": "玄武玻璃 抛光炉", - "block.mineralogy.basaltic_glass_smooth_brick_furnace": "玄武玻璃 抛光砖炉", - "block.mineralogy.scoria": "矿渣", - "block.mineralogy.scoria_stairs": "矿渣 楼梯", - "block.mineralogy.scoria_slab": "矿渣 板", - "block.mineralogy.scoria_brick": "矿渣 砖", - "block.mineralogy.scoria_brick_stairs": "矿渣 砖楼梯", - "block.mineralogy.scoria_brick_slab": "矿渣 砖板", - "block.mineralogy.scoria_smooth": "Polished 矿渣", - "block.mineralogy.scoria_smooth_stairs": "矿渣 抛光楼梯", - "block.mineralogy.scoria_smooth_slab": "矿渣 抛光板", - "block.mineralogy.scoria_smooth_brick": "矿渣 抛光砖", - "block.mineralogy.scoria_smooth_brick_stairs": "矿渣 抛光砖楼梯", - "block.mineralogy.scoria_smooth_brick_slab": "矿渣 抛光砖板", - "block.mineralogy.scoria_wall": "矿渣 Wall", - "block.mineralogy.scoria_brick_wall": "矿渣 砖墙", - "block.mineralogy.scoria_smooth_wall": "矿渣 抛光墙", - "block.mineralogy.scoria_smooth_brick_wall": "矿渣 抛光砖墙", - "block.mineralogy.scoria_furnace": "矿渣 炉", - "block.mineralogy.scoria_brick_furnace": "矿渣 砖炉", - "block.mineralogy.scoria_smooth_furnace": "矿渣 抛光炉", - "block.mineralogy.scoria_smooth_brick_furnace": "矿渣 抛光砖炉", + "block.mineralogy.peridotite_stairs": "橄榄岩楼梯", + "block.mineralogy.peridotite_slab": "橄榄岩台阶", + "block.mineralogy.peridotite_brick": "橄榄岩砖", + "block.mineralogy.peridotite_brick_stairs": "橄榄岩砖楼梯", + "block.mineralogy.peridotite_brick_slab": "橄榄岩砖台阶", + "block.mineralogy.peridotite_smooth": "磨制橄榄岩", + "block.mineralogy.peridotite_smooth_stairs": "磨制橄榄岩楼梯", + "block.mineralogy.peridotite_smooth_slab": "磨制橄榄岩台阶", + "block.mineralogy.peridotite_smooth_brick": "磨制橄榄岩砖", + "block.mineralogy.peridotite_smooth_brick_stairs": "磨制橄榄岩砖楼梯", + "block.mineralogy.peridotite_smooth_brick_slab": "磨制橄榄岩砖台阶", + "block.mineralogy.peridotite_wall": "橄榄岩墙", + "block.mineralogy.peridotite_brick_wall": "橄榄岩砖墙", + "block.mineralogy.peridotite_smooth_wall": "磨制橄榄岩墙", + "block.mineralogy.peridotite_smooth_brick_wall": "磨制橄榄岩砖墙", + "block.mineralogy.peridotite_furnace": "橄榄岩熔炉", + "block.mineralogy.peridotite_brick_furnace": "橄榄岩砖熔炉", + "block.mineralogy.peridotite_smooth_furnace": "磨制橄榄岩熔炉", + "block.mineralogy.peridotite_smooth_brick_furnace": "磨制橄榄岩砖熔炉", + "block.mineralogy.basaltic_glass": "玄武岩质玻璃", + "block.mineralogy.basaltic_glass_stairs": "玄武岩质玻璃楼梯", + "block.mineralogy.basaltic_glass_slab": "玄武岩质玻璃台阶", + "block.mineralogy.basaltic_glass_brick": "玄武岩质玻璃砖", + "block.mineralogy.basaltic_glass_brick_stairs": "玄武岩质玻璃砖楼梯", + "block.mineralogy.basaltic_glass_brick_slab": "玄武岩质玻璃砖台阶", + "block.mineralogy.basaltic_glass_smooth": "磨制玄武岩质玻璃", + "block.mineralogy.basaltic_glass_smooth_stairs": "磨制玄武岩质玻璃楼梯", + "block.mineralogy.basaltic_glass_smooth_slab": "磨制玄武岩质玻璃台阶", + "block.mineralogy.basaltic_glass_smooth_brick": "磨制玄武岩质玻璃砖", + "block.mineralogy.basaltic_glass_smooth_brick_stairs": "磨制玄武岩质玻璃砖楼梯", + "block.mineralogy.basaltic_glass_smooth_brick_slab": "磨制玄武岩质玻璃砖台阶", + "block.mineralogy.basaltic_glass_wall": "玄武岩质玻璃墙", + "block.mineralogy.basaltic_glass_brick_wall": "玄武岩质玻璃砖墙", + "block.mineralogy.basaltic_glass_smooth_wall": "磨制玄武岩质玻璃墙", + "block.mineralogy.basaltic_glass_smooth_brick_wall": "磨制玄武岩质玻璃砖墙", + "block.mineralogy.basaltic_glass_furnace": "玄武岩质玻璃熔炉", + "block.mineralogy.basaltic_glass_brick_furnace": "玄武岩质玻璃砖熔炉", + "block.mineralogy.basaltic_glass_smooth_furnace": "磨制玄武岩质玻璃熔炉", + "block.mineralogy.basaltic_glass_smooth_brick_furnace": "磨制玄武岩质玻璃砖熔炉", + "block.mineralogy.scoria": "火山渣", + "block.mineralogy.scoria_stairs": "火山渣楼梯", + "block.mineralogy.scoria_slab": "火山渣台阶", + "block.mineralogy.scoria_brick": "火山渣砖", + "block.mineralogy.scoria_brick_stairs": "火山渣砖楼梯", + "block.mineralogy.scoria_brick_slab": "火山渣砖台阶", + "block.mineralogy.scoria_smooth": "磨制火山渣", + "block.mineralogy.scoria_smooth_stairs": "磨制火山渣楼梯", + "block.mineralogy.scoria_smooth_slab": "磨制火山渣台阶", + "block.mineralogy.scoria_smooth_brick": "磨制火山渣砖", + "block.mineralogy.scoria_smooth_brick_stairs": "磨制火山渣砖楼梯", + "block.mineralogy.scoria_smooth_brick_slab": "磨制火山渣砖台阶", + "block.mineralogy.scoria_wall": "火山渣墙", + "block.mineralogy.scoria_brick_wall": "火山渣砖墙", + "block.mineralogy.scoria_smooth_wall": "磨制火山渣墙", + "block.mineralogy.scoria_smooth_brick_wall": "磨制火山渣砖墙", + "block.mineralogy.scoria_furnace": "火山渣熔炉", + "block.mineralogy.scoria_brick_furnace": "火山渣砖熔炉", + "block.mineralogy.scoria_smooth_furnace": "磨制火山渣熔炉", + "block.mineralogy.scoria_smooth_brick_furnace": "磨制火山渣砖熔炉", "block.mineralogy.tuff": "凝灰岩", - "block.mineralogy.tuff_stairs": "凝灰岩 楼梯", - "block.mineralogy.tuff_slab": "凝灰岩 板", - "block.mineralogy.tuff_brick": "凝灰岩 砖", - "block.mineralogy.tuff_brick_stairs": "凝灰岩 砖楼梯", - "block.mineralogy.tuff_brick_slab": "凝灰岩 砖板", - "block.mineralogy.tuff_smooth": "Polished 凝灰岩", - "block.mineralogy.tuff_smooth_stairs": "凝灰岩 抛光楼梯", - "block.mineralogy.tuff_smooth_slab": "凝灰岩 抛光板", - "block.mineralogy.tuff_smooth_brick": "凝灰岩 抛光砖", - "block.mineralogy.tuff_smooth_brick_stairs": "凝灰岩 抛光砖楼梯", - "block.mineralogy.tuff_smooth_brick_slab": "凝灰岩 抛光砖板", - "block.mineralogy.tuff_wall": "凝灰岩 Wall", - "block.mineralogy.tuff_brick_wall": "凝灰岩 砖墙", - "block.mineralogy.tuff_smooth_wall": "凝灰岩 抛光墙", - "block.mineralogy.tuff_smooth_brick_wall": "凝灰岩 抛光砖墙", - "block.mineralogy.tuff_furnace": "凝灰岩 炉", - "block.mineralogy.tuff_brick_furnace": "凝灰岩 砖炉", - "block.mineralogy.tuff_smooth_furnace": "凝灰岩 抛光炉", - "block.mineralogy.tuff_smooth_brick_furnace": "凝灰岩 抛光砖炉", + "block.mineralogy.tuff_stairs": "凝灰岩楼梯", + "block.mineralogy.tuff_slab": "凝灰岩台阶", + "block.mineralogy.tuff_brick": "凝灰岩砖", + "block.mineralogy.tuff_brick_stairs": "凝灰岩砖楼梯", + "block.mineralogy.tuff_brick_slab": "凝灰岩砖台阶", + "block.mineralogy.tuff_smooth": "磨制凝灰岩", + "block.mineralogy.tuff_smooth_stairs": "磨制凝灰岩楼梯", + "block.mineralogy.tuff_smooth_slab": "磨制凝灰岩台阶", + "block.mineralogy.tuff_smooth_brick": "磨制凝灰岩砖", + "block.mineralogy.tuff_smooth_brick_stairs": "磨制凝灰岩砖楼梯", + "block.mineralogy.tuff_smooth_brick_slab": "磨制凝灰岩砖台阶", + "block.mineralogy.tuff_wall": "凝灰岩墙", + "block.mineralogy.tuff_brick_wall": "凝灰岩砖墙", + "block.mineralogy.tuff_smooth_wall": "磨制凝灰岩墙", + "block.mineralogy.tuff_smooth_brick_wall": "磨制凝灰岩砖墙", + "block.mineralogy.tuff_furnace": "凝灰岩熔炉", + "block.mineralogy.tuff_brick_furnace": "凝灰岩砖熔炉", + "block.mineralogy.tuff_smooth_furnace": "磨制凝灰岩熔炉", + "block.mineralogy.tuff_smooth_brick_furnace": "磨制凝灰岩砖熔炉", "block.mineralogy.siltstone": "粉砂岩", - "block.mineralogy.siltstone_stairs": "粉砂岩 楼梯", - "block.mineralogy.siltstone_slab": "粉砂岩 板", - "block.mineralogy.siltstone_brick": "粉砂岩 砖", - "block.mineralogy.siltstone_brick_stairs": "粉砂岩 砖楼梯", - "block.mineralogy.siltstone_brick_slab": "粉砂岩 砖板", - "block.mineralogy.siltstone_smooth": "Polished 粉砂岩", - "block.mineralogy.siltstone_smooth_stairs": "粉砂岩 抛光楼梯", - "block.mineralogy.siltstone_smooth_slab": "粉砂岩 抛光板", - "block.mineralogy.siltstone_smooth_brick": "粉砂岩 抛光砖", - "block.mineralogy.siltstone_smooth_brick_stairs": "粉砂岩 抛光砖楼梯", - "block.mineralogy.siltstone_smooth_brick_slab": "粉砂岩 抛光砖板", - "block.mineralogy.siltstone_wall": "粉砂岩 Wall", - "block.mineralogy.siltstone_brick_wall": "粉砂岩 砖墙", - "block.mineralogy.siltstone_smooth_wall": "粉砂岩 抛光墙", - "block.mineralogy.siltstone_smooth_brick_wall": "粉砂岩 抛光砖墙", - "block.mineralogy.siltstone_furnace": "粉砂岩 炉", - "block.mineralogy.siltstone_brick_furnace": "粉砂岩 砖炉", - "block.mineralogy.siltstone_smooth_furnace": "粉砂岩 抛光炉", - "block.mineralogy.siltstone_smooth_brick_furnace": "粉砂岩 抛光砖炉", + "block.mineralogy.siltstone_stairs": "粉砂岩楼梯", + "block.mineralogy.siltstone_slab": "粉砂岩台阶", + "block.mineralogy.siltstone_brick": "粉砂岩砖", + "block.mineralogy.siltstone_brick_stairs": "粉砂岩砖楼梯", + "block.mineralogy.siltstone_brick_slab": "粉砂岩砖台阶", + "block.mineralogy.siltstone_smooth": "磨制粉砂岩", + "block.mineralogy.siltstone_smooth_stairs": "磨制粉砂岩楼梯", + "block.mineralogy.siltstone_smooth_slab": "磨制粉砂岩台阶", + "block.mineralogy.siltstone_smooth_brick": "磨制粉砂岩砖", + "block.mineralogy.siltstone_smooth_brick_stairs": "磨制粉砂岩砖楼梯", + "block.mineralogy.siltstone_smooth_brick_slab": "磨制粉砂岩砖台阶", + "block.mineralogy.siltstone_wall": "粉砂岩墙", + "block.mineralogy.siltstone_brick_wall": "粉砂岩砖墙", + "block.mineralogy.siltstone_smooth_wall": "磨制粉砂岩墙", + "block.mineralogy.siltstone_smooth_brick_wall": "磨制粉砂岩砖墙", + "block.mineralogy.siltstone_furnace": "粉砂岩熔炉", + "block.mineralogy.siltstone_brick_furnace": "粉砂岩砖熔炉", + "block.mineralogy.siltstone_smooth_furnace": "磨制粉砂岩熔炉", + "block.mineralogy.siltstone_smooth_brick_furnace": "磨制粉砂岩砖熔炉", "block.mineralogy.rock_salt": "岩盐", - "block.mineralogy.rock_salt_stairs": "岩盐 楼梯", - "block.mineralogy.rock_salt_slab": "岩盐 板", - "block.mineralogy.rock_salt_brick": "岩盐 砖", - "block.mineralogy.rock_salt_brick_stairs": "岩盐 砖楼梯", - "block.mineralogy.rock_salt_brick_slab": "岩盐 砖板", - "block.mineralogy.rock_salt_smooth": "Polished 岩盐", - "block.mineralogy.rock_salt_smooth_stairs": "岩盐 抛光楼梯", - "block.mineralogy.rock_salt_smooth_slab": "岩盐 抛光板", - "block.mineralogy.rock_salt_smooth_brick": "岩盐 抛光砖", - "block.mineralogy.rock_salt_smooth_brick_stairs": "岩盐 抛光砖楼梯", - "block.mineralogy.rock_salt_smooth_brick_slab": "岩盐 抛光砖板", - "block.mineralogy.rock_salt_wall": "岩盐 Wall", - "block.mineralogy.rock_salt_brick_wall": "岩盐 砖墙", - "block.mineralogy.rock_salt_smooth_wall": "岩盐 抛光墙", - "block.mineralogy.rock_salt_smooth_brick_wall": "岩盐 抛光砖墙", - "block.mineralogy.rock_salt_furnace": "岩盐 炉", - "block.mineralogy.rock_salt_brick_furnace": "岩盐 砖炉", - "block.mineralogy.rock_salt_smooth_furnace": "岩盐 抛光炉", - "block.mineralogy.rock_salt_smooth_brick_furnace": "岩盐 抛光砖炉", + "block.mineralogy.rock_salt_stairs": "岩盐楼梯", + "block.mineralogy.rock_salt_slab": "岩盐台阶", + "block.mineralogy.rock_salt_brick": "岩盐砖", + "block.mineralogy.rock_salt_brick_stairs": "岩盐砖楼梯", + "block.mineralogy.rock_salt_brick_slab": "岩盐砖台阶", + "block.mineralogy.rock_salt_smooth": "磨制岩盐", + "block.mineralogy.rock_salt_smooth_stairs": "磨制岩盐楼梯", + "block.mineralogy.rock_salt_smooth_slab": "磨制岩盐台阶", + "block.mineralogy.rock_salt_smooth_brick": "磨制岩盐砖", + "block.mineralogy.rock_salt_smooth_brick_stairs": "磨制岩盐砖楼梯", + "block.mineralogy.rock_salt_smooth_brick_slab": "磨制岩盐砖台阶", + "block.mineralogy.rock_salt_wall": "岩盐墙", + "block.mineralogy.rock_salt_brick_wall": "岩盐砖墙", + "block.mineralogy.rock_salt_smooth_wall": "磨制岩盐墙", + "block.mineralogy.rock_salt_smooth_brick_wall": "磨制岩盐砖墙", + "block.mineralogy.rock_salt_furnace": "岩盐熔炉", + "block.mineralogy.rock_salt_brick_furnace": "岩盐砖熔炉", + "block.mineralogy.rock_salt_smooth_furnace": "磨制岩盐熔炉", + "block.mineralogy.rock_salt_smooth_brick_furnace": "磨制岩盐砖熔炉", "block.mineralogy.hornfels": "角岩", - "block.mineralogy.hornfels_stairs": "角岩 楼梯", - "block.mineralogy.hornfels_slab": "角岩 板", - "block.mineralogy.hornfels_brick": "角岩 砖", - "block.mineralogy.hornfels_brick_stairs": "角岩 砖楼梯", - "block.mineralogy.hornfels_brick_slab": "角岩 砖板", - "block.mineralogy.hornfels_smooth": "Polished 角岩", - "block.mineralogy.hornfels_smooth_stairs": "角岩 抛光楼梯", - "block.mineralogy.hornfels_smooth_slab": "角岩 抛光板", - "block.mineralogy.hornfels_smooth_brick": "角岩 抛光砖", - "block.mineralogy.hornfels_smooth_brick_stairs": "角岩 抛光砖楼梯", - "block.mineralogy.hornfels_smooth_brick_slab": "角岩 抛光砖板", - "block.mineralogy.hornfels_wall": "角岩 Wall", - "block.mineralogy.hornfels_brick_wall": "角岩 砖墙", - "block.mineralogy.hornfels_smooth_wall": "角岩 抛光墙", - "block.mineralogy.hornfels_smooth_brick_wall": "角岩 抛光砖墙", - "block.mineralogy.hornfels_furnace": "角岩 炉", - "block.mineralogy.hornfels_brick_furnace": "角岩 砖炉", - "block.mineralogy.hornfels_smooth_furnace": "角岩 抛光炉", - "block.mineralogy.hornfels_smooth_brick_furnace": "角岩 抛光砖炉", + "block.mineralogy.hornfels_stairs": "角岩楼梯", + "block.mineralogy.hornfels_slab": "角岩台阶", + "block.mineralogy.hornfels_brick": "角岩砖", + "block.mineralogy.hornfels_brick_stairs": "角岩砖楼梯", + "block.mineralogy.hornfels_brick_slab": "角岩砖台阶", + "block.mineralogy.hornfels_smooth": "磨制角岩", + "block.mineralogy.hornfels_smooth_stairs": "磨制角岩楼梯", + "block.mineralogy.hornfels_smooth_slab": "磨制角岩台阶", + "block.mineralogy.hornfels_smooth_brick": "磨制角岩砖", + "block.mineralogy.hornfels_smooth_brick_stairs": "磨制角岩砖楼梯", + "block.mineralogy.hornfels_smooth_brick_slab": "磨制角岩砖台阶", + "block.mineralogy.hornfels_wall": "角岩墙", + "block.mineralogy.hornfels_brick_wall": "角岩砖墙", + "block.mineralogy.hornfels_smooth_wall": "磨制角岩墙", + "block.mineralogy.hornfels_smooth_brick_wall": "磨制角岩砖墙", + "block.mineralogy.hornfels_furnace": "角岩熔炉", + "block.mineralogy.hornfels_brick_furnace": "角岩砖熔炉", + "block.mineralogy.hornfels_smooth_furnace": "磨制角岩熔炉", + "block.mineralogy.hornfels_smooth_brick_furnace": "磨制角岩砖熔炉", "block.mineralogy.quartzite": "石英岩", - "block.mineralogy.quartzite_stairs": "石英岩 楼梯", - "block.mineralogy.quartzite_slab": "石英岩 板", - "block.mineralogy.quartzite_brick": "石英岩 砖", - "block.mineralogy.quartzite_brick_stairs": "石英岩 砖楼梯", - "block.mineralogy.quartzite_brick_slab": "石英岩 砖板", - "block.mineralogy.quartzite_smooth": "Polished 石英岩", - "block.mineralogy.quartzite_smooth_stairs": "石英岩 抛光楼梯", - "block.mineralogy.quartzite_smooth_slab": "石英岩 抛光板", - "block.mineralogy.quartzite_smooth_brick": "石英岩 抛光砖", - "block.mineralogy.quartzite_smooth_brick_stairs": "石英岩 抛光砖楼梯", - "block.mineralogy.quartzite_smooth_brick_slab": "石英岩 抛光砖板", - "block.mineralogy.quartzite_wall": "石英岩 Wall", - "block.mineralogy.quartzite_brick_wall": "石英岩 砖墙", - "block.mineralogy.quartzite_smooth_wall": "石英岩 抛光墙", - "block.mineralogy.quartzite_smooth_brick_wall": "石英岩 抛光砖墙", - "block.mineralogy.quartzite_furnace": "石英岩 炉", - "block.mineralogy.quartzite_brick_furnace": "石英岩 砖炉", - "block.mineralogy.quartzite_smooth_furnace": "石英岩 抛光炉", - "block.mineralogy.quartzite_smooth_brick_furnace": "石英岩 抛光砖炉", + "block.mineralogy.quartzite_stairs": "石英岩楼梯", + "block.mineralogy.quartzite_slab": "石英岩台阶", + "block.mineralogy.quartzite_brick": "石英岩砖", + "block.mineralogy.quartzite_brick_stairs": "石英岩砖楼梯", + "block.mineralogy.quartzite_brick_slab": "石英岩砖台阶", + "block.mineralogy.quartzite_smooth": "磨制石英岩", + "block.mineralogy.quartzite_smooth_stairs": "磨制石英岩楼梯", + "block.mineralogy.quartzite_smooth_slab": "磨制石英岩台阶", + "block.mineralogy.quartzite_smooth_brick": "磨制石英岩砖", + "block.mineralogy.quartzite_smooth_brick_stairs": "磨制石英岩砖楼梯", + "block.mineralogy.quartzite_smooth_brick_slab": "磨制石英岩砖台阶", + "block.mineralogy.quartzite_wall": "石英岩墙", + "block.mineralogy.quartzite_brick_wall": "石英岩砖墙", + "block.mineralogy.quartzite_smooth_wall": "磨制石英岩墙", + "block.mineralogy.quartzite_smooth_brick_wall": "磨制石英岩砖墙", + "block.mineralogy.quartzite_furnace": "石英岩熔炉", + "block.mineralogy.quartzite_brick_furnace": "石英岩砖熔炉", + "block.mineralogy.quartzite_smooth_furnace": "磨制石英岩熔炉", + "block.mineralogy.quartzite_smooth_brick_furnace": "磨制石英岩砖熔炉", "block.mineralogy.novaculite": "均密石英岩", - "block.mineralogy.novaculite_stairs": "均密石英岩 楼梯", - "block.mineralogy.novaculite_slab": "均密石英岩 板", - "block.mineralogy.novaculite_brick": "均密石英岩 砖", - "block.mineralogy.novaculite_brick_stairs": "均密石英岩 砖楼梯", - "block.mineralogy.novaculite_brick_slab": "均密石英岩 砖板", - "block.mineralogy.novaculite_smooth": "Polished 均密石英岩", - "block.mineralogy.novaculite_smooth_stairs": "均密石英岩 抛光楼梯", - "block.mineralogy.novaculite_smooth_slab": "均密石英岩 抛光板", - "block.mineralogy.novaculite_smooth_brick": "均密石英岩 抛光砖", - "block.mineralogy.novaculite_smooth_brick_stairs": "均密石英岩 抛光砖楼梯", - "block.mineralogy.novaculite_smooth_brick_slab": "均密石英岩 抛光砖板", - "block.mineralogy.novaculite_wall": "均密石英岩 Wall", - "block.mineralogy.novaculite_brick_wall": "均密石英岩 砖墙", - "block.mineralogy.novaculite_smooth_wall": "均密石英岩 抛光墙", - "block.mineralogy.novaculite_smooth_brick_wall": "均密石英岩 抛光砖墙", - "block.mineralogy.novaculite_furnace": "均密石英岩 炉", - "block.mineralogy.novaculite_brick_furnace": "均密石英岩 砖炉", - "block.mineralogy.novaculite_smooth_furnace": "均密石英岩 抛光炉", - "block.mineralogy.novaculite_smooth_brick_furnace": "均密石英岩 抛光砖炉", - "block.mineralogy.chalk": "粉笔", - "item.mineralogy.chalk_dust": "粉笔粉", + "block.mineralogy.novaculite_stairs": "均密石英岩楼梯", + "block.mineralogy.novaculite_slab": "均密石英岩台阶", + "block.mineralogy.novaculite_brick": "均密石英岩砖", + "block.mineralogy.novaculite_brick_stairs": "均密石英岩砖楼梯", + "block.mineralogy.novaculite_brick_slab": "均密石英岩砖台阶", + "block.mineralogy.novaculite_smooth": "磨制均密石英岩", + "block.mineralogy.novaculite_smooth_stairs": "磨制均密石英岩楼梯", + "block.mineralogy.novaculite_smooth_slab": "磨制均密石英岩台阶", + "block.mineralogy.novaculite_smooth_brick": "磨制均密石英岩砖", + "block.mineralogy.novaculite_smooth_brick_stairs": "磨制均密石英岩砖楼梯", + "block.mineralogy.novaculite_smooth_brick_slab": "磨制均密石英岩砖台阶", + "block.mineralogy.novaculite_wall": "均密石英岩墙", + "block.mineralogy.novaculite_brick_wall": "均密石英岩砖墙", + "block.mineralogy.novaculite_smooth_wall": "磨制均密石英岩墙", + "block.mineralogy.novaculite_smooth_brick_wall": "磨制均密石英岩砖墙", + "block.mineralogy.novaculite_furnace": "均密石英岩熔炉", + "block.mineralogy.novaculite_brick_furnace": "均密石英岩砖熔炉", + "block.mineralogy.novaculite_smooth_furnace": "磨制均密石英岩熔炉", + "block.mineralogy.novaculite_smooth_brick_furnace": "磨制均密石英岩砖熔炉", + "block.mineralogy.chalk": "白垩", + "item.mineralogy.chalk_dust": "白垩粉", "item.mineralogy.salt_dust": "盐", "item.mineralogy.rock_salt_dust": "岩盐晶体", "block.mineralogy.rocksaltlamp": "岩盐灯", "block.mineralogy.rocksaltstreetlamp": "岩盐路灯", - "block.mineralogy.andesite_relief_axe": "安山岩 斧头救济", - "block.mineralogy.andesite_relief_blank": "安山岩 空白的救济", - "block.mineralogy.andesite_relief_cross": "安山岩 交叉救济", - "block.mineralogy.andesite_relief_hammer": "安山岩 锤子救济", - "block.mineralogy.andesite_relief_hoe": "安山岩 锄头救济", - "block.mineralogy.andesite_relief_horizontal": "安山岩 水平救济", - "block.mineralogy.andesite_relief_i": "安山岩 I 浮雕", - "block.mineralogy.andesite_relief_left": "安山岩 左救济", - "block.mineralogy.andesite_relief_pickaxe": "安山岩 镐救济", - "block.mineralogy.andesite_relief_plus": "安山岩 加上救济", - "block.mineralogy.andesite_relief_right": "安山岩 正确的救济", - "block.mineralogy.andesite_relief_sword": "安山岩 剑救济", - "block.mineralogy.andesite_relief_vertical": "安山岩 垂直救济", - "block.mineralogy.basalt_relief_axe": "玄武岩 斧头救济", - "block.mineralogy.basalt_relief_blank": "玄武岩 空白的救济", - "block.mineralogy.basalt_relief_cross": "玄武岩 交叉救济", - "block.mineralogy.basalt_relief_hammer": "玄武岩 锤子救济", - "block.mineralogy.basalt_relief_hoe": "玄武岩 锄头救济", - "block.mineralogy.basalt_relief_horizontal": "玄武岩 水平救济", - "block.mineralogy.basalt_relief_i": "玄武岩 I 浮雕", - "block.mineralogy.basalt_relief_left": "玄武岩 左救济", - "block.mineralogy.basalt_relief_pickaxe": "玄武岩 镐救济", - "block.mineralogy.basalt_relief_plus": "玄武岩 加上救济", - "block.mineralogy.basalt_relief_right": "玄武岩 正确的救济", - "block.mineralogy.basalt_relief_sword": "玄武岩 剑救济", - "block.mineralogy.basalt_relief_vertical": "玄武岩 垂直救济", - "block.mineralogy.diorite_relief_axe": "闪长岩 斧头救济", - "block.mineralogy.diorite_relief_blank": "闪长岩 空白的救济", - "block.mineralogy.diorite_relief_cross": "闪长岩 交叉救济", - "block.mineralogy.diorite_relief_hammer": "闪长岩 锤子救济", - "block.mineralogy.diorite_relief_hoe": "闪长岩 锄头救济", - "block.mineralogy.diorite_relief_horizontal": "闪长岩 水平救济", - "block.mineralogy.diorite_relief_i": "闪长岩 I 浮雕", - "block.mineralogy.diorite_relief_left": "闪长岩 左救济", - "block.mineralogy.diorite_relief_pickaxe": "闪长岩 镐救济", - "block.mineralogy.diorite_relief_plus": "闪长岩 加上救济", - "block.mineralogy.diorite_relief_right": "闪长岩 正确的救济", - "block.mineralogy.diorite_relief_sword": "闪长岩 剑救济", - "block.mineralogy.diorite_relief_vertical": "闪长岩 垂直救济", - "block.mineralogy.granite_relief_axe": "花岗岩 斧头救济", - "block.mineralogy.granite_relief_blank": "花岗岩 空白的救济", - "block.mineralogy.granite_relief_cross": "花岗岩 交叉救济", - "block.mineralogy.granite_relief_hammer": "花岗岩 锤子救济", - "block.mineralogy.granite_relief_hoe": "花岗岩 锄头救济", - "block.mineralogy.granite_relief_horizontal": "花岗岩 水平救济", - "block.mineralogy.granite_relief_i": "花岗岩 I 浮雕", - "block.mineralogy.granite_relief_left": "花岗岩 左救济", - "block.mineralogy.granite_relief_pickaxe": "花岗岩 镐救济", - "block.mineralogy.granite_relief_plus": "花岗岩 加上救济", - "block.mineralogy.granite_relief_right": "花岗岩 正确的救济", - "block.mineralogy.granite_relief_sword": "花岗岩 剑救济", - "block.mineralogy.granite_relief_vertical": "花岗岩 垂直救济", - "block.mineralogy.rhyolite_relief_axe": "流纹岩 斧头救济", - "block.mineralogy.rhyolite_relief_blank": "流纹岩 空白的救济", - "block.mineralogy.rhyolite_relief_cross": "流纹岩 交叉救济", - "block.mineralogy.rhyolite_relief_hammer": "流纹岩 锤子救济", - "block.mineralogy.rhyolite_relief_hoe": "流纹岩 锄头救济", - "block.mineralogy.rhyolite_relief_horizontal": "流纹岩 水平救济", - "block.mineralogy.rhyolite_relief_i": "流纹岩 I 浮雕", - "block.mineralogy.rhyolite_relief_left": "流纹岩 左救济", - "block.mineralogy.rhyolite_relief_pickaxe": "流纹岩 镐救济", - "block.mineralogy.rhyolite_relief_plus": "流纹岩 加上救济", - "block.mineralogy.rhyolite_relief_right": "流纹岩 正确的救济", - "block.mineralogy.rhyolite_relief_sword": "流纹岩 剑救济", - "block.mineralogy.rhyolite_relief_vertical": "流纹岩 垂直救济", - "block.mineralogy.pegmatite_relief_axe": "伟晶岩 斧头救济", - "block.mineralogy.pegmatite_relief_blank": "伟晶岩 空白的救济", - "block.mineralogy.pegmatite_relief_cross": "伟晶岩 交叉救济", - "block.mineralogy.pegmatite_relief_hammer": "伟晶岩 锤子救济", - "block.mineralogy.pegmatite_relief_hoe": "伟晶岩 锄头救济", - "block.mineralogy.pegmatite_relief_horizontal": "伟晶岩 水平救济", - "block.mineralogy.pegmatite_relief_i": "伟晶岩 I 浮雕", - "block.mineralogy.pegmatite_relief_left": "伟晶岩 左救济", - "block.mineralogy.pegmatite_relief_pickaxe": "伟晶岩 镐救济", - "block.mineralogy.pegmatite_relief_plus": "伟晶岩 加上救济", - "block.mineralogy.pegmatite_relief_right": "伟晶岩 正确的救济", - "block.mineralogy.pegmatite_relief_sword": "伟晶岩 剑救济", - "block.mineralogy.pegmatite_relief_vertical": "伟晶岩 垂直救济", - "block.mineralogy.shale_relief_axe": "页岩 斧头救济", - "block.mineralogy.shale_relief_blank": "页岩 空白的救济", - "block.mineralogy.shale_relief_cross": "页岩 交叉救济", - "block.mineralogy.shale_relief_hammer": "页岩 锤子救济", - "block.mineralogy.shale_relief_hoe": "页岩 锄头救济", - "block.mineralogy.shale_relief_horizontal": "页岩 水平救济", - "block.mineralogy.shale_relief_i": "页岩 I 浮雕", - "block.mineralogy.shale_relief_left": "页岩 左救济", - "block.mineralogy.shale_relief_pickaxe": "页岩 镐救济", - "block.mineralogy.shale_relief_plus": "页岩 加上救济", - "block.mineralogy.shale_relief_right": "页岩 正确的救济", - "block.mineralogy.shale_relief_sword": "页岩 剑救济", - "block.mineralogy.shale_relief_vertical": "页岩 垂直救济", - "block.mineralogy.conglomerate_relief_axe": "砾岩 斧头救济", - "block.mineralogy.conglomerate_relief_blank": "砾岩 空白的救济", - "block.mineralogy.conglomerate_relief_cross": "砾岩 交叉救济", - "block.mineralogy.conglomerate_relief_hammer": "砾岩 锤子救济", - "block.mineralogy.conglomerate_relief_hoe": "砾岩 锄头救济", - "block.mineralogy.conglomerate_relief_horizontal": "砾岩 水平救济", - "block.mineralogy.conglomerate_relief_i": "砾岩 I 浮雕", - "block.mineralogy.conglomerate_relief_left": "砾岩 左救济", - "block.mineralogy.conglomerate_relief_pickaxe": "砾岩 镐救济", - "block.mineralogy.conglomerate_relief_plus": "砾岩 加上救济", - "block.mineralogy.conglomerate_relief_right": "砾岩 正确的救济", - "block.mineralogy.conglomerate_relief_sword": "砾岩 剑救济", - "block.mineralogy.conglomerate_relief_vertical": "砾岩 垂直救济", - "block.mineralogy.dolomite_relief_axe": "白云石 斧头救济", - "block.mineralogy.dolomite_relief_blank": "白云石 空白的救济", - "block.mineralogy.dolomite_relief_cross": "白云石 交叉救济", - "block.mineralogy.dolomite_relief_hammer": "白云石 锤子救济", - "block.mineralogy.dolomite_relief_hoe": "白云石 锄头救济", - "block.mineralogy.dolomite_relief_horizontal": "白云石 水平救济", - "block.mineralogy.dolomite_relief_i": "白云石 I 浮雕", - "block.mineralogy.dolomite_relief_left": "白云石 左救济", - "block.mineralogy.dolomite_relief_pickaxe": "白云石 镐救济", - "block.mineralogy.dolomite_relief_plus": "白云石 加上救济", - "block.mineralogy.dolomite_relief_right": "白云石 正确的救济", - "block.mineralogy.dolomite_relief_sword": "白云石 剑救济", - "block.mineralogy.dolomite_relief_vertical": "白云石 垂直救济", - "block.mineralogy.limestone_relief_axe": "石灰石 斧头救济", - "block.mineralogy.limestone_relief_blank": "石灰石 空白的救济", - "block.mineralogy.limestone_relief_cross": "石灰石 交叉救济", - "block.mineralogy.limestone_relief_hammer": "石灰石 锤子救济", - "block.mineralogy.limestone_relief_hoe": "石灰石 锄头救济", - "block.mineralogy.limestone_relief_horizontal": "石灰石 水平救济", - "block.mineralogy.limestone_relief_i": "石灰石 I 浮雕", - "block.mineralogy.limestone_relief_left": "石灰石 左救济", - "block.mineralogy.limestone_relief_pickaxe": "石灰石 镐救济", - "block.mineralogy.limestone_relief_plus": "石灰石 加上救济", - "block.mineralogy.limestone_relief_right": "石灰石 正确的救济", - "block.mineralogy.limestone_relief_sword": "石灰石 剑救济", - "block.mineralogy.limestone_relief_vertical": "石灰石 垂直救济", - "block.mineralogy.marble_relief_axe": "大理石 斧头救济", - "block.mineralogy.marble_relief_blank": "大理石 空白的救济", - "block.mineralogy.marble_relief_cross": "大理石 交叉救济", - "block.mineralogy.marble_relief_hammer": "大理石 锤子救济", - "block.mineralogy.marble_relief_hoe": "大理石 锄头救济", - "block.mineralogy.marble_relief_horizontal": "大理石 水平救济", - "block.mineralogy.marble_relief_i": "大理石 I 浮雕", - "block.mineralogy.marble_relief_left": "大理石 左救济", - "block.mineralogy.marble_relief_pickaxe": "大理石 镐救济", - "block.mineralogy.marble_relief_plus": "大理石 加上救济", - "block.mineralogy.marble_relief_right": "大理石 正确的救济", - "block.mineralogy.marble_relief_sword": "大理石 剑救济", - "block.mineralogy.marble_relief_vertical": "大理石 垂直救济", - "block.mineralogy.slate_relief_axe": "石板 斧头救济", - "block.mineralogy.slate_relief_blank": "石板 空白的救济", - "block.mineralogy.slate_relief_cross": "石板 交叉救济", - "block.mineralogy.slate_relief_hammer": "石板 锤子救济", - "block.mineralogy.slate_relief_hoe": "石板 锄头救济", - "block.mineralogy.slate_relief_horizontal": "石板 水平救济", - "block.mineralogy.slate_relief_i": "石板 I 浮雕", - "block.mineralogy.slate_relief_left": "石板 左救济", - "block.mineralogy.slate_relief_pickaxe": "石板 镐救济", - "block.mineralogy.slate_relief_plus": "石板 加上救济", - "block.mineralogy.slate_relief_right": "石板 正确的救济", - "block.mineralogy.slate_relief_sword": "石板 剑救济", - "block.mineralogy.slate_relief_vertical": "石板 垂直救济", - "block.mineralogy.schist_relief_axe": "片岩 斧头救济", - "block.mineralogy.schist_relief_blank": "片岩 空白的救济", - "block.mineralogy.schist_relief_cross": "片岩 交叉救济", - "block.mineralogy.schist_relief_hammer": "片岩 锤子救济", - "block.mineralogy.schist_relief_hoe": "片岩 锄头救济", - "block.mineralogy.schist_relief_horizontal": "片岩 水平救济", - "block.mineralogy.schist_relief_i": "片岩 I 浮雕", - "block.mineralogy.schist_relief_left": "片岩 左救济", - "block.mineralogy.schist_relief_pickaxe": "片岩 镐救济", - "block.mineralogy.schist_relief_plus": "片岩 加上救济", - "block.mineralogy.schist_relief_right": "片岩 正确的救济", - "block.mineralogy.schist_relief_sword": "片岩 剑救济", - "block.mineralogy.schist_relief_vertical": "片岩 垂直救济", - "block.mineralogy.gneiss_relief_axe": "片麻岩 斧头救济", - "block.mineralogy.gneiss_relief_blank": "片麻岩 空白的救济", - "block.mineralogy.gneiss_relief_cross": "片麻岩 交叉救济", - "block.mineralogy.gneiss_relief_hammer": "片麻岩 锤子救济", - "block.mineralogy.gneiss_relief_hoe": "片麻岩 锄头救济", - "block.mineralogy.gneiss_relief_horizontal": "片麻岩 水平救济", - "block.mineralogy.gneiss_relief_i": "片麻岩 I 浮雕", - "block.mineralogy.gneiss_relief_left": "片麻岩 左救济", - "block.mineralogy.gneiss_relief_pickaxe": "片麻岩 镐救济", - "block.mineralogy.gneiss_relief_plus": "片麻岩 加上救济", - "block.mineralogy.gneiss_relief_right": "片麻岩 正确的救济", - "block.mineralogy.gneiss_relief_sword": "片麻岩 剑救济", - "block.mineralogy.gneiss_relief_vertical": "片麻岩 垂直救济", - "block.mineralogy.phyllite_relief_axe": "千枚岩 斧头救济", - "block.mineralogy.phyllite_relief_blank": "千枚岩 空白的救济", - "block.mineralogy.phyllite_relief_cross": "千枚岩 交叉救济", - "block.mineralogy.phyllite_relief_hammer": "千枚岩 锤子救济", - "block.mineralogy.phyllite_relief_hoe": "千枚岩 锄头救济", - "block.mineralogy.phyllite_relief_horizontal": "千枚岩 水平救济", - "block.mineralogy.phyllite_relief_i": "千枚岩 I 浮雕", - "block.mineralogy.phyllite_relief_left": "千枚岩 左救济", - "block.mineralogy.phyllite_relief_pickaxe": "千枚岩 镐救济", - "block.mineralogy.phyllite_relief_plus": "千枚岩 加上救济", - "block.mineralogy.phyllite_relief_right": "千枚岩 正确的救济", - "block.mineralogy.phyllite_relief_sword": "千枚岩 剑救济", - "block.mineralogy.phyllite_relief_vertical": "千枚岩 垂直救济", - "block.mineralogy.amphibolite_relief_axe": "闪岩 斧头救济", - "block.mineralogy.amphibolite_relief_blank": "闪岩 空白的救济", - "block.mineralogy.amphibolite_relief_cross": "闪岩 交叉救济", - "block.mineralogy.amphibolite_relief_hammer": "闪岩 锤子救济", - "block.mineralogy.amphibolite_relief_hoe": "闪岩 锄头救济", - "block.mineralogy.amphibolite_relief_horizontal": "闪岩 水平救济", - "block.mineralogy.amphibolite_relief_i": "闪岩 I 浮雕", - "block.mineralogy.amphibolite_relief_left": "闪岩 左救济", - "block.mineralogy.amphibolite_relief_pickaxe": "闪岩 镐救济", - "block.mineralogy.amphibolite_relief_plus": "闪岩 加上救济", - "block.mineralogy.amphibolite_relief_right": "闪岩 正确的救济", - "block.mineralogy.amphibolite_relief_sword": "闪岩 剑救济", - "block.mineralogy.amphibolite_relief_vertical": "闪岩 垂直救济", - "block.mineralogy.diabase_relief_axe": "辉绿岩 斧头救济", - "block.mineralogy.diabase_relief_blank": "辉绿岩 空白的救济", - "block.mineralogy.diabase_relief_cross": "辉绿岩 交叉救济", - "block.mineralogy.diabase_relief_hammer": "辉绿岩 锤子救济", - "block.mineralogy.diabase_relief_hoe": "辉绿岩 锄头救济", - "block.mineralogy.diabase_relief_horizontal": "辉绿岩 水平救济", - "block.mineralogy.diabase_relief_i": "辉绿岩 I 浮雕", - "block.mineralogy.diabase_relief_left": "辉绿岩 左救济", - "block.mineralogy.diabase_relief_pickaxe": "辉绿岩 镐救济", - "block.mineralogy.diabase_relief_plus": "辉绿岩 加上救济", - "block.mineralogy.diabase_relief_right": "辉绿岩 正确的救济", - "block.mineralogy.diabase_relief_sword": "辉绿岩 剑救济", - "block.mineralogy.diabase_relief_vertical": "辉绿岩 垂直救济", - "block.mineralogy.gabbro_relief_axe": "辉长岩 斧头救济", - "block.mineralogy.gabbro_relief_blank": "辉长岩 空白的救济", - "block.mineralogy.gabbro_relief_cross": "辉长岩 交叉救济", - "block.mineralogy.gabbro_relief_hammer": "辉长岩 锤子救济", - "block.mineralogy.gabbro_relief_hoe": "辉长岩 锄头救济", - "block.mineralogy.gabbro_relief_horizontal": "辉长岩 水平救济", - "block.mineralogy.gabbro_relief_i": "辉长岩 I 浮雕", - "block.mineralogy.gabbro_relief_left": "辉长岩 左救济", - "block.mineralogy.gabbro_relief_pickaxe": "辉长岩 镐救济", - "block.mineralogy.gabbro_relief_plus": "辉长岩 加上救济", - "block.mineralogy.gabbro_relief_right": "辉长岩 正确的救济", - "block.mineralogy.gabbro_relief_sword": "辉长岩 剑救济", - "block.mineralogy.gabbro_relief_vertical": "辉长岩 垂直救济", - "block.mineralogy.peridotite_relief_axe": "橄榄岩 斧头救济", - "block.mineralogy.peridotite_relief_blank": "橄榄岩 空白的救济", - "block.mineralogy.peridotite_relief_cross": "橄榄岩 交叉救济", - "block.mineralogy.peridotite_relief_hammer": "橄榄岩 锤子救济", - "block.mineralogy.peridotite_relief_hoe": "橄榄岩 锄头救济", - "block.mineralogy.peridotite_relief_horizontal": "橄榄岩 水平救济", - "block.mineralogy.peridotite_relief_i": "橄榄岩 I 浮雕", - "block.mineralogy.peridotite_relief_left": "橄榄岩 左救济", - "block.mineralogy.peridotite_relief_pickaxe": "橄榄岩 镐救济", - "block.mineralogy.peridotite_relief_plus": "橄榄岩 加上救济", - "block.mineralogy.peridotite_relief_right": "橄榄岩 正确的救济", - "block.mineralogy.peridotite_relief_sword": "橄榄岩 剑救济", - "block.mineralogy.peridotite_relief_vertical": "橄榄岩 垂直救济", - "block.mineralogy.basaltic_glass_relief_axe": "玄武玻璃 斧头救济", - "block.mineralogy.basaltic_glass_relief_blank": "玄武玻璃 空白的救济", - "block.mineralogy.basaltic_glass_relief_cross": "玄武玻璃 交叉救济", - "block.mineralogy.basaltic_glass_relief_hammer": "玄武玻璃 锤子救济", - "block.mineralogy.basaltic_glass_relief_hoe": "玄武玻璃 锄头救济", - "block.mineralogy.basaltic_glass_relief_horizontal": "玄武玻璃 水平救济", - "block.mineralogy.basaltic_glass_relief_i": "玄武玻璃 I 浮雕", - "block.mineralogy.basaltic_glass_relief_left": "玄武玻璃 左救济", - "block.mineralogy.basaltic_glass_relief_pickaxe": "玄武玻璃 镐救济", - "block.mineralogy.basaltic_glass_relief_plus": "玄武玻璃 加上救济", - "block.mineralogy.basaltic_glass_relief_right": "玄武玻璃 正确的救济", - "block.mineralogy.basaltic_glass_relief_sword": "玄武玻璃 剑救济", - "block.mineralogy.basaltic_glass_relief_vertical": "玄武玻璃 垂直救济", - "block.mineralogy.scoria_relief_axe": "矿渣 斧头救济", - "block.mineralogy.scoria_relief_blank": "矿渣 空白的救济", - "block.mineralogy.scoria_relief_cross": "矿渣 交叉救济", - "block.mineralogy.scoria_relief_hammer": "矿渣 锤子救济", - "block.mineralogy.scoria_relief_hoe": "矿渣 锄头救济", - "block.mineralogy.scoria_relief_horizontal": "矿渣 水平救济", - "block.mineralogy.scoria_relief_i": "矿渣 I 浮雕", - "block.mineralogy.scoria_relief_left": "矿渣 左救济", - "block.mineralogy.scoria_relief_pickaxe": "矿渣 镐救济", - "block.mineralogy.scoria_relief_plus": "矿渣 加上救济", - "block.mineralogy.scoria_relief_right": "矿渣 正确的救济", - "block.mineralogy.scoria_relief_sword": "矿渣 剑救济", - "block.mineralogy.scoria_relief_vertical": "矿渣 垂直救济", - "block.mineralogy.tuff_relief_axe": "凝灰岩 斧头救济", - "block.mineralogy.tuff_relief_blank": "凝灰岩 空白的救济", - "block.mineralogy.tuff_relief_cross": "凝灰岩 交叉救济", - "block.mineralogy.tuff_relief_hammer": "凝灰岩 锤子救济", - "block.mineralogy.tuff_relief_hoe": "凝灰岩 锄头救济", - "block.mineralogy.tuff_relief_horizontal": "凝灰岩 水平救济", - "block.mineralogy.tuff_relief_i": "凝灰岩 I 浮雕", - "block.mineralogy.tuff_relief_left": "凝灰岩 左救济", - "block.mineralogy.tuff_relief_pickaxe": "凝灰岩 镐救济", - "block.mineralogy.tuff_relief_plus": "凝灰岩 加上救济", - "block.mineralogy.tuff_relief_right": "凝灰岩 正确的救济", - "block.mineralogy.tuff_relief_sword": "凝灰岩 剑救济", - "block.mineralogy.tuff_relief_vertical": "凝灰岩 垂直救济", - "block.mineralogy.siltstone_relief_axe": "粉砂岩 斧头救济", - "block.mineralogy.siltstone_relief_blank": "粉砂岩 空白的救济", - "block.mineralogy.siltstone_relief_cross": "粉砂岩 交叉救济", - "block.mineralogy.siltstone_relief_hammer": "粉砂岩 锤子救济", - "block.mineralogy.siltstone_relief_hoe": "粉砂岩 锄头救济", - "block.mineralogy.siltstone_relief_horizontal": "粉砂岩 水平救济", - "block.mineralogy.siltstone_relief_i": "粉砂岩 I 浮雕", - "block.mineralogy.siltstone_relief_left": "粉砂岩 左救济", - "block.mineralogy.siltstone_relief_pickaxe": "粉砂岩 镐救济", - "block.mineralogy.siltstone_relief_plus": "粉砂岩 加上救济", - "block.mineralogy.siltstone_relief_right": "粉砂岩 正确的救济", - "block.mineralogy.siltstone_relief_sword": "粉砂岩 剑救济", - "block.mineralogy.siltstone_relief_vertical": "粉砂岩 垂直救济", - "block.mineralogy.rock_salt_relief_axe": "岩盐 斧头救济", - "block.mineralogy.rock_salt_relief_blank": "岩盐 空白的救济", - "block.mineralogy.rock_salt_relief_cross": "岩盐 交叉救济", - "block.mineralogy.rock_salt_relief_hammer": "岩盐 锤子救济", - "block.mineralogy.rock_salt_relief_hoe": "岩盐 锄头救济", - "block.mineralogy.rock_salt_relief_horizontal": "岩盐 水平救济", - "block.mineralogy.rock_salt_relief_i": "岩盐 I 浮雕", - "block.mineralogy.rock_salt_relief_left": "岩盐 左救济", - "block.mineralogy.rock_salt_relief_pickaxe": "岩盐 镐救济", - "block.mineralogy.rock_salt_relief_plus": "岩盐 加上救济", - "block.mineralogy.rock_salt_relief_right": "岩盐 正确的救济", - "block.mineralogy.rock_salt_relief_sword": "岩盐 剑救济", - "block.mineralogy.rock_salt_relief_vertical": "岩盐 垂直救济", - "block.mineralogy.hornfels_relief_axe": "角岩 斧头救济", - "block.mineralogy.hornfels_relief_blank": "角岩 空白的救济", - "block.mineralogy.hornfels_relief_cross": "角岩 交叉救济", - "block.mineralogy.hornfels_relief_hammer": "角岩 锤子救济", - "block.mineralogy.hornfels_relief_hoe": "角岩 锄头救济", - "block.mineralogy.hornfels_relief_horizontal": "角岩 水平救济", - "block.mineralogy.hornfels_relief_i": "角岩 I 浮雕", - "block.mineralogy.hornfels_relief_left": "角岩 左救济", - "block.mineralogy.hornfels_relief_pickaxe": "角岩 镐救济", - "block.mineralogy.hornfels_relief_plus": "角岩 加上救济", - "block.mineralogy.hornfels_relief_right": "角岩 正确的救济", - "block.mineralogy.hornfels_relief_sword": "角岩 剑救济", - "block.mineralogy.hornfels_relief_vertical": "角岩 垂直救济", - "block.mineralogy.quartzite_relief_axe": "石英岩 斧头救济", - "block.mineralogy.quartzite_relief_blank": "石英岩 空白的救济", - "block.mineralogy.quartzite_relief_cross": "石英岩 交叉救济", - "block.mineralogy.quartzite_relief_hammer": "石英岩 锤子救济", - "block.mineralogy.quartzite_relief_hoe": "石英岩 锄头救济", - "block.mineralogy.quartzite_relief_horizontal": "石英岩 水平救济", - "block.mineralogy.quartzite_relief_i": "石英岩 I 浮雕", - "block.mineralogy.quartzite_relief_left": "石英岩 左救济", - "block.mineralogy.quartzite_relief_pickaxe": "石英岩 镐救济", - "block.mineralogy.quartzite_relief_plus": "石英岩 加上救济", - "block.mineralogy.quartzite_relief_right": "石英岩 正确的救济", - "block.mineralogy.quartzite_relief_sword": "石英岩 剑救济", - "block.mineralogy.quartzite_relief_vertical": "石英岩 垂直救济", - "block.mineralogy.novaculite_relief_axe": "均密石英岩 斧头救济", - "block.mineralogy.novaculite_relief_blank": "均密石英岩 空白的救济", - "block.mineralogy.novaculite_relief_cross": "均密石英岩 交叉救济", - "block.mineralogy.novaculite_relief_hammer": "均密石英岩 锤子救济", - "block.mineralogy.novaculite_relief_hoe": "均密石英岩 锄头救济", - "block.mineralogy.novaculite_relief_horizontal": "均密石英岩 水平救济", - "block.mineralogy.novaculite_relief_i": "均密石英岩 I 浮雕", - "block.mineralogy.novaculite_relief_left": "均密石英岩 左救济", - "block.mineralogy.novaculite_relief_pickaxe": "均密石英岩 镐救济", - "block.mineralogy.novaculite_relief_plus": "均密石英岩 加上救济", - "block.mineralogy.novaculite_relief_right": "均密石英岩 正确的救济", - "block.mineralogy.novaculite_relief_sword": "均密石英岩 剑救济", - "block.mineralogy.novaculite_relief_vertical": "均密石英岩 垂直救济", - "advancements.mineralogy.all_the_rocks.title": "呼叫岩石卢多!", - "advancements.mineralogy.all_the_rocks.description": "哇,您已经找到了矿物学中的所有标准岩石类型!", - "fluid.mineralogy.crude_oil": "原油", - "block.mineralogy.crude_oil": "原油", - "item.mineralogy.crude_oil_bucket": "原油桶", - "itemGroup.mineralogy.mineralogy": "我的地理", + "block.mineralogy.andesite_relief_axe": "安山岩浮雕(斧)", + "block.mineralogy.andesite_relief_blank": "安山岩浮雕(无图案)", + "block.mineralogy.andesite_relief_cross": "安山岩浮雕(十字)", + "block.mineralogy.andesite_relief_hammer": "安山岩浮雕(锤)", + "block.mineralogy.andesite_relief_hoe": "安山岩浮雕(锄)", + "block.mineralogy.andesite_relief_horizontal": "安山岩浮雕(横纹)", + "block.mineralogy.andesite_relief_i": "安山岩浮雕(I)", + "block.mineralogy.andesite_relief_left": "安山岩浮雕(左纹)", + "block.mineralogy.andesite_relief_pickaxe": "安山岩浮雕(镐)", + "block.mineralogy.andesite_relief_plus": "安山岩浮雕(加号)", + "block.mineralogy.andesite_relief_right": "安山岩浮雕(右纹)", + "block.mineralogy.andesite_relief_sword": "安山岩浮雕(剑)", + "block.mineralogy.andesite_relief_vertical": "安山岩浮雕(竖纹)", + "block.mineralogy.basalt_relief_axe": "玄武岩浮雕(斧)", + "block.mineralogy.basalt_relief_blank": "玄武岩浮雕(无图案)", + "block.mineralogy.basalt_relief_cross": "玄武岩浮雕(十字)", + "block.mineralogy.basalt_relief_hammer": "玄武岩浮雕(锤)", + "block.mineralogy.basalt_relief_hoe": "玄武岩浮雕(锄)", + "block.mineralogy.basalt_relief_horizontal": "玄武岩浮雕(横纹)", + "block.mineralogy.basalt_relief_i": "玄武岩浮雕(I)", + "block.mineralogy.basalt_relief_left": "玄武岩浮雕(左纹)", + "block.mineralogy.basalt_relief_pickaxe": "玄武岩浮雕(镐)", + "block.mineralogy.basalt_relief_plus": "玄武岩浮雕(加号)", + "block.mineralogy.basalt_relief_right": "玄武岩浮雕(右纹)", + "block.mineralogy.basalt_relief_sword": "玄武岩浮雕(剑)", + "block.mineralogy.basalt_relief_vertical": "玄武岩浮雕(竖纹)", + "block.mineralogy.diorite_relief_axe": "闪长岩浮雕(斧)", + "block.mineralogy.diorite_relief_blank": "闪长岩浮雕(无图案)", + "block.mineralogy.diorite_relief_cross": "闪长岩浮雕(十字)", + "block.mineralogy.diorite_relief_hammer": "闪长岩浮雕(锤)", + "block.mineralogy.diorite_relief_hoe": "闪长岩浮雕(锄)", + "block.mineralogy.diorite_relief_horizontal": "闪长岩浮雕(横纹)", + "block.mineralogy.diorite_relief_i": "闪长岩浮雕(I)", + "block.mineralogy.diorite_relief_left": "闪长岩浮雕(左纹)", + "block.mineralogy.diorite_relief_pickaxe": "闪长岩浮雕(镐)", + "block.mineralogy.diorite_relief_plus": "闪长岩浮雕(加号)", + "block.mineralogy.diorite_relief_right": "闪长岩浮雕(右纹)", + "block.mineralogy.diorite_relief_sword": "闪长岩浮雕(剑)", + "block.mineralogy.diorite_relief_vertical": "闪长岩浮雕(竖纹)", + "block.mineralogy.granite_relief_axe": "花岗岩浮雕(斧)", + "block.mineralogy.granite_relief_blank": "花岗岩浮雕(无图案)", + "block.mineralogy.granite_relief_cross": "花岗岩浮雕(十字)", + "block.mineralogy.granite_relief_hammer": "花岗岩浮雕(锤)", + "block.mineralogy.granite_relief_hoe": "花岗岩浮雕(锄)", + "block.mineralogy.granite_relief_horizontal": "花岗岩浮雕(横纹)", + "block.mineralogy.granite_relief_i": "花岗岩浮雕(I)", + "block.mineralogy.granite_relief_left": "花岗岩浮雕(左纹)", + "block.mineralogy.granite_relief_pickaxe": "花岗岩浮雕(镐)", + "block.mineralogy.granite_relief_plus": "花岗岩浮雕(加号)", + "block.mineralogy.granite_relief_right": "花岗岩浮雕(右纹)", + "block.mineralogy.granite_relief_sword": "花岗岩浮雕(剑)", + "block.mineralogy.granite_relief_vertical": "花岗岩浮雕(竖纹)", + "block.mineralogy.rhyolite_relief_axe": "流纹岩浮雕(斧)", + "block.mineralogy.rhyolite_relief_blank": "流纹岩浮雕(无图案)", + "block.mineralogy.rhyolite_relief_cross": "流纹岩浮雕(十字)", + "block.mineralogy.rhyolite_relief_hammer": "流纹岩浮雕(锤)", + "block.mineralogy.rhyolite_relief_hoe": "流纹岩浮雕(锄)", + "block.mineralogy.rhyolite_relief_horizontal": "流纹岩浮雕(横纹)", + "block.mineralogy.rhyolite_relief_i": "流纹岩浮雕(I)", + "block.mineralogy.rhyolite_relief_left": "流纹岩浮雕(左纹)", + "block.mineralogy.rhyolite_relief_pickaxe": "流纹岩浮雕(镐)", + "block.mineralogy.rhyolite_relief_plus": "流纹岩浮雕(加号)", + "block.mineralogy.rhyolite_relief_right": "流纹岩浮雕(右纹)", + "block.mineralogy.rhyolite_relief_sword": "流纹岩浮雕(剑)", + "block.mineralogy.rhyolite_relief_vertical": "流纹岩浮雕(竖纹)", + "block.mineralogy.pegmatite_relief_axe": "伟晶岩浮雕(斧)", + "block.mineralogy.pegmatite_relief_blank": "伟晶岩浮雕(无图案)", + "block.mineralogy.pegmatite_relief_cross": "伟晶岩浮雕(十字)", + "block.mineralogy.pegmatite_relief_hammer": "伟晶岩浮雕(锤)", + "block.mineralogy.pegmatite_relief_hoe": "伟晶岩浮雕(锄)", + "block.mineralogy.pegmatite_relief_horizontal": "伟晶岩浮雕(横纹)", + "block.mineralogy.pegmatite_relief_i": "伟晶岩浮雕(I)", + "block.mineralogy.pegmatite_relief_left": "伟晶岩浮雕(左纹)", + "block.mineralogy.pegmatite_relief_pickaxe": "伟晶岩浮雕(镐)", + "block.mineralogy.pegmatite_relief_plus": "伟晶岩浮雕(加号)", + "block.mineralogy.pegmatite_relief_right": "伟晶岩浮雕(右纹)", + "block.mineralogy.pegmatite_relief_sword": "伟晶岩浮雕(剑)", + "block.mineralogy.pegmatite_relief_vertical": "伟晶岩浮雕(竖纹)", + "block.mineralogy.shale_relief_axe": "页岩浮雕(斧)", + "block.mineralogy.shale_relief_blank": "页岩浮雕(无图案)", + "block.mineralogy.shale_relief_cross": "页岩浮雕(十字)", + "block.mineralogy.shale_relief_hammer": "页岩浮雕(锤)", + "block.mineralogy.shale_relief_hoe": "页岩浮雕(锄)", + "block.mineralogy.shale_relief_horizontal": "页岩浮雕(横纹)", + "block.mineralogy.shale_relief_i": "页岩浮雕(I)", + "block.mineralogy.shale_relief_left": "页岩浮雕(左纹)", + "block.mineralogy.shale_relief_pickaxe": "页岩浮雕(镐)", + "block.mineralogy.shale_relief_plus": "页岩浮雕(加号)", + "block.mineralogy.shale_relief_right": "页岩浮雕(右纹)", + "block.mineralogy.shale_relief_sword": "页岩浮雕(剑)", + "block.mineralogy.shale_relief_vertical": "页岩浮雕(竖纹)", + "block.mineralogy.conglomerate_relief_axe": "砾岩浮雕(斧)", + "block.mineralogy.conglomerate_relief_blank": "砾岩浮雕(无图案)", + "block.mineralogy.conglomerate_relief_cross": "砾岩浮雕(十字)", + "block.mineralogy.conglomerate_relief_hammer": "砾岩浮雕(锤)", + "block.mineralogy.conglomerate_relief_hoe": "砾岩浮雕(锄)", + "block.mineralogy.conglomerate_relief_horizontal": "砾岩浮雕(横纹)", + "block.mineralogy.conglomerate_relief_i": "砾岩浮雕(I)", + "block.mineralogy.conglomerate_relief_left": "砾岩浮雕(左纹)", + "block.mineralogy.conglomerate_relief_pickaxe": "砾岩浮雕(镐)", + "block.mineralogy.conglomerate_relief_plus": "砾岩浮雕(加号)", + "block.mineralogy.conglomerate_relief_right": "砾岩浮雕(右纹)", + "block.mineralogy.conglomerate_relief_sword": "砾岩浮雕(剑)", + "block.mineralogy.conglomerate_relief_vertical": "砾岩浮雕(竖纹)", + "block.mineralogy.dolomite_relief_axe": "白云岩浮雕(斧)", + "block.mineralogy.dolomite_relief_blank": "白云岩浮雕(无图案)", + "block.mineralogy.dolomite_relief_cross": "白云岩浮雕(十字)", + "block.mineralogy.dolomite_relief_hammer": "白云岩浮雕(锤)", + "block.mineralogy.dolomite_relief_hoe": "白云岩浮雕(锄)", + "block.mineralogy.dolomite_relief_horizontal": "白云岩浮雕(横纹)", + "block.mineralogy.dolomite_relief_i": "白云岩浮雕(I)", + "block.mineralogy.dolomite_relief_left": "白云岩浮雕(左纹)", + "block.mineralogy.dolomite_relief_pickaxe": "白云岩浮雕(镐)", + "block.mineralogy.dolomite_relief_plus": "白云岩浮雕(加号)", + "block.mineralogy.dolomite_relief_right": "白云岩浮雕(右纹)", + "block.mineralogy.dolomite_relief_sword": "白云岩浮雕(剑)", + "block.mineralogy.dolomite_relief_vertical": "白云岩浮雕(竖纹)", + "block.mineralogy.limestone_relief_axe": "石灰石浮雕(斧)", + "block.mineralogy.limestone_relief_blank": "石灰石浮雕(无图案)", + "block.mineralogy.limestone_relief_cross": "石灰石浮雕(十字)", + "block.mineralogy.limestone_relief_hammer": "石灰石浮雕(锤)", + "block.mineralogy.limestone_relief_hoe": "石灰石浮雕(锄)", + "block.mineralogy.limestone_relief_horizontal": "石灰石浮雕(横纹)", + "block.mineralogy.limestone_relief_i": "石灰石浮雕(I)", + "block.mineralogy.limestone_relief_left": "石灰石浮雕(左纹)", + "block.mineralogy.limestone_relief_pickaxe": "石灰石浮雕(镐)", + "block.mineralogy.limestone_relief_plus": "石灰石浮雕(加号)", + "block.mineralogy.limestone_relief_right": "石灰石浮雕(右纹)", + "block.mineralogy.limestone_relief_sword": "石灰石浮雕(剑)", + "block.mineralogy.limestone_relief_vertical": "石灰石浮雕(竖纹)", + "block.mineralogy.marble_relief_axe": "大理石浮雕(斧)", + "block.mineralogy.marble_relief_blank": "大理石浮雕(无图案)", + "block.mineralogy.marble_relief_cross": "大理石浮雕(十字)", + "block.mineralogy.marble_relief_hammer": "大理石浮雕(锤)", + "block.mineralogy.marble_relief_hoe": "大理石浮雕(锄)", + "block.mineralogy.marble_relief_horizontal": "大理石浮雕(横纹)", + "block.mineralogy.marble_relief_i": "大理石浮雕(I)", + "block.mineralogy.marble_relief_left": "大理石浮雕(左纹)", + "block.mineralogy.marble_relief_pickaxe": "大理石浮雕(镐)", + "block.mineralogy.marble_relief_plus": "大理石浮雕(加号)", + "block.mineralogy.marble_relief_right": "大理石浮雕(右纹)", + "block.mineralogy.marble_relief_sword": "大理石浮雕(剑)", + "block.mineralogy.marble_relief_vertical": "大理石浮雕(竖纹)", + "block.mineralogy.slate_relief_axe": "板岩浮雕(斧)", + "block.mineralogy.slate_relief_blank": "板岩浮雕(无图案)", + "block.mineralogy.slate_relief_cross": "板岩浮雕(十字)", + "block.mineralogy.slate_relief_hammer": "板岩浮雕(锤)", + "block.mineralogy.slate_relief_hoe": "板岩浮雕(锄)", + "block.mineralogy.slate_relief_horizontal": "板岩浮雕(横纹)", + "block.mineralogy.slate_relief_i": "板岩浮雕(I)", + "block.mineralogy.slate_relief_left": "板岩浮雕(左纹)", + "block.mineralogy.slate_relief_pickaxe": "板岩浮雕(镐)", + "block.mineralogy.slate_relief_plus": "板岩浮雕(加号)", + "block.mineralogy.slate_relief_right": "板岩浮雕(右纹)", + "block.mineralogy.slate_relief_sword": "板岩浮雕(剑)", + "block.mineralogy.slate_relief_vertical": "板岩浮雕(竖纹)", + "block.mineralogy.schist_relief_axe": "片岩浮雕(斧)", + "block.mineralogy.schist_relief_blank": "片岩浮雕(无图案)", + "block.mineralogy.schist_relief_cross": "片岩浮雕(十字)", + "block.mineralogy.schist_relief_hammer": "片岩浮雕(锤)", + "block.mineralogy.schist_relief_hoe": "片岩浮雕(锄)", + "block.mineralogy.schist_relief_horizontal": "片岩浮雕(横纹)", + "block.mineralogy.schist_relief_i": "片岩浮雕(I)", + "block.mineralogy.schist_relief_left": "片岩浮雕(左纹)", + "block.mineralogy.schist_relief_pickaxe": "片岩浮雕(镐)", + "block.mineralogy.schist_relief_plus": "片岩浮雕(加号)", + "block.mineralogy.schist_relief_right": "片岩浮雕(右纹)", + "block.mineralogy.schist_relief_sword": "片岩浮雕(剑)", + "block.mineralogy.schist_relief_vertical": "片岩浮雕(竖纹)", + "block.mineralogy.gneiss_relief_axe": "片麻岩浮雕(斧)", + "block.mineralogy.gneiss_relief_blank": "片麻岩浮雕(无图案)", + "block.mineralogy.gneiss_relief_cross": "片麻岩浮雕(十字)", + "block.mineralogy.gneiss_relief_hammer": "片麻岩浮雕(锤)", + "block.mineralogy.gneiss_relief_hoe": "片麻岩浮雕(锄)", + "block.mineralogy.gneiss_relief_horizontal": "片麻岩浮雕(横纹)", + "block.mineralogy.gneiss_relief_i": "片麻岩浮雕(I)", + "block.mineralogy.gneiss_relief_left": "片麻岩浮雕(左纹)", + "block.mineralogy.gneiss_relief_pickaxe": "片麻岩浮雕(镐)", + "block.mineralogy.gneiss_relief_plus": "片麻岩浮雕(加号)", + "block.mineralogy.gneiss_relief_right": "片麻岩浮雕(右纹)", + "block.mineralogy.gneiss_relief_sword": "片麻岩浮雕(剑)", + "block.mineralogy.gneiss_relief_vertical": "片麻岩浮雕(竖纹)", + "block.mineralogy.phyllite_relief_axe": "千枚岩浮雕(斧)", + "block.mineralogy.phyllite_relief_blank": "千枚岩浮雕(无图案)", + "block.mineralogy.phyllite_relief_cross": "千枚岩浮雕(十字)", + "block.mineralogy.phyllite_relief_hammer": "千枚岩浮雕(锤)", + "block.mineralogy.phyllite_relief_hoe": "千枚岩浮雕(锄)", + "block.mineralogy.phyllite_relief_horizontal": "千枚岩浮雕(横纹)", + "block.mineralogy.phyllite_relief_i": "千枚岩浮雕(I)", + "block.mineralogy.phyllite_relief_left": "千枚岩浮雕(左纹)", + "block.mineralogy.phyllite_relief_pickaxe": "千枚岩浮雕(镐)", + "block.mineralogy.phyllite_relief_plus": "千枚岩浮雕(加号)", + "block.mineralogy.phyllite_relief_right": "千枚岩浮雕(右纹)", + "block.mineralogy.phyllite_relief_sword": "千枚岩浮雕(剑)", + "block.mineralogy.phyllite_relief_vertical": "千枚岩浮雕(竖纹)", + "block.mineralogy.amphibolite_relief_axe": "角闪岩浮雕(斧)", + "block.mineralogy.amphibolite_relief_blank": "角闪岩浮雕(无图案)", + "block.mineralogy.amphibolite_relief_cross": "角闪岩浮雕(十字)", + "block.mineralogy.amphibolite_relief_hammer": "角闪岩浮雕(锤)", + "block.mineralogy.amphibolite_relief_hoe": "角闪岩浮雕(锄)", + "block.mineralogy.amphibolite_relief_horizontal": "角闪岩浮雕(横纹)", + "block.mineralogy.amphibolite_relief_i": "角闪岩浮雕(I)", + "block.mineralogy.amphibolite_relief_left": "角闪岩浮雕(左纹)", + "block.mineralogy.amphibolite_relief_pickaxe": "角闪岩浮雕(镐)", + "block.mineralogy.amphibolite_relief_plus": "角闪岩浮雕(加号)", + "block.mineralogy.amphibolite_relief_right": "角闪岩浮雕(右纹)", + "block.mineralogy.amphibolite_relief_sword": "角闪岩浮雕(剑)", + "block.mineralogy.amphibolite_relief_vertical": "角闪岩浮雕(竖纹)", + "block.mineralogy.diabase_relief_axe": "辉绿岩浮雕(斧)", + "block.mineralogy.diabase_relief_blank": "辉绿岩浮雕(无图案)", + "block.mineralogy.diabase_relief_cross": "辉绿岩浮雕(十字)", + "block.mineralogy.diabase_relief_hammer": "辉绿岩浮雕(锤)", + "block.mineralogy.diabase_relief_hoe": "辉绿岩浮雕(锄)", + "block.mineralogy.diabase_relief_horizontal": "辉绿岩浮雕(横纹)", + "block.mineralogy.diabase_relief_i": "辉绿岩浮雕(I)", + "block.mineralogy.diabase_relief_left": "辉绿岩浮雕(左纹)", + "block.mineralogy.diabase_relief_pickaxe": "辉绿岩浮雕(镐)", + "block.mineralogy.diabase_relief_plus": "辉绿岩浮雕(加号)", + "block.mineralogy.diabase_relief_right": "辉绿岩浮雕(右纹)", + "block.mineralogy.diabase_relief_sword": "辉绿岩浮雕(剑)", + "block.mineralogy.diabase_relief_vertical": "辉绿岩浮雕(竖纹)", + "block.mineralogy.gabbro_relief_axe": "辉长岩浮雕(斧)", + "block.mineralogy.gabbro_relief_blank": "辉长岩浮雕(无图案)", + "block.mineralogy.gabbro_relief_cross": "辉长岩浮雕(十字)", + "block.mineralogy.gabbro_relief_hammer": "辉长岩浮雕(锤)", + "block.mineralogy.gabbro_relief_hoe": "辉长岩浮雕(锄)", + "block.mineralogy.gabbro_relief_horizontal": "辉长岩浮雕(横纹)", + "block.mineralogy.gabbro_relief_i": "辉长岩浮雕(I)", + "block.mineralogy.gabbro_relief_left": "辉长岩浮雕(左纹)", + "block.mineralogy.gabbro_relief_pickaxe": "辉长岩浮雕(镐)", + "block.mineralogy.gabbro_relief_plus": "辉长岩浮雕(加号)", + "block.mineralogy.gabbro_relief_right": "辉长岩浮雕(右纹)", + "block.mineralogy.gabbro_relief_sword": "辉长岩浮雕(剑)", + "block.mineralogy.gabbro_relief_vertical": "辉长岩浮雕(竖纹)", + "block.mineralogy.peridotite_relief_axe": "橄榄岩浮雕(斧)", + "block.mineralogy.peridotite_relief_blank": "橄榄岩浮雕(无图案)", + "block.mineralogy.peridotite_relief_cross": "橄榄岩浮雕(十字)", + "block.mineralogy.peridotite_relief_hammer": "橄榄岩浮雕(锤)", + "block.mineralogy.peridotite_relief_hoe": "橄榄岩浮雕(锄)", + "block.mineralogy.peridotite_relief_horizontal": "橄榄岩浮雕(横纹)", + "block.mineralogy.peridotite_relief_i": "橄榄岩浮雕(I)", + "block.mineralogy.peridotite_relief_left": "橄榄岩浮雕(左纹)", + "block.mineralogy.peridotite_relief_pickaxe": "橄榄岩浮雕(镐)", + "block.mineralogy.peridotite_relief_plus": "橄榄岩浮雕(加号)", + "block.mineralogy.peridotite_relief_right": "橄榄岩浮雕(右纹)", + "block.mineralogy.peridotite_relief_sword": "橄榄岩浮雕(剑)", + "block.mineralogy.peridotite_relief_vertical": "橄榄岩浮雕(竖纹)", + "block.mineralogy.basaltic_glass_relief_axe": "玄武岩质玻璃浮雕(斧)", + "block.mineralogy.basaltic_glass_relief_blank": "玄武岩质玻璃浮雕(无图案)", + "block.mineralogy.basaltic_glass_relief_cross": "玄武岩质玻璃浮雕(十字)", + "block.mineralogy.basaltic_glass_relief_hammer": "玄武岩质玻璃浮雕(锤)", + "block.mineralogy.basaltic_glass_relief_hoe": "玄武岩质玻璃浮雕(锄)", + "block.mineralogy.basaltic_glass_relief_horizontal": "玄武岩质玻璃浮雕(横纹)", + "block.mineralogy.basaltic_glass_relief_i": "玄武岩质玻璃浮雕(I)", + "block.mineralogy.basaltic_glass_relief_left": "玄武岩质玻璃浮雕(左纹)", + "block.mineralogy.basaltic_glass_relief_pickaxe": "玄武岩质玻璃浮雕(镐)", + "block.mineralogy.basaltic_glass_relief_plus": "玄武岩质玻璃浮雕(加号)", + "block.mineralogy.basaltic_glass_relief_right": "玄武岩质玻璃浮雕(右纹)", + "block.mineralogy.basaltic_glass_relief_sword": "玄武岩质玻璃浮雕(剑)", + "block.mineralogy.basaltic_glass_relief_vertical": "玄武岩质玻璃浮雕(竖纹)", + "block.mineralogy.scoria_relief_axe": "火山渣浮雕(斧)", + "block.mineralogy.scoria_relief_blank": "火山渣浮雕(无图案)", + "block.mineralogy.scoria_relief_cross": "火山渣浮雕(十字)", + "block.mineralogy.scoria_relief_hammer": "火山渣浮雕(锤)", + "block.mineralogy.scoria_relief_hoe": "火山渣浮雕(锄)", + "block.mineralogy.scoria_relief_horizontal": "火山渣浮雕(横纹)", + "block.mineralogy.scoria_relief_i": "火山渣浮雕(I)", + "block.mineralogy.scoria_relief_left": "火山渣浮雕(左纹)", + "block.mineralogy.scoria_relief_pickaxe": "火山渣浮雕(镐)", + "block.mineralogy.scoria_relief_plus": "火山渣浮雕(加号)", + "block.mineralogy.scoria_relief_right": "火山渣浮雕(右纹)", + "block.mineralogy.scoria_relief_sword": "火山渣浮雕(剑)", + "block.mineralogy.scoria_relief_vertical": "火山渣浮雕(竖纹)", + "block.mineralogy.tuff_relief_axe": "凝灰岩浮雕(斧)", + "block.mineralogy.tuff_relief_blank": "凝灰岩浮雕(无图案)", + "block.mineralogy.tuff_relief_cross": "凝灰岩浮雕(十字)", + "block.mineralogy.tuff_relief_hammer": "凝灰岩浮雕(锤)", + "block.mineralogy.tuff_relief_hoe": "凝灰岩浮雕(锄)", + "block.mineralogy.tuff_relief_horizontal": "凝灰岩浮雕(横纹)", + "block.mineralogy.tuff_relief_i": "凝灰岩浮雕(I)", + "block.mineralogy.tuff_relief_left": "凝灰岩浮雕(左纹)", + "block.mineralogy.tuff_relief_pickaxe": "凝灰岩浮雕(镐)", + "block.mineralogy.tuff_relief_plus": "凝灰岩浮雕(加号)", + "block.mineralogy.tuff_relief_right": "凝灰岩浮雕(右纹)", + "block.mineralogy.tuff_relief_sword": "凝灰岩浮雕(剑)", + "block.mineralogy.tuff_relief_vertical": "凝灰岩浮雕(竖纹)", + "block.mineralogy.siltstone_relief_axe": "粉砂岩浮雕(斧)", + "block.mineralogy.siltstone_relief_blank": "粉砂岩浮雕(无图案)", + "block.mineralogy.siltstone_relief_cross": "粉砂岩浮雕(十字)", + "block.mineralogy.siltstone_relief_hammer": "粉砂岩浮雕(锤)", + "block.mineralogy.siltstone_relief_hoe": "粉砂岩浮雕(锄)", + "block.mineralogy.siltstone_relief_horizontal": "粉砂岩浮雕(横纹)", + "block.mineralogy.siltstone_relief_i": "粉砂岩浮雕(I)", + "block.mineralogy.siltstone_relief_left": "粉砂岩浮雕(左纹)", + "block.mineralogy.siltstone_relief_pickaxe": "粉砂岩浮雕(镐)", + "block.mineralogy.siltstone_relief_plus": "粉砂岩浮雕(加号)", + "block.mineralogy.siltstone_relief_right": "粉砂岩浮雕(右纹)", + "block.mineralogy.siltstone_relief_sword": "粉砂岩浮雕(剑)", + "block.mineralogy.siltstone_relief_vertical": "粉砂岩浮雕(竖纹)", + "block.mineralogy.rock_salt_relief_axe": "岩盐浮雕(斧)", + "block.mineralogy.rock_salt_relief_blank": "岩盐浮雕(无图案)", + "block.mineralogy.rock_salt_relief_cross": "岩盐浮雕(十字)", + "block.mineralogy.rock_salt_relief_hammer": "岩盐浮雕(锤)", + "block.mineralogy.rock_salt_relief_hoe": "岩盐浮雕(锄)", + "block.mineralogy.rock_salt_relief_horizontal": "岩盐浮雕(横纹)", + "block.mineralogy.rock_salt_relief_i": "岩盐浮雕(I)", + "block.mineralogy.rock_salt_relief_left": "岩盐浮雕(左纹)", + "block.mineralogy.rock_salt_relief_pickaxe": "岩盐浮雕(镐)", + "block.mineralogy.rock_salt_relief_plus": "岩盐浮雕(加号)", + "block.mineralogy.rock_salt_relief_right": "岩盐浮雕(右纹)", + "block.mineralogy.rock_salt_relief_sword": "岩盐浮雕(剑)", + "block.mineralogy.rock_salt_relief_vertical": "岩盐浮雕(竖纹)", + "block.mineralogy.hornfels_relief_axe": "角岩浮雕(斧)", + "block.mineralogy.hornfels_relief_blank": "角岩浮雕(无图案)", + "block.mineralogy.hornfels_relief_cross": "角岩浮雕(十字)", + "block.mineralogy.hornfels_relief_hammer": "角岩浮雕(锤)", + "block.mineralogy.hornfels_relief_hoe": "角岩浮雕(锄)", + "block.mineralogy.hornfels_relief_horizontal": "角岩浮雕(横纹)", + "block.mineralogy.hornfels_relief_i": "角岩浮雕(I)", + "block.mineralogy.hornfels_relief_left": "角岩浮雕(左纹)", + "block.mineralogy.hornfels_relief_pickaxe": "角岩浮雕(镐)", + "block.mineralogy.hornfels_relief_plus": "角岩浮雕(加号)", + "block.mineralogy.hornfels_relief_right": "角岩浮雕(右纹)", + "block.mineralogy.hornfels_relief_sword": "角岩浮雕(剑)", + "block.mineralogy.hornfels_relief_vertical": "角岩浮雕(竖纹)", + "block.mineralogy.quartzite_relief_axe": "石英岩浮雕(斧)", + "block.mineralogy.quartzite_relief_blank": "石英岩浮雕(无图案)", + "block.mineralogy.quartzite_relief_cross": "石英岩浮雕(十字)", + "block.mineralogy.quartzite_relief_hammer": "石英岩浮雕(锤)", + "block.mineralogy.quartzite_relief_hoe": "石英岩浮雕(锄)", + "block.mineralogy.quartzite_relief_horizontal": "石英岩浮雕(横纹)", + "block.mineralogy.quartzite_relief_i": "石英岩浮雕(I)", + "block.mineralogy.quartzite_relief_left": "石英岩浮雕(左纹)", + "block.mineralogy.quartzite_relief_pickaxe": "石英岩浮雕(镐)", + "block.mineralogy.quartzite_relief_plus": "石英岩浮雕(加号)", + "block.mineralogy.quartzite_relief_right": "石英岩浮雕(右纹)", + "block.mineralogy.quartzite_relief_sword": "石英岩浮雕(剑)", + "block.mineralogy.quartzite_relief_vertical": "石英岩浮雕(竖纹)", + "block.mineralogy.novaculite_relief_axe": "均密石英岩浮雕(斧)", + "block.mineralogy.novaculite_relief_blank": "均密石英岩浮雕(无图案)", + "block.mineralogy.novaculite_relief_cross": "均密石英岩浮雕(十字)", + "block.mineralogy.novaculite_relief_hammer": "均密石英岩浮雕(锤)", + "block.mineralogy.novaculite_relief_hoe": "均密石英岩浮雕(锄)", + "block.mineralogy.novaculite_relief_horizontal": "均密石英岩浮雕(横纹)", + "block.mineralogy.novaculite_relief_i": "均密石英岩浮雕(I)", + "block.mineralogy.novaculite_relief_left": "均密石英岩浮雕(左纹)", + "block.mineralogy.novaculite_relief_pickaxe": "均密石英岩浮雕(镐)", + "block.mineralogy.novaculite_relief_plus": "均密石英岩浮雕(加号)", + "block.mineralogy.novaculite_relief_right": "均密石英岩浮雕(右纹)", + "block.mineralogy.novaculite_relief_sword": "均密石英岩浮雕(剑)", + "block.mineralogy.novaculite_relief_vertical": "均密石英岩浮雕(竖纹)", + "itemGroup.mineralogy.mineralogy": "矿物学", "itemGroup.mineralogy.rock": "矿物学岩石", "itemGroup.mineralogy.stair": "矿物学楼梯", - "itemGroup.mineralogy.slab": "矿物学板", + "itemGroup.mineralogy.slab": "矿物学台阶", "itemGroup.mineralogy.wall": "矿物学墙", - "itemGroup.mineralogy.item": "矿物学项目" + "itemGroup.mineralogy.item": "矿物学物品", + "block.mineralogy.crude_oil": "原油", + "item.mineralogy.crude_oil_bucket": "原油桶", + "fluid.mineralogy.crude_oil": "原油", + "advancements.mineralogy.all_the_rocks.title": "岩石大全", + "advancements.mineralogy.all_the_rocks.description": "你已找到矿物学中的所有标准岩石类型!" } diff --git a/src/main/resources/assets/mineralogy/textures/items/crude_oil_bucket.png b/src/main/resources/assets/mineralogy/textures/items/crude_oil_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..0464fc589dafb3af801e6b64818cffc2cd43f72a GIT binary patch literal 416 zcmV;R0bl-!P)H zK~y-)#gi>h13?gmpFNt8kRyfip)LeN7J23pOn*dwKrODSrWXvTt3jbq6=!hEFQ_?1 zYAQLhh6ECVSOgeC$RWyY?xR3MNEkKy?#wf@lUew06Z6C%2(sMwJkRP%De)~JPkgx7 zI8HfsXYYW`wdEQ}6qE06uK`$H5r|4H$AR~3254^VGMP*SK%?5~)8h=1Wz--`;uW_g z%i!W6j$_uh_i1j)+Fab0#BE91?RH6TR0HEU2B6#Rmh=~setJIu0Hl<>J>M`mKDXM* z(ILJ55Uut6Cn%*v7>4%Z;_|8n)>@M!i5*~V2Dznaij)%H_W>}*(CZK9E|Rn8#+{uG z7Td&5r;|ldWY5#-6k`kkqtU3;{+At$$7Ac~$-n*!MXOf-6Z-&9Yg&SZ#0kX!0000< KMNUMnLSTYkC9Ws{ literal 0 HcmV?d00001 diff --git a/src/main/resources/data/forge/tags/blocks/cobblestone.json b/src/main/resources/data/forge/tags/blocks/cobblestone.json index eccd4a778..4a747bf9a 100644 --- a/src/main/resources/data/forge/tags/blocks/cobblestone.json +++ b/src/main/resources/data/forge/tags/blocks/cobblestone.json @@ -1,32 +1,7 @@ { "replace": false, "values": [ - "mineralogy:andesite", - "mineralogy:basalt", - "mineralogy:diorite", - "mineralogy:granite", - "mineralogy:rhyolite", - "mineralogy:pegmatite", - "mineralogy:diabase", - "mineralogy:gabbro", - "mineralogy:peridotite", - "mineralogy:basaltic_glass", - "mineralogy:scoria", - "mineralogy:tuff", - "mineralogy:shale", - "mineralogy:conglomerate", - "mineralogy:dolomite", - "mineralogy:limestone", - "mineralogy:siltstone", - "mineralogy:marble", - "mineralogy:rock_salt", - "mineralogy:slate", - "mineralogy:schist", - "mineralogy:gneiss", - "mineralogy:phyllite", - "mineralogy:amphibolite", - "mineralogy:hornfels", - "mineralogy:quartzite", - "mineralogy:novaculite" + "mineralogy:chert", + "mineralogy:pumice" ] } diff --git a/src/main/resources/data/forge/tags/fluids/crude_oil.json b/src/main/resources/data/forge/tags/fluids/crude_oil.json index 4c871dc8c..e80854f75 100644 --- a/src/main/resources/data/forge/tags/fluids/crude_oil.json +++ b/src/main/resources/data/forge/tags/fluids/crude_oil.json @@ -1,6 +1,7 @@ { "replace": false, "values": [ - "mineralogy:crude_oil" + "mineralogy:crude_oil", + "mineralogy:flowing_crude_oil" ] } diff --git a/src/main/resources/data/forge/tags/items/cobblestone.json b/src/main/resources/data/forge/tags/items/cobblestone.json index eccd4a778..4a747bf9a 100644 --- a/src/main/resources/data/forge/tags/items/cobblestone.json +++ b/src/main/resources/data/forge/tags/items/cobblestone.json @@ -1,32 +1,7 @@ { "replace": false, "values": [ - "mineralogy:andesite", - "mineralogy:basalt", - "mineralogy:diorite", - "mineralogy:granite", - "mineralogy:rhyolite", - "mineralogy:pegmatite", - "mineralogy:diabase", - "mineralogy:gabbro", - "mineralogy:peridotite", - "mineralogy:basaltic_glass", - "mineralogy:scoria", - "mineralogy:tuff", - "mineralogy:shale", - "mineralogy:conglomerate", - "mineralogy:dolomite", - "mineralogy:limestone", - "mineralogy:siltstone", - "mineralogy:marble", - "mineralogy:rock_salt", - "mineralogy:slate", - "mineralogy:schist", - "mineralogy:gneiss", - "mineralogy:phyllite", - "mineralogy:amphibolite", - "mineralogy:hornfels", - "mineralogy:quartzite", - "mineralogy:novaculite" + "mineralogy:chert", + "mineralogy:pumice" ] } diff --git a/src/main/resources/data/forge/tags/items/dusts/coal.json b/src/main/resources/data/forge/tags/items/dusts/coal.json new file mode 100644 index 000000000..5d341ba24 --- /dev/null +++ b/src/main/resources/data/forge/tags/items/dusts/coal.json @@ -0,0 +1,4 @@ +{ + "replace": false, + "values": [] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/deepslate_ore_replaceables.json b/src/main/resources/data/forge/tags/items/paper.json similarity index 63% rename from src/main/resources/data/minecraft/tags/blocks/deepslate_ore_replaceables.json rename to src/main/resources/data/forge/tags/items/paper.json index bd19e59b4..521196bf4 100644 --- a/src/main/resources/data/minecraft/tags/blocks/deepslate_ore_replaceables.json +++ b/src/main/resources/data/forge/tags/items/paper.json @@ -1,6 +1,6 @@ { "replace": false, "values": [ - "#mineralogy:rocks" + "minecraft:paper" ] } diff --git a/src/main/resources/data/forge/tags/items/sand.json b/src/main/resources/data/forge/tags/items/sand.json new file mode 100644 index 000000000..c2b982eea --- /dev/null +++ b/src/main/resources/data/forge/tags/items/sand.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "minecraft:sand", + "minecraft:red_sand" + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/brewing/brewing_stand.json b/src/main/resources/data/minecraft/advancements/recipes/brewing/brewing_stand.json new file mode 100644 index 000000000..d96be668c --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/brewing/brewing_stand.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:brewing_stand" + ] + }, + "criteria": { + "has_blaze_rod": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:blaze_rod" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:brewing_stand" + } + } + }, + "requirements": [ + [ + "has_blaze_rod", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:brewing_stand" + ] + }, + "criteria": { + "has_blaze_rod": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:blaze_rod" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:brewing_stand" + } + } + }, + "requirements": [ + [ + "has_blaze_rod", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/andesite.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/andesite.json new file mode 100644 index 000000000..ac6e1a203 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/andesite.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:andesite" + ] + }, + "criteria": { + "has_stone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:diorite" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:andesite" + } + } + }, + "requirements": [ + [ + "has_stone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:andesite" + ] + }, + "criteria": { + "has_stone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:diorite" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:andesite" + } + } + }, + "requirements": [ + [ + "has_stone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/diorite.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/diorite.json new file mode 100644 index 000000000..b381f095d --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/diorite.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:diorite" + ] + }, + "criteria": { + "has_quartz": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:quartz" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:diorite" + } + } + }, + "requirements": [ + [ + "has_quartz", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:diorite" + ] + }, + "criteria": { + "has_quartz": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:quartz" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:diorite" + } + } + }, + "requirements": [ + [ + "has_quartz", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_moss_block.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_moss_block.json new file mode 100644 index 000000000..7dfbc8f07 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_moss_block.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_moss_block" + ] + }, + "criteria": { + "has_moss_block": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:moss_block" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_moss_block" + } + } + }, + "requirements": [ + [ + "has_moss_block", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_moss_block" + ] + }, + "criteria": { + "has_moss_block": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:moss_block" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_moss_block" + } + } + }, + "requirements": [ + [ + "has_moss_block", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_vine.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_vine.json new file mode 100644 index 000000000..999a12461 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/mossy_cobblestone_from_vine.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_vine" + ] + }, + "criteria": { + "has_vine": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:vine" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_vine" + } + } + }, + "requirements": [ + [ + "has_vine", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:mossy_cobblestone_from_vine" + ] + }, + "criteria": { + "has_vine": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:vine" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:mossy_cobblestone_from_vine" + } + } + }, + "requirements": [ + [ + "has_vine", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_andesite.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_andesite.json new file mode 100644 index 000000000..c201195c4 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_andesite.json @@ -0,0 +1,50 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:polished_andesite" + ] + }, + "criteria": { + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:andesite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:polished_andesite" + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_basalt.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_basalt.json new file mode 100644 index 000000000..862f9d9ad --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_basalt.json @@ -0,0 +1,50 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:polished_basalt" + ] + }, + "criteria": { + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:basalt" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:polished_basalt" + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_diorite.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_diorite.json new file mode 100644 index 000000000..29b9d349d --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_diorite.json @@ -0,0 +1,50 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:polished_diorite" + ] + }, + "criteria": { + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:diorite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:polished_diorite" + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_granite.json b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_granite.json new file mode 100644 index 000000000..5c91f2ae2 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/building_blocks/polished_granite.json @@ -0,0 +1,50 @@ +{ + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:polished_granite" + ] + }, + "criteria": { + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:granite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:polished_granite" + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/combat/stone_sword.json b/src/main/resources/data/minecraft/advancements/recipes/combat/stone_sword.json new file mode 100644 index 000000000..5adba3e59 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/combat/stone_sword.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_sword" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_sword" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_sword" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_sword" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/decorations/furnace.json b/src/main/resources/data/minecraft/advancements/recipes/decorations/furnace.json new file mode 100644 index 000000000..8a8f9eece --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/decorations/furnace.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:furnace" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_crafting_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:furnace" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:furnace" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_crafting_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:furnace" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/redstone/dispenser.json b/src/main/resources/data/minecraft/advancements/recipes/redstone/dispenser.json new file mode 100644 index 000000000..11dcab87e --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/redstone/dispenser.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:dispenser" + ] + }, + "criteria": { + "has_bow": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:bow" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:dispenser" + } + } + }, + "requirements": [ + [ + "has_bow", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:dispenser" + ] + }, + "criteria": { + "has_bow": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:bow" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:dispenser" + } + } + }, + "requirements": [ + [ + "has_bow", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/redstone/dropper.json b/src/main/resources/data/minecraft/advancements/recipes/redstone/dropper.json new file mode 100644 index 000000000..4b7a1b567 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/redstone/dropper.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:dropper" + ] + }, + "criteria": { + "has_redstone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:redstone" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:dropper" + } + } + }, + "requirements": [ + [ + "has_redstone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:dropper" + ] + }, + "criteria": { + "has_redstone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:redstone" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:dropper" + } + } + }, + "requirements": [ + [ + "has_redstone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/redstone/lever.json b/src/main/resources/data/minecraft/advancements/recipes/redstone/lever.json new file mode 100644 index 000000000..705902e68 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/redstone/lever.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:lever" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:cobblestone_equivalents" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:lever" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:lever" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "forge:cobblestone" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:lever" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/redstone/observer.json b/src/main/resources/data/minecraft/advancements/recipes/redstone/observer.json new file mode 100644 index 000000000..4a6eb8715 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/redstone/observer.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:observer" + ] + }, + "criteria": { + "has_quartz": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:quartz" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:observer" + } + } + }, + "requirements": [ + [ + "has_quartz", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:observer" + ] + }, + "criteria": { + "has_quartz": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:quartz" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:observer" + } + } + }, + "requirements": [ + [ + "has_quartz", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/redstone/piston.json b/src/main/resources/data/minecraft/advancements/recipes/redstone/piston.json new file mode 100644 index 000000000..5360f2d6e --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/redstone/piston.json @@ -0,0 +1,91 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:piston" + ] + }, + "criteria": { + "has_redstone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:redstone" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:piston" + } + } + }, + "requirements": [ + [ + "has_redstone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:piston" + ] + }, + "criteria": { + "has_redstone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:redstone" + ] + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:piston" + } + } + }, + "requirements": [ + [ + "has_redstone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/tools/stone_axe.json b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_axe.json new file mode 100644 index 000000000..0ae57241d --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_axe.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_axe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_axe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_axe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_axe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/tools/stone_hoe.json b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_hoe.json new file mode 100644 index 000000000..435cbdf03 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_hoe.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_hoe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_hoe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_hoe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_hoe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/tools/stone_pickaxe.json b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_pickaxe.json new file mode 100644 index 000000000..d4febc9f7 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_pickaxe.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_pickaxe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_pickaxe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_pickaxe" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_pickaxe" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/advancements/recipes/tools/stone_shovel.json b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_shovel.json new file mode 100644 index 000000000..54d8ec221 --- /dev/null +++ b/src/main/resources/data/minecraft/advancements/recipes/tools/stone_shovel.json @@ -0,0 +1,87 @@ +{ + "advancements": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_shovel" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_shovel" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "advancement": { + "parent": "minecraft:recipes/root", + "rewards": { + "recipes": [ + "minecraft:stone_shovel" + ] + }, + "criteria": { + "has_cobblestone": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "minecraft:stone_tool_materials" + } + ] + } + }, + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "minecraft:stone_shovel" + } + } + }, + "requirements": [ + [ + "has_cobblestone", + "has_the_recipe" + ] + ] + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/andesite.json b/src/main/resources/data/minecraft/recipes/andesite.json index 915a7f1cd..e51cdd8cb 100644 --- a/src/main/resources/data/minecraft/recipes/andesite.json +++ b/src/main/resources/data/minecraft/recipes/andesite.json @@ -1,15 +1,54 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:diorite" - }, - { - "tag": "forge:cobblestone" - } - ], - "result": { - "item": "minecraft:andesite", - "count": 2 - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "tag": "mineralogy:cobblestone_equivalents" + } + ], + "result": { + "item": "minecraft:andesite", + "count": 2 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "tag": "forge:cobblestone" + } + ], + "result": { + "item": "minecraft:andesite", + "count": 2 + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/andesite_slab.json b/src/main/resources/data/minecraft/recipes/andesite_slab.json new file mode 100644 index 000000000..83c96a134 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/andesite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "result": { + "item": "minecraft:andesite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/andesite_slab_from_andesite_stonecutting.json b/src/main/resources/data/minecraft/recipes/andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 000000000..31a74d211 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": "mineralogy:andesite_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": "minecraft:andesite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/brewing_stand.json b/src/main/resources/data/minecraft/recipes/brewing_stand.json new file mode 100644 index 000000000..492aaaad8 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/brewing_stand.json @@ -0,0 +1,60 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "###" + ], + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "#": { + "tag": "mineralogy:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:brewing_stand" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + " B ", + "###" + ], + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "#": { + "tag": "minecraft:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:brewing_stand" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/diorite.json b/src/main/resources/data/minecraft/recipes/diorite.json index c736018d3..36069945d 100644 --- a/src/main/resources/data/minecraft/recipes/diorite.json +++ b/src/main/resources/data/minecraft/recipes/diorite.json @@ -1,19 +1,62 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "CQ", - "QC" - ], - "key": { - "Q": { - "item": "minecraft:quartz" - }, - "C": { - "tag": "forge:cobblestone" - } - }, - "result": { - "item": "minecraft:diorite", - "count": 2 - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "CQ", + "QC" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "C": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:diorite", + "count": 2 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "CQ", + "QC" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "C": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:diorite", + "count": 2 + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/diorite_slab.json b/src/main/resources/data/minecraft/recipes/diorite_slab.json new file mode 100644 index 000000000..d82220d8a --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/diorite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "result": { + "item": "minecraft:diorite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/diorite_slab_from_diorite_stonecutting.json b/src/main/resources/data/minecraft/recipes/diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 000000000..7718a7213 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": "mineralogy:diorite_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": "minecraft:diorite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/dispenser.json b/src/main/resources/data/minecraft/recipes/dispenser.json index e010879a3..456aa9adb 100644 --- a/src/main/resources/data/minecraft/recipes/dispenser.json +++ b/src/main/resources/data/minecraft/recipes/dispenser.json @@ -1,22 +1,68 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "#X#", - "#R#" - ], - "key": { - "R": { - "item": "minecraft:redstone" - }, - "#": { - "tag": "forge:cobblestone" - }, - "X": { - "item": "minecraft:bow" - } - }, - "result": { - "item": "minecraft:dispenser" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + }, + "X": { + "item": "minecraft:bow" + } + }, + "result": { + "item": "minecraft:dispenser" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "item": "minecraft:bow" + } + }, + "result": { + "item": "minecraft:dispenser" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/dropper.json b/src/main/resources/data/minecraft/recipes/dropper.json index 437c22cf6..2d027e2d9 100644 --- a/src/main/resources/data/minecraft/recipes/dropper.json +++ b/src/main/resources/data/minecraft/recipes/dropper.json @@ -1,19 +1,62 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "#R#" - ], - "key": { - "R": { - "item": "minecraft:redstone" - }, - "#": { - "tag": "forge:cobblestone" - } - }, - "result": { - "item": "minecraft:dropper" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:dropper" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:dropper" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/furnace.json b/src/main/resources/data/minecraft/recipes/furnace.json index 69998c5fd..6815bb49c 100644 --- a/src/main/resources/data/minecraft/recipes/furnace.json +++ b/src/main/resources/data/minecraft/recipes/furnace.json @@ -1,16 +1,56 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "# #", - "###" - ], - "key": { - "#": { - "tag": "mineralogy:vanilla_furnace_materials" - } - }, - "result": { - "item": "minecraft:furnace" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "###" + ], + "key": { + "#": { + "tag": "mineralogy:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:furnace" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "# #", + "###" + ], + "key": { + "#": { + "tag": "minecraft:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:furnace" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/granite_slab.json b/src/main/resources/data/minecraft/recipes/granite_slab.json new file mode 100644 index 000000000..398cc2df4 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/granite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "result": { + "item": "mineralogy:granite_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "result": { + "item": "minecraft:granite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/granite_slab_from_granite_stonecutting.json b/src/main/resources/data/minecraft/recipes/granite_slab_from_granite_stonecutting.json new file mode 100644 index 000000000..318e4db08 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/granite_slab_from_granite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": "mineralogy:granite_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": "minecraft:granite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/lever.json b/src/main/resources/data/minecraft/recipes/lever.json index 2d346f1d9..3cb1ea872 100644 --- a/src/main/resources/data/minecraft/recipes/lever.json +++ b/src/main/resources/data/minecraft/recipes/lever.json @@ -1,18 +1,60 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "X", - "#" - ], - "key": { - "#": { - "tag": "forge:cobblestone" - }, - "X": { - "item": "minecraft:stick" - } - }, - "result": { - "item": "minecraft:lever" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "mineralogy:cobblestone_equivalents" + }, + "X": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "minecraft:lever" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "minecraft:lever" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_moss_block.json b/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_moss_block.json index 209c9a281..7749dbfa8 100644 --- a/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_moss_block.json +++ b/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_moss_block.json @@ -1,15 +1,54 @@ { - "type": "minecraft:crafting_shapeless", - "group": "mossy_cobblestone", - "ingredients": [ - { - "tag": "forge:cobblestone" - }, - { - "item": "minecraft:moss_block" - } - ], - "result": { - "item": "minecraft:mossy_cobblestone" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "group": "mossy_cobblestone", + "ingredients": [ + { + "tag": "mineralogy:cobblestone_equivalents" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "item": "minecraft:mossy_cobblestone" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "group": "mossy_cobblestone", + "ingredients": [ + { + "tag": "forge:cobblestone" + }, + { + "item": "minecraft:moss_block" + } + ], + "result": { + "item": "minecraft:mossy_cobblestone" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_vine.json b/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_vine.json index aaa7ff7be..d99d8314c 100644 --- a/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_vine.json +++ b/src/main/resources/data/minecraft/recipes/mossy_cobblestone_from_vine.json @@ -1,15 +1,54 @@ { - "type": "minecraft:crafting_shapeless", - "group": "mossy_cobblestone", - "ingredients": [ - { - "tag": "forge:cobblestone" - }, - { - "item": "minecraft:vine" - } - ], - "result": { - "item": "minecraft:mossy_cobblestone" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "group": "mossy_cobblestone", + "ingredients": [ + { + "tag": "mineralogy:cobblestone_equivalents" + }, + { + "item": "minecraft:vine" + } + ], + "result": { + "item": "minecraft:mossy_cobblestone" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shapeless", + "group": "mossy_cobblestone", + "ingredients": [ + { + "tag": "forge:cobblestone" + }, + { + "item": "minecraft:vine" + } + ], + "result": { + "item": "minecraft:mossy_cobblestone" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/observer.json b/src/main/resources/data/minecraft/recipes/observer.json index 462665e45..cf5dee25e 100644 --- a/src/main/resources/data/minecraft/recipes/observer.json +++ b/src/main/resources/data/minecraft/recipes/observer.json @@ -1,22 +1,68 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "###", - "RRQ", - "###" - ], - "key": { - "Q": { - "item": "minecraft:quartz" - }, - "R": { - "item": "minecraft:redstone" - }, - "#": { - "tag": "forge:cobblestone" - } - }, - "result": { - "item": "minecraft:observer" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "RRQ", + "###" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:observer" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###", + "RRQ", + "###" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:observer" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/piston.json b/src/main/resources/data/minecraft/recipes/piston.json index a76f23df6..7ff6271de 100644 --- a/src/main/resources/data/minecraft/recipes/piston.json +++ b/src/main/resources/data/minecraft/recipes/piston.json @@ -1,25 +1,74 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "TTT", - "#X#", - "#R#" - ], - "key": { - "R": { - "item": "minecraft:redstone" - }, - "#": { - "tag": "forge:cobblestone" - }, - "T": { - "tag": "minecraft:planks" - }, - "X": { - "item": "minecraft:iron_ingot" - } - }, - "result": { - "item": "minecraft:piston" - } + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "TTT", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + }, + "T": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "result": { + "item": "minecraft:piston" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "TTT", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + }, + "T": { + "tag": "minecraft:planks" + }, + "X": { + "item": "minecraft:iron_ingot" + } + }, + "result": { + "item": "minecraft:piston" + } + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/polished_andesite.json b/src/main/resources/data/minecraft/recipes/polished_andesite.json new file mode 100644 index 000000000..362310f4a --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:andesite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "minecraft:polished_andesite", + "count": 1 + } +} diff --git a/src/main/resources/data/minecraft/recipes/polished_andesite_slab.json b/src/main/resources/data/minecraft/recipes/polished_andesite_slab.json new file mode 100644 index 000000000..47dd4edf6 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "result": { + "item": "minecraft:polished_andesite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_andesite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_andesite_stonecutting.json new file mode 100644 index 000000000..154525a4e --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_andesite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": "mineralogy:andesite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:andesite" + }, + "result": "minecraft:polished_andesite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_polished_andesite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_polished_andesite_stonecutting.json new file mode 100644 index 000000000..694788bb6 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite_slab_from_polished_andesite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_andesite" + }, + "result": "mineralogy:andesite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_andesite" + }, + "result": "minecraft:polished_andesite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_basalt.json b/src/main/resources/data/minecraft/recipes/polished_basalt.json new file mode 100644 index 000000000..5d4f6ee5e --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_basalt.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:basalt" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "minecraft:polished_basalt", + "count": 1 + } +} diff --git a/src/main/resources/data/minecraft/recipes/polished_diorite.json b/src/main/resources/data/minecraft/recipes/polished_diorite.json new file mode 100644 index 000000000..cec14689a --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diorite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "minecraft:polished_diorite", + "count": 1 + } +} diff --git a/src/main/resources/data/minecraft/recipes/polished_diorite_slab.json b/src/main/resources/data/minecraft/recipes/polished_diorite_slab.json new file mode 100644 index 000000000..41f6487f8 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "result": { + "item": "minecraft:polished_diorite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_diorite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_diorite_stonecutting.json new file mode 100644 index 000000000..2dc3ffbc8 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_diorite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": "mineralogy:diorite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:diorite" + }, + "result": "minecraft:polished_diorite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_polished_diorite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_polished_diorite_stonecutting.json new file mode 100644 index 000000000..d96c5fa9d --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite_slab_from_polished_diorite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_diorite" + }, + "result": "mineralogy:diorite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_diorite" + }, + "result": "minecraft:polished_diorite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_granite.json b/src/main/resources/data/minecraft/recipes/polished_granite.json new file mode 100644 index 000000000..5edeb5a84 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:granite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "minecraft:polished_granite", + "count": 1 + } +} diff --git a/src/main/resources/data/minecraft/recipes/polished_granite_slab.json b/src/main/resources/data/minecraft/recipes/polished_granite_slab.json new file mode 100644 index 000000000..56beae068 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite_slab.json @@ -0,0 +1,54 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 6 + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "result": { + "item": "minecraft:polished_granite_slab", + "count": 6 + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_granite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_granite_stonecutting.json new file mode 100644 index 000000000..bf8e93316 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_granite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": "mineralogy:granite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:granite" + }, + "result": "minecraft:polished_granite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_polished_granite_stonecutting.json b/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_polished_granite_stonecutting.json new file mode 100644 index 000000000..c3fe951d0 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite_slab_from_polished_granite_stonecutting.json @@ -0,0 +1,40 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_granite" + }, + "result": "mineralogy:granite_smooth_slab", + "count": 2 + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:stonecutting", + "ingredient": { + "item": "minecraft:polished_granite" + }, + "result": "minecraft:polished_granite_slab", + "count": 2 + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/stone.json b/src/main/resources/data/minecraft/recipes/stone.json deleted file mode 100644 index 7d64bde64..000000000 --- a/src/main/resources/data/minecraft/recipes/stone.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "type": "minecraft:smelting", - "ingredient": { - "tag": "forge:cobblestone" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 -} diff --git a/src/main/resources/data/minecraft/recipes/stone_axe.json b/src/main/resources/data/minecraft/recipes/stone_axe.json new file mode 100644 index 000000000..d56421e42 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_axe.json @@ -0,0 +1,62 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_axe" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_axe" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/stone_hoe.json b/src/main/resources/data/minecraft/recipes/stone_hoe.json new file mode 100644 index 000000000..d42d22cb4 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_hoe.json @@ -0,0 +1,62 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_hoe" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_hoe" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/stone_pickaxe.json b/src/main/resources/data/minecraft/recipes/stone_pickaxe.json new file mode 100644 index 000000000..9ceee3d7b --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_pickaxe.json @@ -0,0 +1,62 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_pickaxe" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_pickaxe" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/stone_shovel.json b/src/main/resources/data/minecraft/recipes/stone_shovel.json new file mode 100644 index 000000000..21d1d2c1b --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_shovel.json @@ -0,0 +1,62 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_shovel" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_shovel" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/stone_sword.json b/src/main/resources/data/minecraft/recipes/stone_sword.json new file mode 100644 index 000000000..19d45c5d6 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_sword.json @@ -0,0 +1,62 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_sword" + } + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_sword" + } + } + } + ] +} diff --git a/src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json b/src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json deleted file mode 100644 index 530abc167..000000000 --- a/src/main/resources/data/minecraft/tags/blocks/base_stone_overworld.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "replace": false, - "values": [ - "#mineralogy:rocks", - "minecraft:andesite", - "minecraft:basalt", - "minecraft:diorite", - "minecraft:granite", - "minecraft:tuff" - ] -} diff --git a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json index fe63bb051..0e34ab988 100644 --- a/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json +++ b/src/main/resources/data/minecraft/tags/blocks/mineable/pickaxe.json @@ -1,4 +1,4 @@ -{ +{ "replace": false, "values": [ "mineralogy:amphibolite", diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json index b915869ea..a6b25e6cd 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_iron_tool.json @@ -1,4 +1,4 @@ -{ +{ "replace": false, "values": [ "mineralogy:basalt", diff --git a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json index e5a8c8aa7..4a6dbafcf 100644 --- a/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json +++ b/src/main/resources/data/minecraft/tags/blocks/needs_stone_tool.json @@ -1,4 +1,4 @@ -{ +{ "replace": false, "values": [ "mineralogy:amphibolite", diff --git a/src/main/resources/data/minecraft/tags/blocks/stone_ore_replaceables.json b/src/main/resources/data/minecraft/tags/blocks/stone_ore_replaceables.json deleted file mode 100644 index 530abc167..000000000 --- a/src/main/resources/data/minecraft/tags/blocks/stone_ore_replaceables.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "replace": false, - "values": [ - "#mineralogy:rocks", - "minecraft:andesite", - "minecraft:basalt", - "minecraft:diorite", - "minecraft:granite", - "minecraft:tuff" - ] -} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick.json index 8d9676560..e334b0b91 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_block_polishing.json new file mode 100644 index 000000000..799daa8f0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_furnace.json index 1b184ce18..27173e80e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:amphibolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/amphibolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab.json index a7644bac4..666bfb8e5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:amphibolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_polishing.json new file mode 100644 index 000000000..d35bda430 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_recombination.json new file mode 100644 index 000000000..509a125c2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs.json index 1247f9680..c59d0c4d4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:amphibolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs_polishing.json new file mode 100644 index 000000000..67dc69180 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall.json index e2e0b0383..e5e2e85d0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:amphibolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall_polishing.json new file mode 100644 index 000000000..9b832b0a4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_cobblestone.json new file mode 100644 index 000000000..47d16830d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_furnace.json index 09a1d9933..4a7002a77 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/amphibolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..717770ff3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slab_recombination.json new file mode 100644 index 000000000..aa68f4a42 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slabs_to_brick.json new file mode 100644 index 000000000..ce5e04a79 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_stairs_to_brick.json new file mode 100644 index 000000000..e3d85e98f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_walls_to_brick.json new file mode 100644 index 000000000..ed59a87f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_polishing.json new file mode 100644 index 000000000..c7b5e8b0f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_recombination.json new file mode 100644 index 000000000..4c0778f5b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slabs_to_brick.json new file mode 100644 index 000000000..41c5823d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_polishing.json new file mode 100644 index 000000000..375cf06ba --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_to_brick.json new file mode 100644 index 000000000..f4f56e5cc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_wall_polishing.json new file mode 100644 index 000000000..b639d0fc7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_walls_to_brick.json new file mode 100644 index 000000000..90ec3265f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_axe.json index 323262aa9..edb719955 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_blank.json index 04362210b..dbef3226c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_cross.json index 50e6905e0..39f11b1bd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hammer.json index 7126bc991..9129b338a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hoe.json index ac2aa25d6..64c5827b6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_horizontal.json index a585125bb..b4638df74 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_i.json index 27bbbd821..8b93cd5e0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_left.json index 6e94b26c6..734c1a415 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_pickaxe.json index fa4e75d26..a30d4e8b1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_plus.json index 68f7949b1..46ece6543 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_right.json index 0315f2c7f..c70ddd243 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_sword.json index 51b1852a4..372d21ca9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_vertical.json index 721400da9..0be3d1a51 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_slab.json index f052be64e..71b210815 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth.json index 6de5e19b4..ba4f39b6e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick.json index 5f7feb7f7..3920eddd2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_furnace.json index c534f493c..75995a083 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:amphibolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/amphibolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_slab.json index 14a9e5e73..330c79152 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:amphibolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_stairs.json index 51155dddc..c211d85bd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:amphibolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_wall.json index 853220680..a7514ea1f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:amphibolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_furnace.json index ffc08031d..7a059acd7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/amphibolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_slab.json index b65791635..89385854c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_stairs.json index 581c76fe2..d475e202c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_wall.json index b0cfbc3ae..e1c0c5f75 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:amphibolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_stairs.json index 1d2d0977f..a92a06447 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_to_stone.json new file mode 100644 index 000000000..873844aa5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:amphibolite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:amphibolite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_wall.json index 1d0de6bd1..4e23db22c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/amphibolite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:amphibolite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:amphibolite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:amphibolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:amphibolite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:amphibolite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/amphibolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick.json index 158e32221..d6c8754bb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:andesite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_block_polishing.json new file mode 100644 index 000000000..af8db5c2c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_furnace.json index 353cbbe4c..2a05ff509 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:andesite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/andesite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab.json index 901cb7842..6f635fc61 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:andesite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_polishing.json new file mode 100644 index 000000000..ce0d0a87c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_recombination.json new file mode 100644 index 000000000..831da7933 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs.json index 6c766a9d8..f41e3ea25 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:andesite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs_polishing.json new file mode 100644 index 000000000..c19c53fd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall.json index 13ff88985..c644b8210 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:andesite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall_polishing.json new file mode 100644 index 000000000..fe7172659 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_cobblestone.json new file mode 100644 index 000000000..89b36f284 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_furnace.json index f6df95a18..243f26814 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_furnace.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/andesite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/andesite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..7f1cc49e2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slab_recombination.json new file mode 100644 index 000000000..fbca5eba0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slabs_to_brick.json new file mode 100644 index 000000000..56c6467e7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_stairs_to_brick.json new file mode 100644 index 000000000..8769b4326 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_walls_to_brick.json new file mode 100644 index 000000000..321cc0b6c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_polishing.json new file mode 100644 index 000000000..d464b8e53 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_recombination.json new file mode 100644 index 000000000..f7d7a2841 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slabs_to_brick.json new file mode 100644 index 000000000..2b1c606ad --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_polishing.json new file mode 100644 index 000000000..3f5bbcd7b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_to_brick.json new file mode 100644 index 000000000..83bd65279 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_wall_polishing.json new file mode 100644 index 000000000..0195b869a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_walls_to_brick.json new file mode 100644 index 000000000..90a41bae4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_axe.json index b2256859e..2cdf222ce 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_blank.json index cb57e0387..d3d1a1f81 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_blank.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_cross.json index ccfc33bc2..6a1074b4f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hammer.json index 8dadfb579..c8a7d3290 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hoe.json index 2e422bfb5..739fd67b8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_horizontal.json index 50d4e2c0c..858f1e700 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_i.json index 7362d062f..df27aa16d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_left.json index 7441a6a1f..90b2200f9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_pickaxe.json index 2f9ebd123..444b2bc6d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_plus.json index 9ef3c95eb..17c3d1e3d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_right.json index fa5b7488b..8c73f4eb7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_sword.json index 6d135dfc1..a485aea95 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_vertical.json index ba48997ec..ac9b7ea28 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab.json index 9da88f5d8..d33e54aea 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:andesite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_from_vanilla.json new file mode 100644 index 000000000..9d693c9b4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:andesite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_to_vanilla.json new file mode 100644 index 000000000..494014316 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth.json index e16f0a1cd..46d78463a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth.json @@ -1,31 +1,55 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/andesite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick.json index 5ab2ebcfc..cc90f96bb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_furnace.json index 7e742af52..b94fe2ae4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:andesite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/andesite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_slab.json index 629c493f5..7edf12360 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:andesite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_stairs.json index f5cf7e7cf..f4f70b7c8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:andesite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_wall.json index 8ee512a65..4acd60a59 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:andesite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_furnace.json index b5961e633..1ae828cc7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/andesite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab.json index b872071aa..8ca880d5f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..86eb6fdc2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:polished_andesite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..15eba1603 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_stairs.json index 372fd72ab..f5286e5b0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_stairs.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_wall.json index 9a2528370..b92eb9b73 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:andesite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/andesite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_stairs.json index 68d1e3ef9..7bc6cd011 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_stairs.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:andesite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_to_stone.json new file mode 100644 index 000000000..8979aa47a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:andesite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/andesite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/andesite_wall.json index 9972efc56..e69afdf71 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/andesite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/andesite_wall.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:andesite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:andesite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:andesite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:andesite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:andesite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:andesite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick.json index 1f4e56e75..0cf45f217 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basalt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_block_polishing.json new file mode 100644 index 000000000..bf7333669 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_furnace.json index cb9e93215..292e085be 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basalt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basalt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab.json index b4bdefbd0..524076659 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basalt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_polishing.json new file mode 100644 index 000000000..3c499418b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_recombination.json new file mode 100644 index 000000000..d11bae02f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs.json index 8c4b69e6a..862c1c3b4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basalt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs_polishing.json new file mode 100644 index 000000000..23e9a466a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall.json index 1b7943e59..c5f9fafe1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basalt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall_polishing.json new file mode 100644 index 000000000..eb530a869 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_cobblestone.json new file mode 100644 index 000000000..246f456a3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_furnace.json index b30dbb82b..75937e579 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_furnace.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/basalt" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_brick_slab_recombination.json new file mode 100644 index 000000000..d2b5d1dbb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slab_recombination.json new file mode 100644 index 000000000..7dc4626fc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slabs_to_brick.json new file mode 100644 index 000000000..6930f8371 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_stairs_to_brick.json new file mode 100644 index 000000000..b6288b53d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_walls_to_brick.json new file mode 100644 index 000000000..ec0fa0853 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_polishing.json new file mode 100644 index 000000000..d1215cf76 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_recombination.json new file mode 100644 index 000000000..5ad5507d2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slabs_to_brick.json new file mode 100644 index 000000000..b13fcae2d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_polishing.json new file mode 100644 index 000000000..ff2060f7c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_to_brick.json new file mode 100644 index 000000000..b25a3b5e2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_wall_polishing.json new file mode 100644 index 000000000..2d9d0b1f7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_walls_to_brick.json new file mode 100644 index 000000000..0d9e63023 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_axe.json index 3b04680c8..f2b1ecbaf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_blank.json index ee98a2e05..68da9a9a2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_blank.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_cross.json index 8b56b1ba3..a0f660f0e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hammer.json index f3813531e..3fc99847a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hoe.json index d5c5f1fae..afb006861 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_horizontal.json index 65bef0b89..5a7c94034 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_i.json index 889192489..2e9e67f61 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_left.json index b0de801c6..93ce1b31c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_pickaxe.json index 41a97512c..3fe245eaa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_plus.json index dd586fbae..00beeff1a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_right.json index ad0f49e25..b410e0d9d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_sword.json index 61546e3e1..bf15eb288 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_vertical.json index 57233be6e..76a1f0445 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_slab.json index 1bff5cd88..d3b14a55b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_slab.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/basalt" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth.json index 073e271b7..0a1999ddb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth.json @@ -1,31 +1,55 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/basalt" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick.json index 82974b53f..ee1b61c92 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_furnace.json index a0d4b7ab2..c99b2c79c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basalt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basalt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_slab.json index 94bd7f4c3..721699f83 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basalt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_stairs.json index c93a36155..cdc5fb115 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basalt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_wall.json index abbaee0f5..e411c5664 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basalt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_furnace.json index c1c4fd074..ff71e1011 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_slab.json index 481476792..18282319c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_slab.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_stairs.json index f106b6b1f..c3d3e44f4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_wall.json index e6b8241a2..90b120d0f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basalt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_stairs.json index 98ee5afcd..27e4de6c0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_stairs.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/basalt" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_to_stone.json new file mode 100644 index 000000000..179a30eed --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:basalt_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basalt" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basalt_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basalt_wall.json index 472ab6913..24eaa7553 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basalt_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basalt_wall.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basalt_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basalt_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/basalt" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basalt_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basalt_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basalt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick.json index 8b1a4444b..780b17fd3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_block_polishing.json new file mode 100644 index 000000000..5ae863fb8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_furnace.json index 9aa82fe07..fda3096ea 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basaltic_glass_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basaltic_glass/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab.json index 2b3189e75..d562f7022 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basaltic_glass_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_polishing.json new file mode 100644 index 000000000..5ef5fb950 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_recombination.json new file mode 100644 index 000000000..812087a4f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs.json index 2ec98c6c5..349f965df 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basaltic_glass_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs_polishing.json new file mode 100644 index 000000000..ac639e88b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall.json index 4f5720c63..2a8289b1b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:basaltic_glass_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall_polishing.json new file mode 100644 index 000000000..28db5a95c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_cobblestone.json new file mode 100644 index 000000000..d12c6492c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_furnace.json index 863a7d2e9..eaf4e224f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basaltic_glass" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_brick_slab_recombination.json new file mode 100644 index 000000000..4f1864a46 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slab_recombination.json new file mode 100644 index 000000000..2976bcc2b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slabs_to_brick.json new file mode 100644 index 000000000..9a2ca3203 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_stairs_to_brick.json new file mode 100644 index 000000000..86f620075 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_walls_to_brick.json new file mode 100644 index 000000000..90c1f43b6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_polishing.json new file mode 100644 index 000000000..31cd01bf7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_recombination.json new file mode 100644 index 000000000..cc740a026 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slabs_to_brick.json new file mode 100644 index 000000000..95324085f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_polishing.json new file mode 100644 index 000000000..46e3365b2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_to_brick.json new file mode 100644 index 000000000..28c7fb4e4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_wall_polishing.json new file mode 100644 index 000000000..ca0bd18fa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_walls_to_brick.json new file mode 100644 index 000000000..f29ea4e47 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_axe.json index 013dedde6..9d69141c6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_blank.json index 7646f6ed3..5d4f581ba 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_cross.json index fae1a6df1..6af2838e9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hammer.json index 7c975a05d..e4df266f7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hoe.json index a6382ecea..bf38e3b3f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_horizontal.json index 40abf6f38..8d9eabbb5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_i.json index 4b25f78c4..737c52e38 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_left.json index 01a71093e..fcc8e188e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_pickaxe.json index c615fc148..ef715c39d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_plus.json index e4fb3ae27..065928510 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_right.json index 35767b313..738a169b3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_sword.json index 1d900c931..ab2908e03 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_vertical.json index e0bb5429a..9fc7c1cfc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_slab.json index 0c77843ae..6f6f1d2e3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth.json index 42f5df951..b01310221 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick.json index 1ba455534..6260ef1ba 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_furnace.json index b78306a4a..9c7b90f05 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basaltic_glass_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basaltic_glass/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_slab.json index 50b4a48c0..00a32d15a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basaltic_glass_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_stairs.json index aee697972..1135e2fc8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basaltic_glass_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_wall.json index bdb85af22..1e5094798 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:basaltic_glass_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_furnace.json index 8392ef825..3ed38d897 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/basaltic_glass/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_slab.json index beb9b7f08..73704445d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_stairs.json index f8b2c89b7..848c91460 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_wall.json index 4b98b11df..48191f72c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:basaltic_glass_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_stairs.json index eb0109941..52c506052 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_to_stone.json new file mode 100644 index 000000000..8149e515b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:basaltic_glass" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_wall.json index f43b6e5a8..dde7d2c5a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/basaltic_glass_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:basaltic_glass_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:basaltic_glass_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:basaltic_glass" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:basaltic_glass_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:basaltic_glass_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/basaltic_glass" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/chalk.json b/src/main/resources/data/mineralogy/advancements/recipes/chalk.json new file mode 100644 index 000000000..82cb3a5da --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/chalk.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:chalk" + } + ], + "rewards": { + "recipes": [ + "mineralogy:chalk" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:chalk" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:chalk_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/chalk_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/chalk_dust.json new file mode 100644 index 000000000..dd7ec4b54 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/chalk_dust.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:chalk_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:chalk_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:chalk_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:chalk" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/cobblestone.json new file mode 100644 index 000000000..661a34206 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/cobblestone.json @@ -0,0 +1,36 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:stone" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick.json index 8918e8a7d..557cb3073 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_block_polishing.json new file mode 100644 index 000000000..bbc48c974 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_furnace.json index 4b9a53fb6..f3dc4b135 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:conglomerate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/conglomerate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab.json index a8847515b..1e6c908ba 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:conglomerate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_polishing.json new file mode 100644 index 000000000..1491db5b3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_recombination.json new file mode 100644 index 000000000..c31adbb2c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs.json index f26f13d8c..2c516e81e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:conglomerate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs_polishing.json new file mode 100644 index 000000000..0f7a7c2b7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall.json index 023faf7f7..6c1530992 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:conglomerate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall_polishing.json new file mode 100644 index 000000000..07c1a1eef --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_cobblestone.json new file mode 100644 index 000000000..15367510d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_furnace.json index 66e0579d5..9967001f9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/conglomerate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_brick_slab_recombination.json new file mode 100644 index 000000000..034b134a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slab_recombination.json new file mode 100644 index 000000000..c1e81d8aa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slabs_to_brick.json new file mode 100644 index 000000000..b740a5f5b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_stairs_to_brick.json new file mode 100644 index 000000000..fcf4afcad --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_walls_to_brick.json new file mode 100644 index 000000000..470f6460a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_polishing.json new file mode 100644 index 000000000..e58eee2fa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_recombination.json new file mode 100644 index 000000000..733eeee2b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slabs_to_brick.json new file mode 100644 index 000000000..8d9453823 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_polishing.json new file mode 100644 index 000000000..690dcdcaf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_to_brick.json new file mode 100644 index 000000000..9dda6c981 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_wall_polishing.json new file mode 100644 index 000000000..5d1e9f9ff --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_walls_to_brick.json new file mode 100644 index 000000000..45d15c9cc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_axe.json index 5c96cccd9..e21a800ce 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_blank.json index fdbd68487..5481a176b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_cross.json index de30bf39b..58a06f8b4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hammer.json index 6c035851b..43ce2705e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hoe.json index 3ef7b3dfe..d6a57bb2c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_horizontal.json index 6f7e040d2..bb7b997eb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_i.json index 5504d8af3..748299029 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_left.json index 69ca1ff53..729297ac4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_pickaxe.json index 9faa30149..03cf0e044 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_plus.json index 38fbb2c87..574ae1052 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_right.json index e893e6c79..3cd261fa9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_sword.json index c217fc623..60354604b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_vertical.json index 802daece1..a3b70e03f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_slab.json index aa45a5243..68dd161ff 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth.json index ad22c853c..323ace332 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick.json index 9c5415808..4b7c87668 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_furnace.json index a52ae250e..0282b3ec4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:conglomerate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/conglomerate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_slab.json index 16336f112..d39a0a741 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:conglomerate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_stairs.json index bd8097fd6..a80ed8ffc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:conglomerate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_wall.json index a695f5d42..d0f8ddcee 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:conglomerate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_furnace.json index 087aedc46..a4a6893b9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/conglomerate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_slab.json index e9fda4933..d28d90041 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_stairs.json index 51605d051..0d5d87743 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_wall.json index 8b90cd0b7..7932df62a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:conglomerate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_stairs.json index 0b871cf6c..8c38b6600 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_to_stone.json new file mode 100644 index 000000000..f6669aec1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:conglomerate_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:conglomerate" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_wall.json index 2e5cfd547..be860e102 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/conglomerate_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:conglomerate_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:conglomerate_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:conglomerate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:conglomerate_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:conglomerate_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/conglomerate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick.json index 7216bd271..45db18c85 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_block_polishing.json new file mode 100644 index 000000000..bfd93b30a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_furnace.json index 7614dbdbe..a023abaa1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diabase_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diabase/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab.json index 31e8eaa3f..569a95235 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diabase_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_polishing.json new file mode 100644 index 000000000..f21130d98 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_recombination.json new file mode 100644 index 000000000..270f3b9c8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs.json index 37e3a0a99..1e0f44a18 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diabase_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs_polishing.json new file mode 100644 index 000000000..6ee40d3cf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall.json index 274a85cf2..8b6fdb844 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diabase_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall_polishing.json new file mode 100644 index 000000000..f2798b0ee --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_cobblestone.json new file mode 100644 index 000000000..10674be47 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_furnace.json index 9fa2a9636..b069ca1ff 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diabase" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_brick_slab_recombination.json new file mode 100644 index 000000000..b9a448937 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slab_recombination.json new file mode 100644 index 000000000..1acb95e1a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slabs_to_brick.json new file mode 100644 index 000000000..9d7138d37 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_stairs_to_brick.json new file mode 100644 index 000000000..db7ebb829 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_walls_to_brick.json new file mode 100644 index 000000000..aeea163a7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_polishing.json new file mode 100644 index 000000000..40f8af8de --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_recombination.json new file mode 100644 index 000000000..f66087c86 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slabs_to_brick.json new file mode 100644 index 000000000..ecb844aa0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_polishing.json new file mode 100644 index 000000000..6167654fa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_to_brick.json new file mode 100644 index 000000000..d730f5d82 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_wall_polishing.json new file mode 100644 index 000000000..43de03c43 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_walls_to_brick.json new file mode 100644 index 000000000..559424279 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_axe.json index ab63e15a2..b577e2f7c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_blank.json index 400dda161..54f843646 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_cross.json index 60ef903a2..738fb5526 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hammer.json index 6bb77f1fe..165f35dad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hoe.json index 473f532f4..03bbb8c43 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_horizontal.json index 014083053..87fa3b9e2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_i.json index bf784564b..7d556019b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_left.json index 0c2fb1f2e..acc777458 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_pickaxe.json index 78301bfcf..cb60d6a90 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_plus.json index 6231e8162..7e87a1f2a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_right.json index 985156ae0..eaa73da3e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_sword.json index 504109a54..a018dc5bc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_vertical.json index 3a86999f0..0f9d58bae 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_slab.json index 57940d978..4e2bd9ec9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth.json index 6200ae1d8..30264e6fb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick.json index 9de658506..b6896c5cb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_furnace.json index fe7b3f483..8a4a7e403 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diabase_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diabase/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_slab.json index 65d2e8a12..06d36ef8e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diabase_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_stairs.json index 914745830..3c71d1bab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diabase_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_wall.json index f5b7e5017..35428590e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diabase_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_furnace.json index 2f8801041..d16a4e86c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diabase/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_slab.json index a49ecc480..e8b52d7b0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_stairs.json index d884cbdda..8d0a44b80 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_wall.json index d2d1c8d47..afb37f795 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diabase_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_stairs.json index 7425729ba..0f912f525 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_to_stone.json new file mode 100644 index 000000000..511003942 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:diabase_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diabase" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diabase_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diabase_wall.json index 84c4566bd..81429a97d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diabase_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diabase_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diabase_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diabase_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diabase" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diabase_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diabase_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diabase" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick.json index e70964551..942b260d0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diorite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_block_polishing.json new file mode 100644 index 000000000..8d2b0a480 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_furnace.json index 02be2c429..55b0dd6f9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diorite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diorite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab.json index a40e8b23c..2fa5ca687 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diorite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_polishing.json new file mode 100644 index 000000000..e0d12026d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_recombination.json new file mode 100644 index 000000000..e2088c77c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs.json index 28825352b..a9039fb1b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diorite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs_polishing.json new file mode 100644 index 000000000..032060270 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall.json index c878ced3d..b0152339c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:diorite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall_polishing.json new file mode 100644 index 000000000..e25f8b415 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_cobblestone.json new file mode 100644 index 000000000..ac71661ea --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_furnace.json index 71bea0fe8..1de614ab6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_furnace.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/diorite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diorite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..65f88bb59 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slab_recombination.json new file mode 100644 index 000000000..0f3c7675c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slabs_to_brick.json new file mode 100644 index 000000000..344bf40c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_stairs_to_brick.json new file mode 100644 index 000000000..bbeb6c4eb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_walls_to_brick.json new file mode 100644 index 000000000..53f7ede73 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_polishing.json new file mode 100644 index 000000000..e07e2b068 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_recombination.json new file mode 100644 index 000000000..2ef28f07e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slabs_to_brick.json new file mode 100644 index 000000000..045f485ab --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_polishing.json new file mode 100644 index 000000000..202a2f231 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_to_brick.json new file mode 100644 index 000000000..3d3892b48 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_wall_polishing.json new file mode 100644 index 000000000..dda07b128 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_walls_to_brick.json new file mode 100644 index 000000000..ce05762f3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_axe.json index 370332359..6f362d0cc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_blank.json index 04503141a..122e56dd3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_blank.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_cross.json index 49203ea3a..0d659dfff 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hammer.json index f87c9e4c3..8869a160b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hoe.json index fdd8e8914..07d163567 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_horizontal.json index d9a16177e..f85a14c13 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_i.json index b05541769..fefaf1e51 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_left.json index 38b007421..1788fb4f2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_pickaxe.json index 889528443..2a37689ff 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_plus.json index f05531b61..a9115774a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_right.json index b5f3f1cc3..f31b26375 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_sword.json index 787f42c80..a34396ed0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_vertical.json index 8b2f88b87..db1bc62e2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab.json index 06ce27b94..bb2ded017 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diorite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_from_vanilla.json new file mode 100644 index 000000000..3c36f2d39 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:diorite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_to_vanilla.json new file mode 100644 index 000000000..1ac22aa64 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth.json index 2d4b7eabd..b7c9d037b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth.json @@ -1,31 +1,55 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/diorite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick.json index 71a6e2a22..78615b863 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_furnace.json index cc87ad776..c51a15a73 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diorite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diorite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_slab.json index 15bdc32f9..d2839007b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diorite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_stairs.json index 588036d7d..e94fd425b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diorite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_wall.json index 9dc3b4796..0846b9e4e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:diorite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_furnace.json index ed5312375..5b13e5e72 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/diorite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab.json index 6624a5c8d..a0d86b476 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..74245ee06 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:polished_diorite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..166f2b72d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_stairs.json index 5a6afceed..d357fbc26 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_stairs.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_wall.json index 3873ad2c7..547c8720a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:diorite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/diorite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_stairs.json index f5a46389b..2c2b106e9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_stairs.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diorite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_to_stone.json new file mode 100644 index 000000000..929c6a8fe --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:diorite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/diorite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/diorite_wall.json index b706992bc..132753c99 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/diorite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/diorite_wall.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:diorite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:diorite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:diorite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:diorite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:diorite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:diorite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick.json index f0ce37ad6..d8732d83b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_block_polishing.json new file mode 100644 index 000000000..b8e513a0a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_furnace.json index ecb58858c..fa4daa286 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:dolomite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/dolomite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab.json index d9685d37b..58111b867 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:dolomite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_polishing.json new file mode 100644 index 000000000..e81d004fa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_recombination.json new file mode 100644 index 000000000..a95a6575e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs.json index bc3cb4318..5e0126c42 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:dolomite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs_polishing.json new file mode 100644 index 000000000..a197470e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall.json index 5f5baed43..0b74760be 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:dolomite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall_polishing.json new file mode 100644 index 000000000..135126763 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_cobblestone.json new file mode 100644 index 000000000..1c5351fdc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_furnace.json index 83536f798..e32873cfd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/dolomite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..cedab83e9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slab_recombination.json new file mode 100644 index 000000000..df321e810 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slabs_to_brick.json new file mode 100644 index 000000000..332538add --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_stairs_to_brick.json new file mode 100644 index 000000000..c748454b6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_walls_to_brick.json new file mode 100644 index 000000000..6a88fb963 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_polishing.json new file mode 100644 index 000000000..af6da161e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_recombination.json new file mode 100644 index 000000000..7aed24f28 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slabs_to_brick.json new file mode 100644 index 000000000..597906629 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_polishing.json new file mode 100644 index 000000000..282c0e18b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_to_brick.json new file mode 100644 index 000000000..7abde9274 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_wall_polishing.json new file mode 100644 index 000000000..4dbd96265 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_walls_to_brick.json new file mode 100644 index 000000000..60d45768b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_axe.json index e5f6e685f..ccf98e0f8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_blank.json index 529184e88..fe8040f88 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_cross.json index 28d14c336..266bd63a8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hammer.json index f25cce443..b8b56c248 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hoe.json index f305bf749..878349d05 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_horizontal.json index a6fc52663..dd53c6690 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_i.json index e221aaa7b..8e1d774b4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_left.json index 76153db6d..6f92ccc23 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_pickaxe.json index fa37dd73a..5db490d9f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_plus.json index 9943303db..1fc4a064a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_right.json index 63ee742b5..1f4acdbcc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_sword.json index a230440f7..27373fb5d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_vertical.json index 21528d629..89f8ef82b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_slab.json index b092f3013..b7322cb62 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth.json index d0894ee02..571e0b918 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick.json index c0dc33ae0..f4f0f9884 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_furnace.json index 8ec634183..d641877bf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:dolomite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/dolomite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_slab.json index f7739c494..0523296a2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:dolomite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_stairs.json index 45245d1f0..2287663e3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:dolomite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_wall.json index 614f7130b..ae55b18d8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:dolomite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_furnace.json index 5a7e9b627..b20e9c2a2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/dolomite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_slab.json index 49d859a2e..8b168d5d9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_stairs.json index 91ca22396..003df93ba 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_wall.json index 75e061d25..939ab1b52 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:dolomite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_stairs.json index beda24aa1..0c5cb888e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_to_stone.json new file mode 100644 index 000000000..c9352ace5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:dolomite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:dolomite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_wall.json index 0660eb134..bdaefc444 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/dolomite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/dolomite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:dolomite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:dolomite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:dolomite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:dolomite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:dolomite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/dolomite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall.json new file mode 100644 index 000000000..5ff2a4054 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_white" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gypsum_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_black.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_black.json new file mode 100644 index 000000000..348fc7bc6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_black.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_black" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_black" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_black" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_blue.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_blue.json new file mode 100644 index 000000000..ab74cddb7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_blue.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_blue" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_blue" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_blue" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_brown.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_brown.json new file mode 100644 index 000000000..5a9c32255 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_brown.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_brown" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_brown" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_brown" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_cyan.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_cyan.json new file mode 100644 index 000000000..b0093152d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_cyan.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_cyan" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_cyan" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_cyan" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_gray.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_gray.json new file mode 100644 index 000000000..1ab6e1a9f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_gray.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_gray" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_gray" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_gray" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_green.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_green.json new file mode 100644 index 000000000..24023c0e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_green.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_green" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_green" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_green" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_light_blue.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_light_blue.json new file mode 100644 index 000000000..6c524e771 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_light_blue.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_light_blue" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_light_blue" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_light_blue" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_lime.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_lime.json new file mode 100644 index 000000000..fc192f108 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_lime.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_lime" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_lime" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_lime" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_magenta.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_magenta.json new file mode 100644 index 000000000..56fe631e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_magenta.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_magenta" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_magenta" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_magenta" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_orange.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_orange.json new file mode 100644 index 000000000..58899cfcf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_orange.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_orange" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_orange" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_orange" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_pink.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_pink.json new file mode 100644 index 000000000..c6cbbc948 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_pink.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_pink" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_pink" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_pink" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_purple.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_purple.json new file mode 100644 index 000000000..d6782b4f8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_purple.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_purple" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_purple" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_purple" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_red.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_red.json new file mode 100644 index 000000000..ffdb88b45 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_red.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_red" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_red" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_red" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_silver.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_silver.json new file mode 100644 index 000000000..46ad8d88d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_silver.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_silver" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_silver" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_silver" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_white.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_white.json new file mode 100644 index 000000000..4892ec47a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_white.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_white" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_white" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_white" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/drywall_yellow.json b/src/main/resources/data/mineralogy/advancements/recipes/drywall_yellow.json new file mode 100644 index 000000000..b369d2030 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/drywall_yellow.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_yellow" + } + ], + "rewards": { + "recipes": [ + "mineralogy:drywall_yellow" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:drywall_yellow" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:drywall_white" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick.json index 5a04e150a..eb7137eb9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_block_polishing.json new file mode 100644 index 000000000..b0b2ac0de --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_furnace.json index 8d2d580c2..21b48cd9d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gabbro_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gabbro/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab.json index bdefec475..775f25e7c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gabbro_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_polishing.json new file mode 100644 index 000000000..43907694f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_recombination.json new file mode 100644 index 000000000..347d31fc0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs.json index 03e0a7782..29c44d73d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gabbro_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs_polishing.json new file mode 100644 index 000000000..1d2642535 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall.json index 7be49016c..d60ecd2ad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gabbro_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall_polishing.json new file mode 100644 index 000000000..1bda37c81 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_cobblestone.json new file mode 100644 index 000000000..03fe276f2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_furnace.json index 803aaa7a7..b9376c7d3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gabbro" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_brick_slab_recombination.json new file mode 100644 index 000000000..2936e3532 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slab_recombination.json new file mode 100644 index 000000000..65f0ba93d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slabs_to_brick.json new file mode 100644 index 000000000..0ae4bdd1e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_stairs_to_brick.json new file mode 100644 index 000000000..974388c61 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_walls_to_brick.json new file mode 100644 index 000000000..b25aeacb7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_polishing.json new file mode 100644 index 000000000..cb74810c2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_recombination.json new file mode 100644 index 000000000..d6bf037a4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slabs_to_brick.json new file mode 100644 index 000000000..d23ca1ddc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_polishing.json new file mode 100644 index 000000000..03884bb0d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_to_brick.json new file mode 100644 index 000000000..0ed984e92 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_wall_polishing.json new file mode 100644 index 000000000..6d4ff6e3d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_walls_to_brick.json new file mode 100644 index 000000000..e3889361b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_axe.json index 433d3af85..8b69c72ef 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_blank.json index 6d6d3e0ac..3d32b1951 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_cross.json index bab921518..bb631ebe0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hammer.json index bc81e4a88..1398d2e60 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hoe.json index 6a593099c..d0f3eafcd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_horizontal.json index eab5a0689..07846c97c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_i.json index 4abbc7fcd..690e715ce 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_left.json index ede3701b8..37ae2d45d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_pickaxe.json index 62c32754f..3074b30d5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_plus.json index f6be1a178..31cf8a6c1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_right.json index d4484a052..b0c45ec1d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_sword.json index 0dc8201ae..d2bb9bf87 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_vertical.json index e152b2d32..ca368b224 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_slab.json index f45892520..d51fcb96a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth.json index 9c3699c84..66c90e54b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick.json index 997a76b54..3e5c38d69 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_furnace.json index 6b7cff9f6..3caf84cc0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gabbro_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gabbro/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_slab.json index 243d83d49..d00b2012f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gabbro_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_stairs.json index f1acf0ec2..439ef1d5f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gabbro_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_wall.json index 22efc3bde..19d99c43a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gabbro_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_furnace.json index 6a2f6a62d..1dbe79377 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gabbro/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_slab.json index 7354b3d88..2eaace389 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_stairs.json index a5ad1293e..5b5a35dde 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_wall.json index bacbb57be..bd8aab61a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gabbro_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_stairs.json index 637c9fa35..5d03c7e68 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_to_stone.json new file mode 100644 index 000000000..6584801bd --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:gabbro_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gabbro" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_wall.json index 3a1feed1b..c355b4b7d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gabbro_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gabbro_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gabbro_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gabbro_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gabbro" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gabbro_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gabbro_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gabbro" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick.json index 85f7fcfdc..c8084aa59 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_block_polishing.json new file mode 100644 index 000000000..beaa7429e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_furnace.json index c8fc0da5f..0a48c7af3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gneiss_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gneiss/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab.json index 8cb529b9f..26236d114 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gneiss_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_polishing.json new file mode 100644 index 000000000..8c27c95d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_recombination.json new file mode 100644 index 000000000..5bbba36c7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs.json index 28117b261..66f4f0766 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gneiss_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs_polishing.json new file mode 100644 index 000000000..5f0454691 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall.json index a859e1df4..40a3963a7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:gneiss_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall_polishing.json new file mode 100644 index 000000000..d4f7ae827 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_cobblestone.json new file mode 100644 index 000000000..a0ecbbd98 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_furnace.json index 86647abbc..f2eaef8ee 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gneiss" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_brick_slab_recombination.json new file mode 100644 index 000000000..186d22cc4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slab_recombination.json new file mode 100644 index 000000000..d4e581aab --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slabs_to_brick.json new file mode 100644 index 000000000..ba00322e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_stairs_to_brick.json new file mode 100644 index 000000000..1f9ae1998 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_walls_to_brick.json new file mode 100644 index 000000000..4e949e4ed --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_polishing.json new file mode 100644 index 000000000..530df5323 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_recombination.json new file mode 100644 index 000000000..a86899069 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slabs_to_brick.json new file mode 100644 index 000000000..59ec06b83 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_polishing.json new file mode 100644 index 000000000..b67051c78 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_to_brick.json new file mode 100644 index 000000000..5a62f72d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_wall_polishing.json new file mode 100644 index 000000000..3ee687f62 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_walls_to_brick.json new file mode 100644 index 000000000..bae07d14b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_axe.json index 7978d361f..44ae24bfc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_blank.json index 437c8c877..7f5080110 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_cross.json index 9bf0c2465..40eedea04 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hammer.json index 6b5d46613..0e1654237 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hoe.json index 89fc7aebc..c8a5c2b69 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_horizontal.json index 1f3d61984..93770dddc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_i.json index 1e9539763..e71a4b4a3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_left.json index d06bfcd01..ca0d0afb9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_pickaxe.json index dd91ae901..621881484 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_plus.json index e00fd7645..7ab4a12eb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_right.json index 215b6cd1f..1246c7d82 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_sword.json index 9d32ca546..1f496758e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_vertical.json index 7d6de48c4..abe8ee569 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_slab.json index 7328bfcf5..f1b1d2355 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth.json index db5df90ad..6ea57290a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick.json index 3de8e20d3..45d109de2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_furnace.json index 550abda0d..4bcacf841 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gneiss_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gneiss/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_slab.json index 125c5ddca..e92ac0f51 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gneiss_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_stairs.json index 115aa2ce1..8107e7d4d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gneiss_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_wall.json index 5527cc34c..0a3c1130a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:gneiss_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_furnace.json index d40a1cf41..740fea3c4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/gneiss/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_slab.json index 4c16dd7ec..ade53dc14 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_stairs.json index 3d07f56e7..af1064b44 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_wall.json index d06909b85..e7bf93cc4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:gneiss_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_stairs.json index cd9eedec5..2b565bab5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_to_stone.json new file mode 100644 index 000000000..df2b361aa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:gneiss_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gneiss" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_wall.json index 1537e428d..0030a1805 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/gneiss_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/gneiss_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:gneiss_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:gneiss_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:gneiss" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gneiss_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gneiss_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/gneiss" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick.json index b1a1202a5..f5a9dfeb7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:granite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_block_polishing.json new file mode 100644 index 000000000..bd6c311d7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_furnace.json index 18a5a82a5..fb1925794 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:granite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/granite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab.json index 6155f3fb9..c5f751274 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:granite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_polishing.json new file mode 100644 index 000000000..5e09960c4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_recombination.json new file mode 100644 index 000000000..1aa3e6b56 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs.json index 5d3856822..d2102a824 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:granite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs_polishing.json new file mode 100644 index 000000000..2d512b92a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall.json index 3e3dcf12e..2ad9a3758 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:granite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall_polishing.json new file mode 100644 index 000000000..b14b8bb06 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_cobblestone.json new file mode 100644 index 000000000..a55da8c27 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:granite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_furnace.json index 2a1dea18c..209940113 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_furnace.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/granite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/granite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..a39ca7fca --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slab_recombination.json new file mode 100644 index 000000000..2065717f2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slabs_to_brick.json new file mode 100644 index 000000000..0680cc736 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_stairs_to_brick.json new file mode 100644 index 000000000..bfcd985d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_walls_to_brick.json new file mode 100644 index 000000000..9b808cea6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_polishing.json new file mode 100644 index 000000000..8bf87cbcc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_recombination.json new file mode 100644 index 000000000..c8ff81f09 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slabs_to_brick.json new file mode 100644 index 000000000..83d7f2713 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_polishing.json new file mode 100644 index 000000000..5fff62fc2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_to_brick.json new file mode 100644 index 000000000..b9269e6af --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_wall_polishing.json new file mode 100644 index 000000000..92ae8d4e8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_walls_to_brick.json new file mode 100644 index 000000000..6362ef29a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_axe.json index c959b9e62..91f570664 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_blank.json index 1ef424f02..dec766c89 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_blank.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_cross.json index 84f7bf34c..0c0ac6b84 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hammer.json index eb58d903c..caaf7294b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hoe.json index 5a1c2fe6e..83d8b96a1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_horizontal.json index d9fca36fe..4684e0090 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_i.json index 94817c490..073643fd8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_left.json index d0554db03..5d73f6210 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_pickaxe.json index 9c2ee2bff..f7fe5adae 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_plus.json index a532e86e8..d145d51e8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_right.json index fad29666f..d114a6b58 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_sword.json index e821d9922..8c4d66766 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_vertical.json index 49a456a24..722dca051 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab.json index 3f00709a1..8709b48b2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:granite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_from_vanilla.json new file mode 100644 index 000000000..1437e6230 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:granite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_to_vanilla.json new file mode 100644 index 000000000..78a95cae2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth.json index c474178cb..740009362 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth.json @@ -1,31 +1,55 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/granite" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick.json index 3cd5cdf51..ffd2aea96 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_furnace.json index 8673bbf0f..4aca6a1eb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:granite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/granite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_slab.json index 583da25ca..d04b13a0f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:granite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_stairs.json index 07e85bff4..928f6ec4b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:granite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_wall.json index f3deaf778..aca062852 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:granite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_furnace.json index a905bc27b..1a1182ed7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/granite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab.json index 989f26650..afa5877fa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..8642eb1c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_from_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_slab_from_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_slab_from_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:polished_granite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..7c2482c8e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_slab_to_vanilla.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_slab_to_vanilla" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_slab_to_vanilla" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_stairs.json index d85c992c8..bcd2237d5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_stairs.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_wall.json index 423ff1fee..657126bc0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:granite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/granite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_stairs.json index 88cae8836..ab9b46109 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_stairs.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:granite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_to_stone.json new file mode 100644 index 000000000..c6165b7c2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:granite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/granite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/granite_wall.json index f905f49f4..f28a9502e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/granite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/granite_wall.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:granite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:granite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:granite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:granite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:granite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:granite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gravel_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/gravel_to_stone.json new file mode 100644 index 000000000..4605461e0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gravel_to_stone.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "SMELTABLE_GRAVEL" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gravel_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gravel_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:gravel" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_carbon_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_carbon_dust.json new file mode 100644 index 000000000..20def2aa0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_carbon_dust.json @@ -0,0 +1,46 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/carbon" + } + } + ], + "rewards": { + "recipes": [ + "mineralogy:gunpowder_from_carbon_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gunpowder_from_carbon_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_charcoal.json b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_charcoal.json new file mode 100644 index 000000000..8469116af --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_charcoal.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gunpowder_from_charcoal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gunpowder_from_charcoal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_coal_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_coal_dust.json new file mode 100644 index 000000000..d58f5305a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_coal_dust.json @@ -0,0 +1,46 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/coal" + } + } + ], + "rewards": { + "recipes": [ + "mineralogy:gunpowder_from_coal_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gunpowder_from_coal_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_sugar.json b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_sugar.json new file mode 100644 index 000000000..ef9589728 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gunpowder_from_sugar.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gunpowder_from_sugar" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gunpowder_from_sugar" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gypsum.json b/src/main/resources/data/mineralogy/advancements/recipes/gypsum.json new file mode 100644 index 000000000..d7e6bf789 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gypsum.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gypsum" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gypsum" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gypsum" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gypsum_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/gypsum_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/gypsum_dust.json new file mode 100644 index 000000000..2e2a314ae --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/gypsum_dust.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gypsum_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:gypsum_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:gypsum_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:gypsum" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick.json index d547dc6ca..9a60ead00 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_block_polishing.json new file mode 100644 index 000000000..ac3339dc7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_furnace.json index abe2e5478..65715cf13 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:hornfels_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/hornfels/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab.json index 1df9bc543..eecf58746 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:hornfels_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_polishing.json new file mode 100644 index 000000000..43a17ed71 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_recombination.json new file mode 100644 index 000000000..fb288e72e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs.json index 8322a8b89..4b2539ff8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:hornfels_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs_polishing.json new file mode 100644 index 000000000..e8e900211 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall.json index 259c4b6d7..59b1f5939 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:hornfels_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall_polishing.json new file mode 100644 index 000000000..18c0e226e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_cobblestone.json new file mode 100644 index 000000000..e309b4dc1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_furnace.json index 9e7d2a75e..a86b593bb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/hornfels" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_brick_slab_recombination.json new file mode 100644 index 000000000..dabf6a361 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slab_recombination.json new file mode 100644 index 000000000..46f531e79 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slabs_to_brick.json new file mode 100644 index 000000000..28a8a3f56 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_stairs_to_brick.json new file mode 100644 index 000000000..59ae96fc7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_walls_to_brick.json new file mode 100644 index 000000000..e9b3dc8f4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_polishing.json new file mode 100644 index 000000000..2f4ddf63f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_recombination.json new file mode 100644 index 000000000..76eb44ab0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slabs_to_brick.json new file mode 100644 index 000000000..4f7fcbae0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_polishing.json new file mode 100644 index 000000000..654f103f6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_to_brick.json new file mode 100644 index 000000000..e8bb70498 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_wall_polishing.json new file mode 100644 index 000000000..f0bb71013 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_walls_to_brick.json new file mode 100644 index 000000000..0fbd75820 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_axe.json index 44b14279d..e7a4e7808 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_blank.json index 5fff89458..a2a9e52fe 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_cross.json index 0d55cbab2..93b1abf98 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hammer.json index 9d89f7a19..3aa8fdd3a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hoe.json index e2ff46400..e223cf1d2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_horizontal.json index c1cebeef6..c89972d06 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_i.json index 5ff3a9a60..cd4f9bfee 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_left.json index 87dfa6691..79ad2349e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_pickaxe.json index 1bd252165..56ecd51b8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_plus.json index e154e4fdb..731e9b1c4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_right.json index 7f1b516a6..704698e10 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_sword.json index fe11cc976..61c39a323 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_vertical.json index a627e1ecd..0d2b7ffe9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_slab.json index 0a7188feb..65f26966e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth.json index 42efdf269..43b5dd657 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick.json index e771af2e0..62917bc5e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_furnace.json index d2c36ebb6..8ae0d4568 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:hornfels_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/hornfels/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_slab.json index 268bca891..bfd25cbf6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:hornfels_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_stairs.json index 9c3ffaf6b..a6f0262f7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:hornfels_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_wall.json index 6430e3bc8..770005b48 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:hornfels_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_furnace.json index a709374d6..48bfe1be6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/hornfels/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_slab.json index ea7fac865..955b9401c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_stairs.json index 081bf5851..9fe48c4da 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_wall.json index 67f62b91f..4a783962e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:hornfels_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_stairs.json index 0c26f9e8c..1bc079a98 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_to_stone.json new file mode 100644 index 000000000..2fcf14eeb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:hornfels_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:hornfels" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_wall.json index fa3e45f31..a1e7a2064 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/hornfels_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/hornfels_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:hornfels_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:hornfels_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:hornfels" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:hornfels_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:hornfels_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/hornfels" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick.json index e30471bc1..e08f85da8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_block_polishing.json new file mode 100644 index 000000000..4d91d909c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_furnace.json index 541456dc5..f191490dc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:limestone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/limestone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab.json index e8edeaa9a..4d39ddfc7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:limestone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_polishing.json new file mode 100644 index 000000000..144d736a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_recombination.json new file mode 100644 index 000000000..84a875765 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs.json index ba0220943..81e829e02 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:limestone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs_polishing.json new file mode 100644 index 000000000..eda47d546 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall.json index d90b9a912..1ab7bd83e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:limestone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall_polishing.json new file mode 100644 index 000000000..2f7be8d52 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_cobblestone.json new file mode 100644 index 000000000..307dbd3cc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_furnace.json index eda561dc6..b68ebf8ad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/limestone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_brick_slab_recombination.json new file mode 100644 index 000000000..2cfd3a9a0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slab_recombination.json new file mode 100644 index 000000000..65e5bf703 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slabs_to_brick.json new file mode 100644 index 000000000..306a8590d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_stairs_to_brick.json new file mode 100644 index 000000000..0569f6158 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_walls_to_brick.json new file mode 100644 index 000000000..9d7af16cf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_polishing.json new file mode 100644 index 000000000..aadcd2827 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_recombination.json new file mode 100644 index 000000000..eb700cecd --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slabs_to_brick.json new file mode 100644 index 000000000..e28b2cc11 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_polishing.json new file mode 100644 index 000000000..6e48c9885 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_to_brick.json new file mode 100644 index 000000000..f35e27a37 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_wall_polishing.json new file mode 100644 index 000000000..af700a727 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_walls_to_brick.json new file mode 100644 index 000000000..c3e035507 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_axe.json index 81e0df21c..9b11a5fe7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_blank.json index 402e71b2b..e37e8cf9b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_cross.json index 018216db6..d88cb0f9f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hammer.json index f7a32c371..ecdfaade9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hoe.json index 0113783b1..c2105c5a4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_horizontal.json index 20c1b0b0a..f9dbde247 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_i.json index 683b4da23..c19c3fec6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_left.json index eab7cc5fb..52014febf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_pickaxe.json index e15bd21cd..e5cf6a16f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_plus.json index b17fee696..c335d21d3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_right.json index eb58698ce..b53222e46 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_sword.json index b6d12e2b9..bf73a3b6a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_vertical.json index 477c11969..947183915 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_slab.json index 42a2b7998..bcb3254f1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth.json index 3ffd510cf..c315a52fd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick.json index b2e8b47f2..50af62ff4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_furnace.json index 4e2d2cd98..b1e245aaa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:limestone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/limestone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_slab.json index 012d24e8f..35670fa63 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:limestone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_stairs.json index 0a8166cfb..a4974b0dd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:limestone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_wall.json index 7e32d086e..271771146 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:limestone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_furnace.json index f2f32a598..b24c41c6d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/limestone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_slab.json index 60b459a45..8b07b6f78 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_stairs.json index 304fee0a3..0cc4053af 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_wall.json index ac6638224..c5108593c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:limestone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_stairs.json index 5c92836ae..67c22543a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_to_stone.json new file mode 100644 index 000000000..cc627606a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:limestone_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:limestone" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/limestone_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/limestone_wall.json index ebb4cd56e..79f5a2c00 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/limestone_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/limestone_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:limestone_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:limestone_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:limestone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:limestone_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:limestone_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/limestone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick.json index d329f8901..5368b4db1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_block_polishing.json new file mode 100644 index 000000000..8077123d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_furnace.json index 77fdc8726..edd523446 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:marble_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/marble/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab.json index 47c73c073..14a707512 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:marble_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_polishing.json new file mode 100644 index 000000000..6a1938113 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_recombination.json new file mode 100644 index 000000000..49dad55f0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs.json index 7bee1207d..691eab5d4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:marble_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs_polishing.json new file mode 100644 index 000000000..01ec352b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall.json index 5985d45a3..5098632ad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:marble_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall_polishing.json new file mode 100644 index 000000000..3bd07dd3e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_cobblestone.json new file mode 100644 index 000000000..69b5ebe26 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:marble_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_furnace.json index f042a16c1..9c2b0d88b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/marble" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_brick_slab_recombination.json new file mode 100644 index 000000000..5a63292b6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slab_recombination.json new file mode 100644 index 000000000..d0d4b38c8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slabs_to_brick.json new file mode 100644 index 000000000..d754f647a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_stairs_to_brick.json new file mode 100644 index 000000000..d2e7f49b3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_walls_to_brick.json new file mode 100644 index 000000000..9f50e73cc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_polishing.json new file mode 100644 index 000000000..1cba3ad77 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_recombination.json new file mode 100644 index 000000000..7d245a8cc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slabs_to_brick.json new file mode 100644 index 000000000..ca9923077 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_polishing.json new file mode 100644 index 000000000..a8a17b928 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_to_brick.json new file mode 100644 index 000000000..78cefa034 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_wall_polishing.json new file mode 100644 index 000000000..83b5c21d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_walls_to_brick.json new file mode 100644 index 000000000..d74e1fc7a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_axe.json index c3c391950..793cb6476 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_blank.json index f1741690a..2b37d466a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_cross.json index 307833afc..84f2abe66 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hammer.json index a121db4d4..7a780c7ae 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hoe.json index 5b54dccb4..d0292c193 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_horizontal.json index 474b42608..2c7fb0a95 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_i.json index 97788fa8d..5ef6954fb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_left.json index 7c7552c5a..fe4a1b72e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_pickaxe.json index 7e7ed8efe..74a4cc302 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_plus.json index 886edc46f..140ac92e9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_right.json index ac7336b9c..0b3906220 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_sword.json index 7a5fdc983..d0b03c00b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_vertical.json index e26c3bb61..68336f272 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_slab.json index 7e9c80fee..4d8c43f0d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth.json index 2f7828fb4..ae5e51414 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick.json index d4a7f3086..118012f70 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_furnace.json index 7aa63e750..0d24aec13 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:marble_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/marble/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_slab.json index f545ff9ce..42aeb47d9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:marble_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_stairs.json index e993f5de9..cec2a59b8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:marble_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_wall.json index 5f43f8ddd..253aa218e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:marble_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_furnace.json index b20343d10..e22778943 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/marble/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_slab.json index 75aef38f7..8470817fd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_stairs.json index 55b8c650d..6f992f97b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_wall.json index 2304dd01e..31d5a7449 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:marble_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_stairs.json index a9f0079c4..1a1678920 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_to_stone.json new file mode 100644 index 000000000..d98337e6d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:marble_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:marble" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/marble_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/marble_wall.json index 2d8154247..a17a25f71 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/marble_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/marble_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:marble_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:marble_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:marble" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:marble_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:marble_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/marble" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/mineralfertilizer.json b/src/main/resources/data/mineralogy/advancements/recipes/mineralfertilizer.json new file mode 100644 index 000000000..e8d12eade --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/mineralfertilizer.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_FERTILIZER" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:mineral_fertilizer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:mineralfertilizer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:mineralfertilizer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/nitrate_block.json b/src/main/resources/data/mineralogy/advancements/recipes/nitrate_block.json new file mode 100644 index 000000000..fa766a3a7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/nitrate_block.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:nitrate_block" + } + ], + "rewards": { + "recipes": [ + "mineralogy:nitrate_block" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:nitrate_block" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/nitrate_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/nitrate_dust.json new file mode 100644 index 000000000..18432ffc0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/nitrate_dust.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:nitrate_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:nitrate_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:nitrate_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:nitrate_block" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick.json index cf87bea26..9f527c0f6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_block_polishing.json new file mode 100644 index 000000000..b3776380c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_furnace.json index dd120aa0c..66f27d1e9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:novaculite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/novaculite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab.json index ed358c9bd..d5fe9d101 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:novaculite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_polishing.json new file mode 100644 index 000000000..7bd08b808 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_recombination.json new file mode 100644 index 000000000..8a725b9ce --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs.json index b8905bfb2..22dfe0ca9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:novaculite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs_polishing.json new file mode 100644 index 000000000..3dcbd1911 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall.json index 898284b06..6afdddcd7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:novaculite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall_polishing.json new file mode 100644 index 000000000..30f8a247c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_cobblestone.json new file mode 100644 index 000000000..6c9d1ac26 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_furnace.json index 09653a509..a34ed4ca4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/novaculite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..a8981c701 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slab_recombination.json new file mode 100644 index 000000000..babc4a92f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slabs_to_brick.json new file mode 100644 index 000000000..3789436c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_stairs_to_brick.json new file mode 100644 index 000000000..cd8e3ae5b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_walls_to_brick.json new file mode 100644 index 000000000..2bfaf217c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_polishing.json new file mode 100644 index 000000000..61353898d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_recombination.json new file mode 100644 index 000000000..3841b7f29 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slabs_to_brick.json new file mode 100644 index 000000000..524975d17 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_polishing.json new file mode 100644 index 000000000..e70748850 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_to_brick.json new file mode 100644 index 000000000..3d38c0a89 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_wall_polishing.json new file mode 100644 index 000000000..d8236fa46 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_walls_to_brick.json new file mode 100644 index 000000000..c494106fa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_axe.json index ca7eae3c5..8a5f9b1d6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_blank.json index bcb74c5c7..3c7dc8e46 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_cross.json index b88b17e0b..63f2bd68b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hammer.json index f40c1b8c0..e7ccfd7cc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hoe.json index f346dcb83..d5dd2c2e0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_horizontal.json index 82fc15150..265e53477 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_i.json index 3307f06d0..cb49a6ada 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_left.json index 346c3e17f..64c771426 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_pickaxe.json index baaa62d3e..41ff7311b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_plus.json index 577c3f156..d0ec3da39 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_right.json index f702fcee0..8133b9920 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_sword.json index 8058c72b0..4af98aca4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_vertical.json index be6c32ecf..c9b44bf2f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_slab.json index 0eadc8505..3ce3d460a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth.json index 05b889bab..736f71224 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick.json index cc8d16cdb..64aaf560c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_furnace.json index a533e3f85..c6ec04c42 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:novaculite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/novaculite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_slab.json index 565723f03..05b9028da 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:novaculite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_stairs.json index be26cd305..9d3f0bd1a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:novaculite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_wall.json index ce5bf8e83..a3ea9dd26 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:novaculite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_furnace.json index dc58cc3ac..2d98ac73f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/novaculite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_slab.json index af5fd82df..792445804 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_stairs.json index 99306bd64..257632106 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_wall.json index 72bd1efee..2da4eb76d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:novaculite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_stairs.json index 7a13a9654..6de023d3f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_to_stone.json new file mode 100644 index 000000000..ae9e2f5ab --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:novaculite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:novaculite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_wall.json index 9768874d3..e741432c0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/novaculite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/novaculite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:novaculite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:novaculite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:novaculite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:novaculite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:novaculite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/novaculite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick.json index 25e2e71f7..4f06109c9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_block_polishing.json new file mode 100644 index 000000000..7c0c6635b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_furnace.json index bd7b20380..59c4c016a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:pegmatite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/pegmatite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab.json index 3e934bb9f..c646a5aac 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:pegmatite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_polishing.json new file mode 100644 index 000000000..68978ace6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_recombination.json new file mode 100644 index 000000000..08de09ee2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs.json index f5e82bbc6..af9711a24 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:pegmatite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs_polishing.json new file mode 100644 index 000000000..b1f1c042f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall.json index a933ee773..8cfc8587a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:pegmatite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall_polishing.json new file mode 100644 index 000000000..5db37d5d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_cobblestone.json new file mode 100644 index 000000000..3c8c64134 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_furnace.json index 55fdbb6ad..31176f902 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/pegmatite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..f72b67a62 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slab_recombination.json new file mode 100644 index 000000000..922e00ec5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slabs_to_brick.json new file mode 100644 index 000000000..ed8e166ec --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_stairs_to_brick.json new file mode 100644 index 000000000..f350571bf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_walls_to_brick.json new file mode 100644 index 000000000..c23997c05 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_polishing.json new file mode 100644 index 000000000..4db050cea --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_recombination.json new file mode 100644 index 000000000..71ca1ed8a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slabs_to_brick.json new file mode 100644 index 000000000..f0c46bc6d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_polishing.json new file mode 100644 index 000000000..bed6c556b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_to_brick.json new file mode 100644 index 000000000..82ef10ebe --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_wall_polishing.json new file mode 100644 index 000000000..db16074c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_walls_to_brick.json new file mode 100644 index 000000000..f153afd86 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_axe.json index e5c2c5f33..b67dea7f5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_blank.json index aefb9028b..c52553bf9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_cross.json index 5beccd5ef..3572ed689 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hammer.json index 28ddb2604..33c289dc4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hoe.json index f3d9c860e..11ca07e4a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_horizontal.json index c78448e34..59c3a8297 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_i.json index efa55f1f7..f16475713 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_left.json index 05e2d0dee..1e9d24f1b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_pickaxe.json index 2352e7e56..8b1e0d415 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_plus.json index a70be4816..abe13101b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_right.json index 4aaed7f76..116e0aa9c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_sword.json index d5e67c1eb..a83e7f19b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_vertical.json index 9da8365d7..22d891045 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_slab.json index a2b8955fd..95cd85004 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth.json index b61c27be2..561ca72f9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick.json index 12458f24b..1b28fbd09 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_furnace.json index 27001579c..6f6adde41 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:pegmatite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/pegmatite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_slab.json index 619f4153c..4bb4d967a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:pegmatite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_stairs.json index 0b233a2cd..6deab4416 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:pegmatite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_wall.json index 0b256ec4d..8f8e459c5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:pegmatite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_furnace.json index 899cd4a42..fdcf69d16 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/pegmatite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_slab.json index 0e2326e1e..795de05b5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_stairs.json index 797c771d2..9834f6360 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_wall.json index e63b7d3c6..2ec38e2b8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:pegmatite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_stairs.json index 9affac732..e6840dfe3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_to_stone.json new file mode 100644 index 000000000..8972478b9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:pegmatite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:pegmatite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_wall.json index 811ad7329..207b68d18 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/pegmatite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:pegmatite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:pegmatite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:pegmatite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:pegmatite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:pegmatite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/pegmatite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick.json index 833766c69..8c33efdb9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_block_polishing.json new file mode 100644 index 000000000..e941ba612 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_furnace.json index 74fb271f7..b2a3b646b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:peridotite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/peridotite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab.json index 4baea32bd..3725ee97d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:peridotite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_polishing.json new file mode 100644 index 000000000..f3117c378 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_recombination.json new file mode 100644 index 000000000..6ab231c52 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs.json index 7ba568656..85b48a638 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:peridotite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs_polishing.json new file mode 100644 index 000000000..eefd327dd --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall.json index 8f9b479bd..4be4c0bc5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:peridotite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall_polishing.json new file mode 100644 index 000000000..011c04f8e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_cobblestone.json new file mode 100644 index 000000000..ca53388ff --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_furnace.json index 8cf7aa37e..f4b065b5d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/peridotite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..5160a313b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slab_recombination.json new file mode 100644 index 000000000..e0453c6a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slabs_to_brick.json new file mode 100644 index 000000000..f7a1500e2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_stairs_to_brick.json new file mode 100644 index 000000000..e8422aafc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_walls_to_brick.json new file mode 100644 index 000000000..799af793d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_polishing.json new file mode 100644 index 000000000..f211d59ef --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_recombination.json new file mode 100644 index 000000000..af10c3bd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slabs_to_brick.json new file mode 100644 index 000000000..1ac871a7d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_polishing.json new file mode 100644 index 000000000..90f3cf4f3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_to_brick.json new file mode 100644 index 000000000..12b5c7e5d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_wall_polishing.json new file mode 100644 index 000000000..8343cb25e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_walls_to_brick.json new file mode 100644 index 000000000..5025149a2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_axe.json index b44215100..32d53752b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_blank.json index b74a7b0be..aa8d4720b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_cross.json index 4daf6e896..6bebd90da 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hammer.json index 6dc945990..22d7bdc69 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hoe.json index f61095dda..24a622eb3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_horizontal.json index 91e770259..5902d2ac9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_i.json index c2b4025d0..33c5b110f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_left.json index e81994567..630ea02b9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_pickaxe.json index 5dcdf63ca..6b576a597 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_plus.json index 0d435eedd..2a76bba9b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_right.json index b66b3f281..9682b5128 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_sword.json index 2e77760bc..0bb0b1f83 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_vertical.json index a6418d1d0..ab8dc041d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_slab.json index c8c355e43..0b9635f77 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth.json index c9f17c025..862f10e34 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick.json index 97c4c3b41..193902dd8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_furnace.json index 9d879ee9d..5be09eee1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:peridotite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/peridotite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_slab.json index 0f22e03ad..7b0eda58d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:peridotite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_stairs.json index b4a697384..beb26653f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:peridotite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_wall.json index f398d068f..676415697 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:peridotite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_furnace.json index ce444ee13..b1081d46b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/peridotite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_slab.json index e0a177766..1c45602b7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_stairs.json index f8354a114..b89f981ff 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_wall.json index 652fafdcb..be8c4bd56 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:peridotite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_stairs.json index b59fad9d5..dc3dec931 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_to_stone.json new file mode 100644 index 000000000..70d98398a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:peridotite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:peridotite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_wall.json index 8be02fc56..b7057cfdd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/peridotite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/peridotite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:peridotite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:peridotite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:peridotite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:peridotite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:peridotite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/peridotite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_block.json b/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_block.json new file mode 100644 index 000000000..b2b726df5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_block.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phosphorous_block" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phosphorous_block" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phosphorous_block" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phosphorous_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_dust.json new file mode 100644 index 000000000..1e8cd3a1f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phosphorous_dust.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phosphorous_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phosphorous_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phosphorous_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phosphorous_block" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick.json index d4fe09369..97f4cb1f2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_block_polishing.json new file mode 100644 index 000000000..9185e5a01 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_furnace.json index 262229b38..2cc6e91a0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:phyllite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/phyllite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab.json index 3328d3bf8..8d978e86b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:phyllite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_polishing.json new file mode 100644 index 000000000..97d409b20 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_recombination.json new file mode 100644 index 000000000..7abb42659 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs.json index 88684b2fc..acf14425f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:phyllite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs_polishing.json new file mode 100644 index 000000000..52b35e196 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall.json index 8210339e2..9f23e1b85 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:phyllite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall_polishing.json new file mode 100644 index 000000000..bbf70d7fb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_cobblestone.json new file mode 100644 index 000000000..c26f29dc2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_furnace.json index 36bc3812a..8c799b7d2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/phyllite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..9932eb9d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slab_recombination.json new file mode 100644 index 000000000..171a93c29 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slabs_to_brick.json new file mode 100644 index 000000000..23d406dc6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_stairs_to_brick.json new file mode 100644 index 000000000..3e4eecd17 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_walls_to_brick.json new file mode 100644 index 000000000..ca16560eb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_polishing.json new file mode 100644 index 000000000..5f620c370 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_recombination.json new file mode 100644 index 000000000..0c91b334a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slabs_to_brick.json new file mode 100644 index 000000000..1994d2313 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_polishing.json new file mode 100644 index 000000000..7d3b5ad27 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_to_brick.json new file mode 100644 index 000000000..5d66aa48d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_wall_polishing.json new file mode 100644 index 000000000..3fa79b7bf --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_walls_to_brick.json new file mode 100644 index 000000000..0c853637e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_axe.json index 60564ac2f..b844ab871 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_blank.json index 4d2fe2179..898b94cb4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_cross.json index 2625cf9e3..f3d0841d0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hammer.json index 9e99be6a8..cc70147ec 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hoe.json index 2e88edf2d..e0eb56f15 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_horizontal.json index 5fb2686ac..b25c94f64 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_i.json index af2133918..d3578c65c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_left.json index e95cc7ca0..a63e27756 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_pickaxe.json index 7fe848a7a..ae00671e1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_plus.json index f73252fcb..875d383ca 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_right.json index 375201f7b..e0d071e7a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_sword.json index b9fcc5bb6..6eebc63f6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_vertical.json index 26053b260..332df9b7b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_slab.json index 2c3cb5a60..9f8535726 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth.json index f44e96560..cc531ff85 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick.json index 42b19de8e..403453008 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_furnace.json index 55e1c32fe..77c41a9c0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:phyllite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/phyllite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_slab.json index 7590d6ec0..65245b2b1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:phyllite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_stairs.json index 0f6bae581..5ced82c2b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:phyllite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_wall.json index e6865bffb..1ca906af4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:phyllite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_furnace.json index 34db3b6a2..d0faa6bcb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/phyllite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_slab.json index 37df7e282..984a05eab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_stairs.json index 95ff1f7e9..3894bc42a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_wall.json index 066c2e3fc..85adaa19a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:phyllite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_stairs.json index 977dc585d..03249b72b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_to_stone.json new file mode 100644 index 000000000..94940b1b7 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:phyllite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:phyllite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_wall.json index 7913c7f1a..b0cf269bf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/phyllite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/phyllite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:phyllite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:phyllite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:phyllite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:phyllite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:phyllite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/phyllite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick.json index ebb843a82..95dcf7baa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_block_polishing.json new file mode 100644 index 000000000..88e7c9320 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_furnace.json index 648a00968..880ee0962 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:quartzite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/quartzite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab.json index d5ff175e7..3f65e517b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:quartzite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_polishing.json new file mode 100644 index 000000000..cd00fdbd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_recombination.json new file mode 100644 index 000000000..f2bd1d16c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs.json index 8282e17ba..770292d4d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:quartzite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs_polishing.json new file mode 100644 index 000000000..286ca343d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall.json index 5ac901dbe..250465e51 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:quartzite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall_polishing.json new file mode 100644 index 000000000..77f997531 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_cobblestone.json new file mode 100644 index 000000000..d8db91fe2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_furnace.json index de9e27ad7..04fe24f08 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/quartzite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..b3448b1a9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slab_recombination.json new file mode 100644 index 000000000..6857ae87d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slabs_to_brick.json new file mode 100644 index 000000000..d43e29554 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_stairs_to_brick.json new file mode 100644 index 000000000..9f2836ed1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_walls_to_brick.json new file mode 100644 index 000000000..71d6a26d0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_polishing.json new file mode 100644 index 000000000..1e6a51698 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_recombination.json new file mode 100644 index 000000000..658005d16 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slabs_to_brick.json new file mode 100644 index 000000000..daabd5c4a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_polishing.json new file mode 100644 index 000000000..9340419dc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_to_brick.json new file mode 100644 index 000000000..b5ee497c2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_wall_polishing.json new file mode 100644 index 000000000..6c80e9e7e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_walls_to_brick.json new file mode 100644 index 000000000..d75ef45e6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_axe.json index c5fa2a671..33f19127a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_blank.json index 212807b28..3b73d0f1d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_cross.json index 56024f09a..8f0bcbd57 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hammer.json index 8713bca85..fd09123d8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hoe.json index 428735a39..2c7463ca8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_horizontal.json index 7884c0f50..71b647639 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_i.json index 859966a81..820b78589 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_left.json index 7086b7963..7ffa3604a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_pickaxe.json index 96ead05a8..86b0e9b0a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_plus.json index 697348213..46542ae28 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_right.json index c4e911a48..3b9c81818 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_sword.json index e1c9b9fed..22d1516b0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_vertical.json index b94e7befb..e6b8d444a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_slab.json index d8fba7287..0e9f6f2e2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth.json index 1d037a0da..331e234b2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick.json index d0836e280..2594f4780 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_furnace.json index 6c1ff09af..dfdf55a1c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:quartzite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/quartzite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_slab.json index 9c6873c2c..9f6b76205 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:quartzite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_stairs.json index 4a74647d6..17b48b1f0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:quartzite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_wall.json index ef3ec8db3..a21396c63 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:quartzite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_furnace.json index 2b754f6de..22119b5ab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/quartzite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_slab.json index 524170879..a8cc7f945 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_stairs.json index 0f0400adc..2a022eee9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_wall.json index ec169e4eb..a4e3ae385 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:quartzite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_stairs.json index 0815f2d00..1b6bab133 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_to_stone.json new file mode 100644 index 000000000..223260295 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:quartzite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:quartzite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_wall.json index 3bf375f17..fc06308af 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/quartzite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/quartzite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:quartzite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:quartzite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:quartzite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:quartzite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:quartzite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/quartzite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick.json index 88a294fe4..ece6d2bd4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_block_polishing.json new file mode 100644 index 000000000..1a6346e1f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_furnace.json index 3a9626919..f8fc99f17 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rhyolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rhyolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab.json index f764aac8a..f1c7ccf0a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rhyolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_polishing.json new file mode 100644 index 000000000..afb2cb616 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_recombination.json new file mode 100644 index 000000000..aff64e8a1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs.json index fdf7e0d58..4d8174938 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rhyolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs_polishing.json new file mode 100644 index 000000000..dab02b2b5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall.json index 2ba1b7d2c..c0c782ba5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rhyolite_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall_polishing.json new file mode 100644 index 000000000..cbd5a42a3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_cobblestone.json new file mode 100644 index 000000000..6f40338f4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_furnace.json index 61d07ba77..0b7f442bc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rhyolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..012222b13 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slab_recombination.json new file mode 100644 index 000000000..67050a6b6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slabs_to_brick.json new file mode 100644 index 000000000..70f8fc0b4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_stairs_to_brick.json new file mode 100644 index 000000000..288419b09 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_walls_to_brick.json new file mode 100644 index 000000000..449c267f6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_polishing.json new file mode 100644 index 000000000..c7a8dd1d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_recombination.json new file mode 100644 index 000000000..bdbe95e03 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slabs_to_brick.json new file mode 100644 index 000000000..cae7e25ad --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_polishing.json new file mode 100644 index 000000000..25c701182 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_to_brick.json new file mode 100644 index 000000000..ff7e505a5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_wall_polishing.json new file mode 100644 index 000000000..ba0c378cd --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_walls_to_brick.json new file mode 100644 index 000000000..77ce56e18 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_axe.json index 680982f90..a00b2c80a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_blank.json index a8134fe8d..686c893fe 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_cross.json index f3dd2e866..e69e87282 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hammer.json index 444a29a7c..e02f7023e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hoe.json index a0378bc25..a28ea4eb4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_horizontal.json index fba17d61c..05b644652 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_i.json index 9154e2322..b9c6fb532 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_left.json index 4b1e39c0e..f7108533d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_pickaxe.json index bfbaf0f0e..761efdcfe 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_plus.json index 2818b3cfe..c98f61076 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_right.json index ccab2fc32..ab8b8e111 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_sword.json index 7fa553076..44b3d22b0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_vertical.json index afcae8bbf..a21c06157 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_slab.json index fb3566bba..f6304e012 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth.json index 884ba7d31..74eb88186 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick.json index f3c6c2d7e..2f02f6248 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_furnace.json index ff2e148c6..0aaf3805c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rhyolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rhyolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_slab.json index 92796d15f..e0754f576 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rhyolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_stairs.json index 0998a32a7..d5c382d91 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rhyolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_wall.json index 0890eb119..e00f3deb7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rhyolite_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_furnace.json index 4573a347c..d1c19ad11 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rhyolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_slab.json index 5c1baca8d..977338bab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_stairs.json index e842e9d81..ba1ea51ef 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_wall.json index a24ad8989..6a26e30cb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rhyolite_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_stairs.json index fb8de3987..e035b8c4a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_to_stone.json new file mode 100644 index 000000000..e7ae53a73 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:rhyolite_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rhyolite" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_wall.json index dc7072c9c..3bf071eac 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rhyolite_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rhyolite_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rhyolite_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rhyolite" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rhyolite_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rhyolite_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rhyolite" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt.json new file mode 100644 index 000000000..3f40dd869 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick.json index e6c1dbf60..72f69c2c3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_block_polishing.json new file mode 100644 index 000000000..51f09c36a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_furnace.json index 7a15858fc..3a5e44570 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rock_salt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rock_salt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab.json index eb16a887c..053c29fe1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rock_salt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_polishing.json new file mode 100644 index 000000000..2ec07c1ca --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_recombination.json new file mode 100644 index 000000000..549fda4a3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs.json index 24b3efc5d..bd5608b06 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rock_salt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs_polishing.json new file mode 100644 index 000000000..6aa539606 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall.json index 5a2a4bc5c..49282617a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:rock_salt_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall_polishing.json new file mode 100644 index 000000000..eef66878a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_cobblestone.json new file mode 100644 index 000000000..109a3bda5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_dust.json new file mode 100644 index 000000000..18130a4da --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_dust.json @@ -0,0 +1,39 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_furnace.json index cf96a2e74..c38aa94ab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rock_salt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_brick_slab_recombination.json new file mode 100644 index 000000000..a1398894c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slab_recombination.json new file mode 100644 index 000000000..0e13087b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slabs_to_brick.json new file mode 100644 index 000000000..61065c090 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_stairs_to_brick.json new file mode 100644 index 000000000..ccc6e5157 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_walls_to_brick.json new file mode 100644 index 000000000..896458d1e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_polishing.json new file mode 100644 index 000000000..c436f08c6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_recombination.json new file mode 100644 index 000000000..fcf4a46ba --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slabs_to_brick.json new file mode 100644 index 000000000..75e51604e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_polishing.json new file mode 100644 index 000000000..e99affff2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_to_brick.json new file mode 100644 index 000000000..a926c47c4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_wall_polishing.json new file mode 100644 index 000000000..a633bafd3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_walls_to_brick.json new file mode 100644 index 000000000..eaaca4abc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_axe.json index 9d8e61384..1c7edd3d8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_blank.json index 1dc27276d..1d295b747 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_cross.json index 1eacbb2c9..8ca2982db 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hammer.json index bd9e99704..c7c30fbe9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hoe.json index 826647baf..e244f79ab 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_horizontal.json index 8a32c677c..7dca39a0e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_i.json index 18688685e..097e285e8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_left.json index 4896126cb..4011c6243 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_pickaxe.json index f5999c334..72ebf74ea 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_plus.json index 8356ff3c3..b09309229 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_right.json index 3d6637f78..e73dc4224 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_sword.json index 31d6bd8be..6adf187b1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_vertical.json index bb60ad305..30087754a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_slab.json index f6faa0ef7..007f4133d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth.json index 7f66adec4..1ca000577 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick.json index fb38c8e7b..850fd8e21 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_furnace.json index d874f45a1..9970f261e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rock_salt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rock_salt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_slab.json index 16d81080c..d85a6940c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rock_salt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_stairs.json index 9e86fee04..bcf540d2f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rock_salt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_wall.json index ceaad0c6d..b6ce37f2e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:rock_salt_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_furnace.json index 56b82fb37..5332b766b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/rock_salt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_slab.json index 0c1eb7bc2..521b72d25 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_stairs.json index ec33abaaf..a690ad9fa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_wall.json index 872d224d0..d224151d4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:rock_salt_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_stairs.json index 1d8ac691c..f608fbb83 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_to_stone.json new file mode 100644 index 000000000..d38d6f17c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:rock_salt_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_wall.json index 9fc85860e..5c94e951d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rock_salt_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:rock_salt_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rock_salt_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rock_salt_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rock_salt_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/rock_salt" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rocksaltlamp.json b/src/main/resources/data/mineralogy/advancements/recipes/rocksaltlamp.json index 02501417f..1e86a41ad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rocksaltlamp.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rocksaltlamp.json @@ -1,33 +1,43 @@ { - "rewards": { - "recipes": [ - "mineralogy:rocksaltlamp" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rocksaltlamp" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rock_salt" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_ROCK_SALT_LAMPS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rocksaltlamp" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rocksaltlamp" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rocksaltlamp" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rock_salt" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/rocksaltstreetlamp.json b/src/main/resources/data/mineralogy/advancements/recipes/rocksaltstreetlamp.json index e61ec9947..c778cdbad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/rocksaltstreetlamp.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/rocksaltstreetlamp.json @@ -1,33 +1,43 @@ { - "rewards": { - "recipes": [ - "mineralogy:rocksaltstreetlamp" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:rocksaltstreetlamp" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:rocksaltlamp" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_ROCK_SALT_LAMPS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rocksaltstreetlamp" + } + ], + "rewards": { + "recipes": [ + "mineralogy:rocksaltstreetlamp" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:rocksaltstreetlamp" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:rocksaltlamp" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick.json index 4caca83c8..865875653 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_block_polishing.json new file mode 100644 index 000000000..f62748b20 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_furnace.json index 2400c75f6..4e0b621da 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:schist_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/schist/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab.json index 6be1edb38..b1dbb6f1e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:schist_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_polishing.json new file mode 100644 index 000000000..9d8c60dad --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_recombination.json new file mode 100644 index 000000000..3db7fa80e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs.json index f3df51fcc..20e047763 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:schist_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs_polishing.json new file mode 100644 index 000000000..133bc9a78 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall.json index ec9011c44..4cb615491 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:schist_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall_polishing.json new file mode 100644 index 000000000..f5eb925ad --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_cobblestone.json new file mode 100644 index 000000000..81ff5298c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:schist_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_furnace.json index c911253cc..a087ccdcd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/schist" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_brick_slab_recombination.json new file mode 100644 index 000000000..2bc50ead9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slab_recombination.json new file mode 100644 index 000000000..452f9f43f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slabs_to_brick.json new file mode 100644 index 000000000..773dcd0ee --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_stairs_to_brick.json new file mode 100644 index 000000000..266571f5a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_walls_to_brick.json new file mode 100644 index 000000000..a9cecf6b0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_polishing.json new file mode 100644 index 000000000..c8b46ae32 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_recombination.json new file mode 100644 index 000000000..8624965d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slabs_to_brick.json new file mode 100644 index 000000000..87bab7e10 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_polishing.json new file mode 100644 index 000000000..e2044714b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_to_brick.json new file mode 100644 index 000000000..baa83cef9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_wall_polishing.json new file mode 100644 index 000000000..b195e8180 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_walls_to_brick.json new file mode 100644 index 000000000..8ec382762 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_axe.json index 8a1210a28..77a1a896d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_blank.json index d962e5caf..547bd2bcc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_cross.json index ac9b621dd..5ded27acd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hammer.json index ef32959a6..d73b4073f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hoe.json index 178324209..cd11fc3bd 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_horizontal.json index 0ac4a5354..cdfd09fb4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_i.json index a8cf4f03a..eaaf582fc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_left.json index 6bf80314f..9ffd053e4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_pickaxe.json index 6b088d54d..eb98f042c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_plus.json index 3d63c9ca2..e8bbda7b0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_right.json index 533f1fdeb..2fa7c8562 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_sword.json index 86fb9ef71..a5f92b7d7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_vertical.json index a4ebdf6ea..cc46f0ca9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_slab.json index 407d29001..c55abca06 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth.json index e06f0d4fb..fefbf02ca 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick.json index f08e9e00d..ce4a4ff11 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_furnace.json index 9df29a39b..675d6d518 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:schist_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/schist/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_slab.json index 21c996419..c28685b94 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:schist_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_stairs.json index e764c783f..d3d53e267 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:schist_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_wall.json index 4cd807668..a0e364b2a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:schist_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_furnace.json index 5ad45374c..fc587fd0d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/schist/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_slab.json index d6be4599f..8e15fbd31 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_stairs.json index cbb189eeb..ad52f9696 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_wall.json index 298c5c2ff..f9f536af7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:schist_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_stairs.json index 820805085..5be1cac9c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_to_stone.json new file mode 100644 index 000000000..6464668a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:schist_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:schist" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/schist_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/schist_wall.json index d31342ab2..d89b7ad42 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/schist_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/schist_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:schist_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:schist_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:schist" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:schist_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:schist_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/schist" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick.json index 99dfc1660..f1de1193e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_block_polishing.json new file mode 100644 index 000000000..14b2c52e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_furnace.json index 9204d0dc3..e342f82b7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:scoria_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/scoria/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab.json index 20ca4ed46..1ccca1758 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:scoria_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_polishing.json new file mode 100644 index 000000000..5449caf26 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_recombination.json new file mode 100644 index 000000000..8e5789ebe --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs.json index ca71f2815..2fd12f4dc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:scoria_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs_polishing.json new file mode 100644 index 000000000..0107cfd0b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall.json index a115adeda..f4f06eab1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:scoria_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall_polishing.json new file mode 100644 index 000000000..5f9355056 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_cobblestone.json new file mode 100644 index 000000000..9152dab50 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_furnace.json index d5b6119d1..a9482d2f4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/scoria" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_brick_slab_recombination.json new file mode 100644 index 000000000..38b01bc22 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slab_recombination.json new file mode 100644 index 000000000..c1087bf79 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slabs_to_brick.json new file mode 100644 index 000000000..0a8556d30 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_stairs_to_brick.json new file mode 100644 index 000000000..74b675bf1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_walls_to_brick.json new file mode 100644 index 000000000..beb9bfd0d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_polishing.json new file mode 100644 index 000000000..8f6764311 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_recombination.json new file mode 100644 index 000000000..381645e9a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slabs_to_brick.json new file mode 100644 index 000000000..8401a0cb0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_polishing.json new file mode 100644 index 000000000..cb5d3692f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_to_brick.json new file mode 100644 index 000000000..dabc74152 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_wall_polishing.json new file mode 100644 index 000000000..98d6afb13 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_walls_to_brick.json new file mode 100644 index 000000000..e65e6d97f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_axe.json index b8a15eaa7..2b473fb36 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_blank.json index f4965292a..799c52827 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_cross.json index 368c00b06..60280e82c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hammer.json index ef110939c..082e4ef55 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hoe.json index b28b6011e..0f97c5b80 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_horizontal.json index 5726956a3..0f92209b7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_i.json index 07da1e979..0126ed0b9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_left.json index 265ec0778..998701a7b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_pickaxe.json index 38712a67b..57ec013d9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_plus.json index 3e21fd62f..0a3f27181 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_right.json index a108cfc95..907fa458d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_sword.json index 1f82fa4d3..6ddb473e8 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_vertical.json index c5ea52e25..f7d356433 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_slab.json index 57d8e4b71..8f0dd4f58 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth.json index e7b6fd611..49f4f540f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick.json index e7632d9f8..da434cc9b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_furnace.json index 4b78b14d2..363d9e783 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:scoria_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/scoria/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_slab.json index 51b2b2382..1ccb175a2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:scoria_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_stairs.json index 2c7d10228..30e5baa2e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:scoria_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_wall.json index 689624ce6..f08453b9f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:scoria_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_furnace.json index 6bc4e390c..f66328ee9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/scoria/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_slab.json index 73292f91e..84fa5dbd7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_stairs.json index f82d488ff..70c7b914c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_wall.json index 263f30c5f..22bada23a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:scoria_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_stairs.json index 41c1a28a1..802d0a47d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_to_stone.json new file mode 100644 index 000000000..bae399f83 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:scoria_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:scoria" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/scoria_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/scoria_wall.json index 70bd6e10e..70080c282 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/scoria_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/scoria_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:scoria_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:scoria_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:scoria" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:scoria_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:scoria_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/scoria" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick.json index b19f01012..c08ddf22f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_block_polishing.json new file mode 100644 index 000000000..2671b1e37 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_furnace.json index 7ab8a5eef..743ae0d0d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:shale_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/shale/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab.json index 1df129dc1..50fbc4746 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:shale_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_polishing.json new file mode 100644 index 000000000..bbfd5ea54 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_recombination.json new file mode 100644 index 000000000..bbcf84402 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs.json index 1da7ba327..e5c30a781 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:shale_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs_polishing.json new file mode 100644 index 000000000..b42b67eef --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall.json index 7144628ee..100285025 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:shale_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall_polishing.json new file mode 100644 index 000000000..ca5ea2371 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_cobblestone.json new file mode 100644 index 000000000..278d99242 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:shale_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_furnace.json index 91aa114ca..e9255888e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/shale" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_brick_slab_recombination.json new file mode 100644 index 000000000..2b76053f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slab_recombination.json new file mode 100644 index 000000000..ebc2c37b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slabs_to_brick.json new file mode 100644 index 000000000..61be42aa2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_stairs_to_brick.json new file mode 100644 index 000000000..87a9bbbc9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_walls_to_brick.json new file mode 100644 index 000000000..9f91faea4 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_polishing.json new file mode 100644 index 000000000..588a2e293 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_recombination.json new file mode 100644 index 000000000..f170378ba --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slabs_to_brick.json new file mode 100644 index 000000000..9bb830a99 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_polishing.json new file mode 100644 index 000000000..63a7c7b4e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_to_brick.json new file mode 100644 index 000000000..03d9c64a5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_wall_polishing.json new file mode 100644 index 000000000..041ce9d88 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_walls_to_brick.json new file mode 100644 index 000000000..10c01f7fc --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_axe.json index e5c853eff..1c13c2ebb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_blank.json index 20143b55a..d520c3da4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_cross.json index 44e8f7dc5..473b35eb6 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hammer.json index 1f671e8cb..a4dee7817 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hoe.json index bc7dd0754..62b725125 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_horizontal.json index 4a1f831a3..c205f580a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_i.json index 3ede26a98..64f1a09da 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_left.json index 792463509..2f148d8c4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_pickaxe.json index ff0591a66..9bf1c4383 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_plus.json index 514ab9503..428f1e5de 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_right.json index b3282fcfd..3cc548f81 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_sword.json index 7bf1cfade..fd8ae0d8b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_vertical.json index 50c2fa38b..660e4a124 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_slab.json index b81f534cf..57d3c741d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth.json index f96fe49cb..a2735a0cb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick.json index eec00464b..6f8c6f42d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_furnace.json index da39262cb..5593f374e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:shale_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/shale/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_slab.json index fe37d12c2..db7f99057 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:shale_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_stairs.json index 1151995b6..a30f35f8d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:shale_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_wall.json index 59fca3da5..c73657f47 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:shale_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_furnace.json index d3407476b..64c53e764 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/shale/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_slab.json index 784acace0..12ef6b515 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_stairs.json index d8f3c258f..63f752637 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_wall.json index 3a07b99bd..f3f03517a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:shale_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_stairs.json index fe9515a95..ae4731826 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_to_stone.json new file mode 100644 index 000000000..45e57dc71 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:shale_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:shale" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/shale_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/shale_wall.json index 7bd38a282..80df05d3f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/shale_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/shale_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:shale_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:shale_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:shale" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:shale_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:shale_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/shale" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick.json index 552737a7e..10795fb26 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_block_polishing.json new file mode 100644 index 000000000..eb452a9b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_furnace.json index d4b0807d1..04ad34875 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:siltstone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/siltstone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab.json index 9ef6dae36..0296c2e55 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:siltstone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_polishing.json new file mode 100644 index 000000000..12688eff6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_recombination.json new file mode 100644 index 000000000..ae568a5f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs.json index f894f52fc..61d7ed873 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:siltstone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs_polishing.json new file mode 100644 index 000000000..cdaf1dee2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall.json index 3379098ad..a6ca42eaf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:siltstone_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall_polishing.json new file mode 100644 index 000000000..6c3e4990c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_cobblestone.json new file mode 100644 index 000000000..719a5451c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_furnace.json index 678cc8bab..773bbb97d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/siltstone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_brick_slab_recombination.json new file mode 100644 index 000000000..f1c5dd03c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slab_recombination.json new file mode 100644 index 000000000..242a57a72 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slabs_to_brick.json new file mode 100644 index 000000000..21ad744da --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_stairs_to_brick.json new file mode 100644 index 000000000..c603c13de --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_walls_to_brick.json new file mode 100644 index 000000000..4e719e832 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_polishing.json new file mode 100644 index 000000000..6e45ba050 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_recombination.json new file mode 100644 index 000000000..1102f5083 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slabs_to_brick.json new file mode 100644 index 000000000..7d61ce558 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_polishing.json new file mode 100644 index 000000000..5d4c26ee9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_to_brick.json new file mode 100644 index 000000000..342e84658 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_wall_polishing.json new file mode 100644 index 000000000..4e19898ab --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_walls_to_brick.json new file mode 100644 index 000000000..76aafdb31 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_axe.json index 2fd816d0d..c2d21b558 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_blank.json index cc5447cac..2b05c7ded 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_cross.json index e143b63f1..0b674413f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hammer.json index 5a1aa35d9..0d168d978 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hoe.json index 92ff8efef..a0bfeb255 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_horizontal.json index d60b45d78..9acd8c7d5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_i.json index 4f3e86ee5..3dd8f3530 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_left.json index 8eec2685b..ee0c48c7b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_pickaxe.json index 2b5fc1356..722a6f3d5 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_plus.json index 335260668..02c7d0489 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_right.json index f29a6d920..982f60eb0 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_sword.json index 7914371b9..f7c11e5b7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_vertical.json index c849fe1f1..08bd78e03 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_slab.json index 2972d96a3..2763a319f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth.json index f5e0929ad..f118562f4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick.json index ac5c5b3b5..82953d08c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_furnace.json index c0e2ff3de..6a639b00b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:siltstone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/siltstone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_slab.json index 119708ebc..30f63293b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:siltstone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_stairs.json index 28fbd8b66..06119d087 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:siltstone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_wall.json index 6af42f8e2..8dc53758c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:siltstone_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_furnace.json index 940efc9ad..2ba6c13eb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/siltstone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_slab.json index 762b6a381..48a6b8b67 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_stairs.json index 7f6fb5126..52e656b3b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_wall.json index 468a773c8..8ca8c9c40 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:siltstone_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_stairs.json index 8ac19cc71..8eeb1f23e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_to_stone.json new file mode 100644 index 000000000..ec2fcab18 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:siltstone_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:siltstone" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_wall.json index db395dea1..dff08bbee 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/siltstone_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/siltstone_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:siltstone_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:siltstone_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:siltstone" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:siltstone_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:siltstone_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/siltstone" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick.json index e23db8e7c..56face22c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_block_polishing.json new file mode 100644 index 000000000..7c29cb057 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_furnace.json index b8382355d..157119e77 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:slate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/slate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab.json index 5de2f61f4..575576141 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:slate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_polishing.json new file mode 100644 index 000000000..402806507 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_recombination.json new file mode 100644 index 000000000..993e4f27a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs.json index 039126202..19b8842ca 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:slate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs_polishing.json new file mode 100644 index 000000000..1c447e04b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall.json index 7d3e54e04..fc197dfc2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:slate_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall_polishing.json new file mode 100644 index 000000000..02bed47a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_cobblestone.json new file mode 100644 index 000000000..376b95251 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:slate_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_furnace.json index 868abeacc..71f88c505 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_furnace.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/slate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_brick_slab_recombination.json new file mode 100644 index 000000000..020af723e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slab_recombination.json new file mode 100644 index 000000000..f213fa7cb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slabs_to_brick.json new file mode 100644 index 000000000..6b27e904a --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_stairs_to_brick.json new file mode 100644 index 000000000..b02a331da --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_walls_to_brick.json new file mode 100644 index 000000000..310b39197 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_polishing.json new file mode 100644 index 000000000..6bbbdc113 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_recombination.json new file mode 100644 index 000000000..e44592d15 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slabs_to_brick.json new file mode 100644 index 000000000..77f198d07 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_polishing.json new file mode 100644 index 000000000..9c8c154f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_to_brick.json new file mode 100644 index 000000000..042913e4b --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_wall_polishing.json new file mode 100644 index 000000000..91a9b7987 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_walls_to_brick.json new file mode 100644 index 000000000..af8954a13 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_axe.json index f4daa0258..754b237f2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_blank.json index cc080d555..7bae0e712 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_blank.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_cross.json index ff2c305e2..e2e900788 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hammer.json index a5a32d584..31d4d69a9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hoe.json index f3a6a21f4..b30f0f453 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_horizontal.json index c4ccc76d8..5dad9b738 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_i.json index 07980c436..919351d4e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_left.json index 6c6be09fb..218ae1bd1 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_pickaxe.json index 332f8d34e..db8240e9e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_plus.json index 071b06f9b..9e14ca936 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_right.json index eea95c7c3..6e7288dcf 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_sword.json index bad73b393..5e9e71b96 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_vertical.json index 2c6369f9d..32c3ba73d 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_slab.json index 0d2000fc4..8b11d0149 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_slab.json @@ -1,33 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth.json index 72fead37f..aff6d6a6e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth.json @@ -1,33 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick.json index 5312619ee..f5f7c9940 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_furnace.json index 7918564d5..0e71e584a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:slate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/slate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_slab.json index 418932b40..2498af630 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:slate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_stairs.json index 01e93b90e..b3dfeb384 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:slate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_wall.json index fdcf59ecc..2492fa73a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:slate_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_furnace.json index 7ca65321d..b7071d4aa 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/slate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_slab.json index 44b4010e3..7ef7238ae 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate_smooth" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_stairs.json index f1fba4eb1..e80c9b09e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_wall.json index 8b3828891..2cd09d0a3 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:slate_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_stairs.json index 487924cbd..193be4e26 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_stairs.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_to_stone.json new file mode 100644 index 000000000..f41ca56a2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:slate_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:slate" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/slate_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/slate_wall.json index d9cac1429..7e008f67f 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/slate_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/slate_wall.json @@ -1,33 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:slate_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:slate_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "items": [ - "mineralogy:slate" - ] - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:slate_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:slate_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/slate" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/sulfur_block.json b/src/main/resources/data/mineralogy/advancements/recipes/sulfur_block.json new file mode 100644 index 000000000..46ef79a37 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/sulfur_block.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:sulfur_block" + } + ], + "rewards": { + "recipes": [ + "mineralogy:sulfur_block" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:sulfur_block" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:sulfur_dust" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/sulfur_dust.json b/src/main/resources/data/mineralogy/advancements/recipes/sulfur_dust.json new file mode 100644 index 000000000..ea78406d8 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/sulfur_dust.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:sulfur_dust" + } + ], + "rewards": { + "recipes": [ + "mineralogy:sulfur_dust" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:sulfur_dust" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:sulfur_block" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick.json index 9201de583..ea5c77b39 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_block_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_block_polishing.json new file mode 100644 index 000000000..45fd568ce --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_block_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_block_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_block_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_furnace.json index 8d4344339..ba3ba45a9 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:tuff_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/tuff/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab.json index 8948a0851..c69de25bb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:tuff_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_polishing.json new file mode 100644 index 000000000..0b6c7142e --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_recombination.json new file mode 100644 index 000000000..41b63f54c --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs.json index acb56c3a3..a95107876 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:tuff_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs_polishing.json new file mode 100644 index 000000000..dbeeeebfa --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall.json index 09e522258..68c6f109c 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_BRICK" - ], - "item": "mineralogy:tuff_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall_polishing.json new file mode 100644 index 000000000..7ace17c24 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_brick_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_brick_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_brick_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_brick_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_cobblestone.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_cobblestone.json new file mode 100644 index 000000000..ee70874a2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_cobblestone.json @@ -0,0 +1,34 @@ +{ + "conditions": [ + + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_cobblestone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_cobblestone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_furnace.json index 3f5959c8b..310786a69 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_furnace.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_brick_slab_recombination.json new file mode 100644 index 000000000..f8e104869 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_brick_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_polished_brick_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_polished_brick_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_brick_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slab_recombination.json new file mode 100644 index 000000000..d8abf518f --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_polished_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_polished_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slabs_to_brick.json new file mode 100644 index 000000000..fe74c85d2 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_polished_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_polished_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_stairs_to_brick.json new file mode 100644 index 000000000..7385b2461 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_polished_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_polished_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_walls_to_brick.json new file mode 100644 index 000000000..0ea2d4f4d --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_polished_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_polished_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_polished_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_polishing.json new file mode 100644 index 000000000..333bb4cf3 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_slab_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_slab_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_slab" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_recombination.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_recombination.json new file mode 100644 index 000000000..d844f1980 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slab_recombination.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_slab_recombination" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_slab_recombination" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slabs_to_brick.json new file mode 100644 index 000000000..28275adb0 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_slabs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_slabs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_slabs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_slab" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_polishing.json new file mode 100644 index 000000000..9877ff0ed --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_stairs_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_stairs_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_stairs" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_to_brick.json new file mode 100644 index 000000000..cc41945c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_stairs_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_stairs_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_stairs_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_stairs" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_wall_polishing.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_wall_polishing.json new file mode 100644 index 000000000..9b6175aeb --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_wall_polishing.json @@ -0,0 +1,72 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_wall_polishing" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_wall_polishing" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_wall" + ] + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + }, + "has_red_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:red_sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_walls_to_brick.json new file mode 100644 index 000000000..b4a9b8845 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_raw_walls_to_brick.json @@ -0,0 +1,43 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_raw_walls_to_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_raw_walls_to_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_wall" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_axe.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_axe.json index c7a8dbeb7..6fd7cbfba 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_axe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_axe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_axe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_axe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_axe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_axe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_axe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_blank.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_blank.json index 95edc477e..d2a76e998 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_blank.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_blank.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_blank" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_blank" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_blank" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_blank" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_blank" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_cross.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_cross.json index 028e03a0f..ce735ab65 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_cross.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_cross.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_cross" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_cross" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_cross" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_cross" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_cross" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hammer.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hammer.json index 48809c176..159b21252 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hammer.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hammer.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_hammer" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_hammer" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_hammer" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_hammer" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_hammer" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hoe.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hoe.json index 0164702ea..8698a7c29 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hoe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_hoe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_hoe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_hoe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_hoe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_hoe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_hoe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_horizontal.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_horizontal.json index 396974dc1..7c170103b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_horizontal.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_horizontal" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_horizontal" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_horizontal" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_horizontal" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_horizontal" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_i.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_i.json index a4d5c7338..303ef46d4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_i.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_i.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_i" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_i" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_i" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_i" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_i" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_left.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_left.json index 683d30b89..84561d3ad 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_left.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_left.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_left" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_left" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_left" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_left" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_left" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_pickaxe.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_pickaxe.json index 2e32f7a12..26d24e070 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_pickaxe.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_pickaxe" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_pickaxe" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_pickaxe" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_pickaxe" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_pickaxe" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_plus.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_plus.json index 15fc7a909..e8f84483e 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_plus.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_plus.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_plus" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_plus" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_plus" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_plus" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_plus" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_right.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_right.json index e5b060cc0..6eda57ac4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_right.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_right.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_right" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_right" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_right" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_right" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_right" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_left" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_sword.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_sword.json index d1b706199..4711947ac 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_sword.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_sword.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_sword" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_sword" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_sword" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_sword" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_sword" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_vertical.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_vertical.json index becd52776..d91708dc4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_vertical.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_relief_vertical.json @@ -1,35 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_relief_vertical" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_relief_vertical" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_vertical" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_relief_vertical" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_relief_vertical" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_relief_blank" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_slab.json index 1efe579af..94ca821a4 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_slab.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth.json index 3b4f56296..4df07c5c2 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth.json @@ -1,31 +1,53 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + }, + "has_sand": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "minecraft:sand" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ], + [ + "has_the_recipe", + "has_sand" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick.json index 145d49a4f..c3950d2d7 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_brick" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_brick" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_brick" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_brick" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_furnace.json index 6e421eba1..be36b2d53 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_furnace.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_brick_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_brick_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:tuff_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_brick_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_brick_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/tuff/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_slab.json index 078cd8082..3bab27067 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_slab.json @@ -1,36 +1,39 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_brick_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_brick_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:tuff_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_brick_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_brick_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff_smooth_brick" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_stairs.json index f3f7b44ad..847a67f30 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_stairs.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_brick_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_brick_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:tuff_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_brick_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_brick_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_wall.json index 8b18cbb96..ea40252dc 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_brick_wall.json @@ -1,36 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_brick_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_brick_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH", - "GENERATE_SMOOTHBRICK" - ], - "item": "mineralogy:tuff_smooth_brick" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_brick_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_brick_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_furnace.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_furnace.json index bceb7d520..58e663f51 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_furnace.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_furnace" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_furnace" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_furnace" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_furnace" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_furnace" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:slabs/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_slab.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_slab.json index f8501d0c8..860138c2a 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_slab.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_slab.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_slab" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_slab" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_slab" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_slab" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_stairs.json index 50c3f7f3a..1d12f2c59 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_stairs.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_wall.json index 0fdf9c02e..6050e5cfb 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_smooth_wall.json @@ -1,35 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_smooth_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_smooth_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "type": "mineralogy:config_item", - "flags": [ - "GENERATE_SMOOTH" - ], - "item": "mineralogy:tuff_smooth" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_smooth_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_smooth_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff/smooth" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_stairs.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_stairs.json index e423afbc8..73b318866 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_stairs.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_stairs.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_stairs" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_stairs" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_stairs" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_stairs" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_to_stone.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_to_stone.json new file mode 100644 index 000000000..6f4eef5e9 --- /dev/null +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_to_stone.json @@ -0,0 +1,33 @@ +{ + "rewards": { + "recipes": [ + "mineralogy:tuff_to_stone" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_to_stone" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "items": [ + "mineralogy:tuff" + ] + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] +} diff --git a/src/main/resources/data/mineralogy/advancements/recipes/tuff_wall.json b/src/main/resources/data/mineralogy/advancements/recipes/tuff_wall.json index 0171535ad..ca375c69b 100644 --- a/src/main/resources/data/mineralogy/advancements/recipes/tuff_wall.json +++ b/src/main/resources/data/mineralogy/advancements/recipes/tuff_wall.json @@ -1,31 +1,37 @@ { - "rewards": { - "recipes": [ - "mineralogy:tuff_wall" - ] - }, - "criteria": { - "has_the_recipe": { - "trigger": "minecraft:recipe_unlocked", - "conditions": { - "recipe": "mineralogy:tuff_wall" - } - }, - "has_rock": { - "trigger": "minecraft:inventory_changed", - "conditions": { - "items": [ - { - "tag": "mineralogy:crafting_materials/tuff" - } - ] - } - } - }, - "requirements": [ - [ - "has_the_recipe", - "has_rock" - ] - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + } + ], + "rewards": { + "recipes": [ + "mineralogy:tuff_wall" + ] + }, + "criteria": { + "has_the_recipe": { + "trigger": "minecraft:recipe_unlocked", + "conditions": { + "recipe": "mineralogy:tuff_wall" + } + }, + "has_rock": { + "trigger": "minecraft:inventory_changed", + "conditions": { + "items": [ + { + "tag": "mineralogy:stones/tuff" + } + ] + } + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_rock" + ] + ] } diff --git a/src/main/resources/data/mineralogy/orespawn/provider.json b/src/main/resources/data/mineralogy/orespawn/provider.json index 81be55288..a26226a43 100644 --- a/src/main/resources/data/mineralogy/orespawn/provider.json +++ b/src/main/resources/data/mineralogy/orespawn/provider.json @@ -1,651 +1,641 @@ { - "schema_version": 3, - "provider_modid": "mineralogy", - "provider_revision": 3, - "profile_defaults": { - "geology_mode": "geome", - "place_fluid_deposits": true, - "manage_vanilla_ores": false, - "default_template": "", - "geome_scale": 384.0, - "biome_influence": 1.15, - "regional_noise_influence": 0.9, - "boundary_noise_influence": 0.45, - "formations": { - "algorithm": "stable_layers", - "horizontal_size": "average", - "vertical_thickness": "average", - "waviness": "average", - "edge_irregularity": "average", - "formation_continuity": "average", - "custom": { - "stratum_wavelength": 256, - "family_region_wavelength": 100, - "vertical_thickness": 8, - "waviness_amplitude": 60, - "edge_octaves": 4, - "continuity": 0.85 - } - }, - "worldgen_aliases": { - "mineralogy:andesite": "minecraft:andesite", - "mineralogy:basalt": "minecraft:basalt", - "mineralogy:diorite": "minecraft:diorite", - "mineralogy:granite": "minecraft:granite", - "mineralogy:tuff": "minecraft:tuff" - }, - "cyano": { - "geome_size": 100, - "rock_layer_noise": 32.0, - "rock_layer_thickness": 8 - }, - "terrain_dimensions": { - "minecraft:overworld": { - "enabled": true, - "biome_ids": [ - - ], - "biome_namespaces": [ - - ], - "host_blocks": [ - "minecraft:stone", - "minecraft:deepslate" - ], - "host_tags": [ - - ] - } - } - }, - "fluid_deposits": { - "mineralogy:fluid_deposit/crude_oil": { - "enabled": true, - "block": "mineralogy:crude_oil", - "dimensions": { - "minecraft:overworld": { - "enabled": true, - "min_y": -48, - "max_y": 48, - "frequency": 0.08, - "min_radius": 5, - "max_radius": 12, - "min_vertical_radius": 2, - "max_vertical_radius": 5, - "max_lobes": 4, - "min_solid_cover": 2, - "host_families": ["sedimentary"], - "host_blocks": [], - "host_tags": [], - "biome_ids": [], - "excluded_biome_ids": [], - "biome_dictionary": ["OCEAN"], - "excluded_biome_dictionary": [], - "geomes": {} - } - } - } - }, - "rocks": { - "mineralogy:rock/minecraft/andesite": { - "family": "igneous_volcanic", - "depth_peak": 68, - "depth_spread": 42, - "weight": 1.0, - "geomes": { - "volcanic_arc": 3.0, - "mountain_belt": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:andesite" - }, - "mineralogy:rock/minecraft/basalt": { - "family": "igneous_volcanic", - "depth_peak": 72, - "depth_spread": 36, - "weight": 1.2, - "geomes": { - "volcanic_arc": 4.0, - "coastal_shelf": 0.7 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:basalt" - }, - "mineralogy:rock/mineralogy/rhyolite": { - "family": "igneous_volcanic", - "depth_peak": 70, - "depth_spread": 36, - "weight": 1.0, - "geomes": { - "volcanic_arc": 3.5, - "mountain_belt": 0.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:rhyolite" - }, - "mineralogy:rock/mineralogy/basaltic_glass": { - "family": "igneous_volcanic", - "depth_peak": 78, - "depth_spread": 24, - "weight": 0.75, - "geomes": { - "volcanic_arc": 4.5 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:basaltic_glass" - }, - "mineralogy:rock/mineralogy/scoria": { - "family": "igneous_volcanic", - "depth_peak": 80, - "depth_spread": 22, - "weight": 0.85, - "geomes": { - "volcanic_arc": 4.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:scoria" - }, - "mineralogy:rock/minecraft/tuff": { - "family": "igneous_volcanic", - "depth_peak": 74, - "depth_spread": 30, - "weight": 0.9, - "geomes": { - "volcanic_arc": 3.5, - "arid_basin": 0.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:tuff" - }, - "mineralogy:rock/mineralogy/pumice": { - "family": "igneous_volcanic", - "depth_peak": 82, - "depth_spread": 20, - "weight": 0.65, - "geomes": { - "volcanic_arc": 4.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:pumice" - }, - "mineralogy:rock/minecraft/diorite": { - "family": "igneous_intrusive", - "depth_peak": 36, - "depth_spread": 42, - "weight": 1.0, - "geomes": { - "stable_craton": 1.3, - "mountain_belt": 1.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:diorite" - }, - "mineralogy:rock/minecraft/granite": { - "family": "igneous_intrusive", - "depth_peak": 30, - "depth_spread": 48, - "weight": 1.1, - "geomes": { - "stable_craton": 2.0, - "mountain_belt": 1.4 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:granite" - }, - "mineralogy:rock/mineralogy/pegmatite": { - "family": "igneous_intrusive", - "depth_peak": 26, - "depth_spread": 36, - "weight": 0.8, - "geomes": { - "stable_craton": 1.6, - "mountain_belt": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:pegmatite" - }, - "mineralogy:rock/mineralogy/diabase": { - "family": "igneous_intrusive", - "depth_peak": 30, - "depth_spread": 40, - "weight": 1.0, - "geomes": { - "stable_craton": 1.2, - "volcanic_arc": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:diabase" - }, - "mineralogy:rock/mineralogy/gabbro": { - "family": "igneous_intrusive", - "depth_peak": 20, - "depth_spread": 44, - "weight": 1.1, - "geomes": { - "stable_craton": 1.2, - "mountain_belt": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:gabbro" - }, - "mineralogy:rock/mineralogy/peridotite": { - "family": "igneous_intrusive", - "depth_peak": 10, - "depth_spread": 34, - "weight": 0.85, - "geomes": { - "mountain_belt": 1.5, - "volcanic_arc": 1.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:peridotite" - }, - "mineralogy:rock/mineralogy/shale": { - "family": "sedimentary", - "depth_peak": 62, - "depth_spread": 36, - "weight": 1.15, - "geomes": { - "sedimentary_basin": 3.5, - "wetland_basin": 2.0, - "coastal_shelf": 1.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:shale" - }, - "mineralogy:rock/mineralogy/conglomerate": { - "family": "sedimentary", - "depth_peak": 58, - "depth_spread": 32, - "weight": 0.9, - "geomes": { - "sedimentary_basin": 2.2, - "mountain_belt": 0.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:conglomerate" - }, - "mineralogy:rock/mineralogy/dolomite": { - "family": "sedimentary", - "depth_peak": 55, - "depth_spread": 38, - "weight": 0.9, - "geomes": { - "coastal_shelf": 2.2, - "sedimentary_basin": 1.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:dolomite" - }, - "mineralogy:rock/mineralogy/limestone": { - "family": "sedimentary", - "depth_peak": 60, - "depth_spread": 40, - "weight": 1.0, - "geomes": { - "coastal_shelf": 3.0, - "sedimentary_basin": 1.6 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:limestone" - }, - "mineralogy:rock/mineralogy/siltstone": { - "family": "sedimentary", - "depth_peak": 66, - "depth_spread": 34, - "weight": 1.0, - "geomes": { - "sedimentary_basin": 2.4, - "wetland_basin": 1.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:siltstone" - }, - "mineralogy:rock/mineralogy/rock_salt": { - "family": "sedimentary", - "depth_peak": 54, - "depth_spread": 28, - "weight": 0.6, - "geomes": { - "arid_basin": 4.0, - "coastal_shelf": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:rock_salt" - }, - "mineralogy:rock/mineralogy/chert": { - "family": "sedimentary", - "depth_peak": 48, - "depth_spread": 32, - "weight": 0.65, - "geomes": { - "coastal_shelf": 2.0, - "sedimentary_basin": 1.4 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:chert" - }, - "mineralogy:rock/mineralogy/gypsum": { - "family": "sedimentary", - "depth_peak": 52, - "depth_spread": 26, - "weight": 0.65, - "geomes": { - "arid_basin": 3.5, - "coastal_shelf": 1.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:gypsum" - }, - "mineralogy:rock/mineralogy/chalk": { - "family": "sedimentary", - "depth_peak": 68, - "depth_spread": 24, - "weight": 0.65, - "geomes": { - "coastal_shelf": 3.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:chalk" - }, - "mineralogy:rock/minecraft/sandstone": { - "family": "sedimentary", - "depth_peak": 72, - "depth_spread": 28, - "weight": 0.55, - "geomes": { - "arid_basin": 2.5, - "coastal_shelf": 0.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "minecraft:sandstone" - }, - "mineralogy:rock/mineralogy/marble": { - "family": "metamorphic", - "depth_peak": 32, - "depth_spread": 36, - "weight": 0.85, - "geomes": { - "mountain_belt": 1.8, - "stable_craton": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:marble" - }, - "mineralogy:rock/mineralogy/slate": { - "family": "metamorphic", - "depth_peak": 36, - "depth_spread": 34, - "weight": 1.0, - "geomes": { - "mountain_belt": 2.0, - "sedimentary_basin": 0.7 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:slate" - }, - "mineralogy:rock/mineralogy/schist": { - "family": "metamorphic", - "depth_peak": 24, - "depth_spread": 34, - "weight": 1.0, - "geomes": { - "mountain_belt": 2.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:schist" - }, - "mineralogy:rock/mineralogy/gneiss": { - "family": "metamorphic", - "depth_peak": 18, - "depth_spread": 38, - "weight": 1.0, - "geomes": { - "mountain_belt": 2.6, - "stable_craton": 1.2 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:gneiss" - }, - "mineralogy:rock/mineralogy/phyllite": { - "family": "metamorphic", - "depth_peak": 34, - "depth_spread": 34, - "weight": 0.9, - "geomes": { - "mountain_belt": 2.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:phyllite" - }, - "mineralogy:rock/mineralogy/amphibolite": { - "family": "metamorphic", - "depth_peak": 18, - "depth_spread": 34, - "weight": 0.9, - "geomes": { - "mountain_belt": 2.4, - "volcanic_arc": 0.8 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:amphibolite" - }, - "mineralogy:rock/mineralogy/hornfels": { - "family": "metamorphic", - "depth_peak": 24, - "depth_spread": 28, - "weight": 0.75, - "geomes": { - "volcanic_arc": 2.0, - "mountain_belt": 1.4 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:hornfels" - }, - "mineralogy:rock/mineralogy/quartzite": { - "family": "metamorphic", - "depth_peak": 30, - "depth_spread": 34, - "weight": 0.85, - "geomes": { - "mountain_belt": 1.8, - "stable_craton": 1.0 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:quartzite" - }, - "mineralogy:rock/mineralogy/novaculite": { - "family": "metamorphic", - "depth_peak": 28, - "depth_spread": 30, - "weight": 0.65, - "geomes": { - "mountain_belt": 1.6 - }, - "enabled": true, - "min_y": -64, - "max_y": 319, - "ore_replaceable": true, - "block": "mineralogy:novaculite" - } - }, - "ores": { - "mineralogy:ore/mineralogy/sulfur_ore": { - "enabled": true, - "source_mod": "mineralogy", - "dimensions": { - "minecraft:overworld": { - "enabled": true, - "min_y": 16, - "max_y": 64, - "frequency": 1.0, - "quantity": 16, - "host_families": [ - "sedimentary", - "metamorphic", - "igneous_intrusive", - "igneous_volcanic" - ], - "host_tags": [ - "minecraft:stone_ore_replaceables", - "minecraft:deepslate_ore_replaceables" - ] - } - }, - "block": "mineralogy:sulfur_ore" - }, - "mineralogy:ore/mineralogy/phosphorous_ore": { - "enabled": true, - "source_mod": "mineralogy", - "dimensions": { - "minecraft:overworld": { - "enabled": true, - "min_y": 16, - "max_y": 64, - "frequency": 1.0, - "quantity": 16, - "host_families": [ - "sedimentary", - "metamorphic", - "igneous_intrusive", - "igneous_volcanic" - ], - "host_tags": [ - "minecraft:stone_ore_replaceables", - "minecraft:deepslate_ore_replaceables" - ] - } - }, - "block": "mineralogy:phosphorous_ore" - }, - "mineralogy:ore/mineralogy/nitrate_ore": { - "enabled": true, - "source_mod": "mineralogy", - "dimensions": { - "minecraft:overworld": { - "enabled": true, - "min_y": 16, - "max_y": 64, - "frequency": 1.0, - "quantity": 16, - "host_families": [ - "sedimentary", - "metamorphic", - "igneous_intrusive", - "igneous_volcanic" - ], - "host_tags": [ - "minecraft:stone_ore_replaceables", - "minecraft:deepslate_ore_replaceables" - ] - } - }, - "block": "mineralogy:nitrate_ore" - } - }, - "geomes": { - - }, - "biome_rules": { - - }, - "terrain_dimensions": { - - }, - "templates": { - - } + "schema_version": 4, + "provider_modid": "mineralogy", + "provider_revision": 3, + "profile_defaults": { + "geology_mode": "geome", + "place_fluid_deposits": true, + "manage_vanilla_ores": false, + "default_template": "", + "geome_scale": 384, + "biome_influence": 1.15, + "regional_noise_influence": 0.9, + "boundary_noise_influence": 0.45, + "formations": { + "algorithm": "stable_layers", + "horizontal_size": "average", + "vertical_thickness": "average", + "waviness": "average", + "edge_irregularity": "average", + "formation_continuity": "average", + "custom": { + "stratum_wavelength": 256, + "family_region_wavelength": 100, + "vertical_thickness": 8, + "waviness_amplitude": 60, + "edge_octaves": 4, + "continuity": 0.85 + } + }, + "worldgen_aliases": { + "mineralogy:andesite": "minecraft:andesite", + "mineralogy:basalt": "minecraft:basalt", + "mineralogy:diorite": "minecraft:diorite", + "mineralogy:granite": "minecraft:granite", + "mineralogy:tuff": "minecraft:tuff" + }, + "cyano": { + "geome_size": 100, + "rock_layer_noise": 32, + "rock_layer_thickness": 8 + }, + "terrain_dimensions": { + "minecraft:overworld": { + "enabled": true, + "biome_ids": [], + "biome_namespaces": [], + "host_blocks": [ + "minecraft:stone", + "minecraft:deepslate" + ], + "host_tags": [] + } + } + }, + "fluid_deposits": { + "mineralogy:fluid_deposit/crude_oil": { + "enabled": true, + "block": "mineralogy:crude_oil", + "dimensions": { + "minecraft:overworld": { + "enabled": true, + "min_y": -48, + "max_y": 48, + "frequency": 0.08, + "min_radius": 5, + "max_radius": 12, + "min_vertical_radius": 2, + "max_vertical_radius": 5, + "max_lobes": 4, + "min_solid_cover": 2, + "host_families": [ + "sedimentary" + ], + "host_blocks": [], + "host_tags": [], + "biome_ids": [], + "excluded_biome_ids": [], + "biome_dictionary": [ + "OCEAN" + ], + "excluded_biome_dictionary": [], + "geomes": {} + } + } + } + }, + "rocks": { + "mineralogy:rock/minecraft/andesite": { + "family": "igneous_volcanic", + "depth_peak": 68, + "depth_spread": 42, + "weight": 1, + "geomes": { + "volcanic_arc": 3, + "mountain_belt": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:andesite" + }, + "mineralogy:rock/minecraft/basalt": { + "family": "igneous_volcanic", + "depth_peak": 72, + "depth_spread": 36, + "weight": 1.2, + "geomes": { + "volcanic_arc": 4, + "coastal_shelf": 0.7 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:basalt" + }, + "mineralogy:rock/mineralogy/rhyolite": { + "family": "igneous_volcanic", + "depth_peak": 70, + "depth_spread": 36, + "weight": 1, + "geomes": { + "volcanic_arc": 3.5, + "mountain_belt": 0.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:rhyolite" + }, + "mineralogy:rock/mineralogy/basaltic_glass": { + "family": "igneous_volcanic", + "depth_peak": 78, + "depth_spread": 24, + "weight": 0.75, + "geomes": { + "volcanic_arc": 4.5 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:basaltic_glass" + }, + "mineralogy:rock/mineralogy/scoria": { + "family": "igneous_volcanic", + "depth_peak": 80, + "depth_spread": 22, + "weight": 0.85, + "geomes": { + "volcanic_arc": 4 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:scoria" + }, + "mineralogy:rock/minecraft/tuff": { + "family": "igneous_volcanic", + "depth_peak": 74, + "depth_spread": 30, + "weight": 0.9, + "geomes": { + "volcanic_arc": 3.5, + "arid_basin": 0.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:tuff" + }, + "mineralogy:rock/mineralogy/pumice": { + "family": "igneous_volcanic", + "depth_peak": 82, + "depth_spread": 20, + "weight": 0.65, + "geomes": { + "volcanic_arc": 4 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:pumice" + }, + "mineralogy:rock/minecraft/diorite": { + "family": "igneous_intrusive", + "depth_peak": 36, + "depth_spread": 42, + "weight": 1, + "geomes": { + "stable_craton": 1.3, + "mountain_belt": 1 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:diorite" + }, + "mineralogy:rock/minecraft/granite": { + "family": "igneous_intrusive", + "depth_peak": 30, + "depth_spread": 48, + "weight": 1.1, + "geomes": { + "stable_craton": 2, + "mountain_belt": 1.4 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:granite" + }, + "mineralogy:rock/mineralogy/pegmatite": { + "family": "igneous_intrusive", + "depth_peak": 26, + "depth_spread": 36, + "weight": 0.8, + "geomes": { + "stable_craton": 1.6, + "mountain_belt": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:pegmatite" + }, + "mineralogy:rock/mineralogy/diabase": { + "family": "igneous_intrusive", + "depth_peak": 30, + "depth_spread": 40, + "weight": 1, + "geomes": { + "stable_craton": 1.2, + "volcanic_arc": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:diabase" + }, + "mineralogy:rock/mineralogy/gabbro": { + "family": "igneous_intrusive", + "depth_peak": 20, + "depth_spread": 44, + "weight": 1.1, + "geomes": { + "stable_craton": 1.2, + "mountain_belt": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:gabbro" + }, + "mineralogy:rock/mineralogy/peridotite": { + "family": "igneous_intrusive", + "depth_peak": 10, + "depth_spread": 34, + "weight": 0.85, + "geomes": { + "mountain_belt": 1.5, + "volcanic_arc": 1 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:peridotite" + }, + "mineralogy:rock/mineralogy/shale": { + "family": "sedimentary", + "depth_peak": 62, + "depth_spread": 36, + "weight": 1.15, + "geomes": { + "sedimentary_basin": 3.5, + "wetland_basin": 2, + "coastal_shelf": 1.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:shale" + }, + "mineralogy:rock/mineralogy/conglomerate": { + "family": "sedimentary", + "depth_peak": 58, + "depth_spread": 32, + "weight": 0.9, + "geomes": { + "sedimentary_basin": 2.2, + "mountain_belt": 0.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:conglomerate" + }, + "mineralogy:rock/mineralogy/dolomite": { + "family": "sedimentary", + "depth_peak": 55, + "depth_spread": 38, + "weight": 0.9, + "geomes": { + "coastal_shelf": 2.2, + "sedimentary_basin": 1.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:dolomite" + }, + "mineralogy:rock/mineralogy/limestone": { + "family": "sedimentary", + "depth_peak": 60, + "depth_spread": 40, + "weight": 1, + "geomes": { + "coastal_shelf": 3, + "sedimentary_basin": 1.6 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:limestone" + }, + "mineralogy:rock/mineralogy/siltstone": { + "family": "sedimentary", + "depth_peak": 66, + "depth_spread": 34, + "weight": 1, + "geomes": { + "sedimentary_basin": 2.4, + "wetland_basin": 1.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:siltstone" + }, + "mineralogy:rock/mineralogy/rock_salt": { + "family": "sedimentary", + "depth_peak": 54, + "depth_spread": 28, + "weight": 0.6, + "geomes": { + "arid_basin": 4, + "coastal_shelf": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:rock_salt" + }, + "mineralogy:rock/mineralogy/chert": { + "family": "sedimentary", + "depth_peak": 48, + "depth_spread": 32, + "weight": 0.65, + "geomes": { + "coastal_shelf": 2, + "sedimentary_basin": 1.4 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:chert" + }, + "mineralogy:rock/mineralogy/gypsum": { + "family": "sedimentary", + "depth_peak": 52, + "depth_spread": 26, + "weight": 0.65, + "geomes": { + "arid_basin": 3.5, + "coastal_shelf": 1 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:gypsum" + }, + "mineralogy:rock/mineralogy/chalk": { + "family": "sedimentary", + "depth_peak": 68, + "depth_spread": 24, + "weight": 0.65, + "geomes": { + "coastal_shelf": 3 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:chalk" + }, + "mineralogy:rock/minecraft/sandstone": { + "family": "sedimentary", + "depth_peak": 72, + "depth_spread": 28, + "weight": 0.55, + "geomes": { + "arid_basin": 2.5, + "coastal_shelf": 0.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "minecraft:sandstone" + }, + "mineralogy:rock/mineralogy/marble": { + "family": "metamorphic", + "depth_peak": 32, + "depth_spread": 36, + "weight": 0.85, + "geomes": { + "mountain_belt": 1.8, + "stable_craton": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:marble" + }, + "mineralogy:rock/mineralogy/slate": { + "family": "metamorphic", + "depth_peak": 36, + "depth_spread": 34, + "weight": 1, + "geomes": { + "mountain_belt": 2, + "sedimentary_basin": 0.7 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:slate" + }, + "mineralogy:rock/mineralogy/schist": { + "family": "metamorphic", + "depth_peak": 24, + "depth_spread": 34, + "weight": 1, + "geomes": { + "mountain_belt": 2.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:schist" + }, + "mineralogy:rock/mineralogy/gneiss": { + "family": "metamorphic", + "depth_peak": 18, + "depth_spread": 38, + "weight": 1, + "geomes": { + "mountain_belt": 2.6, + "stable_craton": 1.2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:gneiss" + }, + "mineralogy:rock/mineralogy/phyllite": { + "family": "metamorphic", + "depth_peak": 34, + "depth_spread": 34, + "weight": 0.9, + "geomes": { + "mountain_belt": 2 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:phyllite" + }, + "mineralogy:rock/mineralogy/amphibolite": { + "family": "metamorphic", + "depth_peak": 18, + "depth_spread": 34, + "weight": 0.9, + "geomes": { + "mountain_belt": 2.4, + "volcanic_arc": 0.8 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:amphibolite" + }, + "mineralogy:rock/mineralogy/hornfels": { + "family": "metamorphic", + "depth_peak": 24, + "depth_spread": 28, + "weight": 0.75, + "geomes": { + "volcanic_arc": 2, + "mountain_belt": 1.4 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:hornfels" + }, + "mineralogy:rock/mineralogy/quartzite": { + "family": "metamorphic", + "depth_peak": 30, + "depth_spread": 34, + "weight": 0.85, + "geomes": { + "mountain_belt": 1.8, + "stable_craton": 1 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:quartzite" + }, + "mineralogy:rock/mineralogy/novaculite": { + "family": "metamorphic", + "depth_peak": 28, + "depth_spread": 30, + "weight": 0.65, + "geomes": { + "mountain_belt": 1.6 + }, + "enabled": true, + "min_y": -64, + "max_y": 319, + "ore_replaceable": true, + "block": "mineralogy:novaculite" + } + }, + "ores": { + "mineralogy:ore/mineralogy/sulfur_ore": { + "enabled": true, + "source_mod": "mineralogy", + "dimensions": { + "minecraft:overworld": { + "enabled": true, + "min_y": 16, + "max_y": 64, + "frequency": 1, + "quantity": 16, + "host_families": [ + "sedimentary", + "metamorphic", + "igneous_intrusive", + "igneous_volcanic" + ], + "host_tags": [ + "minecraft:stone_ore_replaceables", + "minecraft:deepslate_ore_replaceables" + ] + } + }, + "block": "mineralogy:sulfur_ore" + }, + "mineralogy:ore/mineralogy/phosphorous_ore": { + "enabled": true, + "source_mod": "mineralogy", + "dimensions": { + "minecraft:overworld": { + "enabled": true, + "min_y": 16, + "max_y": 64, + "frequency": 1, + "quantity": 16, + "host_families": [ + "sedimentary", + "metamorphic", + "igneous_intrusive", + "igneous_volcanic" + ], + "host_tags": [ + "minecraft:stone_ore_replaceables", + "minecraft:deepslate_ore_replaceables" + ] + } + }, + "block": "mineralogy:phosphorous_ore" + }, + "mineralogy:ore/mineralogy/nitrate_ore": { + "enabled": true, + "source_mod": "mineralogy", + "dimensions": { + "minecraft:overworld": { + "enabled": true, + "min_y": 16, + "max_y": 64, + "frequency": 1, + "quantity": 16, + "host_families": [ + "sedimentary", + "metamorphic", + "igneous_intrusive", + "igneous_volcanic" + ], + "host_tags": [ + "minecraft:stone_ore_replaceables", + "minecraft:deepslate_ore_replaceables" + ] + } + }, + "block": "mineralogy:nitrate_ore" + } + }, + "geomes": {}, + "biome_rules": {}, + "terrain_dimensions": {}, + "templates": {} } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json index 276d96d1e..5260c5732 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/amphibolite" - } - }, - "result": { - "item": "mineralogy:amphibolite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_block_polishing.json new file mode 100644 index 000000000..22784fc5f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_furnace.json index 4d771d493..6f3067120 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:amphibolite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab.json index c16114637..0844f6c69 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_polishing.json new file mode 100644 index 000000000..9acc6d823 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_recombination.json new file mode 100644 index 000000000..53ecceedd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "result": { + "item": "mineralogy:amphibolite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs.json index 44081145d..169c07cac 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs_polishing.json new file mode 100644 index 000000000..5e2fd45d2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall.json index 9f07e2e7c..3cf543947 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall_polishing.json new file mode 100644 index 000000000..d0c2115c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json index 226d4ef4c..edbc9fba4 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/amphibolite" + }, + { + "tag": "mineralogy:stones/amphibolite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json b/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json index 6c07d0292..dd8fdd3dc 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:amphibolite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/amphibolite_furnace_from_rock.json deleted file mode 100644 index 169ba69ff..000000000 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/amphibolite" - } - }, - "result": { - "item": "mineralogy:amphibolite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..561202097 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_smooth_brick_slab" + }, + { + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slab_recombination.json new file mode 100644 index 000000000..5b2847dec --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slabs_to_brick.json new file mode 100644 index 000000000..921622f22 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_stairs_to_brick.json new file mode 100644 index 000000000..d760123ff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_walls_to_brick.json new file mode 100644 index 000000000..dd5c5f0a5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_polishing.json new file mode 100644 index 000000000..5c91b2377 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_recombination.json new file mode 100644 index 000000000..9bcf682d8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_slab" + }, + { + "item": "mineralogy:amphibolite_slab" + } + ], + "result": { + "item": "mineralogy:amphibolite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slabs_to_brick.json new file mode 100644 index 000000000..684890ce9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_slab" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_polishing.json new file mode 100644 index 000000000..ad65b8c30 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_to_brick.json new file mode 100644 index 000000000..f1c91a178 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_stairs" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_wall_polishing.json new file mode 100644 index 000000000..8ceabe30f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_walls_to_brick.json new file mode 100644 index 000000000..e5807bace --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_wall" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_axe.json index abff0c10e..8430086e1 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:amphibolite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:amphibolite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_blank.json index b77ccd656..09571c10d 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_cross.json index 00aa76233..7e23747bf 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hammer.json index 448ff854d..a266ce7be 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hoe.json index e915a8ac9..c924d645b 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:amphibolite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:amphibolite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_horizontal.json index fa82021c0..d21e805f9 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_i.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_i.json index df42e373c..86825ffc7 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_left.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_left.json index f0ee2f255..8aaf58447 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_pickaxe.json index 8f38c6d56..d79e21adc 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:amphibolite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:amphibolite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_plus.json index 9d599619e..fc3b18a29 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_right.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_right.json index 89525cba1..0d8e6c057 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_left" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_relief_left" + }, + { + "item": "mineralogy:amphibolite_relief_left" + } + ], + "result": { + "item": "mineralogy:amphibolite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_sword.json index 1d0d79d68..3d111ef13 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "mineralogy:amphibolite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:amphibolite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "mineralogy:amphibolite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:amphibolite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_vertical.json index c2c32cdf9..2bb055305 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:amphibolite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json b/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json index 2edb866dd..af6aa6dca 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/amphibolite" - } - }, - "result": { - "item": "mineralogy:amphibolite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_slab_from_amphibolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/amphibolite_slab_from_amphibolite_stonecutting.json deleted file mode 100644 index aa47ac8cb..000000000 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_slab_from_amphibolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - "result": "mineralogy:amphibolite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json index 4b7b51689..eae23bc79 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:amphibolite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/amphibolite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:amphibolite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick.json index 33958c479..aa3bfbf37 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_furnace.json index a5151b36d..aeabf96f2 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_slab.json index 40cd9fd46..bd2e7438b 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_stairs.json index 7b30234c9..a48175516 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_wall.json index 170015dff..96b275299 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_furnace.json index 42e59c558..923b3a628 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_slab.json index 7efb6bfe5..9872c016c 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_stairs.json index 2b4a00272..d3762b3ea 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_wall.json index 6a37525e8..b36304d06 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:amphibolite_smooth" - } - }, - "result": { - "item": "mineralogy:amphibolite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json b/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json index 334079fde..1e651319f 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/amphibolite" - } - }, - "result": { - "item": "mineralogy:amphibolite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs_from_amphibolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/amphibolite_stairs_from_amphibolite_stonecutting.json deleted file mode 100644 index fb25e2da3..000000000 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs_from_amphibolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - "result": "mineralogy:amphibolite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json b/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json index 874327c44..729a00d6b 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/amphibolite" - } - }, - "result": { - "item": "mineralogy:amphibolite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_wall_from_amphibolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/amphibolite_wall_from_amphibolite_stonecutting.json deleted file mode 100644 index a4fdbb202..000000000 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_wall_from_amphibolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/amphibolite" - }, - "result": "mineralogy:amphibolite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_brick.json index 7a456b1d8..5740d9c37 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:andesite" - } - }, - "result": { - "item": "mineralogy:andesite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite" + } + }, + "result": { + "item": "mineralogy:andesite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_block_polishing.json new file mode 100644 index 000000000..0b40f75c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_furnace.json index f07b5e5ff..8f18b2227 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:andesite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab.json index f2129160e..c78f6b288 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_brick" - } - }, - "result": { - "item": "mineralogy:andesite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_polishing.json new file mode 100644 index 000000000..d3c47a4f0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_recombination.json new file mode 100644 index 000000000..596e10490 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_brick_slab" + }, + { + "item": "mineralogy:andesite_brick_slab" + } + ], + "result": { + "item": "mineralogy:andesite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs.json index a8f960dbf..e50feedbe 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_brick" - } - }, - "result": { - "item": "mineralogy:andesite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs_polishing.json new file mode 100644 index 000000000..fc64b61a9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_wall.json index 60fa256ec..fc0a9e9af 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_brick" - } - }, - "result": { - "item": "mineralogy:andesite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_brick_wall_polishing.json new file mode 100644 index 000000000..b01334fd0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json index f424fb525..90f2e7e7c 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/andesite" - }, - { - "tag": "mineralogy:crafting_materials/andesite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/andesite" + }, + { + "tag": "mineralogy:stones/andesite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_furnace.json b/src/main/resources/data/mineralogy/recipes/andesite_furnace.json index ff5736e63..c6f6938ad 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:andesite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/andesite_furnace_from_rock.json deleted file mode 100644 index 04516291a..000000000 --- a/src/main/resources/data/mineralogy/recipes/andesite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/andesite" - } - }, - "result": { - "item": "mineralogy:andesite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/andesite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..44941b733 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_smooth_brick_slab" + }, + { + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/andesite_polished_slab_recombination.json new file mode 100644 index 000000000..c5080bdb9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_smooth_slab" + }, + { + "item": "mineralogy:andesite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:andesite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_polished_slabs_to_brick.json new file mode 100644 index 000000000..edbe54bb3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_polished_stairs_to_brick.json new file mode 100644 index 000000000..1061c426a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_polished_walls_to_brick.json new file mode 100644 index 000000000..eae25f636 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_polishing.json new file mode 100644 index 000000000..54a355e6d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_recombination.json new file mode 100644 index 000000000..58c605f5d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_slab" + }, + { + "item": "mineralogy:andesite_slab" + } + ], + "result": { + "item": "mineralogy:andesite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_slabs_to_brick.json new file mode 100644 index 000000000..0e1ba6592 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_slab" + } + }, + "result": { + "item": "mineralogy:andesite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_polishing.json new file mode 100644 index 000000000..d5335cfac --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_to_brick.json new file mode 100644 index 000000000..962cfa533 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_stairs" + } + }, + "result": { + "item": "mineralogy:andesite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_wall_polishing.json new file mode 100644 index 000000000..a6a0d96d8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_raw_walls_to_brick.json new file mode 100644 index 000000000..14ec700b5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_wall" + } + }, + "result": { + "item": "mineralogy:andesite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_axe.json index bbae33aee..a3444878f 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:andesite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:andesite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_blank.json index 444cc9640..de99c73fb 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - } - }, - "result": { - "item": "mineralogy:andesite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_cross.json index 994303234..0cae2f918 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_hammer.json index 2c3784e3f..2c115d488 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_hoe.json index f972e24cb..9d5b45d59 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:andesite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:andesite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_horizontal.json index d927b97f0..ce9f238b9 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_i.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_i.json index 1fcb86ecd..4d4d2aa9d 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_left.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_left.json index e5553683c..802eed0d5 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_pickaxe.json index 900e63634..d61f2f0b0 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:andesite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:andesite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_plus.json index b526472de..e95b092c4 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_right.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_right.json index 05bbace35..5a088311c 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_left" - } - }, - "result": { - "item": "mineralogy:andesite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_relief_left" + }, + { + "item": "mineralogy:andesite_relief_left" + } + ], + "result": { + "item": "mineralogy:andesite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_sword.json index fe1eec8a3..1d98482d9 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "mineralogy:andesite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:andesite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "mineralogy:andesite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:andesite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/andesite_relief_vertical.json index c215d568b..634f06e71 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:andesite_relief_blank" - } - }, - "result": { - "item": "mineralogy:andesite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_slab.json b/src/main/resources/data/mineralogy/recipes/andesite_slab.json index b94c0fd64..84448be70 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite" - } - }, - "result": { - "item": "mineralogy:andesite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_slab_from_andesite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/andesite_slab_from_andesite_stonecutting.json deleted file mode 100644 index 6eea5c122..000000000 --- a/src/main/resources/data/mineralogy/recipes/andesite_slab_from_andesite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:andesite" - }, - "result": "mineralogy:andesite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/andesite_slab_from_vanilla.json new file mode 100644 index 000000000..e9eb7b104 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:andesite_slab" + } + ], + "result": { + "item": "mineralogy:andesite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/andesite_slab_to_vanilla.json new file mode 100644 index 000000000..6cb241219 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_slab" + } + ], + "result": { + "item": "minecraft:andesite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth.json index 11b8fe9b0..9a0161586 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/andesite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:andesite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:andesite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick.json index 3e0874ff1..ba669938d 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_furnace.json index bcd8c299b..8d0299092 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_slab.json index ebe0bccc3..7ec534eb6 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_stairs.json index b74c6ca71..a317c793b 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_wall.json index 4cef22fa1..0fa95bb26 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_furnace.json index 0bd083cf6..cbb7f8cc0 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab.json index 2b62dd2b2..5a3108780 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..1acebfab3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:polished_andesite_slab" + } + ], + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..f7c3990d7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:andesite_smooth_slab" + } + ], + "result": { + "item": "minecraft:polished_andesite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_stairs.json index e0aba3b6a..e58f87740 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/andesite_smooth_wall.json index de919e6bd..91824e0a9 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite_smooth" - } - }, - "result": { - "item": "mineralogy:andesite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_stairs.json b/src/main/resources/data/mineralogy/recipes/andesite_stairs.json index c3dfd930e..7a5e3f930 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite" - } - }, - "result": { - "item": "mineralogy:andesite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_stairs_from_andesite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/andesite_stairs_from_andesite_stonecutting.json deleted file mode 100644 index 780037585..000000000 --- a/src/main/resources/data/mineralogy/recipes/andesite_stairs_from_andesite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:andesite" - }, - "result": "mineralogy:andesite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/andesite_wall.json b/src/main/resources/data/mineralogy/recipes/andesite_wall.json index 188059bcf..baf0cac41 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:andesite" - } - }, - "result": { - "item": "mineralogy:andesite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_wall_from_andesite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/andesite_wall_from_andesite_stonecutting.json deleted file mode 100644 index 7b724a288..000000000 --- a/src/main/resources/data/mineralogy/recipes/andesite_wall_from_andesite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:andesite" - }, - "result": "mineralogy:andesite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_brick.json index 8fb3833cd..4ed70aa03 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:basalt" - } - }, - "result": { - "item": "mineralogy:basalt_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_block_polishing.json new file mode 100644 index 000000000..36c893a55 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_furnace.json index af1d81025..1dd19ba48 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basalt_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_slab.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab.json index 8842aaef2..485cb8bf2 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_brick" - } - }, - "result": { - "item": "mineralogy:basalt_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_polishing.json new file mode 100644 index 000000000..4b1625477 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_recombination.json new file mode 100644 index 000000000..2a849f5be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_brick_slab" + }, + { + "item": "mineralogy:basalt_brick_slab" + } + ], + "result": { + "item": "mineralogy:basalt_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs.json index 87febf344..5e9d9d7d1 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_brick" - } - }, - "result": { - "item": "mineralogy:basalt_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs_polishing.json new file mode 100644 index 000000000..c72a0c9b6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_wall.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_wall.json index b493a7826..4fa4b86a4 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_brick" - } - }, - "result": { - "item": "mineralogy:basalt_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_brick_wall_polishing.json new file mode 100644 index 000000000..ac79702c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json b/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json index c71623c52..01164df22 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/basalt" - }, - { - "tag": "mineralogy:crafting_materials/basalt" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/basalt" + }, + { + "tag": "mineralogy:stones/basalt" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_furnace.json b/src/main/resources/data/mineralogy/recipes/basalt_furnace.json index aa576088c..e1c0e2007 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basalt_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/basalt_furnace_from_rock.json deleted file mode 100644 index 66cbbf039..000000000 --- a/src/main/resources/data/mineralogy/recipes/basalt_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basalt" - } - }, - "result": { - "item": "mineralogy:basalt_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basalt_polished_brick_slab_recombination.json new file mode 100644 index 000000000..121872a63 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_smooth_brick_slab" + }, + { + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basalt_polished_slab_recombination.json new file mode 100644 index 000000000..e1fed3406 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_smooth_slab" + }, + { + "item": "mineralogy:basalt_smooth_slab" + } + ], + "result": { + "item": "mineralogy:basalt_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_polished_slabs_to_brick.json new file mode 100644 index 000000000..750e1fe93 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_slab" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_polished_stairs_to_brick.json new file mode 100644 index 000000000..daa60e917 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_polished_walls_to_brick.json new file mode 100644 index 000000000..fbb5cdf64 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_wall" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_polishing.json new file mode 100644 index 000000000..0d7a8c27c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_recombination.json new file mode 100644 index 000000000..74b1da25a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_slab" + }, + { + "item": "mineralogy:basalt_slab" + } + ], + "result": { + "item": "mineralogy:basalt", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_slabs_to_brick.json new file mode 100644 index 000000000..12c02fb29 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_slab" + } + }, + "result": { + "item": "mineralogy:basalt_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_polishing.json new file mode 100644 index 000000000..a23ed08ff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_to_brick.json new file mode 100644 index 000000000..f7177c4a3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_stairs" + } + }, + "result": { + "item": "mineralogy:basalt_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_wall_polishing.json new file mode 100644 index 000000000..4ded39b40 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_raw_walls_to_brick.json new file mode 100644 index 000000000..aa545527f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_wall" + } + }, + "result": { + "item": "mineralogy:basalt_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_axe.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_axe.json index d2e434080..7257d47c6 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:basalt_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:basalt_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_blank.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_blank.json index c28af0406..30807f462 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - } - }, - "result": { - "item": "mineralogy:basalt_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_cross.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_cross.json index 443790480..aa697b50a 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_hammer.json index 825caa41f..e8281e957 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_hoe.json index bf3bc58f4..c0ddc40e6 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:basalt_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:basalt_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_horizontal.json index fd13b3d91..7ae389b40 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_i.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_i.json index 195fe87ed..91039a9bb 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_left.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_left.json index 4d7f7dc75..deb4bcf73 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_pickaxe.json index 339143455..08d5f5a2d 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:basalt_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:basalt_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_plus.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_plus.json index 872dfb500..f8df4bfb9 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_right.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_right.json index 4b17e24c6..cb1d08039 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_left" - } - }, - "result": { - "item": "mineralogy:basalt_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_relief_left" + }, + { + "item": "mineralogy:basalt_relief_left" + } + ], + "result": { + "item": "mineralogy:basalt_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_sword.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_sword.json index a2b3cb2f4..b41308380 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "mineralogy:basalt_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:basalt_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "mineralogy:basalt_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:basalt_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/basalt_relief_vertical.json index af3ce50ec..1aa8367dd 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:basalt_relief_blank" - } - }, - "result": { - "item": "mineralogy:basalt_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_slab.json b/src/main/resources/data/mineralogy/recipes/basalt_slab.json index 3ccdb0d80..1329a923f 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basalt" - } - }, - "result": { - "item": "mineralogy:basalt_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_slab_from_basalt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basalt_slab_from_basalt_stonecutting.json deleted file mode 100644 index 2c37fcfb3..000000000 --- a/src/main/resources/data/mineralogy/recipes/basalt_slab_from_basalt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basalt" - }, - "result": "mineralogy:basalt_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth.json index 200e03385..3d5753de1 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/basalt" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:basalt_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basalt" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:basalt_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick.json index 086da93fb..64f933490 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_furnace.json index d0ae2c34d..16802e41a 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_slab.json index a4de0864d..1b24852a1 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_stairs.json index 66ae4e2b7..995bfa8a8 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_wall.json index e252641c7..cb3c0083d 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_furnace.json index 9cd6cd7a2..8b27c15ee 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_slab.json index 04041d057..c30892425 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_stairs.json index df59ba68b..787b2b1a4 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/basalt_smooth_wall.json index 7fe7c5904..a9a024747 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basalt_smooth" - } - }, - "result": { - "item": "mineralogy:basalt_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_stairs.json b/src/main/resources/data/mineralogy/recipes/basalt_stairs.json index 6a105c5d0..2ae5dc62a 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basalt" - } - }, - "result": { - "item": "mineralogy:basalt_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_stairs_from_basalt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basalt_stairs_from_basalt_stonecutting.json deleted file mode 100644 index 705eb00d4..000000000 --- a/src/main/resources/data/mineralogy/recipes/basalt_stairs_from_basalt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basalt" - }, - "result": "mineralogy:basalt_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basalt_wall.json b/src/main/resources/data/mineralogy/recipes/basalt_wall.json index 939a01227..ba2df709f 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basalt" - } - }, - "result": { - "item": "mineralogy:basalt_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_wall_from_basalt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basalt_wall_from_basalt_stonecutting.json deleted file mode 100644 index 1fa5ce507..000000000 --- a/src/main/resources/data/mineralogy/recipes/basalt_wall_from_basalt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basalt" - }, - "result": "mineralogy:basalt_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick.json index 62ce63fbc..d7f55a794 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_block_polishing.json new file mode 100644 index 000000000..ce378047e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_furnace.json index 00d09c1a7..6dae43190 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basaltic_glass/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab.json index 6c2425202..5764656cd 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_polishing.json new file mode 100644 index 000000000..f03822674 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_recombination.json new file mode 100644 index 000000000..f178ab12c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs.json index 5a4cedb37..5873c7902 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs_polishing.json new file mode 100644 index 000000000..0b75de479 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall.json index fd964d4fd..c7e64eb5d 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall_polishing.json new file mode 100644 index 000000000..0111c354b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_cobblestone.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_cobblestone.json index bc53334de..5e20f9d29 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/basaltic_glass" + }, + { + "tag": "mineralogy:stones/basaltic_glass" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace.json index 8878131ce..77282e596 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basaltic_glass" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace_from_rock.json deleted file mode 100644 index 73891a30f..000000000 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_brick_slab_recombination.json new file mode 100644 index 000000000..41dede8f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + }, + { + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slab_recombination.json new file mode 100644 index 000000000..a8e69c102 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_smooth_slab" + }, + { + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slabs_to_brick.json new file mode 100644 index 000000000..ad3c2767c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_slab" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_stairs_to_brick.json new file mode 100644 index 000000000..fc626c198 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_walls_to_brick.json new file mode 100644 index 000000000..d74b2b74c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_wall" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_polishing.json new file mode 100644 index 000000000..60ed864ed --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_recombination.json new file mode 100644 index 000000000..bd6374c96 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_slab" + }, + { + "item": "mineralogy:basaltic_glass_slab" + } + ], + "result": { + "item": "mineralogy:basaltic_glass", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slabs_to_brick.json new file mode 100644 index 000000000..b4beb1980 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_slab" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_polishing.json new file mode 100644 index 000000000..bd3109657 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_to_brick.json new file mode 100644 index 000000000..b15376a85 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_stairs" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_wall_polishing.json new file mode 100644 index 000000000..4f26e8dfc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_walls_to_brick.json new file mode 100644 index 000000000..b2a7236a3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_wall" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_axe.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_axe.json index 4a7204994..839498834 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:basaltic_glass_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_blank.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_blank.json index 1430eda6e..4706fd8be 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_cross.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_cross.json index 2e9d20319..cac03fdca 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hammer.json index d8b238198..e09e34c27 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hoe.json index 9c1dce487..2a0cbb51e 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:basaltic_glass_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_horizontal.json index fea53fb53..67d861632 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_i.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_i.json index 9e60d4b2b..561d4e213 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_left.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_left.json index c8dd3100e..526e08dd2 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_pickaxe.json index a779d3d16..837a8112b 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:basaltic_glass_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_plus.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_plus.json index 8c0b09720..749b0251f 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_right.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_right.json index e4af5aa6a..284131221 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_left" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_relief_left" + }, + { + "item": "mineralogy:basaltic_glass_relief_left" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_sword.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_sword.json index a24a1bd19..1616f9bde 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "mineralogy:basaltic_glass_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:basaltic_glass_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "mineralogy:basaltic_glass_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_vertical.json index 8572d39f0..31ebc51f3 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_relief_blank" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab.json index 00f505789..bd090e3f5 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab_from_basaltic_glass_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab_from_basaltic_glass_stonecutting.json deleted file mode 100644 index 2bf2d06e4..000000000 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_slab_from_basaltic_glass_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - "result": "mineralogy:basaltic_glass_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth.json index e8301e233..d54ab8266 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:basaltic_glass_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/basaltic_glass" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:basaltic_glass_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick.json index 7eb07841c..ed487ffcc 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_furnace.json index 005f3df06..6d95f7917 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basaltic_glass/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_slab.json index 8aecdf8ce..c00445abc 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_stairs.json index e7f2999d4..243a9cc05 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_wall.json index a9ae65645..7ae80c6df 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth_brick" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_furnace.json index 23b9b0e6e..7ed5de699 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basaltic_glass/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_slab.json index 2e2ef55af..e4be16070 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_stairs.json index b7f65e6d8..5cb5e15ab 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_wall.json index 8ccd29249..f1d68d01e 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:basaltic_glass_smooth" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs.json index 06d6a8290..52d6ac35c 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs_from_basaltic_glass_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs_from_basaltic_glass_stonecutting.json deleted file mode 100644 index 8e4c3a7fa..000000000 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_stairs_from_basaltic_glass_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - "result": "mineralogy:basaltic_glass_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall.json index 7a23a41c3..80e6b9b8c 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - } - }, - "result": { - "item": "mineralogy:basaltic_glass_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall_from_basaltic_glass_stonecutting.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall_from_basaltic_glass_stonecutting.json deleted file mode 100644 index af60d8a83..000000000 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_wall_from_basaltic_glass_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/basaltic_glass" - }, - "result": "mineralogy:basaltic_glass_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/chalk.json b/src/main/resources/data/mineralogy/recipes/chalk.json index 044bb0a1b..47e52508a 100644 --- a/src/main/resources/data/mineralogy/recipes/chalk.json +++ b/src/main/resources/data/mineralogy/recipes/chalk.json @@ -1,15 +1,22 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "forge:dusts/chalk" - } - }, - "result": { - "item": "mineralogy:chalk" - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:chalk" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/chalk" + } + }, + "result": { + "item": "mineralogy:chalk", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/chalk_dust.json b/src/main/resources/data/mineralogy/recipes/chalk_dust.json index 359bbe768..72f6bed92 100644 --- a/src/main/resources/data/mineralogy/recipes/chalk_dust.json +++ b/src/main/resources/data/mineralogy/recipes/chalk_dust.json @@ -1,12 +1,18 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/chalk" - } - ], - "result": { - "item": "mineralogy:chalk_dust", - "count": 4 - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:chalk_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/chalk" + } + ], + "result": { + "item": "mineralogy:chalk_dust", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/cobblestone.json b/src/main/resources/data/mineralogy/recipes/cobblestone.json index 63f7df18c..8dccd39c0 100644 --- a/src/main/resources/data/mineralogy/recipes/cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:stone" - }, - { - "item": "minecraft:stone" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:stone" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json index f1c1cb1ed..2509a906d 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/conglomerate" - } - }, - "result": { - "item": "mineralogy:conglomerate_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_block_polishing.json new file mode 100644 index 000000000..37b528c62 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_furnace.json index 0ab969abb..fe14cdf23 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:conglomerate_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab.json index d6a832254..895cb946f 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_polishing.json new file mode 100644 index 000000000..23bbf947c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_recombination.json new file mode 100644 index 000000000..818749429 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "result": { + "item": "mineralogy:conglomerate_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs.json index e6313fc1d..1ed504d0e 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs_polishing.json new file mode 100644 index 000000000..7833468ce --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall.json index bfb5163be..8e00a92fa 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall_polishing.json new file mode 100644 index 000000000..cbe4890be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json b/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json index c20bcce5a..2903e343c 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/conglomerate" + }, + { + "tag": "mineralogy:stones/conglomerate" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json b/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json index 449e15262..6111ff2d2 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:conglomerate_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/conglomerate_furnace_from_rock.json deleted file mode 100644 index aa29e6672..000000000 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/conglomerate" - } - }, - "result": { - "item": "mineralogy:conglomerate_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_brick_slab_recombination.json new file mode 100644 index 000000000..3962b8822 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_smooth_brick_slab" + }, + { + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slab_recombination.json new file mode 100644 index 000000000..b97c1200b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slabs_to_brick.json new file mode 100644 index 000000000..10d5bdbff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_slab" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_stairs_to_brick.json new file mode 100644 index 000000000..a5156e70e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_walls_to_brick.json new file mode 100644 index 000000000..99cc5fdcc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_wall" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_polishing.json new file mode 100644 index 000000000..e70f71006 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_recombination.json new file mode 100644 index 000000000..3b4dfc0dc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_slab" + }, + { + "item": "mineralogy:conglomerate_slab" + } + ], + "result": { + "item": "mineralogy:conglomerate", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slabs_to_brick.json new file mode 100644 index 000000000..aac672673 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_slab" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_polishing.json new file mode 100644 index 000000000..098a32866 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_to_brick.json new file mode 100644 index 000000000..8b7dfbe71 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_stairs" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_wall_polishing.json new file mode 100644 index 000000000..e23769f7d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_walls_to_brick.json new file mode 100644 index 000000000..c4f08e7fe --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_wall" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_axe.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_axe.json index b5691bc76..7e4190bb4 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:conglomerate_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:conglomerate_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_blank.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_blank.json index bae9ab0fd..6fdfa6925 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_cross.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_cross.json index 9d96f065b..f1326cbc3 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hammer.json index 31a94aed7..2a6eb8a05 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hoe.json index f64a56c34..e905306cd 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:conglomerate_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:conglomerate_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_horizontal.json index b386f69c2..cb8f11232 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_i.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_i.json index 786987036..6fbc2bb0a 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_left.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_left.json index 184f7a790..b1257f54f 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_pickaxe.json index 6d1693000..19c079d4d 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:conglomerate_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:conglomerate_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_plus.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_plus.json index 641c63499..939fa6d53 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_right.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_right.json index 3201a868a..04672d26c 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_left" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_relief_left" + }, + { + "item": "mineralogy:conglomerate_relief_left" + } + ], + "result": { + "item": "mineralogy:conglomerate_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_sword.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_sword.json index ca521b0f9..7598b15db 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "mineralogy:conglomerate_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:conglomerate_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "mineralogy:conglomerate_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:conglomerate_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_vertical.json index d1f2fe952..d2eb22a24 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_relief_blank" - } - }, - "result": { - "item": "mineralogy:conglomerate_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json b/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json index 64903ddbe..abde9816f 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/conglomerate" - } - }, - "result": { - "item": "mineralogy:conglomerate_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_slab_from_conglomerate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/conglomerate_slab_from_conglomerate_stonecutting.json deleted file mode 100644 index b4547e014..000000000 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_slab_from_conglomerate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - "result": "mineralogy:conglomerate_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json index 8a315915f..7e8de5bc8 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:conglomerate_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/conglomerate" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:conglomerate_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick.json index 39c7b96d8..7a8573987 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_furnace.json index 14a281df6..18880a57d 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_slab.json index a5eb77a3a..d2ec2f724 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_stairs.json index 5a1b993b1..029b5c13f 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_wall.json index de9508085..003801e35 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_furnace.json index 3a6cf18cc..c31c41fe3 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_slab.json index 1d1ff7424..6c98e594a 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_stairs.json index e06382af1..e38363bbe 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_wall.json index a287930af..987ffdfec 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:conglomerate_smooth" - } - }, - "result": { - "item": "mineralogy:conglomerate_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json b/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json index 31e71d05f..e2aff7a49 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/conglomerate" - } - }, - "result": { - "item": "mineralogy:conglomerate_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs_from_conglomerate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/conglomerate_stairs_from_conglomerate_stonecutting.json deleted file mode 100644 index ee54c05f8..000000000 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs_from_conglomerate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - "result": "mineralogy:conglomerate_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json b/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json index 9486d0fa2..dd03282b9 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/conglomerate" - } - }, - "result": { - "item": "mineralogy:conglomerate_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_wall_from_conglomerate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/conglomerate_wall_from_conglomerate_stonecutting.json deleted file mode 100644 index 701179c21..000000000 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_wall_from_conglomerate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/conglomerate" - }, - "result": "mineralogy:conglomerate_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_brick.json index 90fd9fc67..988b95613 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diabase" - } - }, - "result": { - "item": "mineralogy:diabase_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_block_polishing.json new file mode 100644 index 000000000..a93073ad7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_furnace.json index adf8c3ef1..9211115c6 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diabase_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_slab.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab.json index b16a2c4af..73371a275 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_brick" - } - }, - "result": { - "item": "mineralogy:diabase_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_polishing.json new file mode 100644 index 000000000..a9c169568 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_recombination.json new file mode 100644 index 000000000..9945cf220 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_brick_slab" + }, + { + "item": "mineralogy:diabase_brick_slab" + } + ], + "result": { + "item": "mineralogy:diabase_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs.json index a8a8ba8ca..ebc4c5611 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_brick" - } - }, - "result": { - "item": "mineralogy:diabase_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs_polishing.json new file mode 100644 index 000000000..93ac0526a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_wall.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_wall.json index 6f5860ab2..ac0ec85e2 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_brick" - } - }, - "result": { - "item": "mineralogy:diabase_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_brick_wall_polishing.json new file mode 100644 index 000000000..7e9e0caf4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json b/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json index 86e0f2ca3..e1b433a63 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/diabase" - }, - { - "tag": "mineralogy:crafting_materials/diabase" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/diabase" + }, + { + "tag": "mineralogy:stones/diabase" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_furnace.json b/src/main/resources/data/mineralogy/recipes/diabase_furnace.json index 7abfdfbb0..bf9aa287d 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diabase_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/diabase_furnace_from_rock.json deleted file mode 100644 index 8716b9c39..000000000 --- a/src/main/resources/data/mineralogy/recipes/diabase_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diabase" - } - }, - "result": { - "item": "mineralogy:diabase_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diabase_polished_brick_slab_recombination.json new file mode 100644 index 000000000..68325c2fb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_smooth_brick_slab" + }, + { + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diabase_polished_slab_recombination.json new file mode 100644 index 000000000..595df7ceb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_smooth_slab" + }, + { + "item": "mineralogy:diabase_smooth_slab" + } + ], + "result": { + "item": "mineralogy:diabase_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_polished_slabs_to_brick.json new file mode 100644 index 000000000..f2dd4f03b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_slab" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_polished_stairs_to_brick.json new file mode 100644 index 000000000..a5d1bd8c7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_polished_walls_to_brick.json new file mode 100644 index 000000000..64b16c6b2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_wall" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_polishing.json new file mode 100644 index 000000000..221d780d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_recombination.json new file mode 100644 index 000000000..6d8ee951b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_slab" + }, + { + "item": "mineralogy:diabase_slab" + } + ], + "result": { + "item": "mineralogy:diabase", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_slabs_to_brick.json new file mode 100644 index 000000000..bc1439a5e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_slab" + } + }, + "result": { + "item": "mineralogy:diabase_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_polishing.json new file mode 100644 index 000000000..a50cdff3a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_to_brick.json new file mode 100644 index 000000000..f275690e6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_stairs" + } + }, + "result": { + "item": "mineralogy:diabase_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_wall_polishing.json new file mode 100644 index 000000000..d6bc77583 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_raw_walls_to_brick.json new file mode 100644 index 000000000..142b57ee7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_wall" + } + }, + "result": { + "item": "mineralogy:diabase_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_axe.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_axe.json index 1afd6ebf9..88e167b75 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:diabase_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:diabase_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_blank.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_blank.json index a9e69fbf2..f372cb7e6 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - } - }, - "result": { - "item": "mineralogy:diabase_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth" + } + }, + "result": { + "item": "mineralogy:diabase_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_cross.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_cross.json index 17f29da31..7b2464a77 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_hammer.json index cfdb628b1..821456c56 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_hoe.json index 445da48ff..bffec9b4e 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:diabase_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:diabase_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_horizontal.json index 1e974ffaf..f61599567 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_i.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_i.json index afe5f8da3..0a34fa385 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_left.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_left.json index eca7f8cf7..6b7ccf990 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_pickaxe.json index e4aed98c8..0429f5740 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:diabase_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:diabase_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_plus.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_plus.json index 45b70a6f9..1b71114df 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_right.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_right.json index b40fed0be..d4acc1d6c 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_left" - } - }, - "result": { - "item": "mineralogy:diabase_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_relief_left" + }, + { + "item": "mineralogy:diabase_relief_left" + } + ], + "result": { + "item": "mineralogy:diabase_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_sword.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_sword.json index 93b491f6d..b9edda999 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "mineralogy:diabase_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:diabase_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "mineralogy:diabase_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:diabase_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/diabase_relief_vertical.json index be9ce321c..77abcb795 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:diabase_relief_blank" - } - }, - "result": { - "item": "mineralogy:diabase_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_slab.json b/src/main/resources/data/mineralogy/recipes/diabase_slab.json index 0691e00c4..d59cae0fb 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diabase" - } - }, - "result": { - "item": "mineralogy:diabase_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase" + } + }, + "result": { + "item": "mineralogy:diabase_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_slab_from_diabase_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diabase_slab_from_diabase_stonecutting.json deleted file mode 100644 index 563bd6a69..000000000 --- a/src/main/resources/data/mineralogy/recipes/diabase_slab_from_diabase_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/diabase" - }, - "result": "mineralogy:diabase_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth.json index 9ca764a92..b95899615 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/diabase" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:diabase_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/diabase" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:diabase_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick.json index 09f81cf6c..a3f682701 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_furnace.json index 3cf3ca4b1..f70b600fc 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_slab.json index a0b645054..46399a6fb 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_stairs.json index 980de2c62..ea77b9b52 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_wall.json index 9abfd973f..50b654409 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_furnace.json index 5ee754201..e0931c652 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_slab.json index aca6ce061..a1890504e 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_stairs.json index ecaec3787..96ebb8474 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/diabase_smooth_wall.json index b9828127f..e06d2c92a 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diabase_smooth" - } - }, - "result": { - "item": "mineralogy:diabase_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_stairs.json b/src/main/resources/data/mineralogy/recipes/diabase_stairs.json index aaf4461d3..d0ea1b59f 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diabase" - } - }, - "result": { - "item": "mineralogy:diabase_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_stairs_from_diabase_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diabase_stairs_from_diabase_stonecutting.json deleted file mode 100644 index c6453235b..000000000 --- a/src/main/resources/data/mineralogy/recipes/diabase_stairs_from_diabase_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/diabase" - }, - "result": "mineralogy:diabase_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diabase_wall.json b/src/main/resources/data/mineralogy/recipes/diabase_wall.json index 2d1fd5f27..7f3ac455f 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diabase" - } - }, - "result": { - "item": "mineralogy:diabase_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_wall_from_diabase_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diabase_wall_from_diabase_stonecutting.json deleted file mode 100644 index 2993e06e0..000000000 --- a/src/main/resources/data/mineralogy/recipes/diabase_wall_from_diabase_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/diabase" - }, - "result": "mineralogy:diabase_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_brick.json index 6a41cba4b..ae3007dbb 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:diorite" - } - }, - "result": { - "item": "mineralogy:diorite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite" + } + }, + "result": { + "item": "mineralogy:diorite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_block_polishing.json new file mode 100644 index 000000000..e421ef0e7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_furnace.json index 8eac164cd..0ccb6ed13 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diorite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab.json index 1d5ac5349..af438b7e8 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_brick" - } - }, - "result": { - "item": "mineralogy:diorite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_polishing.json new file mode 100644 index 000000000..40cba09d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_recombination.json new file mode 100644 index 000000000..6e8709b8c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_brick_slab" + }, + { + "item": "mineralogy:diorite_brick_slab" + } + ], + "result": { + "item": "mineralogy:diorite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs.json index 12cf5a755..02101f2d9 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_brick" - } - }, - "result": { - "item": "mineralogy:diorite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs_polishing.json new file mode 100644 index 000000000..76ea7c165 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_wall.json index e7b7b4d19..3dfc495c8 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_brick" - } - }, - "result": { - "item": "mineralogy:diorite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_brick_wall_polishing.json new file mode 100644 index 000000000..7a5c11e4a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json index f8c6127c1..c6655c690 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/diorite" - }, - { - "tag": "mineralogy:crafting_materials/diorite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/diorite" + }, + { + "tag": "mineralogy:stones/diorite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_furnace.json b/src/main/resources/data/mineralogy/recipes/diorite_furnace.json index 2a5c42c70..6d35f8dbf 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diorite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/diorite_furnace_from_rock.json deleted file mode 100644 index 644869ec8..000000000 --- a/src/main/resources/data/mineralogy/recipes/diorite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/diorite" - } - }, - "result": { - "item": "mineralogy:diorite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diorite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..6908a96c0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_smooth_brick_slab" + }, + { + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diorite_polished_slab_recombination.json new file mode 100644 index 000000000..4c138764d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_smooth_slab" + }, + { + "item": "mineralogy:diorite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:diorite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_polished_slabs_to_brick.json new file mode 100644 index 000000000..11b035a69 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_polished_stairs_to_brick.json new file mode 100644 index 000000000..0054024fc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_polished_walls_to_brick.json new file mode 100644 index 000000000..2a3c82747 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_polishing.json new file mode 100644 index 000000000..f882428e0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_recombination.json new file mode 100644 index 000000000..9384befc9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_slab" + }, + { + "item": "mineralogy:diorite_slab" + } + ], + "result": { + "item": "mineralogy:diorite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_slabs_to_brick.json new file mode 100644 index 000000000..f71092ffc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_slab" + } + }, + "result": { + "item": "mineralogy:diorite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_polishing.json new file mode 100644 index 000000000..caf193471 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_to_brick.json new file mode 100644 index 000000000..d2e3068e6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_stairs" + } + }, + "result": { + "item": "mineralogy:diorite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_wall_polishing.json new file mode 100644 index 000000000..a66429018 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_raw_walls_to_brick.json new file mode 100644 index 000000000..09a6db13f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_wall" + } + }, + "result": { + "item": "mineralogy:diorite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_axe.json index aaf4e7cbb..f9faa4df0 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:diorite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:diorite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_blank.json index 2e804a8d9..616687912 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - } - }, - "result": { - "item": "mineralogy:diorite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_cross.json index 8434dcad3..4e2d68af9 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_hammer.json index d83dfec5b..a3cce08c7 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_hoe.json index f11a5c6cc..5fefcfa1d 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:diorite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:diorite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_horizontal.json index d94fce255..5f0174326 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_i.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_i.json index 0529d33f7..ddd54bf85 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_left.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_left.json index f1f8afe11..f0480722e 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_pickaxe.json index da597b39e..282fef905 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:diorite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:diorite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_plus.json index 80539df14..e408b3e28 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_right.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_right.json index 36ea805f3..3d3d7169b 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_left" - } - }, - "result": { - "item": "mineralogy:diorite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_relief_left" + }, + { + "item": "mineralogy:diorite_relief_left" + } + ], + "result": { + "item": "mineralogy:diorite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_sword.json index bda59de8e..9c0a3f055 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "mineralogy:diorite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:diorite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "mineralogy:diorite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:diorite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/diorite_relief_vertical.json index e9dcabfa6..34ca47e46 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:diorite_relief_blank" - } - }, - "result": { - "item": "mineralogy:diorite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_slab.json b/src/main/resources/data/mineralogy/recipes/diorite_slab.json index 5a8d1a59e..6194e68a7 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite" - } - }, - "result": { - "item": "mineralogy:diorite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_slab_from_diorite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diorite_slab_from_diorite_stonecutting.json deleted file mode 100644 index 1157fbad9..000000000 --- a/src/main/resources/data/mineralogy/recipes/diorite_slab_from_diorite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:diorite" - }, - "result": "mineralogy:diorite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/diorite_slab_from_vanilla.json new file mode 100644 index 000000000..f7e0f47d7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:diorite_slab" + } + ], + "result": { + "item": "mineralogy:diorite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/diorite_slab_to_vanilla.json new file mode 100644 index 000000000..82b8c746f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_slab" + } + ], + "result": { + "item": "minecraft:diorite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth.json index fd3d61590..94545ae5a 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/diorite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:diorite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:diorite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick.json index fcd2dccf5..bf0d14faf 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_furnace.json index ce67f1747..c80802380 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_slab.json index 1c8e3ef22..3878b8495 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_stairs.json index 7b14b3928..0e296f7f3 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_wall.json index 55d6a67cb..1b7efe70b 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_furnace.json index d624cf381..36272c488 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab.json index f25a14fb0..b5382a16e 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..1c0e97d97 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:polished_diorite_slab" + } + ], + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..984f9e0cb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:diorite_smooth_slab" + } + ], + "result": { + "item": "minecraft:polished_diorite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_stairs.json index 91ae97173..ffcba0d92 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/diorite_smooth_wall.json index d7e5b2cd8..ee0b47e25 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite_smooth" - } - }, - "result": { - "item": "mineralogy:diorite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_stairs.json b/src/main/resources/data/mineralogy/recipes/diorite_stairs.json index 81724bbd6..fed8816f0 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite" - } - }, - "result": { - "item": "mineralogy:diorite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_stairs_from_diorite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diorite_stairs_from_diorite_stonecutting.json deleted file mode 100644 index fa523c7d7..000000000 --- a/src/main/resources/data/mineralogy/recipes/diorite_stairs_from_diorite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:diorite" - }, - "result": "mineralogy:diorite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/diorite_wall.json b/src/main/resources/data/mineralogy/recipes/diorite_wall.json index 567be8198..df77b691b 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:diorite" - } - }, - "result": { - "item": "mineralogy:diorite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_wall_from_diorite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/diorite_wall_from_diorite_stonecutting.json deleted file mode 100644 index 2993dd121..000000000 --- a/src/main/resources/data/mineralogy/recipes/diorite_wall_from_diorite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:diorite" - }, - "result": "mineralogy:diorite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick.json index be0d05ec2..3658cef00 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/dolomite" - } - }, - "result": { - "item": "mineralogy:dolomite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_block_polishing.json new file mode 100644 index 000000000..057480376 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_furnace.json index aff892105..e4badc351 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:dolomite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab.json index 18a5d6876..9defb15aa 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_polishing.json new file mode 100644 index 000000000..a280d3b35 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_recombination.json new file mode 100644 index 000000000..9990e6d8b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_brick_slab" + }, + { + "item": "mineralogy:dolomite_brick_slab" + } + ], + "result": { + "item": "mineralogy:dolomite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs.json index 3824747be..b883901a1 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs_polishing.json new file mode 100644 index 000000000..11cb487e7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall.json index b03d9c4fa..110fd8a6b 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall_polishing.json new file mode 100644 index 000000000..42a08eb2e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json index 6ab3a4c35..a2f058c7c 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/dolomite" - }, - { - "tag": "mineralogy:crafting_materials/dolomite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/dolomite" + }, + { + "tag": "mineralogy:stones/dolomite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json b/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json index 594d1a822..e417931c9 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:dolomite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/dolomite_furnace_from_rock.json deleted file mode 100644 index 326fbb07d..000000000 --- a/src/main/resources/data/mineralogy/recipes/dolomite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/dolomite" - } - }, - "result": { - "item": "mineralogy:dolomite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/dolomite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..4e6afcb6e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_smooth_brick_slab" + }, + { + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slab_recombination.json new file mode 100644 index 000000000..cc0bcdf15 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slabs_to_brick.json new file mode 100644 index 000000000..1abf3c3eb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_polished_stairs_to_brick.json new file mode 100644 index 000000000..d5ad48da8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_polished_walls_to_brick.json new file mode 100644 index 000000000..0c8b68390 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_polishing.json new file mode 100644 index 000000000..6121a2fc3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_recombination.json new file mode 100644 index 000000000..4b8488bbd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_slab" + }, + { + "item": "mineralogy:dolomite_slab" + } + ], + "result": { + "item": "mineralogy:dolomite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slabs_to_brick.json new file mode 100644 index 000000000..70833fd1b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_slab" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_polishing.json new file mode 100644 index 000000000..db8061ea9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_to_brick.json new file mode 100644 index 000000000..518950d14 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_stairs" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_wall_polishing.json new file mode 100644 index 000000000..ce4ed58cc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_raw_walls_to_brick.json new file mode 100644 index 000000000..d54fc7a93 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_wall" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_axe.json index e156f7544..2bb67b6a8 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:dolomite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:dolomite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_blank.json index e3e65cd9d..0007e6edb 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_cross.json index 0f9f5125d..3d8315dcb 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_hammer.json index 9fbef9bed..92275d553 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_hoe.json index 4fde0f972..e37cfacb3 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:dolomite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:dolomite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_horizontal.json index 9f8b619fd..3f3fd1472 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_i.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_i.json index 3ce66b0cb..b91f7bfb7 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_left.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_left.json index 5860e5a53..484c593b6 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_pickaxe.json index 711fee4de..dbf6df552 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:dolomite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:dolomite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_plus.json index fe75cd5f5..dd80b8b1d 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_right.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_right.json index 815b6af29..1c97c7614 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_left" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_relief_left" + }, + { + "item": "mineralogy:dolomite_relief_left" + } + ], + "result": { + "item": "mineralogy:dolomite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_sword.json index dcd717df1..c1fd2a3af 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "mineralogy:dolomite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:dolomite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "mineralogy:dolomite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:dolomite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/dolomite_relief_vertical.json index 537f29da9..642a291fd 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_relief_blank" - } - }, - "result": { - "item": "mineralogy:dolomite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_slab.json b/src/main/resources/data/mineralogy/recipes/dolomite_slab.json index ee597099e..92b1d1c62 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/dolomite" - } - }, - "result": { - "item": "mineralogy:dolomite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_slab_from_dolomite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/dolomite_slab_from_dolomite_stonecutting.json deleted file mode 100644 index 4c8c62532..000000000 --- a/src/main/resources/data/mineralogy/recipes/dolomite_slab_from_dolomite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/dolomite" - }, - "result": "mineralogy:dolomite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json index 213e2fea3..be2098daa 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/dolomite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:dolomite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/dolomite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:dolomite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick.json index c144d7f5d..90304a7c3 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_furnace.json index 2b9c9cf92..eddfcea15 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_slab.json index b8aa5ce3f..470eaef77 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_stairs.json index a061403f8..c1cd24ee2 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_wall.json index 7d0d0f113..deb4507d5 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_furnace.json index 7e9ffcefc..2422b95c7 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_slab.json index dfc759213..e6e9c628a 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_stairs.json index d0136ebd9..21d2633c5 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_wall.json index 2880fe08a..33c051f0b 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:dolomite_smooth" - } - }, - "result": { - "item": "mineralogy:dolomite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json b/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json index a18a60bee..3004bfb31 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/dolomite" - } - }, - "result": { - "item": "mineralogy:dolomite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_stairs_from_dolomite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/dolomite_stairs_from_dolomite_stonecutting.json deleted file mode 100644 index 48fddadd1..000000000 --- a/src/main/resources/data/mineralogy/recipes/dolomite_stairs_from_dolomite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/dolomite" - }, - "result": "mineralogy:dolomite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_wall.json b/src/main/resources/data/mineralogy/recipes/dolomite_wall.json index a717d76c9..ac7bf1c53 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/dolomite" - } - }, - "result": { - "item": "mineralogy:dolomite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_wall_from_dolomite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/dolomite_wall_from_dolomite_stonecutting.json deleted file mode 100644 index 6144fe20e..000000000 --- a/src/main/resources/data/mineralogy/recipes/dolomite_wall_from_dolomite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/dolomite" - }, - "result": "mineralogy:dolomite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/drywall.json b/src/main/resources/data/mineralogy/recipes/drywall.json index 891fec107..df2ec0e51 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall.json +++ b/src/main/resources/data/mineralogy/recipes/drywall.json @@ -1,20 +1,30 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "pgp", - "pgp", - "pgp" - ], - "key": { - "p": { - "item": "minecraft:paper" - }, - "g": { - "tag": "forge:dusts/gypsum" - } - }, - "result": { - "item": "mineralogy:drywall_white", - "count": 3 - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_white" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "pgp", + "pgp", + "pgp" + ], + "key": { + "p": { + "tag": "forge:paper" + }, + "g": { + "tag": "forge:dusts/gypsum" + } + }, + "result": { + "item": "mineralogy:drywall_white", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_black.json b/src/main/resources/data/mineralogy/recipes/drywall_black.json index 717b3c46f..093ac9571 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_black.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_black.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/black" - } - ], - "result": { - "item": "mineralogy:drywall_black" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_black" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:ink_sac" + } + ], + "result": { + "item": "mineralogy:drywall_black", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_blue.json b/src/main/resources/data/mineralogy/recipes/drywall_blue.json index e4a7cc07f..69061d5d1 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_blue.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_blue.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/blue" - } - ], - "result": { - "item": "mineralogy:drywall_blue" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_blue" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:lapis_lazuli" + } + ], + "result": { + "item": "mineralogy:drywall_blue", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_brown.json b/src/main/resources/data/mineralogy/recipes/drywall_brown.json index 111246dbd..bca763d82 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_brown.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_brown.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/brown" - } - ], - "result": { - "item": "mineralogy:drywall_brown" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_brown" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:cocoa_beans" + } + ], + "result": { + "item": "mineralogy:drywall_brown", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_cyan.json b/src/main/resources/data/mineralogy/recipes/drywall_cyan.json index ca1b58dd1..4f87c0a6f 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_cyan.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_cyan.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/cyan" - } - ], - "result": { - "item": "mineralogy:drywall_cyan" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_cyan" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:cyan_dye" + } + ], + "result": { + "item": "mineralogy:drywall_cyan", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_gray.json b/src/main/resources/data/mineralogy/recipes/drywall_gray.json index 637180196..c232c19f9 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_gray.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_gray.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/gray" - } - ], - "result": { - "item": "mineralogy:drywall_gray" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_gray" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:gray_dye" + } + ], + "result": { + "item": "mineralogy:drywall_gray", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_green.json b/src/main/resources/data/mineralogy/recipes/drywall_green.json index 32aaada88..751824b93 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_green.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_green.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/green" - } - ], - "result": { - "item": "mineralogy:drywall_green" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_green" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:green_dye" + } + ], + "result": { + "item": "mineralogy:drywall_green", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_light_blue.json b/src/main/resources/data/mineralogy/recipes/drywall_light_blue.json index 59ab14314..01bbb4753 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_light_blue.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_light_blue.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/light_blue" - } - ], - "result": { - "item": "mineralogy:drywall_light_blue" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_light_blue" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:light_blue_dye" + } + ], + "result": { + "item": "mineralogy:drywall_light_blue", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_lime.json b/src/main/resources/data/mineralogy/recipes/drywall_lime.json index a55bfdf4f..d2bff8f9c 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_lime.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_lime.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/lime" - } - ], - "result": { - "item": "mineralogy:drywall_lime" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_lime" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:lime_dye" + } + ], + "result": { + "item": "mineralogy:drywall_lime", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_magenta.json b/src/main/resources/data/mineralogy/recipes/drywall_magenta.json index fbad8987b..a4b3a3223 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_magenta.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_magenta.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/magenta" - } - ], - "result": { - "item": "mineralogy:drywall_magenta" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_magenta" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:magenta_dye" + } + ], + "result": { + "item": "mineralogy:drywall_magenta", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_orange.json b/src/main/resources/data/mineralogy/recipes/drywall_orange.json index 95d1de8f8..f8c6d266a 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_orange.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_orange.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/orange" - } - ], - "result": { - "item": "mineralogy:drywall_orange" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_orange" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:orange_dye" + } + ], + "result": { + "item": "mineralogy:drywall_orange", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_pink.json b/src/main/resources/data/mineralogy/recipes/drywall_pink.json index 0abc3bdb7..336c92ec1 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_pink.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_pink.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/pink" - } - ], - "result": { - "item": "mineralogy:drywall_pink" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_pink" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:pink_dye" + } + ], + "result": { + "item": "mineralogy:drywall_pink", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_purple.json b/src/main/resources/data/mineralogy/recipes/drywall_purple.json index d8c661b9b..ea2741b0c 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_purple.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_purple.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/purple" - } - ], - "result": { - "item": "mineralogy:drywall_purple" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_purple" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:purple_dye" + } + ], + "result": { + "item": "mineralogy:drywall_purple", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_red.json b/src/main/resources/data/mineralogy/recipes/drywall_red.json index 2b7c17b5f..3829ac0cb 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_red.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_red.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/red" - } - ], - "result": { - "item": "mineralogy:drywall_red" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_red" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:red_dye" + } + ], + "result": { + "item": "mineralogy:drywall_red", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_silver.json b/src/main/resources/data/mineralogy/recipes/drywall_silver.json index b294c3fde..45a92bff0 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_silver.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_silver.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/light_gray" - } - ], - "result": { - "item": "mineralogy:drywall_silver" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_silver" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:light_gray_dye" + } + ], + "result": { + "item": "mineralogy:drywall_silver", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_white.json b/src/main/resources/data/mineralogy/recipes/drywall_white.json index c8c6288df..73780e77d 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_white.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_white.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/white" - } - ], - "result": { - "item": "mineralogy:drywall_white" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_white" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:bone_meal" + } + ], + "result": { + "item": "mineralogy:drywall_white", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_yellow.json b/src/main/resources/data/mineralogy/recipes/drywall_yellow.json index 240987a32..943bc64f3 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_yellow.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_yellow.json @@ -1,14 +1,25 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:drywall_white" - }, - { - "tag": "forge:dyes/yellow" - } - ], - "result": { - "item": "mineralogy:drywall_yellow" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_DRYWALLS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:drywall_yellow" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:drywall/white" + }, + { + "item": "minecraft:yellow_dye" + } + ], + "result": { + "item": "mineralogy:drywall_yellow", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick.json index 7663c679a..a2222191e 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gabbro" - } - }, - "result": { - "item": "mineralogy:gabbro_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_block_polishing.json new file mode 100644 index 000000000..3c1426e6f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_furnace.json index a3447d73a..3d6316ad6 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gabbro_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab.json index ba498dace..857e440c3 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_polishing.json new file mode 100644 index 000000000..7fe7fd19d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_recombination.json new file mode 100644 index 000000000..0113d233d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_brick_slab" + }, + { + "item": "mineralogy:gabbro_brick_slab" + } + ], + "result": { + "item": "mineralogy:gabbro_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs.json index be392c040..1cf859550 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs_polishing.json new file mode 100644 index 000000000..a76fb01be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall.json index fab4a716e..5b68ff740 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall_polishing.json new file mode 100644 index 000000000..13ea56e84 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json b/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json index c66a0011d..3f9227e86 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/gabbro" - }, - { - "tag": "mineralogy:crafting_materials/gabbro" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/gabbro" + }, + { + "tag": "mineralogy:stones/gabbro" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json b/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json index 5819bb8cc..05089e9a1 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gabbro_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/gabbro_furnace_from_rock.json deleted file mode 100644 index 999a2f727..000000000 --- a/src/main/resources/data/mineralogy/recipes/gabbro_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gabbro" - } - }, - "result": { - "item": "mineralogy:gabbro_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gabbro_polished_brick_slab_recombination.json new file mode 100644 index 000000000..d018dadb3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_smooth_brick_slab" + }, + { + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slab_recombination.json new file mode 100644 index 000000000..0fe13f140 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slabs_to_brick.json new file mode 100644 index 000000000..cdd5a57d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_slab" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_polished_stairs_to_brick.json new file mode 100644 index 000000000..7e5c54664 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_polished_walls_to_brick.json new file mode 100644 index 000000000..0e4542ede --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_wall" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_polishing.json new file mode 100644 index 000000000..c387ada98 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_recombination.json new file mode 100644 index 000000000..3d8f2cdf2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_slab" + }, + { + "item": "mineralogy:gabbro_slab" + } + ], + "result": { + "item": "mineralogy:gabbro", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slabs_to_brick.json new file mode 100644 index 000000000..54d09c450 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_slab" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_polishing.json new file mode 100644 index 000000000..b277e7160 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_to_brick.json new file mode 100644 index 000000000..5d7c1af2a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_stairs" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_wall_polishing.json new file mode 100644 index 000000000..5c2c36db4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_raw_walls_to_brick.json new file mode 100644 index 000000000..ce5f0825b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_wall" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_axe.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_axe.json index 230bffa26..7a1df82d9 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:gabbro_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:gabbro_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_blank.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_blank.json index eaf3d9394..7dc6ce043 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_cross.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_cross.json index c997d1d4d..6b914f7cd 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_hammer.json index 79e417a36..5c923d40c 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_hoe.json index 8af08c84c..b4a937672 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:gabbro_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:gabbro_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_horizontal.json index 3b3a13098..e9557ed38 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_i.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_i.json index 5d8ce99a2..c92c9e8fa 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_left.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_left.json index c24288ecb..1f2db0cb4 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_pickaxe.json index 51ed81503..8273b9910 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:gabbro_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:gabbro_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_plus.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_plus.json index 5fab88117..ca63bbe4b 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_right.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_right.json index 8647320d5..3a9e9cd53 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_left" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_relief_left" + }, + { + "item": "mineralogy:gabbro_relief_left" + } + ], + "result": { + "item": "mineralogy:gabbro_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_sword.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_sword.json index 1b47b3800..1f535a655 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "mineralogy:gabbro_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:gabbro_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "mineralogy:gabbro_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:gabbro_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/gabbro_relief_vertical.json index 7a6af6801..7c6929de7 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_relief_blank" - } - }, - "result": { - "item": "mineralogy:gabbro_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_slab.json b/src/main/resources/data/mineralogy/recipes/gabbro_slab.json index 41e2edbd3..132b00040 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gabbro" - } - }, - "result": { - "item": "mineralogy:gabbro_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_slab_from_gabbro_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gabbro_slab_from_gabbro_stonecutting.json deleted file mode 100644 index 355dc3d51..000000000 --- a/src/main/resources/data/mineralogy/recipes/gabbro_slab_from_gabbro_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gabbro" - }, - "result": "mineralogy:gabbro_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json index e0243ad98..552e8bc0b 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/gabbro" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:gabbro_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/gabbro" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:gabbro_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick.json index 69ef58194..cde8c6303 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_furnace.json index 7d81a257a..06109a209 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_slab.json index a2bd163cf..c3ea3eb3b 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_stairs.json index 43f84439b..f0e8edf88 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_wall.json index f480a1720..05b00ae09 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_furnace.json index db8186e2c..28b15b3ff 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_slab.json index 03b68e8ad..e77cdf11e 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_stairs.json index b2c18abfa..66770fcf2 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_wall.json index 56af05be6..77d6a41aa 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gabbro_smooth" - } - }, - "result": { - "item": "mineralogy:gabbro_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json b/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json index 266295138..10baf2d63 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gabbro" - } - }, - "result": { - "item": "mineralogy:gabbro_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_stairs_from_gabbro_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gabbro_stairs_from_gabbro_stonecutting.json deleted file mode 100644 index a44aa76b0..000000000 --- a/src/main/resources/data/mineralogy/recipes/gabbro_stairs_from_gabbro_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gabbro" - }, - "result": "mineralogy:gabbro_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_wall.json b/src/main/resources/data/mineralogy/recipes/gabbro_wall.json index d14005662..8cc6a029e 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gabbro" - } - }, - "result": { - "item": "mineralogy:gabbro_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_wall_from_gabbro_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gabbro_wall_from_gabbro_stonecutting.json deleted file mode 100644 index eb20d6403..000000000 --- a/src/main/resources/data/mineralogy/recipes/gabbro_wall_from_gabbro_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gabbro" - }, - "result": "mineralogy:gabbro_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick.json index be4796332..1f2535044 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gneiss" - } - }, - "result": { - "item": "mineralogy:gneiss_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_block_polishing.json new file mode 100644 index 000000000..1c5be4173 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_furnace.json index a1a82ecd2..b03f760d9 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gneiss_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab.json index 9ebb6e086..f4ba04ba2 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_polishing.json new file mode 100644 index 000000000..9a3b0389f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_recombination.json new file mode 100644 index 000000000..3a0a8d4e5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_brick_slab" + }, + { + "item": "mineralogy:gneiss_brick_slab" + } + ], + "result": { + "item": "mineralogy:gneiss_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs.json index 16cb6db9e..a847b70f5 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs_polishing.json new file mode 100644 index 000000000..a0db79aad --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall.json index e6e74e799..15f3f9a42 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall_polishing.json new file mode 100644 index 000000000..53565441e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json b/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json index 210c98653..bbb3d2767 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/gneiss" - }, - { - "tag": "mineralogy:crafting_materials/gneiss" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/gneiss" + }, + { + "tag": "mineralogy:stones/gneiss" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json b/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json index 37fa86e59..954107e2f 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gneiss_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/gneiss_furnace_from_rock.json deleted file mode 100644 index b858bb92c..000000000 --- a/src/main/resources/data/mineralogy/recipes/gneiss_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gneiss" - } - }, - "result": { - "item": "mineralogy:gneiss_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gneiss_polished_brick_slab_recombination.json new file mode 100644 index 000000000..eebb0fcdb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_smooth_brick_slab" + }, + { + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slab_recombination.json new file mode 100644 index 000000000..f449f22ee --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slabs_to_brick.json new file mode 100644 index 000000000..cdcaf87c3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_slab" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_polished_stairs_to_brick.json new file mode 100644 index 000000000..139cea5be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_polished_walls_to_brick.json new file mode 100644 index 000000000..98b140c12 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_wall" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_polishing.json new file mode 100644 index 000000000..e73914b71 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_recombination.json new file mode 100644 index 000000000..3bf2bdb3b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_slab" + }, + { + "item": "mineralogy:gneiss_slab" + } + ], + "result": { + "item": "mineralogy:gneiss", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slabs_to_brick.json new file mode 100644 index 000000000..8eae122de --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_slab" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_polishing.json new file mode 100644 index 000000000..d5a8f61b4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_to_brick.json new file mode 100644 index 000000000..ffd9be83c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_stairs" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_wall_polishing.json new file mode 100644 index 000000000..31d11e6bc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_raw_walls_to_brick.json new file mode 100644 index 000000000..c4afc178d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_wall" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_axe.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_axe.json index 211a42cef..0dbfaf824 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:gneiss_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:gneiss_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_blank.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_blank.json index c5bd379d7..c259cd6f3 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_cross.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_cross.json index 76b504e8c..d01da19f7 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_hammer.json index 46d3248f5..67a739bc3 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_hoe.json index 5496f76d8..de83567d0 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:gneiss_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:gneiss_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_horizontal.json index 9530f2df7..80aa6ca68 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_i.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_i.json index 6623eaf15..4ae29a475 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_left.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_left.json index b2e52f992..7dbb2c5bf 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_pickaxe.json index f00c7b21b..666247ca9 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:gneiss_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:gneiss_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_plus.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_plus.json index df66616ea..15d6dfd5c 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_right.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_right.json index 037381062..3b6cb632f 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_left" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_relief_left" + }, + { + "item": "mineralogy:gneiss_relief_left" + } + ], + "result": { + "item": "mineralogy:gneiss_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_sword.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_sword.json index 816de9d79..d0c9eb2e4 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "mineralogy:gneiss_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:gneiss_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "mineralogy:gneiss_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:gneiss_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/gneiss_relief_vertical.json index 18cc58bf5..4206088f6 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_relief_blank" - } - }, - "result": { - "item": "mineralogy:gneiss_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_slab.json b/src/main/resources/data/mineralogy/recipes/gneiss_slab.json index 103b2496f..e21822575 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gneiss" - } - }, - "result": { - "item": "mineralogy:gneiss_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_slab_from_gneiss_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gneiss_slab_from_gneiss_stonecutting.json deleted file mode 100644 index 1a5607d16..000000000 --- a/src/main/resources/data/mineralogy/recipes/gneiss_slab_from_gneiss_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gneiss" - }, - "result": "mineralogy:gneiss_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json index db53720df..e761461d4 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/gneiss" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:gneiss_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/gneiss" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:gneiss_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick.json index c5e29db5e..8d4b39b21 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_furnace.json index b131b8c5e..d17678a93 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_slab.json index cc0578b2c..e2104be2c 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_stairs.json index f41fc6e8a..0b8d9f3a8 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_wall.json index 08464ea62..8e26b543c 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth_brick" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_furnace.json index 017eb4b2c..c0c91da6f 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_slab.json index d9c5995d7..35afc97a7 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_stairs.json index fbbae3f80..0e06e380f 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_wall.json index 51903c750..3425f55cf 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:gneiss_smooth" - } - }, - "result": { - "item": "mineralogy:gneiss_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json b/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json index f760bab27..3e7d0de00 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gneiss" - } - }, - "result": { - "item": "mineralogy:gneiss_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_stairs_from_gneiss_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gneiss_stairs_from_gneiss_stonecutting.json deleted file mode 100644 index 5b05aee18..000000000 --- a/src/main/resources/data/mineralogy/recipes/gneiss_stairs_from_gneiss_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gneiss" - }, - "result": "mineralogy:gneiss_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_wall.json b/src/main/resources/data/mineralogy/recipes/gneiss_wall.json index 186d0bda2..ff2a6b254 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/gneiss" - } - }, - "result": { - "item": "mineralogy:gneiss_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_wall_from_gneiss_stonecutting.json b/src/main/resources/data/mineralogy/recipes/gneiss_wall_from_gneiss_stonecutting.json deleted file mode 100644 index ea6a8c4af..000000000 --- a/src/main/resources/data/mineralogy/recipes/gneiss_wall_from_gneiss_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/gneiss" - }, - "result": "mineralogy:gneiss_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick.json b/src/main/resources/data/mineralogy/recipes/granite_brick.json index ef2d2f2a7..d8db2c9c3 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:granite" - } - }, - "result": { - "item": "mineralogy:granite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite" + } + }, + "result": { + "item": "mineralogy:granite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_brick_block_polishing.json new file mode 100644 index 000000000..b52ecc6ab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/granite_brick_furnace.json index 43756fcaf..8a0cba0b9 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:granite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/granite_brick_slab.json index 186d87bab..b1ac97f5a 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_brick" - } - }, - "result": { - "item": "mineralogy:granite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_polishing.json new file mode 100644 index 000000000..1149031e7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_recombination.json new file mode 100644 index 000000000..043e54604 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_brick_slab" + }, + { + "item": "mineralogy:granite_brick_slab" + } + ], + "result": { + "item": "mineralogy:granite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/granite_brick_stairs.json index 6f955f44b..673d62abe 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_brick" - } - }, - "result": { - "item": "mineralogy:granite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_brick_stairs_polishing.json new file mode 100644 index 000000000..8fc1602a4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/granite_brick_wall.json index 70800d72d..555850692 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_brick" - } - }, - "result": { - "item": "mineralogy:granite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_brick_wall_polishing.json new file mode 100644 index 000000000..a14d8eb84 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json index f5136c974..cccddd42d 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/granite" - }, - { - "tag": "mineralogy:crafting_materials/granite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/granite" + }, + { + "tag": "mineralogy:stones/granite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_furnace.json b/src/main/resources/data/mineralogy/recipes/granite_furnace.json index 9ed5644f3..7f62048ca 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/granite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:granite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/granite_furnace_from_rock.json deleted file mode 100644 index 4c50b2c12..000000000 --- a/src/main/resources/data/mineralogy/recipes/granite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/granite" - } - }, - "result": { - "item": "mineralogy:granite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/granite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/granite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..4b3494ebf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_smooth_brick_slab" + }, + { + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:granite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/granite_polished_slab_recombination.json new file mode 100644 index 000000000..8db726bd6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_smooth_slab" + }, + { + "item": "mineralogy:granite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:granite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_polished_slabs_to_brick.json new file mode 100644 index 000000000..446b3e78c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_polished_stairs_to_brick.json new file mode 100644 index 000000000..000ecac67 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_polished_walls_to_brick.json new file mode 100644 index 000000000..0ead7cd3d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_polishing.json new file mode 100644 index 000000000..a39724156 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_recombination.json new file mode 100644 index 000000000..af2493299 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_slab" + }, + { + "item": "mineralogy:granite_slab" + } + ], + "result": { + "item": "mineralogy:granite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_raw_slabs_to_brick.json new file mode 100644 index 000000000..21930053f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_slab" + } + }, + "result": { + "item": "mineralogy:granite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_polishing.json new file mode 100644 index 000000000..122baa403 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_to_brick.json new file mode 100644 index 000000000..e9b0e5fe7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_stairs" + } + }, + "result": { + "item": "mineralogy:granite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/granite_raw_wall_polishing.json new file mode 100644 index 000000000..50ddb8677 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/granite_raw_walls_to_brick.json new file mode 100644 index 000000000..3258012bc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_wall" + } + }, + "result": { + "item": "mineralogy:granite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/granite_relief_axe.json index e8bf723d7..3d4c0684f 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:granite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:granite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/granite_relief_blank.json index 5f6fd7899..1562b773c 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - } - }, - "result": { - "item": "mineralogy:granite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/granite_relief_cross.json index 0a742c168..871a49361 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/granite_relief_hammer.json index 52b8a920f..02bcfa913 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/granite_relief_hoe.json index bb9bb7683..cf895d384 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:granite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:granite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/granite_relief_horizontal.json index 705039aa4..f71682bc7 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_i.json b/src/main/resources/data/mineralogy/recipes/granite_relief_i.json index dca5b6348..8144dcbce 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_left.json b/src/main/resources/data/mineralogy/recipes/granite_relief_left.json index f9a40448a..95559c1ba 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/granite_relief_pickaxe.json index c80d184a2..1c220a905 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:granite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:granite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/granite_relief_plus.json index 0094fdb2a..2c8c022eb 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_right.json b/src/main/resources/data/mineralogy/recipes/granite_relief_right.json index 280a02fc4..bb78a9b62 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_left" - } - }, - "result": { - "item": "mineralogy:granite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_relief_left" + }, + { + "item": "mineralogy:granite_relief_left" + } + ], + "result": { + "item": "mineralogy:granite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/granite_relief_sword.json index 7d4fc4be6..bbcf24c37 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "mineralogy:granite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:granite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "mineralogy:granite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:granite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/granite_relief_vertical.json index 797205d77..912259743 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/granite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:granite_relief_blank" - } - }, - "result": { - "item": "mineralogy:granite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_slab.json b/src/main/resources/data/mineralogy/recipes/granite_slab.json index 07927a17b..983fea31e 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/granite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite" - } - }, - "result": { - "item": "mineralogy:granite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_slab_from_granite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/granite_slab_from_granite_stonecutting.json deleted file mode 100644 index 532306f23..000000000 --- a/src/main/resources/data/mineralogy/recipes/granite_slab_from_granite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:granite" - }, - "result": "mineralogy:granite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/granite_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/granite_slab_from_vanilla.json new file mode 100644 index 000000000..c91bd5197 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:granite_slab" + } + ], + "result": { + "item": "mineralogy:granite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/granite_slab_to_vanilla.json new file mode 100644 index 000000000..20b240929 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_slab" + } + ], + "result": { + "item": "minecraft:granite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth.json b/src/main/resources/data/mineralogy/recipes/granite_smooth.json index 00029faa3..46dd14f50 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/granite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:granite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:granite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick.json index bb644f5b9..d931e6f6a 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - } - }, - "result": { - "item": "mineralogy:granite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_furnace.json index 2264cdab9..5c8869ca1 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:granite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_slab.json index 49ed02172..a24e12384 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:granite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_stairs.json index 9a6934c71..f2d992fb7 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:granite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_wall.json index 691c3436c..cfc405fd7 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:granite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_furnace.json index a02e057d4..74f00a684 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:granite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab.json index 4fd817e85..fec76f32d 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - } - }, - "result": { - "item": "mineralogy:granite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_from_vanilla.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_from_vanilla.json new file mode 100644 index 000000000..424d64000 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_from_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:polished_granite_slab" + } + ], + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_to_vanilla.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_to_vanilla.json new file mode 100644 index 000000000..d18a21346 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_to_vanilla.json @@ -0,0 +1,22 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:granite_smooth_slab" + } + ], + "result": { + "item": "minecraft:polished_granite_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_stairs.json index 8e905eebf..cccefe463 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - } - }, - "result": { - "item": "mineralogy:granite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/granite_smooth_wall.json index c820f1a59..27e60ecdf 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite_smooth" - } - }, - "result": { - "item": "mineralogy:granite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_stairs.json b/src/main/resources/data/mineralogy/recipes/granite_stairs.json index 38bd8954d..2555a1fbd 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/granite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite" - } - }, - "result": { - "item": "mineralogy:granite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_stairs_from_granite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/granite_stairs_from_granite_stonecutting.json deleted file mode 100644 index 7a86089ac..000000000 --- a/src/main/resources/data/mineralogy/recipes/granite_stairs_from_granite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:granite" - }, - "result": "mineralogy:granite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/granite_wall.json b/src/main/resources/data/mineralogy/recipes/granite_wall.json index 4664e82d8..85a3d87a7 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/granite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:granite" - } - }, - "result": { - "item": "mineralogy:granite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/granite_wall_from_granite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/granite_wall_from_granite_stonecutting.json deleted file mode 100644 index ef079dbc3..000000000 --- a/src/main/resources/data/mineralogy/recipes/granite_wall_from_granite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "item": "mineralogy:granite" - }, - "result": "mineralogy:granite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/gravel_to_stone.json b/src/main/resources/data/mineralogy/recipes/gravel_to_stone.json index e8e3c5ecc..64b3311ea 100644 --- a/src/main/resources/data/mineralogy/recipes/gravel_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/gravel_to_stone.json @@ -1,22 +1,15 @@ { - "type": "forge:conditional", - "recipes": [ + "type": "minecraft:smelting", + "ingredient": { + "item": "minecraft:gravel" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200, + "conditions": [ { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "SMELTABLE_GRAVEL" - } - ], - "recipe": { - "type": "minecraft:smelting", - "ingredient": { - "item": "minecraft:gravel" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 - } + "type": "mineralogy:config", + "flag": "SMELTABLE_GRAVEL" } ] } diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon.json deleted file mode 100644 index 55a7c0a9c..000000000 --- a/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:dusts/carbon" - }, - { - "tag": "forge:dusts/nitrate" - }, - { - "tag": "forge:dusts/sulfur" - } - ], - "result": { - "item": "minecraft:gunpowder", - "count": 4 - } -} diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon_dust.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon_dust.json new file mode 100644 index 000000000..42d698ab2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon_dust.json @@ -0,0 +1,31 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/carbon" + } + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:dusts/carbon" + }, + { + "tag": "forge:dusts/nitrate" + }, + { + "tag": "forge:dusts/sulfur" + } + ], + "result": { + "item": "minecraft:gunpowder", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_charcoal.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_charcoal.json new file mode 100644 index 000000000..ed887d527 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_charcoal.json @@ -0,0 +1,24 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:charcoal" + }, + { + "tag": "forge:dusts/nitrate" + }, + { + "tag": "forge:dusts/sulfur" + } + ], + "result": { + "item": "minecraft:gunpowder", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal.json deleted file mode 100644 index 9a470320b..000000000 --- a/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:coal" - }, - { - "tag": "forge:dusts/nitrate" - }, - { - "tag": "forge:dusts/sulfur" - } - ], - "result": { - "item": "minecraft:gunpowder", - "count": 4 - } -} diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal_dust.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal_dust.json new file mode 100644 index 000000000..099f13913 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal_dust.json @@ -0,0 +1,31 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/coal" + } + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:dusts/coal" + }, + { + "tag": "forge:dusts/nitrate" + }, + { + "tag": "forge:dusts/sulfur" + } + ], + "result": { + "item": "minecraft:gunpowder", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/gunpowder_from_sugar.json b/src/main/resources/data/mineralogy/recipes/gunpowder_from_sugar.json index 2b25af923..3ee7e98d3 100644 --- a/src/main/resources/data/mineralogy/recipes/gunpowder_from_sugar.json +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_sugar.json @@ -1,18 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "minecraft:sugar" - }, - { - "tag": "forge:dusts/nitrate" - }, - { - "tag": "forge:dusts/sulfur" - } - ], - "result": { - "item": "minecraft:gunpowder", - "count": 4 - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "minecraft:sugar" + }, + { + "tag": "forge:dusts/nitrate" + }, + { + "tag": "forge:dusts/sulfur" + } + ], + "result": { + "item": "minecraft:gunpowder", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gypsum.json b/src/main/resources/data/mineralogy/recipes/gypsum.json index 5bb619aad..49bc08363 100644 --- a/src/main/resources/data/mineralogy/recipes/gypsum.json +++ b/src/main/resources/data/mineralogy/recipes/gypsum.json @@ -1,16 +1,22 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "forge:dusts/gypsum" - } - }, - "result": { - "item": "mineralogy:gypsum" - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gypsum" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/gypsum" + } + }, + "result": { + "item": "mineralogy:gypsum", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/gypsum_dust.json b/src/main/resources/data/mineralogy/recipes/gypsum_dust.json index 9d5adb223..7781a6191 100644 --- a/src/main/resources/data/mineralogy/recipes/gypsum_dust.json +++ b/src/main/resources/data/mineralogy/recipes/gypsum_dust.json @@ -1,12 +1,18 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/gypsum" - } - ], - "result": { - "item": "mineralogy:gypsum_dust", - "count": 9 - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gypsum_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/gypsum" + } + ], + "result": { + "item": "mineralogy:gypsum_dust", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick.json index 01bfa0585..f8d6e9fb1 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/hornfels" - } - }, - "result": { - "item": "mineralogy:hornfels_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_block_polishing.json new file mode 100644 index 000000000..2c50cad38 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_furnace.json index 6647c9a09..5afa377cd 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:hornfels_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab.json index 24fa46592..0184a0a4e 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_polishing.json new file mode 100644 index 000000000..0aff8fe33 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_recombination.json new file mode 100644 index 000000000..ace699124 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_brick_slab" + }, + { + "item": "mineralogy:hornfels_brick_slab" + } + ], + "result": { + "item": "mineralogy:hornfels_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs.json index 4c6a29a59..92ce98d42 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs_polishing.json new file mode 100644 index 000000000..dbcafa427 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall.json index 7a2b8a533..d64ef4d0d 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall_polishing.json new file mode 100644 index 000000000..aab0ddcae --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json b/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json index 93bfdb765..977936bbc 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/hornfels" - }, - { - "tag": "mineralogy:crafting_materials/hornfels" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/hornfels" + }, + { + "tag": "mineralogy:stones/hornfels" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json b/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json index 4cc767d88..70d532ca4 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:hornfels_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/hornfels_furnace_from_rock.json deleted file mode 100644 index 3023923c6..000000000 --- a/src/main/resources/data/mineralogy/recipes/hornfels_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/hornfels" - } - }, - "result": { - "item": "mineralogy:hornfels_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/hornfels_polished_brick_slab_recombination.json new file mode 100644 index 000000000..593aba083 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_smooth_brick_slab" + }, + { + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slab_recombination.json new file mode 100644 index 000000000..98825b88f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slabs_to_brick.json new file mode 100644 index 000000000..c46470ad5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_slab" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_polished_stairs_to_brick.json new file mode 100644 index 000000000..b2e0d4a7d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_polished_walls_to_brick.json new file mode 100644 index 000000000..6b7d6b48d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_wall" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_polishing.json new file mode 100644 index 000000000..2db90a7df --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_recombination.json new file mode 100644 index 000000000..19ef6a95b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_slab" + }, + { + "item": "mineralogy:hornfels_slab" + } + ], + "result": { + "item": "mineralogy:hornfels", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slabs_to_brick.json new file mode 100644 index 000000000..5f0d54e87 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_slab" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_polishing.json new file mode 100644 index 000000000..bf416d1ef --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_to_brick.json new file mode 100644 index 000000000..7d80b58c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_stairs" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_wall_polishing.json new file mode 100644 index 000000000..99caf45da --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_raw_walls_to_brick.json new file mode 100644 index 000000000..9fe737405 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_wall" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_axe.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_axe.json index bc8284da9..885324663 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:hornfels_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:hornfels_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_blank.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_blank.json index 282e1c5df..e64e141ac 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_cross.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_cross.json index b5fec7612..25f271d91 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_hammer.json index 16e9a419a..ce0bddfa9 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_hoe.json index c2c79fadf..bf86b4262 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:hornfels_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:hornfels_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_horizontal.json index 23217574a..9f11d2e1c 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_i.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_i.json index 3cdaf3074..5c8d9c3d6 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_left.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_left.json index fdcf382ee..ff3ac9084 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_pickaxe.json index c248a733e..9622f3a87 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:hornfels_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:hornfels_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_plus.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_plus.json index f8743797a..2f730dcfd 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_right.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_right.json index 7740f370b..e362ca6c3 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_left" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_relief_left" + }, + { + "item": "mineralogy:hornfels_relief_left" + } + ], + "result": { + "item": "mineralogy:hornfels_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_sword.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_sword.json index d996cf08c..33b3a9714 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "mineralogy:hornfels_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:hornfels_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "mineralogy:hornfels_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:hornfels_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/hornfels_relief_vertical.json index c9940ca72..a72a92849 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_relief_blank" - } - }, - "result": { - "item": "mineralogy:hornfels_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_slab.json b/src/main/resources/data/mineralogy/recipes/hornfels_slab.json index 9a362695e..97d9a44da 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_slab.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/hornfels" - } - }, - "result": { - "item": "mineralogy:hornfels_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_slab_from_hornfels_stonecutting.json b/src/main/resources/data/mineralogy/recipes/hornfels_slab_from_hornfels_stonecutting.json deleted file mode 100644 index 0a55432fc..000000000 --- a/src/main/resources/data/mineralogy/recipes/hornfels_slab_from_hornfels_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/hornfels" - }, - "result": "mineralogy:hornfels_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json index 5213ec679..1652aaed6 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/hornfels" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:hornfels_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/hornfels" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:hornfels_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick.json index 74f30e352..7ef199fe9 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_furnace.json index 3848a9413..6930a32c7 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_slab.json index 6bd46b7f9..4906dd00f 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_stairs.json index 0c84a292a..022e9b439 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_wall.json index 543cc3c4e..19eec32c2 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth_brick" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_furnace.json index 71ba2a978..ed333b061 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_slab.json index 48150f032..6cd63acce 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_stairs.json index 690f70729..bf7db1054 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_wall.json index 7c29ac7ff..de7ddaa16 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:hornfels_smooth" - } - }, - "result": { - "item": "mineralogy:hornfels_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json b/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json index 2eaacf0e7..08fc9f132 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/hornfels" - } - }, - "result": { - "item": "mineralogy:hornfels_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_stairs_from_hornfels_stonecutting.json b/src/main/resources/data/mineralogy/recipes/hornfels_stairs_from_hornfels_stonecutting.json deleted file mode 100644 index 7c4a6399d..000000000 --- a/src/main/resources/data/mineralogy/recipes/hornfels_stairs_from_hornfels_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/hornfels" - }, - "result": "mineralogy:hornfels_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_wall.json b/src/main/resources/data/mineralogy/recipes/hornfels_wall.json index d83a51860..c11e942a9 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_wall.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/hornfels" - } - }, - "result": { - "item": "mineralogy:hornfels_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_wall_from_hornfels_stonecutting.json b/src/main/resources/data/mineralogy/recipes/hornfels_wall_from_hornfels_stonecutting.json deleted file mode 100644 index 2b5df1346..000000000 --- a/src/main/resources/data/mineralogy/recipes/hornfels_wall_from_hornfels_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/hornfels" - }, - "result": "mineralogy:hornfels_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_brick.json index 7b28ddc08..d00b2dff9 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/limestone" - } - }, - "result": { - "item": "mineralogy:limestone_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_block_polishing.json new file mode 100644 index 000000000..c106ee58c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_furnace.json index 8bb720fce..1d0e6babe 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:limestone_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_slab.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab.json index 87153ea42..dc1140125 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_brick" - } - }, - "result": { - "item": "mineralogy:limestone_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_polishing.json new file mode 100644 index 000000000..a3f514e1c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_recombination.json new file mode 100644 index 000000000..3c6a01b24 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_brick_slab" + }, + { + "item": "mineralogy:limestone_brick_slab" + } + ], + "result": { + "item": "mineralogy:limestone_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs.json index 0360e9d3d..6741a0946 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_brick" - } - }, - "result": { - "item": "mineralogy:limestone_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs_polishing.json new file mode 100644 index 000000000..92c7f3360 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_wall.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_wall.json index 618dc7a57..076a17f19 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_brick" - } - }, - "result": { - "item": "mineralogy:limestone_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_brick_wall_polishing.json new file mode 100644 index 000000000..670f0064b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json b/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json index 68e457a80..729517842 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/limestone" - }, - { - "tag": "mineralogy:crafting_materials/limestone" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/limestone" + }, + { + "tag": "mineralogy:stones/limestone" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_furnace.json b/src/main/resources/data/mineralogy/recipes/limestone_furnace.json index f7e50a85b..c3a2bd0ed 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:limestone_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/limestone_furnace_from_rock.json deleted file mode 100644 index 170d6b687..000000000 --- a/src/main/resources/data/mineralogy/recipes/limestone_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/limestone" - } - }, - "result": { - "item": "mineralogy:limestone_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/limestone_polished_brick_slab_recombination.json new file mode 100644 index 000000000..72403b6cb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_smooth_brick_slab" + }, + { + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/limestone_polished_slab_recombination.json new file mode 100644 index 000000000..61d71ea3b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_smooth_slab" + }, + { + "item": "mineralogy:limestone_smooth_slab" + } + ], + "result": { + "item": "mineralogy:limestone_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_polished_slabs_to_brick.json new file mode 100644 index 000000000..c0de89c9e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_slab" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_polished_stairs_to_brick.json new file mode 100644 index 000000000..c04b941ed --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_polished_walls_to_brick.json new file mode 100644 index 000000000..b81a48d59 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_wall" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_polishing.json new file mode 100644 index 000000000..186758820 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_recombination.json new file mode 100644 index 000000000..2828ab5c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_slab" + }, + { + "item": "mineralogy:limestone_slab" + } + ], + "result": { + "item": "mineralogy:limestone", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_slabs_to_brick.json new file mode 100644 index 000000000..5b4e52f9a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_slab" + } + }, + "result": { + "item": "mineralogy:limestone_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_polishing.json new file mode 100644 index 000000000..663a25353 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_to_brick.json new file mode 100644 index 000000000..e088307f3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_stairs" + } + }, + "result": { + "item": "mineralogy:limestone_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_wall_polishing.json new file mode 100644 index 000000000..9b6ac5953 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_raw_walls_to_brick.json new file mode 100644 index 000000000..0c927507c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_wall" + } + }, + "result": { + "item": "mineralogy:limestone_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_axe.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_axe.json index 63e57191e..4278d904a 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:limestone_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:limestone_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_blank.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_blank.json index ae2018ea8..96c4b17dc 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - } - }, - "result": { - "item": "mineralogy:limestone_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth" + } + }, + "result": { + "item": "mineralogy:limestone_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_cross.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_cross.json index 0196b12b2..302ed4ae0 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_hammer.json index b911b5fb6..3b5e960f8 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_hoe.json index 9a014f98a..ae6939ee5 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:limestone_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:limestone_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_horizontal.json index 6df8a6df5..11835e0bc 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_i.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_i.json index 0f5c9d59a..65038cbfd 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_left.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_left.json index 7b68d30ef..fb171e5ee 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_pickaxe.json index e59235a75..d7080e909 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:limestone_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:limestone_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_plus.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_plus.json index d4e898cb0..b871e57de 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_right.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_right.json index 14c9249b5..acd2f73cc 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_left" - } - }, - "result": { - "item": "mineralogy:limestone_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_relief_left" + }, + { + "item": "mineralogy:limestone_relief_left" + } + ], + "result": { + "item": "mineralogy:limestone_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_sword.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_sword.json index 7a6fa051d..ca8807f59 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "mineralogy:limestone_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:limestone_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "mineralogy:limestone_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:limestone_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/limestone_relief_vertical.json index 2f26278af..c3186e2f1 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:limestone_relief_blank" - } - }, - "result": { - "item": "mineralogy:limestone_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_slab.json b/src/main/resources/data/mineralogy/recipes/limestone_slab.json index ecff1e29e..b24e15ff9 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_slab.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/limestone" - } - }, - "result": { - "item": "mineralogy:limestone_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone" + } + }, + "result": { + "item": "mineralogy:limestone_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_slab_from_limestone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/limestone_slab_from_limestone_stonecutting.json deleted file mode 100644 index 54fcd4f47..000000000 --- a/src/main/resources/data/mineralogy/recipes/limestone_slab_from_limestone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/limestone" - }, - "result": "mineralogy:limestone_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth.json index d9ff74cad..1c7c6332e 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/limestone" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:limestone_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/limestone" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:limestone_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick.json index f12b20686..ac4f2edda 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_furnace.json index cda60b0f7..2179b0f8c 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_slab.json index ec617bb05..7114d4e5a 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_stairs.json index b22ad78eb..3db29b699 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_wall.json index 87726f05f..dad0b8f2d 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_furnace.json index 9b5cb6d26..205cbd0f5 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_slab.json index f2d3012f9..1963c2b22 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_stairs.json index 753a17853..d91a616b2 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/limestone_smooth_wall.json index a263f2fac..2834737c1 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:limestone_smooth" - } - }, - "result": { - "item": "mineralogy:limestone_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_stairs.json b/src/main/resources/data/mineralogy/recipes/limestone_stairs.json index 0d1d09c18..e0d7ffa4d 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/limestone" - } - }, - "result": { - "item": "mineralogy:limestone_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_stairs_from_limestone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/limestone_stairs_from_limestone_stonecutting.json deleted file mode 100644 index 85ab9faac..000000000 --- a/src/main/resources/data/mineralogy/recipes/limestone_stairs_from_limestone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/limestone" - }, - "result": "mineralogy:limestone_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/limestone_wall.json b/src/main/resources/data/mineralogy/recipes/limestone_wall.json index 5879f4307..a008dbee3 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_wall.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/limestone" - } - }, - "result": { - "item": "mineralogy:limestone_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_wall_from_limestone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/limestone_wall_from_limestone_stonecutting.json deleted file mode 100644 index d3f33b599..000000000 --- a/src/main/resources/data/mineralogy/recipes/limestone_wall_from_limestone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/limestone" - }, - "result": "mineralogy:limestone_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick.json b/src/main/resources/data/mineralogy/recipes/marble_brick.json index 3d453b2e4..76c7dd433 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/marble" - } - }, - "result": { - "item": "mineralogy:marble_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_brick_block_polishing.json new file mode 100644 index 000000000..615650bba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/marble_brick_furnace.json index 07a39b0f7..cf13e4059 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:marble_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_slab.json b/src/main/resources/data/mineralogy/recipes/marble_brick_slab.json index 21172dd03..3bc7e6fa9 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_brick" - } - }, - "result": { - "item": "mineralogy:marble_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_polishing.json new file mode 100644 index 000000000..2f6b11723 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_recombination.json new file mode 100644 index 000000000..ea20aea9a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_brick_slab" + }, + { + "item": "mineralogy:marble_brick_slab" + } + ], + "result": { + "item": "mineralogy:marble_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/marble_brick_stairs.json index 85be55beb..02053f937 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_brick" - } - }, - "result": { - "item": "mineralogy:marble_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_brick_stairs_polishing.json new file mode 100644 index 000000000..d9831b67e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_wall.json b/src/main/resources/data/mineralogy/recipes/marble_brick_wall.json index 9f949fcc7..9c73c0193 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_brick" - } - }, - "result": { - "item": "mineralogy:marble_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_brick_wall_polishing.json new file mode 100644 index 000000000..f90891490 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json b/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json index 4789d3e55..9e3ce5775 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/marble" - }, - { - "tag": "mineralogy:crafting_materials/marble" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/marble" + }, + { + "tag": "mineralogy:stones/marble" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_furnace.json b/src/main/resources/data/mineralogy/recipes/marble_furnace.json index 6ece28aeb..c5980f8db 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/marble_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:marble_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/marble_furnace_from_rock.json deleted file mode 100644 index 550ee18d6..000000000 --- a/src/main/resources/data/mineralogy/recipes/marble_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/marble" - } - }, - "result": { - "item": "mineralogy:marble_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/marble_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/marble_polished_brick_slab_recombination.json new file mode 100644 index 000000000..62831d180 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_smooth_brick_slab" + }, + { + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:marble_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/marble_polished_slab_recombination.json new file mode 100644 index 000000000..ae2ec05a9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_smooth_slab" + }, + { + "item": "mineralogy:marble_smooth_slab" + } + ], + "result": { + "item": "mineralogy:marble_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_polished_slabs_to_brick.json new file mode 100644 index 000000000..526aa316f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_slab" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_polished_stairs_to_brick.json new file mode 100644 index 000000000..0c080b93b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_polished_walls_to_brick.json new file mode 100644 index 000000000..5fef3df58 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_wall" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_polishing.json new file mode 100644 index 000000000..ce2f649cf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_recombination.json new file mode 100644 index 000000000..459ee49ab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_slab" + }, + { + "item": "mineralogy:marble_slab" + } + ], + "result": { + "item": "mineralogy:marble", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_raw_slabs_to_brick.json new file mode 100644 index 000000000..1ba3f4b72 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_slab" + } + }, + "result": { + "item": "mineralogy:marble_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_polishing.json new file mode 100644 index 000000000..a8e1d29e5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_to_brick.json new file mode 100644 index 000000000..4d8d81a13 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_stairs" + } + }, + "result": { + "item": "mineralogy:marble_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/marble_raw_wall_polishing.json new file mode 100644 index 000000000..5a101579e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/marble_raw_walls_to_brick.json new file mode 100644 index 000000000..88635d0e3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_wall" + } + }, + "result": { + "item": "mineralogy:marble_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_axe.json b/src/main/resources/data/mineralogy/recipes/marble_relief_axe.json index b2c8f57a0..b89b95fce 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:marble_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:marble_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_blank.json b/src/main/resources/data/mineralogy/recipes/marble_relief_blank.json index 9f32f6f8f..b13cf5008 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - } - }, - "result": { - "item": "mineralogy:marble_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth" + } + }, + "result": { + "item": "mineralogy:marble_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_cross.json b/src/main/resources/data/mineralogy/recipes/marble_relief_cross.json index ea3a54b54..29bdb8d63 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/marble_relief_hammer.json index 94b7dbc46..c3a205aa4 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/marble_relief_hoe.json index fb4deb5df..ff6d74c1e 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:marble_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:marble_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/marble_relief_horizontal.json index 08505348a..bc2f52a18 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_i.json b/src/main/resources/data/mineralogy/recipes/marble_relief_i.json index 0673774b4..8d0f2b3e0 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_left.json b/src/main/resources/data/mineralogy/recipes/marble_relief_left.json index 64f58a43c..8e8ac68b5 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/marble_relief_pickaxe.json index 1967b854e..c86a26227 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:marble_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:marble_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_plus.json b/src/main/resources/data/mineralogy/recipes/marble_relief_plus.json index a4437e7ac..5b493b515 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_right.json b/src/main/resources/data/mineralogy/recipes/marble_relief_right.json index 2ec41db2b..02f0d4f1f 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_left" - } - }, - "result": { - "item": "mineralogy:marble_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_relief_left" + }, + { + "item": "mineralogy:marble_relief_left" + } + ], + "result": { + "item": "mineralogy:marble_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_sword.json b/src/main/resources/data/mineralogy/recipes/marble_relief_sword.json index fc9727ebe..53a063d5a 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "mineralogy:marble_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:marble_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "mineralogy:marble_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:marble_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/marble_relief_vertical.json index af67eb024..b06f013d2 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/marble_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:marble_relief_blank" - } - }, - "result": { - "item": "mineralogy:marble_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_slab.json b/src/main/resources/data/mineralogy/recipes/marble_slab.json index 6db31a876..5f170be5f 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_slab.json +++ b/src/main/resources/data/mineralogy/recipes/marble_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/marble" - } - }, - "result": { - "item": "mineralogy:marble_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble" + } + }, + "result": { + "item": "mineralogy:marble_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_slab_from_marble_stonecutting.json b/src/main/resources/data/mineralogy/recipes/marble_slab_from_marble_stonecutting.json deleted file mode 100644 index 3635a8ffc..000000000 --- a/src/main/resources/data/mineralogy/recipes/marble_slab_from_marble_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/marble" - }, - "result": "mineralogy:marble_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth.json b/src/main/resources/data/mineralogy/recipes/marble_smooth.json index 88869e645..593043ba9 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/marble" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:marble_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/marble" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:marble_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick.json index d1ecd24f5..05e868c3b 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - } - }, - "result": { - "item": "mineralogy:marble_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_furnace.json index eacac35b3..3bccae88a 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:marble_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_slab.json index 52879cf5e..b0605bf1f 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth_brick" - } - }, - "result": { - "item": "mineralogy:marble_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_stairs.json index ff1138d76..8f4a0db13 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth_brick" - } - }, - "result": { - "item": "mineralogy:marble_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_wall.json index e0cd8f858..e816b0f6b 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth_brick" - } - }, - "result": { - "item": "mineralogy:marble_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_furnace.json index 41b9310a0..b025120e0 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:marble_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_slab.json index 0c3fc93cc..df89e9bcd 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - } - }, - "result": { - "item": "mineralogy:marble_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_stairs.json index 88a51b3d7..67c4ccca9 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - } - }, - "result": { - "item": "mineralogy:marble_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/marble_smooth_wall.json index 2c5ed67fe..55c696ed7 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:marble_smooth" - } - }, - "result": { - "item": "mineralogy:marble_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_stairs.json b/src/main/resources/data/mineralogy/recipes/marble_stairs.json index f476e072e..346890345 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/marble_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/marble" - } - }, - "result": { - "item": "mineralogy:marble_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_stairs_from_marble_stonecutting.json b/src/main/resources/data/mineralogy/recipes/marble_stairs_from_marble_stonecutting.json deleted file mode 100644 index a470c2389..000000000 --- a/src/main/resources/data/mineralogy/recipes/marble_stairs_from_marble_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/marble" - }, - "result": "mineralogy:marble_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/marble_wall.json b/src/main/resources/data/mineralogy/recipes/marble_wall.json index 5d292b64d..1d1d3b41d 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_wall.json +++ b/src/main/resources/data/mineralogy/recipes/marble_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/marble" - } - }, - "result": { - "item": "mineralogy:marble_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/marble_wall_from_marble_stonecutting.json b/src/main/resources/data/mineralogy/recipes/marble_wall_from_marble_stonecutting.json deleted file mode 100644 index 2630d0b26..000000000 --- a/src/main/resources/data/mineralogy/recipes/marble_wall_from_marble_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/marble" - }, - "result": "mineralogy:marble_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/mineral_fertilizer.json b/src/main/resources/data/mineralogy/recipes/mineral_fertilizer.json deleted file mode 100644 index 8416947cf..000000000 --- a/src/main/resources/data/mineralogy/recipes/mineral_fertilizer.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:dusts/nitrate" - }, - { - "tag": "forge:dusts/phosphorous" - } - ], - "result": { - "item": "mineralogy:mineral_fertilizer" - } -} diff --git a/src/main/resources/data/mineralogy/recipes/mineralfertilizer.json b/src/main/resources/data/mineralogy/recipes/mineralfertilizer.json new file mode 100644 index 000000000..6f9e494ac --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/mineralfertilizer.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_FERTILIZER" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:mineral_fertilizer" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:dusts/nitrate" + }, + { + "tag": "forge:dusts/phosphorous" + } + ], + "result": { + "item": "mineralogy:mineral_fertilizer", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/nitrate_block.json b/src/main/resources/data/mineralogy/recipes/nitrate_block.json index 2d9a73f50..17ae1ca6b 100644 --- a/src/main/resources/data/mineralogy/recipes/nitrate_block.json +++ b/src/main/resources/data/mineralogy/recipes/nitrate_block.json @@ -1,16 +1,27 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "forge:dusts/nitrate" - } - }, - "result": { - "item": "mineralogy:nitrate_block" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:nitrate_block" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:nitrate_dust" + } + }, + "result": { + "item": "mineralogy:nitrate_block", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/nitrate_dust.json b/src/main/resources/data/mineralogy/recipes/nitrate_dust.json index 94f98e8d8..c8d4a6c09 100644 --- a/src/main/resources/data/mineralogy/recipes/nitrate_dust.json +++ b/src/main/resources/data/mineralogy/recipes/nitrate_dust.json @@ -1,12 +1,22 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/nitrate" - } - ], - "result": { - "item": "mineralogy:nitrate_dust", - "count": 9 - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:nitrate_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/nitrate" + } + ], + "result": { + "item": "mineralogy:nitrate_dust", + "count": 9 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick.json index 37d027a63..8bd5b0d80 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/novaculite" - } - }, - "result": { - "item": "mineralogy:novaculite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_block_polishing.json new file mode 100644 index 000000000..99ea3c668 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_furnace.json index f67009d9e..4f10ba709 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:novaculite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab.json index 50d32d5c6..81af5a568 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_polishing.json new file mode 100644 index 000000000..8344b7c93 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_recombination.json new file mode 100644 index 000000000..150f4c402 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_brick_slab" + }, + { + "item": "mineralogy:novaculite_brick_slab" + } + ], + "result": { + "item": "mineralogy:novaculite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs.json index 036111585..31275a6cc 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs_polishing.json new file mode 100644 index 000000000..bc8c2303b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall.json index ab72a1945..2f6da80fe 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall_polishing.json new file mode 100644 index 000000000..c4f7e9614 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json index ddcef1ebe..9a8da12ee 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/novaculite" - }, - { - "tag": "mineralogy:crafting_materials/novaculite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/novaculite" + }, + { + "tag": "mineralogy:stones/novaculite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json b/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json index b8889426e..940c68acb 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:novaculite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/novaculite_furnace_from_rock.json deleted file mode 100644 index fb54973ec..000000000 --- a/src/main/resources/data/mineralogy/recipes/novaculite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/novaculite" - } - }, - "result": { - "item": "mineralogy:novaculite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/novaculite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..5b544f41b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_smooth_brick_slab" + }, + { + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slab_recombination.json new file mode 100644 index 000000000..19d83bc7c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slabs_to_brick.json new file mode 100644 index 000000000..97c598666 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_polished_stairs_to_brick.json new file mode 100644 index 000000000..c5935de5a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_polished_walls_to_brick.json new file mode 100644 index 000000000..693faa04a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_polishing.json new file mode 100644 index 000000000..74deeb8ab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_recombination.json new file mode 100644 index 000000000..422504daa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_slab" + }, + { + "item": "mineralogy:novaculite_slab" + } + ], + "result": { + "item": "mineralogy:novaculite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slabs_to_brick.json new file mode 100644 index 000000000..021f3ac37 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_slab" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_polishing.json new file mode 100644 index 000000000..beaeca0db --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_to_brick.json new file mode 100644 index 000000000..1eeaf6b2f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_stairs" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_wall_polishing.json new file mode 100644 index 000000000..3edf236d8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_raw_walls_to_brick.json new file mode 100644 index 000000000..08f5bdd8d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_wall" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_axe.json index 7cb1c1cf7..bb0001d97 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:novaculite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:novaculite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_blank.json index 567ab3f19..1fb5e51ba 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_cross.json index 7f79c6384..f4c0bec4b 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_hammer.json index fc621f422..53ff2e71b 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_hoe.json index afb042bed..53417aa38 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:novaculite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:novaculite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_horizontal.json index 52728ca22..9ca794140 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_i.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_i.json index 6e09ca570..b18e022f6 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_left.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_left.json index 18d9ce481..bebc532c6 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_pickaxe.json index 90678f931..6c4417311 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:novaculite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:novaculite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_plus.json index 9c13967fb..d32d11a4a 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_right.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_right.json index 1cff6762f..3e315cab6 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_left" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_relief_left" + }, + { + "item": "mineralogy:novaculite_relief_left" + } + ], + "result": { + "item": "mineralogy:novaculite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_sword.json index 0f6db09ae..f5827c283 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "mineralogy:novaculite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:novaculite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "mineralogy:novaculite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:novaculite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/novaculite_relief_vertical.json index 4b0bfefbe..c78629d17 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_relief_blank" - } - }, - "result": { - "item": "mineralogy:novaculite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_slab.json b/src/main/resources/data/mineralogy/recipes/novaculite_slab.json index 60b0747cc..0b12e568a 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/novaculite" - } - }, - "result": { - "item": "mineralogy:novaculite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_slab_from_novaculite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/novaculite_slab_from_novaculite_stonecutting.json deleted file mode 100644 index 66dcc2521..000000000 --- a/src/main/resources/data/mineralogy/recipes/novaculite_slab_from_novaculite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/novaculite" - }, - "result": "mineralogy:novaculite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json index cfd80a614..2bb4fd011 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/novaculite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:novaculite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/novaculite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:novaculite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick.json index 20cb3130e..dabdca75e 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_furnace.json index 622548842..a8b83c2c9 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_slab.json index d4190d4cd..d3ce495ee 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_stairs.json index 2b4d25b5a..9fb78eedb 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_wall.json index b3490e86f..0d30014ed 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_furnace.json index 79102376d..13e1e27b6 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_slab.json index 188591ca7..e7f1bf2b6 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_stairs.json index f07aec03b..9fa878a00 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_wall.json index c4be97fc1..447d86dfa 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:novaculite_smooth" - } - }, - "result": { - "item": "mineralogy:novaculite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json b/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json index a8414e018..0ea6b8346 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/novaculite" - } - }, - "result": { - "item": "mineralogy:novaculite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_stairs_from_novaculite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/novaculite_stairs_from_novaculite_stonecutting.json deleted file mode 100644 index 497558edc..000000000 --- a/src/main/resources/data/mineralogy/recipes/novaculite_stairs_from_novaculite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/novaculite" - }, - "result": "mineralogy:novaculite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_wall.json b/src/main/resources/data/mineralogy/recipes/novaculite_wall.json index d4d25d96e..0e1336682 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/novaculite" - } - }, - "result": { - "item": "mineralogy:novaculite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_wall_from_novaculite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/novaculite_wall_from_novaculite_stonecutting.json deleted file mode 100644 index cd3a39530..000000000 --- a/src/main/resources/data/mineralogy/recipes/novaculite_wall_from_novaculite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/novaculite" - }, - "result": "mineralogy:novaculite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json index 9d789ce78..9c50371d2 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/pegmatite" - } - }, - "result": { - "item": "mineralogy:pegmatite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_block_polishing.json new file mode 100644 index 000000000..66de263cc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_furnace.json index 17124db45..061342200 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:pegmatite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab.json index ff922750c..2636188f3 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_polishing.json new file mode 100644 index 000000000..47cfe8b4a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_recombination.json new file mode 100644 index 000000000..39e44bd1a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "result": { + "item": "mineralogy:pegmatite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs.json index 6718c41fc..6fe25be37 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs_polishing.json new file mode 100644 index 000000000..d1c04d873 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall.json index 84d4064e8..4f48e7878 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall_polishing.json new file mode 100644 index 000000000..39699e075 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json index a9cf4e5b9..77a1ec268 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/pegmatite" + }, + { + "tag": "mineralogy:stones/pegmatite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json b/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json index b4772ba8e..0c1780dfe 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:pegmatite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/pegmatite_furnace_from_rock.json deleted file mode 100644 index f4f1687d4..000000000 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/pegmatite" - } - }, - "result": { - "item": "mineralogy:pegmatite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..d4ba86311 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_smooth_brick_slab" + }, + { + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slab_recombination.json new file mode 100644 index 000000000..a940969df --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slabs_to_brick.json new file mode 100644 index 000000000..b1fe90e3e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_stairs_to_brick.json new file mode 100644 index 000000000..cde3fecee --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_walls_to_brick.json new file mode 100644 index 000000000..41f26f74c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_polishing.json new file mode 100644 index 000000000..343766bfd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_recombination.json new file mode 100644 index 000000000..36d0d3133 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_slab" + }, + { + "item": "mineralogy:pegmatite_slab" + } + ], + "result": { + "item": "mineralogy:pegmatite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slabs_to_brick.json new file mode 100644 index 000000000..46e06c578 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_slab" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_polishing.json new file mode 100644 index 000000000..adc9d51e9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_to_brick.json new file mode 100644 index 000000000..d23153915 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_stairs" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_wall_polishing.json new file mode 100644 index 000000000..3314e4d3c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_walls_to_brick.json new file mode 100644 index 000000000..dcc49a9d2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_wall" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_axe.json index 96b7a10fa..2020c49df 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:pegmatite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:pegmatite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_blank.json index 9481a40ff..404aa78fd 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_cross.json index 4d3d012b3..e4bb4b025 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hammer.json index 223fde7e9..967e4e643 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hoe.json index 68ae5309b..572d850cc 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:pegmatite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:pegmatite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_horizontal.json index 29aae5325..f8d71228f 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_i.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_i.json index b5e0091d4..d2b6bac83 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_left.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_left.json index cc4697e46..7d75355d2 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_pickaxe.json index be5598a51..5025576c2 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:pegmatite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:pegmatite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_plus.json index c050dabf1..718d3edcf 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_right.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_right.json index 6a794203b..98ca59f8f 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_left" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_relief_left" + }, + { + "item": "mineralogy:pegmatite_relief_left" + } + ], + "result": { + "item": "mineralogy:pegmatite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_sword.json index a9287c5e0..2249b99aa 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "mineralogy:pegmatite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:pegmatite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "mineralogy:pegmatite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:pegmatite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_vertical.json index bd2c68fe9..0001d529a 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_relief_blank" - } - }, - "result": { - "item": "mineralogy:pegmatite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json b/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json index 1de7cfed5..22fd121ad 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/pegmatite" - } - }, - "result": { - "item": "mineralogy:pegmatite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_slab_from_pegmatite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/pegmatite_slab_from_pegmatite_stonecutting.json deleted file mode 100644 index 75ea50a79..000000000 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_slab_from_pegmatite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - "result": "mineralogy:pegmatite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json index a87c062a7..8d8ad449e 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:pegmatite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/pegmatite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:pegmatite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick.json index e3be488f2..e78453ed4 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_furnace.json index 57ad5f5a2..9255dd16b 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_slab.json index bda37c38d..958619679 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_stairs.json index fea77c2c6..81178a6ab 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_wall.json index d28b04493..3bcb15218 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_furnace.json index 13a733ee6..41aef14bb 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_slab.json index f7ba8959f..245c19d58 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_stairs.json index 519d22921..88e487bd0 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_wall.json index 5083a4ecf..6b6cb1859 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:pegmatite_smooth" - } - }, - "result": { - "item": "mineralogy:pegmatite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json b/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json index f140c3d1c..6b750b565 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/pegmatite" - } - }, - "result": { - "item": "mineralogy:pegmatite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs_from_pegmatite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/pegmatite_stairs_from_pegmatite_stonecutting.json deleted file mode 100644 index c28271f80..000000000 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs_from_pegmatite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - "result": "mineralogy:pegmatite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json b/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json index e4ee88436..0fe71f344 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/pegmatite" - } - }, - "result": { - "item": "mineralogy:pegmatite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_wall_from_pegmatite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/pegmatite_wall_from_pegmatite_stonecutting.json deleted file mode 100644 index d3b4d6265..000000000 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_wall_from_pegmatite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/pegmatite" - }, - "result": "mineralogy:pegmatite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick.json index d1f97d0c9..762e63fab 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/peridotite" - } - }, - "result": { - "item": "mineralogy:peridotite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_block_polishing.json new file mode 100644 index 000000000..c0e919f2e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_furnace.json index f5a6e6cbe..d9dad9f1c 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:peridotite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab.json index f01aefb29..6a2bc334e 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_polishing.json new file mode 100644 index 000000000..27d157b14 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_recombination.json new file mode 100644 index 000000000..5de82722c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_brick_slab" + }, + { + "item": "mineralogy:peridotite_brick_slab" + } + ], + "result": { + "item": "mineralogy:peridotite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs.json index b18e4b4df..650b61b6c 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs_polishing.json new file mode 100644 index 000000000..1e4514fcc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall.json index d4d2251cd..509285998 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall_polishing.json new file mode 100644 index 000000000..52747be2c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json index d3ccef1b7..7d9235362 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/peridotite" - }, - { - "tag": "mineralogy:crafting_materials/peridotite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/peridotite" + }, + { + "tag": "mineralogy:stones/peridotite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json b/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json index 2fd14f261..3ee6fd973 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:peridotite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/peridotite_furnace_from_rock.json deleted file mode 100644 index e235b248e..000000000 --- a/src/main/resources/data/mineralogy/recipes/peridotite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/peridotite" - } - }, - "result": { - "item": "mineralogy:peridotite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/peridotite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..36b4e42b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_smooth_brick_slab" + }, + { + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slab_recombination.json new file mode 100644 index 000000000..1b2ab034b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slabs_to_brick.json new file mode 100644 index 000000000..02b3501e5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_polished_stairs_to_brick.json new file mode 100644 index 000000000..5c886fadc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_polished_walls_to_brick.json new file mode 100644 index 000000000..cc5c0a396 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_polishing.json new file mode 100644 index 000000000..7b02a049d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_recombination.json new file mode 100644 index 000000000..67f0a111b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_slab" + }, + { + "item": "mineralogy:peridotite_slab" + } + ], + "result": { + "item": "mineralogy:peridotite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slabs_to_brick.json new file mode 100644 index 000000000..2420eaf70 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_slab" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_polishing.json new file mode 100644 index 000000000..7201d0006 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_to_brick.json new file mode 100644 index 000000000..c98c47bd7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_stairs" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_wall_polishing.json new file mode 100644 index 000000000..2b5cf1997 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_raw_walls_to_brick.json new file mode 100644 index 000000000..12704ace6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_wall" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_axe.json index 9f93bde0e..5acc10200 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:peridotite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:peridotite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_blank.json index 8fb57a8a2..b6af4a866 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_cross.json index 187fb0846..d5774f6fc 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_hammer.json index c5951c183..7205fa4fc 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_hoe.json index b3e8a26c8..26e25eecf 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:peridotite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:peridotite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_horizontal.json index c7255cec4..50283598e 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_i.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_i.json index 3e0f6b7e4..60fbd5914 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_left.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_left.json index 7b3fc457e..131ba06c6 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_pickaxe.json index 59c261ef0..a658d0084 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:peridotite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:peridotite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_plus.json index fd81dedad..97cc0cefb 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_right.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_right.json index 424894cdf..0d1e881a9 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_left" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_relief_left" + }, + { + "item": "mineralogy:peridotite_relief_left" + } + ], + "result": { + "item": "mineralogy:peridotite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_sword.json index 705284bbf..648d1e8c8 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "mineralogy:peridotite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:peridotite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "mineralogy:peridotite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:peridotite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/peridotite_relief_vertical.json index 05b5e1844..a5868d89e 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_relief_blank" - } - }, - "result": { - "item": "mineralogy:peridotite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_slab.json b/src/main/resources/data/mineralogy/recipes/peridotite_slab.json index 92301341a..4fb6b92b7 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/peridotite" - } - }, - "result": { - "item": "mineralogy:peridotite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_slab_from_peridotite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/peridotite_slab_from_peridotite_stonecutting.json deleted file mode 100644 index f2e505829..000000000 --- a/src/main/resources/data/mineralogy/recipes/peridotite_slab_from_peridotite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/peridotite" - }, - "result": "mineralogy:peridotite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json index c8ff4eea0..bbb861772 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/peridotite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:peridotite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/peridotite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:peridotite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick.json index 42a65bfdf..341608027 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_furnace.json index 2f6eb521e..ef015aba0 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_slab.json index 58affaf1d..8ffdc0497 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_stairs.json index dcc9c49a1..dd4590cd9 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_wall.json index aaeba01a6..522a56d49 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_furnace.json index 3ea97fe12..34dfc218c 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_slab.json index 56d273666..aac944a6c 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_stairs.json index f1769da9e..5f77a1e53 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_wall.json index f1c203e40..30d8b97a1 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:peridotite_smooth" - } - }, - "result": { - "item": "mineralogy:peridotite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json b/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json index aba8814d5..13d92d8f3 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/peridotite" - } - }, - "result": { - "item": "mineralogy:peridotite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_stairs_from_peridotite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/peridotite_stairs_from_peridotite_stonecutting.json deleted file mode 100644 index f344b0fe6..000000000 --- a/src/main/resources/data/mineralogy/recipes/peridotite_stairs_from_peridotite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/peridotite" - }, - "result": "mineralogy:peridotite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_wall.json b/src/main/resources/data/mineralogy/recipes/peridotite_wall.json index 582ca95a4..5c16d1139 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/peridotite" - } - }, - "result": { - "item": "mineralogy:peridotite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_wall_from_peridotite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/peridotite_wall_from_peridotite_stonecutting.json deleted file mode 100644 index 82eef2347..000000000 --- a/src/main/resources/data/mineralogy/recipes/peridotite_wall_from_peridotite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/peridotite" - }, - "result": "mineralogy:peridotite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/phosphorous_block.json b/src/main/resources/data/mineralogy/recipes/phosphorous_block.json index 92b40456f..f5a0a15ac 100644 --- a/src/main/resources/data/mineralogy/recipes/phosphorous_block.json +++ b/src/main/resources/data/mineralogy/recipes/phosphorous_block.json @@ -1,16 +1,27 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "forge:dusts/phosphorous" - } - }, - "result": { - "item": "mineralogy:phosphorous_block" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phosphorous_block" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phosphorous_dust" + } + }, + "result": { + "item": "mineralogy:phosphorous_block", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json b/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json index 0937f7af7..a24fe4a77 100644 --- a/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json +++ b/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json @@ -1,12 +1,22 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/phosphorous" - } - ], - "result": { - "item": "mineralogy:phosphorous_dust", - "count": 9 - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phosphorous_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/phosphorous" + } + ], + "result": { + "item": "mineralogy:phosphorous_dust", + "count": 9 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick.json index b8c642850..8cde90e8f 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/phyllite" - } - }, - "result": { - "item": "mineralogy:phyllite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_block_polishing.json new file mode 100644 index 000000000..6362b9add --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_furnace.json index a2817aca8..735385973 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:phyllite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab.json index 8da8e5b05..d6463f2a5 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_polishing.json new file mode 100644 index 000000000..bb240aef9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_recombination.json new file mode 100644 index 000000000..c78b2e2e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_brick_slab" + }, + { + "item": "mineralogy:phyllite_brick_slab" + } + ], + "result": { + "item": "mineralogy:phyllite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs.json index 235097d1e..440474ddf 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs_polishing.json new file mode 100644 index 000000000..95bec7b7c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall.json index 0e6760dfe..301ed982a 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall_polishing.json new file mode 100644 index 000000000..4f7e9ac9d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json index d724d4952..a0a5cdc5d 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/phyllite" - }, - { - "tag": "mineralogy:crafting_materials/phyllite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/phyllite" + }, + { + "tag": "mineralogy:stones/phyllite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json b/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json index 2d89e4e8d..19c4dc5dd 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:phyllite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/phyllite_furnace_from_rock.json deleted file mode 100644 index fa6802d77..000000000 --- a/src/main/resources/data/mineralogy/recipes/phyllite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/phyllite" - } - }, - "result": { - "item": "mineralogy:phyllite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/phyllite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..413330f19 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_smooth_brick_slab" + }, + { + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slab_recombination.json new file mode 100644 index 000000000..81439fb14 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slabs_to_brick.json new file mode 100644 index 000000000..f75e9e237 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_polished_stairs_to_brick.json new file mode 100644 index 000000000..fd1316b60 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_polished_walls_to_brick.json new file mode 100644 index 000000000..fd1ef3515 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_polishing.json new file mode 100644 index 000000000..850b8ac45 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_recombination.json new file mode 100644 index 000000000..94dea2652 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_slab" + }, + { + "item": "mineralogy:phyllite_slab" + } + ], + "result": { + "item": "mineralogy:phyllite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slabs_to_brick.json new file mode 100644 index 000000000..ee3f409ba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_slab" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_polishing.json new file mode 100644 index 000000000..d3f283745 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_to_brick.json new file mode 100644 index 000000000..7e67846bd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_stairs" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_wall_polishing.json new file mode 100644 index 000000000..e1bcf09d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_raw_walls_to_brick.json new file mode 100644 index 000000000..8c201e293 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_wall" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_axe.json index 6d9d024b6..b1a2e2bd0 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:phyllite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:phyllite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_blank.json index 47dd4c62a..a6214c023 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_cross.json index 3b13e8404..cd7c65242 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_hammer.json index 3f2a76d68..c6f95e421 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_hoe.json index d9b04aaaf..3174799b0 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:phyllite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:phyllite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_horizontal.json index ba147f305..c993ae66a 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_i.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_i.json index 7166781d1..e542e6cad 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_left.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_left.json index abc0fe39e..2c8aabba2 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_pickaxe.json index 136219691..b59dfd460 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:phyllite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:phyllite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_plus.json index f62a622f5..347a951b7 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_right.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_right.json index 095f57504..ec429f83e 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_left" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_relief_left" + }, + { + "item": "mineralogy:phyllite_relief_left" + } + ], + "result": { + "item": "mineralogy:phyllite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_sword.json index 60a43cea3..b96c614c2 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "mineralogy:phyllite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:phyllite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "mineralogy:phyllite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:phyllite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/phyllite_relief_vertical.json index 47d3f4aca..6bf3aa063 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_relief_blank" - } - }, - "result": { - "item": "mineralogy:phyllite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_slab.json b/src/main/resources/data/mineralogy/recipes/phyllite_slab.json index 3e05de0b7..2d8086d9f 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/phyllite" - } - }, - "result": { - "item": "mineralogy:phyllite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_slab_from_phyllite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/phyllite_slab_from_phyllite_stonecutting.json deleted file mode 100644 index d30825141..000000000 --- a/src/main/resources/data/mineralogy/recipes/phyllite_slab_from_phyllite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/phyllite" - }, - "result": "mineralogy:phyllite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json index 8bada6c0c..ad750a9f7 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/phyllite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:phyllite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/phyllite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:phyllite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick.json index c6b2f1dea..b63145c51 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_furnace.json index adc2371b7..4f4e20be0 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_slab.json index e52be8e1a..48f772b07 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_stairs.json index 96579145a..5fbf7a716 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_wall.json index 7402fd13d..3d96a164c 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_furnace.json index df8ae65b7..832a404e9 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_slab.json index 2eef86cef..4dd48a01c 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_stairs.json index 149d7bf80..a243eb250 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_wall.json index 81e058670..b6673039f 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:phyllite_smooth" - } - }, - "result": { - "item": "mineralogy:phyllite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json b/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json index 132bd081d..3c6089f70 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/phyllite" - } - }, - "result": { - "item": "mineralogy:phyllite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_stairs_from_phyllite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/phyllite_stairs_from_phyllite_stonecutting.json deleted file mode 100644 index d5995cea8..000000000 --- a/src/main/resources/data/mineralogy/recipes/phyllite_stairs_from_phyllite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/phyllite" - }, - "result": "mineralogy:phyllite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_wall.json b/src/main/resources/data/mineralogy/recipes/phyllite_wall.json index 57805f2e0..3b96dff85 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/phyllite" - } - }, - "result": { - "item": "mineralogy:phyllite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_wall_from_phyllite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/phyllite_wall_from_phyllite_stonecutting.json deleted file mode 100644 index d1a5e36b6..000000000 --- a/src/main/resources/data/mineralogy/recipes/phyllite_wall_from_phyllite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/phyllite" - }, - "result": "mineralogy:phyllite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick.json index c1235bc67..c16f054b0 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/quartzite" - } - }, - "result": { - "item": "mineralogy:quartzite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_block_polishing.json new file mode 100644 index 000000000..be2f1ceaf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_furnace.json index ab0ce0205..fd27d1d68 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:quartzite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab.json index b9659b930..bb40073f4 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_polishing.json new file mode 100644 index 000000000..0dd4d96d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_recombination.json new file mode 100644 index 000000000..687018811 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_brick_slab" + }, + { + "item": "mineralogy:quartzite_brick_slab" + } + ], + "result": { + "item": "mineralogy:quartzite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs.json index bca9e0282..2b7c70457 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs_polishing.json new file mode 100644 index 000000000..4217ccc4f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall.json index 1689cf22e..06d8bd760 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall_polishing.json new file mode 100644 index 000000000..3ced117fb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json index 7228c72b6..d9bc16ae0 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/quartzite" - }, - { - "tag": "mineralogy:crafting_materials/quartzite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/quartzite" + }, + { + "tag": "mineralogy:stones/quartzite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json b/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json index aa6b73a76..3bcd85ee9 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:quartzite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/quartzite_furnace_from_rock.json deleted file mode 100644 index 42ff1458d..000000000 --- a/src/main/resources/data/mineralogy/recipes/quartzite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/quartzite" - } - }, - "result": { - "item": "mineralogy:quartzite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/quartzite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..688ac8628 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_smooth_brick_slab" + }, + { + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slab_recombination.json new file mode 100644 index 000000000..2e878923d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slabs_to_brick.json new file mode 100644 index 000000000..97765627e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_polished_stairs_to_brick.json new file mode 100644 index 000000000..5dbc17ede --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_polished_walls_to_brick.json new file mode 100644 index 000000000..a52b08ab6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_polishing.json new file mode 100644 index 000000000..3c6807375 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_recombination.json new file mode 100644 index 000000000..6f36584e0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_slab" + }, + { + "item": "mineralogy:quartzite_slab" + } + ], + "result": { + "item": "mineralogy:quartzite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slabs_to_brick.json new file mode 100644 index 000000000..4145302e2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_slab" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_polishing.json new file mode 100644 index 000000000..e797389f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_to_brick.json new file mode 100644 index 000000000..0cbe1f8ae --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_stairs" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_wall_polishing.json new file mode 100644 index 000000000..551f58408 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_raw_walls_to_brick.json new file mode 100644 index 000000000..edb0ae0f7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_wall" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_axe.json index 132d8b07c..b46b28548 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:quartzite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:quartzite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_blank.json index 406a4b976..458800dad 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_cross.json index c75064056..788af0c5c 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_hammer.json index be9175874..dd99ca6fe 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_hoe.json index 4780c016f..c48d7555c 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:quartzite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:quartzite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_horizontal.json index 970498214..31002bb71 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_i.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_i.json index 7d348f7d5..91b353561 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_left.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_left.json index 8a59fb051..8d3db257f 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_pickaxe.json index 47a5238f5..c8540c543 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:quartzite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:quartzite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_plus.json index 292f6c947..a57fb11df 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_right.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_right.json index 9f84e57b4..777ae7393 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_left" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_relief_left" + }, + { + "item": "mineralogy:quartzite_relief_left" + } + ], + "result": { + "item": "mineralogy:quartzite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_sword.json index adcdcce0b..4c6565041 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "mineralogy:quartzite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:quartzite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "mineralogy:quartzite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:quartzite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/quartzite_relief_vertical.json index 283dbc478..cffadc5cb 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_relief_blank" - } - }, - "result": { - "item": "mineralogy:quartzite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_slab.json b/src/main/resources/data/mineralogy/recipes/quartzite_slab.json index 38c95aa48..7014ce23e 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/quartzite" - } - }, - "result": { - "item": "mineralogy:quartzite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_slab_from_quartzite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/quartzite_slab_from_quartzite_stonecutting.json deleted file mode 100644 index 1a0928faa..000000000 --- a/src/main/resources/data/mineralogy/recipes/quartzite_slab_from_quartzite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/quartzite" - }, - "result": "mineralogy:quartzite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json index 07f560626..1daaa6690 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/quartzite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:quartzite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/quartzite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:quartzite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick.json index 55d7c0cb2..b77274bf7 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_furnace.json index 4e40f1536..0fdc35ebc 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_slab.json index 5432ec8b0..b27d018f5 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_stairs.json index 41ab13288..192c63327 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_wall.json index a59e87217..f243c02a3 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_furnace.json index b32bb0923..5b876940f 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_slab.json index 60e6b0b5a..31abc3f32 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_stairs.json index d6bee65a2..ca86bddd5 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_wall.json index c6415f819..f38a422d4 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:quartzite_smooth" - } - }, - "result": { - "item": "mineralogy:quartzite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json b/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json index 35c489994..61a0ddad2 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/quartzite" - } - }, - "result": { - "item": "mineralogy:quartzite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_stairs_from_quartzite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/quartzite_stairs_from_quartzite_stonecutting.json deleted file mode 100644 index 784c4eeb1..000000000 --- a/src/main/resources/data/mineralogy/recipes/quartzite_stairs_from_quartzite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/quartzite" - }, - "result": "mineralogy:quartzite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_wall.json b/src/main/resources/data/mineralogy/recipes/quartzite_wall.json index 06260b1a6..9f3c061b6 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/quartzite" - } - }, - "result": { - "item": "mineralogy:quartzite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_wall_from_quartzite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/quartzite_wall_from_quartzite_stonecutting.json deleted file mode 100644 index e36acc232..000000000 --- a/src/main/resources/data/mineralogy/recipes/quartzite_wall_from_quartzite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/quartzite" - }, - "result": "mineralogy:quartzite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json index 9fe2a8d81..cd57cd10d 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rhyolite" - } - }, - "result": { - "item": "mineralogy:rhyolite_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_block_polishing.json new file mode 100644 index 000000000..0f28df821 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_furnace.json index 59caf5915..0d45d83c5 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rhyolite_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab.json index 2cd11f6c2..62d875a65 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_polishing.json new file mode 100644 index 000000000..1f8f35384 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_recombination.json new file mode 100644 index 000000000..d467db70f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "result": { + "item": "mineralogy:rhyolite_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs.json index 29327380a..fc58b3042 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs_polishing.json new file mode 100644 index 000000000..6dbcdedcf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall.json index 628743e9c..d56d02675 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall_polishing.json new file mode 100644 index 000000000..bea252510 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json b/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json index 8dc0e9d2c..653c137a7 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/rhyolite" + }, + { + "tag": "mineralogy:stones/rhyolite" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json b/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json index 0e3fac2c5..b3c85dc8b 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rhyolite_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/rhyolite_furnace_from_rock.json deleted file mode 100644 index 2f0a4678a..000000000 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rhyolite" - } - }, - "result": { - "item": "mineralogy:rhyolite_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_brick_slab_recombination.json new file mode 100644 index 000000000..f7726df1b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_smooth_brick_slab" + }, + { + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slab_recombination.json new file mode 100644 index 000000000..787728ea2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slabs_to_brick.json new file mode 100644 index 000000000..304a10120 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_stairs_to_brick.json new file mode 100644 index 000000000..885cca5e0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_walls_to_brick.json new file mode 100644 index 000000000..06712dcfd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_polishing.json new file mode 100644 index 000000000..4140bf23f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_recombination.json new file mode 100644 index 000000000..69f1bb1b2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_slab" + }, + { + "item": "mineralogy:rhyolite_slab" + } + ], + "result": { + "item": "mineralogy:rhyolite", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slabs_to_brick.json new file mode 100644 index 000000000..7231e5db9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_slab" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_polishing.json new file mode 100644 index 000000000..32ec96346 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_to_brick.json new file mode 100644 index 000000000..d24d45da4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_stairs" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_wall_polishing.json new file mode 100644 index 000000000..d1f3fd1a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_walls_to_brick.json new file mode 100644 index 000000000..d4d343ba1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_wall" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_axe.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_axe.json index 31ec846df..41eae33db 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:rhyolite_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:rhyolite_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_blank.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_blank.json index 989ffe39b..441cefca0 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_cross.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_cross.json index 534a432c3..59e19a619 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hammer.json index 56542432b..ba00ebf57 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hoe.json index 1dd7d6665..d2333bf8d 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:rhyolite_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:rhyolite_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_horizontal.json index 234ec04a7..e22aa8319 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_i.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_i.json index 8d6ace499..50e1a174e 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_left.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_left.json index c76346b3f..285ee5b35 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_pickaxe.json index d0b6e761b..4faa5a864 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:rhyolite_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:rhyolite_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_plus.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_plus.json index e5a9ff54e..49381b9c9 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_right.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_right.json index e12be459f..0a5e32204 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_left" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_relief_left" + }, + { + "item": "mineralogy:rhyolite_relief_left" + } + ], + "result": { + "item": "mineralogy:rhyolite_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_sword.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_sword.json index 7cea17c0b..6c6e5d18c 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "mineralogy:rhyolite_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:rhyolite_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "mineralogy:rhyolite_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:rhyolite_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_vertical.json index 6e908441f..9cebdc951 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_relief_blank" - } - }, - "result": { - "item": "mineralogy:rhyolite_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json b/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json index c098faa26..583f63f1d 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rhyolite" - } - }, - "result": { - "item": "mineralogy:rhyolite_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_slab_from_rhyolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rhyolite_slab_from_rhyolite_stonecutting.json deleted file mode 100644 index 9b4ed0f26..000000000 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_slab_from_rhyolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - "result": "mineralogy:rhyolite_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json index 0d90591df..f5c29ca51 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:rhyolite_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/rhyolite" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:rhyolite_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick.json index 03e545433..793d5aae4 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_furnace.json index 90210de1a..6f24e18a0 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_slab.json index adb38fc9a..afe5788c9 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_stairs.json index 4e7e53eb3..556a4e84a 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_wall.json index eed7fd9a7..2619d722c 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_furnace.json index 1b8a2198a..f0dd40901 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_slab.json index c4b37dbcd..af0bd5263 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_stairs.json index edd1977b5..ebe4285b1 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_wall.json index 332ff85fc..d42973050 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rhyolite_smooth" - } - }, - "result": { - "item": "mineralogy:rhyolite_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json b/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json index fb57d486c..2a5ca9c32 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rhyolite" - } - }, - "result": { - "item": "mineralogy:rhyolite_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs_from_rhyolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rhyolite_stairs_from_rhyolite_stonecutting.json deleted file mode 100644 index 8f28f6679..000000000 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs_from_rhyolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - "result": "mineralogy:rhyolite_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json b/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json index ca0267d80..e46251e6d 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rhyolite" - } - }, - "result": { - "item": "mineralogy:rhyolite_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_wall_from_rhyolite_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rhyolite_wall_from_rhyolite_stonecutting.json deleted file mode 100644 index 9f0e3d818..000000000 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_wall_from_rhyolite_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rhyolite" - }, - "result": "mineralogy:rhyolite_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt.json b/src/main/resources/data/mineralogy/recipes/rock_salt.json index 03e99bf44..a6f18282e 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt.json @@ -1,15 +1,22 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "forge:dusts/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt" - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick.json index cc8e6edfc..f335a6177 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_brick.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_block_polishing.json new file mode 100644 index 000000000..459f75cf0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_furnace.json index b316b31f3..76be26086 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rock_salt_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rock_salt/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab.json index eb6e8e620..9948de629 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_polishing.json new file mode 100644 index 000000000..a02963f20 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_recombination.json new file mode 100644 index 000000000..38bd2d579 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "result": { + "item": "mineralogy:rock_salt_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs.json index c319cf971..917d13376 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs_polishing.json new file mode 100644 index 000000000..7bbcf337c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall.json index 33690f29a..e0a9e2c90 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall_polishing.json new file mode 100644 index 000000000..4ff39b8b5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_cobblestone.json b/src/main/resources/data/mineralogy/recipes/rock_salt_cobblestone.json index c80d39e2f..9045b42c6 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/rock_salt" + }, + { + "tag": "mineralogy:stones/rock_salt" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_dust.json b/src/main/resources/data/mineralogy/recipes/rock_salt_dust.json index 0858c92e1..a7c5ecd1f 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_dust.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_dust.json @@ -1,12 +1,18 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/rock_salt" - } - ], - "result": { - "item": "mineralogy:rock_salt_dust", - "count": 4 - } + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/rock_salt" + } + ], + "result": { + "item": "mineralogy:rock_salt_dust", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_furnace.json b/src/main/resources/data/mineralogy/recipes/rock_salt_furnace.json index 0e4f27294..40948ec71 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rock_salt_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rock_salt" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rock_salt_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/rock_salt_furnace_from_rock.json deleted file mode 100644 index 9c16e8851..000000000 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_brick_slab_recombination.json new file mode 100644 index 000000000..0601b44de --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_smooth_brick_slab" + }, + { + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slab_recombination.json new file mode 100644 index 000000000..34c6ff413 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_smooth_slab" + }, + { + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slabs_to_brick.json new file mode 100644 index 000000000..99229693c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_slab" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_stairs_to_brick.json new file mode 100644 index 000000000..ec751461d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_walls_to_brick.json new file mode 100644 index 000000000..209f55a97 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_wall" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_polishing.json new file mode 100644 index 000000000..a9e65443f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_recombination.json new file mode 100644 index 000000000..935b6ce63 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_slab" + }, + { + "item": "mineralogy:rock_salt_slab" + } + ], + "result": { + "item": "mineralogy:rock_salt", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slabs_to_brick.json new file mode 100644 index 000000000..17ba95598 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_slab" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_polishing.json new file mode 100644 index 000000000..15536ce7d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_to_brick.json new file mode 100644 index 000000000..3e992cb50 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_stairs" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_wall_polishing.json new file mode 100644 index 000000000..d8037f405 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_walls_to_brick.json new file mode 100644 index 000000000..5d419a11f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_wall" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_axe.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_axe.json index 7cc40d4e3..fca0a3020 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:rock_salt_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:rock_salt_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_blank.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_blank.json index 0232ac752..56722fb04 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_cross.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_cross.json index fed65c95a..35e861779 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hammer.json index 340dd3922..064a7f373 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hoe.json index 95d14df2a..09b744d43 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:rock_salt_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:rock_salt_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_horizontal.json index c3e37d540..4bd8daf24 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_i.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_i.json index a88828b19..0c22fafca 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_left.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_left.json index a4a529c6e..5a507c1a4 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_pickaxe.json index 6bcc90415..2a230ee0f 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:rock_salt_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:rock_salt_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_plus.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_plus.json index f358afb09..f89898e32 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_right.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_right.json index a43c11618..8af06375d 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_left" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_relief_left" + }, + { + "item": "mineralogy:rock_salt_relief_left" + } + ], + "result": { + "item": "mineralogy:rock_salt_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_sword.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_sword.json index 40d5332c9..bed77a197 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "mineralogy:rock_salt_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:rock_salt_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "mineralogy:rock_salt_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:rock_salt_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_vertical.json index 2faf6084d..2879cab0e 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_relief_blank" - } - }, - "result": { - "item": "mineralogy:rock_salt_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_slab.json b/src/main/resources/data/mineralogy/recipes/rock_salt_slab.json index a9d10c246..01ee84ab9 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_slab_from_rock_salt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rock_salt_slab_from_rock_salt_stonecutting.json deleted file mode 100644 index fbd8d0bf2..000000000 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_slab_from_rock_salt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - "result": "mineralogy:rock_salt_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth.json index 170b895db..72c8fe40e 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:rock_salt_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/rock_salt" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:rock_salt_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick.json index 3ec8d9a7f..c949cf036 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_furnace.json index 46c2a59be..05179faa4 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rock_salt/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_slab.json index 2db168c61..6545ab1ff 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_stairs.json index e49b3a3d5..d9255b432 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_wall.json index e78eb3d50..6af2a8571 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth_brick" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_furnace.json index 0186ba7d7..0c6979555 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rock_salt/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_slab.json index 47cfe9ef3..e3829748d 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_stairs.json index 3c1329524..e6f3e17ef 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_wall.json index 7d1f4586e..2f39acec3 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:rock_salt_smooth" - } - }, - "result": { - "item": "mineralogy:rock_salt_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_stairs.json b/src/main/resources/data/mineralogy/recipes/rock_salt_stairs.json index edb542b8e..472e4e654 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_stairs_from_rock_salt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rock_salt_stairs_from_rock_salt_stonecutting.json deleted file mode 100644 index a5cbb8fad..000000000 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_stairs_from_rock_salt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - "result": "mineralogy:rock_salt_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_wall.json b/src/main/resources/data/mineralogy/recipes/rock_salt_wall.json index 7b28b4632..7d6bf3b82 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/rock_salt" - } - }, - "result": { - "item": "mineralogy:rock_salt_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rock_salt_wall_from_rock_salt_stonecutting.json b/src/main/resources/data/mineralogy/recipes/rock_salt_wall_from_rock_salt_stonecutting.json deleted file mode 100644 index 014b18bc8..000000000 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_wall_from_rock_salt_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/rock_salt" - }, - "result": "mineralogy:rock_salt_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json b/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json index 942a0269f..4fd7b2134 100644 --- a/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json +++ b/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json @@ -1,17 +1,28 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/rock_salt" - }, - { - "item": "minecraft:torch" - }, - { - "item": "minecraft:iron_ingot" - } - ], - "result": { - "item": "mineralogy:rocksaltlamp" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_ROCK_SALT_LAMPS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rocksaltlamp" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:rock_salt" + }, + { + "item": "minecraft:torch" + }, + { + "item": "minecraft:iron_ingot" + } + ], + "result": { + "item": "mineralogy:rocksaltlamp", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json b/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json index bb7090cfc..4ddf6d1eb 100644 --- a/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json +++ b/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json @@ -1,19 +1,30 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "y", - "y" - ], - "key": { - "x": { - "tag": "forge:lamps/rock_salt" - }, - "y": { - "item": "minecraft:iron_ingot" - } - }, - "result": { - "item": "mineralogy:rocksaltstreetlamp" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_ROCK_SALT_LAMPS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rocksaltstreetlamp" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "y", + "y" + ], + "key": { + "x": { + "tag": "forge:lamps/rock_salt" + }, + "y": { + "item": "minecraft:iron_ingot" + } + }, + "result": { + "item": "mineralogy:rocksaltstreetlamp", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick.json b/src/main/resources/data/mineralogy/recipes/schist_brick.json index 91b0880cf..076bc08c6 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/schist" - } - }, - "result": { - "item": "mineralogy:schist_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_brick_block_polishing.json new file mode 100644 index 000000000..14dc140c6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/schist_brick_furnace.json index faed36618..1bb8f2633 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:schist_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_slab.json b/src/main/resources/data/mineralogy/recipes/schist_brick_slab.json index ebb2b1504..c0ed9122f 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_brick" - } - }, - "result": { - "item": "mineralogy:schist_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_polishing.json new file mode 100644 index 000000000..8dccd84b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_recombination.json new file mode 100644 index 000000000..af0b93999 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_brick_slab" + }, + { + "item": "mineralogy:schist_brick_slab" + } + ], + "result": { + "item": "mineralogy:schist_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/schist_brick_stairs.json index 3aaa6d872..0c87f50f3 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_brick" - } - }, - "result": { - "item": "mineralogy:schist_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_brick_stairs_polishing.json new file mode 100644 index 000000000..d8ff76992 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_wall.json b/src/main/resources/data/mineralogy/recipes/schist_brick_wall.json index e361ef1d9..88c0b699e 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_brick" - } - }, - "result": { - "item": "mineralogy:schist_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_brick_wall_polishing.json new file mode 100644 index 000000000..7115224fc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json b/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json index 1a5187d2c..8c95ebc3f 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/schist" - }, - { - "tag": "mineralogy:crafting_materials/schist" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/schist" + }, + { + "tag": "mineralogy:stones/schist" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_furnace.json b/src/main/resources/data/mineralogy/recipes/schist_furnace.json index 9efb52d40..cdb6e6117 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/schist_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:schist_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/schist_furnace_from_rock.json deleted file mode 100644 index 672ec8fd9..000000000 --- a/src/main/resources/data/mineralogy/recipes/schist_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/schist" - } - }, - "result": { - "item": "mineralogy:schist_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/schist_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/schist_polished_brick_slab_recombination.json new file mode 100644 index 000000000..5a08b9d2b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_smooth_brick_slab" + }, + { + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:schist_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/schist_polished_slab_recombination.json new file mode 100644 index 000000000..f81102f04 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_smooth_slab" + }, + { + "item": "mineralogy:schist_smooth_slab" + } + ], + "result": { + "item": "mineralogy:schist_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_polished_slabs_to_brick.json new file mode 100644 index 000000000..e22a7ab92 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_slab" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_polished_stairs_to_brick.json new file mode 100644 index 000000000..3c4dd95a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_polished_walls_to_brick.json new file mode 100644 index 000000000..693a03b95 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_wall" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_polishing.json new file mode 100644 index 000000000..94be9aea9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_recombination.json new file mode 100644 index 000000000..3f2bd9e52 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_slab" + }, + { + "item": "mineralogy:schist_slab" + } + ], + "result": { + "item": "mineralogy:schist", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_raw_slabs_to_brick.json new file mode 100644 index 000000000..5bb2a27cb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_slab" + } + }, + "result": { + "item": "mineralogy:schist_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_polishing.json new file mode 100644 index 000000000..6ab5a283c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_to_brick.json new file mode 100644 index 000000000..e7f9b5f37 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_stairs" + } + }, + "result": { + "item": "mineralogy:schist_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/schist_raw_wall_polishing.json new file mode 100644 index 000000000..f29dc2f62 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/schist_raw_walls_to_brick.json new file mode 100644 index 000000000..f4e8257a7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_wall" + } + }, + "result": { + "item": "mineralogy:schist_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_axe.json b/src/main/resources/data/mineralogy/recipes/schist_relief_axe.json index 5543e323f..8c896c952 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:schist_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:schist_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_blank.json b/src/main/resources/data/mineralogy/recipes/schist_relief_blank.json index 8f000cb0e..a4a1053fb 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - } - }, - "result": { - "item": "mineralogy:schist_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth" + } + }, + "result": { + "item": "mineralogy:schist_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_cross.json b/src/main/resources/data/mineralogy/recipes/schist_relief_cross.json index f49efecb0..079c7ea09 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/schist_relief_hammer.json index 937f5156b..6ec33c943 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/schist_relief_hoe.json index 7498bc8b5..da8d29cf3 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:schist_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:schist_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/schist_relief_horizontal.json index fbf881767..dbea4e106 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_i.json b/src/main/resources/data/mineralogy/recipes/schist_relief_i.json index 64b740a49..c3d7e8a02 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_left.json b/src/main/resources/data/mineralogy/recipes/schist_relief_left.json index e2c9905b4..7ebc13697 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/schist_relief_pickaxe.json index 5cc4a40fe..661368f00 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:schist_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:schist_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_plus.json b/src/main/resources/data/mineralogy/recipes/schist_relief_plus.json index 6b5c0a9ec..cd1cfc190 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_right.json b/src/main/resources/data/mineralogy/recipes/schist_relief_right.json index 3f74e9f53..baad551c2 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_left" - } - }, - "result": { - "item": "mineralogy:schist_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_relief_left" + }, + { + "item": "mineralogy:schist_relief_left" + } + ], + "result": { + "item": "mineralogy:schist_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_sword.json b/src/main/resources/data/mineralogy/recipes/schist_relief_sword.json index c5b709a26..4e35759bc 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "mineralogy:schist_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:schist_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "mineralogy:schist_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:schist_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/schist_relief_vertical.json index ff58f4d2f..bb754263c 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/schist_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:schist_relief_blank" - } - }, - "result": { - "item": "mineralogy:schist_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_slab.json b/src/main/resources/data/mineralogy/recipes/schist_slab.json index b2077bf26..4b5c015a3 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_slab.json +++ b/src/main/resources/data/mineralogy/recipes/schist_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/schist" - } - }, - "result": { - "item": "mineralogy:schist_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist" + } + }, + "result": { + "item": "mineralogy:schist_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_slab_from_schist_stonecutting.json b/src/main/resources/data/mineralogy/recipes/schist_slab_from_schist_stonecutting.json deleted file mode 100644 index f483d21a2..000000000 --- a/src/main/resources/data/mineralogy/recipes/schist_slab_from_schist_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/schist" - }, - "result": "mineralogy:schist_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth.json b/src/main/resources/data/mineralogy/recipes/schist_smooth.json index dbc4d557d..d08668f7d 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/schist" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:schist_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/schist" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:schist_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick.json index 443cc804d..df69d15c0 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - } - }, - "result": { - "item": "mineralogy:schist_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_furnace.json index 03b9be473..29b355895 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:schist_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_slab.json index e710e756c..83066bbd9 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth_brick" - } - }, - "result": { - "item": "mineralogy:schist_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_stairs.json index 75cdf6e93..6ba265efc 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth_brick" - } - }, - "result": { - "item": "mineralogy:schist_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_wall.json index 33d854428..7deee8619 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth_brick" - } - }, - "result": { - "item": "mineralogy:schist_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_furnace.json index 8af1ec2dd..27692547e 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:schist_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_slab.json index 92ab5176e..4026ef141 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - } - }, - "result": { - "item": "mineralogy:schist_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_stairs.json index b9d335e00..32e391e4c 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - } - }, - "result": { - "item": "mineralogy:schist_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/schist_smooth_wall.json index c7f007c0d..b1056b4b3 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:schist_smooth" - } - }, - "result": { - "item": "mineralogy:schist_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_stairs.json b/src/main/resources/data/mineralogy/recipes/schist_stairs.json index 91772505d..8db3b75a9 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/schist_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/schist" - } - }, - "result": { - "item": "mineralogy:schist_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_stairs_from_schist_stonecutting.json b/src/main/resources/data/mineralogy/recipes/schist_stairs_from_schist_stonecutting.json deleted file mode 100644 index b716d2a90..000000000 --- a/src/main/resources/data/mineralogy/recipes/schist_stairs_from_schist_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/schist" - }, - "result": "mineralogy:schist_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/schist_wall.json b/src/main/resources/data/mineralogy/recipes/schist_wall.json index ba114d794..33b2edc02 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_wall.json +++ b/src/main/resources/data/mineralogy/recipes/schist_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/schist" - } - }, - "result": { - "item": "mineralogy:schist_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/schist_wall_from_schist_stonecutting.json b/src/main/resources/data/mineralogy/recipes/schist_wall_from_schist_stonecutting.json deleted file mode 100644 index 6cbad960d..000000000 --- a/src/main/resources/data/mineralogy/recipes/schist_wall_from_schist_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/schist" - }, - "result": "mineralogy:schist_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_brick.json index ea0d7c357..fafe32fce 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/scoria" - } - }, - "result": { - "item": "mineralogy:scoria_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_block_polishing.json new file mode 100644 index 000000000..8c28d0a32 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_furnace.json index cf43d9796..9a304a82b 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:scoria_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_slab.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab.json index 1b731a8fd..ffe988566 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_brick" - } - }, - "result": { - "item": "mineralogy:scoria_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_polishing.json new file mode 100644 index 000000000..ad30cb531 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_recombination.json new file mode 100644 index 000000000..92121b06a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_brick_slab" + }, + { + "item": "mineralogy:scoria_brick_slab" + } + ], + "result": { + "item": "mineralogy:scoria_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs.json index b7eb4b4d2..4b4271956 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_brick" - } - }, - "result": { - "item": "mineralogy:scoria_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs_polishing.json new file mode 100644 index 000000000..ddb73200b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_wall.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_wall.json index bde1ee20a..e51100c7f 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_brick" - } - }, - "result": { - "item": "mineralogy:scoria_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_brick_wall_polishing.json new file mode 100644 index 000000000..13bb9cc01 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json b/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json index e0f386af4..8b7c3cb94 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/scoria" - }, - { - "tag": "mineralogy:crafting_materials/scoria" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/scoria" + }, + { + "tag": "mineralogy:stones/scoria" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_furnace.json b/src/main/resources/data/mineralogy/recipes/scoria_furnace.json index 68fe108c1..7a2333246 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:scoria_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/scoria_furnace_from_rock.json deleted file mode 100644 index b8f1219db..000000000 --- a/src/main/resources/data/mineralogy/recipes/scoria_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/scoria" - } - }, - "result": { - "item": "mineralogy:scoria_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/scoria_polished_brick_slab_recombination.json new file mode 100644 index 000000000..9c64fe4d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_smooth_brick_slab" + }, + { + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/scoria_polished_slab_recombination.json new file mode 100644 index 000000000..e53370753 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_smooth_slab" + }, + { + "item": "mineralogy:scoria_smooth_slab" + } + ], + "result": { + "item": "mineralogy:scoria_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_polished_slabs_to_brick.json new file mode 100644 index 000000000..484191447 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_slab" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_polished_stairs_to_brick.json new file mode 100644 index 000000000..8ea7bcc3c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_polished_walls_to_brick.json new file mode 100644 index 000000000..363397047 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_wall" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_polishing.json new file mode 100644 index 000000000..e16633fa6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_recombination.json new file mode 100644 index 000000000..1015e31ed --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_slab" + }, + { + "item": "mineralogy:scoria_slab" + } + ], + "result": { + "item": "mineralogy:scoria", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_slabs_to_brick.json new file mode 100644 index 000000000..04c3fafaa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_slab" + } + }, + "result": { + "item": "mineralogy:scoria_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_polishing.json new file mode 100644 index 000000000..6e962c799 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_to_brick.json new file mode 100644 index 000000000..ce6c905cd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_stairs" + } + }, + "result": { + "item": "mineralogy:scoria_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_wall_polishing.json new file mode 100644 index 000000000..966bef34e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_raw_walls_to_brick.json new file mode 100644 index 000000000..bd21fd5df --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_wall" + } + }, + "result": { + "item": "mineralogy:scoria_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_axe.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_axe.json index b5f80d77a..631e9770a 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:scoria_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:scoria_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_blank.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_blank.json index 36cea68b3..6494b610d 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - } - }, - "result": { - "item": "mineralogy:scoria_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth" + } + }, + "result": { + "item": "mineralogy:scoria_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_cross.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_cross.json index 7af7cbb0b..0f42a121b 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_hammer.json index eb954bc9c..c75067366 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_hoe.json index db8657667..bad659b95 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:scoria_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:scoria_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_horizontal.json index fed37b653..5e262cb10 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_i.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_i.json index f514d462c..064683ee0 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_left.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_left.json index 66d78c697..727d0c93f 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_pickaxe.json index 0a33f245f..fb267789e 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:scoria_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:scoria_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_plus.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_plus.json index ac91aa42f..b4e57b619 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_right.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_right.json index d81d14190..25c1451ef 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_left" - } - }, - "result": { - "item": "mineralogy:scoria_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_relief_left" + }, + { + "item": "mineralogy:scoria_relief_left" + } + ], + "result": { + "item": "mineralogy:scoria_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_sword.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_sword.json index feb5a4e93..37933c4c1 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "mineralogy:scoria_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:scoria_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "mineralogy:scoria_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:scoria_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/scoria_relief_vertical.json index 1d67de29a..359b6d57e 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:scoria_relief_blank" - } - }, - "result": { - "item": "mineralogy:scoria_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_slab.json b/src/main/resources/data/mineralogy/recipes/scoria_slab.json index 0f32c15bb..a19d3f46d 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_slab.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/scoria" - } - }, - "result": { - "item": "mineralogy:scoria_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria" + } + }, + "result": { + "item": "mineralogy:scoria_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_slab_from_scoria_stonecutting.json b/src/main/resources/data/mineralogy/recipes/scoria_slab_from_scoria_stonecutting.json deleted file mode 100644 index 3c4b69ed1..000000000 --- a/src/main/resources/data/mineralogy/recipes/scoria_slab_from_scoria_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/scoria" - }, - "result": "mineralogy:scoria_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth.json index 05763e821..6f50c977c 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/scoria" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:scoria_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/scoria" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:scoria_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick.json index bd1329d16..b9e96c342 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_furnace.json index eaac47e74..a27a52015 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_slab.json index 1accff8ad..45d7b33f6 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth_brick" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_stairs.json index 0213e8f9c..df9bb8fa0 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth_brick" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_wall.json index e589a6db1..2ed0560fb 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth_brick" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_furnace.json index 0cf2f2d58..b0d1c5e83 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_slab.json index 0d384c6cd..149bcfb87 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_stairs.json index 0113b1066..12e9d6073 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/scoria_smooth_wall.json index 41af35662..e23eb1694 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:scoria_smooth" - } - }, - "result": { - "item": "mineralogy:scoria_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_stairs.json b/src/main/resources/data/mineralogy/recipes/scoria_stairs.json index de775db69..f16fc9f96 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/scoria" - } - }, - "result": { - "item": "mineralogy:scoria_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_stairs_from_scoria_stonecutting.json b/src/main/resources/data/mineralogy/recipes/scoria_stairs_from_scoria_stonecutting.json deleted file mode 100644 index b619e1d0e..000000000 --- a/src/main/resources/data/mineralogy/recipes/scoria_stairs_from_scoria_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/scoria" - }, - "result": "mineralogy:scoria_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/scoria_wall.json b/src/main/resources/data/mineralogy/recipes/scoria_wall.json index 79fd7df9c..3a614c933 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_wall.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/scoria" - } - }, - "result": { - "item": "mineralogy:scoria_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_wall_from_scoria_stonecutting.json b/src/main/resources/data/mineralogy/recipes/scoria_wall_from_scoria_stonecutting.json deleted file mode 100644 index 0af523267..000000000 --- a/src/main/resources/data/mineralogy/recipes/scoria_wall_from_scoria_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/scoria" - }, - "result": "mineralogy:scoria_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick.json b/src/main/resources/data/mineralogy/recipes/shale_brick.json index c7a8a87fc..58dc44b82 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/shale" - } - }, - "result": { - "item": "mineralogy:shale_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_brick_block_polishing.json new file mode 100644 index 000000000..58e113757 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/shale_brick_furnace.json index 783710e82..6d72df0a5 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:shale_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_slab.json b/src/main/resources/data/mineralogy/recipes/shale_brick_slab.json index babe562a8..7c2ee2b09 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_brick" - } - }, - "result": { - "item": "mineralogy:shale_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_polishing.json new file mode 100644 index 000000000..3892cd601 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_recombination.json new file mode 100644 index 000000000..9f5af6b4b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_brick_slab" + }, + { + "item": "mineralogy:shale_brick_slab" + } + ], + "result": { + "item": "mineralogy:shale_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/shale_brick_stairs.json index f29fbbc2f..4da8db0e2 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_brick" - } - }, - "result": { - "item": "mineralogy:shale_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_brick_stairs_polishing.json new file mode 100644 index 000000000..a05addf52 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_wall.json b/src/main/resources/data/mineralogy/recipes/shale_brick_wall.json index bf744ea77..46c7bab68 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_brick" - } - }, - "result": { - "item": "mineralogy:shale_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_brick_wall_polishing.json new file mode 100644 index 000000000..d5e05e371 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json b/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json index 95b6d6922..1024c53e3 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/shale" - }, - { - "tag": "mineralogy:crafting_materials/shale" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/shale" + }, + { + "tag": "mineralogy:stones/shale" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_furnace.json b/src/main/resources/data/mineralogy/recipes/shale_furnace.json index 3830cbc15..27d358d27 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/shale_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:shale_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/shale_furnace_from_rock.json deleted file mode 100644 index b929672b2..000000000 --- a/src/main/resources/data/mineralogy/recipes/shale_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/shale" - } - }, - "result": { - "item": "mineralogy:shale_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/shale_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/shale_polished_brick_slab_recombination.json new file mode 100644 index 000000000..09c9424f3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_smooth_brick_slab" + }, + { + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:shale_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/shale_polished_slab_recombination.json new file mode 100644 index 000000000..15964903a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_smooth_slab" + }, + { + "item": "mineralogy:shale_smooth_slab" + } + ], + "result": { + "item": "mineralogy:shale_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_polished_slabs_to_brick.json new file mode 100644 index 000000000..768660cc3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_slab" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_polished_stairs_to_brick.json new file mode 100644 index 000000000..aa64e8d1f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_polished_walls_to_brick.json new file mode 100644 index 000000000..e9305bff2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_wall" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_polishing.json new file mode 100644 index 000000000..1905aa418 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_recombination.json new file mode 100644 index 000000000..a387d41b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_slab" + }, + { + "item": "mineralogy:shale_slab" + } + ], + "result": { + "item": "mineralogy:shale", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_raw_slabs_to_brick.json new file mode 100644 index 000000000..0257961f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_slab" + } + }, + "result": { + "item": "mineralogy:shale_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_polishing.json new file mode 100644 index 000000000..93c3d127d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_to_brick.json new file mode 100644 index 000000000..d1c3ecfa2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_stairs" + } + }, + "result": { + "item": "mineralogy:shale_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/shale_raw_wall_polishing.json new file mode 100644 index 000000000..ea1bade05 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/shale_raw_walls_to_brick.json new file mode 100644 index 000000000..2d57f995c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_wall" + } + }, + "result": { + "item": "mineralogy:shale_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_axe.json b/src/main/resources/data/mineralogy/recipes/shale_relief_axe.json index 7aea32b74..8d002a9a7 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:shale_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:shale_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_blank.json b/src/main/resources/data/mineralogy/recipes/shale_relief_blank.json index a2f5d4bb7..7523def56 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - } - }, - "result": { - "item": "mineralogy:shale_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth" + } + }, + "result": { + "item": "mineralogy:shale_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_cross.json b/src/main/resources/data/mineralogy/recipes/shale_relief_cross.json index cedeea488..faa94b18a 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/shale_relief_hammer.json index 35e2316a0..cb6ce82f3 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/shale_relief_hoe.json index 643001f67..99ef074af 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:shale_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:shale_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/shale_relief_horizontal.json index 1457d525e..272f6a513 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_i.json b/src/main/resources/data/mineralogy/recipes/shale_relief_i.json index 90c1c7cf9..b2cca76cc 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_left.json b/src/main/resources/data/mineralogy/recipes/shale_relief_left.json index 429080474..001fddd8f 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/shale_relief_pickaxe.json index dbb60ab41..20f6812ff 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:shale_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:shale_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_plus.json b/src/main/resources/data/mineralogy/recipes/shale_relief_plus.json index 83b0807b8..c209149d5 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_right.json b/src/main/resources/data/mineralogy/recipes/shale_relief_right.json index f35531bc7..2bc6d860b 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_left" - } - }, - "result": { - "item": "mineralogy:shale_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_relief_left" + }, + { + "item": "mineralogy:shale_relief_left" + } + ], + "result": { + "item": "mineralogy:shale_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_sword.json b/src/main/resources/data/mineralogy/recipes/shale_relief_sword.json index ca41082a9..cbd10d3ab 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "mineralogy:shale_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:shale_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "mineralogy:shale_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:shale_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/shale_relief_vertical.json index 64a82697a..03b3ae602 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/shale_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:shale_relief_blank" - } - }, - "result": { - "item": "mineralogy:shale_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_slab.json b/src/main/resources/data/mineralogy/recipes/shale_slab.json index f1cafee98..fb9498c0d 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_slab.json +++ b/src/main/resources/data/mineralogy/recipes/shale_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/shale" - } - }, - "result": { - "item": "mineralogy:shale_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale" + } + }, + "result": { + "item": "mineralogy:shale_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_slab_from_shale_stonecutting.json b/src/main/resources/data/mineralogy/recipes/shale_slab_from_shale_stonecutting.json deleted file mode 100644 index 433f5ee08..000000000 --- a/src/main/resources/data/mineralogy/recipes/shale_slab_from_shale_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/shale" - }, - "result": "mineralogy:shale_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth.json b/src/main/resources/data/mineralogy/recipes/shale_smooth.json index 0ae7d7e34..b32e6bfcf 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/shale" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:shale_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/shale" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:shale_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick.json index 147de5a26..9e3134fa7 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - } - }, - "result": { - "item": "mineralogy:shale_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_furnace.json index 0b89d2fd3..a514a025c 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:shale_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_slab.json index df112661f..b16a0af6c 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth_brick" - } - }, - "result": { - "item": "mineralogy:shale_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_stairs.json index 7e64026b8..7ff9045d9 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth_brick" - } - }, - "result": { - "item": "mineralogy:shale_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_wall.json index 9d5354dc1..368ca6293 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth_brick" - } - }, - "result": { - "item": "mineralogy:shale_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_furnace.json index 5cd0c328c..e3859e124 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:shale_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_slab.json index d76fe7da0..2e7a6d5ac 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - } - }, - "result": { - "item": "mineralogy:shale_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_stairs.json index 6be8af269..f207c7178 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - } - }, - "result": { - "item": "mineralogy:shale_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/shale_smooth_wall.json index 8b4b8117d..bbae30703 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:shale_smooth" - } - }, - "result": { - "item": "mineralogy:shale_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_stairs.json b/src/main/resources/data/mineralogy/recipes/shale_stairs.json index 35ad4648c..13e60ce75 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/shale_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/shale" - } - }, - "result": { - "item": "mineralogy:shale_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_stairs_from_shale_stonecutting.json b/src/main/resources/data/mineralogy/recipes/shale_stairs_from_shale_stonecutting.json deleted file mode 100644 index 1a8d05e3d..000000000 --- a/src/main/resources/data/mineralogy/recipes/shale_stairs_from_shale_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/shale" - }, - "result": "mineralogy:shale_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/shale_wall.json b/src/main/resources/data/mineralogy/recipes/shale_wall.json index 1d8316129..4efa8b7ae 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_wall.json +++ b/src/main/resources/data/mineralogy/recipes/shale_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/shale" - } - }, - "result": { - "item": "mineralogy:shale_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/shale_wall_from_shale_stonecutting.json b/src/main/resources/data/mineralogy/recipes/shale_wall_from_shale_stonecutting.json deleted file mode 100644 index 8c116479a..000000000 --- a/src/main/resources/data/mineralogy/recipes/shale_wall_from_shale_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/shale" - }, - "result": "mineralogy:shale_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick.json index efbbbb86a..2177e4bfb 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/siltstone" - } - }, - "result": { - "item": "mineralogy:siltstone_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_block_polishing.json new file mode 100644 index 000000000..33c234a39 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_furnace.json index 16363394d..b9afddeb7 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:siltstone_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab.json index 61c6f4831..348bb0cdb 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_polishing.json new file mode 100644 index 000000000..35810ee22 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_recombination.json new file mode 100644 index 000000000..bc078ce3a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_brick_slab" + }, + { + "item": "mineralogy:siltstone_brick_slab" + } + ], + "result": { + "item": "mineralogy:siltstone_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs.json index dd258f885..733e4413e 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs_polishing.json new file mode 100644 index 000000000..70abb4284 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall.json index fc3c45f2a..b3392bddf 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall_polishing.json new file mode 100644 index 000000000..100e8efab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json b/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json index ff686b00c..755cbe68d 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/siltstone" - }, - { - "tag": "mineralogy:crafting_materials/siltstone" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/siltstone" + }, + { + "tag": "mineralogy:stones/siltstone" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json b/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json index f455e84f7..8bb2134fa 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:siltstone_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/siltstone_furnace_from_rock.json deleted file mode 100644 index 4cb06d4c3..000000000 --- a/src/main/resources/data/mineralogy/recipes/siltstone_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/siltstone" - } - }, - "result": { - "item": "mineralogy:siltstone_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/siltstone_polished_brick_slab_recombination.json new file mode 100644 index 000000000..9fb44cef9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_smooth_brick_slab" + }, + { + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slab_recombination.json new file mode 100644 index 000000000..35bd0a121 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slabs_to_brick.json new file mode 100644 index 000000000..aab9e7290 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_slab" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_polished_stairs_to_brick.json new file mode 100644 index 000000000..bca17b4b2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_polished_walls_to_brick.json new file mode 100644 index 000000000..4eadf7f91 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_wall" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_polishing.json new file mode 100644 index 000000000..949d88c54 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_recombination.json new file mode 100644 index 000000000..1dee7c36f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_slab" + }, + { + "item": "mineralogy:siltstone_slab" + } + ], + "result": { + "item": "mineralogy:siltstone", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slabs_to_brick.json new file mode 100644 index 000000000..6fbb68d56 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_slab" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_polishing.json new file mode 100644 index 000000000..b241c7820 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_to_brick.json new file mode 100644 index 000000000..caf08ed1f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_stairs" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_wall_polishing.json new file mode 100644 index 000000000..facb892ae --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_raw_walls_to_brick.json new file mode 100644 index 000000000..641c5c204 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_wall" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_axe.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_axe.json index 4aa9a4a9a..6a6cacde0 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:siltstone_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:siltstone_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_blank.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_blank.json index 9a730a2bc..831f80c13 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_cross.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_cross.json index 721d33b67..f5e7638d0 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_hammer.json index a5e4f383c..475dfc4ed 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_hoe.json index a3bf1967e..1dc67bda5 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:siltstone_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:siltstone_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_horizontal.json index cbed00339..8bc6ec55a 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_i.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_i.json index 0e6ea769a..b3cdaa75c 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_left.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_left.json index 00bdca272..b80082cf5 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_pickaxe.json index 3c43f11d9..59e3628ac 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:siltstone_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:siltstone_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_plus.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_plus.json index 052763e34..c5137103b 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_right.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_right.json index 70402b7a8..02262dbf9 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_left" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_relief_left" + }, + { + "item": "mineralogy:siltstone_relief_left" + } + ], + "result": { + "item": "mineralogy:siltstone_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_sword.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_sword.json index e4fd4e6a2..0230400fb 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "mineralogy:siltstone_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:siltstone_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "mineralogy:siltstone_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:siltstone_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/siltstone_relief_vertical.json index 81bbe66d2..e2e0cbafe 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_relief_blank" - } - }, - "result": { - "item": "mineralogy:siltstone_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_slab.json b/src/main/resources/data/mineralogy/recipes/siltstone_slab.json index 8c09c65af..2f9f880b3 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_slab.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/siltstone" - } - }, - "result": { - "item": "mineralogy:siltstone_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_slab_from_siltstone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/siltstone_slab_from_siltstone_stonecutting.json deleted file mode 100644 index c0d02e510..000000000 --- a/src/main/resources/data/mineralogy/recipes/siltstone_slab_from_siltstone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/siltstone" - }, - "result": "mineralogy:siltstone_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json index 5721729b2..ac4939f86 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/siltstone" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:siltstone_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/siltstone" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:siltstone_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick.json index e11ebb0f8..d6a2305d8 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_furnace.json index b9d1bddbe..c551960b3 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_slab.json index 6716847b8..6bf514c2c 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_stairs.json index 1e4722c0f..5044825bd 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_wall.json index 9dbe513ce..2d24705f3 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth_brick" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_furnace.json index be0ed423a..bd6223ad1 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_slab.json index c688ea499..0d0d1f0d8 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_stairs.json index 40f4a2236..d670ea931 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_wall.json index a8721a68b..1b0f052b3 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:siltstone_smooth" - } - }, - "result": { - "item": "mineralogy:siltstone_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json b/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json index af3eac7fc..49d9cc59e 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/siltstone" - } - }, - "result": { - "item": "mineralogy:siltstone_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_stairs_from_siltstone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/siltstone_stairs_from_siltstone_stonecutting.json deleted file mode 100644 index c15ac518d..000000000 --- a/src/main/resources/data/mineralogy/recipes/siltstone_stairs_from_siltstone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/siltstone" - }, - "result": "mineralogy:siltstone_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_wall.json b/src/main/resources/data/mineralogy/recipes/siltstone_wall.json index 010331e66..82486e6e5 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_wall.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/siltstone" - } - }, - "result": { - "item": "mineralogy:siltstone_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_wall_from_siltstone_stonecutting.json b/src/main/resources/data/mineralogy/recipes/siltstone_wall_from_siltstone_stonecutting.json deleted file mode 100644 index 4925f0442..000000000 --- a/src/main/resources/data/mineralogy/recipes/siltstone_wall_from_siltstone_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/siltstone" - }, - "result": "mineralogy:siltstone_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick.json b/src/main/resources/data/mineralogy/recipes/slate_brick.json index 416c677d7..107b3cc51 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/slate" - } - }, - "result": { - "item": "mineralogy:slate_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_brick_block_polishing.json new file mode 100644 index 000000000..fd568464f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/slate_brick_furnace.json index b0631ebdb..e59436b9c 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:slate_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_slab.json b/src/main/resources/data/mineralogy/recipes/slate_brick_slab.json index 1687b11dd..06a75a8b2 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_brick" - } - }, - "result": { - "item": "mineralogy:slate_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_polishing.json new file mode 100644 index 000000000..962601584 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_recombination.json new file mode 100644 index 000000000..1c493a23c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_brick_slab" + }, + { + "item": "mineralogy:slate_brick_slab" + } + ], + "result": { + "item": "mineralogy:slate_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/slate_brick_stairs.json index 52e2d7da2..b6cadbf7c 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_brick" - } - }, - "result": { - "item": "mineralogy:slate_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_brick_stairs_polishing.json new file mode 100644 index 000000000..e249dbcf8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_wall.json b/src/main/resources/data/mineralogy/recipes/slate_brick_wall.json index 9d52f0c53..e9d61e991 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_brick" - } - }, - "result": { - "item": "mineralogy:slate_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_brick_wall_polishing.json new file mode 100644 index 000000000..e0abee16a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json b/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json index a2383273d..4c3c37e55 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/slate" - }, - { - "tag": "mineralogy:crafting_materials/slate" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/slate" + }, + { + "tag": "mineralogy:stones/slate" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_furnace.json b/src/main/resources/data/mineralogy/recipes/slate_furnace.json index 2df13baf9..85f4a10b1 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/slate_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:slate_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/slate_furnace_from_rock.json deleted file mode 100644 index 8f64d235a..000000000 --- a/src/main/resources/data/mineralogy/recipes/slate_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/slate" - } - }, - "result": { - "item": "mineralogy:slate_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/slate_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/slate_polished_brick_slab_recombination.json new file mode 100644 index 000000000..8585d88bf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_smooth_brick_slab" + }, + { + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:slate_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/slate_polished_slab_recombination.json new file mode 100644 index 000000000..d8a060f99 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_smooth_slab" + }, + { + "item": "mineralogy:slate_smooth_slab" + } + ], + "result": { + "item": "mineralogy:slate_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_polished_slabs_to_brick.json new file mode 100644 index 000000000..6a9fc8cec --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_slab" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_polished_stairs_to_brick.json new file mode 100644 index 000000000..38616b75a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_polished_walls_to_brick.json new file mode 100644 index 000000000..c297bf090 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_wall" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_polishing.json new file mode 100644 index 000000000..d6cd49e15 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_recombination.json new file mode 100644 index 000000000..e6d1b7449 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_slab" + }, + { + "item": "mineralogy:slate_slab" + } + ], + "result": { + "item": "mineralogy:slate", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_raw_slabs_to_brick.json new file mode 100644 index 000000000..86b407d03 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_slab" + } + }, + "result": { + "item": "mineralogy:slate_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_polishing.json new file mode 100644 index 000000000..22a308f99 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_to_brick.json new file mode 100644 index 000000000..7ce75737c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_stairs" + } + }, + "result": { + "item": "mineralogy:slate_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/slate_raw_wall_polishing.json new file mode 100644 index 000000000..1f2cd918d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/slate_raw_walls_to_brick.json new file mode 100644 index 000000000..d2604aed7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_wall" + } + }, + "result": { + "item": "mineralogy:slate_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_axe.json b/src/main/resources/data/mineralogy/recipes/slate_relief_axe.json index 8af9e438b..3e92d3f5c 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:slate_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:slate_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_blank.json b/src/main/resources/data/mineralogy/recipes/slate_relief_blank.json index 5a084af85..101f1e0fd 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - } - }, - "result": { - "item": "mineralogy:slate_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth" + } + }, + "result": { + "item": "mineralogy:slate_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_cross.json b/src/main/resources/data/mineralogy/recipes/slate_relief_cross.json index b2e366b75..2deb2b2f6 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/slate_relief_hammer.json index e2d0e2495..b53912ef3 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/slate_relief_hoe.json index 6d210cb80..7044d39fe 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:slate_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:slate_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/slate_relief_horizontal.json index 27acd815b..128021985 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_i.json b/src/main/resources/data/mineralogy/recipes/slate_relief_i.json index c4c002f6b..515e88343 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_left.json b/src/main/resources/data/mineralogy/recipes/slate_relief_left.json index d4337f502..612917737 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/slate_relief_pickaxe.json index 64a736b38..34d48ed1f 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:slate_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:slate_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_plus.json b/src/main/resources/data/mineralogy/recipes/slate_relief_plus.json index 19c31b7e1..667c3d12b 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_right.json b/src/main/resources/data/mineralogy/recipes/slate_relief_right.json index 14d1b6924..84328d06b 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_left" - } - }, - "result": { - "item": "mineralogy:slate_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_relief_left" + }, + { + "item": "mineralogy:slate_relief_left" + } + ], + "result": { + "item": "mineralogy:slate_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_sword.json b/src/main/resources/data/mineralogy/recipes/slate_relief_sword.json index 911ac0521..74360b013 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "mineralogy:slate_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:slate_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "mineralogy:slate_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:slate_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/slate_relief_vertical.json index daebb82b5..52b37d4ae 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/slate_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:slate_relief_blank" - } - }, - "result": { - "item": "mineralogy:slate_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_slab.json b/src/main/resources/data/mineralogy/recipes/slate_slab.json index 86e818a43..4c67b5175 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_slab.json +++ b/src/main/resources/data/mineralogy/recipes/slate_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/slate" - } - }, - "result": { - "item": "mineralogy:slate_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate" + } + }, + "result": { + "item": "mineralogy:slate_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_slab_from_slate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/slate_slab_from_slate_stonecutting.json deleted file mode 100644 index 9a4392327..000000000 --- a/src/main/resources/data/mineralogy/recipes/slate_slab_from_slate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/slate" - }, - "result": "mineralogy:slate_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth.json b/src/main/resources/data/mineralogy/recipes/slate_smooth.json index 0ff49ff10..6397edce8 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/slate" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:slate_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/slate" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:slate_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick.json index d7990c7f9..94f86fa63 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - } - }, - "result": { - "item": "mineralogy:slate_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_furnace.json index 28d25c17e..64ddfbf2b 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:slate_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_slab.json index 14c2a63e7..b47121a97 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:slate_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_stairs.json index 97d7bf70f..d4c102e0a 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:slate_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_wall.json index 1ab824e3b..c99d9b74b 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth_brick" - } - }, - "result": { - "item": "mineralogy:slate_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_furnace.json index 45f79ecf1..151cff07d 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:slate_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_slab.json index 5a3fc4158..8f29375ac 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - } - }, - "result": { - "item": "mineralogy:slate_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_stairs.json index 3d91f8f91..d5114b634 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - } - }, - "result": { - "item": "mineralogy:slate_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/slate_smooth_wall.json index 5e14f0096..a5858d0b2 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:slate_smooth" - } - }, - "result": { - "item": "mineralogy:slate_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_stairs.json b/src/main/resources/data/mineralogy/recipes/slate_stairs.json index e3a74156d..1460c18ae 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/slate_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/slate" - } - }, - "result": { - "item": "mineralogy:slate_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_stairs_from_slate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/slate_stairs_from_slate_stonecutting.json deleted file mode 100644 index 6648c9f42..000000000 --- a/src/main/resources/data/mineralogy/recipes/slate_stairs_from_slate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/slate" - }, - "result": "mineralogy:slate_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/slate_wall.json b/src/main/resources/data/mineralogy/recipes/slate_wall.json index 2263f87d3..82c1ed805 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_wall.json +++ b/src/main/resources/data/mineralogy/recipes/slate_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/slate" - } - }, - "result": { - "item": "mineralogy:slate_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/slate_wall_from_slate_stonecutting.json b/src/main/resources/data/mineralogy/recipes/slate_wall_from_slate_stonecutting.json deleted file mode 100644 index e1d6665f8..000000000 --- a/src/main/resources/data/mineralogy/recipes/slate_wall_from_slate_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/slate" - }, - "result": "mineralogy:slate_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/sulfur_block.json b/src/main/resources/data/mineralogy/recipes/sulfur_block.json index 14c16e14f..9b09930ab 100644 --- a/src/main/resources/data/mineralogy/recipes/sulfur_block.json +++ b/src/main/resources/data/mineralogy/recipes/sulfur_block.json @@ -1,16 +1,27 @@ { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "forge:dusts/sulfur" - } - }, - "result": { - "item": "mineralogy:sulfur_block" - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:sulfur_block" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:sulfur_dust" + } + }, + "result": { + "item": "mineralogy:sulfur_block", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/sulfur_dust.json b/src/main/resources/data/mineralogy/recipes/sulfur_dust.json index f4ff1920d..f2ee994e1 100644 --- a/src/main/resources/data/mineralogy/recipes/sulfur_dust.json +++ b/src/main/resources/data/mineralogy/recipes/sulfur_dust.json @@ -1,12 +1,22 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "forge:storage_blocks/sulfur" - } - ], - "result": { - "item": "mineralogy:sulfur_dust", - "count": 9 - } + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:sulfur_dust" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "forge:storage_blocks/sulfur" + } + ], + "result": { + "item": "mineralogy:sulfur_dust", + "count": 9 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_brick.json index 6d6a29a22..a36104fc8 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/tuff" - } - }, - "result": { - "item": "mineralogy:tuff_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_block_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_block_polishing.json new file mode 100644 index 000000000..7e132185e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_block_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_brick" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_furnace.json index ec325d196..00005e56e 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:tuff_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_slab.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab.json index fc9ef82c8..1ca9ff9d2 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_brick" - } - }, - "result": { - "item": "mineralogy:tuff_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_polishing.json new file mode 100644 index 000000000..0dac00b8f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_brick_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_brick_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_recombination.json new file mode 100644 index 000000000..cd29d3afa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_brick_slab" + }, + { + "item": "mineralogy:tuff_brick_slab" + } + ], + "result": { + "item": "mineralogy:tuff_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs.json index fb7f95007..f15d9f1d6 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_brick" - } - }, - "result": { - "item": "mineralogy:tuff_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs_polishing.json new file mode 100644 index 000000000..93d399e69 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_brick_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_brick_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_wall.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_wall.json index b76541236..e883d8946 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_BRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_brick" - } - }, - "result": { - "item": "mineralogy:tuff_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_brick_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_brick_wall_polishing.json new file mode 100644 index 000000000..3d037a981 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_brick_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_brick_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json b/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json index ba5cf7cea..8993da264 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json @@ -1,21 +1,24 @@ { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/tuff" - }, - { - "tag": "mineralogy:crafting_materials/tuff" - }, - { - "item": "minecraft:gravel" - }, - { - "item": "minecraft:gravel" - } - ], - "result": { - "item": "minecraft:cobblestone", - "count": 4 - } + "conditions": [ + + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/tuff" + }, + { + "tag": "mineralogy:stones/tuff" + }, + { + "item": "minecraft:gravel" + }, + { + "item": "minecraft:gravel" + } + ], + "result": { + "item": "minecraft:cobblestone", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_furnace.json b/src/main/resources/data/mineralogy/recipes/tuff_furnace.json index 9ace31dd6..bfaf4e7fc 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_furnace.json @@ -1,36 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:tuff_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_furnace_from_rock.json b/src/main/resources/data/mineralogy/recipes/tuff_furnace_from_rock.json deleted file mode 100644 index 1560e574b..000000000 --- a/src/main/resources/data/mineralogy/recipes/tuff_furnace_from_rock.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "x x", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/tuff" - } - }, - "result": { - "item": "mineralogy:tuff_furnace" - } - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_polished_brick_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/tuff_polished_brick_slab_recombination.json new file mode 100644 index 000000000..3e9fc577c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_brick_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_smooth_brick_slab" + }, + { + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_brick", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_polished_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/tuff_polished_slab_recombination.json new file mode 100644 index 000000000..fcf12b80d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_smooth_slab" + }, + { + "item": "mineralogy:tuff_smooth_slab" + } + ], + "result": { + "item": "mineralogy:tuff_smooth", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_polished_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_polished_slabs_to_brick.json new file mode 100644 index 000000000..a9c792e7b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_slab" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_polished_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_polished_stairs_to_brick.json new file mode 100644 index 000000000..952278dd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_polished_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_polished_walls_to_brick.json new file mode 100644 index 000000000..2fbf24839 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_wall" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_polishing.json new file mode 100644 index 000000000..d2035ce44 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_slab" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_slab", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_recombination.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_recombination.json new file mode 100644 index 000000000..1c5ab931a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_recombination.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_slab" + }, + { + "item": "mineralogy:tuff_slab" + } + ], + "result": { + "item": "mineralogy:tuff", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_slabs_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_slabs_to_brick.json new file mode 100644 index 000000000..59a9abaad --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slabs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_slab" + } + }, + "result": { + "item": "mineralogy:tuff_brick_slab", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_polishing.json new file mode 100644 index 000000000..688e71c23 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_stairs" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_stairs", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_to_brick.json new file mode 100644 index 000000000..3ed0b1f72 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_stairs" + } + }, + "result": { + "item": "mineralogy:tuff_brick_stairs", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_wall_polishing.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_wall_polishing.json new file mode 100644 index 000000000..48560826a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_wall_polishing.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_wall" + }, + { + "tag": "forge:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth_wall", + "count": 1 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_raw_walls_to_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_raw_walls_to_brick.json new file mode 100644 index 000000000..56c5366e5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_walls_to_brick.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_wall" + } + }, + "result": { + "item": "mineralogy:tuff_brick_wall", + "count": 4 + } +} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_axe.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_axe.json index 71e58f0d5..5203be981 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_axe.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_axe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "minecraft:stone_axe" - } - ], - "result": { - "item": "mineralogy:tuff_relief_axe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_axe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "minecraft:stone_axe" + } + ], + "result": { + "item": "mineralogy:tuff_relief_axe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_blank.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_blank.json index 606ff3cfd..86b20cde4 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_blank.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_blank.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - } - }, - "result": { - "item": "mineralogy:tuff_relief_blank", - "count": 16 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_blank" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_relief_blank", + "count": 16 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_cross.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_cross.json index 25c409ee9..80cf00560 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_cross.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_cross.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x x", - " ", - "x x" - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_cross", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_cross" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_cross", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_hammer.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_hammer.json index f1011b59a..2edc79865 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_hammer.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_hammer.json @@ -1,40 +1,29 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "zxz", - "zyz", - "zzz" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - }, - "y": { - "item": "minecraft:stick" - }, - "z": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_hammer", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_hammer" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "zxz", + "zyz", + "zzz" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth" + }, + "y": { + "item": "minecraft:stick" + }, + "z": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_hammer", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_hoe.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_hoe.json index 3ee6d98f1..4a5f4de50 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_hoe.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_hoe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "minecraft:stone_hoe" - } - ], - "result": { - "item": "mineralogy:tuff_relief_hoe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_hoe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "minecraft:stone_hoe" + } + ], + "result": { + "item": "mineralogy:tuff_relief_hoe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_horizontal.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_horizontal.json index 4f38b2a58..f8cc12efa 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_horizontal.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_horizontal.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_horizontal", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_horizontal" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_horizontal", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_i.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_i.json index 0aa99ab3b..7284cd87c 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_i.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_i.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - " x ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_i", - "count": 7 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_i" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_i", + "count": 7 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_left.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_left.json index 2416c5308..3bfbd2577 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_left.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_left.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - " x ", - " x" - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_left", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_left" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_left", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_pickaxe.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_pickaxe.json index 7136ec700..f9463a3be 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_pickaxe.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_pickaxe.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "minecraft:stone_pickaxe" - } - ], - "result": { - "item": "mineralogy:tuff_relief_pickaxe", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_pickaxe" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "minecraft:stone_pickaxe" + } + ], + "result": { + "item": "mineralogy:tuff_relief_pickaxe", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_plus.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_plus.json index a266826d0..b34adfea7 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_plus.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_plus.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x ", - "xxx", - " x " - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_plus", - "count": 5 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_plus" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_plus", + "count": 5 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_right.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_right.json index 3835a78cc..94a1db532 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_right.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_right.json @@ -1,34 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - " x", - " x ", - "x " - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_left" - } - }, - "result": { - "item": "mineralogy:tuff_relief_right", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_right" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_relief_left" + }, + { + "item": "mineralogy:tuff_relief_left" + } + ], + "result": { + "item": "mineralogy:tuff_relief_right", + "count": 2 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_sword.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_sword.json index 102151cb0..ce0d41ccd 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_sword.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_sword.json @@ -1,53 +1,42 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "mineralogy:tuff_relief_blank" - }, - { - "item": "minecraft:stone_sword" - } - ], - "result": { - "item": "mineralogy:tuff_relief_sword", - "count": 8 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_sword" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "mineralogy:tuff_relief_blank" + }, + { + "item": "minecraft:stone_sword" + } + ], + "result": { + "item": "mineralogy:tuff_relief_sword", + "count": 8 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_relief_vertical.json b/src/main/resources/data/mineralogy/recipes/tuff_relief_vertical.json index 0d2964b2c..f05955700 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_relief_vertical.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_relief_vertical.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_RELIEFS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x", - "x", - "x" - ], - "key": { - "x": { - "item": "mineralogy:tuff_relief_blank" - } - }, - "result": { - "item": "mineralogy:tuff_relief_vertical", - "count": 3 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_relief_vertical" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_vertical", + "count": 3 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_slab.json b/src/main/resources/data/mineralogy/recipes/tuff_slab.json index 3708090ad..52c31a4d2 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_slab.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_slab.json @@ -1,28 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/tuff" - } - }, - "result": { - "item": "mineralogy:tuff_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_slab_from_tuff_stonecutting.json b/src/main/resources/data/mineralogy/recipes/tuff_slab_from_tuff_stonecutting.json deleted file mode 100644 index 0638972d0..000000000 --- a/src/main/resources/data/mineralogy/recipes/tuff_slab_from_tuff_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSLAB" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/tuff" - }, - "result": "mineralogy:tuff_slab", - "count": 2 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth.json index 729a3d7ff..edcbcaa94 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth.json @@ -1,27 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - } - ], - "recipe": { - "type": "minecraft:crafting_shapeless", - "ingredients": [ - { - "tag": "mineralogy:crafting_materials/tuff" - }, - { - "item": "minecraft:sand" - } - ], - "result": { - "item": "mineralogy:tuff_smooth" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "ingredients": [ + { + "tag": "mineralogy:stones/tuff" + }, + { + "item": "minecraft:sand" + } + ], + "result": { + "item": "mineralogy:tuff_smooth", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick.json index 54a6fd591..142081412 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xx", - "xx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_brick", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_furnace.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_furnace.json index b2d8d8f3a..1bceadfca 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_furnace.json @@ -1,44 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth_brick_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_brick_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff/smooth_brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_slab.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_slab.json index 42c396119..8b7e764c6 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_slab.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_slab.json @@ -1,36 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth_brick" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_brick_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_stairs.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_stairs.json index 975a84d6b..ae82e931b 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_stairs.json @@ -1,38 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth_brick" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_brick_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_wall.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_wall.json index eed6d2229..d93560a08 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_wall.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_brick_wall.json @@ -1,37 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICK" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHBRICKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth_brick" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_brick_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_furnace.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_furnace.json index 95afeda17..9a2877f87 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_furnace.json @@ -1,40 +1,26 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHFURNACE" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xyx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth_slab" - }, - "y": { - "item": "minecraft:furnace" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_furnace" - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_furnace" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_furnace", + "count": 1 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_slab.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_slab.json index 6d1b1783d..3d4f5fa18 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_slab.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_slab.json @@ -1,32 +1,21 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSLAB" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_slab", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_slab", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_stairs.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_stairs.json index e7e859359..7ef525853 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_stairs.json @@ -1,34 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_smooth_wall.json b/src/main/resources/data/mineralogy/recipes/tuff_smooth_wall.json index f5a8095b8..aac22c40a 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth_wall.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth_wall.json @@ -1,33 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTH" - }, - { - "type": "mineralogy:config", - "flag": "GENERATE_SMOOTHWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "item": "mineralogy:tuff_smooth" - } - }, - "result": { - "item": "mineralogy:tuff_smooth_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_stairs.json b/src/main/resources/data/mineralogy/recipes/tuff_stairs.json index d3422cfe3..f207336f7 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_stairs.json @@ -1,30 +1,23 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "x ", - "xx ", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/tuff" - } - }, - "result": { - "item": "mineralogy:tuff_stairs", - "count": 4 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_stairs", + "count": 4 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_stairs_from_tuff_stonecutting.json b/src/main/resources/data/mineralogy/recipes/tuff_stairs_from_tuff_stonecutting.json deleted file mode 100644 index 1ba4f52b0..000000000 --- a/src/main/resources/data/mineralogy/recipes/tuff_stairs_from_tuff_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKSTAIRS" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/tuff" - }, - "result": "mineralogy:tuff_stairs", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/recipes/tuff_wall.json b/src/main/resources/data/mineralogy/recipes/tuff_wall.json index 26f78a679..c02fb2a46 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_wall.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_wall.json @@ -1,29 +1,22 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:crafting_shaped", - "pattern": [ - "xxx", - "xxx" - ], - "key": { - "x": { - "tag": "mineralogy:crafting_materials/tuff" - } - }, - "result": { - "item": "mineralogy:tuff_wall", - "count": 6 - } - } - } - ] + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + } + ], + "type": "minecraft:crafting_shaped", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_wall", + "count": 6 + } } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_wall_from_tuff_stonecutting.json b/src/main/resources/data/mineralogy/recipes/tuff_wall_from_tuff_stonecutting.json deleted file mode 100644 index a1b0305f9..000000000 --- a/src/main/resources/data/mineralogy/recipes/tuff_wall_from_tuff_stonecutting.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "GENERATE_ROCKWALL" - } - ], - "recipe": { - "type": "minecraft:stonecutting", - "ingredient": { - "tag": "mineralogy:crafting_materials/tuff" - }, - "result": "mineralogy:tuff_wall", - "count": 1 - } - } - ] -} diff --git a/src/main/resources/data/mineralogy/tags/blocks/rocks.json b/src/main/resources/data/mineralogy/tags/blocks/rocks.json index 78f81c8a0..eccd4a778 100644 --- a/src/main/resources/data/mineralogy/tags/blocks/rocks.json +++ b/src/main/resources/data/mineralogy/tags/blocks/rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/data/mineralogy/tags/blocks/standard_rocks.json b/src/main/resources/data/mineralogy/tags/blocks/standard_rocks.json index c39264a40..45b8ff0db 100644 --- a/src/main/resources/data/mineralogy/tags/blocks/standard_rocks.json +++ b/src/main/resources/data/mineralogy/tags/blocks/standard_rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/amphibolite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/amphibolite.json new file mode 100644 index 000000000..5cdea399b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/amphibolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/andesite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/andesite.json new file mode 100644 index 000000000..708588bcd --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/andesite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite", + "minecraft:andesite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/basalt.json b/src/main/resources/data/mineralogy/tags/blocks/stones/basalt.json new file mode 100644 index 000000000..1ae916657 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/basalt.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt", + "minecraft:basalt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/basaltic_glass.json b/src/main/resources/data/mineralogy/tags/blocks/stones/basaltic_glass.json new file mode 100644 index 000000000..9cb3a5c60 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/basaltic_glass.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/conglomerate.json b/src/main/resources/data/mineralogy/tags/blocks/stones/conglomerate.json new file mode 100644 index 000000000..9a8db044e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/conglomerate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/diabase.json b/src/main/resources/data/mineralogy/tags/blocks/stones/diabase.json new file mode 100644 index 000000000..b1d74d01e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/diabase.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/diorite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/diorite.json new file mode 100644 index 000000000..a6c473010 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/diorite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite", + "minecraft:diorite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/dolomite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/dolomite.json new file mode 100644 index 000000000..f329a9162 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/dolomite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/gabbro.json b/src/main/resources/data/mineralogy/tags/blocks/stones/gabbro.json new file mode 100644 index 000000000..2b664843f --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/gabbro.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/gneiss.json b/src/main/resources/data/mineralogy/tags/blocks/stones/gneiss.json new file mode 100644 index 000000000..a19fbac88 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/gneiss.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/granite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/granite.json new file mode 100644 index 000000000..ae5dd9590 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/granite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite", + "minecraft:granite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/hornfels.json b/src/main/resources/data/mineralogy/tags/blocks/stones/hornfels.json new file mode 100644 index 000000000..7ec83bdd3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/hornfels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/limestone.json b/src/main/resources/data/mineralogy/tags/blocks/stones/limestone.json new file mode 100644 index 000000000..3f32e2ff2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/limestone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/marble.json b/src/main/resources/data/mineralogy/tags/blocks/stones/marble.json new file mode 100644 index 000000000..bdb724467 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/marble.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/novaculite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/novaculite.json new file mode 100644 index 000000000..74fb17da3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/novaculite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/pegmatite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/pegmatite.json new file mode 100644 index 000000000..7675fc010 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/pegmatite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/peridotite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/peridotite.json new file mode 100644 index 000000000..34de42c18 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/peridotite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/phyllite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/phyllite.json new file mode 100644 index 000000000..991dc28d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/phyllite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/quartzite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/quartzite.json new file mode 100644 index 000000000..f539e57f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/quartzite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/rhyolite.json b/src/main/resources/data/mineralogy/tags/blocks/stones/rhyolite.json new file mode 100644 index 000000000..460e41c8e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/rhyolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/rock_salt.json b/src/main/resources/data/mineralogy/tags/blocks/stones/rock_salt.json new file mode 100644 index 000000000..24df4c009 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/rock_salt.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/schist.json b/src/main/resources/data/mineralogy/tags/blocks/stones/schist.json new file mode 100644 index 000000000..ba6cdfc2c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/schist.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/scoria.json b/src/main/resources/data/mineralogy/tags/blocks/stones/scoria.json new file mode 100644 index 000000000..51d04b13d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/scoria.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/shale.json b/src/main/resources/data/mineralogy/tags/blocks/stones/shale.json new file mode 100644 index 000000000..e95cbccee --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/shale.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/siltstone.json b/src/main/resources/data/mineralogy/tags/blocks/stones/siltstone.json new file mode 100644 index 000000000..105f43a4d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/siltstone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/slate.json b/src/main/resources/data/mineralogy/tags/blocks/stones/slate.json new file mode 100644 index 000000000..75a410d88 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/slate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/blocks/stones/tuff.json b/src/main/resources/data/mineralogy/tags/blocks/stones/tuff.json new file mode 100644 index 000000000..922156e16 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/blocks/stones/tuff.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff", + "minecraft:tuff" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/cobblestone_equivalents.json b/src/main/resources/data/mineralogy/tags/items/cobblestone_equivalents.json new file mode 100644 index 000000000..dda5bb541 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/cobblestone_equivalents.json @@ -0,0 +1,33 @@ +{ + "replace": false, + "values": [ + "#forge:cobblestone", + "#mineralogy:stones/andesite", + "#mineralogy:stones/basalt", + "#mineralogy:stones/diorite", + "#mineralogy:stones/granite", + "#mineralogy:stones/rhyolite", + "#mineralogy:stones/pegmatite", + "#mineralogy:stones/diabase", + "#mineralogy:stones/gabbro", + "#mineralogy:stones/peridotite", + "#mineralogy:stones/basaltic_glass", + "#mineralogy:stones/scoria", + "#mineralogy:stones/tuff", + "#mineralogy:stones/shale", + "#mineralogy:stones/conglomerate", + "#mineralogy:stones/dolomite", + "#mineralogy:stones/limestone", + "#mineralogy:stones/siltstone", + "#mineralogy:stones/marble", + "#mineralogy:stones/slate", + "#mineralogy:stones/schist", + "#mineralogy:stones/gneiss", + "#mineralogy:stones/phyllite", + "#mineralogy:stones/amphibolite", + "#mineralogy:stones/hornfels", + "#mineralogy:stones/quartzite", + "#mineralogy:stones/novaculite", + "#mineralogy:stones/rock_salt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/drywall/white.json b/src/main/resources/data/mineralogy/tags/items/drywall/white.json new file mode 100644 index 000000000..3fcdb5b08 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/drywall/white.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:drywall_white" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/rocks.json b/src/main/resources/data/mineralogy/tags/items/rocks.json index 78f81c8a0..eccd4a778 100644 --- a/src/main/resources/data/mineralogy/tags/items/rocks.json +++ b/src/main/resources/data/mineralogy/tags/items/rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite.json b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite.json new file mode 100644 index 000000000..cc4117a83 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/brick.json new file mode 100644 index 000000000..9db82ccae --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth.json new file mode 100644 index 000000000..5670a0a5f --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth_brick.json new file mode 100644 index 000000000..fbbd50b2c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/amphibolite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/andesite.json b/src/main/resources/data/mineralogy/tags/items/slabs/andesite.json new file mode 100644 index 000000000..2d0d6184e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/andesite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_slab", + "minecraft:andesite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/andesite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/brick.json new file mode 100644 index 000000000..66931ac90 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth.json new file mode 100644 index 000000000..6fe008cd9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_smooth_slab", + "minecraft:polished_andesite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth_brick.json new file mode 100644 index 000000000..397fdafd5 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/andesite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basalt.json b/src/main/resources/data/mineralogy/tags/items/slabs/basalt.json new file mode 100644 index 000000000..c86626703 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basalt.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basalt/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/brick.json new file mode 100644 index 000000000..b7c770d7c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth.json new file mode 100644 index 000000000..a61e9fd5d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth_brick.json new file mode 100644 index 000000000..d90666abc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basalt/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass.json b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass.json new file mode 100644 index 000000000..717c00479 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/brick.json new file mode 100644 index 000000000..5a3e112e8 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth.json new file mode 100644 index 000000000..1a0e8a748 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth_brick.json new file mode 100644 index 000000000..3ce475146 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/basaltic_glass/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate.json b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate.json new file mode 100644 index 000000000..d97b6a843 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/brick.json new file mode 100644 index 000000000..2970425bc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth.json new file mode 100644 index 000000000..d04c77375 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth_brick.json new file mode 100644 index 000000000..d28a89f07 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/conglomerate/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diabase.json b/src/main/resources/data/mineralogy/tags/items/slabs/diabase.json new file mode 100644 index 000000000..665ed6689 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diabase.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diabase/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/brick.json new file mode 100644 index 000000000..1a8dc00dc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth.json new file mode 100644 index 000000000..a511e4684 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth_brick.json new file mode 100644 index 000000000..8e2151cfc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diabase/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diorite.json b/src/main/resources/data/mineralogy/tags/items/slabs/diorite.json new file mode 100644 index 000000000..67b558bee --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diorite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_slab", + "minecraft:diorite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diorite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/brick.json new file mode 100644 index 000000000..6bf529738 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth.json new file mode 100644 index 000000000..20eef8ccb --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_smooth_slab", + "minecraft:polished_diorite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth_brick.json new file mode 100644 index 000000000..7a98dd262 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/diorite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/dolomite.json b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite.json new file mode 100644 index 000000000..4d290eed2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/brick.json new file mode 100644 index 000000000..97227b908 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth.json new file mode 100644 index 000000000..1dc98f76e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth_brick.json new file mode 100644 index 000000000..8dd4268b0 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/dolomite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gabbro.json b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro.json new file mode 100644 index 000000000..e3576cff4 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/brick.json new file mode 100644 index 000000000..643872776 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth.json new file mode 100644 index 000000000..20e323ef8 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth_brick.json new file mode 100644 index 000000000..4e328768c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gabbro/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gneiss.json b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss.json new file mode 100644 index 000000000..68512d817 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/brick.json new file mode 100644 index 000000000..e962d4e9c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth.json new file mode 100644 index 000000000..7aa2f746d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth_brick.json new file mode 100644 index 000000000..c6a513819 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/gneiss/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/granite.json b/src/main/resources/data/mineralogy/tags/items/slabs/granite.json new file mode 100644 index 000000000..892116b2c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/granite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_slab", + "minecraft:granite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/granite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/granite/brick.json new file mode 100644 index 000000000..c7c412ec2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/granite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth.json new file mode 100644 index 000000000..730511a99 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_smooth_slab", + "minecraft:polished_granite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth_brick.json new file mode 100644 index 000000000..e56697231 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/granite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/hornfels.json b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels.json new file mode 100644 index 000000000..408d05b3c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/brick.json new file mode 100644 index 000000000..4297940a7 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth.json new file mode 100644 index 000000000..97f5d04e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth_brick.json new file mode 100644 index 000000000..b1ce7f4db --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/hornfels/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/limestone.json b/src/main/resources/data/mineralogy/tags/items/slabs/limestone.json new file mode 100644 index 000000000..e5f7333c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/limestone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/limestone/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/brick.json new file mode 100644 index 000000000..ef5bdae0d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth.json new file mode 100644 index 000000000..f5701a999 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth_brick.json new file mode 100644 index 000000000..113f36066 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/limestone/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/marble.json b/src/main/resources/data/mineralogy/tags/items/slabs/marble.json new file mode 100644 index 000000000..ebda57b3d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/marble.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/marble/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/marble/brick.json new file mode 100644 index 000000000..3b9fba246 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/marble/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth.json new file mode 100644 index 000000000..876baf7d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth_brick.json new file mode 100644 index 000000000..cc716132c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/marble/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/novaculite.json b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite.json new file mode 100644 index 000000000..2d75804c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/brick.json new file mode 100644 index 000000000..1fa49bab1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth.json new file mode 100644 index 000000000..842a79951 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth_brick.json new file mode 100644 index 000000000..975702399 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/novaculite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite.json b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite.json new file mode 100644 index 000000000..85d7de59c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/brick.json new file mode 100644 index 000000000..a9e624210 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth.json new file mode 100644 index 000000000..66f6500ec --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth_brick.json new file mode 100644 index 000000000..8ccfcb2a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/pegmatite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/peridotite.json b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite.json new file mode 100644 index 000000000..15551daab --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/brick.json new file mode 100644 index 000000000..e31a75bdf --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth.json new file mode 100644 index 000000000..18572c5d3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth_brick.json new file mode 100644 index 000000000..651d50fe3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/peridotite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/phyllite.json b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite.json new file mode 100644 index 000000000..f727b589a --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/brick.json new file mode 100644 index 000000000..d470beba6 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth.json new file mode 100644 index 000000000..a43bb7783 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth_brick.json new file mode 100644 index 000000000..bf5f49a29 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/phyllite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/quartzite.json b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite.json new file mode 100644 index 000000000..3595ab596 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/brick.json new file mode 100644 index 000000000..f58f9f563 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth.json new file mode 100644 index 000000000..1dd4e97fe --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth_brick.json new file mode 100644 index 000000000..9a998c5dc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/quartzite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite.json b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite.json new file mode 100644 index 000000000..c185ea5e4 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/brick.json new file mode 100644 index 000000000..dd1efa5d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth.json new file mode 100644 index 000000000..d41b64b15 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth_brick.json new file mode 100644 index 000000000..a4932de04 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rhyolite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt.json b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt.json new file mode 100644 index 000000000..e76862b94 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/brick.json new file mode 100644 index 000000000..cd5329250 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth.json new file mode 100644 index 000000000..85a609347 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth_brick.json new file mode 100644 index 000000000..9864136eb --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/rock_salt/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/schist.json b/src/main/resources/data/mineralogy/tags/items/slabs/schist.json new file mode 100644 index 000000000..a1ce71a3a --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/schist.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/schist/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/schist/brick.json new file mode 100644 index 000000000..e1306e381 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/schist/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth.json new file mode 100644 index 000000000..93401df40 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth_brick.json new file mode 100644 index 000000000..c0658afea --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/schist/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/scoria.json b/src/main/resources/data/mineralogy/tags/items/slabs/scoria.json new file mode 100644 index 000000000..b58eade46 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/scoria.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/scoria/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/brick.json new file mode 100644 index 000000000..9ca979dc7 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth.json new file mode 100644 index 000000000..fbcce69b9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth_brick.json new file mode 100644 index 000000000..a53e4803e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/scoria/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/shale.json b/src/main/resources/data/mineralogy/tags/items/slabs/shale.json new file mode 100644 index 000000000..b55c232a4 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/shale.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/shale/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/shale/brick.json new file mode 100644 index 000000000..1981c8a99 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/shale/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth.json new file mode 100644 index 000000000..662067502 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth_brick.json new file mode 100644 index 000000000..77666c63d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/shale/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/siltstone.json b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone.json new file mode 100644 index 000000000..dc95b1428 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/brick.json new file mode 100644 index 000000000..d461205e9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth.json new file mode 100644 index 000000000..0aeafc131 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth_brick.json new file mode 100644 index 000000000..c90b6e834 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/siltstone/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/slate.json b/src/main/resources/data/mineralogy/tags/items/slabs/slate.json new file mode 100644 index 000000000..6c4f3d89b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/slate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/slate/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/slate/brick.json new file mode 100644 index 000000000..4aabe2c82 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/slate/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth.json new file mode 100644 index 000000000..4e198eb90 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth_brick.json new file mode 100644 index 000000000..77e8f5b2c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/slate/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/tuff.json b/src/main/resources/data/mineralogy/tags/items/slabs/tuff.json new file mode 100644 index 000000000..55fbe278b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/tuff.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/tuff/brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/brick.json new file mode 100644 index 000000000..079ddf207 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth.json b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth.json new file mode 100644 index 000000000..5be1ce879 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_smooth_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth_brick.json new file mode 100644 index 000000000..6c6dd368b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/slabs/tuff/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_smooth_brick_slab" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/standard_rocks.json b/src/main/resources/data/mineralogy/tags/items/standard_rocks.json index c39264a40..45b8ff0db 100644 --- a/src/main/resources/data/mineralogy/tags/items/standard_rocks.json +++ b/src/main/resources/data/mineralogy/tags/items/standard_rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/data/mineralogy/tags/items/stone_crafting_materials.json b/src/main/resources/data/mineralogy/tags/items/stone_crafting_materials.json new file mode 100644 index 000000000..5643de212 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stone_crafting_materials.json @@ -0,0 +1,33 @@ +{ + "replace": false, + "values": [ + "#minecraft:stone_crafting_materials", + "#mineralogy:stones/andesite", + "#mineralogy:stones/basalt", + "#mineralogy:stones/diorite", + "#mineralogy:stones/granite", + "#mineralogy:stones/rhyolite", + "#mineralogy:stones/pegmatite", + "#mineralogy:stones/diabase", + "#mineralogy:stones/gabbro", + "#mineralogy:stones/peridotite", + "#mineralogy:stones/basaltic_glass", + "#mineralogy:stones/scoria", + "#mineralogy:stones/tuff", + "#mineralogy:stones/shale", + "#mineralogy:stones/conglomerate", + "#mineralogy:stones/dolomite", + "#mineralogy:stones/limestone", + "#mineralogy:stones/siltstone", + "#mineralogy:stones/marble", + "#mineralogy:stones/slate", + "#mineralogy:stones/schist", + "#mineralogy:stones/gneiss", + "#mineralogy:stones/phyllite", + "#mineralogy:stones/amphibolite", + "#mineralogy:stones/hornfels", + "#mineralogy:stones/quartzite", + "#mineralogy:stones/novaculite", + "#mineralogy:stones/rock_salt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stone_tool_materials.json b/src/main/resources/data/mineralogy/tags/items/stone_tool_materials.json new file mode 100644 index 000000000..d2bd2ba86 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stone_tool_materials.json @@ -0,0 +1,33 @@ +{ + "replace": false, + "values": [ + "#minecraft:stone_tool_materials", + "#mineralogy:stones/andesite", + "#mineralogy:stones/basalt", + "#mineralogy:stones/diorite", + "#mineralogy:stones/granite", + "#mineralogy:stones/rhyolite", + "#mineralogy:stones/pegmatite", + "#mineralogy:stones/diabase", + "#mineralogy:stones/gabbro", + "#mineralogy:stones/peridotite", + "#mineralogy:stones/basaltic_glass", + "#mineralogy:stones/scoria", + "#mineralogy:stones/tuff", + "#mineralogy:stones/shale", + "#mineralogy:stones/conglomerate", + "#mineralogy:stones/dolomite", + "#mineralogy:stones/limestone", + "#mineralogy:stones/siltstone", + "#mineralogy:stones/marble", + "#mineralogy:stones/slate", + "#mineralogy:stones/schist", + "#mineralogy:stones/gneiss", + "#mineralogy:stones/phyllite", + "#mineralogy:stones/amphibolite", + "#mineralogy:stones/hornfels", + "#mineralogy:stones/quartzite", + "#mineralogy:stones/novaculite", + "#mineralogy:stones/rock_salt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/amphibolite.json b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite.json new file mode 100644 index 000000000..5cdea399b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/brick.json new file mode 100644 index 000000000..1651716ad --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth.json new file mode 100644 index 000000000..a891ba7f8 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth_brick.json new file mode 100644 index 000000000..48eb807c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/amphibolite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:amphibolite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/andesite.json b/src/main/resources/data/mineralogy/tags/items/stones/andesite.json new file mode 100644 index 000000000..708588bcd --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/andesite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite", + "minecraft:andesite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/andesite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/andesite/brick.json new file mode 100644 index 000000000..65dd79abf --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/andesite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth.json new file mode 100644 index 000000000..a69cca9fa --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_smooth", + "minecraft:polished_andesite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth_brick.json new file mode 100644 index 000000000..77fa030cc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/andesite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:andesite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basalt.json b/src/main/resources/data/mineralogy/tags/items/stones/basalt.json new file mode 100644 index 000000000..1ae916657 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basalt.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt", + "minecraft:basalt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basalt/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/basalt/brick.json new file mode 100644 index 000000000..49e671bdb --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basalt/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth.json new file mode 100644 index 000000000..4a744d51b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth.json @@ -0,0 +1,8 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_smooth", + "minecraft:polished_basalt", + "minecraft:smooth_basalt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth_brick.json new file mode 100644 index 000000000..3118bb8c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basalt/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basalt_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass.json b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass.json new file mode 100644 index 000000000..9cb3a5c60 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/brick.json new file mode 100644 index 000000000..ca6b5c874 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth.json new file mode 100644 index 000000000..c26bf62e0 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth_brick.json new file mode 100644 index 000000000..687a62cb9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/basaltic_glass/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:basaltic_glass_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/conglomerate.json b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate.json new file mode 100644 index 000000000..9a8db044e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/brick.json new file mode 100644 index 000000000..dbb375208 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth.json new file mode 100644 index 000000000..e9b9b7d51 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth_brick.json new file mode 100644 index 000000000..0c58445bb --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/conglomerate/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:conglomerate_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diabase.json b/src/main/resources/data/mineralogy/tags/items/stones/diabase.json new file mode 100644 index 000000000..b1d74d01e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diabase.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diabase/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/diabase/brick.json new file mode 100644 index 000000000..dfd293283 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diabase/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth.json new file mode 100644 index 000000000..3931e59c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth_brick.json new file mode 100644 index 000000000..c4039acd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diabase/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diabase_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diorite.json b/src/main/resources/data/mineralogy/tags/items/stones/diorite.json new file mode 100644 index 000000000..a6c473010 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diorite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite", + "minecraft:diorite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diorite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/diorite/brick.json new file mode 100644 index 000000000..44f75de23 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diorite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth.json new file mode 100644 index 000000000..28fc952bd --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_smooth", + "minecraft:polished_diorite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth_brick.json new file mode 100644 index 000000000..9d2661c01 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/diorite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:diorite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/dolomite.json b/src/main/resources/data/mineralogy/tags/items/stones/dolomite.json new file mode 100644 index 000000000..f329a9162 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/dolomite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/dolomite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/brick.json new file mode 100644 index 000000000..c010f8c2e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth.json new file mode 100644 index 000000000..d1e984d14 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth_brick.json new file mode 100644 index 000000000..2f74306bc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/dolomite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:dolomite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gabbro.json b/src/main/resources/data/mineralogy/tags/items/stones/gabbro.json new file mode 100644 index 000000000..2b664843f --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gabbro.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gabbro/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/brick.json new file mode 100644 index 000000000..1a4f230f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth.json new file mode 100644 index 000000000..ce9b70813 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth_brick.json new file mode 100644 index 000000000..53dea2b13 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gabbro/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gabbro_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gneiss.json b/src/main/resources/data/mineralogy/tags/items/stones/gneiss.json new file mode 100644 index 000000000..a19fbac88 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gneiss.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gneiss/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/brick.json new file mode 100644 index 000000000..6a784a9fb --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth.json new file mode 100644 index 000000000..211fd8983 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth_brick.json new file mode 100644 index 000000000..5ab5d0aaa --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/gneiss/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:gneiss_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/granite.json b/src/main/resources/data/mineralogy/tags/items/stones/granite.json new file mode 100644 index 000000000..ae5dd9590 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/granite.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite", + "minecraft:granite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/granite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/granite/brick.json new file mode 100644 index 000000000..b4f65a8a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/granite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth.json new file mode 100644 index 000000000..947518d8b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_smooth", + "minecraft:polished_granite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth_brick.json new file mode 100644 index 000000000..a68aa55e3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/granite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:granite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/hornfels.json b/src/main/resources/data/mineralogy/tags/items/stones/hornfels.json new file mode 100644 index 000000000..7ec83bdd3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/hornfels.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/hornfels/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/brick.json new file mode 100644 index 000000000..fa6cbf595 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth.json new file mode 100644 index 000000000..9f6801294 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth_brick.json new file mode 100644 index 000000000..9da4b03c2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/hornfels/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:hornfels_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/limestone.json b/src/main/resources/data/mineralogy/tags/items/stones/limestone.json new file mode 100644 index 000000000..3f32e2ff2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/limestone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/limestone/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/limestone/brick.json new file mode 100644 index 000000000..f49563caf --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/limestone/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth.json new file mode 100644 index 000000000..d45ba82ba --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth_brick.json new file mode 100644 index 000000000..4e7f4269e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/limestone/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:limestone_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/marble.json b/src/main/resources/data/mineralogy/tags/items/stones/marble.json new file mode 100644 index 000000000..bdb724467 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/marble.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/marble/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/marble/brick.json new file mode 100644 index 000000000..7359596ec --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/marble/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth.json new file mode 100644 index 000000000..4ec76fe47 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth_brick.json new file mode 100644 index 000000000..ed9758ea4 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/marble/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:marble_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/novaculite.json b/src/main/resources/data/mineralogy/tags/items/stones/novaculite.json new file mode 100644 index 000000000..74fb17da3 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/novaculite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/novaculite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/brick.json new file mode 100644 index 000000000..5572d90dd --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth.json new file mode 100644 index 000000000..99993cecc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth_brick.json new file mode 100644 index 000000000..b393df328 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/novaculite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:novaculite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/pegmatite.json b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite.json new file mode 100644 index 000000000..7675fc010 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/brick.json new file mode 100644 index 000000000..79089e743 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth.json new file mode 100644 index 000000000..f0cd06b16 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth_brick.json new file mode 100644 index 000000000..c947fbd24 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/pegmatite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:pegmatite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/peridotite.json b/src/main/resources/data/mineralogy/tags/items/stones/peridotite.json new file mode 100644 index 000000000..34de42c18 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/peridotite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/peridotite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/brick.json new file mode 100644 index 000000000..d5164e79e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth.json new file mode 100644 index 000000000..05cc3984e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth_brick.json new file mode 100644 index 000000000..f4aea4223 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/peridotite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:peridotite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/phyllite.json b/src/main/resources/data/mineralogy/tags/items/stones/phyllite.json new file mode 100644 index 000000000..991dc28d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/phyllite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/phyllite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/brick.json new file mode 100644 index 000000000..9e33f47aa --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth.json new file mode 100644 index 000000000..6c74aea08 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth_brick.json new file mode 100644 index 000000000..d381910bc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/phyllite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:phyllite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/quartzite.json b/src/main/resources/data/mineralogy/tags/items/stones/quartzite.json new file mode 100644 index 000000000..f539e57f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/quartzite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/quartzite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/brick.json new file mode 100644 index 000000000..ae21a9047 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth.json new file mode 100644 index 000000000..f29a3ef24 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth_brick.json new file mode 100644 index 000000000..73b47a97a --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/quartzite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:quartzite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rhyolite.json b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite.json new file mode 100644 index 000000000..460e41c8e --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/brick.json new file mode 100644 index 000000000..324c3af21 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth.json new file mode 100644 index 000000000..37b2943cc --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth_brick.json new file mode 100644 index 000000000..3fb64d82b --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rhyolite/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rhyolite_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rock_salt.json b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt.json new file mode 100644 index 000000000..24df4c009 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/brick.json new file mode 100644 index 000000000..a66102e22 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth.json new file mode 100644 index 000000000..cb1591d29 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth_brick.json new file mode 100644 index 000000000..b63b027b0 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/rock_salt/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:rock_salt_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/schist.json b/src/main/resources/data/mineralogy/tags/items/stones/schist.json new file mode 100644 index 000000000..ba6cdfc2c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/schist.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/schist/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/schist/brick.json new file mode 100644 index 000000000..9e7adbfbf --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/schist/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth.json new file mode 100644 index 000000000..35372ad18 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth_brick.json new file mode 100644 index 000000000..b1eaa31df --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/schist/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:schist_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/scoria.json b/src/main/resources/data/mineralogy/tags/items/stones/scoria.json new file mode 100644 index 000000000..51d04b13d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/scoria.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/scoria/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/scoria/brick.json new file mode 100644 index 000000000..d752ece67 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/scoria/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth.json new file mode 100644 index 000000000..72faf39b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth_brick.json new file mode 100644 index 000000000..3d375e806 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/scoria/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:scoria_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/shale.json b/src/main/resources/data/mineralogy/tags/items/stones/shale.json new file mode 100644 index 000000000..e95cbccee --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/shale.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/shale/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/shale/brick.json new file mode 100644 index 000000000..645bac6d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/shale/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth.json new file mode 100644 index 000000000..c0ac17bed --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth_brick.json new file mode 100644 index 000000000..f87e41f64 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/shale/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:shale_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/siltstone.json b/src/main/resources/data/mineralogy/tags/items/stones/siltstone.json new file mode 100644 index 000000000..105f43a4d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/siltstone.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/siltstone/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/brick.json new file mode 100644 index 000000000..e156e2851 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth.json new file mode 100644 index 000000000..40a652aba --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth_brick.json new file mode 100644 index 000000000..3ace16070 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/siltstone/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:siltstone_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/slate.json b/src/main/resources/data/mineralogy/tags/items/stones/slate.json new file mode 100644 index 000000000..75a410d88 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/slate.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/slate/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/slate/brick.json new file mode 100644 index 000000000..8d291b1f2 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/slate/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth.json new file mode 100644 index 000000000..ead7f959d --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth_brick.json new file mode 100644 index 000000000..50301895c --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/slate/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:slate_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/tuff.json b/src/main/resources/data/mineralogy/tags/items/stones/tuff.json new file mode 100644 index 000000000..922156e16 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/tuff.json @@ -0,0 +1,7 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff", + "minecraft:tuff" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/tuff/brick.json b/src/main/resources/data/mineralogy/tags/items/stones/tuff/brick.json new file mode 100644 index 000000000..1c1e95f53 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/tuff/brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth.json b/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth.json new file mode 100644 index 000000000..09c8e7619 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_smooth" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth_brick.json b/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth_brick.json new file mode 100644 index 000000000..db7ed6370 --- /dev/null +++ b/src/main/resources/data/mineralogy/tags/items/stones/tuff/smooth_brick.json @@ -0,0 +1,6 @@ +{ + "replace": false, + "values": [ + "mineralogy:tuff_smooth_brick" + ] +} diff --git a/src/main/resources/data/mineralogy/tags/items/vanilla_furnace_materials.json b/src/main/resources/data/mineralogy/tags/items/vanilla_furnace_materials.json deleted file mode 100644 index d09a4b438..000000000 --- a/src/main/resources/data/mineralogy/tags/items/vanilla_furnace_materials.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "replace": false, - "values": [ - "minecraft:cobblestone", - "minecraft:blackstone", - "minecraft:cobbled_deepslate" - ] -} diff --git a/src/main/resources/data/poweradvantage/tags/blocks/crusher_inputs/rocks.json b/src/main/resources/data/poweradvantage/tags/blocks/crusher_inputs/rocks.json index c39264a40..45b8ff0db 100644 --- a/src/main/resources/data/poweradvantage/tags/blocks/crusher_inputs/rocks.json +++ b/src/main/resources/data/poweradvantage/tags/blocks/crusher_inputs/rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/data/poweradvantage/tags/items/crusher_inputs/rocks.json b/src/main/resources/data/poweradvantage/tags/items/crusher_inputs/rocks.json index c39264a40..45b8ff0db 100644 --- a/src/main/resources/data/poweradvantage/tags/items/crusher_inputs/rocks.json +++ b/src/main/resources/data/poweradvantage/tags/items/crusher_inputs/rocks.json @@ -13,7 +13,6 @@ "mineralogy:basaltic_glass", "mineralogy:scoria", "mineralogy:tuff", - "mineralogy:pumice", "mineralogy:shale", "mineralogy:conglomerate", "mineralogy:dolomite", diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index d0a24c892..12afa0fdf 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,8 +1,7 @@ { "pack": { - "description": "mineralogy resources", + "description": "Minecraft Mineralogy", "pack_format": 9, - "forge:resource_pack_format": 8, - "forge:data_pack_format": 9 + "_comment": "A pack_format of 9 is required for Minecraft 1.18.2 resource packs." } } diff --git a/src/test/java/zone/moddev/mc/mineralogy/ConfigurationAndMigrationTest.java b/src/test/java/zone/moddev/mc/mineralogy/ConfigurationAndMigrationTest.java new file mode 100644 index 000000000..77c689660 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/ConfigurationAndMigrationTest.java @@ -0,0 +1,367 @@ +package zone.moddev.mc.mineralogy; + +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.junit.Test; +import zone.moddev.mc.mineralogy.documentation.DocumentationExporter; +import zone.moddev.mc.mineralogy.migration.LegacyMineralogy6ConfigMigrator; +import zone.moddev.mc.mineralogy.migration.LegacyOreConfigMigrator; + +import java.io.File; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.stream.Stream; + +import static org.junit.Assert.*; + +public class ConfigurationAndMigrationTest { + @Test + public void cleanConfigContainsOnlyContentOptionsAndSafeDefaults() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-clean-config"); + MineralogyConfig.load(directory); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + String text = new String(Files.readAllBytes(config), StandardCharsets.UTF_8); + assertTrue(text.contains("[options]")); + assertTrue(text.contains("COBBLESTONE_EQUIVILENT = true")); + assertTrue(text.contains("GROUP_TABS_BY_TYPE = false")); + assertTrue(text.contains("ENABLE_DRYWALLS = true")); + assertFalse(text.contains("world-gen")); + assertFalse(text.contains("PLACE_MINERALOGY_ROCK")); + assertTrue(MineralogyConfig.makeRockCobblestoneEquivilent()); + assertFalse(MineralogyConfig.groupCreativeTabItemsByType()); + assertTrue(MineralogyConfig.contentPolicy().drywallsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().rockSaltLampsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().mineralDustsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().mineralFertilizerEnabled()); + } + + @Test + public void existingConfigIsReadWithoutBeingRewritten() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-existing-config"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + byte[] original = ("# retained legacy file\r\n[options]\r\n" + + "COBBLESTONE_EQUIVILENT = false\r\nGROUP_TABS_BY_TYPE = true\r\n" + + "ENABLE_DRYWALLS = false\r\nENABLE_ROCK_SALT_LAMPS = false\r\n" + + "ENABLE_MINERAL_DUSTS = false\r\nENABLE_MINERAL_FERTILIZER = false\r\n" + + "[world-gen]\r\nGEOLOGY_MODE = \"GEOME\"\r\n").getBytes(StandardCharsets.UTF_8); + Files.write(config, original); + MineralogyConfig.load(directory); + assertArrayEquals(original, Files.readAllBytes(config)); + assertFalse(MineralogyConfig.makeRockCobblestoneEquivilent()); + assertTrue(MineralogyConfig.groupCreativeTabItemsByType()); + assertFalse(MineralogyConfig.contentPolicy().drywallsEnabled()); + assertFalse(MineralogyConfig.contentPolicy().rockSaltLampsEnabled()); + assertFalse(MineralogyConfig.contentPolicy().mineralDustsEnabled()); + assertFalse(MineralogyConfig.contentPolicy().mineralFertilizerEnabled()); + assertFalse(MineralogyConfig.isCreativeVisible("drywall_black")); + assertFalse(MineralogyConfig.isCreativeVisible("sulfur_dust")); + assertFalse(MineralogyConfig.isCreativeVisible("mineral_fertilizer")); + } + + @Test + public void missingMineralogySixKeysUseEnabledDefaultsWithoutRewriting() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-old-content-config"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + byte[] original = ("[options]\nDROP_COBBLESTONE = true # retained comment\n") + .getBytes(StandardCharsets.UTF_8); + Files.write(config, original); + MineralogyConfig.load(directory); + assertArrayEquals(original, Files.readAllBytes(config)); + assertTrue(MineralogyConfig.dropCobblestone()); + assertTrue(MineralogyConfig.contentPolicy().drywallsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().rockSaltLampsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().mineralDustsEnabled()); + assertTrue(MineralogyConfig.contentPolicy().mineralFertilizerEnabled()); + assertFalse(MineralogyConfig.groupCreativeTabItemsByType()); + } + + @Test + public void issue121SwitchesRemainIndependent() throws Exception { + String[] keys = { ContentPolicy.ENABLE_DRYWALLS, ContentPolicy.ENABLE_ROCK_SALT_LAMPS, + ContentPolicy.ENABLE_MINERAL_DUSTS, ContentPolicy.ENABLE_MINERAL_FERTILIZER }; + String[] hidden = { "drywall_black", "rocksaltlamp", "sulfur_dust", "mineral_fertilizer" }; + for (int selected = 0; selected < keys.length; selected++) { + Path directory = Files.createTempDirectory("mineralogy-policy-" + selected); + StringBuilder config = new StringBuilder("[options]\n"); + for (int index = 0; index < keys.length; index++) { + config.append(keys[index]).append(" = ").append(index != selected).append('\n'); + } + Files.write(directory.resolve(MineralogyConfig.FILE_NAME), + config.toString().getBytes(StandardCharsets.UTF_8)); + MineralogyConfig.load(directory); + for (int index = 0; index < hidden.length; index++) { + assertEquals(keys[selected] + " must be independent for " + hidden[index], + index != selected, MineralogyConfig.isCreativeVisible(hidden[index])); + } + } + } + + @Test + public void independentOreMigrationConvertsExclusiveMaximumAndIsIdempotent() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-ore-migration"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + byte[] source = ("[ores.sulfur_ore]\nminY = 7\nmaxY = 50\nfrequency = 2.5\nquantity = 9\n" + + "[ores.phosphorous_ore]\nminY = 16\nmaxY = 64\nfrequency = 1.0\nquantity = 16\n" + + "[ores.nitrate_ore]\nminY = 5\nmaxY = 40\nfrequency = nope\nquantity = 12\n") + .getBytes(StandardCharsets.UTF_8); + Files.write(config, source); + LegacyOreConfigMigrator.migrate(config, null); + Path override = directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE); + Path report = directory.resolve(LegacyOreConfigMigrator.REPORT_FILE); + assertTrue(Files.isRegularFile(override)); + assertTrue(Files.isRegularFile(report)); + JsonObject root = parse(override.toFile()); + JsonObject sulfur = root.getAsJsonObject("ores") + .getAsJsonObject("mineralogy:ore/mineralogy/sulfur_ore") + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + assertEquals(7, sulfur.get("min_y").getAsInt()); + assertEquals(49, sulfur.get("max_y").getAsInt()); + assertEquals(2.5D, sulfur.get("frequency").getAsDouble(), 0.0D); + assertEquals(9, sulfur.get("quantity").getAsInt()); + String reportText = new String(Files.readAllBytes(report), StandardCharsets.UTF_8); + assertTrue(reportText.contains("phosphorous_ore.result=default")); + assertTrue(reportText.contains("nitrate_ore.result=default-invalid")); + assertArrayEquals(source, Files.readAllBytes(config)); + + byte[] firstOverride = Files.readAllBytes(override); + byte[] firstReport = Files.readAllBytes(report); + LegacyOreConfigMigrator.migrate(config, null); + assertArrayEquals(firstOverride, Files.readAllBytes(override)); + assertArrayEquals(firstReport, Files.readAllBytes(report)); + } + + @Test + public void establishedOverridesRemainAuthoritative() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-established-override"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + Files.write(config, ("[ores.sulphur_ore]\nminY=1\nmaxY=20\nfrequency=3\nquantity=4\n") + .getBytes(StandardCharsets.UTF_8)); + Path override = directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE); + byte[] established = "{\"established\":true}\n".getBytes(StandardCharsets.UTF_8); + Files.write(override, established); + LegacyOreConfigMigrator.migrate(config, null); + assertArrayEquals(established, Files.readAllBytes(override)); + String report = new String(Files.readAllBytes(directory.resolve( + LegacyOreConfigMigrator.REPORT_FILE)), StandardCharsets.UTF_8); + assertTrue(report.contains("existing Mineralogy provider override is authoritative")); + } + + @Test + public void establishedOreSpawnGlobalConfigurationPreventsMigration() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-established-global"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + Files.write(config, ("[ores.sulfur_ore]\nminY=1\nmaxY=20\nfrequency=3\nquantity=4\n") + .getBytes(StandardCharsets.UTF_8)); + byte[] global = "{\"schema_version\":6}\n".getBytes(StandardCharsets.UTF_8); + Files.write(directory.resolve(LegacyOreConfigMigrator.GLOBAL_FILE), global); + LegacyOreConfigMigrator.migrate(config, null); + assertFalse(Files.exists(directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE))); + assertArrayEquals(global, Files.readAllBytes(directory.resolve(LegacyOreConfigMigrator.GLOBAL_FILE))); + assertTrue(new String(Files.readAllBytes(directory.resolve(LegacyOreConfigMigrator.REPORT_FILE)), + StandardCharsets.UTF_8).contains("existing OreSpawn global configuration is authoritative")); + } + + @Test + public void nativeSulfurCategoryWinsHistoricalFallbackAndMaximum256Becomes255() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-duplicate-sulfur"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + Files.write(config, ("[ores.sulphur_ore]\nminY=2\nmaxY=30\nfrequency=2\nquantity=3\n" + + "[ores.sulfur_ore]\nminY=8\nmaxY=256\nfrequency=0\nquantity=7\n") + .getBytes(StandardCharsets.UTF_8)); + LegacyOreConfigMigrator.migrate(config, null); + JsonObject sulfur = parse(directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE).toFile()) + .getAsJsonObject("ores").getAsJsonObject("mineralogy:ore/mineralogy/sulfur_ore") + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + assertEquals(8, sulfur.get("min_y").getAsInt()); + assertEquals(255, sulfur.get("max_y").getAsInt()); + assertEquals(0.0D, sulfur.get("frequency").getAsDouble(), 0.0D); + assertEquals(7, sulfur.get("quantity").getAsInt()); + } + + @Test + public void minecraft118OreBoundsPreserveNegativeMinimumAndExclusiveMaximum320() + throws Exception { + Path directory = Files.createTempDirectory("mineralogy-118-ore-bounds"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + Files.write(config, ("[ores.sulfur_ore]\nminY=-64\nmaxY=320\nfrequency=2\nquantity=7\n") + .getBytes(StandardCharsets.UTF_8)); + LegacyOreConfigMigrator.migrate(config, null); + JsonObject sulfur = parse(directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE).toFile()) + .getAsJsonObject("ores").getAsJsonObject("mineralogy:ore/mineralogy/sulfur_ore") + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + assertEquals(-64, sulfur.get("min_y").getAsInt()); + assertEquals(319, sulfur.get("max_y").getAsInt()); + } + + @Test + public void allDefaultsProduceOnlyAByteStableReport() throws Exception { + Path directory = Files.createTempDirectory("mineralogy-default-ores"); + Path config = directory.resolve(MineralogyConfig.FILE_NAME); + byte[] source = ("[ores.sulfur_ore]\nminY=16\nmaxY=64\nfrequency=1.0\nquantity=16\n" + + "[ores.phosphorous_ore]\nminY=16\nmaxY=64\nfrequency=1.0\nquantity=16\n" + + "[ores.nitrate_ore]\nminY=16\nmaxY=64\nfrequency=1.0\nquantity=16\n") + .getBytes(StandardCharsets.UTF_8); + Files.write(config, source); + LegacyOreConfigMigrator.migrate(config, null); + Path report = directory.resolve(LegacyOreConfigMigrator.REPORT_FILE); + byte[] first = Files.readAllBytes(report); + assertFalse(Files.exists(directory.resolve(LegacyOreConfigMigrator.OVERRIDE_FILE))); + LegacyOreConfigMigrator.migrate(config, null); + assertArrayEquals(first, Files.readAllBytes(report)); + assertArrayEquals(source, Files.readAllBytes(config)); + } + + @Test + public void mineralogySixGlobalJsonUsesStableProviderIdsWithoutRewritingItsSource() + throws Exception { + Path directory = Files.createTempDirectory("mineralogy-six-json"); + JsonObject provider = parse(new File( + "src/main/resources/data/mineralogy/orespawn/provider.json")); + JsonObject legacy = legacyMineralogySixJson(provider, 4); + JsonObject oldSulfur = legacy.getAsJsonObject("ores") + .getAsJsonObject("mineralogy:sulfur_ore") + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + oldSulfur.addProperty("frequency", 2.75D); + JsonObject vanilla = new JsonObject(); + vanilla.addProperty("enabled", false); + legacy.getAsJsonObject("ores").add("minecraft:coal_ore", vanilla); + + Path source = directory.resolve(LegacyMineralogy6ConfigMigrator.LEGACY_GLOBAL_FILE); + byte[] original = (legacy.toString() + "\r\n").getBytes(StandardCharsets.UTF_8); + Files.write(source, original); + + assertTrue(LegacyMineralogy6ConfigMigrator.migrateGlobalConfig(directory, null)); + Path target = directory.resolve(LegacyMineralogy6ConfigMigrator.ORESPAWN_GLOBAL_FILE); + JsonObject migrated = parse(target.toFile()); + assertEquals(6, migrated.get("schema_version").getAsInt()); + assertEquals(LegacyMineralogy6ConfigMigrator.LEGACY_GLOBAL_FILE, + migrated.get("migrated_from").getAsString()); + assertEquals(32, migrated.getAsJsonObject("rocks").entrySet().size()); + assertEquals(4, migrated.getAsJsonObject("ores").entrySet().size()); + assertTrue(migrated.getAsJsonObject("rocks") + .has("mineralogy:rock/minecraft/basalt")); + assertFalse(migrated.getAsJsonObject("rocks").has("minecraft:basalt")); + assertTrue(migrated.getAsJsonObject("ores") + .has("mineralogy:ore/mineralogy/sulfur_ore")); + assertFalse(migrated.getAsJsonObject("ores").has("mineralogy:sulfur_ore")); + assertTrue(migrated.getAsJsonObject("ores").has("minecraft:coal_ore")); + JsonObject sulfur = migrated.getAsJsonObject("ores") + .getAsJsonObject("mineralogy:ore/mineralogy/sulfur_ore"); + assertEquals("mineralogy:sulfur_ore", sulfur.get("block").getAsString()); + assertEquals("mineralogy", sulfur.get("source_provider").getAsString()); + assertEquals(2.75D, sulfur.getAsJsonObject("dimensions") + .getAsJsonObject("minecraft:overworld").get("frequency").getAsDouble(), 0.0D); + assertArrayEquals(original, Files.readAllBytes(source)); + + Path report = directory.resolve(LegacyMineralogy6ConfigMigrator.GLOBAL_REPORT_FILE); + String reportText = new String(Files.readAllBytes(report), StandardCharsets.UTF_8); + assertTrue(reportText.contains("canonicalized.rocks=32")); + assertTrue(reportText.contains("canonicalized.ores=3")); + byte[] firstTarget = Files.readAllBytes(target); + byte[] firstReport = Files.readAllBytes(report); + assertFalse(LegacyMineralogy6ConfigMigrator.migrateGlobalConfig(directory, null)); + assertArrayEquals(firstTarget, Files.readAllBytes(target)); + assertArrayEquals(firstReport, Files.readAllBytes(report)); + assertArrayEquals(original, Files.readAllBytes(source)); + } + + @Test + public void mineralogySixWorldProfileIsCanonicalizedBeforeOreSpawnLoadsIt() + throws Exception { + Path world = Files.createTempDirectory("mineralogy-six-world"); + Path serverConfig = world.resolve("serverconfig"); + Files.createDirectories(serverConfig); + JsonObject provider = parse(new File( + "src/main/resources/data/mineralogy/orespawn/provider.json")); + JsonObject legacy = legacyMineralogySixJson(provider, 3); + Path source = serverConfig.resolve(LegacyMineralogy6ConfigMigrator.LEGACY_WORLD_FILE); + byte[] original = (legacy.toString() + "\n").getBytes(StandardCharsets.UTF_8); + Files.write(source, original); + + assertTrue(LegacyMineralogy6ConfigMigrator.migrateWorldProfile(world, null)); + Path target = serverConfig.resolve(LegacyMineralogy6ConfigMigrator.ORESPAWN_WORLD_FILE); + JsonObject migrated = parse(target.toFile()); + assertEquals(5, migrated.get("schema_version").getAsInt()); + assertEquals(32, migrated.getAsJsonObject("rocks").entrySet().size()); + assertEquals(3, migrated.getAsJsonObject("ores").entrySet().size()); + assertTrue(migrated.getAsJsonObject("rocks") + .has("mineralogy:rock/mineralogy/limestone")); + assertTrue(Files.isRegularFile(serverConfig.resolve( + LegacyMineralogy6ConfigMigrator.WORLD_REPORT_FILE))); + assertArrayEquals(original, Files.readAllBytes(source)); + + byte[] firstTarget = Files.readAllBytes(target); + assertFalse(LegacyMineralogy6ConfigMigrator.migrateWorldProfile(world, null)); + assertArrayEquals(firstTarget, Files.readAllBytes(target)); + assertArrayEquals(original, Files.readAllBytes(source)); + } + + @Test + public void establishedOreSpawnJsonAndMalformedMineralogyJsonAreNeverReplaced() + throws Exception { + Path establishedDirectory = Files.createTempDirectory("mineralogy-six-established"); + Files.write(establishedDirectory.resolve( + LegacyMineralogy6ConfigMigrator.LEGACY_GLOBAL_FILE), "{}\n".getBytes(StandardCharsets.UTF_8)); + Path establishedTarget = establishedDirectory.resolve( + LegacyMineralogy6ConfigMigrator.ORESPAWN_GLOBAL_FILE); + byte[] established = "{\"established\":true}\n".getBytes(StandardCharsets.UTF_8); + Files.write(establishedTarget, established); + assertFalse(LegacyMineralogy6ConfigMigrator.migrateGlobalConfig(establishedDirectory, null)); + assertArrayEquals(established, Files.readAllBytes(establishedTarget)); + + Path malformedDirectory = Files.createTempDirectory("mineralogy-six-malformed"); + byte[] malformed = "not json\r\n".getBytes(StandardCharsets.UTF_8); + Path malformedSource = malformedDirectory.resolve( + LegacyMineralogy6ConfigMigrator.LEGACY_GLOBAL_FILE); + Files.write(malformedSource, malformed); + assertFalse(LegacyMineralogy6ConfigMigrator.migrateGlobalConfig(malformedDirectory, null)); + assertFalse(Files.exists(malformedDirectory.resolve( + LegacyMineralogy6ConfigMigrator.ORESPAWN_GLOBAL_FILE))); + assertArrayEquals(malformed, Files.readAllBytes(malformedSource)); + } + + @Test + public void documentationExportIsMissingOnlyAndCopiesExactProvider() throws Exception { + Path output = Files.createTempDirectory("mineralogy-guide"); + assertEquals(7, DocumentationExporter.exportMissing(output)); + assertEquals(0, DocumentationExporter.exportMissing(output)); + Path readme = output.resolve("README.md"); + byte[] edited = "player edit\n".getBytes(StandardCharsets.UTF_8); + Files.write(readme, edited); + Files.delete(output.resolve("PLAYER_GUIDE.md")); + assertEquals(1, DocumentationExporter.exportMissing(output)); + assertArrayEquals(edited, Files.readAllBytes(readme)); + assertArrayEquals(Files.readAllBytes(new File( + "src/main/resources/data/mineralogy/orespawn/provider.json").toPath()), + Files.readAllBytes(output.resolve("examples/mineralogy-provider.json"))); + try (Stream files = Files.walk(output)) { + assertFalse(files.anyMatch(path -> path.getFileName().toString().endsWith(".tmp"))); + } + } + + private static JsonObject parse(File file) throws Exception { + try (Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) { + return new JsonParser().parse(reader).getAsJsonObject(); + } + } + + private static JsonObject legacyMineralogySixJson(JsonObject provider, int schema) { + JsonObject legacy = new JsonObject(); + legacy.addProperty("schema_version", schema); + for (String sectionName : new String[] { "rocks", "ores" }) { + JsonObject section = new JsonObject(); + for (java.util.Map.Entry entry + : provider.getAsJsonObject(sectionName).entrySet()) { + JsonObject rule = entry.getValue().getAsJsonObject().deepCopy(); + String block = rule.get("block").getAsString(); + rule.remove("block"); + rule.remove("source_provider"); + section.add(block, rule); + } + legacy.add(sectionName, section); + } + return legacy; + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/CoremodNamespaceTest.java b/src/test/java/zone/moddev/mc/mineralogy/CoremodNamespaceTest.java deleted file mode 100644 index 8c5b2ed1b..000000000 --- a/src/test/java/zone/moddev/mc/mineralogy/CoremodNamespaceTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package zone.moddev.mc.mineralogy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertNotNull; - -import java.io.IOException; -import java.io.InputStream; -import java.nio.charset.StandardCharsets; - -import org.junit.jupiter.api.Test; - -class CoremodNamespaceTest { - private static final String COREMOD_RESOURCE = "/coremods/mineralogy_legacy_world_fix.js"; - private static final String CURRENT_HOOK = "zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook"; - private static final String LEGACY_HOOK = "com/mcmoddev/mineralogy/patching/LegacyWorldDataHook"; - - @Test - void coremodTargetsCurrentLegacyWorldDataHookPackage() throws IOException { - try (InputStream stream = CoremodNamespaceTest.class.getResourceAsStream(COREMOD_RESOURCE)) { - assertNotNull(stream, "Missing packaged Mineralogy legacy-world coremod"); - String coremod = new String(stream.readAllBytes(), StandardCharsets.UTF_8); - - assertFalse(coremod.contains(LEGACY_HOOK), "Coremod still targets the retired package"); - assertEquals(4, countOccurrences(coremod, CURRENT_HOOK)); - } - } - - private static int countOccurrences(String value, String target) { - int count = 0; - int offset = 0; - while ((offset = value.indexOf(target, offset)) >= 0) { - count++; - offset += target.length(); - } - return count; - } -} diff --git a/src/test/java/zone/moddev/mc/mineralogy/GameplayContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/GameplayContractTest.java new file mode 100644 index 000000000..ce2b31db6 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/GameplayContractTest.java @@ -0,0 +1,177 @@ +package zone.moddev.mc.mineralogy; + +import org.junit.Test; +import zone.moddev.mc.mineralogy.data.MaterialData; +import zone.moddev.mc.mineralogy.blocks.Ore; +import zone.moddev.mc.mineralogy.blocks.Rock; +import zone.moddev.mc.mineralogy.blocks.RockRelief; +import zone.moddev.mc.mineralogy.blocks.RockSlab; +import zone.moddev.mc.mineralogy.blocks.RockStairs; +import zone.moddev.mc.mineralogy.blocks.RockWall; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.HashSet; +import java.util.Set; + +import static org.junit.Assert.*; + +public class GameplayContractTest { + @Test + public void novaculiteAndRockFamilyContractsAreStable() { + assertEquals(3.0D, MaterialData.NOVACULITE.hardness, 0.0D); + assertEquals(15.0D, MaterialData.NOVACULITE.blastResistance, 0.0D); + assertEquals(1, MaterialData.NOVACULITE.toolHardnessLevel); + assertEquals(27, MaterialData.allIncludingRockSalt().size()); + Set ids = new HashSet(); + MaterialData.allIncludingRockSalt().forEach(material -> ids.add(material.id())); + assertEquals(27, ids.size()); + assertTrue(ids.contains("rock_salt")); + } + + @Test + public void creativePolicyUsesReliefBeforeSlabAndFiveGroups() throws Exception { + String source = text("src/main/java/zone/moddev/mc/mineralogy/CreativeTabPolicy.java"); + assertTrue(source.indexOf("RockRelief.class") < source.indexOf("RockSlab.class")); + assertTrue(source.contains("enum ContentGroup { ROCK, STAIR, SLAB, WALL, ITEM }")); + String groups = text("src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java"); + assertTrue(groups.contains("create(\"rock\", \"basalt\")")); + assertTrue(groups.contains("create(\"stair\", \"basalt_stairs\")")); + assertTrue(groups.contains("create(\"slab\", \"basalt_slab\")")); + assertTrue(groups.contains("create(\"wall\", \"basalt_wall\")")); + assertTrue(groups.contains("create(\"item\", \"sulfur_dust\")")); + assertTrue(groups.contains("CreativeModeTab.TAB_MATERIALS")); + assertTrue(groups.contains("public boolean hasSearchBar()")); + assertTrue(groups.contains("textures/gui/container/creative_inventory/tab_item_search.png")); + + CreativeTabPolicy grouped = new CreativeTabPolicy(true); + assertTrue(grouped.groupTabsByType()); + assertEquals(CreativeTabPolicy.ContentGroup.ROCK, grouped.groupFor(Rock.class)); + assertEquals(CreativeTabPolicy.ContentGroup.ROCK, grouped.groupFor(Ore.class)); + assertEquals(CreativeTabPolicy.ContentGroup.STAIR, grouped.groupFor(RockStairs.class)); + assertEquals(CreativeTabPolicy.ContentGroup.SLAB, grouped.groupFor(RockSlab.class)); + assertEquals(CreativeTabPolicy.ContentGroup.WALL, grouped.groupFor(RockWall.class)); + assertEquals(CreativeTabPolicy.ContentGroup.ITEM, grouped.groupFor(RockRelief.class)); + assertEquals(CreativeTabPolicy.ContentGroup.ITEM, grouped.groupFor(Object.class)); + assertFalse(new CreativeTabPolicy(false).groupTabsByType()); + } + + @Test + public void dropsSlabsAndFurnacePersistenceFollowAcceptedSemantics() throws Exception { + String chert = text("src/main/java/zone/moddev/mc/mineralogy/blocks/Chert.java"); + assertTrue(chert.contains("if (prng.nextInt(10) == 0)")); + assertTrue(chert.contains("return super.getDrops(state, builder);")); + String rock = text("src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java"); + assertTrue(rock.contains("return Collections.singletonList(new ItemStack(Blocks.COBBLESTONE));")); + String slab = text("src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java"); + assertTrue(slab.contains("new ItemStack(drops, 2)")); + assertTrue(slab.contains("Collections.singletonList(new ItemStack(fullBlock))")); + String furnace = text("src/main/java/zone/moddev/mc/mineralogy/tileentity/TileEntityRockFurnace.java"); + assertTrue(furnace.contains("public TileEntityRockFurnace(BlockPos pos, BlockState state)")); + assertTrue(furnace.contains("BlockState state = getBlockState()")); + assertTrue(furnace.contains("Block block = state.getBlock()")); + assertTrue(furnace.contains("getBurnModifier()")); + assertTrue(furnace.contains("ContainerHelper.loadAllItems")); + + String lamp = text("src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java"); + assertTrue(lamp.contains("facing.getAxis().isVertical()")); + assertTrue(lamp.contains("Block.canSupportCenter(world, supportPos, facing)")); + } + + @Test + public void cobblestonePolicyReappliesAfterReloadAndKeepsSpecialCases() throws Exception { + String policy = text("src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java"); + assertTrue(policy.contains("onTagsUpdated(TagsUpdatedEvent event)")); + assertFalse(policy.contains("onServerAboutToStart")); + assertTrue(policy.contains("event.getTagManager()")); + assertTrue(policy.contains("event.shouldUpdateStaticData()")); + assertTrue(policy.contains("MaterialData.allIncludingRockSalt()")); + assertTrue(policy.contains("\"stones/\" + material.id()")); + assertTrue(policy.contains("rawRockHolders(blockRegistry")); + assertTrue(policy.contains("rawRockHolders(itemRegistry")); + assertTrue(policy.contains("\"chert\", \"pumice\"")); + assertTrue(policy.contains("blockRegistry.bindTags(blockTags)")); + assertTrue(policy.contains("itemRegistry.bindTags(itemTags)")); + assertTrue(policy.contains("STONE_CRAFTING_MATERIALS")); + assertTrue(policy.contains("STONE_TOOL_MATERIALS")); + assertTrue(policy.contains("TagKey.create")); + assertFalse(policy.contains("java.lang.reflect")); + assertTrue(policy.contains("Ingredient.invalidateAll()")); + } + + @Test + public void optionalGunpowderDustsCannotCollapseToTwoIngredients() throws Exception { + String generator = text("scripts/generate-recipes.ps1"); + assertTrue(generator.contains("ItemTagNotEmptyCondition 'forge:dusts/carbon'")); + assertTrue(generator.contains("ItemTagNotEmptyCondition 'forge:dusts/coal'")); + assertTrue(generator.contains("type = 'forge:not'")); + assertTrue(generator.contains("type = 'forge:tag_empty'")); + } + + @Test + public void forge40OilUsesNativeFlowingFluidRendering() throws Exception { + String fluid = text("src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java"); + assertTrue(fluid.contains("ForgeFlowingFluid.Source")); + assertTrue(fluid.contains("ForgeFlowingFluid.Flowing")); + assertTrue(fluid.contains("LiquidBlock")); + assertTrue(fluid.contains("MineralogyBucketItem")); + assertTrue(fluid.contains("blocks/crude_oil_still")); + assertTrue(fluid.contains("blocks/crude_oil_flow")); + String client = text("src/main/java/zone/moddev/mc/mineralogy/client/ClientSetup.java"); + assertTrue(client.contains("ItemBlockRenderTypes.setRenderLayer(MineralogyFluids.CRUDE_OIL.get()")); + assertTrue(client.contains("RenderType.translucent()")); + assertFalse(new File("src/main/java/zone/moddev/mc/mineralogy/client/ClientOilRenderer.java").exists()); + } + + @Test + public void legacyWorldConversionPreservesIndexedChunksAndFurnaces() throws Exception { + String hook = text("src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java"); + assertTrue(hook.contains("blocks.length != 4096")); + assertTrue(hook.contains("MineralogyLegacyPreserveChunk")); + assertTrue(hook.contains("TerrainPopulated")); + assertTrue(hook.contains("LightPopulated")); + assertTrue(hook.contains("rewriteLegacyRockFurnaceTileEntities")); + assertTrue(hook.contains("tileEntity.putString(\"id\", ROCK_FURNACE_TILE_ENTITY)")); + + String transformer = text("src/main/resources/coremods/mineralogy_legacy_world_fix.js"); + assertTrue(transformer.contains("mineralogy_legacy_chunk_data")); + assertTrue(transformer.contains("net.minecraft.world.level.chunk.storage.ChunkStorage")); + assertTrue(transformer.contains("prepareLegacyChunk")); + assertTrue(transformer.contains("finalizeLegacyChunk")); + + String mappings = text("src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java"); + assertTrue(mappings.contains("GRASS_PATH")); + assertTrue(mappings.contains("DIRT_PATH")); + assertTrue(mappings.contains("SWEET_BERRIES_PICK")); + assertTrue(mappings.contains("SWEET_BERRY_BUSH_PICK")); + assertTrue(mappings.contains("ForgeRegistries.SOUND_EVENTS")); + assertTrue(mappings.contains("bus = Mod.EventBusSubscriber.Bus.FORGE")); + assertTrue(mappings.contains("event.getAllMappings()")); + } + + @Test + public void legacyFlatteningUsesTheExpandedArrayAndReinstallsTheSelectedWorldMapping() throws Exception { + String hook = text("src/main/java/zone/moddev/mc/mineralogy/patching/LegacyWorldDataHook.java"); + assertTrue(hook.contains("expandFlatteningTable(highestStateId + 1)")); + assertTrue(hook.contains("type.getComponentType() != Dynamic.class")); + assertTrue(hook.contains("legacyStates[stateId] = BlockStateData.parse(stateNbt)")); + assertTrue(hook.contains("unsafe.putObjectVolatile(base, offset, expanded)")); + assertTrue(hook.contains("captureLegacyLevelData(CompoundTag root, Path levelPath)")); + assertTrue(hook.contains("writeSidecar(levelDat.getParentFile(), blocks)")); + assertTrue(hook.contains("prepareLegacyWorld(levelDat)")); + + String build = text("build.gradle"); + assertTrue(build.contains("dependsOn tasks.named('processResources')")); + assertTrue(build.contains("mineralogy%%${mainOutput}")); + assertTrue(build.contains("from processedResources")); + assertTrue(build.contains("data/mineralogy/orespawn/provider.json")); + assertTrue(build.contains("Eclipse output contains stale processed production resources")); + assertTrue(build.contains("examples/mineralogy-provider.json")); + assertTrue(build.contains("Eclipse output is missing bundled documentation")); + } + + private static String text(String path) throws Exception { + return new String(Files.readAllBytes(new File(path).toPath()), StandardCharsets.UTF_8); + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/LocalizationParityTest.java b/src/test/java/zone/moddev/mc/mineralogy/LocalizationParityTest.java deleted file mode 100644 index 9b7dab071..000000000 --- a/src/test/java/zone/moddev/mc/mineralogy/LocalizationParityTest.java +++ /dev/null @@ -1,69 +0,0 @@ -package zone.moddev.mc.mineralogy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.Reader; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; - -import com.google.gson.JsonElement; -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.junit.jupiter.api.Test; - -class LocalizationParityTest { - private static final Path LANG_DIR = Paths.get("src", "main", "resources", "assets", "mineralogy", "lang"); - private static final Set REQUIRED_LOCALES = new HashSet<>(Arrays.asList( - "pt_br.json", "ru_ru.json", "ko_kr.json", "ja_jp.json")); - - @Test - void everyLocaleMatchesEnglishKeysAndFormatting() throws Exception { - JsonObject english = read(LANG_DIR.resolve("en_us.json")); - Set englishKeys = english.keySet(); - Set localeFiles = new HashSet<>(); - - try (java.util.stream.Stream files = Files.list(LANG_DIR)) { - for (Path file : (Iterable) files - .filter(path -> path.getFileName().toString().endsWith(".json")) - .sorted()::iterator) { - String locale = file.getFileName().toString(); - localeFiles.add(locale); - JsonObject translations = read(file); - - assertEquals(englishKeys, translations.keySet(), locale + " must match en_us keys exactly"); - for (String key : englishKeys) { - JsonElement translated = translations.get(key); - assertTrue(translated.isJsonPrimitive() && translated.getAsJsonPrimitive().isString(), - locale + " value for " + key + " must be a string"); - assertFalse(translated.getAsString().trim().isEmpty(), locale + " value for " + key + " is blank"); - assertEquals(formatArgumentCount(english.get(key).getAsString()), - formatArgumentCount(translated.getAsString()), - locale + " changes the format arguments for " + key); - } - } - } - - assertTrue(localeFiles.containsAll(REQUIRED_LOCALES), "Required new locales are missing"); - } - - private static int formatArgumentCount(String value) { - int count = 0; - for (int i = 0; i < value.length() - 1; i++) { - if (value.charAt(i) == '%' && value.charAt(i + 1) == 's') count++; - } - return count; - } - - private static JsonObject read(Path path) throws Exception { - try (Reader reader = Files.newBufferedReader(path, StandardCharsets.UTF_8)) { - return JsonParser.parseReader(reader).getAsJsonObject(); - } - } -} diff --git a/src/test/java/zone/moddev/mc/mineralogy/LocalizationQualityTest.java b/src/test/java/zone/moddev/mc/mineralogy/LocalizationQualityTest.java new file mode 100644 index 000000000..8d63050a9 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/LocalizationQualityTest.java @@ -0,0 +1,179 @@ +package zone.moddev.mc.mineralogy; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.junit.Test; + +import java.io.File; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import static org.junit.Assert.*; + +/** Quality policy for the reviewed 1.18.2 JSON localization inventory. */ +public class LocalizationQualityTest { + private static final File LANG_DIR = new File("src/main/resources/assets/mineralogy/lang"); + private static final Set ENGLISH_LOCALES = new HashSet(Arrays.asList( + "en_ca.json", "en_en.json", "en_gb.json", "en_pt.json", "en_us.json")); + private static final Set NON_LATIN_LOCALES = new HashSet(Arrays.asList( + "ja_jp.json", "ko_kr.json", "ru_ru.json", "zh_cn.json")); + private static final Pattern FORMAT_ARGUMENT = Pattern.compile("%(?:\\d+\\$)?[a-zA-Z%]"); + private static final Pattern LATIN_WORD = Pattern.compile("[A-HJ-Za-hj-z]{2,}"); + + @Test + public void everyLocaleIsUtf8JsonWithStableFormatting() throws Exception { + Map english = read(new File(LANG_DIR, "en_us.json")); + File[] files = LANG_DIR.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(files); + assertEquals(17, files.length); + + for (File file : files) { + byte[] bytes = Files.readAllBytes(file.toPath()); + assertFalse(file.getName() + " must not contain a UTF-8 BOM", + bytes.length >= 3 && bytes[0] == (byte) 0xef + && bytes[1] == (byte) 0xbb && bytes[2] == (byte) 0xbf); + String content = new String(bytes, StandardCharsets.UTF_8); + assertFalse(file.getName() + " contains a replacement character", content.contains("\ufffd")); + assertTrue(file.getName() + " must end with a newline", content.endsWith("\n")); + for (String line : content.split("\\n", -1)) { + assertEquals(file.getName() + " has trailing whitespace", line, line.replaceFirst("[ \\t]+$", "")); + } + + Map translations = read(file); + assertEquals(file.getName(), new ArrayList(english.keySet()), + new ArrayList(translations.keySet())); + for (String key : english.keySet()) { + assertFalse(file.getName() + " has a blank value for " + key, translations.get(key).trim().isEmpty()); + assertEquals(file.getName() + " changes formatting arguments for " + key, + formatArguments(english.get(key)), formatArguments(translations.get(key))); + } + } + } + + @Test + public void nonEnglishLocalesOnlyMatchReviewedTechnicalTerms() throws Exception { + Map english = read(new File(LANG_DIR, "en_us.json")); + Map> allowed = reviewedEnglishMatches(); + File[] files = LANG_DIR.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(files); + + for (File file : files) { + if (ENGLISH_LOCALES.contains(file.getName())) continue; + Map translations = read(file); + Set actual = new HashSet(); + for (String key : english.keySet()) { + if (english.get(key).equals(translations.get(key))) actual.add(key); + } + assertEquals(file.getName() + " has an unreviewed English fallback", + allowed.containsKey(file.getName()) ? allowed.get(file.getName()) : Collections.emptySet(), actual); + } + } + + @Test + public void nonEnglishLocalesContainNoEmbeddedEnglishUiFragments() throws Exception { + Map forbidden = forbiddenEnglishByLocale(); + File[] files = LANG_DIR.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(files); + for (File file : files) { + if (ENGLISH_LOCALES.contains(file.getName())) continue; + for (Map.Entry entry : read(file).entrySet()) { + if (NON_LATIN_LOCALES.contains(file.getName())) { + assertFalse(file.getName() + " contains an English word in " + entry, + LATIN_WORD.matcher(entry.getValue()).find()); + } else { + Pattern pattern = forbidden.get(file.getName()); + assertNotNull("Missing forbidden-word policy for " + file.getName(), pattern); + assertFalse(file.getName() + " contains an English UI fragment in " + entry, + pattern.matcher(entry.getValue()).find()); + } + } + } + } + + @Test + public void representativeTranslationsCoverGeologyTabsAndOil() throws Exception { + assertLocale("de_de.json", "block.mineralogy.shale", "Tonschiefer"); + assertLocale("de_de.json", "item.mineralogy.crude_oil_bucket", "Roh\u00f6leimer"); + assertLocale("es_es.json", "block.mineralogy.siltstone", "Limolita"); + assertLocale("fr_fr.json", "block.mineralogy.hornfels", "Corn\u00e9enne"); + assertLocale("pt_br.json", "block.mineralogy.shale", "Folhelho"); + assertLocale("ja_jp.json", "block.mineralogy.conglomerate", "\u792b\u5ca9"); + assertLocale("ko_kr.json", "block.mineralogy.gabbro", "\ubc18\ub824\uc554"); + assertLocale("ru_ru.json", "item.mineralogy.crude_oil_bucket", "\u0412\u0435\u0434\u0440\u043e \u0441\u044b\u0440\u043e\u0439 \u043d\u0435\u0444\u0442\u0438"); + assertLocale("zh_cn.json", "itemGroup.mineralogy.item", "\u77ff\u7269\u5b66\u7269\u54c1"); + } + + private static void assertLocale(String locale, String key, String expected) throws Exception { + assertEquals(expected, read(new File(LANG_DIR, locale)).get(key)); + } + + private static Map> reviewedEnglishMatches() { + Set german = new HashSet(Arrays.asList( + "block.mineralogy.basalt", "block.mineralogy.gabbro", "block.mineralogy.hornfels")); + Set french = new HashSet(Arrays.asList( + "block.mineralogy.amphibolite", "block.mineralogy.chert", "block.mineralogy.diabase", + "block.mineralogy.diorite", "block.mineralogy.gabbro", "block.mineralogy.gneiss", + "block.mineralogy.granite", "block.mineralogy.nitrate_block", + "block.mineralogy.novaculite", "block.mineralogy.pegmatite", + "block.mineralogy.quartzite", "block.mineralogy.rhyolite")); + Map> allowed = new HashMap>(); + allowed.put("de_au.json", german); + allowed.put("de_de.json", german); + allowed.put("fr_ca.json", french); + allowed.put("fr_fr.json", french); + return allowed; + } + + private static Map forbiddenEnglishByLocale() { + String common = "Polished|Wall|Furnace|Hoe|Pickaxe|Sword|Blank|Left|Right|Street|" + + "Dust|Ore|Bucket|Fertilizer|Crude|Oil|Stairs|Slab|Brick|Smooth|Drywall|Axe|Cross"; + Map forbidden = new HashMap(); + forbidden.put("de_au.json", words(common)); + forbidden.put("de_de.json", words(common)); + forbidden.put("es_es.json", words(common + "|Hammer|Relief|Gabbro|Siltstone|Phyllite|Hornfels|Tuff|Slate|Scoria|Plus")); + forbidden.put("es_mx.json", forbidden.get("es_es.json")); + forbidden.put("fr_ca.json", words(common + "|Hammer|Siltstone|Phyllite|Tuff|Slate|Scoria")); + forbidden.put("fr_fr.json", forbidden.get("fr_ca.json")); + forbidden.put("pt_br.json", words(common + "|Hammer|Relief|Gabbro|Siltstone|Phyllite|Hornfels|Tuff|Slate|Scoria|Plus")); + forbidden.put("pt_pt.json", forbidden.get("pt_br.json")); + return forbidden; + } + + private static Pattern words(String alternatives) { + return Pattern.compile("\\b(?:" + alternatives + ")\\b", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); + } + + private static List formatArguments(String value) { + List result = new ArrayList(); + Matcher matcher = FORMAT_ARGUMENT.matcher(value); + while (matcher.find()) result.add(matcher.group()); + return result; + } + + private static Map read(File file) throws Exception { + JsonObject object; + try (Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) { + object = new JsonParser().parse(reader).getAsJsonObject(); + } + Map values = new LinkedHashMap(); + for (Map.Entry entry : object.entrySet()) { + assertTrue(file.getName() + " contains a non-string value for " + entry.getKey(), + entry.getValue().isJsonPrimitive() && entry.getValue().getAsJsonPrimitive().isString()); + values.put(entry.getKey(), entry.getValue().getAsString()); + } + return values; + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/NativeRecipeManagerTest.java b/src/test/java/zone/moddev/mc/mineralogy/NativeRecipeManagerTest.java new file mode 100644 index 000000000..1e5ee3067 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/NativeRecipeManagerTest.java @@ -0,0 +1,348 @@ +package zone.moddev.mc.mineralogy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.Reader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; + +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.SharedConstants; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.Bootstrap; +import net.minecraft.tags.TagKey; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.CraftingContainer; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeManager; +import net.minecraft.world.level.block.Blocks; +import net.minecraftforge.common.crafting.CraftingHelper; +import net.minecraftforge.common.crafting.VanillaIngredientSerializer; +import net.minecraftforge.common.crafting.conditions.NotCondition; + +import org.junit.BeforeClass; +import org.junit.Test; + +/** Exercises generated overrides through Forge conditions and Minecraft's recipe deserializers. */ +public class NativeRecipeManagerTest { + private static final File RECIPE_ROOT = new File("src/main/resources/data/minecraft/recipes"); + private static final File MINERALOGY_RECIPE_ROOT = new File( + "src/main/resources/data/mineralogy/recipes"); + @BeforeClass + public static void initializeRegistriesAndConditions() { + SharedConstants.tryDetectVersion(); + Bootstrap.bootStrap(); + CraftingHelper.register(NotCondition.Serializer.INSTANCE); + CraftingHelper.register(new ResourceLocation("minecraft", "item"), + VanillaIngredientSerializer.INSTANCE); + MineralogyConfig.registerRecipeConditions(); + } + + @Test + public void enabledNativeAndLegacyFamilyRepresentativesMatchEveryCoveredVanillaRecipe() + throws Exception { + Map, List>> previous = snapshotItemTags(); + try { + installRecipeTags(); + loadConfig(true); + for (Item rock : ordinaryRockInputs()) { + for (String recipeName : recipeNames()) { + CraftingRecipe recipe = recipe(recipeName); + CraftingContainer inventory = inventory(recipeName, rock); + assertTrue(recipeName + " with " + Registry.ITEM.getKey(rock), + recipe.matches(inventory, null)); + String expectedOutput = recipeName.startsWith("mossy_cobblestone_from_") + ? "minecraft:mossy_cobblestone" : "minecraft:" + recipeName; + assertEquals(recipeName, expectedOutput, + Registry.ITEM.getKey(recipe.getResultItem().getItem()).toString()); + } + } + } finally { + Registry.ITEM.bindTags(previous); + } + } + + @Test + public void disabledEquivalenceRejectsOrdinaryFamiliesButKeepsVanillaChertAndPumice() + throws Exception { + Map, List>> previous = snapshotItemTags(); + try { + installRecipeTags(); + loadConfig(false); + for (String recipeName : recipeNames()) { + CraftingRecipe recipe = recipe(recipeName); + for (Item rock : ordinaryRockInputs()) { + assertFalse(recipeName + " with " + Registry.ITEM.getKey(rock), + recipe.matches(inventory(recipeName, rock), null)); + } + assertTrue(recipeName, recipe.matches(inventory(recipeName, Blocks.COBBLESTONE.asItem()), null)); + // Stand-ins for always-tagged Mineralogy chert and pumice. + assertTrue(recipeName + " with chert stand-in", + recipe.matches(inventory(recipeName, Blocks.NETHERRACK.asItem()), null)); + assertTrue(recipeName + " with pumice stand-in", + recipe.matches(inventory(recipeName, Blocks.END_STONE.asItem()), null)); + } + assertTrue(recipe("furnace").matches(inventory("furnace", Blocks.BLACKSTONE.asItem()), null)); + assertTrue(recipe("brewing_stand").matches( + inventory("brewing_stand", Blocks.BLACKSTONE.asItem()), null)); + assertTrue(recipe("furnace").matches( + inventory("furnace", Blocks.COBBLED_DEEPSLATE.asItem()), null)); + assertTrue(recipe("stone_pickaxe").matches( + inventory("stone_pickaxe", Blocks.COBBLED_DEEPSLATE.asItem()), null)); + } finally { + Registry.ITEM.bindTags(previous); + } + } + + @Test + public void nativeAndMineralogySlabsConvertExactlyOneForOneInBothDirections() + throws Exception { + Object[][] bridges = { + { "andesite_slab", Blocks.ANDESITE_SLAB.asItem() }, + { "andesite_smooth_slab", Blocks.POLISHED_ANDESITE_SLAB.asItem() }, + { "diorite_slab", Blocks.DIORITE_SLAB.asItem() }, + { "diorite_smooth_slab", Blocks.POLISHED_DIORITE_SLAB.asItem() }, + { "granite_slab", Blocks.GRANITE_SLAB.asItem() }, + { "granite_smooth_slab", Blocks.POLISHED_GRANITE_SLAB.asItem() } + }; + for (Object[] bridge : bridges) { + assertSlabConversion((String) bridge[0], (Item) bridge[1]); + } + } + + private static void assertSlabConversion(String prefix, Item vanilla) + throws Exception { + Item standIn = Blocks.COBBLESTONE.asItem(); + CraftingRecipe toVanilla = mineralogyRecipe(prefix + "_to_vanilla", standIn); + assertTrue(prefix, toVanilla.matches(shapeless(new ItemStack(standIn)), null)); + assertFalse(prefix, toVanilla.matches(shapeless(new ItemStack(vanilla)), null)); + assertEquals(prefix, vanilla, toVanilla.getResultItem().getItem()); + assertEquals(prefix, 1, toVanilla.getResultItem().getCount()); + + CraftingRecipe fromVanilla = mineralogyRecipe(prefix + "_from_vanilla", standIn); + assertTrue(prefix, fromVanilla.matches(shapeless(new ItemStack(vanilla)), null)); + assertFalse(prefix, fromVanilla.matches(shapeless(new ItemStack(standIn)), null)); + assertEquals(prefix, standIn, fromVanilla.getResultItem().getItem()); + assertEquals(prefix, 1, fromVanilla.getResultItem().getCount()); + } + + private static void installRecipeTags() { + Map, List>> tags = snapshotItemTags(); + tags.put(tagKey("forge:cobblestone"), holders(Blocks.COBBLESTONE.asItem(), + Blocks.NETHERRACK.asItem(), Blocks.END_STONE.asItem())); + tags.put(tagKey("minecraft:stone_crafting_materials"), + holders(Blocks.COBBLESTONE.asItem(), Blocks.BLACKSTONE.asItem(), + Blocks.COBBLED_DEEPSLATE.asItem(), Blocks.NETHERRACK.asItem(), + Blocks.END_STONE.asItem())); + tags.put(tagKey("minecraft:stone_tool_materials"), holders(Blocks.COBBLESTONE.asItem(), + Blocks.BLACKSTONE.asItem(), Blocks.COBBLED_DEEPSLATE.asItem(), + Blocks.NETHERRACK.asItem(), Blocks.END_STONE.asItem())); + tags.put(tagKey("minecraft:planks"), holders(Blocks.OAK_PLANKS.asItem())); + tags.put(tagKey("mineralogy:cobblestone_equivalents"), + holders(Blocks.COBBLESTONE.asItem(), Blocks.NETHERRACK.asItem(), Blocks.END_STONE.asItem(), + Blocks.BASALT.asItem(), Blocks.TUFF.asItem(), Blocks.ANDESITE.asItem(), + Blocks.DIORITE.asItem(), Blocks.GRANITE.asItem(), Blocks.CALCITE.asItem())); + tags.put(tagKey("mineralogy:stone_crafting_materials"), holders(Blocks.COBBLESTONE.asItem(), + Blocks.BLACKSTONE.asItem(), Blocks.COBBLED_DEEPSLATE.asItem(), + Blocks.NETHERRACK.asItem(), Blocks.END_STONE.asItem(), Blocks.BASALT.asItem(), + Blocks.TUFF.asItem(), Blocks.ANDESITE.asItem(), Blocks.DIORITE.asItem(), + Blocks.GRANITE.asItem(), Blocks.CALCITE.asItem())); + tags.put(tagKey("mineralogy:stone_tool_materials"), holders(Blocks.COBBLESTONE.asItem(), + Blocks.BLACKSTONE.asItem(), Blocks.COBBLED_DEEPSLATE.asItem(), + Blocks.NETHERRACK.asItem(), Blocks.END_STONE.asItem(), Blocks.BASALT.asItem(), + Blocks.TUFF.asItem(), Blocks.ANDESITE.asItem(), Blocks.DIORITE.asItem(), + Blocks.GRANITE.asItem(), Blocks.CALCITE.asItem())); + Registry.ITEM.bindTags(tags); + } + + private static Map, List>> snapshotItemTags() { + Map, List>> result = new IdentityHashMap<>(); + Registry.ITEM.getTags().forEach(pair -> { + List> holders = new ArrayList<>(); + pair.getSecond().forEach(holders::add); + result.put(pair.getFirst(), holders); + }); + return result; + } + + private static List> holders(Item... items) { + List> result = new ArrayList<>(); + for (Item item : items) { + ResourceKey key = Registry.ITEM.getResourceKey(item).get(); + result.add(Registry.ITEM.getHolderOrThrow(key)); + } + return result; + } + + private static TagKey tagKey(String value) { + return TagKey.create(Registry.ITEM_REGISTRY, new ResourceLocation(value)); + } + + private static void loadConfig(boolean enabled) throws Exception { + Path directory = Files.createTempDirectory("mineralogy-recipe-condition"); + Files.write(directory.resolve(MineralogyConfig.FILE_NAME), + ("[options]\nCOBBLESTONE_EQUIVILENT = " + enabled + "\n") + .getBytes(StandardCharsets.UTF_8)); + MineralogyConfig.load(directory); + } + + private static CraftingRecipe recipe(String name) throws Exception { + JsonObject wrapper = json(new File(RECIPE_ROOT, name + ".json")); + JsonObject selected = null; + for (JsonElement element : wrapper.getAsJsonArray("recipes")) { + JsonObject candidate = element.getAsJsonObject(); + if (CraftingHelper.processConditions(candidate.getAsJsonArray("conditions"))) { + selected = candidate.getAsJsonObject("recipe"); + break; + } + } + assertTrue(name + " has no selected conditional branch", selected != null); + Recipe deserialized = RecipeManager.fromJson(new ResourceLocation("minecraft", name), selected); + assertTrue(name, deserialized instanceof CraftingRecipe); + return (CraftingRecipe) deserialized; + } + + private static CraftingRecipe mineralogyRecipe(String name, Item mineralogyStandIn) + throws Exception { + JsonObject data = json(new File(MINERALOGY_RECIPE_ROOT, name + ".json")); + String standInId = Registry.ITEM.getKey(mineralogyStandIn).toString(); + JsonObject ingredient = data.getAsJsonArray("ingredients").get(0).getAsJsonObject(); + if (ingredient.get("item").getAsString().startsWith("mineralogy:")) { + ingredient.addProperty("item", standInId); + } + JsonObject result = data.getAsJsonObject("result"); + if (result.get("item").getAsString().startsWith("mineralogy:")) { + result.addProperty("item", standInId); + } + Recipe deserialized = RecipeManager.fromJson( + new ResourceLocation("mineralogy", name), data); + assertTrue(name, deserialized instanceof CraftingRecipe); + return (CraftingRecipe) deserialized; + } + + private static CraftingContainer inventory(String name, Item rock) { + if ("mossy_cobblestone_from_vine".equals(name)) { + return shapeless(new ItemStack(rock), new ItemStack(Blocks.VINE)); + } + if ("mossy_cobblestone_from_moss_block".equals(name)) { + return shapeless(new ItemStack(rock), new ItemStack(Blocks.MOSS_BLOCK)); + } + if ("andesite".equals(name)) { + return shapeless(new ItemStack(Blocks.DIORITE), new ItemStack(rock)); + } + + String[] pattern; + Map ingredients = new LinkedHashMap(); + ingredients.put('#', rock); + switch (name) { + case "furnace": pattern = new String[] { "###", "# #", "###" }; break; + case "brewing_stand": + pattern = new String[] { " B ", "###" }; + ingredients.put('B', Items.BLAZE_ROD); + break; + case "lever": + pattern = new String[] { "X", "#" }; + ingredients.put('X', Items.STICK); + break; + case "piston": + pattern = new String[] { "TTT", "#X#", "#R#" }; + ingredients.put('T', Blocks.OAK_PLANKS.asItem()); + ingredients.put('X', Items.IRON_INGOT); + ingredients.put('R', Items.REDSTONE); + break; + case "dispenser": + pattern = new String[] { "###", "#X#", "#R#" }; + ingredients.put('X', Items.BOW); + ingredients.put('R', Items.REDSTONE); + break; + case "dropper": + pattern = new String[] { "###", "# #", "#R#" }; + ingredients.put('R', Items.REDSTONE); + break; + case "observer": + pattern = new String[] { "###", "RRQ", "###" }; + ingredients.put('R', Items.REDSTONE); + ingredients.put('Q', Items.QUARTZ); + break; + case "diorite": + pattern = new String[] { "CQ", "QC" }; + ingredients.put('C', rock); + ingredients.put('Q', Items.QUARTZ); + break; + case "stone_axe": pattern = new String[] { "XX", "X#", " #" }; ingredients.put('X', rock); ingredients.put('#', Items.STICK); break; + case "stone_hoe": pattern = new String[] { "XX", " #", " #" }; ingredients.put('X', rock); ingredients.put('#', Items.STICK); break; + case "stone_pickaxe": pattern = new String[] { "XXX", " # ", " # " }; ingredients.put('X', rock); ingredients.put('#', Items.STICK); break; + case "stone_shovel": pattern = new String[] { "X", "#", "#" }; ingredients.put('X', rock); ingredients.put('#', Items.STICK); break; + case "stone_sword": pattern = new String[] { "X", "X", "#" }; ingredients.put('X', rock); ingredients.put('#', Items.STICK); break; + default: throw new IllegalArgumentException(name); + } + return shaped(pattern, ingredients); + } + + private static CraftingContainer shaped(String[] pattern, Map ingredients) { + CraftingContainer inventory = new CraftingContainer(dummyContainer(), 3, 3); + for (int row = 0; row < pattern.length; row++) { + for (int column = 0; column < pattern[row].length(); column++) { + Item item = ingredients.get(pattern[row].charAt(column)); + if (item != null) inventory.setItem(row * 3 + column, new ItemStack(item)); + } + } + return inventory; + } + + private static CraftingContainer shapeless(ItemStack... stacks) { + CraftingContainer inventory = new CraftingContainer(dummyContainer(), 3, 3); + for (int index = 0; index < stacks.length; index++) inventory.setItem(index, stacks[index]); + return inventory; + } + + private static AbstractContainerMenu dummyContainer() { + return new AbstractContainerMenu(null, -1) { + @Override + public boolean stillValid(Player playerIn) { + return false; + } + }; + } + + private static String[] recipeNames() { + return new String[] { "furnace", "brewing_stand", "lever", "piston", "dispenser", + "dropper", "observer", "mossy_cobblestone_from_vine", + "mossy_cobblestone_from_moss_block", "andesite", "diorite", + "stone_axe", "stone_hoe", "stone_pickaxe", "stone_shovel", "stone_sword" }; + } + + private static Item[] ordinaryRockInputs() { + return new Item[] { Blocks.BASALT.asItem(), Blocks.TUFF.asItem(), + Blocks.ANDESITE.asItem(), Blocks.DIORITE.asItem(), Blocks.GRANITE.asItem(), + Blocks.CALCITE.asItem() }; + } + + private static JsonObject json(File file) throws Exception { + try (Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) { + return new JsonParser().parse(reader).getAsJsonObject(); + } + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/OreSpawnProviderTest.java b/src/test/java/zone/moddev/mc/mineralogy/OreSpawnProviderTest.java deleted file mode 100644 index 036714daf..000000000 --- a/src/test/java/zone/moddev/mc/mineralogy/OreSpawnProviderTest.java +++ /dev/null @@ -1,47 +0,0 @@ -package zone.moddev.mc.mineralogy; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertFalse; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.io.Reader; -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; - -import com.google.gson.JsonObject; -import com.google.gson.JsonParser; -import org.junit.jupiter.api.Test; - -class OreSpawnProviderTest { - private static final Path PROVIDER = Paths.get("src", "main", "resources", "data", - "mineralogy", "orespawn", "provider.json"); - - @Test - void packagedProviderIsACompleteSchemaThreeDeclaration() throws Exception { - JsonObject root; - try (Reader reader = Files.newBufferedReader(PROVIDER, StandardCharsets.UTF_8)) { - root = JsonParser.parseReader(reader).getAsJsonObject(); - } - - assertEquals(3, root.get("schema_version").getAsInt()); - assertEquals("mineralogy", root.get("provider_modid").getAsString()); - assertEquals(3, root.get("provider_revision").getAsInt()); - assertEquals(32, root.getAsJsonObject("rocks").size()); - assertEquals(3, root.getAsJsonObject("ores").size()); - assertFalse(root.getAsJsonObject("ores").has("mineralogy:ore/minecraft/coal_ore")); - assertTrue(root.getAsJsonObject("profile_defaults").get("place_fluid_deposits").getAsBoolean()); - assertEquals(1, root.getAsJsonObject("fluid_deposits").size()); - JsonObject oil = root.getAsJsonObject("fluid_deposits") - .getAsJsonObject("mineralogy:fluid_deposit/crude_oil"); - assertEquals("mineralogy:crude_oil", oil.get("block").getAsString()); - JsonObject overworld = oil.getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); - assertEquals("sedimentary", overworld.getAsJsonArray("host_families").get(0).getAsString()); - assertEquals("OCEAN", overworld.getAsJsonArray("biome_dictionary").get(0).getAsString()); - assertEquals(2, overworld.get("min_solid_cover").getAsInt()); - assertEquals("minecraft:basalt", root.getAsJsonObject("profile_defaults") - .getAsJsonObject("worldgen_aliases").get("mineralogy:basalt").getAsString()); - assertFalse(root.getAsJsonObject("rocks").has("mineralogy:basalt")); - } -} diff --git a/src/test/java/zone/moddev/mc/mineralogy/ResourceContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/ResourceContractTest.java new file mode 100644 index 000000000..fc19bcc82 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/ResourceContractTest.java @@ -0,0 +1,766 @@ +package zone.moddev.mc.mineralogy; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import org.junit.Test; + +import java.io.File; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.junit.Assert.*; + +public class ResourceContractTest { + private static final File ROOT = new File("src/main/resources"); + + @Test + public void providerUsesOreSpawnFourAndOwnsNoVanillaGeneration() throws Exception { + JsonObject provider = json(new File(ROOT, "data/mineralogy/orespawn/provider.json")); + assertEquals(4, provider.get("schema_version").getAsInt()); + assertEquals(3, provider.get("provider_revision").getAsInt()); + assertEquals("mineralogy", provider.get("provider_modid").getAsString()); + assertEquals(32, provider.getAsJsonObject("rocks").size()); + assertEquals(3, provider.getAsJsonObject("ores").size()); + assertEquals(1, provider.getAsJsonObject("fluid_deposits").size()); + assertFalse(provider.getAsJsonObject("profile_defaults").get("manage_vanilla_ores").getAsBoolean()); + JsonObject dimensions = provider.getAsJsonObject("profile_defaults").getAsJsonObject("terrain_dimensions"); + assertEquals(1, dimensions.size()); + assertTrue(dimensions.has("minecraft:overworld")); + String text = new String(Files.readAllBytes(new File(ROOT, + "data/mineralogy/orespawn/provider.json").toPath()), StandardCharsets.UTF_8); + assertTrue(text.contains("\"minecraft:andesite\"")); + assertTrue(text.contains("\"minecraft:diorite\"")); + assertTrue(text.contains("\"minecraft:granite\"")); + JsonObject defaults = provider.getAsJsonObject("profile_defaults"); + assertEquals("minecraft:basalt", defaults.getAsJsonObject("worldgen_aliases") + .get("mineralogy:basalt").getAsString()); + assertEquals("minecraft:basalt", provider.getAsJsonObject("rocks") + .getAsJsonObject("mineralogy:rock/minecraft/basalt").get("block").getAsString()); + assertEquals("minecraft:tuff", provider.getAsJsonObject("rocks") + .getAsJsonObject("mineralogy:rock/minecraft/tuff").get("block").getAsString()); + assertFalse(text.contains("metadata")); + assertTrue(text.contains("minecraft:deepslate")); + assertTrue(text.contains("minecraft:stone_ore_replaceables")); + assertTrue(text.contains("minecraft:deepslate_ore_replaceables")); + for (Map.Entry entry : provider.getAsJsonObject("rocks").entrySet()) { + JsonObject rock = entry.getValue().getAsJsonObject(); + assertEquals(entry.getKey(), -64, rock.get("min_y").getAsInt()); + assertEquals(entry.getKey(), 319, rock.get("max_y").getAsInt()); + } + JsonObject oil = provider.getAsJsonObject("fluid_deposits") + .getAsJsonObject("mineralogy:fluid_deposit/crude_oil") + .getAsJsonObject("dimensions").getAsJsonObject("minecraft:overworld"); + assertEquals(-48, oil.get("min_y").getAsInt()); + assertEquals(48, oil.get("max_y").getAsInt()); + } + + @Test + public void everyRecipeHasAProgressiveAdvancement() throws Exception { + File recipeDir = new File(ROOT, "data/mineralogy/recipes"); + File advancementDir = new File(ROOT, "data/mineralogy/advancements/recipes"); + File[] recipes = recipeDir.listFiles((dir, name) -> name.endsWith(".json")); + File[] advancements = advancementDir.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(recipes); + assertNotNull(advancements); + assertEquals(1427, recipes.length); + assertEquals(1427, advancements.length); + + Set advancementNames = new HashSet(); + for (File file : advancements) advancementNames.add(file.getName()); + for (File recipeFile : recipes) { + JsonObject recipe = json(recipeFile); + assertFalse(recipeFile.getName(), recipe.get("type").getAsString().startsWith("forge:ore_")); + assertTrue(recipeFile.getName(), advancementNames.contains(recipeFile.getName())); + JsonObject advancement = json(new File(advancementDir, recipeFile.getName())); + assertEquals("mineralogy:" + stripJson(recipeFile.getName()), + advancement.getAsJsonObject("rewards").getAsJsonArray("recipes").get(0).getAsString()); + assertTrue(advancement.getAsJsonObject("criteria").has("has_the_recipe")); + assertTrue(advancement.getAsJsonObject("criteria").has("has_rock")); + if (recipe.has("conditions")) { + assertTrue(recipeFile.getName(), recipe.get("conditions").isJsonArray()); + assertTrue(recipeFile.getName(), advancement.has("conditions")); + assertEquals(recipeFile.getName(), recipe.get("conditions"), advancement.get("conditions")); + } else { + assertFalse(recipeFile.getName(), advancement.has("conditions")); + } + } + + JsonObject smooth = json(new File(advancementDir, "basalt_smooth.json")); + assertEquals("mineralogy:basalt", criterionItem(smooth, "has_rock")); + assertTrue(smooth.getAsJsonObject("criteria").has("has_sand")); + assertAdvancementIngredient("basalt_smooth_stairs", "tag", + "mineralogy:stones/basalt/smooth"); + assertAdvancementIngredient("basalt_relief_blank", "tag", + "mineralogy:stones/basalt/smooth"); + JsonObject marked = json(new File(advancementDir, "basalt_relief_pickaxe.json")); + assertEquals("mineralogy:basalt_relief_blank", criterionItem(marked, "has_rock")); + JsonObject right = json(new File(advancementDir, "basalt_relief_right.json")); + assertEquals("mineralogy:basalt_relief_left", criterionItem(right, "has_rock")); + } + + @Test + public void advancementsUseMinecraft117ItemPredicateSchema() throws Exception { + File mineralogy = new File(ROOT, "data/mineralogy/advancements"); + for (File file : jsonFiles(mineralogy)) { + JsonObject advancement = json(file); + if (advancement.has("criteria")) { + assertInventoryPredicates(file.getPath(), advancement); + } + } + + File minecraft = new File(ROOT, "data/minecraft/advancements/recipes"); + for (File file : jsonFiles(minecraft)) { + JsonObject wrapper = json(file); + if (wrapper.has("advancements")) { + for (JsonElement branch : wrapper.getAsJsonArray("advancements")) { + assertInventoryPredicates(file.getPath(), branch.getAsJsonObject() + .getAsJsonObject("advancement")); + } + } else { + assertInventoryPredicates(file.getPath(), wrapper); + } + } + } + + @Test + public void rockFurnacesUnlockFromTheirMatchingSlabs() throws Exception { + File advancementDir = new File(ROOT, "data/mineralogy/advancements/recipes"); + File[] furnaces = advancementDir.listFiles((dir, name) -> name.endsWith("_furnace.json")); + assertNotNull(furnaces); + assertEquals(108, furnaces.length); + + for (File file : furnaces) { + JsonObject advancement = json(file); + JsonObject criteria = advancement.getAsJsonObject("criteria"); + assertTrue(file.getName(), criteria.has("has_rock")); + assertFalse(file.getName(), criteria.has("has_furnace")); + String expectedSlabTag = expectedSlabTag(stripJson(file.getName())); + assertAdvancementIngredient(stripJson(file.getName()), "tag", expectedSlabTag); + + JsonArray requirements = advancement.getAsJsonArray("requirements"); + assertEquals(file.getName(), 1, requirements.size()); + JsonArray unlockAlternatives = requirements.get(0).getAsJsonArray(); + assertEquals(file.getName(), 2, unlockAlternatives.size()); + assertEquals(file.getName(), "has_the_recipe", unlockAlternatives.get(0).getAsString()); + assertEquals(file.getName(), "has_rock", unlockAlternatives.get(1).getAsString()); + } + } + + @Test + public void nativeRockAliasesDriveRecipesAndAdvancementsWithoutStealingVanillaForms() throws Exception { + File tags = new File(ROOT, "data/mineralogy/tags/items"); + for (String family : Arrays.asList("andesite", "diorite", "granite")) { + assertTagValues(new File(tags, "stones/" + family + ".json"), + "mineralogy:" + family, "minecraft:" + family); + assertTagValues(new File(tags, "stones/" + family + "/smooth.json"), + "mineralogy:" + family + "_smooth", "minecraft:polished_" + family); + } + assertTagValues(new File(tags, "stones/basalt.json"), + "mineralogy:basalt", "minecraft:basalt"); + assertTagValues(new File(tags, "stones/basalt/smooth.json"), + "mineralogy:basalt_smooth", "minecraft:polished_basalt", "minecraft:smooth_basalt"); + assertTagValues(new File(tags, "stones/tuff.json"), + "mineralogy:tuff", "minecraft:tuff"); + assertTagValues(new File(tags, "stones/tuff/smooth.json"), + "mineralogy:tuff_smooth"); + for (String family : Arrays.asList("andesite", "diorite", "granite")) { + assertTagValues(new File(tags, "slabs/" + family + ".json"), + "mineralogy:" + family + "_slab", "minecraft:" + family + "_slab"); + assertTagValues(new File(tags, "slabs/" + family + "/smooth.json"), + "mineralogy:" + family + "_smooth_slab", + "minecraft:polished_" + family + "_slab"); + } + assertTagValues(new File(tags, "slabs/basalt.json"), "mineralogy:basalt_slab"); + assertTagValues(new File(tags, "slabs/basalt/smooth.json"), + "mineralogy:basalt_smooth_slab"); + + assertRecipeIngredient("basalt_slab", "tag", "mineralogy:stones/basalt"); + assertRecipeIngredient("basalt_stairs", "tag", "mineralogy:stones/basalt"); + assertRecipeIngredient("basalt_wall", "tag", "mineralogy:stones/basalt"); + assertRecipeIngredient("basalt_smooth_slab", "tag", "mineralogy:stones/basalt/smooth"); + assertRecipeIngredient("basalt_smooth_stairs", "tag", "mineralogy:stones/basalt/smooth"); + assertRecipeIngredient("basalt_smooth_wall", "tag", "mineralogy:stones/basalt/smooth"); + assertRecipeIngredient("tuff_slab", "tag", "mineralogy:stones/tuff"); + assertRecipeIngredient("tuff_stairs", "tag", "mineralogy:stones/tuff"); + assertRecipeIngredient("tuff_wall", "tag", "mineralogy:stones/tuff"); + assertRecipeIngredient("tuff_smooth", "tag", "mineralogy:stones/tuff"); + + for (String family : Arrays.asList("andesite", "diorite", "granite")) { + assertRecipeIngredient(family + "_slab", "item", "mineralogy:" + family); + assertRecipeIngredient(family + "_stairs", "item", "mineralogy:" + family); + assertRecipeIngredient(family + "_wall", "item", "mineralogy:" + family); + assertRecipeIngredient(family + "_smooth_slab", "item", + "mineralogy:" + family + "_smooth"); + assertRecipeIngredient(family + "_smooth_stairs", "item", + "mineralogy:" + family + "_smooth"); + assertRecipeIngredient(family + "_smooth_wall", "tag", + "mineralogy:stones/" + family + "/smooth"); + } + for (String family : Arrays.asList("andesite", "basalt", "diorite", "granite")) { + assertRecipeIngredient(family + "_brick", "tag", "mineralogy:stones/" + family); + assertAdvancementIngredient(family + "_brick", "tag", "mineralogy:stones/" + family); + assertRecipeIngredient(family + "_smooth", "item", "mineralogy:" + family); + assertAdvancementIngredient(family + "_smooth", "item", "mineralogy:" + family); + assertAdvancementIngredient(family + "_relief_blank", "tag", + "mineralogy:stones/" + family + "/smooth"); + + JsonObject vanillaPolished = json(new File(ROOT, + "data/minecraft/recipes/polished_" + family + ".json")); + assertEquals("minecraft:crafting_shapeless", + vanillaPolished.get("type").getAsString()); + assertEquals("minecraft:" + family, vanillaPolished.getAsJsonArray("ingredients") + .get(0).getAsJsonObject().get("item").getAsString()); + assertEquals("minecraft:sand", vanillaPolished.getAsJsonArray("ingredients") + .get(1).getAsJsonObject().get("item").getAsString()); + assertEquals("minecraft:polished_" + family, vanillaPolished + .getAsJsonObject("result").get("item").getAsString()); + assertEquals(1, vanillaPolished.getAsJsonObject("result").get("count").getAsInt()); + + JsonObject nativeAdvancement = json(new File(ROOT, + "data/minecraft/advancements/recipes/building_blocks/polished_" + + family + ".json")); + assertEquals("minecraft:" + family, nativeAdvancement.getAsJsonObject("criteria") + .getAsJsonObject("has_rock").getAsJsonObject("conditions") + .getAsJsonArray("items").get(0).getAsJsonObject() + .getAsJsonArray("items").get(0).getAsString()); + assertEquals("minecraft:sand", nativeAdvancement.getAsJsonObject("criteria") + .getAsJsonObject("has_sand").getAsJsonObject("conditions") + .getAsJsonArray("items").get(0).getAsJsonObject() + .getAsJsonArray("items").get(0).getAsString()); + assertEquals(2, nativeAdvancement.getAsJsonArray("requirements").size()); + } + + assertAdvancementIngredient("basalt_slab", "tag", "mineralogy:stones/basalt"); + assertAdvancementIngredient("andesite_slab", "item", "mineralogy:andesite"); + assertAdvancementIngredient("andesite_furnace", "tag", "mineralogy:slabs/andesite"); + + String allResources = new String(Files.readAllBytes( + new File(tags, "slabs/basalt.json").toPath()), StandardCharsets.UTF_8) + + new String(Files.readAllBytes( + new File(tags, "slabs/basalt/smooth.json").toPath()), StandardCharsets.UTF_8); + assertFalse(allResources.contains("minecraft:basalt_slab")); + assertFalse(allResources.contains("minecraft:polished_basalt_slab")); + } + + @Test + public void acceptedRecipeDetailsArePresent() throws Exception { + File recipes = new File(ROOT, "data/mineralogy/recipes"); + assertEquals(4, json(new File(recipes, "gypsum_dust.json")) + .getAsJsonObject("result").get("count").getAsInt()); + assertEquals(2, json(new File(recipes, "gypsum.json")).getAsJsonArray("pattern").size()); + assertEquals("minecraft:charcoal", json(new File(recipes, "gunpowder_from_charcoal.json")) + .getAsJsonArray("ingredients").get(0).getAsJsonObject().get("item").getAsString()); + assertFalse(new File(recipes, "gunpowder_from_coal.json").exists()); + assertGunpowderRecipe(recipes, "gunpowder_from_sugar", null); + assertGunpowderRecipe(recipes, "gunpowder_from_charcoal", null); + assertGunpowderRecipe(recipes, "gunpowder_from_carbon_dust", "forge:dusts/carbon"); + assertGunpowderRecipe(recipes, "gunpowder_from_coal_dust", "forge:dusts/coal"); + assertEquals("mineralogy:stones/basalt", json(new File(recipes, "basalt_slab.json")) + .getAsJsonObject("key").getAsJsonObject("x").get("tag").getAsString()); + assertEquals("mineralogy:basalt", json(new File(recipes, "basalt_raw_slab_recombination.json")) + .getAsJsonObject("result").get("item").getAsString()); + assertEquals("forge:sand", json(new File(recipes, "basalt_brick_block_polishing.json")) + .getAsJsonArray("ingredients").get(1).getAsJsonObject().get("tag").getAsString()); + JsonObject furnace = json(new File(recipes, "basalt_furnace.json")); + assertEquals("mineralogy:slabs/basalt", furnace.getAsJsonObject("key") + .getAsJsonObject("x").get("tag").getAsString()); + assertEquals("minecraft:furnace", furnace.getAsJsonObject("key") + .getAsJsonObject("y").get("item").getAsString()); + assertFalse(new File(recipes, "basalt_furnace_from_rock.json").exists()); + JsonObject furnaceOverride = json(new File(ROOT, "data/minecraft/recipes/furnace.json")); + JsonObject vanillaFurnace = conditionalRecipe(furnaceOverride, 0); + assertEquals("mineralogy:stone_crafting_materials", vanillaFurnace.getAsJsonObject("key") + .getAsJsonObject("#").get("tag").getAsString()); + assertEquals("minecraft:stone_crafting_materials", conditionalRecipe(furnaceOverride, 1) + .getAsJsonObject("key").getAsJsonObject("#").get("tag").getAsString()); + assertEquals("COBBLESTONE_EQUIVILENT", furnaceOverride.getAsJsonArray("recipes").get(0) + .getAsJsonObject().getAsJsonArray("conditions").get(0).getAsJsonObject() + .get("flag").getAsString()); + assertTrue(new File(ROOT, "data/minecraft/recipes/stone_pickaxe.json").isFile()); + assertEquals("#forge:cobblestone", json(new File(ROOT, + "data/minecraft/tags/items/stone_crafting_materials.json")) + .getAsJsonArray("values").get(0).getAsString()); + assertEquals("#forge:cobblestone", json(new File(ROOT, + "data/minecraft/tags/items/stone_tool_materials.json")) + .getAsJsonArray("values").get(0).getAsString()); + assertTagValues(new File(ROOT, "data/forge/tags/items/cobblestone.json"), + "mineralogy:chert", "mineralogy:pumice"); + assertTagValues(new File(ROOT, "data/forge/tags/blocks/cobblestone.json"), + "mineralogy:chert", "mineralogy:pumice"); + assertFalse(new File(ROOT, "data/mineralogy/tags/items/vanilla_furnace_materials.json").exists()); + for (String moss : Arrays.asList("mossy_cobblestone_from_vine", + "mossy_cobblestone_from_moss_block")) { + JsonObject wrapper = json(new File(ROOT, "data/minecraft/recipes/" + moss + ".json")); + assertEquals(moss, "mossy_cobblestone", conditionalRecipe(wrapper, 0) + .get("group").getAsString()); + assertEquals(moss, "mossy_cobblestone", conditionalRecipe(wrapper, 1) + .get("group").getAsString()); + } + assertEquals("minecraft:red_dye", json(new File(recipes, "drywall_red.json")) + .getAsJsonArray("ingredients").get(1).getAsJsonObject().get("item").getAsString()); + assertEquals("minecraft:green_dye", json(new File(recipes, "drywall_green.json")) + .getAsJsonArray("ingredients").get(1).getAsJsonObject().get("item").getAsString()); + assertEquals("minecraft:yellow_dye", json(new File(recipes, "drywall_yellow.json")) + .getAsJsonArray("ingredients").get(1).getAsJsonObject().get("item").getAsString()); + } + + @Test + public void allSeventeenLocalesHaveOrdered938KeyParity() throws Exception { + File directory = new File(ROOT, "assets/mineralogy/lang"); + Set expectedFiles = new HashSet(Arrays.asList( + "de_au.json", "de_de.json", "en_ca.json", "en_en.json", "en_gb.json", + "en_pt.json", "en_us.json", "es_es.json", "es_mx.json", "fr_ca.json", + "fr_fr.json", "ja_jp.json", "ko_kr.json", "pt_br.json", "pt_pt.json", + "ru_ru.json", "zh_cn.json")); + File[] files = directory.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(files); + Set actual = new HashSet(); + for (File file : files) actual.add(file.getName()); + assertEquals(expectedFiles, actual); + + List keys = keys(json(new File(directory, "en_us.json"))); + assertEquals(938, keys.size()); + for (File file : files) { + byte[] bytes = Files.readAllBytes(file.toPath()); + assertFalse(file.getName(), bytes.length >= 3 && bytes[0] == (byte) 0xef + && bytes[1] == (byte) 0xbb && bytes[2] == (byte) 0xbf); + String text = new String(bytes, StandardCharsets.UTF_8); + assertFalse(file.getName(), text.contains("\ufffd")); + assertTrue(file.getName(), text.endsWith("\n")); + assertEquals(file.getName(), keys, keys(json(file))); + } + assertPair(directory, "de_au.json", "de_de.json"); + assertPair(directory, "es_es.json", "es_mx.json"); + assertPair(directory, "fr_ca.json", "fr_fr.json"); + assertPair(directory, "pt_br.json", "pt_pt.json"); + JsonObject japanese = json(new File(directory, "ja_jp.json")); + assertEquals("原油入りバケツ", japanese.get("item.mineralogy.crude_oil_bucket").getAsString()); + JsonObject russian = json(new File(directory, "ru_ru.json")); + assertEquals("Ведро сырой нефти", russian.get("item.mineralogy.crude_oil_bucket").getAsString()); + } + + @Test + public void forge40ResourcesRetainNativeWallsTagsAndPackFormat() throws Exception { + JsonObject pack = json(new File(ROOT, "pack.mcmeta")); + assertEquals(9, pack.getAsJsonObject("pack").get("pack_format").getAsInt()); + + File blockstates = new File(ROOT, "assets/mineralogy/blockstates"); + File[] wallStates = blockstates.listFiles((dir, name) -> name.endsWith("_wall.json")); + assertNotNull(wallStates); + assertEquals(108, wallStates.length); + for (File state : wallStates) { + assertTrue(state.getName(), new String(Files.readAllBytes(state.toPath()), StandardCharsets.UTF_8) + .contains("_wall_side_tall")); + } + File models = new File(ROOT, "assets/mineralogy/models/block"); + File[] tallSides = models.listFiles((dir, name) -> name.endsWith("_wall_side_tall.json")); + assertNotNull(tallSides); + assertEquals(108, tallSides.length); + + assertTrue(new File(ROOT, "data/minecraft/tags/blocks/walls.json").isFile()); + assertTrue(new File(ROOT, "data/minecraft/tags/items/walls.json").isFile()); + File minecraftRecipes = new File(ROOT, "data/minecraft/recipes"); + File[] overrides = minecraftRecipes.listFiles((dir, name) -> name.endsWith(".json")); + assertNotNull(overrides); + assertEquals(35, overrides.length); + Set overrideNames = new HashSet(); + for (File override : overrides) overrideNames.add(override.getName()); + Set expected = new HashSet(Arrays.asList( + "furnace.json", "brewing_stand.json", "lever.json", "piston.json", + "dispenser.json", "dropper.json", "observer.json", + "mossy_cobblestone_from_vine.json", "mossy_cobblestone_from_moss_block.json", + "andesite.json", "diorite.json", "stone_axe.json", "stone_hoe.json", + "stone_pickaxe.json", "stone_shovel.json", "stone_sword.json", + "polished_andesite.json", "polished_basalt.json", + "polished_diorite.json", "polished_granite.json")); + for (String family : Arrays.asList("andesite", "diorite", "granite")) { + expected.add(family + "_slab.json"); + expected.add("polished_" + family + "_slab.json"); + expected.add(family + "_slab_from_" + family + "_stonecutting.json"); + expected.add("polished_" + family + "_slab_from_" + family + "_stonecutting.json"); + expected.add("polished_" + family + "_slab_from_polished_" + family + + "_stonecutting.json"); + } + assertEquals(expected, overrideNames); + File[] stonecutting = new File(ROOT, "data/mineralogy/recipes") + .listFiles((dir, name) -> name.contains("stonecutting")); + assertNotNull(stonecutting); + assertEquals(0, stonecutting.length); + } + + @Test + public void nativeSlabsAndCobblestoneOverridesUseStableConditionalTags() throws Exception { + for (String family : Arrays.asList("andesite", "diorite", "granite")) { + assertNativeSlabOverride(family + "_slab", "minecraft:" + family, + "mineralogy:" + family + "_slab", "minecraft:" + family + "_slab", 6); + assertNativeSlabOverride("polished_" + family + "_slab", + "minecraft:polished_" + family, "mineralogy:" + family + "_smooth_slab", + "minecraft:polished_" + family + "_slab", 6); + assertNativeStonecuttingOverride(family + "_slab_from_" + family + "_stonecutting", + "minecraft:" + family, "mineralogy:" + family + "_slab", + "minecraft:" + family + "_slab"); + assertNativeStonecuttingOverride("polished_" + family + "_slab_from_" + family + + "_stonecutting", "minecraft:" + family, + "mineralogy:" + family + "_smooth_slab", + "minecraft:polished_" + family + "_slab"); + assertNativeStonecuttingOverride("polished_" + family + "_slab_from_polished_" + + family + "_stonecutting", "minecraft:polished_" + family, + "mineralogy:" + family + "_smooth_slab", + "minecraft:polished_" + family + "_slab"); + assertNativeSlabConversion(family + "_slab_to_vanilla", + "mineralogy:" + family + "_slab", "minecraft:" + family + "_slab"); + assertNativeSlabConversion(family + "_slab_from_vanilla", + "minecraft:" + family + "_slab", "mineralogy:" + family + "_slab"); + assertNativeSlabConversion(family + "_smooth_slab_to_vanilla", + "mineralogy:" + family + "_smooth_slab", + "minecraft:polished_" + family + "_slab"); + assertNativeSlabConversion(family + "_smooth_slab_from_vanilla", + "minecraft:polished_" + family + "_slab", + "mineralogy:" + family + "_smooth_slab"); + } + + assertCompositeRockTag("cobblestone_equivalents", "#forge:cobblestone"); + assertCompositeRockTag("stone_crafting_materials", "#minecraft:stone_crafting_materials"); + assertCompositeRockTag("stone_tool_materials", "#minecraft:stone_tool_materials"); + for (String family : rockFamilies()) { + File blockTag = new File(ROOT, "data/mineralogy/tags/blocks/stones/" + family + ".json"); + assertTrue(family, blockTag.isFile()); + assertTrue(family, json(blockTag).getAsJsonArray("values").toString() + .contains("mineralogy:" + family)); + } + assertTagValues(new File(ROOT, "data/mineralogy/tags/blocks/stones/basalt.json"), + "mineralogy:basalt", "minecraft:basalt"); + + File advancementRoot = new File(ROOT, "data/minecraft/advancements/recipes"); + assertEquals(20, countJsonFiles(advancementRoot)); + JsonObject furnace = json(new File(advancementRoot, "decorations/furnace.json")); + assertEquals("mineralogy:stone_crafting_materials", conditionalAdvancement(furnace, 0) + .getAsJsonObject("criteria").getAsJsonObject("has_cobblestone") + .getAsJsonObject("conditions").getAsJsonArray("items").get(0) + .getAsJsonObject().get("tag").getAsString()); + assertEquals("minecraft:stone_crafting_materials", conditionalAdvancement(furnace, 1) + .getAsJsonObject("criteria").getAsJsonObject("has_cobblestone") + .getAsJsonObject("conditions").getAsJsonArray("items").get(0) + .getAsJsonObject().get("tag").getAsString()); + + Object[][] advancementContracts = { + { "decorations/furnace", "has_cobblestone", "tag", + "mineralogy:stone_crafting_materials", "minecraft:stone_crafting_materials" }, + { "brewing/brewing_stand", "has_blaze_rod", "item", + "minecraft:blaze_rod", "minecraft:blaze_rod" }, + { "redstone/lever", "has_cobblestone", "tag", + "mineralogy:cobblestone_equivalents", "forge:cobblestone" }, + { "redstone/piston", "has_redstone", "item", "minecraft:redstone", "minecraft:redstone" }, + { "redstone/dispenser", "has_bow", "item", "minecraft:bow", "minecraft:bow" }, + { "redstone/dropper", "has_redstone", "item", "minecraft:redstone", "minecraft:redstone" }, + { "redstone/observer", "has_quartz", "item", "minecraft:quartz", "minecraft:quartz" }, + { "building_blocks/mossy_cobblestone_from_vine", "has_vine", "item", "minecraft:vine", "minecraft:vine" }, + { "building_blocks/mossy_cobblestone_from_moss_block", "has_moss_block", "item", "minecraft:moss_block", "minecraft:moss_block" }, + { "building_blocks/andesite", "has_stone", "item", "minecraft:diorite", "minecraft:diorite" }, + { "building_blocks/diorite", "has_quartz", "item", "minecraft:quartz", "minecraft:quartz" }, + { "tools/stone_axe", "has_cobblestone", "tag", "mineralogy:stone_tool_materials", "minecraft:stone_tool_materials" }, + { "tools/stone_hoe", "has_cobblestone", "tag", "mineralogy:stone_tool_materials", "minecraft:stone_tool_materials" }, + { "tools/stone_pickaxe", "has_cobblestone", "tag", "mineralogy:stone_tool_materials", "minecraft:stone_tool_materials" }, + { "tools/stone_shovel", "has_cobblestone", "tag", "mineralogy:stone_tool_materials", "minecraft:stone_tool_materials" }, + { "combat/stone_sword", "has_cobblestone", "tag", "mineralogy:stone_tool_materials", "minecraft:stone_tool_materials" } + }; + for (Object[] contract : advancementContracts) { + assertConditionalAdvancement(new File(advancementRoot, contract[0] + ".json"), + (String) contract[1], (String) contract[2], (String) contract[3], + (String) contract[4]); + } + } + + @Test + public void oilAndBuildMetadataUseStableTargetIdentities() throws Exception { + String properties = new String(Files.readAllBytes(new File("gradle.properties").toPath()), StandardCharsets.UTF_8); + assertTrue(properties.contains("mod_version=6.1.0.118021")); + assertTrue(properties.contains("orespawn_curse_file_id=8750114")); + String build = new String(Files.readAllBytes(new File("build.gradle").toPath()), StandardCharsets.UTF_8); + assertTrue(build.contains("runtimeOnly renamer.dependency(\"curse.maven:mmd-orespawn-")); + assertTrue(build.contains("orespawnRelease")); + String metadata = new String(Files.readAllBytes(new File(ROOT, "META-INF/mods.toml").toPath()), StandardCharsets.UTF_8); + assertTrue(metadata.contains("loaderVersion=\"[40,)\"")); + assertTrue(metadata.contains("versionRange=\"[40.3.0,41)\"")); + assertTrue(metadata.contains("versionRange=\"[4.0.6,5.0.0)\"")); + assertTrue(metadata.contains("ordering=\"AFTER\"")); + assertTrue(new File(ROOT, "assets/mineralogy/textures/items/crude_oil_bucket.png").isFile()); + assertTrue(new File(ROOT, "assets/mineralogy/textures/blocks/crude_oil_still.png").isFile()); + String fluidSource = new String(Files.readAllBytes(new File( + "src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java").toPath()), StandardCharsets.UTF_8); + assertTrue(fluidSource.contains("\"flowing_crude_oil\"")); + assertTrue(fluidSource.contains("\"crude_oil_bucket\"")); + assertFalse(fluidSource.contains("new ResourceLocation(\"crude_oil\")")); + } + + @Test + public void internalWorldgenAndRetiredPackagesAreAbsent() throws Exception { + assertFalse(containsJava(new File("src/main/java/com/mcmoddev/mineralogy"))); + assertFalse(containsJava(new File("src/main/java/zone/moddev/mc/mineralogy/worldgen"))); + String main = new String(Files.readAllBytes(new File( + "src/main/java/zone/moddev/mc/mineralogy/Mineralogy.java").toPath()), StandardCharsets.UTF_8); + assertFalse(main.contains("registerWorldGenerator")); + assertFalse(main.contains("StoneReplacer")); + assertFalse(main.contains("OreSpawner")); + } + + private static String criterionItem(JsonObject advancement, String criterion) { + return advancement.getAsJsonObject("criteria").getAsJsonObject(criterion) + .getAsJsonObject("conditions").getAsJsonArray("items").get(0) + .getAsJsonObject().getAsJsonArray("items").get(0).getAsString(); + } + + private static void assertInventoryPredicates(String source, JsonObject advancement) { + for (Map.Entry entry : advancement.getAsJsonObject("criteria").entrySet()) { + JsonObject criterion = entry.getValue().getAsJsonObject(); + if (!"minecraft:inventory_changed".equals(criterion.get("trigger").getAsString())) { + continue; + } + JsonArray predicates = criterion.getAsJsonObject("conditions").getAsJsonArray("items"); + assertNotNull(source + " " + entry.getKey(), predicates); + for (JsonElement element : predicates) { + JsonObject predicate = element.getAsJsonObject(); + assertFalse(source + " " + entry.getKey() + " uses the pre-1.17 singular item key", + predicate.has("item")); + assertTrue(source + " " + entry.getKey(), predicate.has("tag") + || (predicate.has("items") && predicate.getAsJsonArray("items").size() > 0)); + } + } + } + + private static String expectedSlabTag(String furnaceRecipe) { + String stem = furnaceRecipe.replaceFirst("_furnace$", ""); + for (String finish : Arrays.asList("smooth_brick", "smooth", "brick")) { + String suffix = "_" + finish; + if (stem.endsWith(suffix)) { + return "mineralogy:slabs/" + stem.substring(0, stem.length() - suffix.length()) + + "/" + finish; + } + } + return "mineralogy:slabs/" + stem; + } + + private static void assertTagValues(File file, String... expected) throws Exception { + JsonArray values = json(file).getAsJsonArray("values"); + assertEquals(file.getPath(), expected.length, values.size()); + for (int index = 0; index < expected.length; index++) { + assertEquals(file.getPath(), expected[index], values.get(index).getAsString()); + } + } + + private static void assertRecipeIngredient(String recipeName, String key, String value) + throws Exception { + JsonObject recipe = json(new File(ROOT, + "data/mineralogy/recipes/" + recipeName + ".json")); + JsonObject ingredient = recipe.has("key") + ? recipe.getAsJsonObject("key").getAsJsonObject("x") + : recipe.getAsJsonArray("ingredients").get(0).getAsJsonObject(); + assertEquals(recipeName, value, ingredient.get(key).getAsString()); + assertEquals(recipeName, 1, ingredient.size()); + } + + private static void assertAdvancementIngredient(String recipeName, String key, String value) + throws Exception { + JsonObject advancement = json(new File(ROOT, + "data/mineralogy/advancements/recipes/" + recipeName + ".json")); + JsonObject ingredient = advancement.getAsJsonObject("criteria") + .getAsJsonObject("has_rock").getAsJsonObject("conditions") + .getAsJsonArray("items").get(0).getAsJsonObject(); + if ("item".equals(key)) { + assertEquals(recipeName, value, ingredient.getAsJsonArray("items").get(0).getAsString()); + } else { + assertEquals(recipeName, value, ingredient.get(key).getAsString()); + } + assertEquals(recipeName, 1, ingredient.size()); + } + + private static void assertNativeSlabOverride(String recipeName, String source, + String mineralogyResult, String vanillaResult, int count) throws Exception { + JsonObject wrapper = json(new File(ROOT, "data/minecraft/recipes/" + recipeName + ".json")); + assertEquals(recipeName, "forge:conditional", wrapper.get("type").getAsString()); + JsonObject enabled = conditionalRecipe(wrapper, 0); + JsonObject fallback = conditionalRecipe(wrapper, 1); + assertEquals(recipeName, source, enabled.getAsJsonObject("key") + .getAsJsonObject("#").get("item").getAsString()); + assertEquals(recipeName, mineralogyResult, + enabled.getAsJsonObject("result").get("item").getAsString()); + assertEquals(recipeName, vanillaResult, + fallback.getAsJsonObject("result").get("item").getAsString()); + assertEquals(recipeName, count, + enabled.getAsJsonObject("result").get("count").getAsInt()); + } + + private static void assertNativeStonecuttingOverride(String recipeName, String source, + String mineralogyResult, String vanillaResult) throws Exception { + JsonObject wrapper = json(new File(ROOT, "data/minecraft/recipes/" + recipeName + ".json")); + JsonObject enabled = conditionalRecipe(wrapper, 0); + JsonObject fallback = conditionalRecipe(wrapper, 1); + assertEquals(recipeName, "minecraft:stonecutting", enabled.get("type").getAsString()); + assertEquals(recipeName, source, + enabled.getAsJsonObject("ingredient").get("item").getAsString()); + assertEquals(recipeName, mineralogyResult, enabled.get("result").getAsString()); + assertEquals(recipeName, vanillaResult, fallback.get("result").getAsString()); + assertEquals(recipeName, 2, enabled.get("count").getAsInt()); + } + + private static void assertNativeSlabConversion(String recipeName, String source, + String result) throws Exception { + JsonObject recipe = json(new File(ROOT, + "data/mineralogy/recipes/" + recipeName + ".json")); + assertEquals(recipeName, "minecraft:crafting_shapeless", recipe.get("type").getAsString()); + assertEquals(recipeName, 1, recipe.getAsJsonArray("ingredients").size()); + assertEquals(recipeName, source, recipe.getAsJsonArray("ingredients").get(0) + .getAsJsonObject().get("item").getAsString()); + assertEquals(recipeName, result, recipe.getAsJsonObject("result").get("item").getAsString()); + assertEquals(recipeName, 1, recipe.getAsJsonObject("result").get("count").getAsInt()); + assertEquals(recipeName, 2, recipe.getAsJsonArray("conditions").size()); + + JsonObject advancement = json(new File(ROOT, + "data/mineralogy/advancements/recipes/" + recipeName + ".json")); + assertEquals(recipeName, recipe.get("conditions"), advancement.get("conditions")); + assertEquals(recipeName, source, criterionItem(advancement, "has_rock")); + assertEquals(recipeName, "mineralogy:" + recipeName, + advancement.getAsJsonObject("rewards").getAsJsonArray("recipes") + .get(0).getAsString()); + } + + private static void assertCompositeRockTag(String name, String baseTag) throws Exception { + JsonArray values = json(new File(ROOT, + "data/mineralogy/tags/items/" + name + ".json")).getAsJsonArray("values"); + assertEquals(name, 28, values.size()); + assertEquals(name, baseTag, values.get(0).getAsString()); + for (int index = 0; index < rockFamilies().size(); index++) { + assertEquals(name, "#mineralogy:stones/" + rockFamilies().get(index), + values.get(index + 1).getAsString()); + } + } + + private static List rockFamilies() { + return Arrays.asList("andesite", "basalt", "diorite", "granite", "rhyolite", + "pegmatite", "diabase", "gabbro", "peridotite", "basaltic_glass", + "scoria", "tuff", "shale", "conglomerate", "dolomite", "limestone", + "siltstone", "marble", "slate", "schist", "gneiss", "phyllite", + "amphibolite", "hornfels", "quartzite", "novaculite", "rock_salt"); + } + + private static JsonObject conditionalRecipe(JsonObject wrapper, int index) { + return wrapper.getAsJsonArray("recipes").get(index).getAsJsonObject() + .getAsJsonObject("recipe"); + } + + private static JsonObject conditionalAdvancement(JsonObject wrapper, int index) { + return wrapper.getAsJsonArray("advancements").get(index).getAsJsonObject() + .getAsJsonObject("advancement"); + } + + private static void assertConditionalAdvancement(File file, String criterion, String key, + String enabledValue, String fallbackValue) throws Exception { + JsonObject wrapper = json(file); + assertEquals(file.getPath(), 2, wrapper.getAsJsonArray("advancements").size()); + assertEquals(file.getPath(), "mineralogy:config", wrapper.getAsJsonArray("advancements") + .get(0).getAsJsonObject().getAsJsonArray("conditions").get(0) + .getAsJsonObject().get("type").getAsString()); + assertEquals(file.getPath(), "forge:not", wrapper.getAsJsonArray("advancements") + .get(1).getAsJsonObject().getAsJsonArray("conditions").get(0) + .getAsJsonObject().get("type").getAsString()); + for (int branch = 0; branch < 2; branch++) { + JsonObject advancement = conditionalAdvancement(wrapper, branch); + JsonObject ingredient = advancement.getAsJsonObject("criteria") + .getAsJsonObject(criterion).getAsJsonObject("conditions") + .getAsJsonArray("items").get(0).getAsJsonObject(); + String actual = "item".equals(key) + ? ingredient.getAsJsonArray("items").get(0).getAsString() + : ingredient.get(key).getAsString(); + assertEquals(file.getPath(), branch == 0 ? enabledValue : fallbackValue, actual); + JsonArray requirements = advancement.getAsJsonArray("requirements"); + assertEquals(file.getPath(), 1, requirements.size()); + assertTrue(file.getPath(), requirements.get(0).isJsonArray()); + assertEquals(file.getPath(), 2, requirements.get(0).getAsJsonArray().size()); + } + } + + private static int countJsonFiles(File directory) { + File[] children = directory.listFiles(); + if (children == null) return 0; + int count = 0; + for (File child : children) { + if (child.isDirectory()) count += countJsonFiles(child); + else if (child.getName().endsWith(".json")) count++; + } + return count; + } + + private static List jsonFiles(File directory) { + List files = new ArrayList(); + File[] children = directory.listFiles(); + if (children == null) return files; + for (File child : children) { + if (child.isDirectory()) files.addAll(jsonFiles(child)); + else if (child.getName().endsWith(".json")) files.add(child); + } + return files; + } + + private static JsonObject json(File file) throws Exception { + try (java.io.Reader reader = Files.newBufferedReader(file.toPath(), StandardCharsets.UTF_8)) { + return new JsonParser().parse(reader).getAsJsonObject(); + } + } + + private static void assertGunpowderRecipe(File recipes, String name, String requiredTag) throws Exception { + JsonObject recipe = json(new File(recipes, name + ".json")); + assertEquals(name, 3, recipe.getAsJsonArray("ingredients").size()); + assertGunpowderConditions(name, requiredTag, recipe.getAsJsonArray("conditions")); + JsonObject advancement = json(new File(ROOT, + "data/mineralogy/advancements/recipes/" + name + ".json")); + assertGunpowderConditions(name + " advancement", requiredTag, + advancement.getAsJsonArray("conditions")); + } + + private static void assertGunpowderConditions(String name, String requiredTag, JsonArray conditions) { + assertEquals(name, requiredTag == null ? 1 : 2, conditions.size()); + assertEquals(name, "mineralogy:config", + conditions.get(0).getAsJsonObject().get("type").getAsString()); + if (requiredTag != null) { + JsonObject tagCondition = conditions.get(1).getAsJsonObject(); + assertEquals(name, "forge:not", tagCondition.get("type").getAsString()); + JsonObject value = tagCondition.getAsJsonObject("value"); + assertEquals(name, "forge:tag_empty", value.get("type").getAsString()); + assertEquals(name, requiredTag, value.get("tag").getAsString()); + } + } + + private static List keys(JsonObject object) { + List result = new ArrayList(); + for (Map.Entry entry : object.entrySet()) result.add(entry.getKey()); + return result; + } + + private static void assertPair(File directory, String first, String second) throws Exception { + assertArrayEquals(Files.readAllBytes(new File(directory, first).toPath()), + Files.readAllBytes(new File(directory, second).toPath())); + } + + private static String stripJson(String name) { + return name.substring(0, name.length() - ".json".length()); + } + + private static boolean containsJava(File directory) { + if (!directory.isDirectory()) return false; + File[] children = directory.listFiles(); + if (children == null) return false; + for (File child : children) { + if (child.isFile() && child.getName().endsWith(".java")) return true; + if (containsJava(child)) return true; + } + return false; + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java new file mode 100644 index 000000000..a5828be41 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java @@ -0,0 +1,107 @@ +package zone.moddev.mc.mineralogy; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.io.File; +import java.io.FileInputStream; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.util.Properties; + +import org.junit.Test; + +public class WorkflowContractTest { + @Test + public void releaseMetadataIdentifiesTheGenericForgeTarget() throws Exception { + Properties properties = new Properties(); + try (FileInputStream input = new FileInputStream("gradle.properties")) { + properties.load(input); + } + assertEquals("6.1.0.118021", properties.getProperty("mod_version")); + assertEquals("1.18.2", properties.getProperty("minecraft_version")); + assertEquals(properties.getProperty("mc_version"), properties.getProperty("minecraft_version")); + assertEquals("forge", properties.getProperty("loader_name")); + assertEquals("1", properties.getProperty("loader_code")); + assertEquals("17", properties.getProperty("java_version")); + assertEquals("17.0.1+12", properties.getProperty("java_toolchain_version")); + assertEquals("17", properties.getProperty("gradle_java_version")); + assertEquals("240974", properties.getProperty("curseforge_project_id")); + assertEquals("zone.moddev.mc.mineralogy", properties.getProperty("mod_group")); + assertEquals("4.0.10.118021", properties.getProperty("orespawn_version")); + assertEquals("8750114", properties.getProperty("orespawn_curse_file_id")); + assertEquals("BE863C3FDBEC50D36D74D2B06A462CDE1A3C6876BF587F8F52F6AFA0ED77E650", + properties.getProperty("orespawn_sha256")); + } + + @Test + public void ciAndSecurityChecksUsePinnedTargetNativeBuilds() throws Exception { + String ci = text(".github/workflows/ci.yml"); + String codeql = text(".github/workflows/codeql-analysis.yml"); + String wrapper = text(".github/workflows/validate-gradle-build.yml"); + String staging = text("gradle/stage-orespawn-release.sh"); + assertTrue(ci.contains("name: Build, test, and audit")); + assertTrue(ci.contains("master-1.18.2")); + assertTrue(ci.contains("java-version: '17.0.1+12'")); + assertTrue(ci.contains("Install pinned Java 17 runtime and toolchain")); + assertTrue(ci.contains("verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums")); + assertTrue(ci.contains("genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath")); + assertTrue(ci.contains("CHANGELOG.txt")); + assertTrue(ci.contains("-PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }}")); + assertTrue(staging.contains("https://www.curseforge.com/api/v1/mods/$project_id/files/$file_id/download")); + assertTrue(staging.contains("sha256sum")); + assertTrue(codeql.contains("github/codeql-action/init@db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28")); + assertTrue(codeql.contains("./gradlew clean classes")); + assertTrue(codeql.contains("--rerun-tasks --no-build-cache")); + assertTrue(wrapper.contains("gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb")); + } + + @Test + public void tagValidatorIsGenericAndDoesNotDispatchPublication() throws Exception { + String tag = text(".github/workflows/release-on-tag.yml"); + assertTrue(tag.contains("'*.*.*.*'")); + assertTrue(tag.contains("loader_name:$loader_code")); + assertTrue(tag.contains("Build, test, and audit")); + assertTrue(tag.contains("Release tag must equal mod_version")); + assertTrue(tag.contains("confirm live publication: checked")); + assertFalse(tag.contains("gh workflow run")); + assertFalse(tag.contains("actions: write")); + } + + @Test + public void buildPublishesOnlyThePreparedRemoteBundle() throws Exception { + String build = text("build.gradle"); + assertTrue(build.contains("options.addBooleanOption('notimestamp', true)")); + assertTrue(build.contains("id 'net.minecraftforge.renamer' version '1.1.5'")); + assertTrue(build.contains("def releaseJar = renamer.classes")); + assertTrue(build.contains("preserveFileTimestamps = false")); + assertTrue(build.contains("reproducibleFileOrder = true")); + assertTrue(build.contains("def preparedReleaseDir = project.findProperty('preparedReleaseDir')")); + assertTrue(build.contains("tasks.register('verifyPreparedReleaseArtifacts')")); + assertTrue(build.contains("tasks.withType(PublishToMavenRepository).configureEach")); + assertTrue(build.contains("tasks.register('verifyMavenCoordinates')")); + assertTrue(build.contains("generatePomFileForMavenJavaPublication")); + assertTrue(build.contains("dependsOn tasks.named('verifyMavenCoordinates')")); + assertTrue(build.contains("expectedMavenGroup = 'zone.moddev.mc.mineralogy'")); + assertTrue(build.contains("expectedMavenArtifact = 'Mineralogy'")); + assertTrue(build.contains("'Maven-Artifact'")); + assertTrue(build.contains("Maven release publication must use a remote repository")); + assertTrue(build.contains("name = 'release'")); + assertFalse(build.contains("file:///${project.projectDir}/mcmodsrepo")); + } + + @Test + public void stagedOreSpawnDependencyCannotFallThroughToPublicRepositories() throws Exception { + String build = text("build.gradle"); + assertTrue(build.contains("exclusiveContent")); + assertTrue(build.contains("forRepository")); + assertTrue(build.contains("includeModule('curse.maven', orespawnModule)")); + assertTrue(build.contains("'OreSpawnReleaseVerificationMirror'")); + } + + private static String text(String path) throws Exception { + return new String(Files.readAllBytes(new File(path).toPath()), StandardCharsets.UTF_8) + .replace("\r\n", "\n").replace('\r', '\n'); + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicyTest.java b/src/test/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicyTest.java new file mode 100644 index 000000000..06870d0c7 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicyTest.java @@ -0,0 +1,57 @@ +package zone.moddev.mc.mineralogy.compat; + +import static org.junit.Assert.assertEquals; + +import java.util.ArrayList; +import java.util.IdentityHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Blocks; + +import org.junit.Test; + +public class CobblestoneTagPolicyTest { + @Test + public void rebuiltTagPreservesVanillaAndAddsOrRemovesConfiguredElements() { + Holder vanilla = holder(Blocks.COBBLESTONE.asItem()); + Holder mineralogyStandIn = holder(Blocks.BASALT.asItem()); + TagKey cobblestone = TagKey.create(Registry.ITEM_REGISTRY, + new ResourceLocation("forge", "cobblestone")); + Map, List>> tags = new IdentityHashMap<>(); + tags.put(cobblestone, list(vanilla)); + + CobblestoneTagPolicy.updateTag(tags, Registry.ITEM, Registry.ITEM_REGISTRY, + cobblestone.location(), set(mineralogyStandIn), true); + assertEquals(list(vanilla, mineralogyStandIn), tags.get(cobblestone)); + + CobblestoneTagPolicy.updateTag(tags, Registry.ITEM, Registry.ITEM_REGISTRY, + cobblestone.location(), set(mineralogyStandIn), false); + assertEquals(list(vanilla), tags.get(cobblestone)); + } + + private static Holder holder(Item item) { + return Registry.ITEM.getHolderOrThrow(Registry.ITEM.getResourceKey(item).get()); + } + + @SafeVarargs + private static Set set(T... values) { + Set result = new LinkedHashSet<>(); + for (T value : values) result.add(value); + return result; + } + + @SafeVarargs + private static List list(T... values) { + List result = new ArrayList<>(); + for (T value : values) result.add(value); + return result; + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterSourceTest.java b/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterSourceTest.java new file mode 100644 index 000000000..b1f2f476f --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterSourceTest.java @@ -0,0 +1,44 @@ +package zone.moddev.mc.mineralogy.documentation; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.io.InputStream; + +import org.junit.Test; + +public class DocumentationExporterSourceTest { + @Test + public void eclipseRunDirectoryFindsAuthoritativeGuideSources() { + Path project = Paths.get("").toAbsolutePath().normalize(); + Path expected = project.resolve("docs/README.md").normalize(); + assertEquals(expected, + DocumentationExporter.findDevelopmentSource(project.resolve("run"), "docs/README.md")); + } + + @Test + public void unrelatedDirectoryDoesNotBecomeADevelopmentFallback() throws Exception { + Path unrelated = Files.createTempDirectory("mineralogy-guide-unrelated"); + assertNull(DocumentationExporter.findDevelopmentSource(unrelated, "docs/README.md")); + } + + @Test + public void missingEclipseClasspathResourceReadsAuthoritativeSourceFile() throws Exception { + byte[] expected = Files.readAllBytes(Paths.get("docs/README.md")); + byte[] actual = new byte[expected.length]; + try (InputStream source = DocumentationExporter.openSource( + "/missing-from-eclipse-bin-main.md", "docs/README.md")) { + int offset = 0; + while (offset < actual.length) { + int read = source.read(actual, offset, actual.length - offset); + if (read < 0) break; + offset += read; + } + assertEquals(expected.length, offset); + } + org.junit.Assert.assertArrayEquals(expected, actual); + } +} diff --git a/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterTest.java b/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterTest.java deleted file mode 100644 index f05b6f523..000000000 --- a/src/test/java/zone/moddev/mc/mineralogy/documentation/DocumentationExporterTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package zone.moddev.mc.mineralogy.documentation; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.assertTrue; - -import java.nio.charset.StandardCharsets; -import java.nio.file.Files; -import java.nio.file.Path; - -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.io.TempDir; - -class DocumentationExporterTest { - @TempDir - Path temporaryDirectory; - - @Test - void exportsCompleteGuideAndDoesNotOverwriteExistingFiles() throws Exception { - assertEquals(7, DocumentationExporter.exportMissing(temporaryDirectory)); - assertTrue(Files.isRegularFile(temporaryDirectory.resolve("README.md"))); - assertTrue(Files.isRegularFile(temporaryDirectory.resolve("DEVELOPER_GUIDE.md"))); - assertTrue(Files.isRegularFile(temporaryDirectory.resolve( - "examples/mineralogy-provider.json"))); - - Path readme = temporaryDirectory.resolve("README.md"); - Files.write(readme, "local note".getBytes(StandardCharsets.UTF_8)); - assertEquals(0, DocumentationExporter.exportMissing(temporaryDirectory)); - assertEquals("local note", new String(Files.readAllBytes(readme), - StandardCharsets.UTF_8)); - } -} diff --git a/src/test/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizerTest.java b/src/test/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizerTest.java new file mode 100644 index 000000000..4f48d196a --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/patching/LegacyTileEntityIdNormalizerTest.java @@ -0,0 +1,33 @@ +package zone.moddev.mc.mineralogy.patching; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +public class LegacyTileEntityIdNormalizerTest { + @Test + public void mapsEveryLegacyVanillaTileSeenByPreFlatteningWorlds() { + assertEquals("minecraft:chest", LegacyTileEntityIdNormalizer.normalize("Chest")); + assertEquals("minecraft:furnace", LegacyTileEntityIdNormalizer.normalize("Furnace")); + assertEquals("minecraft:enchanting_table", LegacyTileEntityIdNormalizer.normalize("EnchantTable")); + assertEquals("minecraft:flower_pot", LegacyTileEntityIdNormalizer.normalize("FlowerPot")); + assertEquals("minecraft:hopper", LegacyTileEntityIdNormalizer.normalize("Hopper")); + assertEquals("minecraft:mob_spawner", LegacyTileEntityIdNormalizer.normalize("MobSpawner")); + assertEquals("minecraft:jukebox", LegacyTileEntityIdNormalizer.normalize("RecordPlayer")); + assertEquals("minecraft:brewing_stand", LegacyTileEntityIdNormalizer.normalize("Cauldron")); + } + + @Test + public void preservesAlreadyValidNamespacedModTiles() { + assertEquals("mineralogy:rock_furnace", + LegacyTileEntityIdNormalizer.normalize("mineralogy:rock_furnace")); + assertEquals("poweradvantage.item_conveyor", + LegacyTileEntityIdNormalizer.normalize("poweradvantage.item_conveyor")); + } + + @Test + public void makesUnknownOldModIdentifiersParseableWithoutDiscardingTheirNbt() { + assertEquals("minecraft:pamapiary", LegacyTileEntityIdNormalizer.normalize("PamApiary")); + assertEquals("old_mod:odd_tile", LegacyTileEntityIdNormalizer.normalize("Old Mod:Odd Tile")); + } +} From 9973b88a842df64ff58dab545df25625ea00b5af Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Mon, 31 Aug 2026 15:28:04 +0100 Subject: [PATCH 2/3] Fix Eclipse launch paths containing spaces --- build.gradle | 55 +++++++++++++++++++ .../mc/mineralogy/WorkflowContractTest.java | 10 ++++ 2 files changed, 65 insertions(+) diff --git a/build.gradle b/build.gradle index b2f098a59..8aa5d04e0 100644 --- a/build.gradle +++ b/build.gradle @@ -837,6 +837,52 @@ tasks.register('syncForge40EclipseLaunches') { "")) text = text.replaceFirst(//, java.util.regex.Matcher.quoteReplacement("")) + // Slime Launcher tokenizes these program arguments itself. Paths + // containing spaces therefore have to be quoted in the launch + // file even though Eclipse already treats the whole XML value as + // one attribute. ForgeGradle's generated launch omits the quotes. + def programArguments = text =~ /()/ + if (programArguments.count != 1) { + throw new GradleException("ForgeGradle generated malformed program arguments in ${launch.name}") + } + String arguments = programArguments[0][2] + ['cache', 'metadata', 'to-srg', 'to-obf'].each { flag -> + String prefix = "--${flag} " + int valueStart = arguments.indexOf(prefix) + if (valueStart < 0) { + throw new GradleException("ForgeGradle omitted --${flag} from ${launch.name}") + } + valueStart += prefix.length() + int valueEnd = arguments.indexOf(' --', valueStart) + if (valueEnd < 0) { + throw new GradleException("ForgeGradle generated an unterminated --${flag} path in ${launch.name}") + } + String value = arguments.substring(valueStart, valueEnd) + if (!value.startsWith('"') || !value.endsWith('"')) { + arguments = "${arguments.substring(0, valueStart)}"${value}"${arguments.substring(valueEnd)}" + } + } + text = text.replace(programArguments[0][0], + programArguments[0][1] + arguments + programArguments[0][3]) + // Eclipse tokenizes VM arguments too. Quote the complete system + // property because this workspace path contains "MinecraftMineralogy 118". + String legacyClassPathPrefix = '-DlegacyClassPath.file=' + int legacyClassPathStart = text.indexOf(legacyClassPathPrefix) + int legacyClassPathEnd = text.indexOf(' -DignoreList=', legacyClassPathStart) + if (legacyClassPathStart < 0 || legacyClassPathEnd < 0) { + throw new GradleException("ForgeGradle omitted -DlegacyClassPath.file from ${launch.name}") + } + String xmlQuote = '"' + boolean legacyClassPathQuoted = legacyClassPathStart >= xmlQuote.length() + && text.substring(legacyClassPathStart - xmlQuote.length(), legacyClassPathStart) == xmlQuote + && legacyClassPathEnd >= xmlQuote.length() + && text.substring(legacyClassPathEnd - xmlQuote.length(), legacyClassPathEnd) == xmlQuote + if (!legacyClassPathQuoted) { + String beforeLegacyClassPath = text.substring(0, legacyClassPathStart) + String legacyClassPathArgument = text.substring(legacyClassPathStart, legacyClassPathEnd) + String afterLegacyClassPath = text.substring(legacyClassPathEnd) + text = beforeLegacyClassPath + xmlQuote + legacyClassPathArgument + xmlQuote + afterLegacyClassPath + } if (!text.contains('ATTR_EXCLUDE_TEST_CODE')) { text = text.replace('', ' \r\n' + @@ -898,6 +944,15 @@ tasks.register('verifyEclipseProductionClasspath') { if (!launch.contains(expectedModClasses)) { throw new GradleException("Eclipse launch is not using Forge 40's merged production output: ${name}") } + ['cache', 'metadata', 'to-srg', 'to-obf'].each { flag -> + if (!launch.contains("--${flag} "")) { + throw new GradleException("Eclipse launch does not quote its --${flag} path: ${name}") + } + } + if (!launch.contains('"-DlegacyClassPath.file=') + || !launch.contains('minecraft_classpath.txt" -DignoreList=')) { + throw new GradleException("Eclipse launch does not quote -DlegacyClassPath.file: ${name}") + } } ['README.md', 'PLAYER_GUIDE.md', 'DEVELOPER_GUIDE.md', 'CONTENT_CONFIG.md', 'PROVIDER.md', 'VERSIONS.md', 'examples/mineralogy-provider.json'].each { name -> diff --git a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java index a5828be41..56450f602 100644 --- a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java +++ b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java @@ -100,6 +100,16 @@ public void stagedOreSpawnDependencyCannotFallThroughToPublicRepositories() thro assertTrue(build.contains("'OreSpawnReleaseVerificationMirror'")); } + @Test + public void eclipseLaunchGuardQuotesEverySlimeLauncherPathThatMayContainSpaces() throws Exception { + String build = text("build.gradle"); + assertTrue(build.contains("['cache', 'metadata', 'to-srg', 'to-obf'].each")); + assertTrue(build.contains("arguments.substring(0, valueStart)}"${value}"")); + assertTrue(build.contains("String legacyClassPathPrefix = '-DlegacyClassPath.file='")); + assertTrue(build.contains("text = beforeLegacyClassPath + xmlQuote + legacyClassPathArgument")); + assertTrue(build.contains("Eclipse launch does not quote -DlegacyClassPath.file")); + } + private static String text(String path) throws Exception { return new String(Files.readAllBytes(new File(path).toPath()), StandardCharsets.UTF_8) .replace("\r\n", "\n").replace('\r', '\n'); From 1cd2809a367471da7cd0c8e3c7c6063345e30c2d Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Mon, 31 Aug 2026 22:41:37 +0100 Subject: [PATCH 3/3] Synchronize processed Eclipse resources --- build.gradle | 19 +++++++++++++++++-- .../mc/mineralogy/WorkflowContractTest.java | 3 +++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 8aa5d04e0..a5680dcd9 100644 --- a/build.gradle +++ b/build.gradle @@ -812,7 +812,11 @@ tasks.register('syncForge40EclipseLaunches') { // Copy the processed production resources as a normal doLast action so // token-expanded metadata and externally edited JSON cannot lag behind // the source tree without making bin/main a Gradle-owned task output. - File processedResources = sourceSets.main.output.resourcesDir + // Eclipse rewrites sourceSets.main.output.resourcesDir to bin/main. + // Always copy from Gradle's actual processResources destination or the + // comparison degenerates into bin/main -> bin/main and leaves raw + // ${...} tokens from Eclipse's resource builder in production runs. + File processedResources = layout.buildDirectory.dir('resources/main').get().asFile copy { from processedResources into mainOutput @@ -961,7 +965,8 @@ tasks.register('verifyEclipseProductionClasspath') { throw new GradleException("Eclipse output is missing bundled documentation: ${name}") } } - File processedProvider = new File(sourceSets.main.output.resourcesDir, + File processedResources = layout.buildDirectory.dir('resources/main').get().asFile + File processedProvider = new File(processedResources, 'data/mineralogy/orespawn/provider.json') File eclipseProvider = new File(projectDir, 'bin/main/data/mineralogy/orespawn/provider.json') @@ -969,6 +974,16 @@ tasks.register('verifyEclipseProductionClasspath') { || !java.util.Arrays.equals(eclipseProvider.getBytes(), processedProvider.getBytes())) { throw new GradleException('Eclipse output contains stale processed production resources') } + File processedModsToml = new File(processedResources, 'META-INF/mods.toml') + File eclipseModsToml = new File(projectDir, 'bin/main/META-INF/mods.toml') + if (!processedModsToml.isFile() || !eclipseModsToml.isFile() + || !java.util.Arrays.equals(eclipseModsToml.getBytes(), processedModsToml.getBytes())) { + throw new GradleException('Eclipse output contains stale or unexpanded mods.toml metadata') + } + String eclipseMetadata = eclipseModsToml.getText('UTF-8') + if (eclipseMetadata.contains('${') || !eclipseMetadata.contains('version="6.1.0.118021"')) { + throw new GradleException('Eclipse output contains unresolved or invalid Mineralogy version metadata') + } } } diff --git a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java index 56450f602..13678b4c1 100644 --- a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java +++ b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java @@ -108,6 +108,9 @@ public void eclipseLaunchGuardQuotesEverySlimeLauncherPathThatMayContainSpaces() assertTrue(build.contains("String legacyClassPathPrefix = '-DlegacyClassPath.file='")); assertTrue(build.contains("text = beforeLegacyClassPath + xmlQuote + legacyClassPathArgument")); assertTrue(build.contains("Eclipse launch does not quote -DlegacyClassPath.file")); + assertTrue(build.contains("layout.buildDirectory.dir('resources/main').get().asFile")); + assertTrue(build.contains("Eclipse output contains stale or unexpanded mods.toml metadata")); + assertTrue(build.contains("eclipseMetadata.contains('${')")); } private static String text(String path) throws Exception {

    )u1Y-nI9_cr9arC*IxR;b{j$x8x4FEq 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 z z0(kbsnfnA%nxX-m*hKyilN)n`8pbI%MOAFxMYL130Czj?!$qvtyHV!HNnl_dYl9#J zx#OWPi0yxyak7n9uF622=Jex~KvVs-i#oEtQ6wq(E znML}Y2v$;GcHnQsFsEtc*YzWR^n4pNXI|SIdw+a9;qoJ6gBsd4htgcFR_^U|1%SgX zVW#R)xCDDn@D4uqtY5+g*<>@JJRR^mAcy!9ZeIR0dbFyH!U=1_8y9~{bgg#MZHe=X z#-Pd~z;PAQb0)h&_6*;pc8r7*3Ue=KE1tp&}Ih-o-)GIBvo@x}M0cT7&io^v`bm>Vc`J9s88#xpyYbUdD3?=Jhv0Z^6f85onq z&@C@z&X*&@z}*aWGg4W1Q&SB_O1=_9?GV@{x%4U zbX6%Bt*h(1nRz?zG_p^HpM`E!<%vXEk8UWCP{(YA^3m80!Wff$TBRH{23KAAf!D~` zjc1i$U(AQE3T6txv1|pE9wYY4sA3DW1tu><^k!BL&leQ_>jz?&9Gbt%Cm*B9-_h@Lfrg{jQ zXw`ZXf;t|b7`myi88?pvTKiXDlDrTSdl!Eu!}4s^396RxQJ50{B>5$R&+%=+5)e_a;y95Uy?oOH z2J-_(JxB7&ev?oumCL9EhT!#M+*4_IH{=6s-9cxI1Yz5wO##X}7d!gA&KM@q_%x>U zI_ta};J;!qpw$OJ`ZxAF|Np~2%YVnd)%T4L!8^JADYvOZ(hIPW$egoqSV{yL5|S{L zg)((TGJm^i_$OS9cE>s~l1~_4zp!9_nD?_7rb&$mNMszm3pX?OJrDEr)z{1GA+|3S z-tkO?JwA?fTF$v{8+wd=E#rRfUXKIAcV^E%_DPgm*`Bg z7I~a*ZMsZ&WT$i?+>@{j9*Erx)L?j`qysJmCbRUC^1_pIkhKU;Y~8RNduJ303@0kW zNY*{UWdCP9f0|X&2rbxCFkw5&2tU0d_+gn0n1`~J0ypp@e|VH(4QYO{A1g9NPDln1 zROB}78jDUQ8s>_pj3i=JFi$jSYrPX?!*K;L;-Evsz4Eno-)A!lgiv}8*R6{3izK)n zk2)*Bf_w6N*UBa??9zf(IU3kzc9{bzL!Z9-{rxjSMdvP9_Sy6k}j zHaD%YX_<~GzUi=99bO6dn;c9ppNzhUuetD{_i}nd_vX|vvs=3*)sGen7JW3D3D;#Zol2- z`T45U*RXS)Vte-6;@ZaaYB>kuEpz!lQp(WGb?5Zx$@DiF z&zQKih}LV7N^REW$ZhXR=6GQ#d>&BbHA%5R%gj~uZ0}8MzSrIXW z@BoZf9*k`a&3^9k%YLeX%Y3>(=A!&uoV+9;c69VqumXxfeV2 z!{hl@b*(9cnu<@B7|oB3F)J*m7dP0P(_{D>4Zf;lXFK(hTXnaNEjg~7s$1|)e9&^B ztsZP>SL7UGI((`fhgTjz4{yK_xB49J7DX)>#wF71rqB}WC}MA_L+F9KDlD=4+c{!m z{XL}RmSws5SAS0}cc>RZ+0b1>z>=1l)KESe9eUcG@fTvOUsokqU!_B;FRupQGfUld2XS^K#??9+6ta@;cOXIkPYI-WpWF(64R!`d^-m ztuN62ee`dyQXNt~*Jvr&gNI~M-4`Xw{zJ;1^%$)p`8gkOcc^x8{mo_{%6wU) z6)atwau%-^SU#I_=dLkB+q!cZ28_gYL|C$9Q6vc_B0RwvHH1hJg~^Pq)D=tPv$6qY zwWLVQYj5ss*kMk)lM0b2%>&$hvyZ#N!W|U?a^>7WIC;sbapl*cHq1z)oY2QpHQlxJ z8+E9_v!%0f;R6Pb)O)k_KjTd8Arsg!qa1auO6?WLL3gco-%L50io7R}paI$nTU*EU zPzHjKA&cvx9kQ#1J3_)T{MzY*wE^&=eg%eIjU-!d#K%e1=FsbryysIE->zm_UN^R^ zHdy1{M48L^y)D_+U`^S?ScU~DdO`BYS*SI)@WGB#4N3~M3-4S){_61LR;))3ITFVo zsk}amNSjkfw}~!NDQ_lKjt25&0IdK3LKPy`OJ^mK2QJkH8%YXaV3j6Oj=zm>6#U{9 zb+FVV!SuVqGN^N_F#E=~y_er14VBqSbEJ!e$2k67L{R}0+QtDH?CYZi$qGdv% zoqdsYmGls6o?S&}y3MtAZ;X~4de+Hw0@pRtw zZ(Egi$o%{f(Bxe;iw*07VIuZ(QwIH+EYJZ!8=t34kZUx3z)VyX!&)8ky_&M7lBz~q zMMqUtRS_>hM2XOpG!puq2(n<&kl?SQ9g{sEKguVSIU%bOJcIUiuFT{fq1wlqtL@m)T>7>BKld>#9<^fXAjRp#a8YzHK~bL>-XEa8+z2#qR!a6 zvJUb%kFuUH{HK`2MUD(iJpM4nW4#a~Pe-rBTU*jtB;9GL^{xnuu$T&WQ|HqAw~pe+ z8N3%T75dR5=LnF`M7JVsET%x z3m<4$S%SASQ(19|kTneuZb5Y44j$ISv~&_#OzMC_HA{N>T|o94i>D562#6#A)9pp9 zIQm*hyQvVSf?L!MWRgx%C5a z<_FG*I#ka0Ffx0^x>AUotuEO0l<0Mh(^(&z!I!Gap zoTG`S%JkCN)5*&fHjKbTuVP2;Dc7qMulVunV%ap^d;Vs_%$Bwi|Aj`?`u@uhxZ`zB zL{;2nlIvxTwAx@XBB68az0BMU@hc4%?^aqrQ}AsYF@nfpq<`)ps6tS zCk+-{7Z|v@cnPwAu}lhwPzd^vF5aP#Fp2LA>Q*C|e9V#?z25yY`|ra z;IAZul3vU#Fknad@P@MvoqaEK#>SrfWd>xF>h`d{={t- zO2BySr!*D{@-+4bPMZKZI5nGJk`Lx>#M+dnCr7tDp3Ey0bHG9x zg@~-~Fo<*^zaygNwgQs`zoatRu$t5v7*KNc&6u8L%{}4$7YN?hFO0NED5pYL!%)L5 z?i+53_Gs^JuvJ^jR(DMut^Bp8M|e9f)Y1H3(TE8rNeL!@<71iFQV`@bu@q}~IM1P+ zpZ5xPKLuAMDCipMRvr{>>lgn#P78LDiT7U$F3$T|PeQkm|>@urfpz6S@f*U%z_Vh4z^$DOrnj@!=9bQGNu}wKD>k$0%)5$Zji=M2#UQY>YJJRka&Bq&MpOt}e;; zYyI8bV?RtO3sRAiqD<;Zv`D68FKnzl{jS=U#Y}0J;zWckii>cqI#HY55~WNyr-y+G zFJi5oud$z*h1woQU%)t1o5gW3L^qgWBF*fkZ@u>YNCw)|aGzGqT#@hC-4 zPw<9VgXb4*7c1^g?kHfiMSB@5wY+?rZteWGo`gooBCw~Y?Uqq4l!ntM_^Ox`#uR$}PtAI0%v$oSmQ??>+45g{O4|cKR5#797DJKjnq66woR8`?zfEDv# zYo)jBPHoxGr=B$}8^h1%9{}4mx6O`Q)8OBhbN7UA^+WJyo~hkciuBs~^NkOf7|pb@ z{HvOMBh*a~Vf)RedvHRJFdtU8N^a;-8B<&r!|;9;-eTE99!@#~Vk})!$04tXS@?&; zEML)6G55$^m&KYa-an5$f0W<4IDO&q72Q9-f^%((xSV_lb?lkZ>kp5lllf=kpMDs8 zK`KtlOMNE;nce8Cp~+B5E^RT@b4P&oeWv^ z;=OYHomHac+*@fh54ZH;FJ>FrlzS#lU!;5`^UM!4P`tNyj>$C2%K7*A9}terj-a`> z&|KXka_0{ue8u-QAdo?vt;C^YjdEGh^N<3snpl4{Xx?F&NIX=K*UcTnH$+XM?j6H# zY@EJuI|o_VfJu?%kx!mKej?%n#`qwxF_ban{Gq@rKKURIUi}m~w*RV_YUEKp&c&$4 zO&c&8n0vLE!JseX7X9tm)%tM#@jJKF&#Z0JQG|CsMPt5E3&Um3_%3f(Gk~F2RrI%h zwAwAz+}&>V%nK_>!}BX{XjzMoyac>4DTFj>0Ll!0G5az<`JQKH~s(y?;impCpF1Ai`t$3?+ZwJdRYcFxw!@d>MiR zmx@)>b{B70OIG#MTw-S??}Rm{nY!kLMx4t(H*oim_H^ zJpPTyENTM%J{2w}g^Rr8k_)MV<42m6i2c(^>qgE)bQkR>YDk3l3%k@SijN^ zbx$Q#KY|Y*fxH9iT6&T<3oJ+X+Ig8tk)8nKHI$h`=`H~**x^(d+!Qx$e{2~2_6LC# zmJyc5B8bXh(ZvfMJ?#%|#_BG+*Zhc{x+X&2LG?@@`je2PB%;5*ry2EzmIgvZ3gHsO z-4h&Y!kfk(wH*Maxp!OTRl9({(pZF$x;k*Wt7ftwu96xn^%j!lhZer`_C+>H3;s)U z(Z?ASs_!ZEL$GpiuJb+KJ6#h`7OVJ)G!+ z3-i_14B(!}?M}Xf?c-=K(;Gr{8zlenoLkHB{3{ArqS^_a5N6d zv!Gm$;u56}y1UT(Xnjrx;I+UVuOQYJ{S#;h`+TXq`phv}znj4J58d05EOMzxc zK_!_YC87GVWHfo)EPrx=+0&!yhBPh`sqwM|7>Pssv%YU5CTvsa?2R7AjJDeYz~VHN z-UM{wK}W!)H&g1RNbrs@+VFNx^g%87ts%smo~CqBtO%d<4NkH{ln@&CQ$by{-z&a| ze&l?Pv3C{l@xN*hnjq^1;;pTdu)sg)5o~t zjIs-ikftIBW=3g);?XKif|n7bL@s_0b6P&?wI(gaz%aU$v67FpNOz?Tcm~p`Vhq|~ zf$AaGMGzeBW30y&%FU49+8V|GSd3Yy;4e4hW7mzseug9~t6~*1ThNN=?FH}JE#-bf%)nqK7Z7%SrF3%0PXb}H@SbGQO z%DZ)Iw3ANKv2EM7ZQHidv2Cr`wr$&X$96jGBwyZl?^EBtRp;)y=iFVj)_*Xb`5SXS z13#mHF?EdUQt2QCQ=!BUEzrjXp3C?0O*&VRIE9T;Q9T2d^00et3tP zXGWr00##kO-u>{7l-%SM_3;SrOlSQFaLB^y|mwic?DXR}`TF_8h8P+{=RiGL9| z&XG~M14I?j{AP(Mk`s(#<(G+1$yy1l0RUH}KnN?Dkw9oYWp3Af4T!}&y+^+nubcc~ zMH-WZ8Y4x6?Ts3fHJ>v$o~2G9jDmmdfC*#PDq4V5zD=U0Yb0u`7k4BdMwWL)m#%t4 zVgZWIT&3SR!5pHq_oL3Xjg0DiRfdi7eDrr|?>4qlw>5uky9IpgYyF`D+r*`pUu_ zzp({PRqec@a#8d&^r9@(nIe>=JoR98;#(@X2wM{WK}4ul-+-Fv_yFyl2MFAiHm+-6 z1XkaG%&%S38~ce*EV!0AH59lfDqKsapX5`A1T~NNGOI1egV(V0gWeobn-Gduz(k&X zgFNgq-4;fLvxbGshK0>|M8T*;OM=taiOm7_q$8=83d;OliKxPUyM7;W} zYWIkQDh(n-HKco7{SUCMJbJxqK`(xN+p_71^rbe1dk63X2x{Mi;dwV3TqJod4+PL2 zApcb!(p*-yV^>OmNf36%?E{zpZ(4X0T)znhLhz?x_z5Y;wD;g>4Lv?nZ;i=qjuQzt zv?NL+#-Kd_HW-}JX~@}ku(Xlc~>yT&DM{=+vvLOklIA_|S=TTIc<@Y@xJd%Db9 zyH(i4ToWXLcC82z{nj6-2lWu-=4(NIl2G7IWPbBibG#T>*Cd0ZZ}Zk$*U0F2qYzP< z5K%9N1ZrZf|co8f9c6>VXkp{*~6TiiNl~F71+fc~d*! zK3p=-Zd*vvnOVH&j>@Ki9U}zki0%cUR-SLSAe0bE$r*sejwC2knuWSJfU2xafs4p3 z>(1De{mlAH`U9^{aYC%f5Vznu^>NGyh^UsO9nhYV92~PLiX>#>gyt!%o2=H1Jp7dc ztoosN)}BlnEGWi(j8~{(L*Q1Wg-qg}MA%vl&3r!ft$4{#(mO}%f# zg9MX#@iFC#h4Ix%N52FmZgn(Dzzu?Hrw0k{zNE^Fnix&0#qT0yGoA+qxKFh1Qc1Jj zKLmJ0cGP0La^}6sjaR(W%HDFHB<3rEft1@%tjqqSlsiq!#Rx+3#PLTJ@3tk-HB$IC z9`sXD$T^|r@2e7UMP1R6xjG=NY| z$lo!@-#KDf66cdCC0~T#`UiJU^D>Q--PXUvHqB0^#FirECH`+19;&-Om~IL#({6My zO-r~MCk}MNEI2otq6=2vx7*71N>Q_w8geY%;_X5s-F_0Jp-C|%q!CjG^ngh1fR9g+F(9Pi~ z>r*8(VN7$PEMr>2uhc7RDs-(HNfO2Zf+~3kAdm}81mrrLgGa85D%%tA{K;{H!Ep;1 zKVS*h_QQJ#?lk$d?*8h#C08N^J*ON*kemB0ve$(o1{N#DeF z>%1NzN#Yz`)vYpA4-wUay;BvE6;$Jbkn&LxYI=u1Lcen&gfG$vy3AnZ5NwGUS9~el z+;vSTBjYNPDN`_zD6>41I*UAuoI0CB#}|cjF`3>hu4t|9uB)Ygg7*Q!^@iK-AW#2L zN>;DfgLDEnxM!K(U@6bo1q7^|68nrmqVcx&oYE-4L(cm&j4~#PFiO>u`9)GIsS`VW zUl1EkaEhi`%_bQg5bmjBZgi!Nt?1lA5c?RInmIHhmd7>r` zu}&*YlvYafOe-)Mr>T67YDy|bS)jVp1Cwl$4EK3?jJeK)Z32ad>AoC@l$fZa@zN&6 zT7&-2SWr6CDI=8e?BcmPBWBG;6&cr^?;RtjL56NsmO!Tj_IpemV<<u39HGeIQX0k)r{rX;`x3-;Bffn{op`0 zY{0P5s~qES*QV0%lVKijN&v22ut=y#D{faMnz791RI4D_`6fvk>+BJ2ssZH6>X}?< z)*v^3Rb)AuPgG$EFE3brq^%q*9~AyHiF}9-yu$TsHKF*qEnx31gOVmQIT=+}vLu*Y zT{a<$APwn*qJ`sN{hQI6xJk7PGw2MH_VK!7Kk#CpsVw`1p%LoYKqHe$uB)cJ0u<$? zYICN2XEI@K|D+iXOYztsRxfdVo=WKH0n86`1uGX~n5a6y68iM_4Dm9PVG({@6l zSC{D0LjXNvqef_Hp9lubILH`^$l!@U9a@1#HT%@?y`b8B#Lq+oG_ew`YSe;?R(Vxk zcXnD4%uI>%f1XCMnm2rkoYV+q^XSQx7MN&d#ukpEh(`F~hQ=eN!EPnvF%^Ph!OPYh zcfwR+kC*X~D9f*EZnBIgui!7*DMXY$$dFyY01u9zAFYQnNbrZ%N@b48doEVXo3d84 zS(I}4HP@}i{s!Sj2kz64nHtJ-_0@0eHwhtjl!YxpGU~|A$EJ_*>j4xN;&s$OZiJv8zgjHtS80t;CJAY9d8_!6^ zD+35CDFqCko^j6!VZlGm_`v_x=eu~bULC55EH*VjBU%W%z;pQN(G$xqh;|Ccu1%l? z$NfDi>0Vl7j8a5G-~^t=%n`2;r7eitn5fXt?C`;uzCW2GNEt>l>@{JK0A7&?o&fiU zVD>8=g5q~U%QjhWy9rDAEP&L&%mqxjk0t`qZw}^3*FTMbiewI18R}anMv#%sSTdQg z3o0iF&#{kNVFXgI`>RY4a=m!->2PryGFM$b!;*fCtZ*ESkwmL3Ex&hkcN(ewzD-no z(U3J@WWK)h9SvO)O}~<3XF$e}6Y7qyVt|ggh)pB&%8sz%w#dsY6A^7$v$SI~Hvmds zpew+=&$qH+63Sp~+b8R=IM7)%rf}=#HA$hD!u}PDsbxC9g(N=L93vf@Rtt z0FZA&_Wu2Sv7M`e-l);8H8Zcyb!+8D^L%08<#@uz;^35s9>lxi za?+ZB0Dy^CM7~MQg(;#+E7liV%94_bQ;~*Dp0t5V&ONeBnL<0lsYddY{llRoG|||f zg};>*1Xq|F$eSMYbb1w8iCiA`$E)13Svq;7?ipThJh~jcV)S%8?Zz~+sDC**5PTcS zVwkJYBe%12l+MS_*cD3NC)Hz|Px_pd-^1*(pc1deIBWRjjM>#GQMf5#8sI<{yDZ^; zl!wT0UE%PKAEsG!wQ!hKs=QV6i|fRQ>HcNM3p!jbt|e`KH}b}f!R}b9# z+s*OE-zz{R;c=f5tgj|f$$zKg`>PD~zqM5S%L-7`!0Df%W5oZ|JAc^;Y!~?9d9*Tu zKoSd2gQeP#!GEz66qD}-mm>-*mm~ioP$1?PwBEEi+pCQ1idoe2|M3i3C@Ri<1LTEl z$O?fR5nNidmBz!xbR5O=@%TQW_D!ahBU4bsj_rQ*7vRy>%)m@xs^37Lw~8iYGwcTn zuE-xhgIyEP*w|Jqdk*`Y-%mj$xb()0)p%-GjEftJNLO71_~7L8 za77(sMoS9uzl5?{uB7yA=(+3V5>oT?){W@3cANFdo4qNrNe8;a+B@;!6>URt;XJtS ze!GLEYcd5kkrah#0>v5$j0{6KD=(J@AM#n@U3^yN>}Hcaq6{Qt(WX#TQ6Ji1ZqZ)0 z#qh;xlf+k>AQd{L`;N%P3%~exB#xF1tCH^UV#$~k~xNQ$8{ReuRJ20Q*dXEIiK zw&zT1&SFI^+qYa@!d10cXUc`7Ke5Z5_EVI2;;dU_&vR;oBv(`p?^JVMu8Wklfj(Ls zNp<2Ku#aMxlncU2E#awYh;k!Gzg8%|zbhOkM6Csp=GMso3-yY;n8O+1$Sg6RY7#ng z)?MQu1{{ad>!sF&mn?HkKLFhikL;w5_oR-u`b9DoH+G=3cQBvcF;1qrfvS!7dq_ULru*z*IDODihC=`fQ=^a8BhcM7Qwfp$$1o8z9`+n4#f$jvfGBJQ?28B`Y zv~|ZiO>571eSF*^`N67ElK%p*w$LCulthVQOfhPQ@zG(7oX^ zv3$^5?_xoJnzh~YkDn(&3eokgeQa%%V{zlC5k-hsk6iOSlxRW)^RhY&vo6^>xXrTQU5zT~F%pE-fW+p`4( zT>O#K?g-4T2PXu(e*5N^&S-ZJ>!pg1AntO~p!#i6p`&ehalU4jvI#T_Fso>bqk5^z zeSH?aKQW_spcV7rrk+Fi5eQXZ{BSYTJF)C7g2eGTac(A@*$2tRXN&z& zhRqxcR*+%iOac{KYrV@jOs(A?7OY@Q6J@mCPcN$Y(|Q+z+;O+l z+h7!%&VTxyf`xwdb4K8P<98S4fJbb0wu`aH)?Aqq1N3|6+QSJf&1d5EsIpwTe6E@i z`~xPwgd7wL8iab`?_FTp1Z;f0bmI`-^^{-@6Gl_Yy28G}1W}X%ex-K7J4%ZVVwpt= z&t@3YnWj0jnU?rkK0=EPyxA4ePtQ9tdzvFs=C=^)x0rJWY$O{*q*kE8^xfPQf9J@9 zyqd&o<~7@0*OU&~Nw6FiVTjjPGd=@+f7~QK`f;BRk+gTAv>_bI2BEcy6e7LQKeTf$ zjh?M|6Wpfaqy|Q)N(^WPsu_h$J%5ivkef_Q$=4{1{##M<|L`dOR~hI(N5Rzdd;6@T zMN__Ek)TE#4H^Q7Op>^uB7PnWTsO>wJZejW3mx$vXubFEycw(L-hY{dqs*G4wF_=) zolK`Wb~tu2om_q1zYgPGLfuEg;1bKUOCdPvrixM%+Guy`!rIjS24n!bVKz8=NcqU0 zpbXd)7$>t&b@e_TxGhC?cT5FsIGnI#-#{@sunT?G+tJA#PD1Yd{JV@sGwn+TX{fA2VBxf54LS!{ zpsh!^p^J+6kFc~HuboRsxDSOj68hpVQz)UCR49NK9OZ(JXK1GA((wdsyU2p~!(d$l z-vnrGK`4@)pYz&o|0Yy7;;%(LDf{3=VSiT++5qwuA0^{ z(cU5eE-OFDP=vJG+U=%0VfTgdC;~+ZuubVn4T0Q|L7}4Zkf3ZdpW{9lSNkEzL0|uS z1z56iNK41OUb-PKDpHMMC0RrPBBNi6Xq9SjQO!wc1`(?n62L*kQ&C&!PDL~F+h%PQ zu`k{;uHOk~LVYe?NOy!@)Ok}tK@4x66O19L9}1^J-Kcc4SrB?{LM=D%a|8!HD&sg; z7PlRC>bK+z>AvH%SxFIhtI!hV2b#nuoLy6Phjh}VkYV#;^o@{Q1nny45y;3764NSasJ zMPoflqzd^FF6269=VTj+5+> z_Ui7}5S{!dhv@&IC;dkWZv%}Ec}11Hd>`CkzKPaa04Oseq7bo#B1>`dAX}(O(9q>y z;{LlFF9!dAj*we33bOpkz+{(G&sPEOKh^y(v7vGPRW0?~lp3i&>7zK*7H00IjeGMmprZ?f(Qy+J4@9~N}2x>Ghc+$ zr|W5!a^M+Wb&~~NN7|lo#wsfX2ei0sN09L}jo*|n%I&=*nX;kJTlE3-M_ITjbO$eG z5SpKheEPHI|59I32QvbktgT3vcGuz9R z7k|(&6+v-}VxBI#D=>3xpFY3I5ix%36D%qe%~%ESk}J|bjQV-$!coUF^SoYCXmT8k z`35(x5FD(`^X`+LReD@-&G^l{nzpl&d6}M64y1e3EvAe$o32 z(x_Qt<91(=7XME|n&n?9`WHn~fd80&tZ%Gr78C%r6CbJ2C$)!zP?=hVN0DEl=QOOVRqx*r~^&2aLl!aOwW~P)$i@!@%*go z4*iZY`o&jeqxJ7RC_zqA_fX4k>g(5|zuL>OI%o$<5kMuIIc$e+GtE_gsTAe(I@zah zBa7F(Y)IzHyK(;}w6!bCrD)NvhhFm5YR_P_f8J&)ZVMqEB{JZ?=SHb)V}wT0IeyDk z(>*{|-a5&lf6LO7ZwpztGe-VVSVAeyLS>`nLg*ha*}|^oL34h%Olu-%iGZ-c`&;;S zij=KhFyI}GLjfId46u6OLVdHaihW{+@q6?SK$9KFTKWkau|cU$09GMPvU9WFt9lNr zrpYeLH&JKoezsPP$EkbX7UBBG2ImPTeOBZ<#{rCXugLd6dT3<&VxzI%@6=F>uQWor zKNGropZQLpQjbUAXLZt>!RRKH54rcnWwM@Yus*wGN49*i>wnV?)cRvq)xv5j73Ml@ z_!-7$0L0JmFTEnVfg>J#!v6-f22YUbG&Z4$kLat?9=os^U|vA0kN&jaV6u-y8w@d8 z2~wM2OTVX}rQ*Q?ooIu-`u7*8CHAC_GQNY~e=9pfGiDwY3Nz~DelwS&udI3x(ctW- z-sQA?pr7&Rkg(Hv&>8}g{>8e5u|){QGznk(oXVa_U85xkmMGEgOecfkhR6}z5#AJF z0c@Jzs7)*;|L5-@1)#^=8;37Y%l;=p&HCShS{_v^FE_v~f)=VC6o>>7ae#!O>~&T$ zz%KLQWs#|Tj0xq#v@7@ zI0H=nUY*yX$>qJ$Q)+dWAfc2|M}Q-=3%GFS?Zm!&WiAgTQ3oE_WNXLGi1Uuya{hq} zl3FTNB`x5!CVe#sWUJ~LU6Lsr6jtIFaOfpqF%K<9=a+2;)3ylaQ8I(h8*h|qcg6^0 zonudYb&Wk_<(-oqda%6pwag0EPKF8rc-MF1?nPsxP)1S z3|ci!ZmGXOy>^2`7pCodT@>*YsDl#=lRhu<{hb^g{p;HI{R`9#e}Ni_8>RG7Glc(? z+tdH{a~7?(eI!?}HDg*UYh{?Z153j4LKrOuIIw={E+$*d=8Z4J5JyGR45zVvlz;yb zs0fjbE_qR6{S(?-B7}e?(B%Q@6AnG^h+DzF#e3rZ9kE$4hd9ksyz=>9{ zLd+86R@wGGpAtK^lLdOwW{1rS{!5~i;gqUNBk*(dw9}eV3wv4o=^Mz40vjWB&$l0@ zFUSp1TCH1sofns|T}^Y>fLD9Cr_<>ZR*h7H7{8&C#a%D=OGL+1@dXnu3(8dK!|&YE zRiwq>sp0bp@z?^Vf4}903Ri47exX|PKZ$C#e?hhKS3HOmvd$9Iw7rEs$PgAj;n`|# zbeM;-Fan8eK>FyQniBKj>Z%gYWAJDO-Y(hmcT(A?<36|>rl{jXZAYJ8bhY16h@Aw9 z(w90Nk0zH*6|Y+*d^^CYebKVc2J6&jQ;ZA2wwY9WURM~g(T4#VA1A{i+LU{a2n{0I z2%}4fNN!4|G*yE~j9ME1MluR^w8%P|mb(EHsJCiczJi797rWOW}HIC|y@0 zACkF8O|VF5&v`MR!zulxN7ZGbF1m2x+#6nfhxb{ ziv@nYp5q-iaZTXkEj^PeYQPBES& zD7!|OLHsR)X~)?$WC=;mNo|)`d>F}oCA%R$^SEpTa=Yg&(gjr*H`|S^oXKkHDJU$_ z8;2lxFt*YW?ObdOcUn+FjiZ;FSLFxu57+Ivdi?k~LYInc?PhO<0h^~osm6K(Ie)Jl z_;5|*yOZYt&yCb6$}<5Gxdn)J{h2q}VTf(&6N~Yktg6BsVBj>k)P!9eUxMnLSZRm! zY=I;-A#?flka)gslgtgN7Ma@MfU;tZ-7A02I4{JhgDW9<5>8(`Blevsz z8YT$~6ZyS;Fbc3rR`N#_Bbni(K}>5whnbdy$DN|vr*zB;&Y5bp=_fxWYOqCH9~JvO zVu8-T!>ar4(%S@TY%@gdnTI%1R}9mkx@0)sR|fwOh%TvTG_{Y#*ZIue8Ta5u5vf@fSxjRTKI0Lwx(j z_HP3Q|A%*H_J19`f6)E~+YWiuQu3h)NW(~zm(>6i1q4vSaEO!dAo+G1CVoREEmuG0 z^maRZd(~v9iPQi7q>Su;R;9i-{hD1dC zz$lbAFitRob5B*g6(2G}kpo$@H0C;=M;oQH&FCoJO}#3v!+ve<;BfnuuTuuI0VfD_ z3qbEERsuJc$vsC7Y%U(4;UZ506-Cv-zy!2Vz3Y29<{Ng#N}uBZ#Sm4^K585FK@09l zIEA_|G+Tu-0XGzxhLw;&S3#2BZ?_|#XgBJ-P_CCr`VLicCXjdnPAk*9r_RAjYY$Qn z66SQoN9B0bQdl2LV$aT(R>p3@LGF)rUWUinJ1T0WH;r zngdFc=H_CdAr-B~yO8b7&INk8$Jo)BobgLH&@=9-DCBHfJ^YWKcOV{grE>f|Ua;+U z8`+nT(17XI0kaPc(<;&}7ymgahL~x~hsq3>E1!qJ9oScd+}ub{*=wnQ4hZ9h&6m}A z2Kem48Z3^xr&;UJ<*0|#0T<$jc+P}ZUgUQ&MZ3rNYM~QJoU@kHpIO7O+ttvyLKOHl z$nj)RfePT8y)^jQ4wU{I%qyd~FRz9M??GFA{6hU?^^x%nT!FtCeWZm?4+g7a`Fgn3g+OP6Kcde`q&)tN|=P# zCR+0S@b2n`0stt9x`dirFw}U{xc2x@H48`&>}UE(dQn5Jh&pr@`C*xK6LYr^Yr22f z&jMZQ-xt2VR|x-hZ210XyQi+Wi%XB3$!27Kq|*|loN&BVc={kzCKR{VSJz( zy-SSV;-_dj6M0DprvS5JjiXfyuqDGJrWL2?*T@lz$Db)HM;>8~sDBaJ>;N{bH48wx#b~P$n$Ht-44Z9G^4Zt*%F8&bifA zNWN^-J;!N`ELz$Po#=bOtQ4y}s`I;mLDM^412R32%GMpT+A8!#1SgC6e*Sl0*z0+- ze1*V3ze*C#gF$aUKINBhd0mhUR+Bv_khEH>)gJ?jExv^MW4jgAw8_MBhr*cr{ai(6 zQX%9KBR+4yYFGZYTkUW~Y*TgiGU>3IDxaK>RhN>1`a{g_>h@q_=e~`Kwd+#_mxM=% z_(~yVTwNS$O}&$E1O;X8!xNWXf{!-R$IWK+v_3%7ukiaxu>cCGH{r2;>N4`0r}<^k z9FQnwLVJgc@1SljDTgTUh{X!Nh85Vw9%|}4>JRHTmQ}7sn}RF@sNo9sD~NQa^@ULa z8|-2DG4C-6LpR7UH%{OI`b!#3H|tCGXm0oOFgo+4X3QZ8?|u%=D4SI1nK+La2(EZ8 zbY8-(y}0@6x)~*BQqTIHMvSy9WS6TbaWLyxUp@6#6bXwQb z+D^CJ$Mf5Z-M9MMjah##15MQalfgGa)B$jP3dv1FuJyXflw{Y+J)>?f!o3B0Np+;# zv@jQh942w7;=Ivj%h?8z8qfjxDo~wjLneGNuB&x}3CHZ*?SG`u=}i@2wn0@GshSzobbl>@F& zqd8@LH?0VPRdKv-0+s7nv+@i6 zGCD|o*;C=R*rCzZJ(^0o+aHrrR;PNGu%94;vbfd@gd2MhYVDR*?Nl<(id!p54$#!L z8O!;V7mUzDScA!&1&==Gv5^XW*e)#SD z{CIpLr2t^ejJbt5ggnVrprzYMP#K~O-Do1AyWhz;87_vn^ikO*A*DHconZH$1q*;>hWfy#B-%i-+`OBFnA7 z*9`D+ty=T+wvyHiA<76P0TMtH~p}1j<^R2nRAr)9Hp5}06c?0>< zUNJ5xx?UWTmu1%p#KFOF%#k=9qRqRinO|q&*vZu1dLg#;qgRxKd=h1u>A5#W=BLc< z-cbBu`cbnN^#d~rgmKu%Q0{(#$;z{bRd}SDGskf+X=O{rAIRyK9T&oh!F!i-p&oe= z1k)Nc_LYfGm4S=e?*}Qxrz>SXxlWa_XCaEukH_o52hY-<_e|Br!W*h%a0y}!JfY_a zrS7^l&VW{fz54hw(>#Fl@!#-VT_arWeB9=sy~mz9_A)rc-GLYY^AZFS7$7J3!pPA@H+mWZ#h^(j~a4HK)4apSm=a{+?47Z=IEV0Nk{_{td z@i%n0hmST7f!ItOm4Xv_7)QykXNu!h#hQrRb5Y`;jnpUl*85Ddn<#Ggp+$M2c!vmhbkTw(g$cCmYHMV7R@+A3w6EJB&Sm@b(J+QSb-V z6>j|cwQw%`w;c!k|NBE$_Fs696ZBUU5GU7|u^Sm;AEZFskZHi0w)laluwrt3{%Vq= z`y7|W*kB=f{!D(!&HacM`oQNeuGp zPJU77H9`1k&U?XR!K<;+T`O6$@{6}jSa|V`8T~0PlaMCiMf8A4-s_TA9FsSH~hudrF0rJ}5TQ_?Kh2+jv3i4`3=o@!4*JufI zG~i@dD*H>e^bP7N2a{S0N)Ov&B*naG&9d%`-200cU_?a5rf-MN^47I~{7%igjx7|G ziid2g=!O$>VO1Q;#cnt3U$Bq1T8urrFvdu!#uH`^ISxvPGNsP!^$WIHH83Cpqfs}n zt%Zn24WYL-92}H@DxtUBWnQO=%FAl+x{Y8s`21~3I!*sz$4nyBr3RXB>V4inlcP&m za!fX*qb97-+(DLO)_TLY@bfa%cEp_$Pv^d7*>2b+>BNpicvK|a5}Tc zA%yCz=>6%T7VWhKlvut%OIk7dit$vYt`lRbamC*N>Qc*MDKK7KPAL&LmK~Crs0z6u zvXH9KN~&P14cL@VAUaE3V9y}an5|1`-KJA;{%15#p&8|_IT2$R3Cu)ota0QcOOF4$ zd5L+JDGMp6b~9ezPk-8V#Ku*nMc$s+_8;iY73JQ++G^3~!uc7p43)jJp{fRqn?gb& z)n@9=7;U&-8ecAzHtgdCucuz(TNvqm8dvmd`^lfN3j5!uG4T|bd57FeZ#uOP+pf{1 z0Dy4K#ztGFiew)C8&Cc6>1OEH+N|;T2&urDzwYn+7n^RxU$n>R z-_jo5{~r_iPu`=VqlBe`?j!5SDkb;~p8*Ubj~qeZ74!`T1z3fM9J3S_nyHG7_7q@? z#mcg#+;u&3Q_dE{)K$vF`P(Q2?^iI|Suom%|MnUCKG}2TmWe+rW5DEv`%HJv%zgKD zf}Ly6IuLzyOTM`v@30YX2sx^=c8tJYk!fd?nj!fw6`V*;fO9A5tYYaZ$pC{5?}{4e z-bAyFD%4l{E|V3o!URLbu&Krt(lxRjhFi4sT5SvCM7K{2uhlZ@z`2SN{@N%RUwt=k z3;&Gxc0G-mKrYo1{mM;&D7Wr0jzBa2=j7lAol<1U(Q+aV6&(9zRg)E-*=K-#_F}fU1 zt8KE)mAH}}xS{5;%NnIJL{ZDt`zkKgwfmxMi3Av!HmcJGAMK0HHHR7n`4H{gfF&v_CJ&-5Ji40~BbNCa|GkRzUil9iBd2a2~WQJHyG+ zyp}ICW-mzB9soPLO%9^zeQKIGNm|GELENS8)oQ zzJo?pshlk(v>BIGS#s6JRvb7q=CZ_?&F00hJr`vIHuP0ZekM9a7Qh|5An&UWq4-Oc zOp(ui5c~Q+_|6QIc($(r7m%g#J~0$En|*vjXWc51h3PhjFR_mQakICNe&I@0p;}G0 zY!v-77t=Ddiyse8 zA9+_|loGYdlPNHO34MUQFW4Rd<25+I!1E)}-?wE#m1md7Rz!Ft2%c8smmRT-@epnc z;l)|s)-OWYmqxZ!y2|1lT=$^aK17d=8yk9vqBSv8f)7#-2yr0LAbGbu1bRR^ zyu2_yFF*0uoy_pGI<1i&)6~9LsLXc{tu>hvVV3f%Fsc1U;jE>!g^W8&v&cC9YU9{7 z$MbbMZ7k!OPVf84z!W~=2}B-(1x^M1V~KIFZ#xKMt+q3=;0ZSSF3}yfbR>`R`20 zClb7*R`(n~Lxt3N$BP5z1=6D`I8drn;xp%rGK%UUJ)avA^)spLIV zf7Tw8h+w)?%vj{YX49evPNm9|!AVWAc4a8B7?lPdjWvC!jG0d!@leoDaTv>Rx8x4Z zgGXye$D`~Ux=Ak`UkQ-X9cUPL3C7`$_Xui7xtmiIj}Hr(?8nE|L}G0ziJG zwa!`4JpU-k1~q54$xI9s$1yTAw9#NM?gg9uw-ogB=1PX)E{^&ne^O>F^dS=*BQRHj zaw4l=kky!@c}gR#{t(ibts&=Nw)l4XkXZ-u<($)T>sLz{9u?#wkIk$Q`B-w-PiiFa zY5*vw1>|hB^Gk^$^hwIDj%X!ij@!?UF+<-7v)SWTHCD2%J=iYD<{tCXXMOnuG)U-< zJ>T|4z5|We;F-AhBDhoKbc5V>USkv``PJaD4kB$w?0h+0B5&^R=Bl#a2V^yua)S*S zH;z2qj0*0`@B$}2;uvj^-JKN)aKf)lY6l@L5o_REy8_lt%)4i1kBV$-xKss z;G?NGY%zyk5M==glu%7Kqt|%%^bfp54VygxSRmXu2|!^Yv0mM{WlTG(drAL8PnQPn#)E!U>Wc=k1;4B`o(A?0Ce$ zSw|aeszIOawxNtx+>ar=I{zx^jZisgr*wpPwQxRHpYjmvDAVWQ4B7wi0+!GdrBYlK zQ(!WvdZ=ki84lY)`~&hAbHFK#2%!IB4(I=tIdJ^Xn8SY!=08Y7mYRmshBER;HIhbn zfhoh5P#&>uT~=evLU1#zKdX&->4G4RAQHJf5mk((h9n7xj{4_!xj#Q}*D*M=nwdIp zdN~JT^)Y_=qv`(i-_@3I{faAfHFdmRTAOLx;YjFtd)iI;7PFVA3%#45t{XY~=vLv%) zB7Y>U)L;gE#hyL@uY25Vis;R4Woawf#LB!OftSOb-mZIO84n(kS5|GCR;F>)%CWNi zlVV^tV*!fPZK8QN&Q{39(tvb&4vpr+*E)aJVT=GFIf~@{kk%h3ks*_#bsFUBl#8g#)g0n{CaSRi35r zK1rUK=ETMtV#ez^ovEX06D93i;YZA!UuE?bSY>T~vc;h-#>&_e6#(y;3TKG7eHOzC zlZ7WvqcqvJ!nN!U`lm4HH_Zq}XO46#T4N>3lJLFg=J^axB02O*>V1Y8>G%$7XrEyc?9_}*xp`F}5DJpkd zsA^u;K6}n>do>!mRWr;@>O$HoZ6Y?^wX_un8R`%lj+9#NnUyZtcm@5|b=Aa{1q};2 z!0Z%6T_FZ+ONn$rct!aUdmYg!M15W}(#cV#cq5x^1uq%dSA>!4k&~>SkA>x~@;#0; zTOud=dVHozvx+PNW=W{yKg{BL<`-JqmGLk^zPKhzsb5y>=f&rgB_g5-?T_v>G@nMvOB& zw#clyy3B;GwqF6z7RUCsQhpUx{KED%IDG6-DnpTtrBk9Mix-S&wIpG zRkO(9`huP1&LHp-9qt@oX?5njP%U+UgHj)jSFS!L9Yd5g=Ij(qMQKs}wlmSs8x;>d zjYpcZn)#!|s95sDN)wccb7;OrQF!#5c$e%9cOfUkZsW_z0?Kn!f_rw6TbWsm1-CU# zwz^S`8;)?UO%uY7JMV_yvE9cW(czV{d z*-4qWXV|0vfwwc6&{J=M(Gz^TR3R<5loj%p-vdi~(e)gacc9Oy)&<$CtRBpa0mzMP zcgGy3Zsquf63pSZEZDsld_Sjy(7Ek5@OeZ~gl;7loUd?ov6-wrD9|g>bMpRhJ5E_< zOcMW7xiQ(4I3E!AQ(ljwL_K_F-p9D4n{V;(3HxxfBm5F zipo79#7;(jRFnlFvzr+DfT5%ok@ZD}P2%wzm{(ruu`ES1tFS4mZJ~vU8o66-Y^2+K zZiQSb2^U!OG+lm}ZhSTxybbk*rE&?>aVQLuhzwoA1>Il}8aZP^8z6za3ktr1BAlv0 zOY|&#!#~qu?M#IG=HP)*GIoX`mjeS6fO%p4%a*|&O*UprY-KBixx1VJr&`xGwcRkq zj8nSkCrK{=QND8#%+ns%$v;+Ep4LBS7KiRw6b&UR6Ny&*MFq}TkV9x1wE5uR=8gx? zXX=dikFnks*A!y@={tN9d!)NvPZ&;PEWCGE$gJy`2gJvYbnVV?=+B&!NCA1fgf}Yn z{^ZZUnV6f&v2?_jzCsc1Kgh&HEv&zKSpM(6Doc6ei;2PWBpO3Vpo#>Mg9o4!pb_lG z1dux_lmn}y(4JW=XGr-SD3ZA^Y~^yYuNJz@ zjz((ic7ULb2m;XO6;4Kl=Yl#I9teuO-WiPJm1=-Mp@->%cFBQ=45C69hT)luCT25t z_Byz=0L95VaewhEGIT;vr-7sT3&@aVCqYs*RnlVeYFXQKT|%^BcA@u93j}IO=+^)n zD7WFgY%=bU_)Z$*Wqa4)bC@VtSTntpw%Z770131Or>kqWXFa}7Ukg&GhVrAt0_!32 zz|Z<(=rWd&*(jxaQrcq~t*Op%$=ZxSds{VGQ=SELO+im z`oKw(OAR;agN{kS#2h)m3PfFW_0d#hKYf|QPpI8PZb+Xf?+R#j6IN|}9Tq1`Elr!2 zO=GC4Q!XWcF$qcsN(nq{e1=p6l5y|NCvaEzh_Db|%-_9Ir(o+iho3sXfSza)t@$gT z)nH;_CDVIj6;4|PX_Hk5TOC?RnLYN+>%ohc@cDa-+3ACgBrIq&hPg1A< znxubFrz$lYB_uUuAKOt=0%~}8^Qt?=XjTwnkYLT+)d0d(zh(i-$El1dP*uQIYlp$v zgOIP-XK+^8zPZ`!cg}a2tn7{s>i~V?w7cEyt@}sr@JL%ZAZQDtwW7~GpvCS159ox3i z$<5jOoO^HGhh6orx~po{dRdQij5)?Pf8!f2J9ZRmb&KKN&r+g-gY6M;Azzb#_dz6M zfYl6BX!Di*Y8ssokzk(wTTF78lxwGUUrJmK0UlqHr^>MhU*xos89rdM6V3WVL=MSw zAFr_Z>~d49x+|D)H}q2Qm=$hr0Lz zBe>_mLhom170?5RjrnVE2eYlowiU|>*pw4`PiRF`7c4oT!o8b?*IA5R^{n%=wi&X1 za}t+cE>GcAUol0Q$qDN=)3taJ;u6sJ`4RyYgq1_aqwf{xb!@{lQq9KpA&Z&iLv`kr z0rSx-5K@WS9c^#Lr7ETZ@ON*AK@s^C$Ft#;cM<-Z)R!#pw*u@=EE|bW=|g@w3DSD> z^MJ%jQG?_Cc6uESK0X%FfO|8ia^0}HLouZwE*d6+=7^V^fX1#`F85m~4EYEx%!ttf zT~`-Dll_tM6ADuYxWAY)aY8jA2-o>K_%mgeM58Wx-2Sq@T_$TeXI!22^qqVi=Z~b< zvM_`AXqnjfM$*FA>MA}JJ4nr{yea*}zz6gn&=(iTOeWL#VciOo_k_aQV(hn*=xYWv z;aAsuz#oT=6|@4q0?&667-(aAn%0!jkel9S>w{v^)B>XY51W0TOtJ?MeX8$eI}}N* zCQMTf<>rVGP+!QFwyARK zNpHQMnNmK$+WkW}=5~BJgZZb;IgguC$AoNy#8$f}n#wAT`BdjTQx2- z%}Rn8Ln%Vt0RkZ46-&BWBjhQMubDO^ipE6-@ude%_U1c+_yN*RWE}g1qa0a^2z9Js$JHigdUN3g|7QRJ#H-(g3l6h$x&$7 zL#dfjljbfvONdQ@lObkJex>2mLYx1X9VB?yqby3@OWf#)Lk~kS2SXo*|ajpm8rl zA?+6e(f9_a#2HHFGC{>$J(;zt>uP2FXk(7=D~ z41A9}kup7{-kG5AyIxMV2DAk#2q!}_RbB~_CU;OB9yH^$tIAJEoX}M3=!XDa>Io`W zaD-GrFUMvMCq=!PZh7T!!uJ0RlO~&MzlA4QZNS};p)6s}IpeFt`dCZXEseE@=X|O&08>jbJ z*o)*`U2MYHjL!hKj2i0`BM5{9#6^!yc)Zfx-Xo$`syIwyN4MdOGtqtdb zZE+m#=e^Ww4gHQ{3Ja@Il)=st0n9_Cr8WGyYhRZKD6Wys+EJ1=0^nVKqOKqe-`&{S zG8|WrISeBirV(V*CS!_>!@Z)tNpw6P93z<5G5EZORNmEY`X>!rvBcITOc@tH@Majr z60iJZ2f*+W8Bcak=anslk9!X}bYGtga$Z*#1y$1VwU45S3;5c094BtX;BS=W-CHh( zklZUw5Bc$3iKYyZRuL55aPr|9i07GaY_y*kqn6#tBbDSb`)!qtk7y+#-M#G$nx1C+qk>2KofT}{Y|E+Fv32g+m|pkYNEk{+U&B14A|?AK|sVR zC+#$Ppvo+&UA4^x^xCL?PFLF7@1b!X5k`Qbo9p-lo#U{svu&UI5tfnlYs%>m!L1$w`GJ*k*R>CG9rN<#B%G4J+FjKqDRDIb8h!}kS zN}Vr}Wg+;b`~>8uU6S|4*vY1he2P{Gs+c*X))x=>3B}fJ zvlD!aVKJ1Vg$o(Q;I(`eeC=Me?8y(9Jh+T%J0zq0eLgP~OkQ7IBwgt;g{0-#SG3`e z_m?fS#fTiVHyY0~J3A*C73rxA2bPc^76feI}7kgL55SHv`)Qni)Y7!$taz{wG z?heJB^4_IC0HBSzeI~NI`yT(nRs*oJ-^#GO6?i@QslL4NM`_cU_WmIX_tq)RH0^Q< zMEF%xD(#e;R4!@oi>^| zVZ;+;9e19QERdUj#sU3EC5hE1EVe8}dkq9woZ~}y4dgN&!QDXZ^4R!8EzC&=>sNhb zL^bG$K)`}4-_o&ntNS@%tzxQJERm(>$oMD8&J3Z!^CL)0wr7QQ`7Qd~GmIJQ=VvE;R~7R%)!w)=J)~F`McAsqfO#rpXkP zcuSVaLuo3`(Q>F?M43CgnZ|EozA>tHNz4(&=Ji6!c7NggC~?CW<(eX#BXxv{>H9r| zk(Pn8O1~hsA2Fe^L|cC=_oo!eh99;*(O3&>s3raguOMlnZHMCt@;rY-o6GbWe!4M9xxjkk?UmsL~zoiG>6a!bDsx+bT9Ic zpvrIZPeRoRi0{8!e|!q|%Q{$nTMCtK#qB+?NZ}Pde2h;G02*}H3n3ck+@f{PilyTT zrguIj`k;O7M_@26C60*G5lCK=Ot|-NGx*3tz6GDHfow*nD!@^(;rRGh%>vy@&EfJ@ zvzYzIn&lq??BY)Lt`7gsYsqT1&M2y1jhLHri)2d@I=0l;TGRm9lmzwzQR%Wl7)=u8|zZhYtJ%Bzgq?yPJ7M8%9{5xz6NshOBCi#Wdg^Sx&*HISV z5!bZurL6zwTPnu4sck##4G#`D@CNKdrN&lry(PB$$Qv>2tDV1cK0oWBvgG&3sV%>P zVSu7#z)28j3rE00`IH40vf0+L=u4yDu%7%LJ=hV0r(+OAH|#qesoH`q!*q|uv#|nGoN<#vsrsa|;9AYGh>qvKsa44Z5@D|0 z6mg(F$j$t_&nnr9tmakEI9rgRt$J_zPoyA&rZXYrxAq; z#kSu^hcy}xdAQFpP3*+Vi2X9&+0hS^T8Z9MYNSqwG#Di!TM(0?{&)+$H&wlNHXg_y;2DSV&xrZvpCY+C&(ICf!1L(XT>Y{RJs8p&4LbA61B)||k) zjrYOXGCy^$yzUy!Gb9EIH&G;C@>-Wo=PrhIu3=qhs7@0%6cdDOV_qXQmW^+Pbr^`64iUW5H7f4@rIv|R^0IU`r-&)uJ=TRJ1BU= zH{~JIF6&6Sx<3>_4>W?R3?)MYP4Q?n(9q{jmi5|ZW^*53=$c!$jKyJTQ92Y*EP&WhR~zbjbU#NqP?~itf{0)QAfiP(=wY- z*P>fvj*~{;66nvHoyntBY?#rPV|qD@FiQ!rz`@csyM!=U1%3#qK;ssLk`f=0Vq+`s z^F)2uBFImcHvToVxz0lBbXud3BQ%*VAMYci1|HZCiMDN7)(OgeC4#WTB=RWpOs3cO zj!WE9Uoco4!YQGH=z3S}3Ye&4@KkaRz$`=*=8@@$T zq^h=GvL0(h46Qq#7baSGY)~-%o#<6Y(WdsAMG4v`+aOl&g9uwq8=F6f^-4TsNRXdU znxL2zx_};|iQ|urFBG|4QxpFm8{KEIQFpC`+-F$mM~aIdVJz}7OsfLqj#G1#{BkgH zTlUtU$>?*5lVg&oj7X~R;SyrWSbuY!*on81t2B~0+p?E-(Df2|JY<`1ykc_h=uRc2 zII)!EwGcBpM0+v*@W|((<_dRtj*U`ue1nqGEGnjFC7HKYuMu;@>HT2#d>Vse z`{DUvkf`gjNfg@k=Gu&~>4^my;NHm`iI=2W(Ff#rCd29oh=)ohF+j#ZvrvDavCMVi zXDsj_SYS_StoU@UM7^N2=NJ=Y#}CV%gEmHPgBLx6!QZf89-158-eDdj((%f3c;=M! ze6Z(~X7a*r6-)f4Mm{9pv%k3N1#HG(=0;rta#(T$_~MbYt(3HXJL$xHed9YSM6hah z@wifs6~0^Ey39lSp@sgtRfK_JM??7%lZ|2jQ%%YF&t4Dzm3B={{+)P>)wPw^#85vL zF`;e9+;D{w6`aTh*oi`dN^BiQgCT?%NuzZ$W^|}+48iL6C76>oGdI`tX9#9aqzP8j z8QWY+=3Ay*UNgD*XsGJ(a4|w5FRZ2?c#h8Tt3E!SMhU)&T?<2b$DN2^m_0L&hgSHs zq8IE`F;S1}7Qk!aUd~8J8Zj0<_ZLDK6>8g?KHtI6L zhOOWWF7zDSVz0Xq_56yncYv;RQ%_YnRU1`lI^;psYdwiu4;DYKxO2Gu61>dpih4Cg zoeJ&Q4Clt60!x)Kbm1Z~Q!#p!3g3hV%pxjX^$ADWX4+sd^E2@I{qA7EJ(pNp0_acS z<2Jon+omF!lZxNP^cG{_U)v7SX%afRqYTlN$0NE7#(vus?^Cm|Y0t8zqmGR9nMdz0 zjz5G1HU6%6#0tlGlq)60S~57Ur1h&vJ_-;#$^82-Hk55rnr%kWXje6TOr~v zMR_g&+)X~8^j(0vbx_S*XdWrLp`&@vow0VDQtv%x;Av(8<~mvwYxrmy{<5R!%|^5F z6&{ObQlmsoQ= zc+T+m9dnh5wRZl`7?>3T{ z3EC~d8T2C@Gx3eh67p@IjuV^nsJu7M~6A z&$%BcjeihODZX)Y@X2PdZQ$-ZX=woCq7r5^8-bMPt-_u+ygv-8di3y@tum) z>NciUH~qg3biNJaaN2*k+PiE5JHb*G++Xhzn<7US&lp$B`of-t`ct39`pIOj3px56 zil|FZD~2Kx#yH_3W8ym{a#4Xr@1fEQ$zfL(ktP7+;H{I7a=0ay?VR56dc7Icis|Ia zL19kSF3wk8QNKwKrjoPzHajDhRPN@K;>_N%uq&(>TPpkz(8&WvnNUlFzbq~!5^D(= zI9*qTpAp|4=QCcjdM=9}0x}*1y~;=mCbge-FegE7-Yog$sIBDdfNd%Q7wf>4Y z#~u2Ph8jpV2mEj{0JR-O!GR)&;Nukh@9Qe>IQ>#j&4?~o;C=* zOQ9=_DFWlLxsLdZ14-bp$$8EWSQtfkyM6P0(bNCPBUq%`RZ^zlgZIr))8Q7H2_8no z!Y>TmQ72%GMHO27PSI9?-bnFQJB#&$ zO_OK}!;X-6-R0fAz0u|%H5K=Pn+qCFRAIjb+x}6}Z9SQk*pP^v&sPtz^=e@VZ6cRria59G9g z18!bu1o@dre;D;FPi*mQlv%N`4#%KYUDn*97aE_)8q4mTl^#jvJC9WSk4JnH+V_9$ zuAf?coH+ZsP^=OE(}nU6C+Z~az8)v-3~fk7Z5>=Z|9!74Xqg+}4x;%vi@I}~`BLQ2=y#@S$1{1ipj$W@!u^6uERlh?Sn^SXjif+8Y9BqXW>Wg?B+ zjf)fVl9!<9a!=rBaCX*~@2F?I7H)B7vG2ah2<$oKb| z?cEH5_UG1I>{jvi({(7=I}^0Olpx4Q*3X_ILU0DM?Ha1G{6qi19*S)Osb{5 zz}tQhcC&Ms$sk&s&Y6%TE({;|7`}`dtD8*GO06hXDyVWhSy>(2(qhRt~kjys*`ZUX}#6CKH|}k!{bnu3)7%jR+|)O@Z7m2$D_5qjppjib#Z|E7HVBMqz?qaZ z2IJ;yTlFMrB%%Bz-wPuHBCcv>4zxbs7yyf9v)3{W54fb$j&HVf6`e)@>A=4_uvA8k zbyjY#CO@@{mx~%EWSd+6D%GltrQ)POg$cuqsF4ECRX!YiO4!`K)2WAR-8ad{L@nRg z&gP(p12f+Yt!p8LXx~R=R)6j>L^J!*4MQ< z4c2{pGWOBsX#eBVml5`_5BhHyug$zQ$4pm1m6x3iGs1aXwVbJ_y4S*W5GmtUgP_gH z#-`Sz5lw9L=xy27hirY^S?M-@lB9c(N=WGfJ4jJrZ-j$y za1Tr&%q6)Xksby)_I%P}b` z=bugfci#4TJUJo##J29&P>YgSnfQY-zu zCrmzptQBe;?c0O`G-jnXriT2o-|u$rWhg;p&_+3>N1&8*{&U>F9dBJhU`FwS1?dL z=v~OD9_`FhfZ<*0*MXlji?Vvv)Jm;{!y&1JS68Fu`$6EU>74&`T9uGd>=@|@*T;WT z`30x(R2E?I4dMon@TxwXrb#8I0*L7|)+fwiY{ZN>YymdXD=5FK;aIvhsT689gCR`& zC|V7j}Fw+B~Tl|TJqdfatqKd1<#hG5Pe~!#xJAz0j?P{ zT|2>XaDG{`A}!&ok%I^bzDAi^vGah`?upuJgbHRo8YeDXgdSZJo1x{;wCzRWR=6&4 zv4X$0bBmI}NR=fFqMfI7UXy~?UPn^(Z0xffvfWi=Bbw+Kj00qSLng>3AYaVe%*;v< zGeXuOn$k(5cvH()S-aO{B{1E*Y)QMWWcg~t*pqjs>9*CSzLMeVg&0R1n*puqv+lF` zN?oE&?@KIB9Jdu2AKDp~oUI(44rH9x0Nu!wsp`;YBY;@YSXpXb7~8G3&)A)Uh?L>c zLzy*GHoXBh`(ilD4fDRW!w?BTYCTz?iwAn6iGOFenfFHMjxa=%DH@bq(?6kvJ#WU) zgA~MA?E+ORcgdP>NKD7Ca9t4bUfMg-4d83@TcG9G1hh!buO~w6Vsawv3-H4>2IYRF@AKn?W7V+081$ab_(cC`Q1j@@IcJ3 zJN$*RvAcZGn!fx^)mbg`a6IUvW~Y99wcK>@Xo}hi0UscYQq&$&WMB!G{+-5J0?vi( z>#?viySJb|2%Z!xIpDTGA``e{Yk#r2N-poQ<4 zW1GTY56XU~(^nrFP!W-XCPpKL&V`=B+z)mY6tt@9jT+9lFon^hJAHRHXh#4Fr6D|E z2EcyH!yV8lF@r=ks+r)n9VGS|`qUc0EDSjM zmB5M}C>&as>BIO>eCSP5oPm>#%YyTlrsBCnKC_`abj?&IKZ-qZ@w^g1Z5z|V{WfZyppwU7U z_nH;^dI@vdVOXfJ1x)kenuqd>d}XwZvdmw(G%6_OrxnFCUm2US)OsjP9`%D+%*O6@ z_mbGkhRLLeK48k#!2db#W9<2DlbZL5owf^4E;s2&h9HLpcP%>k2r%wOVrU6#!ZppU zpVNsjO*oP@JgzOQ!GZg&YdesinW`N`+flvnSeUn+_{+@(h^(!4uc*Lf1<$H&quIp< z(_V{>Qs+v(&*k?$7vcjCFzc1Kb@=OrFrE?*(UxIX-!%vaG?DL8&reluM>O{!HL$@a zRUf`Nd^EdvZp9&nC9D8}%VX%tX^#&>`l!v*NG_+LB;e@%8}HiJ4@hg=miWNX&TcwX zqa$J~6up~K+u`zsSY z>NYi#u)6UHcB|U8h|Jk(C?4<8+pUgzz>!y1;Y2DH25AGd*g_HqiMx;FYYl;62-2Kpv_a&5KB?B{qI?i@zL z=ZeBvUJUS#t(OkAza4)I$D6&bJXA{;2>uk?# z7~~P{1h;hq%r55Q8XhkZ8{9NUG&>l2D|Pv88{G7NYOZxpn_ut|y?cvFd~Oo-_NdEc z`d=YzZ&f_D`ES7@IDEo?>i}21zFI(crOKy2;D%Ka!n5_xRe18FcG(9?=h1y zk4Y|_w4K8W!vYtfD7tzTP^tFrcFmX7+5l_1i>l1*y2x~kUdaQR%PdOEAA{yoX zg+W^#u0iwpsex4 z>H~s%wN=oOzX|Ov-TP!O52R=t@$<9%ZAIE);7_qxl_IK1mLh`23p%}uZkntC)p((7 zr09n&of|OiMBnaFP*QPJP=Vl3zhS2NQ?f55i0_?F7@7abV>}ME^N&?wEp?BnM-0_7 zuet*fzcCu>`V=ZHlPxu6UNM6~28OBD*rT78%-hlIrpkk;&0l1nm5WqR#RWk*RrgL1 zzZV$g>tAaOIWU*&;(jmG&3~3Iaf@4TSs0N3FuFMoDt?5`fcEfLQ~30jbt?2j`qhUa;A;tmA~-U z%g}3*Ze6!)Sn)=?9OeD4lu0^j5wV@&YhsPN>oO{1_FkfEW%#vG!;>1qY62_>-_7?= zfS(;G{lzfZ)dz^*Xim>BlAAUt@kUJaUL*y$yE+$Cy-K;EtITb}XK3M|&wqI)P!oUq z2Kn`FqVk1wC`f~Xp?-scg8Gu|1i!xj=kpIo0RE@v`ggaLt@PivpMRI<5G;_8`s^c` zMOV}+!W&PdNhA}0BiKp|h~OGw@UKWBNXbV_n(75}yPba;$hC zO=UYzbMf@}`M<&EMK~dI-%66!7VNpfAg#|TN)Uw<#3aP1hKNX0??~CP6lp8Lv{*V% zqvXVN0O~0I25=jMEzwz)LkJfsteb?fXSe(^EU}fmnYgltZ5eN|{XNl)m$;U>-t_CC z6;qWbW%#<5E|^)yT)$QCVD|6to2jEid^8*Fv@xfmx<0-I#p><9?@Z;`!dCL!Uj{NG zIje>ml#T8${2Vs)-eQp%zp$FBj3Qe#$4t{Q8|5ct#J&9VU9!nrWVa3@((33!Ui_&D z05O&fa^HT}xOFr^^qF!;j0hYAI^L-apGsEyq~2O}b@-j0-(Bd=sawks^AEwEP_$XX zOpmLNnL=C$KbI@C?LAjhu~!;QOz1~0f;6%oIxs~8N+dm?u4u;DGbnOO91*Mm#h)$w zKUp#Hv-Zrt0I)GL49!^qOLKdI%9NYZrKs4a_=m>A;=n zjgvcMQ%2uc#!?MROY8TAn1gk3veCrg>}fhWQKS{`s4e%%5DPl7-O`3oc_}9q$G`vU z(4KA9S;&3CmxN!Be*fPN?f(NP{kQ2(2}X*Yx;9e9PmijZ$a*?=a7AHKBC52;|MGiY zLqbp0UC$;a?SA(6nGq>?-bT0<$C|bo7nO>-H+=H(p31t)dO19QfBm~h@l&!>;)l4L zII<_6FD0qsK-n#yOn)!Q0gm#BOhHh6h$9>dHaS*7^F7upjkZr}rmQ8;VLd8;YL38g zT-gc^eX6WJBOt56q+2gnJI|HRX&%0w3{E*n{dp?Jf)R7Pn&w?J6fyt`lbpIbuH@hX zMu1X2RzBk@W8F&{ei$jGk#9+7H=t5d|N6ovQkZFat(p!4v&30<|7Z!*C{izQRbJIb zy^_6UDOmsL4BqpVI%hDO?Q-q3<07g&n^8u$Q=?ht!tCR4eT!>%f!(u~`jHemXS}C` z+wOTbcf7^K^$S7m*4iR=D+oWjeV|@3GQVC|E(l zsNIN0BjV@^39y{NZ2e^o!JNi+jVaGMf%OGxLD=my2YB+bIY7Fz(PDap9Jxg39{0!b zcfcw2I1>O4U>jKOSBFp1N!X^Rm@MTIWMKDGwMP?6l+IgK zLy4b^ZgY#;AzCTW3c1xP@P4E5`AQnkFpqe%!ULG_h@Z%ZfEjIdn!T&|uq#7G6KEEu zpv)g(D&Qf8{SYgOn99Jl>Q)i8L6_es0wM^&(mfbHYUEGE`WDQ4cA!IOX!+JpZiOt> zdg>I*hw7#>Z!Gxuu@7QA=yoD{n!MC-!0k&wslVk1KmTZ;E6r?5@*yVR;P z!g$yJ63PyI$%@jy&Og|HgpWDC^7lVjd-Ct||L>GtrDm&+BZ}%rZqg8Ejye-7aR*W0V?=oysvgFM#VErm3W zwI26wXX@P7`?AaVNbckH=ppx8iNfixkXY~+Qn`IOTyw^n-FZ$_+WW+@BWRaBSixK9 z%56K4r|aT~H)=K2N~Qrdk2V`rtVYu{_I1xlb!xHTXVXjU=3&N^7C43qp0^O~QCWF8 zQv&riJ>n2ktakG+P(NP1lWm&qc@rSKl+kAETyu&IXhSS%2=1T2T@i2j-8|*M)HD9% z*?gL=rsh!OR!h`meX-xLG^$xrd&(0vnbCYQ$+WL*$ZQ!Y&@LA+#UnaaM`6D@v~jvw zvV;CyBAWHlS?Fw?-BI!kpQdO(T=aVr3Q0&Q2T;uD@MmxSHh(Go`cfo2aEup58PSuU zqO!eAzVrl({s}jAS3a5@lOED1!l1U;fIUop!)YD7`ie2CNbCDFk6UrOc`Lt8)Y}Ay zi=1rojuQ{p0byNDvnb#Xm|cMhkNkP3p}jY%1#1&iy9`~P^x!X+X}T^e$5{ACTgH1W zANz)pL_xDr=#bIJHp%?Ki;MHFNnLJqg5($9MN%b2gXfdavpdF%L6LFUxE; zpEHzQU5#f^Sqe(&2{5MEvVcEB`0uSfa4^7LA|RBHD-*d4rNlSAhaEd3j&5%wb}l#v zrQ`wnPrHJ#5uw=Z*AhT9orSo*v7T>a19ALqI9{{;_oTw& zQml{n<=Do2F$BF>Q^i^v#y3XxuZ7YaV@biz*iny(Hv%C$2AM;q3Q&DsS_C2D1@>l5 zZth_vLQ4t*%^|eM1-id8GatK^nd?3MS(OlO=rRssqv*Xgyy$f($Gjwlu;8(YjbO(-`P=Ap?y|o<28i1Kw%DeYG`r>DcSVAEBhH?tbuL@erzoHeKOh}8&88h_x zk*GmJgg=tNP@0M)4<9S(xX_?=O1~pnhD2h5yk`fY@qEYZyGE*t&sbc^SoEArFzgcV z{K90wntrGWm7XC`B2d*XM{0305h>(66Im!xK^Zzq(7Y z-C~UK^dh2nWP;N@!zO_(@kgNU&i^1deU zh0UDIjY|gNs1zI*8qzAO9D?%{PAz z|E@#9-+S?mUb-TVs=$Nc{S+TEaR^2b@G``bW@|VhXCR|E4*HJh{P7w;l8wzO<+bsr z9YaF-!w#$>0M7==pXvGm%d|1*%L4%Rzo<#t2`|$j*${j_~B@ z5Uo79Kw^HZ0dOBHqtO9T6t?dqofjUNwgH7L8Sa1hR9%x>G`qU}hMW5%K|m{}N=p0X z3}8pJtI&1DCU3H8=@lql+m!T-4S=5+H$d6ph8oxA#f!Y+MO`nk%g-eFCE5gBV60tO z!~#*!GZYwpTATKqdJ0oDZgvI9Aj@uA=hRFrB8|h{kl~HOL>?!~jS*?~&fCW}Z$dd{5d+dVitT*YsPA#)1 z#RASq_JTW^JSlO*t4gMJ-35uRiR*bW&qCCVci9UrCKcZ0@%?||PLlXa}lI}rr_N^juO!_96mnN+1 zi}BA=-%u35LDiJ}9 zm5~bVf?zTI4J*l#i(B%b!6A~r5IV>Gu_>9j5$i*5RkJynCl#d5=|M7OoMK#h!Mhnf zR=ze9TR7oN-QVy3U*S5Ztd=SJ1tG`(|Adg`&6F+e%xz5nw-3aZ%`=K3s%~jEGb)5u zd;uk;)L^sD7+#VWY(P+uv=KCPH(m%RUe?t1MAA0LaUg>gE4F_xq$H__Y6q;LL%JPPS8s97%bDkE zi$~4yGx<@&4525$+SruS(ztib_TWCz7;65PUUz-TB2!`|BvHdiIseG*ikitmTc<%? z4Q-xYGm5W$Xq%l$v(B{dysfhDi%D*kFAc9aZdy(AQwJvV z0w?T}DxE^-n-5YV`fpUr_PP`E8?2~>-J3kBbG2IKHThJr0$E4bv^^(LlAUuLTFrUd zzBLosf6e+$VBg->8HYofKzo|eZZzt)-~GCVd2A1Xma($v2Zy6;EzC#4E_aOTu{e_U zG8{q`HS}cZXkSk8wQ7x|LgRva`q9CrHeY6mXl^e?qw2|qhJYz%m6!K43dLwq0snM> z`k2(CTI58sRlS1foVBr& zuV&<@y`)BnTRj_htZ@-pH5hB`aZ;VcAx(d7Z0}i-vgZM4Y9xuEqjzv9m)jx)$B9M*y(rT9u~vXY@c(S)9z>YWZKCAhyymGF`Pzfd-+;dm0CP6?!Wk&fTa!kXc1|NSNE_dh@`FjkXrYUCs36Gk{ds6BK=*7?ym}vC+@0KBf&_Jp-PaU z1*+TTVY}JCB<@i%GhT3=z&`ApDMN&Z?$_tbzgmR-ey~u`uUO0fk1fJK)OG$R*8cl` zRQ>mQFtZL9?|G0hSrJ9*<^v@ydSW$JOTq-!+aJOp3})^0riLqn7w8YOkPm%Z`3OUh z609P!@83Tt_tH0P1BAl?@DW24^shq)W$8c-9+_GN}08F7MD+f zhFnMJF|{c-SnB4f5X&>xWVW+R&m{A95jKqxVpJX_;W3<+JT^8fFPs|Da#O>VuQ}W1Yy<#_As<%(418lelLj7a|mKekEX=P zpH`yuq%cfoKTdz9ZoV3ZRcf$le<{h1LVMyjj^FWx0jWk`?$4OF_i~MSRPkt$1k`D< zJ4oD^Z3~+riGDa z4(9k?)8QKSBcmce56x-wQU2+Kd<8b!-u;r?doHbS)q5ccT z>!8Y!lzj$SA%23rcx+zeOM~U38&XMp`Hp9D-#@Ci5MWAP`-pRbD7QEmo-^YXgpl!0 z?jjR&m_$J&F?rKS{ggvKF#t^@Ym|*ucUa4kYxEW*hZgN$OFtd8sL#RJAR3##bGsN? zIS~A%@y_kYdHGjqngxEq?P9tP(SRnku$`~pay?E zSFV;wX;VIbyHPX^NsowOq+QpYqX82FksLercgkmBj)3+5`6+^7_or&F&5}w2ORQaD zYSh!`DC;U`y~dya%iwWnkCSzujnqL{n81#l5k`0w2KtzCOkI+D2pLmcb1*1E60HTZ zKy91pUVZ7Ao#7AYIQ;~8|6ahEEYko+C0Zz?t2|>-EL6IlPF6-fCz(dmyNu$X?OZNw z9laIcHER#5#>jaKgCFRzfF#)G(h_`>NMZ0Yhi)&6Z*7bIC$a*q|(z1dKclQUG z$*edY7!ETh`E*>9-|lu@e*~F3GnB`m_}!a3!)e)GR-)$6)gW>AF^V_42a!kxvACEz z=TEeR;yO#L{?dMuVX_|e^LlzCNTxFJ+)Zmf)1DerMyhOQ!*h2~AGQP>OBhNGvtE{` z%{s#HaZm02iivD3+T+JB^C;UxqIMai9hbJm6GI( zN;=G=cIRR-U_=5s3w?P6;TPCG1YUo5qttg{WH+@4d{ng0LshiK=x-q=gzgxx-_wji zu%FmK)L(d~Y8TkXEg}4U3Y!rX))w+&(3L|XO_XdCFA_hIG>qdlm#m0q5ONwBx%!Dk zfW#DqV33QrAsS@}se1*?V(ntXD)$lAd5OtKB%2suocf+mPQw@#SDm>2#MD+f8PPym zEMLg2+o6ED*-TA2SNIM!ivy*FVpufUzkjI=iR@g#CE6ZP&a8r?>~iFe6ifJ7ty&ty!fYj$BVLIBt8o1FT|_l8EmW(syUP} ztY!bd7Bgjzx<0jiNm$JP@qYS;64t-t=_5U75gJOw`(ou@U*f+{tBvlalX+#&M z1r}MdBtq@M2Y|#(o7gt_wTSTI_YMMVhyxi*`je6GKC#^gsOOv*nXP8~sA zUEVsCw~lHgUddu1{Z#~dCaPByNWJS`LXDeZ(rNWio;~I`{0=?|FMnTRtG+@6vIc)? zTgm$SsxAB6ztqhzxuu6n1~)QDFkz5n%*PMXx$0xjnnkZc2W`8D@7R_Y?{L`0mvSf+ ztB7%xc-Ex&y@?!3Ca_a>rkGG!6zeU*vvo@dk1kxtYC0@5cD<_V$+MXCS;7;kSGhS- zzXl7Aeqy<|0HiFLg`g}yRVahI&0^i%5jyoEE-&+j+zV8IUxad-sUbH&opZej4~93< zmQf4lIcU?rXq%AT73hZE+C9ja<$1|Pxo*syWnaFAXy7zl-%}USzv==_oTE8OKU;p% zZM2eeRHDbyCjDUg<+ns$Q(1NAf~f43Wmw><(mk`kX!bF*%8oWKY^rCCi(KB?cfIks zl%dF7unms>=BAVIixdT5Jj<)V)m9y8#m2|QCKuz8qyn$Si(}gz6ox^zdyz=goI^*` za4;TYD3}zx(H@$7JPIW zt=TQOK3}r!*sYu`*nzirE1aq+E?zUGuoXGV2}5Y2xs#TPDDyDmf9KQ230c3{n2{!z z+G1)nHMx_^J-$vwc?P2al(L9#sJ?vYJU~R!yHUZukz!UIEjqW?^aN`RmSXb*Q?bPy z19oKiz5`bq+(o*NCuz8Cx&;eo-7e>X%m3u6IE+@tat$of}fY*))hS;AIqB1CC;n5r78Pe5hrxtcLF}0olB17P*wqzMRG^- z7W(5vY{@UPKn%N{IaiDCQ%uy6ybZyx7g5Zy{NWy%3 zK`II#LI~lcGP(AMW~-5RdV-LdCc^oZ4786pjfIM$DneVtF@NNwjz4@|hOUL3^{hI- zGh%^|#{(t49h;}!fA==J)dRn52~3oU_hxU86#ehq6d=(+bmSiY5Gy#76e7&J^>C3LU?6ocXNh2LH)nvsgM6?mHZED03}m5 zQzz&DnUKg<)%_CcG5yG)8xT{3v@KtWQnZAGB{GGms0p>^)e0>u;tJ^0bmzXKr|7QR zXth1bdz=OH;qwivRs9s7EyU*&w}0mx{@fP0?pO9TcUuWUp1n6RH{0?&^2~j*J{3O%%M$YRQb7Q?{Jb zMtb`Q*I+ZHQP5gXJGI=rhlSiWF{A9T-gf@$+Dr%7IIdaPp5CQVM;i!_gh;?*JC9>N zQi6TcXdh9wpLMox=H1sgI5;*JxtMqDFR?ahX0I=<>ALPLW|@=Eqgu$WUFTcDC1qeL**b=MXVQ3<1kI7eF8se(d#4~#qF`Bc zkBvRHZQHhO+qP}nwr$(C%{}(an}dg+dm>K6`|0T4j*iMznX4*uH3kh@URg%ebpeAD zN6s?ykqj6$>KL!Dn-c*#Mm(e1aiH>~n{ipSwTXQkIdesLv)vpui2GC?&7i!}+ufn@ z=ny44OFx++W&babNOgt#4Eidw3YtPWN86LNFiffflB{^(L`8^sh$YMuAK@``-T}P( zWf2xAnhcXm+Wv%^y-_FO;ifR0-T4q{c7!IvsdW0%^Tjs=M9m>QPRd{<$1{GuA>8wY z(_zkvo%ASuSINFJwyhtMXtAA$D8#BW_|%0PbnIo?U>B(3C?E>D3^$)FgVWY6iQxMW z&^+~ySW`KN0)uAx4@Z(?)uht9lk3xRb(gRC54ML0vyC{FXM^Mg9zvy&whE-p0?NpN z1RuFh{p3j1SiIq~Otqk`rLI~32Vrfk2hBKTOoqDl#-mWN1%HyA6Qg=WyoHp)5wWTJ z@dDNM_>VWR09f{dHq$Te&P;XCkXPk5kL?4egtvwd7c)F0r`WC&;IZ8pfV zWZ44KNgal*OK6Dag$pzV0RP6vQKH|-ttL<(&Zep2tXc}oj#@;u%XNZy7Ox|ogyMNz zyk1$x(soq>-7%{u(NM$e`Wn~xF{cqw(TsOErfR{+y=%12rx)CXL$&BpUA+F@A^nWR zPs-u^OgG{&1JKcVB74DIPkX@izL$!XaXCtK3z)bSyy{K(_D~fV`;qUW&(}xUc~Mt! zz8{ilsretIdEB|=684rDlMv=6ujn=@Oq_;&w!#dtnjC%_y+SaATxq5{7nIW_FPzwlD$%lO zmqT#nMMX%c|8hI)=`F`c|J^5m|Nj$z6|Kw-|34f|SyK^_9_bsfSaMSs9spU6MuiGw z9R;`xF9J`a^dQRE>2cf%6Ti*Kp4IrV^sJD!=OD_>^EVdy3{F9|WlP8u2`6Ft&4Ff@ zoqgQrQ5wyjK^zm6TC2e>JzwX- zFTc8NV6|OwdBG7<16b>$A2~!woQAxn(qE754K=xZc$jjrXp|@#P*96@k}kWEPp#`n zTvZ9}DnNlC?a2)-B2K@mEXYO6R~uO0$KWyGp=)B>6!_P0r1>$KaaK@!!GEvvJOl2~ zT7sgy6rF@2v<}y+4?gpWGD*Zyo}yk(n>tc2K9yTQBeG|*8;mPXWCzfY1To|;5KQtk z+-CHaN4LiML%RL@LPI$c&e-a>-!s+#o79w@ygX;?d!zsK39A; zNf6sk_4YQPi=STPEo#V+oh7Rx$rIU{h0?O$42sq;rA@YBdEB zW)UN26GX~aScla!_ZsPvuSk?WBFrs8?KTr>bjfmf&~mUMk?RtbJq9;l6T@FLdw_a< z&u4=(LEdQ+g16{rw&Czq19e+EzRHkUGb1-)tpewOef{UZ?{# zm`t~8-6Dq1Knj?gBbf4gH(_Q#e{Tg#mt&ipLESH@a5RAA5ts|SBF%1b$IvnC?-MVh zt&^Fe8~={b@$EV?Vf1gni*ItELyPQEg%C7h53WK;u{$~SpGErWO z@hgJV{f{K?f7t;2cL6f|7tPC7lKc(e{S`qt>6)Nh6v*-Nlq-|=>5HjBj`M@~1QeX) z1qvu_LjgcT(X-MM+J0+r0UIJZHu&aCdc^GpTPY4WXgJIBhWpg(lrwhfC0DlxuuPBM zA9y4<4Sqn3AiQ9XBylW{NT?k#yR0ltL0*}Dy3gue1swrwYy2VPG!z<a{&kjt$heM)9(vj34S+Qx{~AqGniW#*ek-rt z^zCR1=Vpz+r|ba#+5Q zHi6IM2%grlco9F`Z1l-?Ok*lwp)u0&4Et=8eMSNXrv`e_|pw_f2C zvpFMPjX#*J*_kEHvW(Z{LQ&W^Hkh**oxr5#4RUlGh6F&-3_U$E8minx2$o(yXpHi$ zt=c#&-u}9HsQ!xVk@h-~CuCOqRx;a`?C+K<0aQ(dnK0L`nM?2nO zv5SU#;=^KnL`0zjA_&Tj=0%h!=9b7G%YSjoJZTACoD#MFCtrC4dy5znBg8(I12GYp z@V>PB{>VAk3ArBk%#fTb?i!<{C|;#6jLSJnf&x7%KeWllV^R;4wQL|L=)dYD+z+Lv z|5pt8{ynVz&+}~mOEKiX>g2zxL}l|oq8om$N%n(?juFUK9GZo|_ZxuY2*k_NP@+LA zq=ot=xgmb(+tqS@~lKd_aXTj?AfZ77Rk@9?Zp@^LG=Oo8xq4?iq#e#E*2thH6xU= zW`e8B5!LA-4MUYK^DRm}iSctYcN)uFZ-g=^pL}KprhqB|bRVHT7 zfd0f^YzecmRTAJQQ!w|1&3Wh-64s?v8pJv)=A=4wlv=vSDI_a9CUZVj@<)q2ZU{Ed zW4ASnVZ2v3g)?uVoHN5!xpCTrtT%Ngl_;&!k)IMVNG)$TsunFJlwi7S_25o>3|pxV_~s57(74rW?{cAy}Lg4*if z>$USzv0v^TtIZH^8Frm3uC_`=ogRpwwb8;%X$Qi2=%;R@11zl8k$maec?7s|Yuh4- z8AqQaq)%C#*tf84GvI+&5t6=c*zHKDFoIT1Hd8K{_FyRvhM2zE_+G&rsD zsGZKuLNu;zPCUxZh5UEpRY@${P9@>YgO=DgAqL$16@0&0kcqZb2hT2OOvA$J5q@4Z zZ2T2@KKZU*7ars1kR3ggyoV=&f3%s0&cPZ>za%e{Ixlv*FxNOvPaV3x^Qr17aR(R) zGHmSP4ReHOSyAuVFhb@SQ600!RN72BaV5(0nKm92ZAU-NxD6&8_+cQ2kh)`|!9MM+zS->A+1mW)+4e|>(?ezLV(HjN}LB{AEVQ1FSR6$PLOTACyNGGWjx1OV>H z46p2ULnQUR_-UjDTj8VBFF^B}C=fgdEN&q4t+C2&Ku6~1HH2`>P;73rhL zFQg3Mnt=?bu#t(d<{wE)YX;Y#!|sQUV31&NLI(|Gnv_;~81$Y^B}l*K(Twwz*6*1<3_!&-#oXr(BbppzS2j=#Ixm+!zG$0T-`rXDmp z8 zCAq+#{ITyQh0q&ell){pWzyzWAeSyXX|o%i%V50ka!bg}SnC{!V=n%yWutcB=-yLei9BQiYKknlI;=zV%_wIQcZPM=7~2{E=Ki9Uk#tbJ+9(>wA8 z-`h6YMBlZli^DP;bl)&uZrEFX{ba-`d3LHZjsUrPigXzom3ZyYbgGuPsS2C`9WuO@ zMgHt%DAbn{vut&JmqQ{-sF_lej6-@SEt{8PobJe!t@C0;aD$kZQ<~(v47}~ySg`=~ zL4nG8igR_{6;0%;ySjB!-|ri-C6Ffuyg(TVx0-eSXY3ElV$Q|frt5+jvIM2+ZnQNM zt6wvK>_SDnk?lB7p zVqC9u-2fugb~NsSF5`-2>(o2=WnY^jMvf>j5^2WpGrdq;0iqZ1nVm2|^2if_&0?(I zFy#Bs52TqON`O>=OTk zcSUT1#@FIwv~QU5OPt9ir1JJhIhSmb)RpJ!EtfcL3nh;U zRFaCaaq2Wqu9*M*t`6>Mn*|Jqh#T7>vN#&!P_aYeuB!lFFSwhIi)WD+9>FB0OI5u&n5U0qYya*xM{0(tvzjlF~m__@)Z|C#JuZKkJQZGKEr`oYFfjv4Ou z<@=Kej;BbFzzTj}d5y`P3A+a5pGXjco_i5B&5Gia!>~fSu^nlceEsHPBcd}VeT{m~ zXNKvG$aTw0oau}ms?8~{DihELn&CTb-RQVXg(iV9A`Hj@hesu?pV}V~Yy5jVPmLa) z)0!>JR4!?ZFTDOpxmAZ{PvvG;;Sy&~UvKd}mU#=v#8)+ZaA6{boBR-T^pS){rj>BU zduPzBdd~KYpH`9QoA3K8Xqp&}e!+`~uJPk4fXV)Tc135<1f?I|VJRS@X2l)I{dasY zPh&#J(2x3Hc@`ik9Dvhu;^tmB+5*=3in`w4dSHU#%#FBhkvsQ@LU6wR+HsI?kew# z&1F6BC4}KlqS)Ir3NZiLwv~6tpJ)uOvt{ z`0pE*_t=#rxn6PxQPSwZI`eN~sJN}yO@}DR4|hjopO^x>BYm}zOf8ZPgbB@urbP{t z+3dR@8MaNv-F}lWJnB|u;eXw7K`U-!;eBN$7(m`l4hqHOc)--p1*6&b@VS{5eWDBE$7FFcx`_bgU2Bkh4J_3iTw_%rz8g3KQuufsVZ zk9tfVn-xivmA%&^NS{$Q+AUI9MnurYNDBULw_%`GRMZMCDH-FZ=~T3>0sKNI<3xDs z5bk1Aus!E}|4t{a64sNioCici;oUhm`N62*-=g#fF7B~ts|K(}srR**+dxK&33=>% z>WqGEALJrIFxv&++5#QjmXDz%3jo3vgYogYJnPE&nN9(g z@*D6!0P(s!IRo%l$bPC>j1q;(2Q89~oDDG6%adf4S4!U_Ve(Zo|68c0juiKvxQv)_ia%TYn@aHJ! z=PUM8PS^9;UY#G-{p}5Us^)iJAgFx~L`%C&wFeqU24)N{3aL?H1CM;zwlF8d|{+g+aKE z=N7qZzfOjxH$Jmk(VWq7KR%jI#G>X^UT7mW`gF;Fh@{JP&3LD#rJ6*ti*P?bnp`5? z0>9ft1(j~QL51ld?~u<%zn71K#Vb$fm5L;SGEXjO5cbZ+IDz$;UdjNw@8<#OkIpbo zPN#i$0)CzSe2WUce>&!Vh1^u_3(CO0wOm9Z#)%F!AJ`R+`TG*}I8Pe{X6GK~E3dFG zEbe<2Jl#xAD$uT>j%pdDb*8X~3UCTn_M^8?gv2YuFHGo)#}oFA_9f+Gix{`1B8A5i zT=?v&QNf7V*|h>)KzEX+oS2$$?FIQ2IXq&BvQ%EdDZwxH(L3^iFm}f^y@XdHU3g5MUXdQx zV4g~eJARD(mlV) z3l}(Ex=5bA!cUay%XFdWLC?1BVu)_%&ovW_!(^0edjTuI1EiYYH7>gX?hLEAMQ6KK=z$$X zP*1~i#jWi82?V_s)}T|*to~w;L2Hd5dsygh8WkHmF6Z|743qsmWHn-Z1u%4C(N*ys zS({uF6*S-&OMe^SS)Lv>X3_@#6nJn*VG5xMbVqT-cuiuZ4ob zKr>DOSV`kff!^F|NvyCR%wA1IP0hu=GctAeD3AoBkmUQ1Z_?e=O-nMQPzM~N=?wdW z_bJQA<;zR%uab!-2xoHGG&THpklDSf=0F7N?-Z$=fcmgBG8Bak{ZQ_@m#JtK^)(vw zc!fD+r@=oFK_;{$-3g&ViE{{S%#^snxTCl7Of zEkw?KHbyjCnfBbB2zq|}j34Wz2=78Jk^Afi+n_9@u8C95tB8!xf z=+a+%aCSM0nGl(H-OBUaAfTc);l z9k-?qalYbUUu97}8(1N)aR+PZt<_`TmzL{91g>yHwwxh|tfa|oqWAa$uq9=mLg8?G zRbk?A&$d3gO=M_6UDFNdx1UghG&Tv(^Lf+bs43TN`w0+)ZXwKfKuUQT)mvT%O@Q)a#V@57b!p%*d& z0Lf_c$SA|eY3;T4(Fnf6d|^uIpxqYCV`U@~$by*01Dif{(ogEfC)G$Nw)jU2c?%v-fy?3G{)4JqB#g|D z((X4gOL3t16KI>+YSfSRCohCQ}CH z%!5vN@Msa)%#M_Rw zbigwU5*$t)h_0ll;Kcnw7z<{g0#HNbK{!;J`J{T_=5awmMDV{6oD1RoyP50j-P_&V z=PE35vA8?ynfE(C-R=)3((2qVH~FFfdO1vts6_Xu!Jo-pPEY;o8HcJyI(lgH&jAj$XOB#C$6n3PGHrq@a+~BqEJ8s`{K#Qpo5M zQzn|IVq=PrA*TusjWpuH8qeL*W#sZQWRlK_Ku+o;5|PUaNynTb03Xhj!t-f>^OB?H zsnS8!HHLAPujB`D8XwH4vj=xhCYogYj~|7e(?}QJAgcVvpZ z81PdYM7yPA74pJq3}X|GJGA^!Is&*=CY+K1GtVrZ)e7f8J5so1^kYSy)kbkH*9*hB zGu91(Je%m)FxNLj*EUJgTTbStA%o6Po;@q2TFLX~6&>&9NfsB8&Pq1d51l}0N=%Ue z^GzEfOvjmu_>ydBfh9K8WkLm*H^yqJx7MrlB_j~twef<@L;}tl|7l4otJGK zHN8JGJ!hU$t5MdY-=p0rdF>qO5@> zP1rZ{Oz>NPhak=r^!DybzDrnykHLd{uBeF+-V_w4#yEJqujXZikJI3|OJ7`A$B1ze zW+G~%o(XSy&IfLIob@f|31=cipyA1Y z6}iF^gfPBhqy_c#i>sQ0+GF*+G0+y=Ox18SgDXDOt+ef-eOD9eJ8J}Iut#hirj{nW;?K*c<2-(Ln{;&D5MTBPWun?ghHN?hgtfF(VuhRaH%KmO{&n zJd)f4)K(GAp#++OcXXE2c@q0ZS$y@F?tt#x^J_I`i73|+E{J&1z!KL?b6ddK_B2Qr zl|j&N)#AV*D})rSrgO3;7=-g%82q)o=rKzL-NESNMpQS-w#MjVdE4flg4g3K|JunA z)kXCJJf#)kvIQry^Vh|MbS;U~_k^1TaAF6*9#?=T7!`=<$Q9Gc-CzDCbTVUwUrkaj zqPrt)8xF)i`Jvwxn$Rg$phW-;k@QTfqwsDrJYTh8`B|#>hyE-jJ}AZF;QV zk{hbrC{oj1cqDd_C<&}H&OD)S611~qL?Es$+wz$z`MX!*k3s2>AFMdwVuL-6ezeXb z@IZ#z-KKmisJWV~j@BH)!R$1X@1`1{Z+)6b@2||#FUsM26eKL@-`y_~g*8Ye@o3@S!-L}} zgOx${5G|-&R{NK(6((9{2{Rnf!5PFVEPq?F8$YUiwe#Kro;C-$pKR?g+9?Cr1Xg)w zxN@T_9O$NUmnjPfC&G^v`<&`n#@n1>(0mqU+Q1kWtuc9s#aR2f?|Z3A`!(F6(?eGy)H}t z^AydkdaOXsnea?b+#Vk3%kiU_brK=p+7opvUC!7ct?hd8#J;8c3F*65Scq%1roGr8 z&%v`a3rfsx(C6;_ZQv7kOVc`T{jlH(5-bsn+}Q(qEyD#P=v_o^{VXK0B-_b`pE@9V zCQDf2&Cd8OJN#kuGmb&+c{Dg=6F4|F6kSA%Tb+6!(E){Y(0NfKRFtd{Jz)Ys6&jJw z47b!lh`&b?$yFFUnDR9fi)spMH7`deYZY=u-MFWGE$)8JpVuB)RKiVU{v5PGo-~cH zH6v<8gw1#Q&I&dJ)zF$+6_W-eq+9v>4S^5|s1~-jx5j4cV>wLF%(4G2fxXNhP`p;4 zrLmTKjmvMSTJ1hGbbE)riF=IE^0AXl>~D}~o*Y&pZIB4i;p~Us-l7Ea_JYW2hAL;X zv>L4#e2MGUmfKW93iDrcQg|E#C!8U!FL<$}xhuYf^53cC&JWc~B8@y4H5E)Y2c*#) z^WkGiG(YT*WL=3{*;mk{ORSJYXOs3T-Iw~h@|pAstvt>usxBGE9Eeb^4+Lh$=4v1) zi;A>T^9!+`xFXnf!`Lm|7D}>~)%Tczg_qi~>wU23w3a5IrBxp&$n{kXS51`{3)`TA z+LYJfSwV8Lku3y|mc6o3ug$S@(S?ciBRf0aM4LnN%<91ohY?LJlqi=G zW@DwTsP5n{%`FpFm&T&LYzz6r#_#N(^$I`zEJ}?;^wLb~6IQE+n1)68r|j#2EbqU8 zTB}M<8lB>trMy_HX`ST45sl6Vjh*lExstDmd}c!`aosVr?zPZ_meJ=e2eKm?%qOtc zgojCT1(=QXU1Q9yRvtC;ActGv=)sqRl+R)^weBvvQMD=lrMZ#bD~9<|dL z8S@8KFAJq-*sU)>PUI;*Ns070$o9Dh9xPht9-mhl%86wFJoVvPmddLc3@mEx$V}`{loNPH}((2#aUZA)H}qme;YR5=jwUx z{mw1A`@u5Ypba&o4f!0^qp~4zA#ZLk(}P$8Fh?^lpc#^X5P6Qu4Gv0 zGz`fQIxA_07sWI>JJ_A#@P zUWbQCUuqQ{n74C4=LH#=LcYn6nQb^qV@-_uh^VgrcI#Y$H&LY*E%nf2u`C$)gOzk% zP0<}aWXGKD4Oa2b*-fapb&+!pp8K)$HB7KLx72mwktW&4|3;Ks!cmrAqHG z@6v$FIyQ@CMl|J$;{slNi$>)Vxh1n>k988c#FA<<-2Uu3wC!|Vv*nMPkM6e7mr*0T zD(9|yq&pb7W=!8T61}1+`Kx)mqNd^lJ7ZIfV_kU*sONB9%sIA9-}w^0Lb~@WZvOMH zqZD5d-s&a1%IC9Zv&!#~-pa+jbGWtTkEv9*s#mAAPotI;>*2OWsP7UDkzZYLS(17Y z!`FDdHF8G6U6sA6ktC~EHmk1ytTPIj2IJ$|_1|WrRwM7MRoB8hcC<`(KPtt&hTSSh z4#45ZM{rdOmlWQC-#$&b-~Q=WxXKNwS_YUo<%EP)kEAN+vlMSgZ%tA^1qt4dwG`fo zJ;B1hhQhw8=e%Pu6zw@%dQv7U)%I1-vMSfQ6zz#y!g*AKEVPvmw#i<>Thxm`bTqbx zlRphxgi-y06z+apVL)^2Kb1%DZyi#*^5>n8W-LIn403Yl2u1!Pw3P{?I7qI1y`dF6zB0p^8n+aWyHO$I9fy=a*$;SRL5fqH5B9uITYnYB$96xOpw%) z7}UsP3useGkV@rp6a;l^KyZhVYvuUMd@k8i#SRNsyT!SaE&n*c0gA-qH}Io?$tVoib*C>6VBi}m>$^=2&YD7o~}HVaV%;H=hDtUX8-kk7hai~LGj2xj(oj8%_YnpkbbGIcY&N%t9sw}X&!SdBSm z(S2p3Fdd8L7^=AMg@KP~8fw36+^wzmPLD$)r+`Af?cj0|q~~S$H}feaJB7*pAtOu? zFR`9qwn-w6Bc^~JL%~v8XB#Su@$A{3A7r|lbbblP!V_9GK{PAgZvC-6J(4s_BQ+~b zvzM~q!Ipz+q1!*1cYW6N|i}J^s z2X-zCwWWFw#S^S_chW?)lrq$^nF590V9thmX`Ub@xgXjWa(LOwtEzZ#F3b9gmG+*! zcIkMJ_(oouq_Y`OF(Kb>=+BKIZydm^Bt4luCkr2SYcH4}mpAmQhhQgbqirHayXcTv z#t%0>bd~k$y!(j)NJnw~6(=3k^%C|$zIP*_{EACYbM^7WnO%&xNeU&wSEJ@FD$C^1 z_N?{3(M!g*x0>?h+)oYE&&4z)fAAJrGUA%rdHb3_UY^R1=DiG5V9%u0nH*;UCophcU? zwbkq9ak{Z;S6t~&c5b}e-0v<^LsZWdcy`Ah9(b%;rqyWWtBr0lhCUUUgD0gXvJZ(q zB^f?emUl?#5p$j-h8{5whB+#SZmYN#mxsA?YmXuIDyYAIM%R~tnTs(C1eSR_i>~T> zovMg9t1*WEfeFyD8>FbrRvn{O0%$Ca{Sd4l@5djc+fY9`wA|o+W)#rEMYJds=%AE)m5G0jiJO#Z zCxGO`N6McsP%5E!UdgAt0JRY0t9lb*$DrebatwcpW$@qK|( z3D0*8JVoA}^7{(*3QMq4?WJR+Au8+)+fX64ZS|FadjnUkqts?F1=JwKYW7||UjzBx zMWtv>U!a_Bj0hOw=xL1{;CL=NVVbFzVffy>6}Zh|ZOYu8{AD%vXzx;AZ~VfUiN8CD z{qO%^dVb)!(&8WcpLF{){G3^ih*j|+urEjT;YA%bC>0r%3s(8%;GqH}9gyKhPN0Pz zdcjJxpht^yqdpX6dHA7xVGXrr|DmTow4VA%6!#=uFxl483Ep{v+JoCU^#vwr5$|7N z(N(_uBjvC$Y6*U=igGFs`y;#y^LY)~EI%i5(3PT+@)(n6t?Swj|`Lm0E5p+tx1c8%B|(PLOl zbt3y`jzBffk63q1>Nt7_Te4iC1BpSzJfp~`&;`;y`O|_2p!xp&QDPsTZ3;`YjYyP* z#6CF6Jg93RP|PxzX%MQ53Lj^cHC4YJ_$M@D*Pt_9z?+TlNjcn_G+Sq>U|PLOF{r^2 zRu5jVwPX$zu(#t1U$JSIQ?Z{vXQgCQjW{*V@^YQa>&gvKCN(KCz*bE)H+^REJZ?E1f^ICL2EWCEFP0?CMt zKEr3ZXu1xpVBAbeab`W0sNyw~W_j8SLX5&RBkR5>KLshq8Um<~CQX2XhfER≻UC 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�HcekVYllVq| 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≺OSSw?kqKQL>P^Wh%Q?j~U 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ⅆyi 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 )oe)b+HIJWvl;+dssj}iM&kf43E*Z9 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