From aabf0ed6928fbd2d58c137135cc640db4325dea1 Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Tue, 28 Jul 2026 23:58:44 +0100 Subject: [PATCH 1/5] Port Mineralogy to Minecraft 1.19.4 --- README.md | 5 +- build.gradle | 17 +- docs/PLAYER_GUIDE.md | 6 +- gradle.properties | 17 +- gradle/wrapper/gradle-wrapper.properties | 1 + .../mc/mineralogy/MineralogyConfig.java | 2 +- .../mc/mineralogy/blocks/DoubleSlab.java | 10 +- .../moddev/mc/mineralogy/blocks/DryWall.java | 10 +- .../blocks/NamedMineralogyBlock.java | 8 + .../zone/moddev/mc/mineralogy/blocks/Ore.java | 15 +- .../moddev/mc/mineralogy/blocks/Rock.java | 10 +- .../mc/mineralogy/blocks/RockFurnace.java | 16 +- .../mc/mineralogy/blocks/RockSaltLamp.java | 12 +- .../mineralogy/blocks/RockSaltStreetLamp.java | 12 +- .../moddev/mc/mineralogy/blocks/RockSlab.java | 15 +- .../mc/mineralogy/blocks/RockStairs.java | 10 +- .../moddev/mc/mineralogy/blocks/RockWall.java | 10 +- .../moddev/mc/mineralogy/data/Material.java | 26 +- .../moddev/mc/mineralogy/init/Blocks.java | 553 ++++++++++-------- .../zone/moddev/mc/mineralogy/init/Items.java | 79 +-- .../mc/mineralogy/init/MineralogyFluids.java | 52 +- .../mineralogy/init/MineralogyItemGroups.java | 113 ++-- .../mc/mineralogy/init/TileEntities.java | 19 +- .../mineralogy/items/MineralFertilizer.java | 7 +- .../items/MineralogyBucketItem.java | 179 +----- .../mc/mineralogy/patching/PatchHandler.java | 37 +- .../tileentity/TileEntityRockFurnace.java | 16 +- src/main/resources/META-INF/mods.toml | 8 +- .../assets/minecraft/atlases/blocks.json | 14 + .../models/item/crude_oil_bucket.json | 2 +- .../data/mineralogy/orespawn/provider.json | 12 +- src/main/resources/pack.mcmeta | 6 +- 32 files changed, 658 insertions(+), 641 deletions(-) create mode 100644 src/main/java/zone/moddev/mc/mineralogy/blocks/NamedMineralogyBlock.java create mode 100644 src/main/resources/assets/minecraft/atlases/blocks.json diff --git a/README.md b/README.md index 85f589796..1d51ef485 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Minecraft Mineralogy 6 -Mineralogy adds real-world rock types to Minecraft 1.18.2, together with +Mineralogy adds real-world rock types to Minecraft 1.19.4, 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. @@ -12,7 +12,8 @@ world profiles, configuration screens, retrogen, and the public worldgen API. ## Players -Install matching Minecraft 1.18.2 builds of Mineralogy 6 and OreSpawn 4 on the +Install Mineralogy 6.1.0 and OreSpawn 4.0.1 (or a later compatible 4.x build) +for Minecraft 1.19.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. diff --git a/build.gradle b/build.gradle index 9bd0ccd6b..6c00d91df 100644 --- a/build.gradle +++ b/build.gradle @@ -113,6 +113,12 @@ minecraft { providers.gradleProperty('orespawnBenchmarkVanillaOres').getOrElse('false') property 'orespawn.worldgenBenchmarkOreAudit', providers.gradleProperty('orespawnBenchmarkOreAudit').getOrElse('false') + property 'orespawn.worldgenBenchmarkFluidAudit', + providers.gradleProperty('orespawnBenchmarkFluidAudit').getOrElse('false') + if (providers.gradleProperty('orespawnBenchmarkBiomeAudit').isPresent()) { + property 'orespawn.worldgenBenchmarkBiomeAudit', + providers.gradleProperty('orespawnBenchmarkBiomeAudit').get() + } if (providers.gradleProperty('orespawnBenchmarkBlockAudit').isPresent()) { property 'orespawn.worldgenBenchmarkBlockAudit', providers.gradleProperty('orespawnBenchmarkBlockAudit').get() @@ -150,9 +156,12 @@ 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') + maven { + name = 'CurseMaven' + url = 'https://www.cursemaven.com' + content { + includeGroup 'curse.maven' + } } } @@ -165,7 +174,7 @@ dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" // OreSpawn owns all geology and managed ore generation in Mineralogy 6. - runtimeOnly fg.deobf("blank:OreSpawn-${minecraft_version}:${orespawn_version}") + runtimeOnly fg.deobf("curse.maven:mmd-orespawn-245586:${orespawn_file_id}") testImplementation platform('org.junit:junit-bom:5.10.2') testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/docs/PLAYER_GUIDE.md b/docs/PLAYER_GUIDE.md index 5ed3736de..3b2de1801 100644 --- a/docs/PLAYER_GUIDE.md +++ b/docs/PLAYER_GUIDE.md @@ -2,9 +2,9 @@ ## 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.1.0 needs OreSpawn 4.0.1 or a later compatible 4.x build for +Minecraft 1.19.4. Install both mods on clients and servers. A world that +contains Mineralogy blocks should not be opened without Mineralogy. ## Creating A World diff --git a/gradle.properties b/gradle.properties index 75a9a0eff..c4d7765c8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -7,18 +7,19 @@ org.gradle.daemon=false ## Environment Properties # The Minecraft version must agree with the Forge version to get a valid artifact -minecraft_version=1.18.2 +minecraft_version=1.19.4 # 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) +minecraft_version_range=[1.19.4,1.20) # The Forge version must agree with the Minecraft version to get a valid artifact -forge_version=40.3.0 -orespawn_version=4.0.2 +forge_version=45.4.0 +orespawn_version=4.0.1 +orespawn_file_id=8525107 # The Forge version range can use any version of Forge as bounds or match the loader version range -forge_version_range=[40,) +forge_version_range=[45,) # The loader version range can only use the major version of Forge/FML as bounds -loader_version_range=[40,) +loader_version_range=[45,) # 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. @@ -36,7 +37,7 @@ loader_version_range=[40,) 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 +mapping_version=1.19.4 ## Mod Properties @@ -49,7 +50,7 @@ mod_name=Minecraft Mineralogy # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All rights reserved # The mod version. See https://semver.org/ -mod_version=6.0.0 +mod_version=6.1.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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 0d1842103..2617362fd 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip +networkTimeout=10000 zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java b/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java index 70609b9a7..6b7e99807 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java +++ b/src/main/java/zone/moddev/mc/mineralogy/MineralogyConfig.java @@ -298,7 +298,7 @@ private ConfigCondition(String flagName) { } @Override public ResourceLocation getID() { return CONFIG_CONDITION_ID; } - @Override public boolean test() { return flag.getAsBoolean(); } + @Override public boolean test(ICondition.IContext context) { return flag.getAsBoolean(); } } private static final class ConfigConditionSerializer 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..f88f093ae 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java @@ -13,9 +13,10 @@ import net.minecraft.world.level.BlockGetter; import net.minecraft.world.level.storage.loot.LootContext.Builder; -public class DoubleSlab extends Block { +public class DoubleSlab extends Block implements NamedMineralogyBlock { private final Block drops; private final int toolHardnessLevel; + private final String registryPath; public DoubleSlab(float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, Block drops, String name) { @@ -23,7 +24,12 @@ public DoubleSlab(float hardness, float blastResistance, int toolHardnessLevel, .requiresCorrectToolForDrops()); this.drops = drops; this.toolHardnessLevel = toolHardnessLevel; - this.setRegistryName(name); + this.registryPath = name; + } + + @Override + public String mineralogyRegistryPath() { + return registryPath; } @Override diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/DryWall.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/DryWall.java index af54aaa91..be377373f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/DryWall.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/DryWall.java @@ -7,13 +7,19 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.state.BlockState; -public class DryWall extends IronBarsBlock { +public class DryWall extends IronBarsBlock implements NamedMineralogyBlock { private final int toolHardnessLevel; + private final String registryPath; public DryWall(String color) { super(BlockBehaviour.Properties.of(Material.STONE).strength(0.75F, 1.0F).sound(SoundType.STONE) .requiresCorrectToolForDrops()); this.toolHardnessLevel = 0; - this.setRegistryName("drywall_" + color); + this.registryPath = "drywall_" + color; + } + + @Override + public String mineralogyRegistryPath() { + return registryPath; } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/NamedMineralogyBlock.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/NamedMineralogyBlock.java new file mode 100644 index 000000000..4060e64df --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/NamedMineralogyBlock.java @@ -0,0 +1,8 @@ +package zone.moddev.mc.mineralogy.blocks; + +/** + * Supplies the stable path used to register a Mineralogy block. + */ +public interface NamedMineralogyBlock { + String mineralogyRegistryPath(); +} diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/Ore.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/Ore.java index 1c7d1595f..327a067c8 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/Ore.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/Ore.java @@ -15,11 +15,13 @@ import net.minecraft.world.level.ItemLike; import net.minecraft.resources.ResourceLocation; import net.minecraft.core.BlockPos; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.storage.loot.LootContext.Builder; import net.minecraftforge.registries.ForgeRegistries; -public class Ore extends Block { +public class Ore extends Block implements NamedMineralogyBlock { + private final String registryPath; private final String dropItemName; private final int dropAdduct; private final int dropRange; @@ -28,8 +30,7 @@ public class Ore extends Block { public Ore(String name, String dropItemName, int minNumberDropped, int maxNumberDropped, int pickLevel) { super(BlockBehaviour.Properties.of(Material.STONE).strength(1.5F, 5.0F).sound(SoundType.STONE) .requiresCorrectToolForDrops()); - this.setRegistryName(Mineralogy.MODID, name); - + this.registryPath = name; this.dropItemName = dropItemName; this.dropAdduct = minNumberDropped; this.dropRange = (maxNumberDropped - minNumberDropped) + 1; @@ -37,7 +38,13 @@ public Ore(String name, String dropItemName, int minNumberDropped, int maxNumber } @Override - public int getExpDrop(BlockState state, LevelReader world, BlockPos pos, int fortune, int silktouch) { + public String mineralogyRegistryPath() { + return registryPath; + } + + @Override + public int getExpDrop(BlockState state, LevelReader world, RandomSource random, BlockPos pos, + int fortune, int silktouch) { return 0; } 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..447da852f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/Rock.java @@ -20,18 +20,24 @@ import net.minecraft.world.level.storage.loot.LootContext.Builder; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; -public class Rock extends Block { +public class Rock extends Block implements NamedMineralogyBlock { + private final String registryPath; public Rock(boolean isStoneEquivalent, float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, String name) { super(BlockBehaviour.Properties.of(Material.STONE).strength(hardness, blastResistance).sound(sound) .requiresCorrectToolForDrops()); - this.setRegistryName(name); + this.registryPath = name; this.isStoneEquivalent = isStoneEquivalent; this.toolHardnessLevel = toolHardnessLevel; } + @Override + public String mineralogyRegistryPath() { + return registryPath; + } + public final boolean isStoneEquivalent; private final int toolHardnessLevel; diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockFurnace.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockFurnace.java index 5f8bb9c5b..f68624bc2 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockFurnace.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockFurnace.java @@ -2,7 +2,6 @@ import java.util.Collections; import java.util.List; -import java.util.Random; import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.init.TileEntities; @@ -10,6 +9,7 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.util.RandomSource; import net.minecraft.world.level.block.BaseEntityBlock; import net.minecraft.world.level.block.HorizontalDirectionalBlock; import net.minecraft.world.level.block.SoundType; @@ -43,13 +43,14 @@ import net.minecraft.world.level.storage.loot.LootContext.Builder; import net.minecraftforge.registries.ForgeRegistries; -public class RockFurnace extends BaseEntityBlock { +public class RockFurnace extends BaseEntityBlock implements NamedMineralogyBlock { public static final net.minecraft.world.level.block.state.properties.DirectionProperty FACING = HorizontalDirectionalBlock.FACING; private static boolean keepInventory; private final boolean burning; private final float burnModifier; private final int toolHardnessLevel; + private final String registryPath; public RockFurnace(float hardness, float blastResistance, int toolHardnessLevel, boolean burning, float burnModifier, String name) { @@ -58,10 +59,15 @@ public RockFurnace(float hardness, float blastResistance, int toolHardnessLevel, this.burning = burning; this.burnModifier = burnModifier; this.toolHardnessLevel = toolHardnessLevel; - this.setRegistryName(name); + this.registryPath = name; this.registerDefaultState(this.getStateDefinition().any().setValue(FACING, Direction.NORTH)); } + @Override + public String mineralogyRegistryPath() { + return registryPath; + } + protected boolean canSilkHarvest() { return false; } @@ -166,7 +172,7 @@ public ItemStack getCloneItemStack(BlockGetter world, BlockPos pos, BlockState s } @Override - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { if (!burning) { return; } @@ -222,7 +228,7 @@ public boolean isBurningVariant() { } private static Block getStateBlock(Block block, boolean active) { - ResourceLocation name = block.getRegistryName(); + ResourceLocation name = ForgeRegistries.BLOCKS.getKey(block); if (name == null) { return block; } 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..3b3fb5a16 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java @@ -21,9 +21,9 @@ import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.Level; -import java.util.Random; +import net.minecraft.util.RandomSource; -public class RockSaltLamp extends Block { +public class RockSaltLamp extends Block implements NamedMineralogyBlock { public static final DirectionProperty FACING = DirectionProperty.create("facing", Direction.values()); private static final VoxelShape STANDING_SHAPE = Block.box(6.4D, 0.0D, 6.4D, 9.6D, 9.6D, 9.6D); @@ -35,10 +35,14 @@ public class RockSaltLamp extends Block { public RockSaltLamp() { super(BlockBehaviour.Properties.of(Material.STONE).strength(0.25F) .lightLevel(state -> 15).sound(SoundType.STONE)); - this.setRegistryName("rocksaltlamp"); this.registerDefaultState(this.getStateDefinition().any().setValue(FACING, Direction.UP)); } + @Override + public String mineralogyRegistryPath() { + return "rocksaltlamp"; + } + @Override public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { switch (state.getValue(FACING)) { @@ -104,7 +108,7 @@ public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { } @Override - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { Direction facing = state.getValue(FACING); double x = (double) pos.getX() + 0.5D; double y = (double) pos.getY() + 0.7D; diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltStreetLamp.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltStreetLamp.java index e7dab69da..c49212d5f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltStreetLamp.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltStreetLamp.java @@ -21,19 +21,23 @@ import net.minecraft.world.level.LevelReader; import net.minecraft.world.level.Level; -import java.util.Random; +import net.minecraft.util.RandomSource; -public class RockSaltStreetLamp extends Block { +public class RockSaltStreetLamp extends Block implements NamedMineralogyBlock { public static final DirectionProperty FACING = DirectionProperty.create("facing", Direction.values()); private static final VoxelShape STANDING_SHAPE = Block.box(6.4D, 0.0D, 6.4D, 9.6D, 28.8D, 9.6D); public RockSaltStreetLamp() { super(BlockBehaviour.Properties.of(Material.METAL).strength(1.0F) .lightLevel(state -> 15).sound(SoundType.METAL)); - this.setRegistryName("rocksaltstreetlamp"); this.registerDefaultState(this.getStateDefinition().any().setValue(FACING, Direction.UP)); } + @Override + public String mineralogyRegistryPath() { + return "rocksaltstreetlamp"; + } + @Override public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) { return STANDING_SHAPE; @@ -63,7 +67,7 @@ public boolean canSurvive(BlockState state, LevelReader world, BlockPos pos) { } @Override - public void animateTick(BlockState state, Level world, BlockPos pos, Random random) { + public void animateTick(BlockState state, Level world, BlockPos pos, RandomSource random) { world.addParticle(ParticleTypes.SMOKE, (double) pos.getX() + 0.5D, (double) pos.getY() + 1.92D, diff --git a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSlab.java b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSlab.java index 63960b62a..bd4076df7 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSlab.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSlab.java @@ -25,7 +25,7 @@ import net.minecraft.world.level.Level; import net.minecraftforge.registries.ForgeRegistries; -public class RockSlab extends Block { +public class RockSlab extends Block implements NamedMineralogyBlock { public static final DirectionProperty FACING = DirectionProperty.create("facing", Direction.values()); private static final double THICKNESS = 8.0D; private static final VoxelShape[] SHAPES = new VoxelShape[Direction.values().length]; @@ -41,6 +41,7 @@ public class RockSlab extends Block { private final String doubleSlabName; private final int toolHardnessLevel; + private final String registryPath; public RockSlab(float hardness, float blastResistance, int toolHardnessLevel, SoundType sound) { this(hardness, blastResistance, toolHardnessLevel, sound, null, ""); @@ -56,11 +57,13 @@ public RockSlab(float hardness, float blastResistance, int toolHardnessLevel, So .requiresCorrectToolForDrops()); this.toolHardnessLevel = toolHardnessLevel; this.doubleSlabName = doubleSlabName; + this.registryPath = name; this.registerDefaultState(this.getStateDefinition().any().setValue(FACING, Direction.UP)); + } - if (name != null) { - this.setRegistryName(name); - } + @Override + public String mineralogyRegistryPath() { + return registryPath; } @Override @@ -102,9 +105,9 @@ public InteractionResult use(BlockState state, Level world, BlockPos pos, Player } ItemStack held = player.getItemInHand(hand); - ResourceLocation slabItemName = held.isEmpty() ? null : held.getItem().getRegistryName(); + ResourceLocation slabItemName = held.isEmpty() ? null : ForgeRegistries.ITEMS.getKey(held.getItem()); - if (!this.getRegistryName().equals(slabItemName)) { + if (!ForgeRegistries.BLOCKS.getKey(this).equals(slabItemName)) { return super.use(state, world, pos, player, hand, hit); } 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..88d0e93bc 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockStairs.java @@ -7,16 +7,22 @@ import net.minecraft.world.level.material.Material; import net.minecraft.world.level.block.state.BlockState; -public class RockStairs extends StairBlock { +public class RockStairs extends StairBlock implements NamedMineralogyBlock { + private final String registryPath; public RockStairs(Block materialBlock, float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, String name) { super(materialBlock.defaultBlockState(), BlockBehaviour.Properties.of(Material.STONE) .strength(hardness, blastResistance).sound(sound).requiresCorrectToolForDrops()); - this.setRegistryName(name); + this.registryPath = name; this.toolHardnessLevel = toolHardnessLevel; } + @Override + public String mineralogyRegistryPath() { + return registryPath; + } + private final int 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..e392d2917 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockWall.java @@ -12,15 +12,21 @@ * @author Jasmine Iwanek * */ -public class RockWall extends WallBlock { +public class RockWall extends WallBlock implements NamedMineralogyBlock { + private final String registryPath; public RockWall(Block materialBlock, float hardness, float blastResistance, int toolHardnessLevel, SoundType sound, String name) { super(BlockBehaviour.Properties.of(Material.STONE).strength(hardness, blastResistance).sound(sound) .requiresCorrectToolForDrops()); - this.setRegistryName(name); + this.registryPath = name; this.toolHardnessLevel = toolHardnessLevel; } + @Override + public String mineralogyRegistryPath() { + return registryPath; + } + private final int toolHardnessLevel; } 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..2d375e70f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/data/Material.java +++ b/src/main/java/zone/moddev/mc/mineralogy/data/Material.java @@ -1,16 +1,13 @@ 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; -import zone.moddev.mc.mineralogy.init.MineralogyItemGroups; 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; @@ -26,7 +23,7 @@ public class Material { * @param materialName * Name of the block (should start with capital letter) * - * @param type + * @param rockType * Igneous, sedimentary, or metamorphic * * @param hardness @@ -101,30 +98,15 @@ public RockStairs toRockStairs(boolean isSmooth, boolean isBrick) { } public BlockItem getBlockItem(Rock blockHandle) { - BlockItem blockItem = new BlockItem(blockHandle, - new Item.Properties().tab(MineralogyItemGroups.forBlock(blockHandle))); - - blockItem.setRegistryName(Mineralogy.MODID, blockHandle.getRegistryName().getPath()); - - return blockItem; + return new BlockItem(blockHandle, new Item.Properties()); } public BlockItem getBlockItem(RockStairs blockHandle) { - BlockItem blockItem = new BlockItem(blockHandle, - new Item.Properties().tab(MineralogyItemGroups.forBlock(blockHandle))); - - blockItem.setRegistryName(Mineralogy.MODID, blockHandle.getRegistryName().getPath()); - - return blockItem; + return new BlockItem(blockHandle, new Item.Properties()); } public BlockItem getBlockItem(RockWall blockHandle) { - BlockItem blockItem = new BlockItem(blockHandle, - new Item.Properties().tab(MineralogyItemGroups.forBlock(blockHandle))); - - blockItem.setRegistryName(Mineralogy.MODID, blockHandle.getRegistryName().getPath()); - - return blockItem; + return new BlockItem(blockHandle, new Item.Properties()); } @Override 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..2ba01b99b 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java @@ -1,5 +1,11 @@ package zone.moddev.mc.mineralogy.init; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collections; +import java.util.HashMap; +import java.util.Map; + import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.MineralogyConfig; import zone.moddev.mc.mineralogy.RockType; @@ -8,6 +14,7 @@ import zone.moddev.mc.mineralogy.blocks.DoubleSlab; import zone.moddev.mc.mineralogy.blocks.DryWall; import zone.moddev.mc.mineralogy.blocks.Gypsum; +import zone.moddev.mc.mineralogy.blocks.NamedMineralogyBlock; import zone.moddev.mc.mineralogy.blocks.Ore; import zone.moddev.mc.mineralogy.blocks.Rock; import zone.moddev.mc.mineralogy.blocks.RockFurnace; @@ -22,231 +29,239 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.SoundType; -import net.minecraftforge.event.RegistryEvent; +import net.minecraft.resources.ResourceLocation; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.registries.ObjectHolder; +import net.minecraftforge.registries.ForgeRegistries; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.RegisterEvent; @Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) -@ObjectHolder(Mineralogy.MODID) public class Blocks { - public static final Rock andesite = null; - public static final Rock basalt = null; - public static final Rock diorite = null; - public static final Rock granite = null; - public static final Rock rhyolite = null; - public static final Rock pegmatite = null; - public static final Rock shale = null; - public static final Rock conglomerate = null; - public static final Rock dolomite = null; - public static final Rock limestone = null; - public static final Rock marble = null; - public static final Rock slate = null; - public static final Rock schist = null; - public static final Rock gneiss = null; - public static final Rock phyllite = null; - public static final Rock amphibolite = null; - - public static final Rock andesite_smooth = null; - public static final Rock basalt_smooth = null; - public static final Rock diorite_smooth = null; - public static final Rock granite_smooth = null; - public static final Rock rhyolite_smooth = null; - public static final Rock pegmatite_smooth = null; - public static final Rock shale_smooth = null; - public static final Rock conglomerate_smooth = null; - public static final Rock dolomite_smooth = null; - public static final Rock limestone_smooth = null; - public static final Rock marble_smooth = null; - public static final Rock slate_smooth = null; - public static final Rock schist_smooth = null; - public static final Rock gneiss_smooth = null; - public static final Rock phyllite_smooth = null; - public static final Rock amphibolite_smooth = null; - - public static final RockStairs andesite_stairs = null; - public static final RockStairs basalt_stairs = null; - public static final RockStairs diorite_stairs = null; - public static final RockStairs granite_stairs = null; - public static final RockStairs rhyolite_stairs = null; - public static final RockStairs pegmatite_stairs = null; - public static final RockStairs shale_stairs = null; - public static final RockStairs conglomerate_stairs = null; - public static final RockStairs dolomite_stairs = null; - public static final RockStairs limestone_stairs = null; - public static final RockStairs marble_stairs = null; - public static final RockStairs slate_stairs = null; - public static final RockStairs schist_stairs = null; - public static final RockStairs gneiss_stairs = null; - public static final RockStairs phyllite_stairs = null; - public static final RockStairs amphibolite_stairs = null; - - public static final RockStairs andesite_smooth_stairs = null; - public static final RockStairs basalt_smooth_stairs = null; - public static final RockStairs diorite_smooth_stairs = null; - public static final RockStairs granite_smooth_stairs = null; - public static final RockStairs rhyolite_smooth_stairs = null; - public static final RockStairs pegmatite_smooth_stairs = null; - public static final RockStairs shale_smooth_stairs = null; - public static final RockStairs conglomerate_smooth_stairs = null; - public static final RockStairs dolomite_smooth_stairs = null; - public static final RockStairs limestone_smooth_stairs = null; - public static final RockStairs marble_smooth_stairs = null; - public static final RockStairs slate_smooth_stairs = null; - public static final RockStairs schist_smooth_stairs = null; - public static final RockStairs gneiss_smooth_stairs = null; - public static final RockStairs phyllite_smooth_stairs = null; - public static final RockStairs amphibolite_smooth_stairs = null; - - public static final Rock andesite_brick = null; - public static final Rock basalt_brick = null; - public static final Rock diorite_brick = null; - public static final Rock granite_brick = null; - public static final Rock rhyolite_brick = null; - public static final Rock pegmatite_brick = null; - public static final Rock shale_brick = null; - public static final Rock conglomerate_brick = null; - public static final Rock dolomite_brick = null; - public static final Rock limestone_brick = null; - public static final Rock marble_brick = null; - public static final Rock slate_brick = null; - public static final Rock schist_brick = null; - public static final Rock gneiss_brick = null; - public static final Rock phyllite_brick = null; - public static final Rock amphibolite_brick = null; - - public static final Rock andesite_smooth_brick = null; - public static final Rock basalt_smooth_brick = null; - public static final Rock diorite_smooth_brick = null; - public static final Rock granite_smooth_brick = null; - public static final Rock rhyolite_smooth_brick = null; - public static final Rock pegmatite_smooth_brick = null; - public static final Rock shale_smooth_brick = null; - public static final Rock conglomerate_smooth_brick = null; - public static final Rock dolomite_smooth_brick = null; - public static final Rock limestone_smooth_brick = null; - public static final Rock marble_smooth_brick = null; - public static final Rock slate_smooth_brick = null; - public static final Rock schist_smooth_brick = null; - public static final Rock gneiss_smooth_brick = null; - public static final Rock phyllite_smooth_brick = null; - public static final Rock amphibolite_smooth_brick = null; - - public static final RockStairs andesite_brick_stairs = null; - public static final RockStairs basalt_brick_stairs = null; - public static final RockStairs diorite_brick_stairs = null; - public static final RockStairs granite_brick_stairs = null; - public static final RockStairs rhyolite_brick_stairs = null; - public static final RockStairs pegmatite_brick_stairs = null; - public static final RockStairs shale_brick_stairs = null; - public static final RockStairs conglomerate_brick_stairs = null; - public static final RockStairs dolomite_brick_stairs = null; - public static final RockStairs limestone_brick_stairs = null; - public static final RockStairs marble_brick_stairs = null; - public static final RockStairs slate_brick_stairs = null; - public static final RockStairs schist_brick_stairs = null; - public static final RockStairs gneiss_brick_stairs = null; - public static final RockStairs phyllite_brick_stairs = null; - public static final RockStairs amphibolite_brick_stairs = null; - - public static final RockStairs andesite_smooth_brick_stairs = null; - public static final RockStairs basalt_smooth_brick_stairs = null; - public static final RockStairs diorite_smooth_brick_stairs = null; - public static final RockStairs granite_smooth_brick_stairs = null; - public static final RockStairs rhyolite_smooth_brick_stairs = null; - public static final RockStairs pegmatite_smooth_brick_stairs = null; - public static final RockStairs shale_smooth_brick_stairs = null; - public static final RockStairs conglomerate_smooth_brick_stairs = null; - public static final RockStairs dolomite_smooth_brick_stairs = null; - public static final RockStairs limestone_smooth_brick_stairs = null; - public static final RockStairs marble_smooth_brick_stairs = null; - public static final RockStairs slate_smooth_brick_stairs = null; - public static final RockStairs schist_smooth_brick_stairs = null; - public static final RockStairs gneiss_smooth_brick_stairs = null; - public static final RockStairs phyllite_smooth_brick_stairs = null; - public static final RockStairs amphibolite_smooth_brick_stairs = null; - - public static final RockWall andesite_wall = null; - public static final RockWall basalt_wall = null; - public static final RockWall diorite_wall = null; - public static final RockWall granite_wall = null; - public static final RockWall rhyolite_wall = null; - public static final RockWall pegmatite_wall = null; - public static final RockWall shale_wall = null; - public static final RockWall conglomerate_wall = null; - public static final RockWall dolomite_wall = null; - public static final RockWall limestone_wall = null; - public static final RockWall marble_wall = null; - public static final RockWall slate_wall = null; - public static final RockWall schist_wall = null; - public static final RockWall gneiss_wall = null; - public static final RockWall phyllite_wall = null; - public static final RockWall amphibolite_wall = null; - - public static final RockWall andesite_smooth_wall = null; - public static final RockWall basalt_smooth_wall = null; - public static final RockWall diorite_smooth_wall = null; - public static final RockWall granite_smooth_wall = null; - public static final RockWall rhyolite_smooth_wall = null; - public static final RockWall pegmatite_smooth_wall = null; - public static final RockWall shale_smooth_wall = null; - public static final RockWall conglomerate_smooth_wall = null; - public static final RockWall dolomite_smooth_wall = null; - public static final RockWall limestone_smooth_wall = null; - public static final RockWall marble_smooth_wall = null; - public static final RockWall slate_smooth_wall = null; - public static final RockWall schist_smooth_wall = null; - public static final RockWall gneiss_smooth_wall = null; - public static final RockWall phyllite_smooth_wall = null; - public static final RockWall amphibolite_smooth_wall = null; - - public static final RockWall andesite_brick_wall = null; - public static final RockWall basalt_brick_wall = null; - public static final RockWall diorite_brick_wall = null; - public static final RockWall granite_brick_wall = null; - public static final RockWall rhyolite_brick_wall = null; - public static final RockWall pegmatite_brick_wall = null; - public static final RockWall shale_brick_wall = null; - public static final RockWall conglomerate_brick_wall = null; - public static final RockWall dolomite_brick_wall = null; - public static final RockWall limestone_brick_wall = null; - public static final RockWall marble_brick_wall = null; - public static final RockWall slate_brick_wall = null; - public static final RockWall schist_brick_wall = null; - public static final RockWall gneiss_brick_wall = null; - public static final RockWall phyllite_brick_wall = null; - public static final RockWall amphibolite_brick_wall = null; - - public static final RockWall andesite_smooth_brick_wall = null; - public static final RockWall basalt_smooth_brick_wall = null; - public static final RockWall diorite_smooth_brick_wall = null; - public static final RockWall granite_smooth_brick_wall = null; - public static final RockWall rhyolite_smooth_brick_wall = null; - public static final RockWall pegmatite_smooth_brick_wall = null; - public static final RockWall shale_smooth_brick_wall = null; - public static final RockWall conglomerate_smooth_brick_wall = null; - public static final RockWall dolomite_smooth_brick_wall = null; - public static final RockWall limestone_smooth_brick_wall = null; - public static final RockWall marble_smooth_brick_wall = null; - public static final RockWall slate_smooth_brick_wall = null; - public static final RockWall schist_smooth_brick_wall = null; - public static final RockWall gneiss_smooth_brick_wall = null; - public static final RockWall phyllite_smooth_brick_wall = null; - public static final RockWall amphibolite_smooth_brick_wall = null; + public static Rock andesite = null; + public static Rock basalt = null; + public static Rock diorite = null; + public static Rock granite = null; + public static Rock rhyolite = null; + public static Rock pegmatite = null; + public static Rock shale = null; + public static Rock conglomerate = null; + public static Rock dolomite = null; + public static Rock limestone = null; + public static Rock marble = null; + public static Rock slate = null; + public static Rock schist = null; + public static Rock gneiss = null; + public static Rock phyllite = null; + public static Rock amphibolite = null; + + public static Rock andesite_smooth = null; + public static Rock basalt_smooth = null; + public static Rock diorite_smooth = null; + public static Rock granite_smooth = null; + public static Rock rhyolite_smooth = null; + public static Rock pegmatite_smooth = null; + public static Rock shale_smooth = null; + public static Rock conglomerate_smooth = null; + public static Rock dolomite_smooth = null; + public static Rock limestone_smooth = null; + public static Rock marble_smooth = null; + public static Rock slate_smooth = null; + public static Rock schist_smooth = null; + public static Rock gneiss_smooth = null; + public static Rock phyllite_smooth = null; + public static Rock amphibolite_smooth = null; + + public static RockStairs andesite_stairs = null; + public static RockStairs basalt_stairs = null; + public static RockStairs diorite_stairs = null; + public static RockStairs granite_stairs = null; + public static RockStairs rhyolite_stairs = null; + public static RockStairs pegmatite_stairs = null; + public static RockStairs shale_stairs = null; + public static RockStairs conglomerate_stairs = null; + public static RockStairs dolomite_stairs = null; + public static RockStairs limestone_stairs = null; + public static RockStairs marble_stairs = null; + public static RockStairs slate_stairs = null; + public static RockStairs schist_stairs = null; + public static RockStairs gneiss_stairs = null; + public static RockStairs phyllite_stairs = null; + public static RockStairs amphibolite_stairs = null; + + public static RockStairs andesite_smooth_stairs = null; + public static RockStairs basalt_smooth_stairs = null; + public static RockStairs diorite_smooth_stairs = null; + public static RockStairs granite_smooth_stairs = null; + public static RockStairs rhyolite_smooth_stairs = null; + public static RockStairs pegmatite_smooth_stairs = null; + public static RockStairs shale_smooth_stairs = null; + public static RockStairs conglomerate_smooth_stairs = null; + public static RockStairs dolomite_smooth_stairs = null; + public static RockStairs limestone_smooth_stairs = null; + public static RockStairs marble_smooth_stairs = null; + public static RockStairs slate_smooth_stairs = null; + public static RockStairs schist_smooth_stairs = null; + public static RockStairs gneiss_smooth_stairs = null; + public static RockStairs phyllite_smooth_stairs = null; + public static RockStairs amphibolite_smooth_stairs = null; + + public static Rock andesite_brick = null; + public static Rock basalt_brick = null; + public static Rock diorite_brick = null; + public static Rock granite_brick = null; + public static Rock rhyolite_brick = null; + public static Rock pegmatite_brick = null; + public static Rock shale_brick = null; + public static Rock conglomerate_brick = null; + public static Rock dolomite_brick = null; + public static Rock limestone_brick = null; + public static Rock marble_brick = null; + public static Rock slate_brick = null; + public static Rock schist_brick = null; + public static Rock gneiss_brick = null; + public static Rock phyllite_brick = null; + public static Rock amphibolite_brick = null; + + public static Rock andesite_smooth_brick = null; + public static Rock basalt_smooth_brick = null; + public static Rock diorite_smooth_brick = null; + public static Rock granite_smooth_brick = null; + public static Rock rhyolite_smooth_brick = null; + public static Rock pegmatite_smooth_brick = null; + public static Rock shale_smooth_brick = null; + public static Rock conglomerate_smooth_brick = null; + public static Rock dolomite_smooth_brick = null; + public static Rock limestone_smooth_brick = null; + public static Rock marble_smooth_brick = null; + public static Rock slate_smooth_brick = null; + public static Rock schist_smooth_brick = null; + public static Rock gneiss_smooth_brick = null; + public static Rock phyllite_smooth_brick = null; + public static Rock amphibolite_smooth_brick = null; + + public static RockStairs andesite_brick_stairs = null; + public static RockStairs basalt_brick_stairs = null; + public static RockStairs diorite_brick_stairs = null; + public static RockStairs granite_brick_stairs = null; + public static RockStairs rhyolite_brick_stairs = null; + public static RockStairs pegmatite_brick_stairs = null; + public static RockStairs shale_brick_stairs = null; + public static RockStairs conglomerate_brick_stairs = null; + public static RockStairs dolomite_brick_stairs = null; + public static RockStairs limestone_brick_stairs = null; + public static RockStairs marble_brick_stairs = null; + public static RockStairs slate_brick_stairs = null; + public static RockStairs schist_brick_stairs = null; + public static RockStairs gneiss_brick_stairs = null; + public static RockStairs phyllite_brick_stairs = null; + public static RockStairs amphibolite_brick_stairs = null; + + public static RockStairs andesite_smooth_brick_stairs = null; + public static RockStairs basalt_smooth_brick_stairs = null; + public static RockStairs diorite_smooth_brick_stairs = null; + public static RockStairs granite_smooth_brick_stairs = null; + public static RockStairs rhyolite_smooth_brick_stairs = null; + public static RockStairs pegmatite_smooth_brick_stairs = null; + public static RockStairs shale_smooth_brick_stairs = null; + public static RockStairs conglomerate_smooth_brick_stairs = null; + public static RockStairs dolomite_smooth_brick_stairs = null; + public static RockStairs limestone_smooth_brick_stairs = null; + public static RockStairs marble_smooth_brick_stairs = null; + public static RockStairs slate_smooth_brick_stairs = null; + public static RockStairs schist_smooth_brick_stairs = null; + public static RockStairs gneiss_smooth_brick_stairs = null; + public static RockStairs phyllite_smooth_brick_stairs = null; + public static RockStairs amphibolite_smooth_brick_stairs = null; + + public static RockWall andesite_wall = null; + public static RockWall basalt_wall = null; + public static RockWall diorite_wall = null; + public static RockWall granite_wall = null; + public static RockWall rhyolite_wall = null; + public static RockWall pegmatite_wall = null; + public static RockWall shale_wall = null; + public static RockWall conglomerate_wall = null; + public static RockWall dolomite_wall = null; + public static RockWall limestone_wall = null; + public static RockWall marble_wall = null; + public static RockWall slate_wall = null; + public static RockWall schist_wall = null; + public static RockWall gneiss_wall = null; + public static RockWall phyllite_wall = null; + public static RockWall amphibolite_wall = null; + + public static RockWall andesite_smooth_wall = null; + public static RockWall basalt_smooth_wall = null; + public static RockWall diorite_smooth_wall = null; + public static RockWall granite_smooth_wall = null; + public static RockWall rhyolite_smooth_wall = null; + public static RockWall pegmatite_smooth_wall = null; + public static RockWall shale_smooth_wall = null; + public static RockWall conglomerate_smooth_wall = null; + public static RockWall dolomite_smooth_wall = null; + public static RockWall limestone_smooth_wall = null; + public static RockWall marble_smooth_wall = null; + public static RockWall slate_smooth_wall = null; + public static RockWall schist_smooth_wall = null; + public static RockWall gneiss_smooth_wall = null; + public static RockWall phyllite_smooth_wall = null; + public static RockWall amphibolite_smooth_wall = null; + + public static RockWall andesite_brick_wall = null; + public static RockWall basalt_brick_wall = null; + public static RockWall diorite_brick_wall = null; + public static RockWall granite_brick_wall = null; + public static RockWall rhyolite_brick_wall = null; + public static RockWall pegmatite_brick_wall = null; + public static RockWall shale_brick_wall = null; + public static RockWall conglomerate_brick_wall = null; + public static RockWall dolomite_brick_wall = null; + public static RockWall limestone_brick_wall = null; + public static RockWall marble_brick_wall = null; + public static RockWall slate_brick_wall = null; + public static RockWall schist_brick_wall = null; + public static RockWall gneiss_brick_wall = null; + public static RockWall phyllite_brick_wall = null; + public static RockWall amphibolite_brick_wall = null; + + public static RockWall andesite_smooth_brick_wall = null; + public static RockWall basalt_smooth_brick_wall = null; + public static RockWall diorite_smooth_brick_wall = null; + public static RockWall granite_smooth_brick_wall = null; + public static RockWall rhyolite_smooth_brick_wall = null; + public static RockWall pegmatite_smooth_brick_wall = null; + public static RockWall shale_smooth_brick_wall = null; + public static RockWall conglomerate_smooth_brick_wall = null; + public static RockWall dolomite_smooth_brick_wall = null; + public static RockWall limestone_smooth_brick_wall = null; + public static RockWall marble_smooth_brick_wall = null; + public static RockWall slate_smooth_brick_wall = null; + public static RockWall schist_smooth_brick_wall = null; + public static RockWall gneiss_smooth_brick_wall = null; + public static RockWall phyllite_smooth_brick_wall = null; + public static RockWall amphibolite_smooth_brick_wall = null; + + private static final Map LEGACY_BLOCK_FIELDS = createLegacyBlockFieldMap(); @SubscribeEvent - public static void registerBlocks(RegistryEvent.Register event) { + public static void registerBlocks(RegisterEvent event) { + if (!ForgeRegistries.Keys.BLOCKS.equals(event.getRegistryKey())) { + return; + } + IForgeRegistry registry = event.getForgeRegistry(); + for (zone.moddev.mc.mineralogy.data.Material material : MaterialData.toArray()) { - registerMaterialFamily(event, material, material.toRock(false, false), true); + registerMaterialFamily(registry, material, material.toRock(false, false), true); } - registerMaterialFamily(event, MaterialData.ROCK_SALT, new RockSalt(), true); + registerMaterialFamily(registry, MaterialData.ROCK_SALT, new RockSalt(), true); - registerSpecialGeologyBlocks(event); - registerDryWalls(event); + registerSpecialGeologyBlocks(registry); + registerDryWalls(registry); - event.getRegistry().registerAll( + registerAll(registry, new RockSaltLamp(), new RockSaltStreetLamp(), new Ore("sulfur_ore", "sulfur_dust", 1, 4, 0), @@ -262,13 +277,13 @@ public static void registerBlocks(RegistryEvent.Register event) { } - private static void registerSpecialGeologyBlocks(RegistryEvent.Register event) { + private static void registerSpecialGeologyBlocks(IForgeRegistry registry) { Block chert = new Chert(); Block gypsum = new Gypsum(); Block chalk = new Chalk(); Block pumice = new Rock(false, 0.5F, 5.0F, 0, SoundType.STONE, "pumice"); - event.getRegistry().registerAll(chert, gypsum, chalk, pumice); + registerAll(registry, chert, gypsum, chalk, pumice); MineralogyRegistry.sedimentaryStones.add(net.minecraft.world.level.block.Blocks.SANDSTONE); MineralogyRegistry.sedimentaryStones.add(chert); @@ -277,96 +292,96 @@ private static void registerSpecialGeologyBlocks(RegistryEvent.Register e MineralogyRegistry.igneousStones.add(pumice); } - private static void registerDryWalls(RegistryEvent.Register event) { + private static void registerDryWalls(IForgeRegistry registry) { for (String color : zone.moddev.mc.mineralogy.Constants.colorSuffixes) { - event.getRegistry().register(new DryWall(color)); + register(registry, new DryWall(color)); } } - private static void registerMaterialFamily(RegistryEvent.Register event, + private static void registerMaterialFamily(IForgeRegistry registry, zone.moddev.mc.mineralogy.data.Material material, Rock baseRock, boolean addToGeology) { - event.getRegistry().register(baseRock); + register(registry, baseRock); if (addToGeology) { addStoneType(material.rockType, baseRock); } if (MineralogyConfig.generateRockSlab()) { - registerSlabPair(event, createSlab(material, false, false), material, false, false); + registerSlabPair(registry, createSlab(material, false, false), material, false, false); if (MineralogyConfig.generateRockFurnace()) { - registerFurnacePair(event, material, false, false); + registerFurnacePair(registry, material, false, false); } } if (MineralogyConfig.generateRockStairs()) { - event.getRegistry().register(createStairs(baseRock, material, false, false)); + register(registry, createStairs(baseRock, material, false, false)); } if (MineralogyConfig.generateRockWall()) { - event.getRegistry().register(createWall(baseRock, material, false, false)); + register(registry, createWall(baseRock, material, false, false)); } Rock smoothRock = null; if (MineralogyConfig.generateSmooth()) { smoothRock = material.toRock(true, false); - event.getRegistry().register(smoothRock); + register(registry, smoothRock); if (MineralogyConfig.generateReliefs()) { - registerReliefs(event, material); + registerReliefs(registry, material); } if (MineralogyConfig.generateSmoothSlab()) { - registerSlabPair(event, createSlab(material, true, false), material, true, false); + registerSlabPair(registry, createSlab(material, true, false), material, true, false); if (MineralogyConfig.generateSmoothFurnace()) { - registerFurnacePair(event, material, true, false); + registerFurnacePair(registry, material, true, false); } } if (MineralogyConfig.generateSmoothStairs()) { - event.getRegistry().register(createStairs(smoothRock, material, true, false)); + register(registry, createStairs(smoothRock, material, true, false)); } if (MineralogyConfig.generateSmoothWall()) { - event.getRegistry().register(createWall(smoothRock, material, true, false)); + register(registry, createWall(smoothRock, material, true, false)); } } Rock brickRock = null; if (MineralogyConfig.generateBrick()) { brickRock = material.toRock(false, true); - event.getRegistry().register(brickRock); + register(registry, brickRock); if (MineralogyConfig.generateBrickSlab()) { - registerSlabPair(event, createSlab(material, false, true), material, false, true); + registerSlabPair(registry, createSlab(material, false, true), material, false, true); if (MineralogyConfig.generateBrickFurnace()) { - registerFurnacePair(event, material, false, true); + registerFurnacePair(registry, material, false, true); } } if (MineralogyConfig.generateBrickStairs()) { - event.getRegistry().register(createStairs(brickRock, material, false, true)); + register(registry, createStairs(brickRock, material, false, true)); } if (MineralogyConfig.generateBrickWall()) { - event.getRegistry().register(createWall(brickRock, material, false, true)); + register(registry, createWall(brickRock, material, false, true)); } } if (smoothRock != null && MineralogyConfig.generateSmoothBrick()) { Rock smoothBrickRock = material.toRock(true, true); - event.getRegistry().register(smoothBrickRock); + register(registry, smoothBrickRock); if (MineralogyConfig.generateSmoothBrickSlab()) { - registerSlabPair(event, createSlab(material, true, true), material, true, true); + registerSlabPair(registry, createSlab(material, true, true), material, true, true); if (MineralogyConfig.generateSmoothBrickFurnace()) { - registerFurnacePair(event, material, true, true); + registerFurnacePair(registry, material, true, true); } } if (MineralogyConfig.generateSmoothBrickStairs()) { - event.getRegistry().register(createStairs(smoothBrickRock, material, true, true)); + register(registry, createStairs(smoothBrickRock, material, true, true)); } if (MineralogyConfig.generateSmoothBrickWall()) { - event.getRegistry().register(createWall(smoothBrickRock, material, true, true)); + register(registry, createWall(smoothBrickRock, material, true, true)); } } } - private static void registerSlabPair(RegistryEvent.Register event, RockSlab slab, + private static void registerSlabPair(IForgeRegistry registry, RockSlab slab, zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { - event.getRegistry().register(slab); - event.getRegistry().register(createDoubleSlab(slab, material, isSmooth, isBrick)); + register(registry, slab); + register(registry, createDoubleSlab(slab, material, isSmooth, isBrick)); } private static RockStairs createStairs(Block sourceBlock, zone.moddev.mc.mineralogy.data.Material material, @@ -395,18 +410,18 @@ private static DoubleSlab createDoubleSlab(Block sourceBlock, zone.moddev.mc.min getVariantName(material, isSmooth, isBrick) + "_double_slab"); } - private static void registerFurnacePair(RegistryEvent.Register event, + private static void registerFurnacePair(IForgeRegistry registry, zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { String name = getVariantName(material, isSmooth, isBrick) + "_furnace"; float burnModifier = (float) (1.0D + ((material.hardness - 3.0D) / 10.0D)); - event.getRegistry().register(new RockFurnace((float) material.hardness, (float) material.blastResistance, + register(registry, new RockFurnace((float) material.hardness, (float) material.blastResistance, material.toolHardnessLevel, false, burnModifier, name)); - event.getRegistry().register(new RockFurnace((float) material.hardness, (float) material.blastResistance, + register(registry, new RockFurnace((float) material.hardness, (float) material.blastResistance, material.toolHardnessLevel, true, burnModifier, "lit_" + name)); } - private static void registerReliefs(RegistryEvent.Register event, + private static void registerReliefs(IForgeRegistry registry, zone.moddev.mc.mineralogy.data.Material material) { String name = material.materialName.toLowerCase(); String[] suffixes = new String[] { @@ -426,12 +441,58 @@ private static void registerReliefs(RegistryEvent.Register event, }; for (String suffix : suffixes) { - event.getRegistry().register(new RockRelief((float) material.hardness, + register(registry, new RockRelief((float) material.hardness, (float) material.blastResistance / 2.0F, material.toolHardnessLevel, SoundType.STONE, name + "_relief_" + suffix)); } } + private static void registerAll(IForgeRegistry registry, Block... blocks) { + for (Block block : blocks) { + register(registry, block); + } + } + + private static T register(IForgeRegistry registry, T block) { + if (!(block instanceof NamedMineralogyBlock)) { + throw new IllegalArgumentException("Mineralogy block has no stable registry path: " + block.getClass()); + } + String path = ((NamedMineralogyBlock) block).mineralogyRegistryPath(); + if (path == null || path.isEmpty()) { + throw new IllegalArgumentException("Mineralogy block has an empty registry path: " + block.getClass()); + } + registry.register(new ResourceLocation(Mineralogy.MODID, path), block); + bindLegacyBlockField(path, block); + return block; + } + + private static Map createLegacyBlockFieldMap() { + Map fields = new HashMap<>(); + for (Field field : Blocks.class.getDeclaredFields()) { + int modifiers = field.getModifiers(); + if (Modifier.isPublic(modifiers) && Modifier.isStatic(modifiers) + && Block.class.isAssignableFrom(field.getType())) { + fields.put(field.getName(), field); + } + } + return Collections.unmodifiableMap(fields); + } + + private static void bindLegacyBlockField(String path, Block block) { + Field field = LEGACY_BLOCK_FIELDS.get(path); + if (field == null) { + return; + } + if (!field.getType().isInstance(block)) { + throw new IllegalStateException("Legacy block field type mismatch for " + path); + } + try { + field.set(null, block); + } catch (IllegalAccessException e) { + throw new IllegalStateException("Cannot bind legacy block field " + path, e); + } + } + private static String getVariantName(zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { String name = material.materialName.toLowerCase(); 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..3b6008ff2 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/Items.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/Items.java @@ -20,37 +20,39 @@ import net.minecraft.world.item.Item; import net.minecraft.world.item.BlockItem; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.ObjectHolder; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.RegisterEvent; @Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) -@ObjectHolder(Mineralogy.MODID) public class Items { - public static final BlockItem basalt = null; - public static final Item sulfur_dust = null; - public static final Item phosphorous_dust = null; - public static final Item nitrate_dust = null; - public static final Item gypsum_dust = null; - public static final Item chalk_dust = null; - public static final Item rock_salt_dust = null; - public static final Item salt_dust = null; - public static final Item mineral_fertilizer = null; + public static BlockItem basalt; + public static Item sulfur_dust; + public static Item phosphorous_dust; + public static Item nitrate_dust; + public static Item gypsum_dust; + public static Item chalk_dust; + public static Item rock_salt_dust; + public static Item salt_dust; + public static Item mineral_fertilizer; @SubscribeEvent - public static void registerItems(RegistryEvent.Register event) { - event.getRegistry().registerAll( - createItem("sulfur_dust"), - createItem("phosphorous_dust"), - createItem("nitrate_dust"), - createItem("gypsum_dust"), - createItem("chalk_dust"), - createItem("rock_salt_dust"), - createItem("salt_dust"), - createFertilizer() - ); + public static void registerItems(RegisterEvent event) { + if (!ForgeRegistries.Keys.ITEMS.equals(event.getRegistryKey())) { + return; + } + IForgeRegistry registry = event.getForgeRegistry(); + + sulfur_dust = register(registry, "sulfur_dust", createItem()); + phosphorous_dust = register(registry, "phosphorous_dust", createItem()); + nitrate_dust = register(registry, "nitrate_dust", createItem()); + gypsum_dust = register(registry, "gypsum_dust", createItem()); + chalk_dust = register(registry, "chalk_dust", createItem()); + rock_salt_dust = register(registry, "rock_salt_dust", createItem()); + salt_dust = register(registry, "salt_dust", createItem()); + mineral_fertilizer = register(registry, "mineral_fertilizer", createFertilizer()); List blockItems = new ArrayList(); @@ -60,11 +62,17 @@ public static void registerItems(RegistryEvent.Register event) { } } - event.getRegistry().registerAll(blockItems.toArray(new Item[blockItems.size()])); + for (Item item : blockItems) { + ResourceLocation name = ForgeRegistries.BLOCKS.getKey(((BlockItem) item).getBlock()); + registry.register(name, item); + if ("basalt".equals(name.getPath())) { + basalt = (BlockItem) item; + } + } } private static boolean isMineralogyBlockItem(Block block) { - ResourceLocation registryName = block.getRegistryName(); + ResourceLocation registryName = ForgeRegistries.BLOCKS.getKey(block); return registryName != null && Mineralogy.MODID.equals(registryName.getNamespace()) @@ -81,34 +89,33 @@ private static boolean isMineralogyBlockItem(Block block) { } private static BlockItem createBlockItem(Block block) { - Item.Properties properties = new Item.Properties().tab(MineralogyItemGroups.forBlock(block)); + Item.Properties properties = new Item.Properties(); if (block instanceof RockFurnace) { properties.stacksTo(1); } else if (block instanceof RockSaltStreetLamp) { properties.stacksTo(16); } - BlockItem item = new BlockItem(block, properties); - item.setRegistryName(block.getRegistryName()); - return item; + return new BlockItem(block, properties); } private static boolean isUnlitRockFurnace(Block block) { - ResourceLocation registryName = block.getRegistryName(); + ResourceLocation registryName = ForgeRegistries.BLOCKS.getKey(block); return block instanceof RockFurnace && registryName != null && !registryName.getPath().startsWith("lit_"); } - private static Item createItem(String name) { - Item item = new Item(new Item.Properties().tab(MineralogyItemGroups.forItem())); - item.setRegistryName(Mineralogy.MODID, name); - return item; + private static Item createItem() { + return new Item(new Item.Properties()); } private static Item createFertilizer() { - MineralFertilizer item = new MineralFertilizer(MineralogyItemGroups.forItem()); - item.setRegistryName(Mineralogy.MODID, "mineral_fertilizer"); + return new MineralFertilizer(); + } + + private static T register(IForgeRegistry registry, String path, T item) { + registry.register(new ResourceLocation(Mineralogy.MODID, path), item); 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..cd300c5b5 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyFluids.java @@ -1,9 +1,13 @@ package zone.moddev.mc.mineralogy.init; +import java.util.function.Consumer; + import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.blocks.MineralogyLiquidBlock; import zone.moddev.mc.mineralogy.items.MineralogyBucketItem; +import net.minecraftforge.client.extensions.common.IClientFluidTypeExtensions; +import net.minecraftforge.common.SoundActions; import net.minecraft.resources.ResourceLocation; import net.minecraft.sounds.SoundEvents; import net.minecraft.world.item.Item; @@ -14,13 +18,15 @@ import net.minecraft.world.level.material.Fluid; import net.minecraft.world.level.material.Material; import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fluids.FluidAttributes; +import net.minecraftforge.fluids.FluidType; import net.minecraftforge.fluids.ForgeFlowingFluid; import net.minecraftforge.registries.DeferredRegister; import net.minecraftforge.registries.ForgeRegistries; import net.minecraftforge.registries.RegistryObject; public final class MineralogyFluids { + private static final DeferredRegister FLUID_TYPES = + DeferredRegister.create(ForgeRegistries.Keys.FLUID_TYPES, Mineralogy.MODID); private static final DeferredRegister FLUIDS = DeferredRegister.create(ForgeRegistries.FLUIDS, Mineralogy.MODID); private static final DeferredRegister BLOCKS = @@ -32,14 +38,34 @@ public final class MineralogyFluids { "blocks/crude_oil_still"); private static final ResourceLocation CRUDE_OIL_FLOW = new ResourceLocation(Mineralogy.MODID, "blocks/crude_oil_flow"); + + public static final RegistryObject CRUDE_OIL_TYPE = FLUID_TYPES.register("crude_oil", + () -> new FluidType(FluidType.Properties.create() + .density(850) + .viscosity(6000) + .temperature(300) + .sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL) + .sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY)) { + @Override + public void initializeClient(Consumer consumer) { + consumer.accept(new IClientFluidTypeExtensions() { + @Override + public ResourceLocation getStillTexture() { + return CRUDE_OIL_STILL; + } + + @Override + public ResourceLocation getFlowingTexture() { + return CRUDE_OIL_FLOW; + } + }); + } + }); + private static final ForgeFlowingFluid.Properties CRUDE_OIL_PROPERTIES = - new ForgeFlowingFluid.Properties(MineralogyFluids::crudeOil, - MineralogyFluids::flowingCrudeOil, - FluidAttributes.builder(CRUDE_OIL_STILL, CRUDE_OIL_FLOW) - .density(850) - .viscosity(6000) - .temperature(300) - .sound(SoundEvents.BUCKET_FILL, SoundEvents.BUCKET_EMPTY)) + new ForgeFlowingFluid.Properties(MineralogyFluids::crudeOilType, + MineralogyFluids::crudeOil, + MineralogyFluids::flowingCrudeOil) .bucket(MineralogyFluids::crudeOilBucket) .block(MineralogyFluids::crudeOilBlock) .slopeFindDistance(2) @@ -53,13 +79,13 @@ public final class MineralogyFluids { FLUIDS.register("flowing_crude_oil", () -> new ForgeFlowingFluid.Flowing(CRUDE_OIL_PROPERTIES)); public static final RegistryObject CRUDE_OIL_BLOCK = BLOCKS.register("crude_oil", () -> new MineralogyLiquidBlock(MineralogyFluids::crudeOilFlowing, - BlockBehaviour.Properties.of(Material.WATER).noCollission().strength(100.0F).noDrops())); + BlockBehaviour.Properties.of(Material.WATER).noCollission().strength(100.0F).noLootTable())); 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()))); + new Item.Properties().craftRemainder(Items.BUCKET).stacksTo(1))); public static void register(IEventBus modBus) { + FLUID_TYPES.register(modBus); FLUIDS.register(modBus); BLOCKS.register(modBus); ITEMS.register(modBus); @@ -69,6 +95,10 @@ public static Fluid crudeOil() { return CRUDE_OIL.get(); } + public static FluidType crudeOilType() { + return CRUDE_OIL_TYPE.get(); + } + public static FlowingFluid crudeOilFlowing() { return CRUDE_OIL.get(); } 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..799fe041f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java @@ -9,80 +9,93 @@ 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; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; -import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; +import net.minecraft.world.level.block.Block; +import net.minecraftforge.event.CreativeModeTabEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; +@Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) public final class MineralogyItemGroups { + private static CreativeModeTab mineralogy; + private static CreativeModeTab rocks; + private static CreativeModeTab stairs; + private static CreativeModeTab slabs; + private static CreativeModeTab walls; + private static CreativeModeTab items; + private MineralogyItemGroups() { throw new IllegalAccessError("Not an instantiable class"); } - public static CreativeModeTab forBlock(Block block) { - if (!MineralogyConfig.groupCreativeTabItemsByType()) { - return MainGroup.MINERALOGY; + @SubscribeEvent + public static void registerTabs(CreativeModeTabEvent.Register event) { + mineralogy = register(event, "mineralogy", "basalt"); + rocks = register(event, "rock", "basalt"); + stairs = register(event, "stair", "basalt_stairs"); + slabs = register(event, "slab", "basalt_slab"); + walls = register(event, "wall", "basalt_wall"); + items = register(event, "item", "sulfur_dust"); + } + + @SubscribeEvent + public static void buildTabContents(CreativeModeTabEvent.BuildContents event) { + boolean grouped = MineralogyConfig.groupCreativeTabItemsByType(); + CreativeModeTab tab = event.getTab(); + + for (Item item : ForgeRegistries.ITEMS.getValues()) { + ResourceLocation id = ForgeRegistries.ITEMS.getKey(item); + if (id == null || !Mineralogy.MODID.equals(id.getNamespace())) { + continue; + } + + if (!grouped && tab == mineralogy) { + event.accept(item); + } else if (grouped && tab == targetTab(item)) { + event.accept(item); + } + } + } + + private static CreativeModeTab targetTab(Item item) { + if (!(item instanceof BlockItem)) { + return items; } + Block block = ((BlockItem) item).getBlock(); if (block instanceof RockRelief) { - return CreativeModeTabs.ITEM; + return items; } if (block instanceof RockStairs) { - return StairGroup.STAIR; + return stairs; } if (block instanceof RockSlab) { - return SlabGroup.SLAB; + return slabs; } if (block instanceof RockWall) { - return WallGroup.WALL; + return walls; } if (block instanceof Rock || block instanceof Ore) { - return RockGroup.ROCK; + return rocks; } - - return CreativeModeTabs.ITEM; - } - - public static CreativeModeTab forItem() { - return MineralogyConfig.groupCreativeTabItemsByType() ? CreativeModeTabs.ITEM : MainGroup.MINERALOGY; - } - - private static CreativeModeTab create(String name, String iconItemName) { - return new CreativeModeTab(Mineralogy.MODID + "." + name) { - @Override - @OnlyIn(Dist.CLIENT) - 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); - } - }; - } - - private static final class MainGroup { - private static final CreativeModeTab MINERALOGY = create("mineralogy", "basalt"); - } - - private static final class RockGroup { - private static final CreativeModeTab ROCK = create("rock", "basalt"); - } - - private static final class StairGroup { - private static final CreativeModeTab STAIR = create("stair", "basalt_stairs"); - } - - private static final class SlabGroup { - private static final CreativeModeTab SLAB = create("slab", "basalt_slab"); + return items; } - private static final class WallGroup { - private static final CreativeModeTab WALL = create("wall", "basalt_wall"); + private static CreativeModeTab register(CreativeModeTabEvent.Register event, String name, + String iconItemName) { + return event.registerCreativeModeTab(new ResourceLocation(Mineralogy.MODID, name), builder -> builder + .title(Component.translatable("itemGroup." + Mineralogy.MODID + "." + name)) + .icon(() -> icon(iconItemName))); } - private static final class CreativeModeTabs { - private static final CreativeModeTab ITEM = create("item", "sulfur_dust"); + private static ItemStack icon(String itemName) { + Item item = ForgeRegistries.ITEMS.getValue(new ResourceLocation(Mineralogy.MODID, itemName)); + return new ItemStack(item == null ? net.minecraft.world.item.Items.IRON_PICKAXE : item); } } diff --git a/src/main/java/zone/moddev/mc/mineralogy/init/TileEntities.java b/src/main/java/zone/moddev/mc/mineralogy/init/TileEntities.java index af9cb24f5..e80435980 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/TileEntities.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/TileEntities.java @@ -9,19 +9,23 @@ import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.entity.BlockEntityType; -import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.ObjectHolder; +import net.minecraftforge.registries.IForgeRegistry; +import net.minecraftforge.registries.RegisterEvent; +import net.minecraft.resources.ResourceLocation; @Mod.EventBusSubscriber(modid = Mineralogy.MODID, bus = Mod.EventBusSubscriber.Bus.MOD) -@ObjectHolder(Mineralogy.MODID) public class TileEntities { - public static final BlockEntityType rock_furnace = null; + public static BlockEntityType rock_furnace; @SubscribeEvent - public static void registerTileEntities(RegistryEvent.Register> event) { + public static void registerTileEntities(RegisterEvent event) { + if (!ForgeRegistries.Keys.BLOCK_ENTITY_TYPES.equals(event.getRegistryKey())) { + return; + } + IForgeRegistry> registry = event.getForgeRegistry(); List furnaceBlocks = new ArrayList(); for (Block block : ForgeRegistries.BLOCKS.getValues()) { if (block instanceof RockFurnace) { @@ -29,11 +33,10 @@ public static void registerTileEntities(RegistryEvent.Register type = BlockEntityType.Builder + rock_furnace = BlockEntityType.Builder .of(TileEntityRockFurnace::new, furnaceBlocks.toArray(new Block[furnaceBlocks.size()])) .build(null); - type.setRegistryName(Mineralogy.MODID, "rock_furnace"); - event.getRegistry().register(type); + registry.register(new ResourceLocation(Mineralogy.MODID, "rock_furnace"), rock_furnace); } private TileEntities() { diff --git a/src/main/java/zone/moddev/mc/mineralogy/items/MineralFertilizer.java b/src/main/java/zone/moddev/mc/mineralogy/items/MineralFertilizer.java index c36535a95..6c3125483 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/items/MineralFertilizer.java +++ b/src/main/java/zone/moddev/mc/mineralogy/items/MineralFertilizer.java @@ -4,7 +4,6 @@ import net.minecraft.world.item.BoneMealItem; import net.minecraft.world.item.Items; import net.minecraft.world.item.Item; -import net.minecraft.world.item.CreativeModeTab; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.context.UseOnContext; import net.minecraft.world.InteractionResult; @@ -15,11 +14,7 @@ public class MineralFertilizer extends Item { private final ItemStack phantomBonemeal = new ItemStack(Items.BONE_MEAL, 27); public MineralFertilizer() { - this(zone.moddev.mc.mineralogy.init.MineralogyItemGroups.forItem()); - } - - public MineralFertilizer(CreativeModeTab group) { - super(new Item.Properties().tab(group)); + super(new Item.Properties()); } @Override diff --git a/src/main/java/zone/moddev/mc/mineralogy/items/MineralogyBucketItem.java b/src/main/java/zone/moddev/mc/mineralogy/items/MineralogyBucketItem.java index 18da62173..577df25d4 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/items/MineralogyBucketItem.java +++ b/src/main/java/zone/moddev/mc/mineralogy/items/MineralogyBucketItem.java @@ -1,188 +1,17 @@ package zone.moddev.mc.mineralogy.items; -import java.util.Optional; import java.util.function.Supplier; -import javax.annotation.Nullable; - -import net.minecraft.advancements.CriteriaTriggers; -import net.minecraft.core.BlockPos; -import net.minecraft.core.Direction; -import net.minecraft.core.particles.ParticleTypes; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.sounds.SoundEvent; -import net.minecraft.sounds.SoundEvents; -import net.minecraft.sounds.SoundSource; -import net.minecraft.stats.Stats; -import net.minecraft.tags.FluidTags; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.BucketItem; import net.minecraft.world.item.Item; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.item.ItemUtils; -import net.minecraft.world.item.Items; -import net.minecraft.world.level.ClipContext; -import net.minecraft.world.level.Level; -import net.minecraft.world.level.LevelAccessor; -import net.minecraft.world.level.block.Block; -import net.minecraft.world.level.block.BucketPickup; -import net.minecraft.world.level.block.LiquidBlockContainer; -import net.minecraft.world.level.block.state.BlockState; -import net.minecraft.world.level.gameevent.GameEvent; -import net.minecraft.world.level.material.FlowingFluid; import net.minecraft.world.level.material.Fluid; -import net.minecraft.world.level.material.Fluids; -import net.minecraft.world.level.material.Material; -import net.minecraft.world.phys.BlockHitResult; -import net.minecraft.world.phys.HitResult; -import net.minecraftforge.common.capabilities.ICapabilityProvider; -import net.minecraftforge.fluids.FluidUtil; -import net.minecraftforge.fluids.capability.wrappers.FluidBucketWrapper; +/** + * Retains Mineralogy's bucket class name for compatibility while using Forge's + * current fluid-type-aware bucket behavior. + */ public class MineralogyBucketItem extends BucketItem { - private final Supplier fluidSupplier; - public MineralogyBucketItem(Supplier fluid, Item.Properties properties) { super(fluid, properties); - this.fluidSupplier = fluid; - } - - @Override - public InteractionResultHolder use(Level world, Player player, InteractionHand hand) { - ItemStack held = player.getItemInHand(hand); - Fluid fluid = getFluid(); - BlockHitResult hit = getPlayerPOVHitResult(world, player, - fluid == Fluids.EMPTY ? ClipContext.Fluid.SOURCE_ONLY : ClipContext.Fluid.NONE); - InteractionResultHolder eventResult = - net.minecraftforge.event.ForgeEventFactory.onBucketUse(player, world, held, hit); - if (eventResult != null) { - return eventResult; - } - if (hit.getType() == HitResult.Type.MISS || hit.getType() != HitResult.Type.BLOCK) { - return InteractionResultHolder.pass(held); - } - - BlockPos hitPos = hit.getBlockPos(); - Direction direction = hit.getDirection(); - BlockPos placePos = hitPos.relative(direction); - if (!world.mayInteract(player, hitPos) || !player.mayUseItemAt(placePos, direction, held)) { - return InteractionResultHolder.fail(held); - } - - if (fluid == Fluids.EMPTY) { - BlockState targetState = world.getBlockState(hitPos); - if (targetState.getBlock() instanceof BucketPickup) { - BucketPickup pickup = (BucketPickup) targetState.getBlock(); - ItemStack filled = pickup.pickupBlock(world, hitPos, targetState); - if (!filled.isEmpty()) { - player.awardStat(Stats.ITEM_USED.get(this)); - pickup.getPickupSound(targetState).ifPresent(sound -> player.playSound(sound, 1.0F, 1.0F)); - world.gameEvent(player, GameEvent.FLUID_PICKUP, hitPos); - ItemStack result = ItemUtils.createFilledResult(held, player, filled); - if (!world.isClientSide) { - CriteriaTriggers.FILLED_BUCKET.trigger((ServerPlayer) player, filled); - } - return InteractionResultHolder.sidedSuccess(result, world.isClientSide()); - } - } - return InteractionResultHolder.fail(held); - } - - BlockState targetState = world.getBlockState(hitPos); - BlockPos actualPlacePos = canBlockContainFluid(world, hitPos, targetState) ? hitPos : placePos; - if (emptyContents(player, world, actualPlacePos, hit, held)) { - checkExtraContent(player, world, held, actualPlacePos); - if (player instanceof ServerPlayer) { - CriteriaTriggers.PLACED_BLOCK.trigger((ServerPlayer) player, actualPlacePos, held); - } - player.awardStat(Stats.ITEM_USED.get(this)); - return InteractionResultHolder.sidedSuccess(getEmptySuccessItem(held, player), world.isClientSide()); - } - return InteractionResultHolder.fail(held); - } - - @Override - public boolean emptyContents(@Nullable Player player, Level world, BlockPos pos, - @Nullable BlockHitResult hit, @Nullable ItemStack container) { - Fluid fluid = getFluid(); - if (!(fluid instanceof FlowingFluid)) { - return false; - } - - BlockState state = world.getBlockState(pos); - Block block = state.getBlock(); - Material material = state.getMaterial(); - boolean canReplace = state.canBeReplaced(fluid); - boolean canPlace = state.isAir() || canReplace - || block instanceof LiquidBlockContainer - && ((LiquidBlockContainer) block).canPlaceLiquid(world, pos, state, fluid); - Optional containedFluid = - Optional.ofNullable(container).flatMap(FluidUtil::getFluidContained); - - if (!canPlace) { - return hit != null && emptyContents(player, world, hit.getBlockPos().relative(hit.getDirection()), - null, container); - } - if (world.dimensionType().ultraWarm() && containedFluid.isPresent() - && fluid.getAttributes().doesVaporize(world, pos, containedFluid.get())) { - fluid.getAttributes().vaporize(player, world, pos, containedFluid.get()); - return true; - } - if (world.dimensionType().ultraWarm() && fluid.is(FluidTags.WATER)) { - int x = pos.getX(); - int y = pos.getY(); - int z = pos.getZ(); - world.playSound(player, pos, SoundEvents.FIRE_EXTINGUISH, SoundSource.BLOCKS, 0.5F, - 2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F); - for (int i = 0; i < 8; i++) { - world.addParticle(ParticleTypes.LARGE_SMOKE, x + Math.random(), y + Math.random(), - z + Math.random(), 0.0D, 0.0D, 0.0D); - } - return true; - } - if (block instanceof LiquidBlockContainer - && ((LiquidBlockContainer) block).canPlaceLiquid(world, pos, state, fluid)) { - ((LiquidBlockContainer) block).placeLiquid(world, pos, state, ((FlowingFluid) fluid).getSource(false)); - playEmptySound(player, world, pos); - return true; - } - if (!world.isClientSide && canReplace && !material.isLiquid()) { - world.destroyBlock(pos, true); - } - if (!world.setBlock(pos, fluid.defaultFluidState().createLegacyBlock(), 11) - && !state.getFluidState().isSource()) { - return false; - } - playEmptySound(player, world, pos); - return true; - } - - @Override - public Fluid getFluid() { - return fluidSupplier.get(); - } - - @Override - protected void playEmptySound(@Nullable Player player, LevelAccessor world, BlockPos pos) { - Fluid fluid = getFluid(); - SoundEvent sound = fluid.getAttributes().getEmptySound(); - if (sound == null) { - sound = fluid.is(FluidTags.LAVA) ? SoundEvents.BUCKET_EMPTY_LAVA : SoundEvents.BUCKET_EMPTY; - } - world.playSound(player, pos, sound, SoundSource.BLOCKS, 1.0F, 1.0F); - world.gameEvent(player, GameEvent.FLUID_PLACE, pos); - } - - @Override - public ICapabilityProvider initCapabilities(ItemStack stack, @Nullable CompoundTag nbt) { - return new FluidBucketWrapper(stack); - } - - private boolean canBlockContainFluid(Level world, BlockPos pos, BlockState state) { - return state.getBlock() instanceof LiquidBlockContainer - && ((LiquidBlockContainer) state.getBlock()).canPlaceLiquid(world, pos, state, getFluid()); } } 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..30ec9b1c2 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java +++ b/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java @@ -1,21 +1,22 @@ package zone.moddev.mc.mineralogy.patching; +import java.util.List; + import zone.moddev.mc.mineralogy.Mineralogy; import zone.moddev.mc.mineralogy.MineralogyConfig; import net.minecraft.world.level.block.Block; import net.minecraft.world.item.Item; import net.minecraft.resources.ResourceLocation; -import net.minecraftforge.event.RegistryEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.registries.ForgeRegistries; -import net.minecraftforge.registries.IForgeRegistryEntry; +import net.minecraftforge.registries.MissingMappingsEvent; 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) public final class PatchHandler { private static final Logger LOGGER = LogManager.getLogger(); @@ -29,35 +30,31 @@ private PatchHandler() { } @SubscribeEvent - public static void remapMissingBlocks(RegistryEvent.MissingMappings event) { - if (!MineralogyConfig.patchUpdate()) { - return; - } - - remapMissing(event, SAPROLITE, ForgeRegistries.BLOCKS.getValue(LIMESTONE)); - remapMissing(event, PUMMICE, ForgeRegistries.BLOCKS.getValue(PUMICE)); - } - - @SubscribeEvent - public static void remapMissingItems(RegistryEvent.MissingMappings event) { + public static void remapMissingMappings(MissingMappingsEvent event) { if (!MineralogyConfig.patchUpdate()) { return; } - remapMissing(event, SAPROLITE, ForgeRegistries.ITEMS.getValue(LIMESTONE)); - remapMissing(event, PUMMICE, ForgeRegistries.ITEMS.getValue(PUMICE)); + remapMissing(event.getMappings(ForgeRegistries.Keys.BLOCKS, Mineralogy.MODID), + SAPROLITE, ForgeRegistries.BLOCKS.getValue(LIMESTONE)); + remapMissing(event.getMappings(ForgeRegistries.Keys.BLOCKS, Mineralogy.MODID), + PUMMICE, ForgeRegistries.BLOCKS.getValue(PUMICE)); + remapMissing(event.getMappings(ForgeRegistries.Keys.ITEMS, Mineralogy.MODID), + SAPROLITE, ForgeRegistries.ITEMS.getValue(LIMESTONE)); + remapMissing(event.getMappings(ForgeRegistries.Keys.ITEMS, Mineralogy.MODID), + PUMMICE, ForgeRegistries.ITEMS.getValue(PUMICE)); } - private static > void remapMissing(RegistryEvent.MissingMappings event, + private static void remapMissing(List> mappings, ResourceLocation oldId, T replacement) { - for (RegistryEvent.MissingMappings.Mapping mapping : event.getMappings()) { - if (!oldId.equals(mapping.key)) { + for (MissingMappingsEvent.Mapping mapping : mappings) { + if (!oldId.equals(mapping.getKey())) { continue; } if (replacement != null) { mapping.remap(replacement); - LOGGER.info("Remapped legacy Mineralogy id '{}' to '{}'", oldId, replacement.getRegistryName()); + LOGGER.info("Remapped legacy Mineralogy id '{}'", oldId); } else { mapping.warn(); LOGGER.warn("Could not remap legacy Mineralogy id '{}' because the replacement is not registered", oldId); diff --git a/src/main/java/zone/moddev/mc/mineralogy/tileentity/TileEntityRockFurnace.java b/src/main/java/zone/moddev/mc/mineralogy/tileentity/TileEntityRockFurnace.java index 70b35b321..7624a7f67 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/tileentity/TileEntityRockFurnace.java +++ b/src/main/java/zone/moddev/mc/mineralogy/tileentity/TileEntityRockFurnace.java @@ -16,7 +16,6 @@ import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.chat.Component; -import net.minecraft.network.chat.TranslatableComponent; import net.minecraft.resources.ResourceLocation; import net.minecraft.server.level.ServerPlayer; import net.minecraft.util.Mth; @@ -45,8 +44,8 @@ import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.common.ForgeHooks; import net.minecraftforge.common.capabilities.Capability; +import net.minecraftforge.common.capabilities.ForgeCapabilities; import net.minecraftforge.common.util.LazyOptional; -import net.minecraftforge.items.CapabilityItemHandler; import net.minecraftforge.items.IItemHandlerModifiable; import net.minecraftforge.items.wrapper.SidedInvWrapper; @@ -140,7 +139,7 @@ public void setItem(int index, ItemStack stack) { @Override protected Component getDefaultName() { - return new TranslatableComponent("container.furnace"); + return Component.translatable("container.furnace"); } public void setCustomInventoryName(Component name) { @@ -193,7 +192,7 @@ private void tickServer(Level level, BlockPos pos) { if (isBurning()) { dirty = true; - ItemStack container = ForgeHooks.getContainerItem(fuel); + ItemStack container = fuel.getCraftingRemainingItem(); if (!container.isEmpty()) { furnaceItemStacks.set(1, container); } else if (!fuel.isEmpty()) { @@ -245,7 +244,10 @@ private boolean canSmelt(@Nullable Recipe recipe) { return false; } - ItemStack result = recipe.getResultItem(); + if (level == null) { + return false; + } + ItemStack result = recipe.getResultItem(level.registryAccess()); if (result.isEmpty()) { return false; } @@ -271,7 +273,7 @@ private void smeltItem(@Nullable Recipe recipe) { } ItemStack input = furnaceItemStacks.get(0); - ItemStack result = recipe.getResultItem(); + ItemStack result = recipe.getResultItem(level.registryAccess()); ItemStack output = furnaceItemStacks.get(2); if (output.isEmpty()) { @@ -435,7 +437,7 @@ public void onCrafting(Player player) { @Override public LazyOptional getCapability(Capability capability, @Nullable Direction facing) { - if (!isRemoved() && facing != null && capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) { + if (!isRemoved() && facing != null && capability == ForgeCapabilities.ITEM_HANDLER) { if (facing == Direction.UP) { return handlers[0].cast(); } diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index 7363c76ff..cd192dfdc 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -6,7 +6,7 @@ # 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. +loaderVersion="[45,)" #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. license="All rights reserved" @@ -43,7 +43,7 @@ description='''Adds real-world rocks, matching building blocks, furnaces, ores, [[dependencies.mineralogy]] modId="orespawn" mandatory=true -versionRange="[4.0.0,5.0.0)" +versionRange="[4.0.1,5.0.0)" ordering="AFTER" side="BOTH" @@ -54,7 +54,7 @@ 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 +versionRange="[45,)" #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 @@ -66,6 +66,6 @@ side="BOTH" 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)" +versionRange="[1.19.4,1.20)" ordering="NONE" side="BOTH" diff --git a/src/main/resources/assets/minecraft/atlases/blocks.json b/src/main/resources/assets/minecraft/atlases/blocks.json new file mode 100644 index 000000000..f0641db3b --- /dev/null +++ b/src/main/resources/assets/minecraft/atlases/blocks.json @@ -0,0 +1,14 @@ +{ + "sources": [ + { + "type": "directory", + "source": "blocks", + "prefix": "blocks/" + }, + { + "type": "directory", + "source": "items", + "prefix": "items/" + } + ] +} diff --git a/src/main/resources/assets/mineralogy/models/item/crude_oil_bucket.json b/src/main/resources/assets/mineralogy/models/item/crude_oil_bucket.json index fdb921b65..7aafa6de9 100644 --- a/src/main/resources/assets/mineralogy/models/item/crude_oil_bucket.json +++ b/src/main/resources/assets/mineralogy/models/item/crude_oil_bucket.json @@ -1,4 +1,4 @@ { - "loader": "forge:bucket", + "loader": "forge:fluid_container", "fluid": "mineralogy:crude_oil" } diff --git a/src/main/resources/data/mineralogy/orespawn/provider.json b/src/main/resources/data/mineralogy/orespawn/provider.json index 81be55288..11f112ec4 100644 --- a/src/main/resources/data/mineralogy/orespawn/provider.json +++ b/src/main/resources/data/mineralogy/orespawn/provider.json @@ -77,7 +77,17 @@ "host_families": ["sedimentary"], "host_blocks": [], "host_tags": [], - "biome_ids": [], + "biome_ids": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ], "excluded_biome_ids": [], "biome_dictionary": ["OCEAN"], "excluded_biome_dictionary": [], diff --git a/src/main/resources/pack.mcmeta b/src/main/resources/pack.mcmeta index d0a24c892..8fef24bc8 100644 --- a/src/main/resources/pack.mcmeta +++ b/src/main/resources/pack.mcmeta @@ -1,8 +1,8 @@ { "pack": { "description": "mineralogy resources", - "pack_format": 9, - "forge:resource_pack_format": 8, - "forge:data_pack_format": 9 + "pack_format": 13, + "forge:resource_pack_format": 13, + "forge:data_pack_format": 12 } } From c543ac8ffea7e6bb1663f6d592a7dcb3938c0dc3 Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Wed, 29 Jul 2026 07:24:05 +0100 Subject: [PATCH 2/5] Keep Mineralogy 1.19 on version 6.0.0 --- README.md | 2 +- docs/PLAYER_GUIDE.md | 2 +- gradle.properties | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1d51ef485..6150911d6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ world profiles, configuration screens, retrogen, and the public worldgen API. ## Players -Install Mineralogy 6.1.0 and OreSpawn 4.0.1 (or a later compatible 4.x build) +Install Mineralogy 6.0.0 and OreSpawn 4.0.1 (or a later compatible 4.x build) for Minecraft 1.19.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** diff --git a/docs/PLAYER_GUIDE.md b/docs/PLAYER_GUIDE.md index 3b2de1801..5e012c49b 100644 --- a/docs/PLAYER_GUIDE.md +++ b/docs/PLAYER_GUIDE.md @@ -2,7 +2,7 @@ ## Installing -Mineralogy 6.1.0 needs OreSpawn 4.0.1 or a later compatible 4.x build for +Mineralogy 6.0.0 needs OreSpawn 4.0.1 or a later compatible 4.x build for Minecraft 1.19.4. Install both mods on clients and servers. A world that contains Mineralogy blocks should not be opened without Mineralogy. diff --git a/gradle.properties b/gradle.properties index c4d7765c8..f72cc21a0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -50,7 +50,7 @@ mod_name=Minecraft Mineralogy # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All rights reserved # The mod version. See https://semver.org/ -mod_version=6.1.0 +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 From 7ed60c389b7686f4ecb477f15d9dcaa19899ed5b Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Sun, 16 Aug 2026 13:01:17 +0100 Subject: [PATCH 3/5] Align Mineralogy metadata with LGPL-2.1 --- gradle.properties | 2 +- src/main/resources/META-INF/mods.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index f72cc21a0..742148313 100644 --- a/gradle.properties +++ b/gradle.properties @@ -48,7 +48,7 @@ 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=All rights reserved +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. diff --git a/src/main/resources/META-INF/mods.toml b/src/main/resources/META-INF/mods.toml index cd192dfdc..863226062 100644 --- a/src/main/resources/META-INF/mods.toml +++ b/src/main/resources/META-INF/mods.toml @@ -9,7 +9,7 @@ modLoader="javafml" #mandatory loaderVersion="[45,)" #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. -license="All rights reserved" +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 From 2be5c2a9e6c6c5a4df220f9609f2c98952aa643b Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Tue, 1 Sep 2026 12:16:56 +0100 Subject: [PATCH 4/5] Port Mineralogy 6.1.0 to Minecraft 1.19.4 --- .gitattributes | 3 + .github/workflows/ci.yml | 156 ++ .github/workflows/codeql-analysis.yml | 78 + .github/workflows/release-on-tag.yml | 92 + .github/workflows/validate-gradle-build.yml | 23 + CHANGELOG.txt | 98 +- README.md | 84 +- build.gradle | 1389 +++++++++---- ci-fixtures/tools/LICENSE-MAVENIZER.txt | 504 +++++ ci-fixtures/tools/README.md | 49 + ...craft-mavenizer-0.5.21-orespawn-compat.jar | Bin 0 -> 2567344 bytes ...aft-mavenizer-0.5.21-orespawn-compat.patch | 425 ++++ .../tools/minecraft-source-compatibility.json | 58 + docs/AGENTS.md | 26 - docs/CONTENT_CONFIG.md | 131 +- docs/DEVELOPER_GUIDE.md | 187 +- docs/PLAYER_GUIDE.md | 232 ++- docs/PROVIDER.md | 119 +- docs/README.md | 27 +- docs/VERSIONS.md | 179 ++ gradle.properties | 74 +- gradle/stage-orespawn-release.sh | 39 + gradle/wrapper/gradle-wrapper.jar | Bin 60756 -> 54413 bytes gradle/wrapper/gradle-wrapper.properties | 4 +- gradlew | 286 +-- gradlew.bat | 175 +- scripts/generate-locales.ps1 | 56 + scripts/generate-recipes.ps1 | 1226 +++++++++++ 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/client/ClientSetup.java | 25 +- .../compat/CobblestoneTagPolicy.java | 119 ++ .../moddev/mc/mineralogy/data/Material.java | 16 +- .../mc/mineralogy/data/MaterialData.java | 61 +- .../documentation/DocumentationExporter.java | 158 +- .../moddev/mc/mineralogy/init/Blocks.java | 52 +- .../mineralogy/init/MineralogyItemGroups.java | 30 +- .../mineralogy/init/MineralogyRegistry.java | 10 - .../LegacyMineralogy6ConfigMigrator.java | 251 +++ .../migration/LegacyOreConfigMigrator.java | 203 ++ .../LegacyTileEntityIdNormalizer.java | 107 + .../patching/LegacyWorldDataHook.java | 73 +- .../mc/mineralogy/patching/PatchHandler.java | 14 + 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 | 67 +- .../data/minecraft/recipes/andesite_slab.json | 58 + ...esite_slab_from_andesite_stonecutting.json | 40 + .../data/minecraft/recipes/brewing_stand.json | 64 + .../data/minecraft/recipes/diorite.json | 81 +- .../data/minecraft/recipes/diorite_slab.json | 58 + ...iorite_slab_from_diorite_stonecutting.json | 40 + .../data/minecraft/recipes/dispenser.json | 90 +- .../data/minecraft/recipes/dropper.json | 81 +- .../data/minecraft/recipes/furnace.json | 72 +- .../data/minecraft/recipes/granite_slab.json | 58 + ...ranite_slab_from_granite_stonecutting.json | 40 + .../data/minecraft/recipes/lever.json | 78 +- .../mossy_cobblestone_from_moss_block.json | 67 +- .../recipes/mossy_cobblestone_from_vine.json | 67 +- .../data/minecraft/recipes/observer.json | 90 +- .../data/minecraft/recipes/piston.json | 99 +- .../minecraft/recipes/polished_andesite.json | 16 + .../recipes/polished_andesite_slab.json | 58 + ...esite_slab_from_andesite_stonecutting.json | 40 + ...b_from_polished_andesite_stonecutting.json | 40 + .../minecraft/recipes/polished_basalt.json | 16 + .../minecraft/recipes/polished_diorite.json | 16 + .../recipes/polished_diorite_slab.json | 58 + ...iorite_slab_from_diorite_stonecutting.json | 40 + ...ab_from_polished_diorite_stonecutting.json | 40 + .../minecraft/recipes/polished_granite.json | 16 + .../recipes/polished_granite_slab.json | 58 + ...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 | 66 + .../data/minecraft/recipes/stone_hoe.json | 66 + .../data/minecraft/recipes/stone_pickaxe.json | 66 + .../data/minecraft/recipes/stone_shovel.json | 66 + .../data/minecraft/recipes/stone_sword.json | 66 + .../tags/blocks/base_stone_overworld.json | 11 - .../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 | 1308 ++++++------ .../mineralogy/recipes/amphibolite_brick.json | 49 +- .../amphibolite_brick_block_polishing.json | 26 + .../recipes/amphibolite_brick_furnace.json | 64 +- .../recipes/amphibolite_brick_slab.json | 51 +- .../amphibolite_brick_slab_polishing.json | 26 + .../amphibolite_brick_slab_recombination.json | 26 + .../recipes/amphibolite_brick_stairs.json | 55 +- .../amphibolite_brick_stairs_polishing.json | 26 + .../recipes/amphibolite_brick_wall.json | 53 +- .../amphibolite_brick_wall_polishing.json | 26 + .../recipes/amphibolite_cobblestone.json | 42 +- .../recipes/amphibolite_furnace.json | 60 +- .../amphibolite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + ...phibolite_polished_slab_recombination.json | 26 + .../amphibolite_polished_slabs_to_brick.json | 28 + .../amphibolite_polished_stairs_to_brick.json | 28 + .../amphibolite_polished_walls_to_brick.json | 28 + .../amphibolite_raw_slab_polishing.json | 26 + .../amphibolite_raw_slab_recombination.json | 26 + .../amphibolite_raw_slabs_to_brick.json | 28 + .../amphibolite_raw_stairs_polishing.json | 26 + .../amphibolite_raw_stairs_to_brick.json | 28 + .../amphibolite_raw_wall_polishing.json | 26 + .../amphibolite_raw_walls_to_brick.json | 28 + .../recipes/amphibolite_relief_axe.json | 92 +- .../recipes/amphibolite_relief_blank.json | 55 +- .../recipes/amphibolite_relief_cross.json | 55 +- .../recipes/amphibolite_relief_hammer.json | 67 +- .../recipes/amphibolite_relief_hoe.json | 92 +- .../amphibolite_relief_horizontal.json | 51 +- .../recipes/amphibolite_relief_i.json | 55 +- .../recipes/amphibolite_relief_left.json | 55 +- .../recipes/amphibolite_relief_pickaxe.json | 92 +- .../recipes/amphibolite_relief_plus.json | 55 +- .../recipes/amphibolite_relief_right.json | 52 +- .../recipes/amphibolite_relief_sword.json | 92 +- .../recipes/amphibolite_relief_vertical.json | 55 +- .../mineralogy/recipes/amphibolite_slab.json | 47 +- ...te_slab_from_amphibolite_stonecutting.json | 21 - .../recipes/amphibolite_smooth.json | 45 +- .../recipes/amphibolite_smooth_brick.json | 53 +- .../amphibolite_smooth_brick_furnace.json | 68 +- .../amphibolite_smooth_brick_slab.json | 55 +- .../amphibolite_smooth_brick_stairs.json | 59 +- .../amphibolite_smooth_brick_wall.json | 57 +- .../recipes/amphibolite_smooth_furnace.json | 64 +- .../recipes/amphibolite_smooth_slab.json | 51 +- .../recipes/amphibolite_smooth_stairs.json | 55 +- .../recipes/amphibolite_smooth_wall.json | 53 +- .../recipes/amphibolite_stairs.json | 51 +- ..._stairs_from_amphibolite_stonecutting.json | 21 - .../recipes/amphibolite_to_stone.json | 15 +- .../mineralogy/recipes/amphibolite_wall.json | 49 +- ...te_wall_from_amphibolite_stonecutting.json | 21 - .../mineralogy/recipes/andesite_brick.json | 49 +- .../andesite_brick_block_polishing.json | 26 + .../recipes/andesite_brick_furnace.json | 64 +- .../recipes/andesite_brick_slab.json | 51 +- .../andesite_brick_slab_polishing.json | 26 + .../andesite_brick_slab_recombination.json | 26 + .../recipes/andesite_brick_stairs.json | 55 +- .../andesite_brick_stairs_polishing.json | 26 + .../recipes/andesite_brick_wall.json | 53 +- .../andesite_brick_wall_polishing.json | 26 + .../recipes/andesite_cobblestone.json | 42 +- .../mineralogy/recipes/andesite_furnace.json | 60 +- .../recipes/andesite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../andesite_polished_slab_recombination.json | 26 + .../andesite_polished_slabs_to_brick.json | 28 + .../andesite_polished_stairs_to_brick.json | 28 + .../andesite_polished_walls_to_brick.json | 28 + .../recipes/andesite_raw_slab_polishing.json | 26 + .../andesite_raw_slab_recombination.json | 26 + .../recipes/andesite_raw_slabs_to_brick.json | 28 + .../andesite_raw_stairs_polishing.json | 26 + .../recipes/andesite_raw_stairs_to_brick.json | 28 + .../recipes/andesite_raw_wall_polishing.json | 26 + .../recipes/andesite_raw_walls_to_brick.json | 28 + .../recipes/andesite_relief_axe.json | 92 +- .../recipes/andesite_relief_blank.json | 55 +- .../recipes/andesite_relief_cross.json | 55 +- .../recipes/andesite_relief_hammer.json | 67 +- .../recipes/andesite_relief_hoe.json | 92 +- .../recipes/andesite_relief_horizontal.json | 51 +- .../mineralogy/recipes/andesite_relief_i.json | 55 +- .../recipes/andesite_relief_left.json | 55 +- .../recipes/andesite_relief_pickaxe.json | 92 +- .../recipes/andesite_relief_plus.json | 55 +- .../recipes/andesite_relief_right.json | 52 +- .../recipes/andesite_relief_sword.json | 92 +- .../recipes/andesite_relief_vertical.json | 55 +- .../mineralogy/recipes/andesite_slab.json | 47 +- ...esite_slab_from_andesite_stonecutting.json | 21 - .../recipes/andesite_slab_from_vanilla.json | 23 + .../recipes/andesite_slab_to_vanilla.json | 23 + .../mineralogy/recipes/andesite_smooth.json | 45 +- .../recipes/andesite_smooth_brick.json | 53 +- .../andesite_smooth_brick_furnace.json | 68 +- .../recipes/andesite_smooth_brick_slab.json | 55 +- .../recipes/andesite_smooth_brick_stairs.json | 59 +- .../recipes/andesite_smooth_brick_wall.json | 57 +- .../recipes/andesite_smooth_furnace.json | 64 +- .../recipes/andesite_smooth_slab.json | 51 +- .../andesite_smooth_slab_from_vanilla.json | 23 + .../andesite_smooth_slab_to_vanilla.json | 23 + .../recipes/andesite_smooth_stairs.json | 55 +- .../recipes/andesite_smooth_wall.json | 53 +- .../mineralogy/recipes/andesite_stairs.json | 51 +- ...ite_stairs_from_andesite_stonecutting.json | 21 - .../mineralogy/recipes/andesite_to_stone.json | 15 +- .../mineralogy/recipes/andesite_wall.json | 49 +- ...esite_wall_from_andesite_stonecutting.json | 21 - .../data/mineralogy/recipes/basalt_brick.json | 49 +- .../recipes/basalt_brick_block_polishing.json | 26 + .../recipes/basalt_brick_furnace.json | 64 +- .../mineralogy/recipes/basalt_brick_slab.json | 51 +- .../recipes/basalt_brick_slab_polishing.json | 26 + .../basalt_brick_slab_recombination.json | 26 + .../recipes/basalt_brick_stairs.json | 55 +- .../basalt_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/basalt_brick_wall.json | 53 +- .../recipes/basalt_brick_wall_polishing.json | 26 + .../recipes/basalt_cobblestone.json | 42 +- .../mineralogy/recipes/basalt_furnace.json | 60 +- .../recipes/basalt_furnace_from_rock.json | 29 - ...alt_polished_brick_slab_recombination.json | 26 + .../basalt_polished_slab_recombination.json | 26 + .../basalt_polished_slabs_to_brick.json | 28 + .../basalt_polished_stairs_to_brick.json | 28 + .../basalt_polished_walls_to_brick.json | 28 + .../recipes/basalt_raw_slab_polishing.json | 26 + .../basalt_raw_slab_recombination.json | 26 + .../recipes/basalt_raw_slabs_to_brick.json | 28 + .../recipes/basalt_raw_stairs_polishing.json | 26 + .../recipes/basalt_raw_stairs_to_brick.json | 28 + .../recipes/basalt_raw_wall_polishing.json | 26 + .../recipes/basalt_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/basalt_relief_axe.json | 92 +- .../recipes/basalt_relief_blank.json | 55 +- .../recipes/basalt_relief_cross.json | 55 +- .../recipes/basalt_relief_hammer.json | 67 +- .../mineralogy/recipes/basalt_relief_hoe.json | 92 +- .../recipes/basalt_relief_horizontal.json | 51 +- .../mineralogy/recipes/basalt_relief_i.json | 55 +- .../recipes/basalt_relief_left.json | 55 +- .../recipes/basalt_relief_pickaxe.json | 92 +- .../recipes/basalt_relief_plus.json | 55 +- .../recipes/basalt_relief_right.json | 52 +- .../recipes/basalt_relief_sword.json | 92 +- .../recipes/basalt_relief_vertical.json | 55 +- .../data/mineralogy/recipes/basalt_slab.json | 47 +- .../basalt_slab_from_basalt_stonecutting.json | 21 - .../mineralogy/recipes/basalt_smooth.json | 45 +- .../recipes/basalt_smooth_brick.json | 53 +- .../recipes/basalt_smooth_brick_furnace.json | 68 +- .../recipes/basalt_smooth_brick_slab.json | 55 +- .../recipes/basalt_smooth_brick_stairs.json | 59 +- .../recipes/basalt_smooth_brick_wall.json | 57 +- .../recipes/basalt_smooth_furnace.json | 64 +- .../recipes/basalt_smooth_slab.json | 51 +- .../recipes/basalt_smooth_stairs.json | 55 +- .../recipes/basalt_smooth_wall.json | 53 +- .../mineralogy/recipes/basalt_stairs.json | 51 +- ...asalt_stairs_from_basalt_stonecutting.json | 21 - .../mineralogy/recipes/basalt_to_stone.json | 15 +- .../data/mineralogy/recipes/basalt_wall.json | 49 +- .../basalt_wall_from_basalt_stonecutting.json | 21 - .../recipes/basaltic_glass_brick.json | 49 +- .../basaltic_glass_brick_block_polishing.json | 26 + .../recipes/basaltic_glass_brick_furnace.json | 64 +- .../recipes/basaltic_glass_brick_slab.json | 51 +- .../basaltic_glass_brick_slab_polishing.json | 26 + ...saltic_glass_brick_slab_recombination.json | 26 + .../recipes/basaltic_glass_brick_stairs.json | 55 +- ...basaltic_glass_brick_stairs_polishing.json | 26 + .../recipes/basaltic_glass_brick_wall.json | 53 +- .../basaltic_glass_brick_wall_polishing.json | 26 + .../recipes/basaltic_glass_cobblestone.json | 42 +- .../recipes/basaltic_glass_furnace.json | 60 +- .../basaltic_glass_furnace_from_rock.json | 29 - ...ass_polished_brick_slab_recombination.json | 26 + ...tic_glass_polished_slab_recombination.json | 26 + ...asaltic_glass_polished_slabs_to_brick.json | 28 + ...saltic_glass_polished_stairs_to_brick.json | 28 + ...asaltic_glass_polished_walls_to_brick.json | 28 + .../basaltic_glass_raw_slab_polishing.json | 26 + ...basaltic_glass_raw_slab_recombination.json | 26 + .../basaltic_glass_raw_slabs_to_brick.json | 28 + .../basaltic_glass_raw_stairs_polishing.json | 26 + .../basaltic_glass_raw_stairs_to_brick.json | 28 + .../basaltic_glass_raw_wall_polishing.json | 26 + .../basaltic_glass_raw_walls_to_brick.json | 28 + .../recipes/basaltic_glass_relief_axe.json | 92 +- .../recipes/basaltic_glass_relief_blank.json | 55 +- .../recipes/basaltic_glass_relief_cross.json | 55 +- .../recipes/basaltic_glass_relief_hammer.json | 67 +- .../recipes/basaltic_glass_relief_hoe.json | 92 +- .../basaltic_glass_relief_horizontal.json | 51 +- .../recipes/basaltic_glass_relief_i.json | 55 +- .../recipes/basaltic_glass_relief_left.json | 55 +- .../basaltic_glass_relief_pickaxe.json | 92 +- .../recipes/basaltic_glass_relief_plus.json | 55 +- .../recipes/basaltic_glass_relief_right.json | 52 +- .../recipes/basaltic_glass_relief_sword.json | 92 +- .../basaltic_glass_relief_vertical.json | 55 +- .../recipes/basaltic_glass_slab.json | 47 +- ...slab_from_basaltic_glass_stonecutting.json | 21 - .../recipes/basaltic_glass_smooth.json | 45 +- .../recipes/basaltic_glass_smooth_brick.json | 53 +- .../basaltic_glass_smooth_brick_furnace.json | 68 +- .../basaltic_glass_smooth_brick_slab.json | 55 +- .../basaltic_glass_smooth_brick_stairs.json | 59 +- .../basaltic_glass_smooth_brick_wall.json | 57 +- .../basaltic_glass_smooth_furnace.json | 64 +- .../recipes/basaltic_glass_smooth_slab.json | 51 +- .../recipes/basaltic_glass_smooth_stairs.json | 55 +- .../recipes/basaltic_glass_smooth_wall.json | 53 +- .../recipes/basaltic_glass_stairs.json | 51 +- ...airs_from_basaltic_glass_stonecutting.json | 21 - .../recipes/basaltic_glass_to_stone.json | 15 +- .../recipes/basaltic_glass_wall.json | 49 +- ...wall_from_basaltic_glass_stonecutting.json | 21 - .../data/mineralogy/recipes/chalk.json | 35 +- .../data/mineralogy/recipes/chalk_dust.json | 27 +- .../data/mineralogy/recipes/cobblestone.json | 42 +- .../recipes/conglomerate_brick.json | 49 +- .../conglomerate_brick_block_polishing.json | 26 + .../recipes/conglomerate_brick_furnace.json | 64 +- .../recipes/conglomerate_brick_slab.json | 51 +- .../conglomerate_brick_slab_polishing.json | 26 + ...conglomerate_brick_slab_recombination.json | 26 + .../recipes/conglomerate_brick_stairs.json | 55 +- .../conglomerate_brick_stairs_polishing.json | 26 + .../recipes/conglomerate_brick_wall.json | 53 +- .../conglomerate_brick_wall_polishing.json | 26 + .../recipes/conglomerate_cobblestone.json | 42 +- .../recipes/conglomerate_furnace.json | 60 +- .../conglomerate_furnace_from_rock.json | 29 - ...ate_polished_brick_slab_recombination.json | 26 + ...glomerate_polished_slab_recombination.json | 26 + .../conglomerate_polished_slabs_to_brick.json | 28 + ...conglomerate_polished_stairs_to_brick.json | 28 + .../conglomerate_polished_walls_to_brick.json | 28 + .../conglomerate_raw_slab_polishing.json | 26 + .../conglomerate_raw_slab_recombination.json | 26 + .../conglomerate_raw_slabs_to_brick.json | 28 + .../conglomerate_raw_stairs_polishing.json | 26 + .../conglomerate_raw_stairs_to_brick.json | 28 + .../conglomerate_raw_wall_polishing.json | 26 + .../conglomerate_raw_walls_to_brick.json | 28 + .../recipes/conglomerate_relief_axe.json | 92 +- .../recipes/conglomerate_relief_blank.json | 55 +- .../recipes/conglomerate_relief_cross.json | 55 +- .../recipes/conglomerate_relief_hammer.json | 67 +- .../recipes/conglomerate_relief_hoe.json | 92 +- .../conglomerate_relief_horizontal.json | 51 +- .../recipes/conglomerate_relief_i.json | 55 +- .../recipes/conglomerate_relief_left.json | 55 +- .../recipes/conglomerate_relief_pickaxe.json | 92 +- .../recipes/conglomerate_relief_plus.json | 55 +- .../recipes/conglomerate_relief_right.json | 52 +- .../recipes/conglomerate_relief_sword.json | 92 +- .../recipes/conglomerate_relief_vertical.json | 55 +- .../mineralogy/recipes/conglomerate_slab.json | 47 +- ...e_slab_from_conglomerate_stonecutting.json | 21 - .../recipes/conglomerate_smooth.json | 45 +- .../recipes/conglomerate_smooth_brick.json | 53 +- .../conglomerate_smooth_brick_furnace.json | 68 +- .../conglomerate_smooth_brick_slab.json | 55 +- .../conglomerate_smooth_brick_stairs.json | 59 +- .../conglomerate_smooth_brick_wall.json | 57 +- .../recipes/conglomerate_smooth_furnace.json | 64 +- .../recipes/conglomerate_smooth_slab.json | 51 +- .../recipes/conglomerate_smooth_stairs.json | 55 +- .../recipes/conglomerate_smooth_wall.json | 53 +- .../recipes/conglomerate_stairs.json | 51 +- ...stairs_from_conglomerate_stonecutting.json | 21 - .../recipes/conglomerate_to_stone.json | 15 +- .../mineralogy/recipes/conglomerate_wall.json | 49 +- ...e_wall_from_conglomerate_stonecutting.json | 21 - .../mineralogy/recipes/diabase_brick.json | 49 +- .../diabase_brick_block_polishing.json | 26 + .../recipes/diabase_brick_furnace.json | 64 +- .../recipes/diabase_brick_slab.json | 51 +- .../recipes/diabase_brick_slab_polishing.json | 26 + .../diabase_brick_slab_recombination.json | 26 + .../recipes/diabase_brick_stairs.json | 55 +- .../diabase_brick_stairs_polishing.json | 26 + .../recipes/diabase_brick_wall.json | 53 +- .../recipes/diabase_brick_wall_polishing.json | 26 + .../recipes/diabase_cobblestone.json | 42 +- .../mineralogy/recipes/diabase_furnace.json | 60 +- .../recipes/diabase_furnace_from_rock.json | 29 - ...ase_polished_brick_slab_recombination.json | 26 + .../diabase_polished_slab_recombination.json | 26 + .../diabase_polished_slabs_to_brick.json | 28 + .../diabase_polished_stairs_to_brick.json | 28 + .../diabase_polished_walls_to_brick.json | 28 + .../recipes/diabase_raw_slab_polishing.json | 26 + .../diabase_raw_slab_recombination.json | 26 + .../recipes/diabase_raw_slabs_to_brick.json | 28 + .../recipes/diabase_raw_stairs_polishing.json | 26 + .../recipes/diabase_raw_stairs_to_brick.json | 28 + .../recipes/diabase_raw_wall_polishing.json | 26 + .../recipes/diabase_raw_walls_to_brick.json | 28 + .../recipes/diabase_relief_axe.json | 92 +- .../recipes/diabase_relief_blank.json | 55 +- .../recipes/diabase_relief_cross.json | 55 +- .../recipes/diabase_relief_hammer.json | 67 +- .../recipes/diabase_relief_hoe.json | 92 +- .../recipes/diabase_relief_horizontal.json | 51 +- .../mineralogy/recipes/diabase_relief_i.json | 55 +- .../recipes/diabase_relief_left.json | 55 +- .../recipes/diabase_relief_pickaxe.json | 92 +- .../recipes/diabase_relief_plus.json | 55 +- .../recipes/diabase_relief_right.json | 52 +- .../recipes/diabase_relief_sword.json | 92 +- .../recipes/diabase_relief_vertical.json | 55 +- .../data/mineralogy/recipes/diabase_slab.json | 47 +- ...iabase_slab_from_diabase_stonecutting.json | 21 - .../mineralogy/recipes/diabase_smooth.json | 45 +- .../recipes/diabase_smooth_brick.json | 53 +- .../recipes/diabase_smooth_brick_furnace.json | 68 +- .../recipes/diabase_smooth_brick_slab.json | 55 +- .../recipes/diabase_smooth_brick_stairs.json | 59 +- .../recipes/diabase_smooth_brick_wall.json | 57 +- .../recipes/diabase_smooth_furnace.json | 64 +- .../recipes/diabase_smooth_slab.json | 51 +- .../recipes/diabase_smooth_stairs.json | 55 +- .../recipes/diabase_smooth_wall.json | 53 +- .../mineralogy/recipes/diabase_stairs.json | 51 +- ...base_stairs_from_diabase_stonecutting.json | 21 - .../mineralogy/recipes/diabase_to_stone.json | 15 +- .../data/mineralogy/recipes/diabase_wall.json | 49 +- ...iabase_wall_from_diabase_stonecutting.json | 21 - .../mineralogy/recipes/diorite_brick.json | 49 +- .../diorite_brick_block_polishing.json | 26 + .../recipes/diorite_brick_furnace.json | 64 +- .../recipes/diorite_brick_slab.json | 51 +- .../recipes/diorite_brick_slab_polishing.json | 26 + .../diorite_brick_slab_recombination.json | 26 + .../recipes/diorite_brick_stairs.json | 55 +- .../diorite_brick_stairs_polishing.json | 26 + .../recipes/diorite_brick_wall.json | 53 +- .../recipes/diorite_brick_wall_polishing.json | 26 + .../recipes/diorite_cobblestone.json | 42 +- .../mineralogy/recipes/diorite_furnace.json | 60 +- .../recipes/diorite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../diorite_polished_slab_recombination.json | 26 + .../diorite_polished_slabs_to_brick.json | 28 + .../diorite_polished_stairs_to_brick.json | 28 + .../diorite_polished_walls_to_brick.json | 28 + .../recipes/diorite_raw_slab_polishing.json | 26 + .../diorite_raw_slab_recombination.json | 26 + .../recipes/diorite_raw_slabs_to_brick.json | 28 + .../recipes/diorite_raw_stairs_polishing.json | 26 + .../recipes/diorite_raw_stairs_to_brick.json | 28 + .../recipes/diorite_raw_wall_polishing.json | 26 + .../recipes/diorite_raw_walls_to_brick.json | 28 + .../recipes/diorite_relief_axe.json | 92 +- .../recipes/diorite_relief_blank.json | 55 +- .../recipes/diorite_relief_cross.json | 55 +- .../recipes/diorite_relief_hammer.json | 67 +- .../recipes/diorite_relief_hoe.json | 92 +- .../recipes/diorite_relief_horizontal.json | 51 +- .../mineralogy/recipes/diorite_relief_i.json | 55 +- .../recipes/diorite_relief_left.json | 55 +- .../recipes/diorite_relief_pickaxe.json | 92 +- .../recipes/diorite_relief_plus.json | 55 +- .../recipes/diorite_relief_right.json | 52 +- .../recipes/diorite_relief_sword.json | 92 +- .../recipes/diorite_relief_vertical.json | 55 +- .../data/mineralogy/recipes/diorite_slab.json | 47 +- ...iorite_slab_from_diorite_stonecutting.json | 21 - .../recipes/diorite_slab_from_vanilla.json | 23 + .../recipes/diorite_slab_to_vanilla.json | 23 + .../mineralogy/recipes/diorite_smooth.json | 45 +- .../recipes/diorite_smooth_brick.json | 53 +- .../recipes/diorite_smooth_brick_furnace.json | 68 +- .../recipes/diorite_smooth_brick_slab.json | 55 +- .../recipes/diorite_smooth_brick_stairs.json | 59 +- .../recipes/diorite_smooth_brick_wall.json | 57 +- .../recipes/diorite_smooth_furnace.json | 64 +- .../recipes/diorite_smooth_slab.json | 51 +- .../diorite_smooth_slab_from_vanilla.json | 23 + .../diorite_smooth_slab_to_vanilla.json | 23 + .../recipes/diorite_smooth_stairs.json | 55 +- .../recipes/diorite_smooth_wall.json | 53 +- .../mineralogy/recipes/diorite_stairs.json | 51 +- ...rite_stairs_from_diorite_stonecutting.json | 21 - .../mineralogy/recipes/diorite_to_stone.json | 15 +- .../data/mineralogy/recipes/diorite_wall.json | 49 +- ...iorite_wall_from_diorite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_brick.json | 49 +- .../dolomite_brick_block_polishing.json | 26 + .../recipes/dolomite_brick_furnace.json | 64 +- .../recipes/dolomite_brick_slab.json | 51 +- .../dolomite_brick_slab_polishing.json | 26 + .../dolomite_brick_slab_recombination.json | 26 + .../recipes/dolomite_brick_stairs.json | 55 +- .../dolomite_brick_stairs_polishing.json | 26 + .../recipes/dolomite_brick_wall.json | 53 +- .../dolomite_brick_wall_polishing.json | 26 + .../recipes/dolomite_cobblestone.json | 42 +- .../mineralogy/recipes/dolomite_furnace.json | 60 +- .../recipes/dolomite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../dolomite_polished_slab_recombination.json | 26 + .../dolomite_polished_slabs_to_brick.json | 28 + .../dolomite_polished_stairs_to_brick.json | 28 + .../dolomite_polished_walls_to_brick.json | 28 + .../recipes/dolomite_raw_slab_polishing.json | 26 + .../dolomite_raw_slab_recombination.json | 26 + .../recipes/dolomite_raw_slabs_to_brick.json | 28 + .../dolomite_raw_stairs_polishing.json | 26 + .../recipes/dolomite_raw_stairs_to_brick.json | 28 + .../recipes/dolomite_raw_wall_polishing.json | 26 + .../recipes/dolomite_raw_walls_to_brick.json | 28 + .../recipes/dolomite_relief_axe.json | 92 +- .../recipes/dolomite_relief_blank.json | 55 +- .../recipes/dolomite_relief_cross.json | 55 +- .../recipes/dolomite_relief_hammer.json | 67 +- .../recipes/dolomite_relief_hoe.json | 92 +- .../recipes/dolomite_relief_horizontal.json | 51 +- .../mineralogy/recipes/dolomite_relief_i.json | 55 +- .../recipes/dolomite_relief_left.json | 55 +- .../recipes/dolomite_relief_pickaxe.json | 92 +- .../recipes/dolomite_relief_plus.json | 55 +- .../recipes/dolomite_relief_right.json | 52 +- .../recipes/dolomite_relief_sword.json | 92 +- .../recipes/dolomite_relief_vertical.json | 55 +- .../mineralogy/recipes/dolomite_slab.json | 47 +- ...omite_slab_from_dolomite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_smooth.json | 45 +- .../recipes/dolomite_smooth_brick.json | 53 +- .../dolomite_smooth_brick_furnace.json | 68 +- .../recipes/dolomite_smooth_brick_slab.json | 55 +- .../recipes/dolomite_smooth_brick_stairs.json | 59 +- .../recipes/dolomite_smooth_brick_wall.json | 57 +- .../recipes/dolomite_smooth_furnace.json | 64 +- .../recipes/dolomite_smooth_slab.json | 51 +- .../recipes/dolomite_smooth_stairs.json | 55 +- .../recipes/dolomite_smooth_wall.json | 53 +- .../mineralogy/recipes/dolomite_stairs.json | 51 +- ...ite_stairs_from_dolomite_stonecutting.json | 21 - .../mineralogy/recipes/dolomite_to_stone.json | 15 +- .../mineralogy/recipes/dolomite_wall.json | 49 +- ...omite_wall_from_dolomite_stonecutting.json | 21 - .../data/mineralogy/recipes/drywall.json | 48 +- .../mineralogy/recipes/drywall_black.json | 36 +- .../data/mineralogy/recipes/drywall_blue.json | 36 +- .../mineralogy/recipes/drywall_brown.json | 36 +- .../data/mineralogy/recipes/drywall_cyan.json | 36 +- .../data/mineralogy/recipes/drywall_gray.json | 36 +- .../mineralogy/recipes/drywall_green.json | 36 +- .../recipes/drywall_light_blue.json | 36 +- .../data/mineralogy/recipes/drywall_lime.json | 36 +- .../mineralogy/recipes/drywall_magenta.json | 36 +- .../mineralogy/recipes/drywall_orange.json | 36 +- .../data/mineralogy/recipes/drywall_pink.json | 36 +- .../mineralogy/recipes/drywall_purple.json | 36 +- .../data/mineralogy/recipes/drywall_red.json | 36 +- .../mineralogy/recipes/drywall_silver.json | 36 +- .../mineralogy/recipes/drywall_white.json | 36 +- .../mineralogy/recipes/drywall_yellow.json | 36 +- .../data/mineralogy/recipes/gabbro_brick.json | 49 +- .../recipes/gabbro_brick_block_polishing.json | 26 + .../recipes/gabbro_brick_furnace.json | 64 +- .../mineralogy/recipes/gabbro_brick_slab.json | 51 +- .../recipes/gabbro_brick_slab_polishing.json | 26 + .../gabbro_brick_slab_recombination.json | 26 + .../recipes/gabbro_brick_stairs.json | 55 +- .../gabbro_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/gabbro_brick_wall.json | 53 +- .../recipes/gabbro_brick_wall_polishing.json | 26 + .../recipes/gabbro_cobblestone.json | 42 +- .../mineralogy/recipes/gabbro_furnace.json | 60 +- .../recipes/gabbro_furnace_from_rock.json | 29 - ...bro_polished_brick_slab_recombination.json | 26 + .../gabbro_polished_slab_recombination.json | 26 + .../gabbro_polished_slabs_to_brick.json | 28 + .../gabbro_polished_stairs_to_brick.json | 28 + .../gabbro_polished_walls_to_brick.json | 28 + .../recipes/gabbro_raw_slab_polishing.json | 26 + .../gabbro_raw_slab_recombination.json | 26 + .../recipes/gabbro_raw_slabs_to_brick.json | 28 + .../recipes/gabbro_raw_stairs_polishing.json | 26 + .../recipes/gabbro_raw_stairs_to_brick.json | 28 + .../recipes/gabbro_raw_wall_polishing.json | 26 + .../recipes/gabbro_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/gabbro_relief_axe.json | 92 +- .../recipes/gabbro_relief_blank.json | 55 +- .../recipes/gabbro_relief_cross.json | 55 +- .../recipes/gabbro_relief_hammer.json | 67 +- .../mineralogy/recipes/gabbro_relief_hoe.json | 92 +- .../recipes/gabbro_relief_horizontal.json | 51 +- .../mineralogy/recipes/gabbro_relief_i.json | 55 +- .../recipes/gabbro_relief_left.json | 55 +- .../recipes/gabbro_relief_pickaxe.json | 92 +- .../recipes/gabbro_relief_plus.json | 55 +- .../recipes/gabbro_relief_right.json | 52 +- .../recipes/gabbro_relief_sword.json | 92 +- .../recipes/gabbro_relief_vertical.json | 55 +- .../data/mineralogy/recipes/gabbro_slab.json | 47 +- .../gabbro_slab_from_gabbro_stonecutting.json | 21 - .../mineralogy/recipes/gabbro_smooth.json | 45 +- .../recipes/gabbro_smooth_brick.json | 53 +- .../recipes/gabbro_smooth_brick_furnace.json | 68 +- .../recipes/gabbro_smooth_brick_slab.json | 55 +- .../recipes/gabbro_smooth_brick_stairs.json | 59 +- .../recipes/gabbro_smooth_brick_wall.json | 57 +- .../recipes/gabbro_smooth_furnace.json | 64 +- .../recipes/gabbro_smooth_slab.json | 51 +- .../recipes/gabbro_smooth_stairs.json | 55 +- .../recipes/gabbro_smooth_wall.json | 53 +- .../mineralogy/recipes/gabbro_stairs.json | 51 +- ...abbro_stairs_from_gabbro_stonecutting.json | 21 - .../mineralogy/recipes/gabbro_to_stone.json | 15 +- .../data/mineralogy/recipes/gabbro_wall.json | 49 +- .../gabbro_wall_from_gabbro_stonecutting.json | 21 - .../data/mineralogy/recipes/gneiss_brick.json | 49 +- .../recipes/gneiss_brick_block_polishing.json | 26 + .../recipes/gneiss_brick_furnace.json | 64 +- .../mineralogy/recipes/gneiss_brick_slab.json | 51 +- .../recipes/gneiss_brick_slab_polishing.json | 26 + .../gneiss_brick_slab_recombination.json | 26 + .../recipes/gneiss_brick_stairs.json | 55 +- .../gneiss_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/gneiss_brick_wall.json | 53 +- .../recipes/gneiss_brick_wall_polishing.json | 26 + .../recipes/gneiss_cobblestone.json | 42 +- .../mineralogy/recipes/gneiss_furnace.json | 60 +- .../recipes/gneiss_furnace_from_rock.json | 29 - ...iss_polished_brick_slab_recombination.json | 26 + .../gneiss_polished_slab_recombination.json | 26 + .../gneiss_polished_slabs_to_brick.json | 28 + .../gneiss_polished_stairs_to_brick.json | 28 + .../gneiss_polished_walls_to_brick.json | 28 + .../recipes/gneiss_raw_slab_polishing.json | 26 + .../gneiss_raw_slab_recombination.json | 26 + .../recipes/gneiss_raw_slabs_to_brick.json | 28 + .../recipes/gneiss_raw_stairs_polishing.json | 26 + .../recipes/gneiss_raw_stairs_to_brick.json | 28 + .../recipes/gneiss_raw_wall_polishing.json | 26 + .../recipes/gneiss_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/gneiss_relief_axe.json | 92 +- .../recipes/gneiss_relief_blank.json | 55 +- .../recipes/gneiss_relief_cross.json | 55 +- .../recipes/gneiss_relief_hammer.json | 67 +- .../mineralogy/recipes/gneiss_relief_hoe.json | 92 +- .../recipes/gneiss_relief_horizontal.json | 51 +- .../mineralogy/recipes/gneiss_relief_i.json | 55 +- .../recipes/gneiss_relief_left.json | 55 +- .../recipes/gneiss_relief_pickaxe.json | 92 +- .../recipes/gneiss_relief_plus.json | 55 +- .../recipes/gneiss_relief_right.json | 52 +- .../recipes/gneiss_relief_sword.json | 92 +- .../recipes/gneiss_relief_vertical.json | 55 +- .../data/mineralogy/recipes/gneiss_slab.json | 47 +- .../gneiss_slab_from_gneiss_stonecutting.json | 21 - .../mineralogy/recipes/gneiss_smooth.json | 45 +- .../recipes/gneiss_smooth_brick.json | 53 +- .../recipes/gneiss_smooth_brick_furnace.json | 68 +- .../recipes/gneiss_smooth_brick_slab.json | 55 +- .../recipes/gneiss_smooth_brick_stairs.json | 59 +- .../recipes/gneiss_smooth_brick_wall.json | 57 +- .../recipes/gneiss_smooth_furnace.json | 64 +- .../recipes/gneiss_smooth_slab.json | 51 +- .../recipes/gneiss_smooth_stairs.json | 55 +- .../recipes/gneiss_smooth_wall.json | 53 +- .../mineralogy/recipes/gneiss_stairs.json | 51 +- ...neiss_stairs_from_gneiss_stonecutting.json | 21 - .../mineralogy/recipes/gneiss_to_stone.json | 15 +- .../data/mineralogy/recipes/gneiss_wall.json | 49 +- .../gneiss_wall_from_gneiss_stonecutting.json | 21 - .../mineralogy/recipes/granite_brick.json | 49 +- .../granite_brick_block_polishing.json | 26 + .../recipes/granite_brick_furnace.json | 64 +- .../recipes/granite_brick_slab.json | 51 +- .../recipes/granite_brick_slab_polishing.json | 26 + .../granite_brick_slab_recombination.json | 26 + .../recipes/granite_brick_stairs.json | 55 +- .../granite_brick_stairs_polishing.json | 26 + .../recipes/granite_brick_wall.json | 53 +- .../recipes/granite_brick_wall_polishing.json | 26 + .../recipes/granite_cobblestone.json | 42 +- .../mineralogy/recipes/granite_furnace.json | 60 +- .../recipes/granite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../granite_polished_slab_recombination.json | 26 + .../granite_polished_slabs_to_brick.json | 28 + .../granite_polished_stairs_to_brick.json | 28 + .../granite_polished_walls_to_brick.json | 28 + .../recipes/granite_raw_slab_polishing.json | 26 + .../granite_raw_slab_recombination.json | 26 + .../recipes/granite_raw_slabs_to_brick.json | 28 + .../recipes/granite_raw_stairs_polishing.json | 26 + .../recipes/granite_raw_stairs_to_brick.json | 28 + .../recipes/granite_raw_wall_polishing.json | 26 + .../recipes/granite_raw_walls_to_brick.json | 28 + .../recipes/granite_relief_axe.json | 92 +- .../recipes/granite_relief_blank.json | 55 +- .../recipes/granite_relief_cross.json | 55 +- .../recipes/granite_relief_hammer.json | 67 +- .../recipes/granite_relief_hoe.json | 92 +- .../recipes/granite_relief_horizontal.json | 51 +- .../mineralogy/recipes/granite_relief_i.json | 55 +- .../recipes/granite_relief_left.json | 55 +- .../recipes/granite_relief_pickaxe.json | 92 +- .../recipes/granite_relief_plus.json | 55 +- .../recipes/granite_relief_right.json | 52 +- .../recipes/granite_relief_sword.json | 92 +- .../recipes/granite_relief_vertical.json | 55 +- .../data/mineralogy/recipes/granite_slab.json | 47 +- ...ranite_slab_from_granite_stonecutting.json | 21 - .../recipes/granite_slab_from_vanilla.json | 23 + .../recipes/granite_slab_to_vanilla.json | 23 + .../mineralogy/recipes/granite_smooth.json | 45 +- .../recipes/granite_smooth_brick.json | 53 +- .../recipes/granite_smooth_brick_furnace.json | 68 +- .../recipes/granite_smooth_brick_slab.json | 55 +- .../recipes/granite_smooth_brick_stairs.json | 59 +- .../recipes/granite_smooth_brick_wall.json | 57 +- .../recipes/granite_smooth_furnace.json | 64 +- .../recipes/granite_smooth_slab.json | 51 +- .../granite_smooth_slab_from_vanilla.json | 23 + .../granite_smooth_slab_to_vanilla.json | 23 + .../recipes/granite_smooth_stairs.json | 55 +- .../recipes/granite_smooth_wall.json | 53 +- .../mineralogy/recipes/granite_stairs.json | 51 +- ...nite_stairs_from_granite_stonecutting.json | 21 - .../mineralogy/recipes/granite_to_stone.json | 15 +- .../data/mineralogy/recipes/granite_wall.json | 49 +- ...ranite_wall_from_granite_stonecutting.json | 21 - .../mineralogy/recipes/gravel_to_stone.json | 34 +- .../recipes/gunpowder_from_carbon.json | 18 - .../recipes/gunpowder_from_carbon_dust.json | 32 + .../recipes/gunpowder_from_charcoal.json | 25 + .../recipes/gunpowder_from_coal.json | 18 - .../recipes/gunpowder_from_coal_dust.json | 32 + .../recipes/gunpowder_from_sugar.json | 39 +- .../data/mineralogy/recipes/gypsum.json | 36 +- .../data/mineralogy/recipes/gypsum_dust.json | 27 +- .../mineralogy/recipes/hornfels_brick.json | 49 +- .../hornfels_brick_block_polishing.json | 26 + .../recipes/hornfels_brick_furnace.json | 64 +- .../recipes/hornfels_brick_slab.json | 51 +- .../hornfels_brick_slab_polishing.json | 26 + .../hornfels_brick_slab_recombination.json | 26 + .../recipes/hornfels_brick_stairs.json | 55 +- .../hornfels_brick_stairs_polishing.json | 26 + .../recipes/hornfels_brick_wall.json | 53 +- .../hornfels_brick_wall_polishing.json | 26 + .../recipes/hornfels_cobblestone.json | 42 +- .../mineralogy/recipes/hornfels_furnace.json | 60 +- .../recipes/hornfels_furnace_from_rock.json | 29 - ...els_polished_brick_slab_recombination.json | 26 + .../hornfels_polished_slab_recombination.json | 26 + .../hornfels_polished_slabs_to_brick.json | 28 + .../hornfels_polished_stairs_to_brick.json | 28 + .../hornfels_polished_walls_to_brick.json | 28 + .../recipes/hornfels_raw_slab_polishing.json | 26 + .../hornfels_raw_slab_recombination.json | 26 + .../recipes/hornfels_raw_slabs_to_brick.json | 28 + .../hornfels_raw_stairs_polishing.json | 26 + .../recipes/hornfels_raw_stairs_to_brick.json | 28 + .../recipes/hornfels_raw_wall_polishing.json | 26 + .../recipes/hornfels_raw_walls_to_brick.json | 28 + .../recipes/hornfels_relief_axe.json | 92 +- .../recipes/hornfels_relief_blank.json | 55 +- .../recipes/hornfels_relief_cross.json | 55 +- .../recipes/hornfels_relief_hammer.json | 67 +- .../recipes/hornfels_relief_hoe.json | 92 +- .../recipes/hornfels_relief_horizontal.json | 51 +- .../mineralogy/recipes/hornfels_relief_i.json | 55 +- .../recipes/hornfels_relief_left.json | 55 +- .../recipes/hornfels_relief_pickaxe.json | 92 +- .../recipes/hornfels_relief_plus.json | 55 +- .../recipes/hornfels_relief_right.json | 52 +- .../recipes/hornfels_relief_sword.json | 92 +- .../recipes/hornfels_relief_vertical.json | 55 +- .../mineralogy/recipes/hornfels_slab.json | 47 +- ...nfels_slab_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/hornfels_smooth.json | 45 +- .../recipes/hornfels_smooth_brick.json | 53 +- .../hornfels_smooth_brick_furnace.json | 68 +- .../recipes/hornfels_smooth_brick_slab.json | 55 +- .../recipes/hornfels_smooth_brick_stairs.json | 59 +- .../recipes/hornfels_smooth_brick_wall.json | 57 +- .../recipes/hornfels_smooth_furnace.json | 64 +- .../recipes/hornfels_smooth_slab.json | 51 +- .../recipes/hornfels_smooth_stairs.json | 55 +- .../recipes/hornfels_smooth_wall.json | 53 +- .../mineralogy/recipes/hornfels_stairs.json | 51 +- ...els_stairs_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/hornfels_to_stone.json | 15 +- .../mineralogy/recipes/hornfels_wall.json | 49 +- ...nfels_wall_from_hornfels_stonecutting.json | 21 - .../mineralogy/recipes/limestone_brick.json | 49 +- .../limestone_brick_block_polishing.json | 26 + .../recipes/limestone_brick_furnace.json | 64 +- .../recipes/limestone_brick_slab.json | 51 +- .../limestone_brick_slab_polishing.json | 26 + .../limestone_brick_slab_recombination.json | 26 + .../recipes/limestone_brick_stairs.json | 55 +- .../limestone_brick_stairs_polishing.json | 26 + .../recipes/limestone_brick_wall.json | 53 +- .../limestone_brick_wall_polishing.json | 26 + .../recipes/limestone_cobblestone.json | 42 +- .../mineralogy/recipes/limestone_furnace.json | 60 +- .../recipes/limestone_furnace_from_rock.json | 29 - ...one_polished_brick_slab_recombination.json | 26 + ...limestone_polished_slab_recombination.json | 26 + .../limestone_polished_slabs_to_brick.json | 28 + .../limestone_polished_stairs_to_brick.json | 28 + .../limestone_polished_walls_to_brick.json | 28 + .../recipes/limestone_raw_slab_polishing.json | 26 + .../limestone_raw_slab_recombination.json | 26 + .../recipes/limestone_raw_slabs_to_brick.json | 28 + .../limestone_raw_stairs_polishing.json | 26 + .../limestone_raw_stairs_to_brick.json | 28 + .../recipes/limestone_raw_wall_polishing.json | 26 + .../recipes/limestone_raw_walls_to_brick.json | 28 + .../recipes/limestone_relief_axe.json | 92 +- .../recipes/limestone_relief_blank.json | 55 +- .../recipes/limestone_relief_cross.json | 55 +- .../recipes/limestone_relief_hammer.json | 67 +- .../recipes/limestone_relief_hoe.json | 92 +- .../recipes/limestone_relief_horizontal.json | 51 +- .../recipes/limestone_relief_i.json | 55 +- .../recipes/limestone_relief_left.json | 55 +- .../recipes/limestone_relief_pickaxe.json | 92 +- .../recipes/limestone_relief_plus.json | 55 +- .../recipes/limestone_relief_right.json | 52 +- .../recipes/limestone_relief_sword.json | 92 +- .../recipes/limestone_relief_vertical.json | 55 +- .../mineralogy/recipes/limestone_slab.json | 47 +- ...tone_slab_from_limestone_stonecutting.json | 21 - .../mineralogy/recipes/limestone_smooth.json | 45 +- .../recipes/limestone_smooth_brick.json | 53 +- .../limestone_smooth_brick_furnace.json | 68 +- .../recipes/limestone_smooth_brick_slab.json | 55 +- .../limestone_smooth_brick_stairs.json | 59 +- .../recipes/limestone_smooth_brick_wall.json | 57 +- .../recipes/limestone_smooth_furnace.json | 64 +- .../recipes/limestone_smooth_slab.json | 51 +- .../recipes/limestone_smooth_stairs.json | 55 +- .../recipes/limestone_smooth_wall.json | 53 +- .../mineralogy/recipes/limestone_stairs.json | 51 +- ...ne_stairs_from_limestone_stonecutting.json | 21 - .../recipes/limestone_to_stone.json | 15 +- .../mineralogy/recipes/limestone_wall.json | 49 +- ...tone_wall_from_limestone_stonecutting.json | 21 - .../data/mineralogy/recipes/marble_brick.json | 49 +- .../recipes/marble_brick_block_polishing.json | 26 + .../recipes/marble_brick_furnace.json | 64 +- .../mineralogy/recipes/marble_brick_slab.json | 51 +- .../recipes/marble_brick_slab_polishing.json | 26 + .../marble_brick_slab_recombination.json | 26 + .../recipes/marble_brick_stairs.json | 55 +- .../marble_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/marble_brick_wall.json | 53 +- .../recipes/marble_brick_wall_polishing.json | 26 + .../recipes/marble_cobblestone.json | 42 +- .../mineralogy/recipes/marble_furnace.json | 60 +- .../recipes/marble_furnace_from_rock.json | 29 - ...ble_polished_brick_slab_recombination.json | 26 + .../marble_polished_slab_recombination.json | 26 + .../marble_polished_slabs_to_brick.json | 28 + .../marble_polished_stairs_to_brick.json | 28 + .../marble_polished_walls_to_brick.json | 28 + .../recipes/marble_raw_slab_polishing.json | 26 + .../marble_raw_slab_recombination.json | 26 + .../recipes/marble_raw_slabs_to_brick.json | 28 + .../recipes/marble_raw_stairs_polishing.json | 26 + .../recipes/marble_raw_stairs_to_brick.json | 28 + .../recipes/marble_raw_wall_polishing.json | 26 + .../recipes/marble_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/marble_relief_axe.json | 92 +- .../recipes/marble_relief_blank.json | 55 +- .../recipes/marble_relief_cross.json | 55 +- .../recipes/marble_relief_hammer.json | 67 +- .../mineralogy/recipes/marble_relief_hoe.json | 92 +- .../recipes/marble_relief_horizontal.json | 51 +- .../mineralogy/recipes/marble_relief_i.json | 55 +- .../recipes/marble_relief_left.json | 55 +- .../recipes/marble_relief_pickaxe.json | 92 +- .../recipes/marble_relief_plus.json | 55 +- .../recipes/marble_relief_right.json | 52 +- .../recipes/marble_relief_sword.json | 92 +- .../recipes/marble_relief_vertical.json | 55 +- .../data/mineralogy/recipes/marble_slab.json | 47 +- .../marble_slab_from_marble_stonecutting.json | 21 - .../mineralogy/recipes/marble_smooth.json | 45 +- .../recipes/marble_smooth_brick.json | 53 +- .../recipes/marble_smooth_brick_furnace.json | 68 +- .../recipes/marble_smooth_brick_slab.json | 55 +- .../recipes/marble_smooth_brick_stairs.json | 59 +- .../recipes/marble_smooth_brick_wall.json | 57 +- .../recipes/marble_smooth_furnace.json | 64 +- .../recipes/marble_smooth_slab.json | 51 +- .../recipes/marble_smooth_stairs.json | 55 +- .../recipes/marble_smooth_wall.json | 53 +- .../mineralogy/recipes/marble_stairs.json | 51 +- ...arble_stairs_from_marble_stonecutting.json | 21 - .../mineralogy/recipes/marble_to_stone.json | 15 +- .../data/mineralogy/recipes/marble_wall.json | 49 +- .../marble_wall_from_marble_stonecutting.json | 21 - .../recipes/mineral_fertilizer.json | 14 - .../mineralogy/recipes/mineralfertilizer.json | 26 + .../mineralogy/recipes/nitrate_block.json | 41 +- .../data/mineralogy/recipes/nitrate_dust.json | 31 +- .../mineralogy/recipes/novaculite_brick.json | 49 +- .../novaculite_brick_block_polishing.json | 26 + .../recipes/novaculite_brick_furnace.json | 64 +- .../recipes/novaculite_brick_slab.json | 51 +- .../novaculite_brick_slab_polishing.json | 26 + .../novaculite_brick_slab_recombination.json | 26 + .../recipes/novaculite_brick_stairs.json | 55 +- .../novaculite_brick_stairs_polishing.json | 26 + .../recipes/novaculite_brick_wall.json | 53 +- .../novaculite_brick_wall_polishing.json | 26 + .../recipes/novaculite_cobblestone.json | 42 +- .../recipes/novaculite_furnace.json | 60 +- .../recipes/novaculite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + ...ovaculite_polished_slab_recombination.json | 26 + .../novaculite_polished_slabs_to_brick.json | 28 + .../novaculite_polished_stairs_to_brick.json | 28 + .../novaculite_polished_walls_to_brick.json | 28 + .../novaculite_raw_slab_polishing.json | 26 + .../novaculite_raw_slab_recombination.json | 26 + .../novaculite_raw_slabs_to_brick.json | 28 + .../novaculite_raw_stairs_polishing.json | 26 + .../novaculite_raw_stairs_to_brick.json | 28 + .../novaculite_raw_wall_polishing.json | 26 + .../novaculite_raw_walls_to_brick.json | 28 + .../recipes/novaculite_relief_axe.json | 92 +- .../recipes/novaculite_relief_blank.json | 55 +- .../recipes/novaculite_relief_cross.json | 55 +- .../recipes/novaculite_relief_hammer.json | 67 +- .../recipes/novaculite_relief_hoe.json | 92 +- .../recipes/novaculite_relief_horizontal.json | 51 +- .../recipes/novaculite_relief_i.json | 55 +- .../recipes/novaculite_relief_left.json | 55 +- .../recipes/novaculite_relief_pickaxe.json | 92 +- .../recipes/novaculite_relief_plus.json | 55 +- .../recipes/novaculite_relief_right.json | 52 +- .../recipes/novaculite_relief_sword.json | 92 +- .../recipes/novaculite_relief_vertical.json | 55 +- .../mineralogy/recipes/novaculite_slab.json | 47 +- ...ite_slab_from_novaculite_stonecutting.json | 21 - .../mineralogy/recipes/novaculite_smooth.json | 45 +- .../recipes/novaculite_smooth_brick.json | 53 +- .../novaculite_smooth_brick_furnace.json | 68 +- .../recipes/novaculite_smooth_brick_slab.json | 55 +- .../novaculite_smooth_brick_stairs.json | 59 +- .../recipes/novaculite_smooth_brick_wall.json | 57 +- .../recipes/novaculite_smooth_furnace.json | 64 +- .../recipes/novaculite_smooth_slab.json | 51 +- .../recipes/novaculite_smooth_stairs.json | 55 +- .../recipes/novaculite_smooth_wall.json | 53 +- .../mineralogy/recipes/novaculite_stairs.json | 51 +- ...e_stairs_from_novaculite_stonecutting.json | 21 - .../recipes/novaculite_to_stone.json | 15 +- .../mineralogy/recipes/novaculite_wall.json | 49 +- ...ite_wall_from_novaculite_stonecutting.json | 21 - .../mineralogy/recipes/pegmatite_brick.json | 49 +- .../pegmatite_brick_block_polishing.json | 26 + .../recipes/pegmatite_brick_furnace.json | 64 +- .../recipes/pegmatite_brick_slab.json | 51 +- .../pegmatite_brick_slab_polishing.json | 26 + .../pegmatite_brick_slab_recombination.json | 26 + .../recipes/pegmatite_brick_stairs.json | 55 +- .../pegmatite_brick_stairs_polishing.json | 26 + .../recipes/pegmatite_brick_wall.json | 53 +- .../pegmatite_brick_wall_polishing.json | 26 + .../recipes/pegmatite_cobblestone.json | 42 +- .../mineralogy/recipes/pegmatite_furnace.json | 60 +- .../recipes/pegmatite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + ...pegmatite_polished_slab_recombination.json | 26 + .../pegmatite_polished_slabs_to_brick.json | 28 + .../pegmatite_polished_stairs_to_brick.json | 28 + .../pegmatite_polished_walls_to_brick.json | 28 + .../recipes/pegmatite_raw_slab_polishing.json | 26 + .../pegmatite_raw_slab_recombination.json | 26 + .../recipes/pegmatite_raw_slabs_to_brick.json | 28 + .../pegmatite_raw_stairs_polishing.json | 26 + .../pegmatite_raw_stairs_to_brick.json | 28 + .../recipes/pegmatite_raw_wall_polishing.json | 26 + .../recipes/pegmatite_raw_walls_to_brick.json | 28 + .../recipes/pegmatite_relief_axe.json | 92 +- .../recipes/pegmatite_relief_blank.json | 55 +- .../recipes/pegmatite_relief_cross.json | 55 +- .../recipes/pegmatite_relief_hammer.json | 67 +- .../recipes/pegmatite_relief_hoe.json | 92 +- .../recipes/pegmatite_relief_horizontal.json | 51 +- .../recipes/pegmatite_relief_i.json | 55 +- .../recipes/pegmatite_relief_left.json | 55 +- .../recipes/pegmatite_relief_pickaxe.json | 92 +- .../recipes/pegmatite_relief_plus.json | 55 +- .../recipes/pegmatite_relief_right.json | 52 +- .../recipes/pegmatite_relief_sword.json | 92 +- .../recipes/pegmatite_relief_vertical.json | 55 +- .../mineralogy/recipes/pegmatite_slab.json | 47 +- ...tite_slab_from_pegmatite_stonecutting.json | 21 - .../mineralogy/recipes/pegmatite_smooth.json | 45 +- .../recipes/pegmatite_smooth_brick.json | 53 +- .../pegmatite_smooth_brick_furnace.json | 68 +- .../recipes/pegmatite_smooth_brick_slab.json | 55 +- .../pegmatite_smooth_brick_stairs.json | 59 +- .../recipes/pegmatite_smooth_brick_wall.json | 57 +- .../recipes/pegmatite_smooth_furnace.json | 64 +- .../recipes/pegmatite_smooth_slab.json | 51 +- .../recipes/pegmatite_smooth_stairs.json | 55 +- .../recipes/pegmatite_smooth_wall.json | 53 +- .../mineralogy/recipes/pegmatite_stairs.json | 51 +- ...te_stairs_from_pegmatite_stonecutting.json | 21 - .../recipes/pegmatite_to_stone.json | 15 +- .../mineralogy/recipes/pegmatite_wall.json | 49 +- ...tite_wall_from_pegmatite_stonecutting.json | 21 - .../mineralogy/recipes/peridotite_brick.json | 49 +- .../peridotite_brick_block_polishing.json | 26 + .../recipes/peridotite_brick_furnace.json | 64 +- .../recipes/peridotite_brick_slab.json | 51 +- .../peridotite_brick_slab_polishing.json | 26 + .../peridotite_brick_slab_recombination.json | 26 + .../recipes/peridotite_brick_stairs.json | 55 +- .../peridotite_brick_stairs_polishing.json | 26 + .../recipes/peridotite_brick_wall.json | 53 +- .../peridotite_brick_wall_polishing.json | 26 + .../recipes/peridotite_cobblestone.json | 42 +- .../recipes/peridotite_furnace.json | 60 +- .../recipes/peridotite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + ...eridotite_polished_slab_recombination.json | 26 + .../peridotite_polished_slabs_to_brick.json | 28 + .../peridotite_polished_stairs_to_brick.json | 28 + .../peridotite_polished_walls_to_brick.json | 28 + .../peridotite_raw_slab_polishing.json | 26 + .../peridotite_raw_slab_recombination.json | 26 + .../peridotite_raw_slabs_to_brick.json | 28 + .../peridotite_raw_stairs_polishing.json | 26 + .../peridotite_raw_stairs_to_brick.json | 28 + .../peridotite_raw_wall_polishing.json | 26 + .../peridotite_raw_walls_to_brick.json | 28 + .../recipes/peridotite_relief_axe.json | 92 +- .../recipes/peridotite_relief_blank.json | 55 +- .../recipes/peridotite_relief_cross.json | 55 +- .../recipes/peridotite_relief_hammer.json | 67 +- .../recipes/peridotite_relief_hoe.json | 92 +- .../recipes/peridotite_relief_horizontal.json | 51 +- .../recipes/peridotite_relief_i.json | 55 +- .../recipes/peridotite_relief_left.json | 55 +- .../recipes/peridotite_relief_pickaxe.json | 92 +- .../recipes/peridotite_relief_plus.json | 55 +- .../recipes/peridotite_relief_right.json | 52 +- .../recipes/peridotite_relief_sword.json | 92 +- .../recipes/peridotite_relief_vertical.json | 55 +- .../mineralogy/recipes/peridotite_slab.json | 47 +- ...ite_slab_from_peridotite_stonecutting.json | 21 - .../mineralogy/recipes/peridotite_smooth.json | 45 +- .../recipes/peridotite_smooth_brick.json | 53 +- .../peridotite_smooth_brick_furnace.json | 68 +- .../recipes/peridotite_smooth_brick_slab.json | 55 +- .../peridotite_smooth_brick_stairs.json | 59 +- .../recipes/peridotite_smooth_brick_wall.json | 57 +- .../recipes/peridotite_smooth_furnace.json | 64 +- .../recipes/peridotite_smooth_slab.json | 51 +- .../recipes/peridotite_smooth_stairs.json | 55 +- .../recipes/peridotite_smooth_wall.json | 53 +- .../mineralogy/recipes/peridotite_stairs.json | 51 +- ...e_stairs_from_peridotite_stonecutting.json | 21 - .../recipes/peridotite_to_stone.json | 15 +- .../mineralogy/recipes/peridotite_wall.json | 49 +- ...ite_wall_from_peridotite_stonecutting.json | 21 - .../mineralogy/recipes/phosphorous_block.json | 41 +- .../mineralogy/recipes/phosphorous_dust.json | 31 +- .../mineralogy/recipes/phyllite_brick.json | 49 +- .../phyllite_brick_block_polishing.json | 26 + .../recipes/phyllite_brick_furnace.json | 64 +- .../recipes/phyllite_brick_slab.json | 51 +- .../phyllite_brick_slab_polishing.json | 26 + .../phyllite_brick_slab_recombination.json | 26 + .../recipes/phyllite_brick_stairs.json | 55 +- .../phyllite_brick_stairs_polishing.json | 26 + .../recipes/phyllite_brick_wall.json | 53 +- .../phyllite_brick_wall_polishing.json | 26 + .../recipes/phyllite_cobblestone.json | 42 +- .../mineralogy/recipes/phyllite_furnace.json | 60 +- .../recipes/phyllite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../phyllite_polished_slab_recombination.json | 26 + .../phyllite_polished_slabs_to_brick.json | 28 + .../phyllite_polished_stairs_to_brick.json | 28 + .../phyllite_polished_walls_to_brick.json | 28 + .../recipes/phyllite_raw_slab_polishing.json | 26 + .../phyllite_raw_slab_recombination.json | 26 + .../recipes/phyllite_raw_slabs_to_brick.json | 28 + .../phyllite_raw_stairs_polishing.json | 26 + .../recipes/phyllite_raw_stairs_to_brick.json | 28 + .../recipes/phyllite_raw_wall_polishing.json | 26 + .../recipes/phyllite_raw_walls_to_brick.json | 28 + .../recipes/phyllite_relief_axe.json | 92 +- .../recipes/phyllite_relief_blank.json | 55 +- .../recipes/phyllite_relief_cross.json | 55 +- .../recipes/phyllite_relief_hammer.json | 67 +- .../recipes/phyllite_relief_hoe.json | 92 +- .../recipes/phyllite_relief_horizontal.json | 51 +- .../mineralogy/recipes/phyllite_relief_i.json | 55 +- .../recipes/phyllite_relief_left.json | 55 +- .../recipes/phyllite_relief_pickaxe.json | 92 +- .../recipes/phyllite_relief_plus.json | 55 +- .../recipes/phyllite_relief_right.json | 52 +- .../recipes/phyllite_relief_sword.json | 92 +- .../recipes/phyllite_relief_vertical.json | 55 +- .../mineralogy/recipes/phyllite_slab.json | 47 +- ...llite_slab_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/phyllite_smooth.json | 45 +- .../recipes/phyllite_smooth_brick.json | 53 +- .../phyllite_smooth_brick_furnace.json | 68 +- .../recipes/phyllite_smooth_brick_slab.json | 55 +- .../recipes/phyllite_smooth_brick_stairs.json | 59 +- .../recipes/phyllite_smooth_brick_wall.json | 57 +- .../recipes/phyllite_smooth_furnace.json | 64 +- .../recipes/phyllite_smooth_slab.json | 51 +- .../recipes/phyllite_smooth_stairs.json | 55 +- .../recipes/phyllite_smooth_wall.json | 53 +- .../mineralogy/recipes/phyllite_stairs.json | 51 +- ...ite_stairs_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/phyllite_to_stone.json | 15 +- .../mineralogy/recipes/phyllite_wall.json | 49 +- ...llite_wall_from_phyllite_stonecutting.json | 21 - .../mineralogy/recipes/quartzite_brick.json | 49 +- .../quartzite_brick_block_polishing.json | 26 + .../recipes/quartzite_brick_furnace.json | 64 +- .../recipes/quartzite_brick_slab.json | 51 +- .../quartzite_brick_slab_polishing.json | 26 + .../quartzite_brick_slab_recombination.json | 26 + .../recipes/quartzite_brick_stairs.json | 55 +- .../quartzite_brick_stairs_polishing.json | 26 + .../recipes/quartzite_brick_wall.json | 53 +- .../quartzite_brick_wall_polishing.json | 26 + .../recipes/quartzite_cobblestone.json | 42 +- .../mineralogy/recipes/quartzite_furnace.json | 60 +- .../recipes/quartzite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + ...quartzite_polished_slab_recombination.json | 26 + .../quartzite_polished_slabs_to_brick.json | 28 + .../quartzite_polished_stairs_to_brick.json | 28 + .../quartzite_polished_walls_to_brick.json | 28 + .../recipes/quartzite_raw_slab_polishing.json | 26 + .../quartzite_raw_slab_recombination.json | 26 + .../recipes/quartzite_raw_slabs_to_brick.json | 28 + .../quartzite_raw_stairs_polishing.json | 26 + .../quartzite_raw_stairs_to_brick.json | 28 + .../recipes/quartzite_raw_wall_polishing.json | 26 + .../recipes/quartzite_raw_walls_to_brick.json | 28 + .../recipes/quartzite_relief_axe.json | 92 +- .../recipes/quartzite_relief_blank.json | 55 +- .../recipes/quartzite_relief_cross.json | 55 +- .../recipes/quartzite_relief_hammer.json | 67 +- .../recipes/quartzite_relief_hoe.json | 92 +- .../recipes/quartzite_relief_horizontal.json | 51 +- .../recipes/quartzite_relief_i.json | 55 +- .../recipes/quartzite_relief_left.json | 55 +- .../recipes/quartzite_relief_pickaxe.json | 92 +- .../recipes/quartzite_relief_plus.json | 55 +- .../recipes/quartzite_relief_right.json | 52 +- .../recipes/quartzite_relief_sword.json | 92 +- .../recipes/quartzite_relief_vertical.json | 55 +- .../mineralogy/recipes/quartzite_slab.json | 47 +- ...zite_slab_from_quartzite_stonecutting.json | 21 - .../mineralogy/recipes/quartzite_smooth.json | 45 +- .../recipes/quartzite_smooth_brick.json | 53 +- .../quartzite_smooth_brick_furnace.json | 68 +- .../recipes/quartzite_smooth_brick_slab.json | 55 +- .../quartzite_smooth_brick_stairs.json | 59 +- .../recipes/quartzite_smooth_brick_wall.json | 57 +- .../recipes/quartzite_smooth_furnace.json | 64 +- .../recipes/quartzite_smooth_slab.json | 51 +- .../recipes/quartzite_smooth_stairs.json | 55 +- .../recipes/quartzite_smooth_wall.json | 53 +- .../mineralogy/recipes/quartzite_stairs.json | 51 +- ...te_stairs_from_quartzite_stonecutting.json | 21 - .../recipes/quartzite_to_stone.json | 15 +- .../mineralogy/recipes/quartzite_wall.json | 49 +- ...zite_wall_from_quartzite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_brick.json | 49 +- .../rhyolite_brick_block_polishing.json | 26 + .../recipes/rhyolite_brick_furnace.json | 64 +- .../recipes/rhyolite_brick_slab.json | 51 +- .../rhyolite_brick_slab_polishing.json | 26 + .../rhyolite_brick_slab_recombination.json | 26 + .../recipes/rhyolite_brick_stairs.json | 55 +- .../rhyolite_brick_stairs_polishing.json | 26 + .../recipes/rhyolite_brick_wall.json | 53 +- .../rhyolite_brick_wall_polishing.json | 26 + .../recipes/rhyolite_cobblestone.json | 42 +- .../mineralogy/recipes/rhyolite_furnace.json | 60 +- .../recipes/rhyolite_furnace_from_rock.json | 29 - ...ite_polished_brick_slab_recombination.json | 26 + .../rhyolite_polished_slab_recombination.json | 26 + .../rhyolite_polished_slabs_to_brick.json | 28 + .../rhyolite_polished_stairs_to_brick.json | 28 + .../rhyolite_polished_walls_to_brick.json | 28 + .../recipes/rhyolite_raw_slab_polishing.json | 26 + .../rhyolite_raw_slab_recombination.json | 26 + .../recipes/rhyolite_raw_slabs_to_brick.json | 28 + .../rhyolite_raw_stairs_polishing.json | 26 + .../recipes/rhyolite_raw_stairs_to_brick.json | 28 + .../recipes/rhyolite_raw_wall_polishing.json | 26 + .../recipes/rhyolite_raw_walls_to_brick.json | 28 + .../recipes/rhyolite_relief_axe.json | 92 +- .../recipes/rhyolite_relief_blank.json | 55 +- .../recipes/rhyolite_relief_cross.json | 55 +- .../recipes/rhyolite_relief_hammer.json | 67 +- .../recipes/rhyolite_relief_hoe.json | 92 +- .../recipes/rhyolite_relief_horizontal.json | 51 +- .../mineralogy/recipes/rhyolite_relief_i.json | 55 +- .../recipes/rhyolite_relief_left.json | 55 +- .../recipes/rhyolite_relief_pickaxe.json | 92 +- .../recipes/rhyolite_relief_plus.json | 55 +- .../recipes/rhyolite_relief_right.json | 52 +- .../recipes/rhyolite_relief_sword.json | 92 +- .../recipes/rhyolite_relief_vertical.json | 55 +- .../mineralogy/recipes/rhyolite_slab.json | 47 +- ...olite_slab_from_rhyolite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_smooth.json | 45 +- .../recipes/rhyolite_smooth_brick.json | 53 +- .../rhyolite_smooth_brick_furnace.json | 68 +- .../recipes/rhyolite_smooth_brick_slab.json | 55 +- .../recipes/rhyolite_smooth_brick_stairs.json | 59 +- .../recipes/rhyolite_smooth_brick_wall.json | 57 +- .../recipes/rhyolite_smooth_furnace.json | 64 +- .../recipes/rhyolite_smooth_slab.json | 51 +- .../recipes/rhyolite_smooth_stairs.json | 55 +- .../recipes/rhyolite_smooth_wall.json | 53 +- .../mineralogy/recipes/rhyolite_stairs.json | 51 +- ...ite_stairs_from_rhyolite_stonecutting.json | 21 - .../mineralogy/recipes/rhyolite_to_stone.json | 15 +- .../mineralogy/recipes/rhyolite_wall.json | 49 +- ...olite_wall_from_rhyolite_stonecutting.json | 21 - .../data/mineralogy/recipes/rock_salt.json | 35 +- .../mineralogy/recipes/rock_salt_brick.json | 49 +- .../rock_salt_brick_block_polishing.json | 26 + .../recipes/rock_salt_brick_furnace.json | 64 +- .../recipes/rock_salt_brick_slab.json | 51 +- .../rock_salt_brick_slab_polishing.json | 26 + .../rock_salt_brick_slab_recombination.json | 26 + .../recipes/rock_salt_brick_stairs.json | 55 +- .../rock_salt_brick_stairs_polishing.json | 26 + .../recipes/rock_salt_brick_wall.json | 53 +- .../rock_salt_brick_wall_polishing.json | 26 + .../recipes/rock_salt_cobblestone.json | 42 +- .../mineralogy/recipes/rock_salt_dust.json | 27 +- .../mineralogy/recipes/rock_salt_furnace.json | 60 +- .../recipes/rock_salt_furnace_from_rock.json | 29 - ...alt_polished_brick_slab_recombination.json | 26 + ...rock_salt_polished_slab_recombination.json | 26 + .../rock_salt_polished_slabs_to_brick.json | 28 + .../rock_salt_polished_stairs_to_brick.json | 28 + .../rock_salt_polished_walls_to_brick.json | 28 + .../recipes/rock_salt_raw_slab_polishing.json | 26 + .../rock_salt_raw_slab_recombination.json | 26 + .../recipes/rock_salt_raw_slabs_to_brick.json | 28 + .../rock_salt_raw_stairs_polishing.json | 26 + .../rock_salt_raw_stairs_to_brick.json | 28 + .../recipes/rock_salt_raw_wall_polishing.json | 26 + .../recipes/rock_salt_raw_walls_to_brick.json | 28 + .../recipes/rock_salt_relief_axe.json | 92 +- .../recipes/rock_salt_relief_blank.json | 55 +- .../recipes/rock_salt_relief_cross.json | 55 +- .../recipes/rock_salt_relief_hammer.json | 67 +- .../recipes/rock_salt_relief_hoe.json | 92 +- .../recipes/rock_salt_relief_horizontal.json | 51 +- .../recipes/rock_salt_relief_i.json | 55 +- .../recipes/rock_salt_relief_left.json | 55 +- .../recipes/rock_salt_relief_pickaxe.json | 92 +- .../recipes/rock_salt_relief_plus.json | 55 +- .../recipes/rock_salt_relief_right.json | 52 +- .../recipes/rock_salt_relief_sword.json | 92 +- .../recipes/rock_salt_relief_vertical.json | 55 +- .../mineralogy/recipes/rock_salt_slab.json | 47 +- ...salt_slab_from_rock_salt_stonecutting.json | 21 - .../mineralogy/recipes/rock_salt_smooth.json | 45 +- .../recipes/rock_salt_smooth_brick.json | 53 +- .../rock_salt_smooth_brick_furnace.json | 68 +- .../recipes/rock_salt_smooth_brick_slab.json | 55 +- .../rock_salt_smooth_brick_stairs.json | 59 +- .../recipes/rock_salt_smooth_brick_wall.json | 57 +- .../recipes/rock_salt_smooth_furnace.json | 64 +- .../recipes/rock_salt_smooth_slab.json | 51 +- .../recipes/rock_salt_smooth_stairs.json | 55 +- .../recipes/rock_salt_smooth_wall.json | 53 +- .../mineralogy/recipes/rock_salt_stairs.json | 51 +- ...lt_stairs_from_rock_salt_stonecutting.json | 21 - .../recipes/rock_salt_to_stone.json | 15 +- .../mineralogy/recipes/rock_salt_wall.json | 49 +- ...salt_wall_from_rock_salt_stonecutting.json | 21 - .../data/mineralogy/recipes/rocksaltlamp.json | 42 +- .../recipes/rocksaltstreetlamp.json | 47 +- .../data/mineralogy/recipes/schist_brick.json | 49 +- .../recipes/schist_brick_block_polishing.json | 26 + .../recipes/schist_brick_furnace.json | 64 +- .../mineralogy/recipes/schist_brick_slab.json | 51 +- .../recipes/schist_brick_slab_polishing.json | 26 + .../schist_brick_slab_recombination.json | 26 + .../recipes/schist_brick_stairs.json | 55 +- .../schist_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/schist_brick_wall.json | 53 +- .../recipes/schist_brick_wall_polishing.json | 26 + .../recipes/schist_cobblestone.json | 42 +- .../mineralogy/recipes/schist_furnace.json | 60 +- .../recipes/schist_furnace_from_rock.json | 29 - ...ist_polished_brick_slab_recombination.json | 26 + .../schist_polished_slab_recombination.json | 26 + .../schist_polished_slabs_to_brick.json | 28 + .../schist_polished_stairs_to_brick.json | 28 + .../schist_polished_walls_to_brick.json | 28 + .../recipes/schist_raw_slab_polishing.json | 26 + .../schist_raw_slab_recombination.json | 26 + .../recipes/schist_raw_slabs_to_brick.json | 28 + .../recipes/schist_raw_stairs_polishing.json | 26 + .../recipes/schist_raw_stairs_to_brick.json | 28 + .../recipes/schist_raw_wall_polishing.json | 26 + .../recipes/schist_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/schist_relief_axe.json | 92 +- .../recipes/schist_relief_blank.json | 55 +- .../recipes/schist_relief_cross.json | 55 +- .../recipes/schist_relief_hammer.json | 67 +- .../mineralogy/recipes/schist_relief_hoe.json | 92 +- .../recipes/schist_relief_horizontal.json | 51 +- .../mineralogy/recipes/schist_relief_i.json | 55 +- .../recipes/schist_relief_left.json | 55 +- .../recipes/schist_relief_pickaxe.json | 92 +- .../recipes/schist_relief_plus.json | 55 +- .../recipes/schist_relief_right.json | 52 +- .../recipes/schist_relief_sword.json | 92 +- .../recipes/schist_relief_vertical.json | 55 +- .../data/mineralogy/recipes/schist_slab.json | 47 +- .../schist_slab_from_schist_stonecutting.json | 21 - .../mineralogy/recipes/schist_smooth.json | 45 +- .../recipes/schist_smooth_brick.json | 53 +- .../recipes/schist_smooth_brick_furnace.json | 68 +- .../recipes/schist_smooth_brick_slab.json | 55 +- .../recipes/schist_smooth_brick_stairs.json | 59 +- .../recipes/schist_smooth_brick_wall.json | 57 +- .../recipes/schist_smooth_furnace.json | 64 +- .../recipes/schist_smooth_slab.json | 51 +- .../recipes/schist_smooth_stairs.json | 55 +- .../recipes/schist_smooth_wall.json | 53 +- .../mineralogy/recipes/schist_stairs.json | 51 +- ...chist_stairs_from_schist_stonecutting.json | 21 - .../mineralogy/recipes/schist_to_stone.json | 15 +- .../data/mineralogy/recipes/schist_wall.json | 49 +- .../schist_wall_from_schist_stonecutting.json | 21 - .../data/mineralogy/recipes/scoria_brick.json | 49 +- .../recipes/scoria_brick_block_polishing.json | 26 + .../recipes/scoria_brick_furnace.json | 64 +- .../mineralogy/recipes/scoria_brick_slab.json | 51 +- .../recipes/scoria_brick_slab_polishing.json | 26 + .../scoria_brick_slab_recombination.json | 26 + .../recipes/scoria_brick_stairs.json | 55 +- .../scoria_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/scoria_brick_wall.json | 53 +- .../recipes/scoria_brick_wall_polishing.json | 26 + .../recipes/scoria_cobblestone.json | 42 +- .../mineralogy/recipes/scoria_furnace.json | 60 +- .../recipes/scoria_furnace_from_rock.json | 29 - ...ria_polished_brick_slab_recombination.json | 26 + .../scoria_polished_slab_recombination.json | 26 + .../scoria_polished_slabs_to_brick.json | 28 + .../scoria_polished_stairs_to_brick.json | 28 + .../scoria_polished_walls_to_brick.json | 28 + .../recipes/scoria_raw_slab_polishing.json | 26 + .../scoria_raw_slab_recombination.json | 26 + .../recipes/scoria_raw_slabs_to_brick.json | 28 + .../recipes/scoria_raw_stairs_polishing.json | 26 + .../recipes/scoria_raw_stairs_to_brick.json | 28 + .../recipes/scoria_raw_wall_polishing.json | 26 + .../recipes/scoria_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/scoria_relief_axe.json | 92 +- .../recipes/scoria_relief_blank.json | 55 +- .../recipes/scoria_relief_cross.json | 55 +- .../recipes/scoria_relief_hammer.json | 67 +- .../mineralogy/recipes/scoria_relief_hoe.json | 92 +- .../recipes/scoria_relief_horizontal.json | 51 +- .../mineralogy/recipes/scoria_relief_i.json | 55 +- .../recipes/scoria_relief_left.json | 55 +- .../recipes/scoria_relief_pickaxe.json | 92 +- .../recipes/scoria_relief_plus.json | 55 +- .../recipes/scoria_relief_right.json | 52 +- .../recipes/scoria_relief_sword.json | 92 +- .../recipes/scoria_relief_vertical.json | 55 +- .../data/mineralogy/recipes/scoria_slab.json | 47 +- .../scoria_slab_from_scoria_stonecutting.json | 21 - .../mineralogy/recipes/scoria_smooth.json | 45 +- .../recipes/scoria_smooth_brick.json | 53 +- .../recipes/scoria_smooth_brick_furnace.json | 68 +- .../recipes/scoria_smooth_brick_slab.json | 55 +- .../recipes/scoria_smooth_brick_stairs.json | 59 +- .../recipes/scoria_smooth_brick_wall.json | 57 +- .../recipes/scoria_smooth_furnace.json | 64 +- .../recipes/scoria_smooth_slab.json | 51 +- .../recipes/scoria_smooth_stairs.json | 55 +- .../recipes/scoria_smooth_wall.json | 53 +- .../mineralogy/recipes/scoria_stairs.json | 51 +- ...coria_stairs_from_scoria_stonecutting.json | 21 - .../mineralogy/recipes/scoria_to_stone.json | 15 +- .../data/mineralogy/recipes/scoria_wall.json | 49 +- .../scoria_wall_from_scoria_stonecutting.json | 21 - .../data/mineralogy/recipes/shale_brick.json | 49 +- .../recipes/shale_brick_block_polishing.json | 26 + .../recipes/shale_brick_furnace.json | 64 +- .../mineralogy/recipes/shale_brick_slab.json | 51 +- .../recipes/shale_brick_slab_polishing.json | 26 + .../shale_brick_slab_recombination.json | 26 + .../recipes/shale_brick_stairs.json | 55 +- .../recipes/shale_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/shale_brick_wall.json | 53 +- .../recipes/shale_brick_wall_polishing.json | 26 + .../mineralogy/recipes/shale_cobblestone.json | 42 +- .../mineralogy/recipes/shale_furnace.json | 60 +- .../recipes/shale_furnace_from_rock.json | 29 - ...ale_polished_brick_slab_recombination.json | 26 + .../shale_polished_slab_recombination.json | 26 + .../shale_polished_slabs_to_brick.json | 28 + .../shale_polished_stairs_to_brick.json | 28 + .../shale_polished_walls_to_brick.json | 28 + .../recipes/shale_raw_slab_polishing.json | 26 + .../recipes/shale_raw_slab_recombination.json | 26 + .../recipes/shale_raw_slabs_to_brick.json | 28 + .../recipes/shale_raw_stairs_polishing.json | 26 + .../recipes/shale_raw_stairs_to_brick.json | 28 + .../recipes/shale_raw_wall_polishing.json | 26 + .../recipes/shale_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/shale_relief_axe.json | 92 +- .../recipes/shale_relief_blank.json | 55 +- .../recipes/shale_relief_cross.json | 55 +- .../recipes/shale_relief_hammer.json | 67 +- .../mineralogy/recipes/shale_relief_hoe.json | 92 +- .../recipes/shale_relief_horizontal.json | 51 +- .../mineralogy/recipes/shale_relief_i.json | 55 +- .../mineralogy/recipes/shale_relief_left.json | 55 +- .../recipes/shale_relief_pickaxe.json | 92 +- .../mineralogy/recipes/shale_relief_plus.json | 55 +- .../recipes/shale_relief_right.json | 52 +- .../recipes/shale_relief_sword.json | 92 +- .../recipes/shale_relief_vertical.json | 55 +- .../data/mineralogy/recipes/shale_slab.json | 47 +- .../shale_slab_from_shale_stonecutting.json | 21 - .../data/mineralogy/recipes/shale_smooth.json | 45 +- .../recipes/shale_smooth_brick.json | 53 +- .../recipes/shale_smooth_brick_furnace.json | 68 +- .../recipes/shale_smooth_brick_slab.json | 55 +- .../recipes/shale_smooth_brick_stairs.json | 59 +- .../recipes/shale_smooth_brick_wall.json | 57 +- .../recipes/shale_smooth_furnace.json | 64 +- .../mineralogy/recipes/shale_smooth_slab.json | 51 +- .../recipes/shale_smooth_stairs.json | 55 +- .../mineralogy/recipes/shale_smooth_wall.json | 53 +- .../data/mineralogy/recipes/shale_stairs.json | 51 +- .../shale_stairs_from_shale_stonecutting.json | 21 - .../mineralogy/recipes/shale_to_stone.json | 15 +- .../data/mineralogy/recipes/shale_wall.json | 49 +- .../shale_wall_from_shale_stonecutting.json | 21 - .../mineralogy/recipes/siltstone_brick.json | 49 +- .../siltstone_brick_block_polishing.json | 26 + .../recipes/siltstone_brick_furnace.json | 64 +- .../recipes/siltstone_brick_slab.json | 51 +- .../siltstone_brick_slab_polishing.json | 26 + .../siltstone_brick_slab_recombination.json | 26 + .../recipes/siltstone_brick_stairs.json | 55 +- .../siltstone_brick_stairs_polishing.json | 26 + .../recipes/siltstone_brick_wall.json | 53 +- .../siltstone_brick_wall_polishing.json | 26 + .../recipes/siltstone_cobblestone.json | 42 +- .../mineralogy/recipes/siltstone_furnace.json | 60 +- .../recipes/siltstone_furnace_from_rock.json | 29 - ...one_polished_brick_slab_recombination.json | 26 + ...siltstone_polished_slab_recombination.json | 26 + .../siltstone_polished_slabs_to_brick.json | 28 + .../siltstone_polished_stairs_to_brick.json | 28 + .../siltstone_polished_walls_to_brick.json | 28 + .../recipes/siltstone_raw_slab_polishing.json | 26 + .../siltstone_raw_slab_recombination.json | 26 + .../recipes/siltstone_raw_slabs_to_brick.json | 28 + .../siltstone_raw_stairs_polishing.json | 26 + .../siltstone_raw_stairs_to_brick.json | 28 + .../recipes/siltstone_raw_wall_polishing.json | 26 + .../recipes/siltstone_raw_walls_to_brick.json | 28 + .../recipes/siltstone_relief_axe.json | 92 +- .../recipes/siltstone_relief_blank.json | 55 +- .../recipes/siltstone_relief_cross.json | 55 +- .../recipes/siltstone_relief_hammer.json | 67 +- .../recipes/siltstone_relief_hoe.json | 92 +- .../recipes/siltstone_relief_horizontal.json | 51 +- .../recipes/siltstone_relief_i.json | 55 +- .../recipes/siltstone_relief_left.json | 55 +- .../recipes/siltstone_relief_pickaxe.json | 92 +- .../recipes/siltstone_relief_plus.json | 55 +- .../recipes/siltstone_relief_right.json | 52 +- .../recipes/siltstone_relief_sword.json | 92 +- .../recipes/siltstone_relief_vertical.json | 55 +- .../mineralogy/recipes/siltstone_slab.json | 47 +- ...tone_slab_from_siltstone_stonecutting.json | 21 - .../mineralogy/recipes/siltstone_smooth.json | 45 +- .../recipes/siltstone_smooth_brick.json | 53 +- .../siltstone_smooth_brick_furnace.json | 68 +- .../recipes/siltstone_smooth_brick_slab.json | 55 +- .../siltstone_smooth_brick_stairs.json | 59 +- .../recipes/siltstone_smooth_brick_wall.json | 57 +- .../recipes/siltstone_smooth_furnace.json | 64 +- .../recipes/siltstone_smooth_slab.json | 51 +- .../recipes/siltstone_smooth_stairs.json | 55 +- .../recipes/siltstone_smooth_wall.json | 53 +- .../mineralogy/recipes/siltstone_stairs.json | 51 +- ...ne_stairs_from_siltstone_stonecutting.json | 21 - .../recipes/siltstone_to_stone.json | 15 +- .../mineralogy/recipes/siltstone_wall.json | 49 +- ...tone_wall_from_siltstone_stonecutting.json | 21 - .../data/mineralogy/recipes/slate_brick.json | 49 +- .../recipes/slate_brick_block_polishing.json | 26 + .../recipes/slate_brick_furnace.json | 64 +- .../mineralogy/recipes/slate_brick_slab.json | 51 +- .../recipes/slate_brick_slab_polishing.json | 26 + .../slate_brick_slab_recombination.json | 26 + .../recipes/slate_brick_stairs.json | 55 +- .../recipes/slate_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/slate_brick_wall.json | 53 +- .../recipes/slate_brick_wall_polishing.json | 26 + .../mineralogy/recipes/slate_cobblestone.json | 42 +- .../mineralogy/recipes/slate_furnace.json | 60 +- .../recipes/slate_furnace_from_rock.json | 29 - ...ate_polished_brick_slab_recombination.json | 26 + .../slate_polished_slab_recombination.json | 26 + .../slate_polished_slabs_to_brick.json | 28 + .../slate_polished_stairs_to_brick.json | 28 + .../slate_polished_walls_to_brick.json | 28 + .../recipes/slate_raw_slab_polishing.json | 26 + .../recipes/slate_raw_slab_recombination.json | 26 + .../recipes/slate_raw_slabs_to_brick.json | 28 + .../recipes/slate_raw_stairs_polishing.json | 26 + .../recipes/slate_raw_stairs_to_brick.json | 28 + .../recipes/slate_raw_wall_polishing.json | 26 + .../recipes/slate_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/slate_relief_axe.json | 92 +- .../recipes/slate_relief_blank.json | 55 +- .../recipes/slate_relief_cross.json | 55 +- .../recipes/slate_relief_hammer.json | 67 +- .../mineralogy/recipes/slate_relief_hoe.json | 92 +- .../recipes/slate_relief_horizontal.json | 51 +- .../mineralogy/recipes/slate_relief_i.json | 55 +- .../mineralogy/recipes/slate_relief_left.json | 55 +- .../recipes/slate_relief_pickaxe.json | 92 +- .../mineralogy/recipes/slate_relief_plus.json | 55 +- .../recipes/slate_relief_right.json | 52 +- .../recipes/slate_relief_sword.json | 92 +- .../recipes/slate_relief_vertical.json | 55 +- .../data/mineralogy/recipes/slate_slab.json | 47 +- .../slate_slab_from_slate_stonecutting.json | 21 - .../data/mineralogy/recipes/slate_smooth.json | 45 +- .../recipes/slate_smooth_brick.json | 53 +- .../recipes/slate_smooth_brick_furnace.json | 68 +- .../recipes/slate_smooth_brick_slab.json | 55 +- .../recipes/slate_smooth_brick_stairs.json | 59 +- .../recipes/slate_smooth_brick_wall.json | 57 +- .../recipes/slate_smooth_furnace.json | 64 +- .../mineralogy/recipes/slate_smooth_slab.json | 51 +- .../recipes/slate_smooth_stairs.json | 55 +- .../mineralogy/recipes/slate_smooth_wall.json | 53 +- .../data/mineralogy/recipes/slate_stairs.json | 51 +- .../slate_stairs_from_slate_stonecutting.json | 21 - .../mineralogy/recipes/slate_to_stone.json | 15 +- .../data/mineralogy/recipes/slate_wall.json | 49 +- .../slate_wall_from_slate_stonecutting.json | 21 - .../data/mineralogy/recipes/sulfur_block.json | 41 +- .../data/mineralogy/recipes/sulfur_dust.json | 31 +- .../data/mineralogy/recipes/tuff_brick.json | 49 +- .../recipes/tuff_brick_block_polishing.json | 26 + .../recipes/tuff_brick_furnace.json | 64 +- .../mineralogy/recipes/tuff_brick_slab.json | 51 +- .../recipes/tuff_brick_slab_polishing.json | 26 + .../tuff_brick_slab_recombination.json | 26 + .../mineralogy/recipes/tuff_brick_stairs.json | 55 +- .../recipes/tuff_brick_stairs_polishing.json | 26 + .../mineralogy/recipes/tuff_brick_wall.json | 53 +- .../recipes/tuff_brick_wall_polishing.json | 26 + .../mineralogy/recipes/tuff_cobblestone.json | 42 +- .../data/mineralogy/recipes/tuff_furnace.json | 60 +- .../recipes/tuff_furnace_from_rock.json | 29 - ...uff_polished_brick_slab_recombination.json | 26 + .../tuff_polished_slab_recombination.json | 26 + .../recipes/tuff_polished_slabs_to_brick.json | 28 + .../tuff_polished_stairs_to_brick.json | 28 + .../recipes/tuff_polished_walls_to_brick.json | 28 + .../recipes/tuff_raw_slab_polishing.json | 26 + .../recipes/tuff_raw_slab_recombination.json | 26 + .../recipes/tuff_raw_slabs_to_brick.json | 28 + .../recipes/tuff_raw_stairs_polishing.json | 26 + .../recipes/tuff_raw_stairs_to_brick.json | 28 + .../recipes/tuff_raw_wall_polishing.json | 26 + .../recipes/tuff_raw_walls_to_brick.json | 28 + .../mineralogy/recipes/tuff_relief_axe.json | 92 +- .../mineralogy/recipes/tuff_relief_blank.json | 55 +- .../mineralogy/recipes/tuff_relief_cross.json | 55 +- .../recipes/tuff_relief_hammer.json | 67 +- .../mineralogy/recipes/tuff_relief_hoe.json | 92 +- .../recipes/tuff_relief_horizontal.json | 51 +- .../mineralogy/recipes/tuff_relief_i.json | 55 +- .../mineralogy/recipes/tuff_relief_left.json | 55 +- .../recipes/tuff_relief_pickaxe.json | 92 +- .../mineralogy/recipes/tuff_relief_plus.json | 55 +- .../mineralogy/recipes/tuff_relief_right.json | 52 +- .../mineralogy/recipes/tuff_relief_sword.json | 92 +- .../recipes/tuff_relief_vertical.json | 55 +- .../data/mineralogy/recipes/tuff_slab.json | 47 +- .../tuff_slab_from_tuff_stonecutting.json | 21 - .../data/mineralogy/recipes/tuff_smooth.json | 45 +- .../mineralogy/recipes/tuff_smooth_brick.json | 53 +- .../recipes/tuff_smooth_brick_furnace.json | 68 +- .../recipes/tuff_smooth_brick_slab.json | 55 +- .../recipes/tuff_smooth_brick_stairs.json | 59 +- .../recipes/tuff_smooth_brick_wall.json | 57 +- .../recipes/tuff_smooth_furnace.json | 64 +- .../mineralogy/recipes/tuff_smooth_slab.json | 51 +- .../recipes/tuff_smooth_stairs.json | 55 +- .../mineralogy/recipes/tuff_smooth_wall.json | 53 +- .../data/mineralogy/recipes/tuff_stairs.json | 51 +- .../tuff_stairs_from_tuff_stonecutting.json | 21 - .../mineralogy/recipes/tuff_to_stone.json | 15 +- .../data/mineralogy/recipes/tuff_wall.json | 49 +- .../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 - .../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 | 374 ++++ .../mc/mineralogy/OreSpawnProviderTest.java | 47 - .../mc/mineralogy/ResourceContractTest.java | 838 ++++++++ .../mc/mineralogy/WorkflowContractTest.java | 107 + .../compat/CobblestoneTagPolicyTest.java | 79 + .../DocumentationExporterSourceTest.java | 44 + .../DocumentationExporterTest.java | 31 - .../LegacyTileEntityIdNormalizerTest.java | 33 + 3367 files changed, 121355 insertions(+), 74079 deletions(-) create mode 100644 .gitattributes 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-mavenizer-0.5.21-orespawn-compat.jar create mode 100644 ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.patch create mode 100644 ci-fixtures/tools/minecraft-source-compatibility.json 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/.gitattributes b/.gitattributes new file mode 100644 index 000000000..ee2bcb7e8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,3 @@ +# The checksum-sealed Mavenizer compatibility patch is an immutable build-tool +# fixture. Preserve its exact upstream bytes instead of applying text filters. +ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.patch binary diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 000000000..b78beb5f5 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,156 @@ +name: Mineralogy 1.19.4 CI + +on: + push: + branches: + - master-1.19 + - 'feature/**' + pull_request: + branches: + - master-1.19 + +permissions: + contents: read + +concurrency: + group: mineralogy-1.19-${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + cold-forge-bootstrap: + name: Cold Forge bootstrap + runs-on: ubuntu-latest + timeout-minutes: 60 + + steps: + - name: Check out source + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 + + - name: Install pinned Java 25 Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - name: Install pinned Java 17 runtime and toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '17.0.1+12' + + - name: Bootstrap Forge from an empty cache + shell: bash + env: + GRADLE_USER_HOME: ${{ runner.temp }}/mineralogy-cold-gradle + run: | + set -euo pipefail + test ! -e .gradle + test ! -e "$GRADLE_USER_HOME" + mkdir -p "$GRADLE_USER_HOME" + chmod +x ./gradlew + ./gradlew verifyMavenizerCompatibilityFixture help \ + --no-daemon --no-build-cache --stacktrace --max-workers=2 \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.auto-detect=false \ + -Dorg.gradle.java.installations.auto-download=false \ + | tee "$RUNNER_TEMP/cold-forge-bootstrap.log" + grep -F "OreSpawn Mavenizer compatibility runtime: Java 25.0.3" \ + "$RUNNER_TEMP/cold-forge-bootstrap.log" + grep -F "OreSpawn Mavenizer compatibility: applied 8 rule(s) for net.minecraftforge:forge:1.19.4-45.4.0" \ + "$RUNNER_TEMP/cold-forge-bootstrap.log" + find "$GRADLE_USER_HOME" .gradle/mavenizer \ + -name '*.orespawn-compatibility' -type f -print0 \ + | sort -z | xargs -0 -r sha256sum > "$RUNNER_TEMP/markers-before.sha256" + test -s "$RUNNER_TEMP/markers-before.sha256" + + - name: Verify same-cache preparation is idempotent + shell: bash + env: + GRADLE_USER_HOME: ${{ runner.temp }}/mineralogy-cold-gradle + run: | + set -euo pipefail + ./gradlew verifyMavenizerCompatibilityFixture help \ + --no-daemon --no-build-cache --stacktrace --max-workers=2 \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.auto-detect=false \ + -Dorg.gradle.java.installations.auto-download=false + find "$GRADLE_USER_HOME" .gradle/mavenizer \ + -name '*.orespawn-compatibility' -type f -print0 \ + | sort -z | xargs -0 -r sha256sum > "$RUNNER_TEMP/markers-after.sha256" + diff -u "$RUNNER_TEMP/markers-before.sha256" "$RUNNER_TEMP/markers-after.sha256" + + 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 25 Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - 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 verifyReleaseConfiguration verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums \ + -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ + --no-daemon --stacktrace \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.auto-detect=false \ + -Dorg.gradle.java.installations.auto-download=false + + - name: Generate and audit Eclipse production launches + run: >- + ./gradlew genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath + -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} + --no-daemon --stacktrace + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + + - name: Upload audited release candidate + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: Mineralogy-1.19.4-${{ github.sha }} + if-no-files-found: error + retention-days: 30 + path: | + build/libs/Mineralogy-6.1.0.119041.jar + build/libs/Mineralogy-6.1.0.119041-sources.jar + build/libs/Mineralogy-6.1.0.119041-javadoc.jar + build/release/SHA256SUMS + CHANGELOG.txt + + - name: Upload diagnostics on failure + if: failure() + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 + with: + name: Mineralogy-1.19.4-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..21c1cf45b --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,78 @@ +name: CodeQL + +on: + push: + branches: + - master-1.19 + - 'feature/**' + pull_request: + branches: + - master-1.19 + schedule: + - cron: '43 7 * * 4' + +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 25 Mavenizer runtime + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '25.0.3+9.0.LTS' + + - 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: 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: Compile production code + run: | + chmod +x ./gradlew + gradle_args=( + clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace + "-PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }}" + "-Dorg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.auto-detect=false + -Dorg.gradle.java.installations.auto-download=false + ) + for attempt in 1 2 3; do + if ./gradlew "${gradle_args[@]}"; then + exit 0 + fi + if [ "$attempt" -eq 3 ]; then + echo "CodeQL compilation failed after $attempt attempts." >&2 + exit 1 + fi + echo "::warning::CodeQL compilation attempt $attempt failed; retrying with the preserved Forge cache." + done + + - 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..568f47a84 --- /dev/null +++ b/.github/workflows/validate-gradle-build.yml @@ -0,0 +1,23 @@ +name: Validate Gradle Wrapper + +on: + push: + branches: + - master-1.19 + - 'feature/**' + pull_request: + branches: + - master-1.19 + +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..969416a3a 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -1 +1,97 @@ -Mineralogy 1.12.x +Mineralogy 6.1.0.119041 for Minecraft 1.19.4 + +- Delegated terrain, strata, ore, and covered fluid-deposit generation to the + released OreSpawn 4.0.16.119041 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.19.4'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 45 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.19'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.19'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 45 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 45 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.19.4-native wall tall-side blockstates and models, wall/item tags, + loot tables, fluid APIs, rendering setup, resource pack format 13, and data + pack format 12 resources. +- Added reproducible Java 17 main, sources, and Javadoc artifacts, exact released + OreSpawn dependency verification, guarded 1.19.4 CI, and the four-component + release tag `6.1.0.119041`. +- Kept ForgeGradle 7 while sealing Forge 45'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 6150911d6..fcd8a5462 100644 --- a/README.md +++ b/README.md @@ -1,63 +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.19)](https://github.com/MinecraftModDevelopmentMods/MinecraftMineralogy/actions/workflows/ci.yml?query=branch%3Amaster-1.19) -Mineralogy adds real-world rock types to Minecraft 1.19.4, 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.19.4 -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.119041` for Forge `45.4.0` and is built +and tested against OreSpawn `4.0.16.119041`. Its declared compatibility range is +OreSpawn `[4.0.6,5.0.0)`. Install both mods on clients and servers. -Install Mineralogy 6.0.0 and OreSpawn 4.0.1 (or a later compatible 4.x build) -for Minecraft 1.19.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 6c00d91df..139bf511c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,499 +1,1104 @@ +import groovy.json.JsonSlurper +import groovy.xml.XmlSlurper +import java.security.MessageDigest +import java.util.Arrays +import java.util.jar.Manifest +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 sha256Of = { File inputFile -> + MessageDigest digest = MessageDigest.getInstance('SHA-256') + inputFile.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) + } + } + digest.digest().encodeHex().toString().toUpperCase() } -version = mod_version -group = mod_group_id +def mavenizerToolsDirectory = layout.projectDirectory.dir('ci-fixtures/tools') +def mavenizerCompatibilityJar = mavenizerToolsDirectory.file( + 'minecraft-mavenizer-0.5.21-orespawn-compat.jar') +def mavenizerRuleManifest = mavenizerToolsDirectory.file( + 'minecraft-source-compatibility.json') +def mavenizerSourcePatch = mavenizerToolsDirectory.file( + 'minecraft-mavenizer-0.5.21-orespawn-compat.patch') +def mavenizerLicense = mavenizerToolsDirectory.file('LICENSE-MAVENIZER.txt') +def mavenizerReadme = mavenizerToolsDirectory.file('README.md') +def mavenizerFixtureChecksums = [ + (mavenizerCompatibilityJar.asFile): + '341B3FB10ABA6EA7DC612FBE519DC290A1C81867AED5DD320ACD783688AC49DE', + (mavenizerRuleManifest.asFile): + '33A3217261EBB8F37D45F50BD2F8CE70B221C014A5C15F4C5F8F9091AD6D1EC8', + (mavenizerSourcePatch.asFile): + 'D856190DEF5574716C5E4F4379912C451B1F5952B0B111576651A98EECF58544', + (mavenizerLicense.asFile): + '20C17D8B8C48A600800DFD14F95D5CB9FF47066A9641DDEAB48DC54AEC96E331', + (mavenizerReadme.asFile): + '88806D79B0FD4479FA07CCFF30A44A6D90F1BF822665EFBFCCCBD5C99F65FBB3' +] -base { - archivesName = "Mineralogy-${minecraft_version}" +// ForgeGradle invokes Mavenizer while configuring Forge 45. Verify the exact +// target-aware build-only tool and rule manifest before any fixture code runs. +[mavenizerCompatibilityJar.asFile, mavenizerRuleManifest.asFile].each { fixture -> + if (!fixture.isFile()) { + throw new GradleException("Missing Mavenizer compatibility fixture: ${fixture}") + } + String actual = sha256Of(fixture) + String expected = mavenizerFixtureChecksums[fixture] + if (actual != expected) { + throw new GradleException("Mavenizer compatibility fixture checksum mismatch for " + + "${fixture.name}: expected ${expected}, found ${actual}") + } +} + +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 = 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 + } +} + +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] != '119041') { + throw new GradleException("Mineralogy 1.19.4 Forge releases must use target 119041: ${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') - property 'orespawn.worldgenBenchmarkFluidAudit', - providers.gradleProperty('orespawnBenchmarkFluidAudit').getOrElse('false') - if (providers.gradleProperty('orespawnBenchmarkBiomeAudit').isPresent()) { - property 'orespawn.worldgenBenchmarkBiomeAudit', - providers.gradleProperty('orespawnBenchmarkBiomeAudit').get() - } - 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 45 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 configureForge45Run = { 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) configureForge45Run(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 + minecraft.mavenizer(it) + maven fg.forgeMaven + maven fg.minecraftLibsMaven + mavenCentral() - maven { - name = 'CurseMaven' - url = 'https://www.cursemaven.com' - content { - includeGroup 'curse.maven' + // 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' +} - // OreSpawn owns all geology and managed ore generation in Mineralogy 6. - runtimeOnly fg.deobf("curse.maven:mmd-orespawn-245586:${orespawn_file_id}") +// 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 - testImplementation platform('org.junit:junit-bom:5.10.2') - testImplementation 'org.junit.jupiter:junit-jupiter' +configurations.named('testRuntimeClasspath') { + exclude group: 'curse.maven', module: "mmd-orespawn-${project.orespawn_curse_project_id}" +} - // 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 +tasks.withType(Test).configureEach { + workingDir = project.projectDir +} - // 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}") +javadoc { + failOnError = false + options.encoding = 'UTF-8' + options.addStringOption('Xdoclint:none', '-quiet') + options.addBooleanOption('notimestamp', true) +} - // For more info: - // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html - // http://www.gradle.org/docs/current/userguide/dependency_management.html +tasks.withType(AbstractArchiveTask).configureEach { + preserveFileTimestamps = false + reproducibleFileOrder = true } -// Example for how to get properties into the manifest for reading at runtime. -tasks.named('jar', Jar).configure { +processResources { + inputs.property 'version', project.version + inputs.property 'mc_version', project.mc_version + inputs.property 'forge_version', project.forge_version + + filesMatching('META-INF/mods.toml') { + expand version: project.version, + mc_version: project.mc_version, + forge_version: project.forge_version + } + + 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' + } +} + +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 target-aware ForgeGradle Mavenizer compatibility tool.' + inputs.files mavenizerFixtureChecksums.keySet() + doLast { + mavenizerFixtureChecksums.each { fixture, expected -> + if (!fixture.isFile()) { + throw new GradleException("Missing Mavenizer compatibility fixture: ${fixture}") + } + String actual = sha256Of(fixture) + if (actual != expected) { + throw new GradleException("Mavenizer compatibility fixture checksum mismatch for " + + "${fixture.name}: expected ${expected}, found ${actual}") + } + } -tasks.named('test', Test).configure { - useJUnitPlatform() -} + def parsed = new JsonSlurper().parse(mavenizerRuleManifest.asFile) + if (parsed.schema != 1 || parsed.targets.keySet() != + ['net.minecraftforge:forge:1.19.4-45.4.0'] as Set) { + throw new GradleException('Mavenizer target-rule manifest has unexpected targets or schema') + } + def forgeRules = parsed.targets['net.minecraftforge:forge:1.19.4-45.4.0'] + def ruleIds = forgeRules.rules.collect { it.id } + if (forgeRules.expectedApplications != 8 || forgeRules.rules.size() != 8 + || ruleIds.toSet().size() != 8) { + throw new GradleException('Mavenizer target-rule manifest must define eight unique Forge 45 rules') + } + + ZipFile fixtureJar = new ZipFile(mavenizerCompatibilityJar.asFile) + try { + def embeddedEntry = fixtureJar.getEntry( + 'META-INF/orespawn/minecraft-source-compatibility.json') + if (embeddedEntry == null) { + throw new GradleException('Mavenizer fixture is missing its embedded target-rule manifest') + } + byte[] embedded = fixtureJar.getInputStream(embeddedEntry).withCloseable { it.readAllBytes() } + byte[] external = mavenizerRuleManifest.asFile.bytes + if (!Arrays.equals(embedded, external)) { + throw new GradleException('Embedded and externally audited Mavenizer manifests differ') + } + + def patcherEntry = fixtureJar.getEntry( + 'net/minecraftforge/mcmaven/impl/util/SourceCompatibilityPatcher.class') + if (patcherEntry == null) { + throw new GradleException('Mavenizer fixture is missing SourceCompatibilityPatcher') + } + byte[] classHeader = fixtureJar.getInputStream(patcherEntry).withCloseable { + it.readNBytes(8) + } + if (classHeader.length != 8 || classHeader[0..3] != + [0xCA, 0xFE, 0xBA, 0xBE].collect { (byte) it }) { + throw new GradleException('Mavenizer compatibility class has an invalid class header') + } + int classMajor = ((classHeader[6] & 0xff) << 8) | (classHeader[7] & 0xff) + if (classMajor != 69) { + throw new GradleException("Mavenizer compatibility tool must use Java 25 bytecode, found ${classMajor}") + } -// 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.' + def jarManifestEntry = fixtureJar.getEntry('META-INF/MANIFEST.MF') + Manifest jarManifest = new Manifest(fixtureJar.getInputStream(jarManifestEntry)) + if (jarManifest.mainAttributes.getValue('Main-Class') != + 'net.minecraftforge.mcmaven.cli.Main') { + throw new GradleException('Mavenizer compatibility fixture has an unexpected main class') + } + } finally { + fixtureJar.close() + } + + String readme = mavenizerReadme.asFile.getText('UTF-8') + String patchText = mavenizerSourcePatch.asFile.getText('UTF-8') + String licenseText = mavenizerLicense.asFile.getText('UTF-8') + if (!readme.contains('6968241ce7a0a902cdc1c534b976e8373a423091') + || !readme.contains('Temurin `25.0.3+9`')) { + throw new GradleException('Mavenizer provenance or Java 25 build instructions are incomplete') + } + if (!patchText.contains('SourceCompatibilityPatcher.java') + || !patchText.contains('minecraft-source-compatibility.json')) { + throw new GradleException('Mavenizer source patch is incomplete') + } + if (!licenseText.contains('GNU LESSER GENERAL PUBLIC LICENSE')) { + throw new GradleException('Mavenizer LGPL-2.1 licence fixture is incomplete') + } + } +} +tasks.register('verifyReleaseConfiguration') { + group = 'verification' + description = 'Verifies the exact Mineralogy 1.19.4 release identity.' + dependsOn tasks.named('verifyMavenizerCompatibilityFixture') 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.119041' + || project.mod_group != expectedMavenGroup + || project.minecraft_version != '1.19.4' + || project.forge_version != '45.4.0' + || project.mcp_mappings_channel != 'official' + || project.mcp_mappings_version != '1.19.4') { + throw new GradleException('Unexpected Mineralogy 1.19.4 release identity') } + } +} - 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 - } +tasks.register('verifyReleaseDependencies') { + group = 'verification' + description = 'Resolves and verifies the exact released OreSpawn dependency.' + doLast { + if (project.mod_version != '6.1.0.119041' + || project.minecraft_version != project.mc_version + || project.mc_version != '1.19.4' + || 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.16.119041' || + project.orespawn_curse_project_id != '245586' || + project.orespawn_curse_file_id != '8780970') { + 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 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.19.4 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.19.4 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.19.4 item predicate in ${source}: ${criterionName}") } } } } + 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}") + } + 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}") + } + } + 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}") + } + } + 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}") + } + 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 45 wall blockstates and tall-side models") + } } + finally { + zip.close() + } + } +} - 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')) - } - } - String replacement = output.toString() + System.lineSeparator() - if (launchFile.getText('UTF-8') != replacement) { - launchFile.setText(replacement, 'UTF-8') - changedPrepareLaunches++ +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}") + } + + 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}") + } + 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}") } } + } +} + +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') + } + } +} - 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('\\', '/')) +tasks.withType(PublishToMavenRepository).configureEach { + dependsOn tasks.named('validateMavenReleaseCredentials') + dependsOn tasks.named('verifyMavenCoordinates') + dependsOn(preparedReleaseDir == null + ? tasks.named('verifyReleaseArtifacts') + : tasks.named('verifyPreparedReleaseArtifacts')) +} + +tasks.register('syncForge45EclipseLaunches') { + 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 45 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. + // Eclipse rewrites sourceSets.main.output.resourcesDir to bin/main. + // Always copy from Gradle's actual processResources destination. + File processedResources = layout.buildDirectory.dir('resources/main').get().asFile + 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("")) + // Slime Launcher tokenizes these program arguments itself. Quote + // every complete path because this workspace name contains spaces. + 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}") } - synced = synced.replaceFirst( - //) { - "" + valueStart += prefix.length() + int valueEnd = arguments.indexOf(' --', valueStart) + if (valueEnd < 0) { + throw new GradleException("ForgeGradle generated an unterminated --${flag} path in ${launch.name}") } - if (original != synced) { - launchFile.setText(synced, 'UTF-8') - changedLaunches++ + 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]) + 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' + + '') + } + launch.setText(text, 'UTF-8') } + } +} - // 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 +tasks.register('verifyEclipseProductionClasspath') { + group = 'verification' + dependsOn tasks.named('syncForge45EclipseLaunches') + 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 45's merged production output: ${name}") } - String replacement = slimLaunch.getText('UTF-8') - if (launchFile.getText('UTF-8') != replacement) { - launchFile.setText(replacement, 'UTF-8') - changedLaunchGroups++ + ['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 -> + 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}") } } - 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)") + 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') + if (!eclipseProvider.isFile() + || !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.119041"')) { + throw new GradleException('Eclipse output contains unresolved or invalid Mineralogy version metadata') + } } } -tasks.configureEach { - if (name in ['copyEclipseResources', 'genEclipseRuns', 'eclipse', - 'prepareRunClient', 'prepareRunServer', 'prepareRunData', 'prepareRunGameTestServer']) { - finalizedBy syncEclipseRunClasspaths - } +tasks.matching { it.name == 'genEclipseRuns' }.configureEach { + finalizedBy tasks.named('syncForge45EclipseLaunches') +} + +tasks.register('isolateEclipseProductionRuns') { + group = 'ide' + dependsOn tasks.named('genEclipseRuns') + dependsOn tasks.named('syncForge45EclipseLaunches') +} + +tasks.matching { it.name == 'eclipse' }.configureEach { + finalizedBy tasks.named('syncForge45EclipseLaunches') +} + +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..e69db45b7 --- /dev/null +++ b/ci-fixtures/tools/README.md @@ -0,0 +1,49 @@ +# ForgeGradle 7 Mavenizer compatibility fixture + +This directory contains a build-only derivative of MinecraftForge's +MinecraftMavenizer `0.5.21`. It is used only while ForgeGradle prepares the +exact Forge `1.19.4-45.4.0` development dependency and is excluded from every +OreSpawn publication artifact. + +## Provenance and licence + +- Upstream: +- Exact source commit: `6968241ce7a0a902cdc1c534b976e8373a423091` +- Upstream version: `0.5.21` +- Licence: LGPL-2.1-only; see `LICENSE-MAVENIZER.txt` +- OreSpawn derivative patch: `minecraft-mavenizer-0.5.21-orespawn-compat.patch` +- Embedded/external rule manifest: `minecraft-source-compatibility.json` + +The patch adds a target-aware compatibility stage before Mavenizer recompiles +decompiled sources. Rules run only for an exact Maven artifact listed in the +manifest. Each rule requires one exact source file, one exact record +declaration and one accessor in that record. Missing, partial, duplicate or +ambiguous states fail preparation. Targets without an explicit rule set are +left unchanged. + +For Forge `1.19.4-45.4.0`, the manifest removes the eight explicit accessors +that duplicate compiler-generated record accessors in `Holder.Direct`, +`OptionInstance` and `MemoryCondition`. The implicit record methods have the +same public contract. A marker beside Mavenizer's output records the target, +manifest SHA-256 and applied rule IDs. Reprocessing already-patched sources is +validated and idempotent. + +The derivative also propagates Gradle offline mode when the build sets +`ORESPAWN_MAVENIZER_OFFLINE=true`. Mavenizer itself runs on Java 25; OreSpawn +and Minecraft 1.19.4 continue to compile for Java 17. + +## Rebuild + +1. Clone the upstream repository and detach at + `6968241ce7a0a902cdc1c534b976e8373a423091`. +2. Apply `minecraft-mavenizer-0.5.21-orespawn-compat.patch` with `git am`. +3. Set `JAVA_HOME` to Temurin Java 25. +4. Run `./gradlew clean build --no-daemon` (or `gradlew.bat` on Windows). +5. Copy `build/libs/minecraft-mavenizer-0.5.21.jar` to + `minecraft-mavenizer-0.5.21-orespawn-compat.jar`. +6. Run OreSpawn's `verifyMavenizerCompatibilityFixture` task. The build script + contains the authoritative checksums and also verifies the embedded + manifest, Java class version and licence/provenance files. + +The sealed derivative was built with Eclipse Temurin `25.0.3+9` and Gradle +`9.1.0` from the upstream wrapper. diff --git a/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar b/ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.jar new file mode 100644 index 0000000000000000000000000000000000000000..cc781cdb8e3f5ff5670a33a1e8aa73aa4cbfc4e1 GIT binary patch literal 2567344 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

$dYpeTpb&Tk$4@v6j4qVS)I)yT! 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


%Lay6uj=d=}8F+3~69J#TBo|dmr_wv>d6`ARD#8 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�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

fy8fV{YI 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

cv)AlF4$zB>E3$I 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 z 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

~3V&k_cN~3nGMRd|@@bl*LhMqBKn|#Qd1dqqC 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

lZSiiA+!6#F^rdWx@pTULRy!_EY33t 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

)jRcx5c#ryhy! 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 z�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%0AWCxOyS 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:z2fd7cHR!cemXUDmNT*EB6X!ZB*=PkSE93UanN^ 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�_?-IHQNR=&%Bt71;!QzR{vc24^ zlk12Q0w<)`WJe7YTh&amg07yLUV&pAuJ`?FZZZK~bA)m0Tqd4#>w^!yQ(Au}jz#Gv|lR{pz5 zqk~_1No3vS|8S0Iv|?mu^^cvD^i{_^YdJF0&$eCKVB1nTF?YO=>IyC|ey2u%m!-pY z5_U>s2Bs~jMm%GGIm%?9!rKq_<<;R%x0CurN-}1S)TvM<`GhYt=8wpqgw~AeAhPnw zf>QnLSU%yUd|YWvUl{OnBLDkoGFJKpPNyz2+VB}gI48-wJc%?>nQW)@SmBB#hcZny z15yVa1yQPIVtehrkPX4OCb~X$?IFSz2Z=8p=Ky#0H{lNNb=4LV6MSTM8#5{Odw;i5 zhF5D9l7&i+O*L8{MTyW^pt!_HECFUj6z{B?=p4+A3BPcJDBs_trj`Zn5q){2^~`8o z)a1tl;4(FIbkl(^_TC>MMfZK6Y5yWKM|sCr_1Zxylg}wvbmx11Ol$Xg_Kw~y^~bF6 zrWpNdj!&sHHs$Ob%h=2P-p5b3#UHgfHJ-%QJBiSyP88?VMwe{+ z0zY{`4M#I4iyUVU7%%BMN+fOeh`R<)md{_+<%~d^jXb?fpPjy_9eTSPl|JOr$t$jp zt8zzfHFqQW;$t`7D`jV9QoqgK=_*#8ao>6K7~agW<%LP1fj8-xGZ=h+>+Lb$d?)ff zp$Cecw9&{Dxsv!#tYGsEcI7SaD6hj3Y_oL8QFw=ZD4wN$qHWnd^?GU2p{60$sVXf8 zivKS4E(?#Q_&FBdy+JUJL9la|Xe`0C zMjl$Tyz9nn64cKYT@5@O{)tS`e?K_}e8`MZeeb&|EKtIqOceX6i|Bna35dIbyf{o#r*GaOaAfb&+w}4T|n<57cY65z6Z3_mOP5I$k?iAbve4 zzg6wyqmHb&6Rsxvi5e|@j`dH!$2D7?C^N`ar|PnB{Amr*s%a>CtVDJz3aW0xx%y#M{WE@uF+nvS)Rh`Xhr3=|{1uEco3Z%i>ja|_UDS7M=Un{Zt;mcK<1dtf z70<9&9n#~w>qj1Ijg@%4VqPn5lK;3f-p7zO{Je~e{xkVrof-E6czq~OY)k5`o6DQ$ zDs)jYG6^pf^eLQM&m6Zxm@T8>rV3 zi1R%bHWn(H(wQQT!ZA}<95g?pT303SGdUMK;)#geOrJrCoYVb%|CjAvt(%wlH-T2F z_Y3dyr>|AX)0?&}eVJucT|PdbWUtxS9l|-YiIwZA2;0;sN9pCC%ZrR|FGa<7atDuf zM5*3CxqZ=rVrVA>*r!rDiFyH$n$Ii_VE|ED(b#D-tp692PEInt1E@RD68Xb-6-pC%G$#6N{)C-OzwUL@C& z+kJMlJ?8^>EQs?X4}$G-ZpI9}S`fwNYTDeW$pR-G>@gw#%BmO}GXG1T?oWyOrBWuF z+WxOo(XbjVIX36n)B7^`kyh3K9P&i59qG^ei-r4N?u(E*v!j%tuFDJK+_S6Im9GnB zZl8pHe-=$?Ip5pS8Vg)^ehuvikRe|n?uwxkRW=)=6>zf1W=_mVe4NW&{sZf$j?(t~ z@~V#{H#9gyD!DIr9Vx5U|Mp9ny?sfM+n@QyOjf8XSc;JD=hdhq-miX<<086~7YcWT z3=UsyVj{biA+Z#CcI8pBk8LOI+Yu0wm)W-cQSZqAvWHRYjp81NEuV$59q9MOr+?3p z;SaqgbM4;5;zGYnKOKl0vmdyz_aVILGF$A!BAFvV0042o7nI4@hTT?KOS3 ziGQ*~s4g+KnV5G-pnKlocCNnORA0gvJG7+6SDlit(fSHAl@I4RZGcF0YTxmeu_I;? zX}PcC{($eMv~>jy_ugkZcgN(>&p###vR@a6cw4#he+d26K_S`Ur0`^tWqbhV*zQ(ihN&VormHF|EQDddbU#5$12)m-Q!&V<}%0AUXY#oHG&w9G{ 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

    02hT>>rh; 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 =dt^s(^*!zk2Dt0D9cUS8_Fk()s$ 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%0DZp9WY}KA6DjZf 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 Uim*T4VWv!S<{IE+->NJ2 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 w!_XoGI?pP$$w?3Cj +Date: Fri, 28 Aug 2026 15:21:10 +0100 +Subject: [PATCH] Add target-aware source compatibility rules + +--- + build.gradle | 2 +- + .../net/minecraftforge/mcmaven/cli/Main.java | 18 +- + .../minecraftforge/mcmaven/cli/MavenTask.java | 3 + + .../mcmaven/impl/util/ProcessUtils.java | 2 + + .../impl/util/SourceCompatibilityPatcher.java | 241 ++++++++++++++++++ + .../minecraft-source-compatibility.json | 58 +++++ + 6 files changed, 322 insertions(+), 2 deletions(-) + create mode 100644 src/main/java/net/minecraftforge/mcmaven/impl/util/SourceCompatibilityPatcher.java + create mode 100644 src/main/resources/META-INF/orespawn/minecraft-source-compatibility.json + +diff --git a/build.gradle b/build.gradle +index 439c211..9d99d81 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -17,7 +17,7 @@ plugins { + gradleutils.displayName = 'Minecraft Mavenizer' + description = 'A pure-blooded Java tool to generate a maven repository for Minecraft artifacts.' + group = 'net.minecraftforge' +-version = gitversion.tagOffset ++version = '0.5.21' + + println "Version: $version" + +diff --git a/src/main/java/net/minecraftforge/mcmaven/cli/Main.java b/src/main/java/net/minecraftforge/mcmaven/cli/Main.java +index eeda8a0..ad0fe93 100644 +--- a/src/main/java/net/minecraftforge/mcmaven/cli/Main.java ++++ b/src/main/java/net/minecraftforge/mcmaven/cli/Main.java +@@ -12,6 +12,7 @@ import static net.minecraftforge.mcmaven.impl.Mavenizer.LOGGER; + + import java.time.Duration; + import java.util.ArrayList; ++import java.util.Arrays; + + public class Main { + private static final String DISPLAY_NAME = "Minecraft Mavenizer"; +@@ -20,6 +21,8 @@ public class Main { + try { + LOGGER.capture(); + LOGGER.info(JarVersionInfo.of(DISPLAY_NAME, Main.class).implementation()); ++ LOGGER.info("OreSpawn Mavenizer compatibility runtime: Java " + Runtime.version() ++ + " (" + System.getProperty("java.vendor") + ")"); + run(args); + } catch (Throwable e) { + LOGGER.release(); +@@ -36,7 +39,8 @@ public class Main { + LOGGER.getInfo().printf(", took %d:%02d.%03d%n", time.toMinutesPart(), time.toSecondsPart(), time.toMillisPart()); + } + +- private static void run(String[] args) throws Exception { ++ private static void run(String[] suppliedArgs) throws Exception { ++ var args = withOfflinePropagation(suppliedArgs); + var parser = new OptionParser(); + parser.allowsUnrecognizedOptions(); + var tasks = Tasks.values(); +@@ -88,4 +92,16 @@ public class Main { + Tasks.MAVEN.callback.run(args, false); + } + } ++ ++ private static String[] withOfflinePropagation(String[] suppliedArgs) { ++ if (!"true".equalsIgnoreCase(System.getenv("ORESPAWN_MAVENIZER_OFFLINE")) ++ || Arrays.asList(suppliedArgs).contains("--offline")) { ++ return suppliedArgs; ++ } ++ ++ var propagated = Arrays.copyOf(suppliedArgs, suppliedArgs.length + 1); ++ propagated[suppliedArgs.length] = "--offline"; ++ LOGGER.info("OreSpawn Mavenizer compatibility: propagated Gradle offline mode"); ++ return propagated; ++ } + } +diff --git a/src/main/java/net/minecraftforge/mcmaven/cli/MavenTask.java b/src/main/java/net/minecraftforge/mcmaven/cli/MavenTask.java +index 825820e..39bb9b3 100644 +--- a/src/main/java/net/minecraftforge/mcmaven/cli/MavenTask.java ++++ b/src/main/java/net/minecraftforge/mcmaven/cli/MavenTask.java +@@ -21,6 +21,7 @@ import net.minecraftforge.mcmaven.impl.cache.Cache; + import net.minecraftforge.mcmaven.impl.mappings.Mappings; + import net.minecraftforge.mcmaven.impl.util.Artifact; + import net.minecraftforge.mcmaven.impl.util.Constants; ++import net.minecraftforge.mcmaven.impl.util.SourceCompatibilityPatcher; + + import static net.minecraftforge.mcmaven.impl.Mavenizer.LOGGER; + +@@ -194,6 +195,8 @@ class MavenTask { + if (artifact.getVersion() == null) + artifact = artifact.withVersion(options.valueOf(versionO)); + ++ SourceCompatibilityPatcher.selectTarget(artifact); ++ + var mappings = getMappings(options, mappingsO, parchmentO); + + var foreignRepositories = new HashMap(); +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..d8c14fd 100644 +--- a/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java ++++ b/src/main/java/net/minecraftforge/mcmaven/impl/util/ProcessUtils.java +@@ -305,6 +305,8 @@ public final class ProcessUtils { + throw new RuntimeException("Failed to extract source jar: " + sourcesJar.getAbsolutePath(), e); + } + ++ SourceCompatibilityPatcher.apply(sourcesOutput.toPath(), outputJar.toPath()); ++ + // track source files + var sourcePath = new StringBuilder(); + var nonSourceFiles = new ArrayList(); +diff --git a/src/main/java/net/minecraftforge/mcmaven/impl/util/SourceCompatibilityPatcher.java b/src/main/java/net/minecraftforge/mcmaven/impl/util/SourceCompatibilityPatcher.java +new file mode 100644 +index 0000000..2cb07e0 +--- /dev/null ++++ b/src/main/java/net/minecraftforge/mcmaven/impl/util/SourceCompatibilityPatcher.java +@@ -0,0 +1,241 @@ ++/* ++ * Copyright (c) Forge Development LLC and contributors ++ * SPDX-License-Identifier: LGPL-2.1-only ++ */ ++package net.minecraftforge.mcmaven.impl.util; ++ ++import com.google.gson.Gson; ++import java.io.IOException; ++import java.io.InputStream; ++import java.nio.charset.StandardCharsets; ++import java.nio.file.Files; ++import java.nio.file.Path; ++import java.nio.file.StandardCopyOption; ++import java.security.MessageDigest; ++import java.security.NoSuchAlgorithmException; ++import java.util.HashSet; ++import java.util.LinkedHashMap; ++import java.util.List; ++import java.util.Map; ++import java.util.Objects; ++import java.util.stream.Collectors; ++ ++import static net.minecraftforge.mcmaven.impl.Mavenizer.LOGGER; ++ ++/** Applies exact, target-scoped source compatibility rules before recompilation. */ ++public final class SourceCompatibilityPatcher { ++ public static final String MANIFEST_RESOURCE = "META-INF/orespawn/minecraft-source-compatibility.json"; ++ private static final Gson GSON = new Gson(); ++ private static volatile String selectedArtifact; ++ ++ private SourceCompatibilityPatcher() {} ++ ++ public static void selectTarget(Artifact artifact) { ++ selectedArtifact = artifact.getDescriptor(); ++ } ++ ++ public static void apply(Path sourceRoot, Path outputJar) { ++ var artifact = selectedArtifact; ++ if (artifact == null) ++ throw new IllegalStateException("No Mavenizer target artifact was selected before source recompilation"); ++ ++ var manifestBytes = readManifest(); ++ var manifestHash = sha256(manifestBytes); ++ var manifest = GSON.fromJson(new String(manifestBytes, StandardCharsets.UTF_8), RuleManifest.class); ++ if (manifest == null || manifest.schema != 1 || manifest.targets == null) ++ throw new IllegalStateException("Unsupported or incomplete OreSpawn Mavenizer compatibility manifest"); ++ ++ var target = manifest.targets.get(artifact); ++ if (target == null) { ++ LOGGER.info("OreSpawn Mavenizer compatibility: no rules for " + artifact); ++ return; ++ } ++ ++ validateTarget(target); ++ var sourceByFile = new LinkedHashMap(); ++ var present = 0; ++ var absent = 0; ++ for (var rule : target.rules) { ++ var file = sourceRoot.resolve(rule.file).normalize(); ++ if (!file.startsWith(sourceRoot.normalize())) ++ throw new IllegalStateException("Compatibility rule escapes source root: " + rule.id); ++ if (!Files.isRegularFile(file)) ++ throw new IllegalStateException("Compatibility source file is missing for " + rule.id + ": " + rule.file); ++ ++ var source = sourceByFile.computeIfAbsent(file, ++ ignored -> readUtf8(file).replace("\r\n", "\n")); ++ requireCount(source, rule.recordDeclaration, 1, "record declaration", rule); ++ var accessorCount = countInRecord(source, rule); ++ if (accessorCount == 1) ++ present++; ++ else if (accessorCount == 0) ++ absent++; ++ else ++ throw new IllegalStateException("Ambiguous accessor match for " + rule.id + ": expected at most 1, found " + accessorCount); ++ } ++ ++ if (present != 0 && absent != 0) ++ throw new IllegalStateException("Partial compatibility state for " + artifact + ": " + present + " present, " + absent + " absent"); ++ ++ if (present == target.expectedApplications) { ++ for (var rule : target.rules) { ++ var file = sourceRoot.resolve(rule.file).normalize(); ++ var patched = replaceInRecord(sourceByFile.get(file), rule); ++ sourceByFile.put(file, patched); ++ } ++ sourceByFile.forEach(SourceCompatibilityPatcher::writeUtf8); ++ writeMarker(outputJar, artifact, manifestHash, target.rules); ++ LOGGER.info("OreSpawn Mavenizer compatibility: applied " + present + " rule(s) for " + artifact ++ + " [" + ruleIds(target.rules) + "] manifest SHA-256 " + manifestHash); ++ } else if (absent == target.expectedApplications) { ++ writeMarker(outputJar, artifact, manifestHash, target.rules); ++ LOGGER.info("OreSpawn Mavenizer compatibility: verified " + absent + " rule(s) already applied for " + artifact ++ + " [" + ruleIds(target.rules) + "] manifest SHA-256 " + manifestHash); ++ } else { ++ throw new IllegalStateException("Compatibility manifest expected " + target.expectedApplications ++ + " applications for " + artifact + " but defines " + target.rules.size()); ++ } ++ } ++ ++ private static void validateTarget(TargetRuleSet target) { ++ if (target.expectedApplications <= 0 || target.rules == null ++ || target.rules.size() != target.expectedApplications) { ++ throw new IllegalStateException("Compatibility target has an invalid expected application count"); ++ } ++ var ids = new HashSet(); ++ for (var rule : target.rules) { ++ Objects.requireNonNull(rule.id, "Compatibility rule id"); ++ Objects.requireNonNull(rule.file, "Compatibility rule file"); ++ Objects.requireNonNull(rule.recordDeclaration, "Compatibility record declaration"); ++ Objects.requireNonNull(rule.accessor, "Compatibility accessor"); ++ if (!ids.add(rule.id)) ++ throw new IllegalStateException("Duplicate compatibility rule id: " + rule.id); ++ } ++ } ++ ++ private static byte[] readManifest() { ++ try (InputStream in = SourceCompatibilityPatcher.class.getClassLoader().getResourceAsStream(MANIFEST_RESOURCE)) { ++ if (in == null) ++ throw new IllegalStateException("Missing embedded compatibility manifest: " + MANIFEST_RESOURCE); ++ return in.readAllBytes(); ++ } catch (IOException e) { ++ throw new IllegalStateException("Could not read embedded compatibility manifest", e); ++ } ++ } ++ ++ private static String readUtf8(Path file) { ++ try { ++ return Files.readString(file, StandardCharsets.UTF_8); ++ } catch (IOException e) { ++ throw new IllegalStateException("Could not read compatibility source " + file, e); ++ } ++ } ++ ++ private static void writeUtf8(Path file, String content) { ++ try { ++ Files.writeString(file, content, StandardCharsets.UTF_8); ++ } catch (IOException e) { ++ throw new IllegalStateException("Could not write compatibility source " + file, e); ++ } ++ } ++ ++ private static void writeMarker(Path outputJar, String artifact, String manifestHash, List rules) { ++ var marker = Path.of(outputJar.toString() + ".orespawn-compatibility"); ++ var temp = Path.of(marker.toString() + ".tmp"); ++ var content = "artifact=" + artifact + "\nmanifestSha256=" + manifestHash + "\nrules=" + ruleIds(rules) + "\n"; ++ try { ++ Files.writeString(temp, content, StandardCharsets.UTF_8); ++ try { ++ Files.move(temp, marker, StandardCopyOption.ATOMIC_MOVE, StandardCopyOption.REPLACE_EXISTING); ++ } catch (java.nio.file.AtomicMoveNotSupportedException ignored) { ++ Files.move(temp, marker, StandardCopyOption.REPLACE_EXISTING); ++ } ++ } catch (IOException e) { ++ throw new IllegalStateException("Could not write compatibility marker " + marker, e); ++ } ++ } ++ ++ private static String ruleIds(List rules) { ++ return rules.stream().map(rule -> rule.id).collect(Collectors.joining(",")); ++ } ++ ++ private static void requireCount(String source, String needle, int expected, String description, Rule rule) { ++ var actual = count(source, needle); ++ if (actual != expected) ++ throw new IllegalStateException("Invalid " + description + " match for " + rule.id ++ + ": expected " + expected + ", found " + actual); ++ } ++ ++ private static int count(String source, String needle) { ++ var count = 0; ++ var from = 0; ++ while ((from = source.indexOf(needle, from)) >= 0) { ++ count++; ++ from += needle.length(); ++ } ++ return count; ++ } ++ ++ private static int countInRecord(String source, Rule rule) { ++ var bounds = recordBounds(source, rule); ++ return count(source.substring(bounds[0], bounds[1]), rule.accessor); ++ } ++ ++ private static String replaceInRecord(String source, Rule rule) { ++ var bounds = recordBounds(source, rule); ++ var body = source.substring(bounds[0], bounds[1]); ++ var count = count(body, rule.accessor); ++ if (count != 1) ++ throw new IllegalStateException("Accessor state changed while applying " + rule.id ++ + ": expected 1, found " + count); ++ var patchedBody = body.replace(rule.accessor, ""); ++ if (count(patchedBody, rule.accessor) != 0) ++ throw new IllegalStateException("Accessor remained after applying " + rule.id); ++ return source.substring(0, bounds[0]) + patchedBody + source.substring(bounds[1]); ++ } ++ ++ private static int[] recordBounds(String source, Rule rule) { ++ var declaration = source.indexOf(rule.recordDeclaration); ++ var open = source.indexOf('{', declaration + rule.recordDeclaration.length()); ++ if (declaration < 0 || open < 0) ++ throw new IllegalStateException("Could not locate record body for " + rule.id); ++ var depth = 0; ++ for (var index = open; index < source.length(); index++) { ++ var character = source.charAt(index); ++ if (character == '{') ++ depth++; ++ else if (character == '}' && --depth == 0) ++ return new int[] {open, index + 1}; ++ } ++ throw new IllegalStateException("Unterminated record body for " + rule.id); ++ } ++ ++ private static String sha256(byte[] bytes) { ++ try { ++ var digest = MessageDigest.getInstance("SHA-256").digest(bytes); ++ var result = new StringBuilder(digest.length * 2); ++ for (byte value : digest) ++ result.append(String.format("%02X", value)); ++ return result.toString(); ++ } catch (NoSuchAlgorithmException e) { ++ throw new IllegalStateException("SHA-256 is unavailable", e); ++ } ++ } ++ ++ private static final class RuleManifest { ++ int schema; ++ Map targets; ++ } ++ ++ private static final class TargetRuleSet { ++ int expectedApplications; ++ List rules; ++ } ++ ++ private static final class Rule { ++ String id; ++ String file; ++ String recordDeclaration; ++ String accessor; ++ } ++} +diff --git a/src/main/resources/META-INF/orespawn/minecraft-source-compatibility.json b/src/main/resources/META-INF/orespawn/minecraft-source-compatibility.json +new file mode 100644 +index 0000000..462d571 +--- /dev/null ++++ b/src/main/resources/META-INF/orespawn/minecraft-source-compatibility.json +@@ -0,0 +1,58 @@ ++{ ++ "schema": 1, ++ "targets": { ++ "net.minecraftforge:forge:1.19.4-45.4.0": { ++ "expectedApplications": 8, ++ "rules": [ ++ { ++ "id": "forge-1.19.4-holder-direct-value", ++ "file": "net/minecraft/core/Holder.java", ++ "recordDeclaration": "public static record Direct(T value) implements Holder", ++ "accessor": "\n public T value() {\n return this.value;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-option-alt-enum-value-setter", ++ "file": "net/minecraft/client/OptionInstance.java", ++ "recordDeclaration": "public static record AltEnum(List values, List altValues, BooleanSupplier altCondition, OptionInstance.CycleableValueSet.ValueSetter valueSetter, Codec codec)", ++ "accessor": "\n public OptionInstance.CycleableValueSet.ValueSetter valueSetter() {\n return this.valueSetter;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-option-alt-enum-codec", ++ "file": "net/minecraft/client/OptionInstance.java", ++ "recordDeclaration": "public static record AltEnum(List values, List altValues, BooleanSupplier altCondition, OptionInstance.CycleableValueSet.ValueSetter valueSetter, Codec codec)", ++ "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-option-enum-codec", ++ "file": "net/minecraft/client/OptionInstance.java", ++ "recordDeclaration": "public static record Enum(List values, Codec codec)", ++ "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-option-lazy-enum-codec", ++ "file": "net/minecraft/client/OptionInstance.java", ++ "recordDeclaration": "public static record LazyEnum(Supplier> values, Function> validateValue, Codec codec)", ++ "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-memory-absent-memory", ++ "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", ++ "recordDeclaration": "public static record Absent(MemoryModuleType memory)", ++ "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-memory-present-memory", ++ "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", ++ "recordDeclaration": "public static record Present(MemoryModuleType memory)", ++ "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" ++ }, ++ { ++ "id": "forge-1.19.4-memory-registered-memory", ++ "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", ++ "recordDeclaration": "public static record Registered(MemoryModuleType memory)", ++ "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" ++ } ++ ] ++ } ++ } ++} +-- +2.55.0.windows.3 + diff --git a/ci-fixtures/tools/minecraft-source-compatibility.json b/ci-fixtures/tools/minecraft-source-compatibility.json new file mode 100644 index 000000000..462d5714e --- /dev/null +++ b/ci-fixtures/tools/minecraft-source-compatibility.json @@ -0,0 +1,58 @@ +{ + "schema": 1, + "targets": { + "net.minecraftforge:forge:1.19.4-45.4.0": { + "expectedApplications": 8, + "rules": [ + { + "id": "forge-1.19.4-holder-direct-value", + "file": "net/minecraft/core/Holder.java", + "recordDeclaration": "public static record Direct(T value) implements Holder", + "accessor": "\n public T value() {\n return this.value;\n }\n" + }, + { + "id": "forge-1.19.4-option-alt-enum-value-setter", + "file": "net/minecraft/client/OptionInstance.java", + "recordDeclaration": "public static record AltEnum(List values, List altValues, BooleanSupplier altCondition, OptionInstance.CycleableValueSet.ValueSetter valueSetter, Codec codec)", + "accessor": "\n public OptionInstance.CycleableValueSet.ValueSetter valueSetter() {\n return this.valueSetter;\n }\n" + }, + { + "id": "forge-1.19.4-option-alt-enum-codec", + "file": "net/minecraft/client/OptionInstance.java", + "recordDeclaration": "public static record AltEnum(List values, List altValues, BooleanSupplier altCondition, OptionInstance.CycleableValueSet.ValueSetter valueSetter, Codec codec)", + "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" + }, + { + "id": "forge-1.19.4-option-enum-codec", + "file": "net/minecraft/client/OptionInstance.java", + "recordDeclaration": "public static record Enum(List values, Codec codec)", + "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" + }, + { + "id": "forge-1.19.4-option-lazy-enum-codec", + "file": "net/minecraft/client/OptionInstance.java", + "recordDeclaration": "public static record LazyEnum(Supplier> values, Function> validateValue, Codec codec)", + "accessor": "\n public Codec codec() {\n return this.codec;\n }\n" + }, + { + "id": "forge-1.19.4-memory-absent-memory", + "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", + "recordDeclaration": "public static record Absent(MemoryModuleType memory)", + "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" + }, + { + "id": "forge-1.19.4-memory-present-memory", + "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", + "recordDeclaration": "public static record Present(MemoryModuleType memory)", + "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" + }, + { + "id": "forge-1.19.4-memory-registered-memory", + "file": "net/minecraft/world/entity/ai/behavior/declarative/MemoryCondition.java", + "recordDeclaration": "public static record Registered(MemoryModuleType memory)", + "accessor": "\n public MemoryModuleType memory() {\n return this.memory;\n }\n" + } + ] + } + } +} diff --git a/docs/AGENTS.md b/docs/AGENTS.md deleted file mode 100644 index c53631a92..000000000 --- a/docs/AGENTS.md +++ /dev/null @@ -1,26 +0,0 @@ -# Mineralogy 6 Agent Guide - -Mineralogy is an OreSpawn 4 content provider and first customer. Read -`DEVELOPER_GUIDE.md` and `PROVIDER.md` before changing integrations. - -- Required engine: OreSpawn `[4.0.0,5.0.0)`. -- Provider resource: `data/mineralogy/orespawn/provider.json`, schema 3, - provider revision 3. -- Mineralogy owns block, fluid, and item registration; assets; recipes; loot; - mining and crafting tags; and old-world registry compatibility. -- OreSpawn owns terrain, geomes, formations, ores, fluid-deposit placement, profiles, - world-creation UI, retrogen, flat bedrock, and integration APIs. -- Do not restore old `zone.moddev.mc.mineralogy.api`, geology editor, or worldgen - packages. Make reusable engine changes in OreSpawn. -- Keep the provider declarative. No callbacks, registry access, logging, config - reads, or allocation belong in generation loops. -- Matching vanilla rocks remain preferred worldgen outputs through aliases. - Mineralogy equivalents stay registered for old saves and explicit pack use. -- Mineralogy contributes sulfur, phosphorous, and nitrate ore rules. OreSpawn - owns optional vanilla-ore presets; do not duplicate them here. -- Mineralogy owns and supplies the crude-oil fluid block and the - `mineralogy:fluid_deposit/crude_oil` provider rule. OreSpawn has no standalone - oil block or default fluid rule. - -The complete OreSpawn integration guide is packaged by OreSpawn and exported -to `config/orespawn-guide/` on first load. diff --git a/docs/CONTENT_CONFIG.md b/docs/CONTENT_CONFIG.md index fdb82e8cb..cbcf005eb 100644 --- a/docs/CONTENT_CONFIG.md +++ b/docs/CONTENT_CONFIG.md @@ -1,37 +1,108 @@ # Mineralogy Content Configuration -Mineralogy writes `config/mineralogy-common.toml`. These settings control -registered content, recipes, drops, and old-world handling. They do not control -terrain or ore placement; use OreSpawn for worldgen. +Mineralogy writes content options to `config/mineralogy-common.toml`. Changes require +a restart. OreSpawn owns terrain, rock, ore, and fluid-deposit placement; its +world settings are separate from these content and recipe switches. -Changes require a restart. Disabling a family may remove its recipes or -registration from the next launch, so do not disable content already present -in a world unless you understand the missing-registry consequences. +To add modded terrain blocks that Mineralogy rock may replace, do not add a +Mineralogy option. Configure OreSpawn's `terrain_dimensions` host list as +described under **Choosing Which Terrain Blocks Mineralogy Replaces** in the +[Player Guide](PLAYER_GUIDE.md). -## General Options +## General options | Key | Default | Purpose | | --- | --- | --- | -| `patch_world` | `true` | Allow compatibility patching for older Mineralogy worlds. | -| `SMELTABLE_GRAVEL` | `true` | Allow gravel to smelt into generic stone. | -| `DROP_COBBLESTONE` | `false` | Make ordinary rock blocks also drop cobblestone. | -| `COBBLESTONE_EQUIVILENT` | `true` | Treat rocks as cobblestone equivalents where supported. The historical misspelling is the real config key. | -| `GROUP_TABS_BY_TYPE` | `false` | Split creative inventory entries by item type where supported. | - -## Generated Content Flags - -All of these default to `true`: - -- `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` - -The names use `GENERATE` for historical compatibility even though these flags -mostly control content registration and recipes, not chunk generation. +| `patch_world` | `true` | Preserve compatibility placeholders for older Mineralogy worlds. | +| `SMELTABLE_GRAVEL` | `true` | Allow gravel to be smelted into generic stone. | +| `DROP_COBBLESTONE` | `false` | Make an ordinary raw rock drop one vanilla cobblestone instead of itself. | +| `COBBLESTONE_EQUIVILENT` | `true` | Treat raw rocks as cobblestone in compatible recipes. The misspelling is the real historical key. | +| `GROUP_TABS_BY_TYPE` | `false` | Split creative inventory entries into Rocks, Stairs, Slabs, Walls, and Items tabs. | + +`GROUP_TABS_BY_TYPE` changes only creative organization. It never changes +registration, recipes, drops, or world generation. With the default `false`, +Mineralogy retains its single searchable tab and existing vanilla-tab +placements such as mineral fertilizer under Materials. With `true`, reliefs, +furnaces, lamps, drywall, storage blocks, dusts, fertilizer, and the crude-oil +bucket use Mineralogy Items. + +## Compatibility-safe content switches + +These four keys default to `true`: + +| Key | What `false` does | +| --- | --- | +| `ENABLE_DRYWALLS` | Hides all 16 drywalls and omits their base and dye recipes. | +| `ENABLE_ROCK_SALT_LAMPS` | Hides both rock salt lights and omits their recipes. | +| `ENABLE_MINERAL_DUSTS` | Hides sulfur, phosphorous, and nitrate dusts plus their storage blocks; omits storage conversions and Mineralogy's gunpowder recipes. | +| `ENABLE_MINERAL_FERTILIZER` | Hides mineral fertilizer and omits its recipe. | + +These switches never unregister content. Existing blocks, inventory stacks, +drops, Forge tag entries, and integrations remain valid. The dust and +fertilizer switches are independent, so enabled fertilizer may use dusts from +existing ore, OreSpawn-generated ore, or another mod. + +Every Mineralogy gunpowder route requires three components: nitrate dust, +sulfur dust, and one of sugar, charcoal, `forge:dusts/carbon`, or +`forge:dusts/coal`. The two compatibility-tag recipes are loaded only when +another installed mod supplies the corresponding nonempty tag; an absent +optional dust never reduces the recipe to nitrate plus sulfur. + +A clean installation writes these keys. Mineralogy deliberately does not save +an existing `mineralogy-common.toml`, so missing keys retain their documented defaults. +To change them in an older file, add entries to its existing `options` block: + +```toml +[options] +COBBLESTONE_EQUIVILENT = false +ENABLE_DRYWALLS = false +ENABLE_MINERAL_DUSTS = false +ENABLE_MINERAL_FERTILIZER = false +ENABLE_ROCK_SALT_LAMPS = false +GROUP_TABS_BY_TYPE = true +``` + +## Rock recipe compatibility + +With `COBBLESTONE_EQUIVILENT=true`, all 27 raw Mineralogy rock families, +including rock salt, participate in Forge `cobblestone` tag recipes such +as levers, pistons, dispensers, droppers, and brewing stands. Setting it to +`false` removes ordinary rocks from the sixteen covered cobblestone, stone-tool, +and stone-crafting recipes while restoring their target-native ingredients. +Rocks remain `stone`, retain their material-specific tags, and use exact +Mineralogy slab, stair, and wall recipes. Chert and pumice remain historical +unconditional cobblestone equivalents and therefore keep those recipe roles. + +The configurable cobblestone identity does not affect the exact 1:1 conversion +between Mineralogy and vanilla andesite, diorite, granite, and matching polished +slabs. These reversible recipes preserve modpack compatibility with recipes that +require either registry identity. + +## Disabling Mineralogy ores + +Mineralogy does not provide a second ore-generation switch. In OreSpawn's +world settings, open **Rocks & Ores...**, select **Ores**, and disable these +rules: + +- `mineralogy:ore/mineralogy/sulfur_ore` +- `mineralogy:ore/mineralogy/phosphorous_ore` +- `mineralogy:ore/mineralogy/nitrate_ore` + +Disabling a rule affects newly generated chunks; it does not remove existing +ore. If mineral dust recipes are disabled but these rules remain enabled, the +new ore retains its historical dust drops. + +## Historical generated-content flags + +The following historical keys default to `true`: `GENERATE_RELIEFS`, +`GENERATE_ROCKSTAIRS`, `GENERATE_ROCKSLAB`, `GENERATE_ROCKWALL`, +`GENERATE_ROCKFURNACE`, `GENERATE_BRICK`, `GENERATE_BRICKSTAIRS`, +`GENERATE_BRICKSLAB`, `GENERATE_BRICKWALL`, `GENERATE_BRICKFURNACE`, +`GENERATE_SMOOTH`, `GENERATE_SMOOTHSTAIRS`, `GENERATE_SMOOTHSLAB`, +`GENERATE_SMOOTHWALL`, `GENERATE_SMOOTHFURNACE`, `GENERATE_SMOOTHBRICK`, +`GENERATE_SMOOTHBRICKSTAIRS`, `GENERATE_SMOOTHBRICKSLAB`, +`GENERATE_SMOOTHBRICKWALL`, and `GENERATE_SMOOTHBRICKFURNACE`. + +Despite their names, these control construction-content registration and +recipes rather than chunk generation. Disabling them can make existing content +unavailable on the next start; back up a world before changing them. diff --git a/docs/DEVELOPER_GUIDE.md b/docs/DEVELOPER_GUIDE.md index 7bb0497cf..b75dcac4e 100644 --- a/docs/DEVELOPER_GUIDE.md +++ b/docs/DEVELOPER_GUIDE.md @@ -4,70 +4,157 @@ | Mineralogy owns | OreSpawn owns | | --- | --- | -| Blocks, items, fluids, block entities | Terrain replacement and formations | -| Models, textures, language, recipes, loot | Geomes and biome influences | -| Mining, family, and crafting tags | Ore and fluid-deposit placement | -| Registry aliases and old-save compatibility | Profiles, UI, retrogen, templates | -| Mineralogy's provider declaration | Public worldgen API and provider loader | +| Blocks, items, fluids, and tile entities | Terrain replacement and formations | +| Models, textures, language, recipes, and drops | Geomes and biome influences | +| Forge tag identities and old-save compatibility | Ore and fluid-deposit placement | +| Mineralogy's provider declaration and migration | Profiles, UI, retrogen, and templates | -Mineralogy has a mandatory runtime dependency on OreSpawn `[4.0.0,5.0.0)`. -Do not build integrations against Mineralogy internals. Use -`zone.moddev.mc.orespawn.api` or an OreSpawn provider file. +Mineralogy requires OreSpawn `[4.0.6,5.0.0)`. Reusable worldgen integrations +belong in `zone.moddev.mc.orespawn.api` or an OreSpawn provider rather than +Mineralogy internals. ## Packaged Provider -`src/main/resources/data/mineralogy/orespawn/provider.json` is schema 3, -provider revision 3. It currently declares 32 rock rules and three ore rules: -sulfur, phosphorous, and nitrate. Profile defaults add stable Sky formations, -Overworld stone/deepslate hosts, matching-vanilla aliases, and Mineralogy crude -oil as the provider-owned `mineralogy:fluid_deposit/crude_oil` rule. +The schema-4, revision-3 provider is at: -OreSpawn owns the optional vanilla ore presets. They must not be duplicated in -Mineralogy's declaration. - -When changing the declaration: - -1. Keep provider-owned IDs stable. -2. Increase `provider_revision` when adding provider IDs or defaults that - existing worlds should discover. -3. Preserve user-edited world profiles; OreSpawn merges only new provider IDs. -4. Run the provider test and an integrated worldgen smoke. - -Pack authors may place an authoritative override at -`config/mineralogy-orespawn.json`. If that present file is malformed, OreSpawn -rejects the provider rather than silently using the bundled declaration. - -## Useful Tags - -- `mineralogy:rocks` and `mineralogy:standard_rocks` exist as block and item - tags. -- `mineralogy:rocks/sedimentary`, `mineralogy:rocks/metamorphic`, and - `mineralogy:rocks/igneous` expose the broad taxonomy. -- `mineralogy:crafting_materials/` 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.19'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 45 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 45'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.19 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.19.4, 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.19.4 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.19.4'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 45 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 `119041` +for Minecraft 1.19.4 Forge and does not append CI build numbers. diff --git a/docs/PLAYER_GUIDE.md b/docs/PLAYER_GUIDE.md index 5e012c49b..1b18ae9f4 100644 --- a/docs/PLAYER_GUIDE.md +++ b/docs/PLAYER_GUIDE.md @@ -1,49 +1,219 @@ -# Player Guide +# Mineralogy Player Guide ## Installing -Mineralogy 6.0.0 needs OreSpawn 4.0.1 or a later compatible 4.x build for -Minecraft 1.19.4. Install both mods on clients and servers. A world that -contains Mineralogy blocks should not be opened without Mineralogy. +Mineralogy 6 needs Minecraft 1.19.4, Forge 45.4.0, and OreSpawn +4.0.16.119041. +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.19.4 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.19.4 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.19.4 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.19.4 these resolve through target-native block tags. Exact +`host_blocks` entries are the clearest choice for one +modded stone. + +Minecraft 1.19.4 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.19.4 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.19.4 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..0eee0fc3b 100644 --- a/docs/PROVIDER.md +++ b/docs/PROVIDER.md @@ -1,46 +1,117 @@ # 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.19.4 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`, sedimentary hosts, all nine explicit vanilla Ocean biome + IDs, and the `OCEAN` biome-dictionary filter. Keeping both selectors lets the + rule cover vanilla oceans precisely while remaining compatible with modded + biomes that advertise the established Ocean classification. -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.19.4 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.19.4 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.19.4, 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..db6246326 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.19.4 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..f5eb6b12e --- /dev/null +++ b/docs/VERSIONS.md @@ -0,0 +1,179 @@ +# 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.19.4 Forge release is therefore: + +```text +6.1.0.119041 +``` + +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.119041`, not `1.19.4-6.1.0.119041`. 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.19.4 | Forge | `119041` | `6.1.0.119041` | +| 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.19.4 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.119041 -> 6.2.0.119041 +6.2.4.119041 -> 7.0.0.119041 +``` + +## 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 1.19.4 / Forge / Mineralogy 6.1.0.119041 +``` + +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.19.4 Forge release used for +this candidate is `4.0.16.119041`. 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.119041`. + +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 742148313..9c2140d87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,60 +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.119041 +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.19.4 -# 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.19.4,1.20) -# The Forge version must agree with the Minecraft version to get a valid artifact -forge_version=45.4.0 -orespawn_version=4.0.1 -orespawn_file_id=8525107 -# The Forge version range can use any version of Forge as bounds or match the loader version range -forge_version_range=[45,) -# The loader version range can only use the major version of Forge/FML as bounds -loader_version_range=[45,) -# 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.19.4 +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.19.4 +forge_version=45.4.0 +mcp_mappings_channel=official +mcp_mappings_version=1.19.4 +mcp_version=20230314.122934 -## 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.16.119041 +orespawn_curse_project_id=245586 +orespawn_curse_file_id=8780970 +orespawn_sha256=C35F60B6FE2BC9782558CAE374C85C4713038AA58BAE7D281969F80468C21E35 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..aeda0189f --- /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.19.4 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..1211bb5dd --- /dev/null +++ b/scripts/generate-recipes.ps1 @@ -0,0 +1,1226 @@ +[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.19.4. 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.19 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.19.4 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 CraftingCategoryForResult([string] $result) { + $path = ($result -split ':', 2)[1] + if ($result -in @( + 'minecraft:gunpowder', + 'mineralogy:fertilizer', + 'mineralogy:crude_oil_bucket', + 'mineralogy:sulfur', + 'mineralogy:phosphorous', + 'mineralogy:nitrate' + ) -or $path.EndsWith('_furnace')) { + return 'misc' + } + return 'building' +} + +function VanillaCraftingCategoryForResult([string] $result) { + if ($result -in @( + 'minecraft:stone_axe', + 'minecraft:stone_hoe', + 'minecraft:stone_pickaxe', + 'minecraft:stone_shovel', + 'minecraft:stone_sword' + )) { + return 'equipment' + } + if ($result -in @( + 'minecraft:dispenser', + 'minecraft:dropper', + 'minecraft:lever', + 'minecraft:observer', + 'minecraft:piston' + )) { + return 'redstone' + } + if ($result -in @('minecraft:brewing_stand', 'minecraft:furnace')) { + return 'misc' + } + return 'building' +} + +function VanillaShapedRecipe( + [string[]] $pattern, + [System.Collections.IDictionary] $key, + [string] $result, + [int] $count = 1 +) { + return [ordered]@{ + type = 'minecraft:crafting_shaped' + category = VanillaCraftingCategoryForResult $result + pattern = $pattern + key = $key + result = VanillaResult $result $count + show_notification = $true + } +} + +function VanillaShapelessRecipe( + [object[]] $ingredients, + [string] $result, + [int] $count = 1, + [string] $group = '' +) { + $recipe = [ordered]@{ + type = 'minecraft:crafting_shapeless' + category = VanillaCraftingCategoryForResult $result + 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 + category = CraftingCategoryForResult $result + pattern = $pattern + key = $key + result = RecipeResult $result $count + show_notification = $true + }) +} + +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 + category = CraftingCategoryForResult $result + 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) + $orderedRecipe = [ordered]@{ + type = [string]$recipe.type + category = 'blocks' + } + foreach ($property in $recipe.PSObject.Properties) { + if ($property.Name -notin @('type', 'category')) { + $orderedRecipe[$property.Name] = $property.Value + } + } + Write-Json $file.FullName $orderedRecipe + } + 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' + category = 'building' + 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 6b7e99807..4adcdfccc 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(ICondition.IContext context) { 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(ICondition.IContext context) { 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 f88f093ae..c064d1efa 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/DoubleSlab.java @@ -9,20 +9,30 @@ 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 implements NamedMineralogyBlock { private final Block drops; + private final Block fullBlock; private final int toolHardnessLevel; private final String registryPath; 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.registryPath = name; } @@ -38,6 +48,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 447da852f..5c949afef 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; @@ -47,13 +47,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 3b3fb5a16..d9a71df1f 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java +++ b/src/main/java/zone/moddev/mc/mineralogy/blocks/RockSaltLamp.java @@ -97,11 +97,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/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..8fe28952b --- /dev/null +++ b/src/main/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicy.java @@ -0,0 +1,119 @@ +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.core.registries.Registries; +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 45 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.getRegistryAccess()); + } + } + + static void apply(RegistryAccess access) { + Registry blockRegistry = access.registryOrThrow(Registries.BLOCK); + Registry itemRegistry = access.registryOrThrow(Registries.ITEM); + Set> configuredBlocks = rawRockHolders(blockRegistry, Registries.BLOCK); + Set> configuredItems = rawRockHolders(itemRegistry, Registries.ITEM); + boolean enabled = MineralogyConfig.makeRockCobblestoneEquivilent(); + + Map, List>> blockTags = snapshot(blockRegistry); + updateTag(blockTags, blockRegistry, Registries.BLOCK, COBBLESTONE, + configuredBlocks, enabled, "chert", "pumice"); + blockRegistry.bindTags(blockTags); + + Map, List>> itemTags = snapshot(itemRegistry); + updateTag(itemTags, itemRegistry, Registries.ITEM, COBBLESTONE, + configuredItems, enabled, "chert", "pumice"); + updateTag(itemTags, itemRegistry, Registries.ITEM, STONE_CRAFTING_MATERIALS, + configuredItems, enabled, "chert", "pumice"); + updateTag(itemTags, itemRegistry, Registries.ITEM, STONE_TOOL_MATERIALS, + configuredItems, enabled, "chert", "pumice"); + itemRegistry.bindTags(itemTags); + + Ingredient.invalidateAll(); + Mineralogy.LOGGER.debug("Applied Forge 45 cobblestone policy: enabled={}, rocks={}, " + + "forgeItems={}, craftingItems={}, toolItems={}", enabled, configuredItems.size(), + size(itemRegistry, Registries.ITEM, COBBLESTONE), + size(itemRegistry, Registries.ITEM, STONE_CRAFTING_MATERIALS), + size(itemRegistry, Registries.ITEM, 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 2d375e70f..6eb3c6ac1 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/data/Material.java +++ b/src/main/java/zone/moddev/mc/mineralogy/data/Material.java @@ -1,6 +1,5 @@ package zone.moddev.mc.mineralogy.data; -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; @@ -11,7 +10,6 @@ public class Material { public String materialName; - public RockType rockType; public double hardness; public double blastResistance; public int toolHardnessLevel; @@ -23,9 +21,6 @@ public class Material { * @param materialName * Name of the block (should start with capital letter) * - * @param rockType - * 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 @@ -37,17 +32,16 @@ public class Material { * @param cobbleEquivilent * is material equivalent to cobblestone */ - public Material(String materialName, RockType rockType, + 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, + 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; @@ -55,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 2ba01b99b..c12393ff6 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/Blocks.java @@ -8,7 +8,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; @@ -253,10 +252,10 @@ public static void registerBlocks(RegisterEvent event) { IForgeRegistry registry = event.getForgeRegistry(); for (zone.moddev.mc.mineralogy.data.Material material : MaterialData.toArray()) { - registerMaterialFamily(registry, material, material.toRock(false, false), true); + registerMaterialFamily(registry, material, material.toRock(false, false)); } - registerMaterialFamily(registry, MaterialData.ROCK_SALT, new RockSalt(), true); + registerMaterialFamily(registry, MaterialData.ROCK_SALT, new RockSalt()); registerSpecialGeologyBlocks(registry); registerDryWalls(registry); @@ -285,11 +284,6 @@ private static void registerSpecialGeologyBlocks(IForgeRegistry registry) registerAll(registry, 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(IForgeRegistry registry) { @@ -299,14 +293,11 @@ private static void registerDryWalls(IForgeRegistry registry) { } private static void registerMaterialFamily(IForgeRegistry registry, - zone.moddev.mc.mineralogy.data.Material material, Rock baseRock, boolean addToGeology) { + zone.moddev.mc.mineralogy.data.Material material, Rock baseRock) { register(registry, baseRock); - if (addToGeology) { - addStoneType(material.rockType, baseRock); - } if (MineralogyConfig.generateRockSlab()) { - registerSlabPair(registry, createSlab(material, false, false), material, false, false); + registerSlabPair(registry, createSlab(material, false, false), baseRock, material, false, false); if (MineralogyConfig.generateRockFurnace()) { registerFurnacePair(registry, material, false, false); } @@ -327,7 +318,7 @@ private static void registerMaterialFamily(IForgeRegistry registry, registerReliefs(registry, material); } if (MineralogyConfig.generateSmoothSlab()) { - registerSlabPair(registry, createSlab(material, true, false), material, true, false); + registerSlabPair(registry, createSlab(material, true, false), smoothRock, material, true, false); if (MineralogyConfig.generateSmoothFurnace()) { registerFurnacePair(registry, material, true, false); } @@ -346,7 +337,7 @@ private static void registerMaterialFamily(IForgeRegistry registry, register(registry, brickRock); if (MineralogyConfig.generateBrickSlab()) { - registerSlabPair(registry, createSlab(material, false, true), material, false, true); + registerSlabPair(registry, createSlab(material, false, true), brickRock, material, false, true); if (MineralogyConfig.generateBrickFurnace()) { registerFurnacePair(registry, material, false, true); } @@ -364,7 +355,7 @@ private static void registerMaterialFamily(IForgeRegistry registry, register(registry, smoothBrickRock); if (MineralogyConfig.generateSmoothBrickSlab()) { - registerSlabPair(registry, createSlab(material, true, true), material, true, true); + registerSlabPair(registry, createSlab(material, true, true), smoothBrickRock, material, true, true); if (MineralogyConfig.generateSmoothBrickFurnace()) { registerFurnacePair(registry, material, true, true); } @@ -378,10 +369,10 @@ private static void registerMaterialFamily(IForgeRegistry registry, } } - private static void registerSlabPair(IForgeRegistry registry, RockSlab slab, + private static void registerSlabPair(IForgeRegistry registry, RockSlab slab, Block fullBlock, zone.moddev.mc.mineralogy.data.Material material, boolean isSmooth, boolean isBrick) { register(registry, slab); - register(registry, createDoubleSlab(slab, material, isSmooth, isBrick)); + register(registry, createDoubleSlab(slab, fullBlock, material, isSmooth, isBrick)); } private static RockStairs createStairs(Block sourceBlock, zone.moddev.mc.mineralogy.data.Material material, @@ -403,10 +394,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"); } @@ -507,24 +499,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/MineralogyItemGroups.java b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java index 799fe041f..1abe0434a 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java +++ b/src/main/java/zone/moddev/mc/mineralogy/init/MineralogyItemGroups.java @@ -13,6 +13,7 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.block.Block; @@ -36,26 +37,38 @@ private MineralogyItemGroups() { @SubscribeEvent public static void registerTabs(CreativeModeTabEvent.Register event) { - mineralogy = register(event, "mineralogy", "basalt"); - rocks = register(event, "rock", "basalt"); - stairs = register(event, "stair", "basalt_stairs"); - slabs = register(event, "slab", "basalt_slab"); - walls = register(event, "wall", "basalt_wall"); - items = register(event, "item", "sulfur_dust"); + if (MineralogyConfig.groupCreativeTabItemsByType()) { + rocks = register(event, "rock", "basalt"); + stairs = register(event, "stair", "basalt_stairs"); + slabs = register(event, "slab", "basalt_slab"); + walls = register(event, "wall", "basalt_wall"); + items = register(event, "item", "sulfur_dust"); + } else { + mineralogy = register(event, "mineralogy", "basalt"); + } } @SubscribeEvent public static void buildTabContents(CreativeModeTabEvent.BuildContents event) { boolean grouped = MineralogyConfig.groupCreativeTabItemsByType(); CreativeModeTab tab = event.getTab(); + if (!grouped && tab == CreativeModeTabs.INGREDIENTS + && MineralogyConfig.isCreativeVisible("mineral_fertilizer") + && Items.mineral_fertilizer != null) { + event.accept(Items.mineral_fertilizer); + return; + } for (Item item : ForgeRegistries.ITEMS.getValues()) { ResourceLocation id = ForgeRegistries.ITEMS.getKey(item); if (id == null || !Mineralogy.MODID.equals(id.getNamespace())) { continue; } + if (!MineralogyConfig.isCreativeVisible(id.getPath())) { + continue; + } - if (!grouped && tab == mineralogy) { + if (!grouped && tab == mineralogy && item != Items.mineral_fertilizer) { event.accept(item); } else if (grouped && tab == targetTab(item)) { event.accept(item); @@ -91,7 +104,8 @@ private static CreativeModeTab register(CreativeModeTabEvent.Register event, Str String iconItemName) { return event.registerCreativeModeTab(new ResourceLocation(Mineralogy.MODID, name), builder -> builder .title(Component.translatable("itemGroup." + Mineralogy.MODID + "." + name)) - .icon(() -> icon(iconItemName))); + .icon(() -> icon(iconItemName)) + .withSearchBar()); } private static ItemStack icon(String itemName) { 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..f428b0789 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.19 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 30ec9b1c2..562a46386 100644 --- a/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java +++ b/src/main/java/zone/moddev/mc/mineralogy/patching/PatchHandler.java @@ -24,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"); @@ -43,6 +47,12 @@ public static void remapMissingMappings(MissingMappingsEvent event) { SAPROLITE, ForgeRegistries.ITEMS.getValue(LIMESTONE)); remapMissing(event.getMappings(ForgeRegistries.Keys.ITEMS, Mineralogy.MODID), PUMMICE, ForgeRegistries.ITEMS.getValue(PUMICE)); + remapMissing(event.getMappings(ForgeRegistries.Keys.BLOCKS, "minecraft"), + GRASS_PATH, ForgeRegistries.BLOCKS.getValue(DIRT_PATH)); + remapMissing(event.getMappings(ForgeRegistries.Keys.ITEMS, "minecraft"), + GRASS_PATH, ForgeRegistries.ITEMS.getValue(DIRT_PATH)); + remapMissing(event.getMappings(ForgeRegistries.Keys.SOUND_EVENTS, "minecraft"), + SWEET_BERRIES_PICK, ForgeRegistries.SOUND_EVENTS.getValue(SWEET_BERRY_BUSH_PICK)); } private static void remapMissing(List> mappings, @@ -65,4 +75,8 @@ private static void remapMissing(List> mappi 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 863226062..86d9cbf34 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="[45,)" #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="[45,)" 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="[45.4.0,46)" + 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.1,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="[45,)" #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.19.4,1.20)" -ordering="NONE" -side="BOTH" + modId="minecraft" + mandatory=true + versionRange="[1.19.4]" + 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..27e9cb93e 100644 --- a/src/main/resources/data/minecraft/recipes/andesite.json +++ b/src/main/resources/data/minecraft/recipes/andesite.json @@ -1,15 +1,56 @@ { - "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", + "category": "building", + "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", + "category": "building", + "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..6c60ed4e7 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/andesite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:andesite" + } + }, + "result": { + "item": "minecraft:andesite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..1619b2e7a --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/brewing_stand.json @@ -0,0 +1,64 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + " B ", + "###" + ], + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "#": { + "tag": "mineralogy:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:brewing_stand" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + " B ", + "###" + ], + "key": { + "B": { + "item": "minecraft:blaze_rod" + }, + "#": { + "tag": "minecraft:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:brewing_stand" + }, + "show_notification": true + } + } + ] +} diff --git a/src/main/resources/data/minecraft/recipes/diorite.json b/src/main/resources/data/minecraft/recipes/diorite.json index c736018d3..f60e895da 100644 --- a/src/main/resources/data/minecraft/recipes/diorite.json +++ b/src/main/resources/data/minecraft/recipes/diorite.json @@ -1,19 +1,66 @@ { - "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", + "category": "building", + "pattern": [ + "CQ", + "QC" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "C": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:diorite", + "count": 2 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "CQ", + "QC" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "C": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:diorite", + "count": 2 + }, + "show_notification": true + } + } + ] } 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..f29917be2 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/diorite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:diorite" + } + }, + "result": { + "item": "minecraft:diorite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..789c2179d 100644 --- a/src/main/resources/data/minecraft/recipes/dispenser.json +++ b/src/main/resources/data/minecraft/recipes/dispenser.json @@ -1,22 +1,72 @@ { - "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", + "category": "redstone", + "pattern": [ + "###", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + }, + "X": { + "item": "minecraft:bow" + } + }, + "result": { + "item": "minecraft:dispenser" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "###", + "#X#", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "item": "minecraft:bow" + } + }, + "result": { + "item": "minecraft:dispenser" + }, + "show_notification": true + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/dropper.json b/src/main/resources/data/minecraft/recipes/dropper.json index 437c22cf6..49974a3e6 100644 --- a/src/main/resources/data/minecraft/recipes/dropper.json +++ b/src/main/resources/data/minecraft/recipes/dropper.json @@ -1,19 +1,66 @@ { - "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", + "category": "redstone", + "pattern": [ + "###", + "# #", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:dropper" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "###", + "# #", + "#R#" + ], + "key": { + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:dropper" + }, + "show_notification": true + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/furnace.json b/src/main/resources/data/minecraft/recipes/furnace.json index 69998c5fd..d5b2cb35d 100644 --- a/src/main/resources/data/minecraft/recipes/furnace.json +++ b/src/main/resources/data/minecraft/recipes/furnace.json @@ -1,16 +1,60 @@ { - "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", + "category": "misc", + "pattern": [ + "###", + "# #", + "###" + ], + "key": { + "#": { + "tag": "mineralogy:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:furnace" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "misc", + "pattern": [ + "###", + "# #", + "###" + ], + "key": { + "#": { + "tag": "minecraft:stone_crafting_materials" + } + }, + "result": { + "item": "minecraft:furnace" + }, + "show_notification": true + } + } + ] } 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..a8575d962 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/granite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "result": { + "item": "mineralogy:granite_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:granite" + } + }, + "result": { + "item": "minecraft:granite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..37c760e8e 100644 --- a/src/main/resources/data/minecraft/recipes/lever.json +++ b/src/main/resources/data/minecraft/recipes/lever.json @@ -1,18 +1,64 @@ { - "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", + "category": "redstone", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "mineralogy:cobblestone_equivalents" + }, + "X": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "minecraft:lever" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "X", + "#" + ], + "key": { + "#": { + "tag": "forge:cobblestone" + }, + "X": { + "item": "minecraft:stick" + } + }, + "result": { + "item": "minecraft:lever" + }, + "show_notification": true + } + } + ] } 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..8a5159ac4 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,56 @@ { - "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", + "category": "building", + "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", + "category": "building", + "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..135950e40 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,56 @@ { - "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", + "category": "building", + "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", + "category": "building", + "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..53f29710e 100644 --- a/src/main/resources/data/minecraft/recipes/observer.json +++ b/src/main/resources/data/minecraft/recipes/observer.json @@ -1,22 +1,72 @@ { - "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", + "category": "redstone", + "pattern": [ + "###", + "RRQ", + "###" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "mineralogy:cobblestone_equivalents" + } + }, + "result": { + "item": "minecraft:observer" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "###", + "RRQ", + "###" + ], + "key": { + "Q": { + "item": "minecraft:quartz" + }, + "R": { + "item": "minecraft:redstone" + }, + "#": { + "tag": "forge:cobblestone" + } + }, + "result": { + "item": "minecraft:observer" + }, + "show_notification": true + } + } + ] } diff --git a/src/main/resources/data/minecraft/recipes/piston.json b/src/main/resources/data/minecraft/recipes/piston.json index a76f23df6..7f4eea047 100644 --- a/src/main/resources/data/minecraft/recipes/piston.json +++ b/src/main/resources/data/minecraft/recipes/piston.json @@ -1,25 +1,78 @@ { - "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", + "category": "redstone", + "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" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "redstone", + "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" + }, + "show_notification": true + } + } + ] } 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..8f69fad74 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4b8afafdb --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_andesite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_andesite" + } + }, + "result": { + "item": "minecraft:polished_andesite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..d9e2d31c1 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_basalt.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..024f6d2eb --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..de05401f8 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_diorite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_diorite" + } + }, + "result": { + "item": "minecraft:polished_diorite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..84077f02f --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0827c44f0 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/polished_granite_slab.json @@ -0,0 +1,58 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 6 + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "###" + ], + "key": { + "#": { + "item": "minecraft:polished_granite" + } + }, + "result": { + "item": "minecraft:polished_granite_slab", + "count": 6 + }, + "show_notification": true + } + } + ] +} 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..cd17ef0f1 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_axe.json @@ -0,0 +1,66 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_axe" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XX", + "X#", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_axe" + }, + "show_notification": true + } + } + ] +} 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..c3ed31bed --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_hoe.json @@ -0,0 +1,66 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_hoe" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XX", + " #", + " #" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_hoe" + }, + "show_notification": true + } + } + ] +} 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..ea3ba4693 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_pickaxe.json @@ -0,0 +1,66 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_pickaxe" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "XXX", + " # ", + " # " + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_pickaxe" + }, + "show_notification": true + } + } + ] +} 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..b521d4a06 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_shovel.json @@ -0,0 +1,66 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_shovel" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "X", + "#", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_shovel" + }, + "show_notification": true + } + } + ] +} 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..9e40ec7c6 --- /dev/null +++ b/src/main/resources/data/minecraft/recipes/stone_sword.json @@ -0,0 +1,66 @@ +{ + "type": "forge:conditional", + "recipes": [ + { + "conditions": [ + { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "mineralogy:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_sword" + }, + "show_notification": true + } + }, + { + "conditions": [ + { + "type": "forge:not", + "value": { + "type": "mineralogy:config", + "flag": "COBBLESTONE_EQUIVILENT" + } + } + ], + "recipe": { + "type": "minecraft:crafting_shaped", + "category": "equipment", + "pattern": [ + "X", + "X", + "#" + ], + "key": { + "#": { + "item": "minecraft:stick" + }, + "X": { + "tag": "minecraft:stone_tool_materials" + } + }, + "result": { + "item": "minecraft:stone_sword" + }, + "show_notification": true + } + } + ] +} 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/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 11f112ec4..408c0c3c4 100644 --- a/src/main/resources/data/mineralogy/orespawn/provider.json +++ b/src/main/resources/data/mineralogy/orespawn/provider.json @@ -1,661 +1,651 @@ { - "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": [ - "minecraft:ocean", - "minecraft:deep_ocean", - "minecraft:warm_ocean", - "minecraft:lukewarm_ocean", - "minecraft:deep_lukewarm_ocean", - "minecraft:cold_ocean", - "minecraft:deep_cold_ocean", - "minecraft:frozen_ocean", - "minecraft:deep_frozen_ocean" - ], - "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": [ + "minecraft:ocean", + "minecraft:deep_ocean", + "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", + "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", + "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", + "minecraft:deep_frozen_ocean" + ], + "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..453c3e425 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick", + "count": 4 + }, + "show_notification": true } 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..94d609746 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f86207cb5 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..70df3665f 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..13e4a7bbf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..58b704499 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8d2b7f11c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..e9cae8747 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2ec93fadd 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..03c6bad14 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c0098398a 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..98703c45b 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_furnace", + "count": 1 + }, + "show_notification": true } 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..c35f5a544 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1337dff97 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3901a115f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..d020185d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..930c34318 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a82ef8008 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e341c97c9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..db55dafba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_slab" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..80149acdf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3e3d5fc4d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_stairs" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..b695805e4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3333651b5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:amphibolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_wall" + } + }, + "result": { + "item": "mineralogy:amphibolite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..28c4c4bc2 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,43 @@ { - "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", + "category": "building", + "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..f9d714b55 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..0bbea4c43 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..3c56279b9 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..9b7a1caea 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,43 @@ { - "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", + "category": "building", + "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..853b6d32c 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..c6d1ee955 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_i", + "count": 7 + }, + "show_notification": true } 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..5928bcd68 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_left", + "count": 3 + }, + "show_notification": true } 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..1f7199854 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,43 @@ { - "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", + "category": "building", + "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..3fa089094 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..dc6d5ac0d 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,22 @@ { - "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", + "category": "building", + "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..8c1f675a8 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,43 @@ { - "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", + "category": "building", + "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..3e6b8f79e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:amphibolite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json b/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json index 2edb866dd..411eb7575 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_slab", + "count": 6 + }, + "show_notification": true } 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..af29008fd 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..ac8ad85b8 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..331cc216e 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..b8a61c0bd 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..62b24ee0a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..7348579f4 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..373a99972 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/amphibolite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..9e7c7617b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:amphibolite_smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..e1540488d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..909f4b2fe 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite/smooth" + } + }, + "result": { + "item": "mineralogy:amphibolite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json b/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json index 334079fde..1c0862866 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/amphibolite_to_stone.json index 713dbf359..4de115403 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:amphibolite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:amphibolite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json b/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json index 874327c44..5d110ed27 100644 --- a/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/amphibolite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/amphibolite" + } + }, + "result": { + "item": "mineralogy:amphibolite_wall", + "count": 6 + }, + "show_notification": true } 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..ca0d6bdff 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite" + } + }, + "result": { + "item": "mineralogy:andesite_brick", + "count": 4 + }, + "show_notification": true } 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..2dc7dc7a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5b9492275 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..47a4616a1 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..4caff4781 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..79a3843d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0c149f5c0 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..4b8da3aa4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2057e3d5a 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/brick" + } + }, + "result": { + "item": "mineralogy:andesite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..c691a2f05 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f27ce6f91 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..f2aadfeed 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_furnace", + "count": 1 + }, + "show_notification": true } 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..2f855a787 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c4f37d12f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8ae5c0382 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..70272b960 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..920d37b6f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..47060a117 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6287fac1d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..948588612 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_slab" + } + }, + "result": { + "item": "mineralogy:andesite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..86257d7d6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7e49fd2dc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_stairs" + } + }, + "result": { + "item": "mineralogy:andesite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..3e6fa19c5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d3a30688a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_wall" + } + }, + "result": { + "item": "mineralogy:andesite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..6524b2412 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,43 @@ { - "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", + "category": "building", + "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..8f6590ed7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..b58bf18a6 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..b8bf02361 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..84bd18abf 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,43 @@ { - "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", + "category": "building", + "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..349cdcdd3 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..0fd34ca1b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_i", + "count": 7 + }, + "show_notification": true } 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..574b9922e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_left", + "count": 3 + }, + "show_notification": true } 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..f092c63e1 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,43 @@ { - "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", + "category": "building", + "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..30743754e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..cf490745c 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,22 @@ { - "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", + "category": "building", + "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..87a328ffc 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,43 @@ { - "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", + "category": "building", + "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..9e98998ad 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:andesite_relief_blank" + } + }, + "result": { + "item": "mineralogy:andesite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_slab.json b/src/main/resources/data/mineralogy/recipes/andesite_slab.json index b94c0fd64..a3bce676c 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_slab", + "count": 6 + }, + "show_notification": true } 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..3e24ca4fa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f47a019bf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b3cdb39da 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..a3ba38340 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..22f3e62f8 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..3f2cf6d1e 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..9cb1071e7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..8e97973ce 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..6e667c45a 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/andesite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..22f0f9bfa 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..b9739fee2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..377fa659d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/andesite_smooth_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:andesite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_andesite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f0b4c094b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite_smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..b70718814 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/andesite/smooth" + } + }, + "result": { + "item": "mineralogy:andesite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_stairs.json b/src/main/resources/data/mineralogy/recipes/andesite_stairs.json index c3dfd930e..fb9ae2f31 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/andesite_to_stone.json index 38a580a9b..a4f20117b 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:andesite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:andesite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/andesite_wall.json b/src/main/resources/data/mineralogy/recipes/andesite_wall.json index 188059bcf..c6cdfe132 100644 --- a/src/main/resources/data/mineralogy/recipes/andesite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/andesite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:andesite" + } + }, + "result": { + "item": "mineralogy:andesite_wall", + "count": 6 + }, + "show_notification": true } 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..be06b1a7a 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_brick.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_brick", + "count": 4 + }, + "show_notification": true } 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..26d24228d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d72fcc204 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..6a8a3f9d2 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_slab", + "count": 6 + }, + "show_notification": true } 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..c0fd82343 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5cc909e50 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2f4375a51 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..59cb9a686 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6042e6a89 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/brick" + } + }, + "result": { + "item": "mineralogy:basalt_brick_wall", + "count": 6 + }, + "show_notification": true } 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..33139eb19 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..cc73b4a15 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..d5bc3d157 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_furnace", + "count": 1 + }, + "show_notification": true } 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..edb2f1630 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6652acc89 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4edf1ce5f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_slab" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..3f8acbe72 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..24f46632d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_wall" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..8b7369273 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f5041e2de --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c15f0fa86 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_slab" + } + }, + "result": { + "item": "mineralogy:basalt_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..d53ff4f16 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0011e2e28 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_stairs" + } + }, + "result": { + "item": "mineralogy:basalt_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..00e16ecf5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8bc0d9335 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basalt_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basalt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_wall" + } + }, + "result": { + "item": "mineralogy:basalt_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..eaf0d11ff 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,43 @@ { - "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", + "category": "building", + "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..3becde056 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_relief_blank", + "count": 16 + }, + "show_notification": true } 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..f78e6f802 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_cross", + "count": 4 + }, + "show_notification": true } 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..58dd5bf17 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..e4fba3078 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,43 @@ { - "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", + "category": "building", + "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..961acf087 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..094c59408 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_i", + "count": 7 + }, + "show_notification": true } 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..60d063452 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_left", + "count": 3 + }, + "show_notification": true } 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..99ffbf9ed 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,43 @@ { - "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", + "category": "building", + "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..93a6f9aac 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_plus", + "count": 5 + }, + "show_notification": true } 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..c2bb570ad 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,22 @@ { - "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", + "category": "building", + "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..c44490cc2 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,43 @@ { - "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", + "category": "building", + "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..957d5a98c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:basalt_relief_blank" + } + }, + "result": { + "item": "mineralogy:basalt_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_slab.json b/src/main/resources/data/mineralogy/recipes/basalt_slab.json index 3ccdb0d80..20bd72af5 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_slab.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_slab", + "count": 6 + }, + "show_notification": true } 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..90fcdffd8 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..31eb088fe 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..92c75ae01 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..5abb85971 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basalt_smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..7ba872283 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..3474b052a 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..620ef9823 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basalt/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..b7f0a79bb 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..7187bdeb5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..1935f72ac 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt/smooth" + } + }, + "result": { + "item": "mineralogy:basalt_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_stairs.json b/src/main/resources/data/mineralogy/recipes/basalt_stairs.json index 6a105c5d0..4a8fa99a7 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/basalt_to_stone.json index 158a07ada..73078dd4d 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:basalt" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:basalt" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/basalt_wall.json b/src/main/resources/data/mineralogy/recipes/basalt_wall.json index 939a01227..b84a9b096 100644 --- a/src/main/resources/data/mineralogy/recipes/basalt_wall.json +++ b/src/main/resources/data/mineralogy/recipes/basalt_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basalt" + } + }, + "result": { + "item": "mineralogy:basalt_wall", + "count": 6 + }, + "show_notification": true } 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..2d3d54147 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick", + "count": 4 + }, + "show_notification": true } 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..00591911b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..07f3c1b5e 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..175f9eefe 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_slab", + "count": 6 + }, + "show_notification": true } 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..cf40501a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..18c3b9d5b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f273a3057 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..4eca8ba64 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..0077c9c89 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_wall", + "count": 6 + }, + "show_notification": true } 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..c7f2af04c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..e2ed686fc 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,25 @@ { - "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", + "category": "building", + "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..983eb9360 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/basaltic_glass" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_furnace", + "count": 1 + }, + "show_notification": true } 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..2061bcffc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..1168fc2a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slab_recombination.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" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..02da055fa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_slab" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..c852e0746 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..f55fde334 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_wall" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..d0fb2045c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..704d16f79 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..21ddfdde3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_slab" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..42fe21eff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..07a725679 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_stairs" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..56455613b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..59cde80c0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:basaltic_glass_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_wall" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..9c141cbb4 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,43 @@ { - "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", + "category": "building", + "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..ef6298458 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_blank", + "count": 16 + }, + "show_notification": true } 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..5ddfc89ec 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_cross", + "count": 4 + }, + "show_notification": true } 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..640fd2a46 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..551fca540 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,43 @@ { - "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", + "category": "building", + "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..3c32e20ca 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..4b5562df6 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_i", + "count": 7 + }, + "show_notification": true } 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..0e2eb517f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_left", + "count": 3 + }, + "show_notification": true } 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..574a55754 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,43 @@ { - "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", + "category": "building", + "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..d39883f2d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_plus", + "count": 5 + }, + "show_notification": true } 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..f41fb482b 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,22 @@ { - "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", + "category": "building", + "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..8cde8271f 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,43 @@ { - "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", + "category": "building", + "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..5557a894d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_relief_blank" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_relief_vertical", + "count": 3 + }, + "show_notification": true } 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..f6f5358d4 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_slab", + "count": 6 + }, + "show_notification": true } 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..b0abeb2b7 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,22 @@ { - "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", + "category": "building", + "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..7a19f81a1 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..3f1e36a45 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..a16a6ab7b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..7aa99b80d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..d37157ce1 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth_brick" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..aeb452110 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..3544371ec 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:basaltic_glass_smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..d29247ff8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..67106ab41 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass/smooth" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_smooth_wall", + "count": 6 + }, + "show_notification": true } 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..c2193f7f7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/basaltic_glass_to_stone.json index 2eb967914..6379a499e 100644 --- a/src/main/resources/data/mineralogy/recipes/basaltic_glass_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/basaltic_glass_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:basaltic_glass" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:basaltic_glass" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } 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..99027cc6e 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/basaltic_glass" + } + }, + "result": { + "item": "mineralogy:basaltic_glass_wall", + "count": 6 + }, + "show_notification": true } 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..df6fd9a5c 100644 --- a/src/main/resources/data/mineralogy/recipes/chalk.json +++ b/src/main/resources/data/mineralogy/recipes/chalk.json @@ -1,15 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/chalk" + } + }, + "result": { + "item": "mineralogy:chalk", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/chalk_dust.json b/src/main/resources/data/mineralogy/recipes/chalk_dust.json index 359bbe768..7bf9b902d 100644 --- a/src/main/resources/data/mineralogy/recipes/chalk_dust.json +++ b/src/main/resources/data/mineralogy/recipes/chalk_dust.json @@ -1,12 +1,19 @@ { - "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", + "category": "building", + "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..1c00a6982 100644 --- a/src/main/resources/data/mineralogy/recipes/cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..ee96750ab 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick", + "count": 4 + }, + "show_notification": true } 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..56a499f8e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..eb8ca9ce2 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..5391794f9 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_slab", + "count": 6 + }, + "show_notification": true } 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..5d4811fa5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..67031f8bf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c36d00442 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..fea7a7b61 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b09281edc 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_wall", + "count": 6 + }, + "show_notification": true } 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..3ea54e7e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9cfa7fa4e 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..683767f6e 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_furnace", + "count": 1 + }, + "show_notification": true } 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..9056418d1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5dde8bc3a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3b16bf6f9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_slab" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..b5f9dcbd5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..41677ebba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_wall" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..41714cfe4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d1648a921 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e39828762 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_slab" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..2a8698eb2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..340b07933 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_stairs" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..0e941809f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b36d398d8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:conglomerate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_wall" + } + }, + "result": { + "item": "mineralogy:conglomerate_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..d3388fac2 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,43 @@ { - "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", + "category": "building", + "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..a7f15c1ce 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_blank", + "count": 16 + }, + "show_notification": true } 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..8c26fa1c1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_cross", + "count": 4 + }, + "show_notification": true } 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..7313c6d3d 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..f32160046 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,43 @@ { - "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", + "category": "building", + "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..04f1da6d6 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..bd485ec3e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_i", + "count": 7 + }, + "show_notification": true } 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..543314024 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_left", + "count": 3 + }, + "show_notification": true } 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..1f5f5f8af 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,43 @@ { - "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", + "category": "building", + "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..7dcf57b93 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_plus", + "count": 5 + }, + "show_notification": true } 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..6527ca052 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,22 @@ { - "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", + "category": "building", + "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..56934306b 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,43 @@ { - "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", + "category": "building", + "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..f2f9aa9e4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_relief_blank" + } + }, + "result": { + "item": "mineralogy:conglomerate_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json b/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json index 64903ddbe..b99054719 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_slab", + "count": 6 + }, + "show_notification": true } 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..d7e3ce26c 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..b896b07af 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..14e98fba7 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..b66269fa3 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..c93daf202 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..bb641ee5f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..5a8b3300f 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/conglomerate/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..7faa802b8 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:conglomerate_smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..f743d9053 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..a786af1a0 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate/smooth" + } + }, + "result": { + "item": "mineralogy:conglomerate_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json b/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json index 31e71d05f..66ec82540 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/conglomerate_to_stone.json index 053ac1a11..b1278fefe 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:conglomerate" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:conglomerate" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json b/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json index 9486d0fa2..7e50d1a07 100644 --- a/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json +++ b/src/main/resources/data/mineralogy/recipes/conglomerate_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/conglomerate" + } + }, + "result": { + "item": "mineralogy:conglomerate_wall", + "count": 6 + }, + "show_notification": true } 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..3370be667 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_brick", + "count": 4 + }, + "show_notification": true } 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..3ae79a8c8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7630fda91 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..26ac43cae 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_slab", + "count": 6 + }, + "show_notification": true } 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..72b3d5879 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7aa5595bf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f499d2472 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..ff1c5e7e4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d4b425c65 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/brick" + } + }, + "result": { + "item": "mineralogy:diabase_brick_wall", + "count": 6 + }, + "show_notification": true } 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..dfe95bab2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..df9dd0b04 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..d7adfb4d9 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_furnace", + "count": 1 + }, + "show_notification": true } 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..7184d5405 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8b40abb1a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..65375ab47 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_slab" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..69ac7e4e6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..d7eba70a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_wall" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..beb81151d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9cbf3e78b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c215be380 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_slab" + } + }, + "result": { + "item": "mineralogy:diabase_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..0ff68ca90 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e8cfe96a4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_stairs" + } + }, + "result": { + "item": "mineralogy:diabase_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..3900a2dd3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c5cfcffd6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diabase_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diabase_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_wall" + } + }, + "result": { + "item": "mineralogy:diabase_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..72ad980ce 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,43 @@ { - "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", + "category": "building", + "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..79f084b1f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth" + } + }, + "result": { + "item": "mineralogy:diabase_relief_blank", + "count": 16 + }, + "show_notification": true } 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..8cb73513a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_cross", + "count": 4 + }, + "show_notification": true } 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..97dce4293 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..de6e77f56 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,43 @@ { - "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", + "category": "building", + "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..e8a26dbd1 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..c3838a68e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_i", + "count": 7 + }, + "show_notification": true } 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..8cca00780 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_left", + "count": 3 + }, + "show_notification": true } 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..8e6aafde7 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,43 @@ { - "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", + "category": "building", + "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..2d11efbda 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_plus", + "count": 5 + }, + "show_notification": true } 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..a363a4885 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,22 @@ { - "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", + "category": "building", + "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..b02afa947 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,43 @@ { - "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", + "category": "building", + "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..a3b684f94 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:diabase_relief_blank" + } + }, + "result": { + "item": "mineralogy:diabase_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_slab.json b/src/main/resources/data/mineralogy/recipes/diabase_slab.json index 0691e00c4..62cdb233b 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase" + } + }, + "result": { + "item": "mineralogy:diabase_slab", + "count": 6 + }, + "show_notification": true } 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..60f90d89d 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..05363daa3 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..0e8df79e0 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..2dbd88c9c 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..c1c2dcf43 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..85556a4f0 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..b4b308aeb 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diabase/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..31dfe3599 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diabase_smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..c69db0a98 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..f71a4733e 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase/smooth" + } + }, + "result": { + "item": "mineralogy:diabase_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_stairs.json b/src/main/resources/data/mineralogy/recipes/diabase_stairs.json index aaf4461d3..ee7c11732 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/diabase_to_stone.json index 04f7a835d..c8a06cf98 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:diabase" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:diabase" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/diabase_wall.json b/src/main/resources/data/mineralogy/recipes/diabase_wall.json index 2d1fd5f27..a103fc633 100644 --- a/src/main/resources/data/mineralogy/recipes/diabase_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diabase_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diabase" + } + }, + "result": { + "item": "mineralogy:diabase_wall", + "count": 6 + }, + "show_notification": true } 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..855f30ced 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite" + } + }, + "result": { + "item": "mineralogy:diorite_brick", + "count": 4 + }, + "show_notification": true } 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..1dc354d5d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3ccf0f129 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..ea3c7ccf4 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..32895ddf4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d586b662d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e3d84c880 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..770580c3f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3c6be1b55 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/brick" + } + }, + "result": { + "item": "mineralogy:diorite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..8d4e2d828 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7f266ea74 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..530ec1434 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_furnace", + "count": 1 + }, + "show_notification": true } 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..c714151a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..645bd9f56 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..58fcd4bb5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..6cc5550b9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..772e96bfd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a74560078 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4f4536129 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..eb1d43820 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_slab" + } + }, + "result": { + "item": "mineralogy:diorite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..e340066aa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..87e66690e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_stairs" + } + }, + "result": { + "item": "mineralogy:diorite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..c0b48a19b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c744d1d0f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_wall" + } + }, + "result": { + "item": "mineralogy:diorite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..5728f7e27 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,43 @@ { - "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", + "category": "building", + "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..a9cfef3c9 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..62b77ff19 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..ab6fa1242 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..b1652e2c8 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,43 @@ { - "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", + "category": "building", + "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..27cad0945 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..6b288993c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_i", + "count": 7 + }, + "show_notification": true } 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..b5a801937 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_left", + "count": 3 + }, + "show_notification": true } 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..67a87ade4 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,43 @@ { - "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", + "category": "building", + "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..a967febe7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..b35a8722d 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,22 @@ { - "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", + "category": "building", + "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..608d582aa 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,43 @@ { - "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", + "category": "building", + "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..f790a60f2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:diorite_relief_blank" + } + }, + "result": { + "item": "mineralogy:diorite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_slab.json b/src/main/resources/data/mineralogy/recipes/diorite_slab.json index 5a8d1a59e..0d3e681a1 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_slab", + "count": 6 + }, + "show_notification": true } 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..552f007cc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a68f09649 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..cdd65ab3a 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..02f222b9f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..93a487547 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..9ee30e735 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..caf241a45 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..864b0463f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..6e5fddcc0 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/diorite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..4f9463834 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..8c2d1c504 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..bef0c6715 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/diorite_smooth_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:diorite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_diorite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1a31a3a0a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite_smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..f43abbaba 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/diorite/smooth" + } + }, + "result": { + "item": "mineralogy:diorite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_stairs.json b/src/main/resources/data/mineralogy/recipes/diorite_stairs.json index 81724bbd6..3a46620f1 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/diorite_to_stone.json index 7e47792aa..d5a9bfe49 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:diorite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:diorite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/diorite_wall.json b/src/main/resources/data/mineralogy/recipes/diorite_wall.json index 567be8198..30a1edc3a 100644 --- a/src/main/resources/data/mineralogy/recipes/diorite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/diorite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:diorite" + } + }, + "result": { + "item": "mineralogy:diorite_wall", + "count": 6 + }, + "show_notification": true } 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..247aa3567 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_brick", + "count": 4 + }, + "show_notification": true } 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..e20e1f4ff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d2dbc1289 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..a711ffd67 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..6c78073b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..977754495 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ff7443a11 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..b95a84022 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0b1c85529 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/brick" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..786f626a6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8e0936baa 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..abb0e5cc3 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_furnace", + "count": 1 + }, + "show_notification": true } 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..b2c8420f3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8fc9cd230 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..57bae7ceb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..182e828eb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..ca99117e4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a0c78ea61 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1c079d27a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..951359f1e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_slab" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..de2b07fe7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9c0ac23eb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_stairs" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..ae277940f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b66c0f67c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/dolomite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:dolomite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_wall" + } + }, + "result": { + "item": "mineralogy:dolomite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..4ff0c36ed 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,43 @@ { - "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", + "category": "building", + "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..42cb39ca2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..287dd950c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..f0b0f60f3 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..edaf68a55 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,43 @@ { - "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", + "category": "building", + "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..0d834c68b 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..b01f645aa 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_i", + "count": 7 + }, + "show_notification": true } 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..63718827f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_left", + "count": 3 + }, + "show_notification": true } 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..35b75f738 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,43 @@ { - "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", + "category": "building", + "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..6b1392e10 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..ae6043a51 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,22 @@ { - "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", + "category": "building", + "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..654fd0f71 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,43 @@ { - "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", + "category": "building", + "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..1b095148c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_relief_blank" + } + }, + "result": { + "item": "mineralogy:dolomite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_slab.json b/src/main/resources/data/mineralogy/recipes/dolomite_slab.json index ee597099e..698501c67 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_slab", + "count": 6 + }, + "show_notification": true } 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..c82d94066 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..ce3d3f6b6 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..70550fa87 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..2fff76ab8 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..0be129cfe 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..f8379dc89 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..6ad18dbfa 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/dolomite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..5305bba71 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:dolomite_smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..dd63a8210 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..319a41c24 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite/smooth" + } + }, + "result": { + "item": "mineralogy:dolomite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json b/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json index a18a60bee..781d04c81 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/dolomite_to_stone.json index 25311dbe7..43ed4cb6b 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:dolomite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:dolomite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/dolomite_wall.json b/src/main/resources/data/mineralogy/recipes/dolomite_wall.json index a717d76c9..20bff4ef8 100644 --- a/src/main/resources/data/mineralogy/recipes/dolomite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/dolomite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/dolomite" + } + }, + "result": { + "item": "mineralogy:dolomite_wall", + "count": 6 + }, + "show_notification": true } 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..b71703b0a 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall.json +++ b/src/main/resources/data/mineralogy/recipes/drywall.json @@ -1,20 +1,32 @@ { - "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", + "category": "building", + "pattern": [ + "pgp", + "pgp", + "pgp" + ], + "key": { + "p": { + "tag": "forge:paper" + }, + "g": { + "tag": "forge:dusts/gypsum" + } + }, + "result": { + "item": "mineralogy:drywall_white", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/drywall_black.json b/src/main/resources/data/mineralogy/recipes/drywall_black.json index 717b3c46f..d32ff5407 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_black.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_black.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..af4c9984a 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_blue.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_blue.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..2971b427c 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_brown.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_brown.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..b05c4a4b4 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_cyan.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_cyan.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..d830c919d 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_gray.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_gray.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..5ec7747d8 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_green.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_green.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..4b5a8ca1e 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,26 @@ { - "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", + "category": "building", + "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..49e516a2f 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_lime.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_lime.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..3b6becbbc 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_magenta.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_magenta.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..bc44afb24 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_orange.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_orange.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..95aa2f992 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_pink.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_pink.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..08b6c8b22 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_purple.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_purple.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..d32238599 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_red.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_red.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..eb5b64b9e 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_silver.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_silver.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..d16d04ebb 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_white.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_white.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..8729674a9 100644 --- a/src/main/resources/data/mineralogy/recipes/drywall_yellow.json +++ b/src/main/resources/data/mineralogy/recipes/drywall_yellow.json @@ -1,14 +1,26 @@ { - "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", + "category": "building", + "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..89ad1221d 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_brick", + "count": 4 + }, + "show_notification": true } 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..906098a10 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b6ba79a93 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..cff18c6b4 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_slab", + "count": 6 + }, + "show_notification": true } 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..baf76da25 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7d2ae1d74 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c3bab0e43 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..f51e982ed --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fd5ebe22d 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/brick" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_wall", + "count": 6 + }, + "show_notification": true } 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..851e588b4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a0b50b2e2 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..99997bd44 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_furnace", + "count": 1 + }, + "show_notification": true } 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..89049e61e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fcdc02f6e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3fbe53dcc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_slab" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..3716261a9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..eb8a677fb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_wall" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..9695f342c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4c90d1cd4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f8e4074ba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_slab" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..f1852eafc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..927a9fdbc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_stairs" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..595439d56 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..63b10a024 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gabbro_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gabbro_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_wall" + } + }, + "result": { + "item": "mineralogy:gabbro_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a10e4e79f 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,43 @@ { - "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", + "category": "building", + "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..bfd880f32 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_blank", + "count": 16 + }, + "show_notification": true } 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..408763cd7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_cross", + "count": 4 + }, + "show_notification": true } 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..ba360b6b4 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..9bcccc4e4 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,43 @@ { - "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", + "category": "building", + "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..c1d28ce16 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..323272995 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_i", + "count": 7 + }, + "show_notification": true } 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..103346fef 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_left", + "count": 3 + }, + "show_notification": true } 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..f0d48a24d 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,43 @@ { - "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", + "category": "building", + "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..07c0ae321 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_plus", + "count": 5 + }, + "show_notification": true } 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..16dadcb6d 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,22 @@ { - "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", + "category": "building", + "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..adfa0707a 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,43 @@ { - "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", + "category": "building", + "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..09f7edbc5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_relief_blank" + } + }, + "result": { + "item": "mineralogy:gabbro_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_slab.json b/src/main/resources/data/mineralogy/recipes/gabbro_slab.json index 41e2edbd3..1ac0ddd9c 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_slab", + "count": 6 + }, + "show_notification": true } 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..42e9a0af7 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..8c9f42c08 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..ec0214829 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..9ee948f60 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..3968ed5df 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..45f012501 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..b716daee8 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gabbro/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..1ee2b6167 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gabbro_smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..f88f3bf54 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..a13221424 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro/smooth" + } + }, + "result": { + "item": "mineralogy:gabbro_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json b/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json index 266295138..b70918c30 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/gabbro_to_stone.json index 0b2b76c81..55378c78a 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:gabbro" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:gabbro" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/gabbro_wall.json b/src/main/resources/data/mineralogy/recipes/gabbro_wall.json index d14005662..0ac8de638 100644 --- a/src/main/resources/data/mineralogy/recipes/gabbro_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gabbro_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gabbro" + } + }, + "result": { + "item": "mineralogy:gabbro_wall", + "count": 6 + }, + "show_notification": true } 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..bd125beb0 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_brick.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_brick", + "count": 4 + }, + "show_notification": true } 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..ae3ac9b77 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e003b0630 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..4ea79ba73 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_slab", + "count": 6 + }, + "show_notification": true } 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..0d2027c28 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7204735fa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c850bcaf9 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..aa78e9272 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1ecdd9801 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/brick" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_wall", + "count": 6 + }, + "show_notification": true } 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..c2698d7c3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ea71b0ddd 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..94294f31b 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_furnace", + "count": 1 + }, + "show_notification": true } 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..00a52f916 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a069663d6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ec7139320 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_slab" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..5da026ff9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..b4916dc22 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_wall" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..eb015de39 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..bed640ff6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3e9dfedbf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_slab" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..a7f893962 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a2a3f2124 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_stairs" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..372151716 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..faf730ea5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gneiss_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:gneiss_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_wall" + } + }, + "result": { + "item": "mineralogy:gneiss_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..7176fc56d 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,43 @@ { - "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", + "category": "building", + "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..1a7c8643b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_blank", + "count": 16 + }, + "show_notification": true } 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..d29c096ec 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_cross", + "count": 4 + }, + "show_notification": true } 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..56b7cb8d0 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..2d151462f 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,43 @@ { - "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", + "category": "building", + "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..a6a44d5bf 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..274344ed8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_i", + "count": 7 + }, + "show_notification": true } 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..9ab2e22ac 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_left", + "count": 3 + }, + "show_notification": true } 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..fd19f2282 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,43 @@ { - "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", + "category": "building", + "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..71e95d59f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_plus", + "count": 5 + }, + "show_notification": true } 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..8c3618db3 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,22 @@ { - "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", + "category": "building", + "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..ef8d06d0a 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,43 @@ { - "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", + "category": "building", + "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..91717c662 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_relief_blank" + } + }, + "result": { + "item": "mineralogy:gneiss_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_slab.json b/src/main/resources/data/mineralogy/recipes/gneiss_slab.json index 103b2496f..6ab02e722 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_slab.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_slab", + "count": 6 + }, + "show_notification": true } 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..a7b585d02 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..d99f238ac 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..da6cd5a64 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..5875ae6b9 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..663d1fb10 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..24f57278f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth_brick" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..619663c5a 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/gneiss/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..709918c39 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:gneiss_smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..f8c70fbd8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..498f9e93f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss/smooth" + } + }, + "result": { + "item": "mineralogy:gneiss_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json b/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json index f760bab27..2989f8f66 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/gneiss_to_stone.json index 1c9e4f13c..e61be14a4 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:gneiss" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:gneiss" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/gneiss_wall.json b/src/main/resources/data/mineralogy/recipes/gneiss_wall.json index 186d0bda2..d23e82c02 100644 --- a/src/main/resources/data/mineralogy/recipes/gneiss_wall.json +++ b/src/main/resources/data/mineralogy/recipes/gneiss_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/gneiss" + } + }, + "result": { + "item": "mineralogy:gneiss_wall", + "count": 6 + }, + "show_notification": true } 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..613315291 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/granite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite" + } + }, + "result": { + "item": "mineralogy:granite_brick", + "count": 4 + }, + "show_notification": true } 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..f74bfea08 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6fc81fed1 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..80caad809 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..feaf82172 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b1390b015 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0d0cd6232 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..e1c94b500 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6caa0d8db 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/brick" + } + }, + "result": { + "item": "mineralogy:granite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..1cfbf7142 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..35427cd94 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/granite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..c0753534b 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/granite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_furnace", + "count": 1 + }, + "show_notification": true } 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..78ddb6006 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..21d87e3d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0ea6bb3ae --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..73f040dc7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..ee33b2956 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..96ed588ef --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0a94e27b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c17ed2b6f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_slab" + } + }, + "result": { + "item": "mineralogy:granite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..c1c0daed5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..718933dc1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_stairs" + } + }, + "result": { + "item": "mineralogy:granite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..d475e6495 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f0c139f53 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:granite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:granite_wall" + } + }, + "result": { + "item": "mineralogy:granite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a52b52d26 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,43 @@ { - "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", + "category": "building", + "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..2d2a163c8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..18a03f3e4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..7050da6c6 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..6e18a29ac 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,43 @@ { - "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", + "category": "building", + "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..f952c1055 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..10dec09c0 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_i", + "count": 7 + }, + "show_notification": true } 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..acb88d8c1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_left", + "count": 3 + }, + "show_notification": true } 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..d4320505a 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,43 @@ { - "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", + "category": "building", + "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..c43b0f32d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..401ac1ac8 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,22 @@ { - "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", + "category": "building", + "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..e656c43f0 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,43 @@ { - "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", + "category": "building", + "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..642818d2a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:granite_relief_blank" + } + }, + "result": { + "item": "mineralogy:granite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/granite_slab.json b/src/main/resources/data/mineralogy/recipes/granite_slab.json index 07927a17b..1e992e7e7 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/granite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_slab", + "count": 6 + }, + "show_notification": true } 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..928eaf417 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2ba7433a9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..985459157 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..81e888e27 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..45088810b 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..d5c870a16 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..58cc584a8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..703ab4f9d 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:granite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..d2e6c39be 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/granite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:granite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..1052a6b81 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..4328107de --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_from_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..09f294851 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/granite_smooth_slab_to_vanilla.json @@ -0,0 +1,23 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:granite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "minecraft:polished_granite_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..362d5e2af 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite_smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..2257bd805 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/granite/smooth" + } + }, + "result": { + "item": "mineralogy:granite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/granite_stairs.json b/src/main/resources/data/mineralogy/recipes/granite_stairs.json index 38bd8954d..3e00959e9 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/granite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/granite_to_stone.json index 7b08523c1..7d48dc1d0 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/granite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:granite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:granite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/granite_wall.json b/src/main/resources/data/mineralogy/recipes/granite_wall.json index 4664e82d8..40783294a 100644 --- a/src/main/resources/data/mineralogy/recipes/granite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/granite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:granite" + } + }, + "result": { + "item": "mineralogy:granite_wall", + "count": 6 + }, + "show_notification": true } 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..12aad4fd1 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,16 @@ { - "type": "forge:conditional", - "recipes": [ - { - "conditions": [ - { - "type": "mineralogy:config", - "flag": "SMELTABLE_GRAVEL" - } - ], - "recipe": { - "type": "minecraft:smelting", - "ingredient": { - "item": "minecraft:gravel" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 - } - } - ] + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "minecraft:gravel" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200, + "conditions": [ + { + "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..6d08333fa --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_carbon_dust.json @@ -0,0 +1,32 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/carbon" + } + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "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..ff066dbee --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_charcoal.json @@ -0,0 +1,25 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "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..ca4330a75 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/gunpowder_from_coal_dust.json @@ -0,0 +1,32 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_DUSTS" + }, + { + "type": "forge:not", + "value": { + "type": "forge:tag_empty", + "tag": "forge:dusts/coal" + } + } + ], + "type": "minecraft:crafting_shapeless", + "category": "misc", + "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..adee0187a 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,25 @@ { - "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", + "category": "misc", + "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..a96b96ca6 100644 --- a/src/main/resources/data/mineralogy/recipes/gypsum.json +++ b/src/main/resources/data/mineralogy/recipes/gypsum.json @@ -1,16 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/gypsum" + } + }, + "result": { + "item": "mineralogy:gypsum", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/gypsum_dust.json b/src/main/resources/data/mineralogy/recipes/gypsum_dust.json index 9d5adb223..3609a7dda 100644 --- a/src/main/resources/data/mineralogy/recipes/gypsum_dust.json +++ b/src/main/resources/data/mineralogy/recipes/gypsum_dust.json @@ -1,12 +1,19 @@ { - "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", + "category": "building", + "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..eff463250 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_brick.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_brick", + "count": 4 + }, + "show_notification": true } 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..a48434b90 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1064cc249 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..f3c5892ee 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_slab", + "count": 6 + }, + "show_notification": true } 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..b6b4733be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..486164944 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..362c1facd 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..229f60b8d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..41b79a9d2 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/brick" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_wall", + "count": 6 + }, + "show_notification": true } 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..8deaca95b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d915aff4f 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..28d5c1e3c 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_furnace", + "count": 1 + }, + "show_notification": true } 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..f749cb883 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1f796bec1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..635eaf1e1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_slab" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..c88fdb224 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..e2ecddbce --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_wall" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..7448daf91 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..12abdb2de --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..19d553f5f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_slab" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..e2d62f621 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3b648d102 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_stairs" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..57bb6eb40 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c52654d71 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/hornfels_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:hornfels_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_wall" + } + }, + "result": { + "item": "mineralogy:hornfels_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a3212f601 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,43 @@ { - "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", + "category": "building", + "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..a51129af1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_blank", + "count": 16 + }, + "show_notification": true } 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..dbd37d1e5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_cross", + "count": 4 + }, + "show_notification": true } 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..4c81575bf 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..2cd3683f0 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,43 @@ { - "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", + "category": "building", + "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..85653505d 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..374ac105e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_i", + "count": 7 + }, + "show_notification": true } 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..f59c56563 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_left", + "count": 3 + }, + "show_notification": true } 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..4b1674db3 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,43 @@ { - "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", + "category": "building", + "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..d8bee7abd 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_plus", + "count": 5 + }, + "show_notification": true } 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..997f767ff 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,22 @@ { - "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", + "category": "building", + "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..5b201f381 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,43 @@ { - "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", + "category": "building", + "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..9f1addf4e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_relief_blank" + } + }, + "result": { + "item": "mineralogy:hornfels_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_slab.json b/src/main/resources/data/mineralogy/recipes/hornfels_slab.json index 9a362695e..2f21d5979 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_slab.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_slab", + "count": 6 + }, + "show_notification": true } 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..3a59cd1fb 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..62e95fe36 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..e53e77ed5 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..4fc9c6c38 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..b986eb093 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..ff5184b48 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth_brick" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..75f7df166 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/hornfels/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..370fbadef 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:hornfels_smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..16ddae617 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..eb1e42ec1 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels/smooth" + } + }, + "result": { + "item": "mineralogy:hornfels_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json b/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json index 2eaacf0e7..6f98296f4 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/hornfels_to_stone.json index 133667d0c..28c68059c 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:hornfels" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:hornfels" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/hornfels_wall.json b/src/main/resources/data/mineralogy/recipes/hornfels_wall.json index d83a51860..f2a15ae22 100644 --- a/src/main/resources/data/mineralogy/recipes/hornfels_wall.json +++ b/src/main/resources/data/mineralogy/recipes/hornfels_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/hornfels" + } + }, + "result": { + "item": "mineralogy:hornfels_wall", + "count": 6 + }, + "show_notification": true } 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..3f0843e81 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_brick.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_brick", + "count": 4 + }, + "show_notification": true } 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..6938d4a0e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1b286e57d 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..5f4091164 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_slab", + "count": 6 + }, + "show_notification": true } 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..abd9d4cb6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f582147f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..dd8f140a2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..b7c46ba10 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9d119286e 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/brick" + } + }, + "result": { + "item": "mineralogy:limestone_brick_wall", + "count": 6 + }, + "show_notification": true } 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..2f36652b1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a08c41347 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..7d3edfb17 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_furnace", + "count": 1 + }, + "show_notification": true } 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..2cb3b180a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..51aa24954 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ceff47a00 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_slab" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..a8c49dd5d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..d56d96f11 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_wall" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..9620cd661 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..91c324937 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..02900a4ca --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_slab" + } + }, + "result": { + "item": "mineralogy:limestone_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..b47d66f5e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..55bd83a8f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_stairs" + } + }, + "result": { + "item": "mineralogy:limestone_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..55e46f722 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..994b2fd60 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/limestone_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:limestone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_wall" + } + }, + "result": { + "item": "mineralogy:limestone_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..248d32c8d 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,43 @@ { - "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", + "category": "building", + "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..be8f9c58f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth" + } + }, + "result": { + "item": "mineralogy:limestone_relief_blank", + "count": 16 + }, + "show_notification": true } 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..c6399a8a3 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_cross", + "count": 4 + }, + "show_notification": true } 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..afdc37b08 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..1fc5dd9f0 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,43 @@ { - "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", + "category": "building", + "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..bc81b5e6f 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..48f84e42b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_i", + "count": 7 + }, + "show_notification": true } 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..1b1e4e221 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_left", + "count": 3 + }, + "show_notification": true } 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..e94e88ff6 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,43 @@ { - "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", + "category": "building", + "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..2167093e7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_plus", + "count": 5 + }, + "show_notification": true } 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..eedb25009 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,22 @@ { - "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", + "category": "building", + "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..d76512ed0 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,43 @@ { - "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", + "category": "building", + "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..2841ae36c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:limestone_relief_blank" + } + }, + "result": { + "item": "mineralogy:limestone_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_slab.json b/src/main/resources/data/mineralogy/recipes/limestone_slab.json index ecff1e29e..f47f1bd59 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_slab.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone" + } + }, + "result": { + "item": "mineralogy:limestone_slab", + "count": 6 + }, + "show_notification": true } 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..d8bdb6cdb 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..04a0bd9da 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..b3539cb39 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..160056974 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..50136e20f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..c05377eec 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..f30d056e4 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/limestone/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..b3b131973 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:limestone_smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..0f48c6702 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..b2c7c9d16 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone/smooth" + } + }, + "result": { + "item": "mineralogy:limestone_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_stairs.json b/src/main/resources/data/mineralogy/recipes/limestone_stairs.json index 0d1d09c18..3f5423f93 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/limestone_to_stone.json index 71157805a..db386d5d8 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:limestone" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:limestone" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/limestone_wall.json b/src/main/resources/data/mineralogy/recipes/limestone_wall.json index 5879f4307..2b4768beb 100644 --- a/src/main/resources/data/mineralogy/recipes/limestone_wall.json +++ b/src/main/resources/data/mineralogy/recipes/limestone_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/limestone" + } + }, + "result": { + "item": "mineralogy:limestone_wall", + "count": 6 + }, + "show_notification": true } 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..2027997f4 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_brick.json +++ b/src/main/resources/data/mineralogy/recipes/marble_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_brick", + "count": 4 + }, + "show_notification": true } 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..2a581a9f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..00440172b 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..a6519510b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_slab", + "count": 6 + }, + "show_notification": true } 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..d1cde5f23 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fefd8b612 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f6f7fbef0 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..916163dec --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4201bac42 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/brick" + } + }, + "result": { + "item": "mineralogy:marble_brick_wall", + "count": 6 + }, + "show_notification": true } 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..0702691cb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3023e11a4 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/marble_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..613448fbc 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/marble_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_furnace", + "count": 1 + }, + "show_notification": true } 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..0873cbfc1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..bc8e68f13 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e00c86ea6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_slab" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..eba5b55bd --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..d2ae7bf76 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_wall" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..e4471d066 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7b3d5b211 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b68af4a29 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_slab" + } + }, + "result": { + "item": "mineralogy:marble_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..fff01b0d4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2f32811f8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_stairs" + } + }, + "result": { + "item": "mineralogy:marble_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..2753c9c88 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e95291343 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/marble_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:marble_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:marble_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:marble_wall" + } + }, + "result": { + "item": "mineralogy:marble_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..64d1243d7 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,43 @@ { - "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", + "category": "building", + "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..589d9d5a6 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth" + } + }, + "result": { + "item": "mineralogy:marble_relief_blank", + "count": 16 + }, + "show_notification": true } 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..041d7bb1f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_cross", + "count": 4 + }, + "show_notification": true } 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..2fc8e596a 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..1a09b94ed 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,43 @@ { - "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", + "category": "building", + "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..2174681ce 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..ca81d9f86 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_i", + "count": 7 + }, + "show_notification": true } 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..ea1c490eb 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_left", + "count": 3 + }, + "show_notification": true } 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..8f925e7b9 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,43 @@ { - "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", + "category": "building", + "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..787a4e397 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_plus", + "count": 5 + }, + "show_notification": true } 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..50ea9693d 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,22 @@ { - "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", + "category": "building", + "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..c966006a3 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,43 @@ { - "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", + "category": "building", + "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..e7f920469 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:marble_relief_blank" + } + }, + "result": { + "item": "mineralogy:marble_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/marble_slab.json b/src/main/resources/data/mineralogy/recipes/marble_slab.json index 6db31a876..3baf7d9dc 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_slab.json +++ b/src/main/resources/data/mineralogy/recipes/marble_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble" + } + }, + "result": { + "item": "mineralogy:marble_slab", + "count": 6 + }, + "show_notification": true } 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..1b6572370 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/marble_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..1ce7d9377 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..abfc4e6e9 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..52204f31b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..9dbfb29e1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..cdad1bd21 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth_brick" + } + }, + "result": { + "item": "mineralogy:marble_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..96ad5cee7 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/marble/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:marble_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..51f5086e9 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:marble_smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..ea59eeb0e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..d8edeedab 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble/smooth" + } + }, + "result": { + "item": "mineralogy:marble_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/marble_stairs.json b/src/main/resources/data/mineralogy/recipes/marble_stairs.json index f476e072e..8d21c58b3 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/marble_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/marble_to_stone.json index 0c062ff37..2d50fcb9a 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/marble_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:marble" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:marble" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/marble_wall.json b/src/main/resources/data/mineralogy/recipes/marble_wall.json index 5d292b64d..8f2d33426 100644 --- a/src/main/resources/data/mineralogy/recipes/marble_wall.json +++ b/src/main/resources/data/mineralogy/recipes/marble_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/marble" + } + }, + "result": { + "item": "mineralogy:marble_wall", + "count": 6 + }, + "show_notification": true } 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..fc8763398 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/mineralfertilizer.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "mineralogy:config", + "flag": "ENABLE_MINERAL_FERTILIZER" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:mineral_fertilizer" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..352b71546 100644 --- a/src/main/resources/data/mineralogy/recipes/nitrate_block.json +++ b/src/main/resources/data/mineralogy/recipes/nitrate_block.json @@ -1,16 +1,29 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:nitrate_dust" + } + }, + "result": { + "item": "mineralogy:nitrate_block", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/nitrate_dust.json b/src/main/resources/data/mineralogy/recipes/nitrate_dust.json index 94f98e8d8..342017c9a 100644 --- a/src/main/resources/data/mineralogy/recipes/nitrate_dust.json +++ b/src/main/resources/data/mineralogy/recipes/nitrate_dust.json @@ -1,12 +1,23 @@ { - "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", + "category": "building", + "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..cc0c70404 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_brick", + "count": 4 + }, + "show_notification": true } 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..7f38e184d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d67800410 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..c60f277fd 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..108d33267 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..38c092cf9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9560983ae 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..2a8d371e7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5eb40b547 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/brick" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..62b4ec368 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e8236b88a 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..9025e71b8 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_furnace", + "count": 1 + }, + "show_notification": true } 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..3b55fbca5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..80e6f87be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7a9602795 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..04602485a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..e0131b082 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..ca6d5ae35 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..639248ef8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c1577aeab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_slab" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..4091cfa83 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..41b3cb713 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_stairs" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..cbe8e8206 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..36efa0e38 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/novaculite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:novaculite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_wall" + } + }, + "result": { + "item": "mineralogy:novaculite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..8f342df6a 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,43 @@ { - "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", + "category": "building", + "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..7e992b90e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..f8094fedb 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..f2782569f 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..d1a6fb42b 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,43 @@ { - "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", + "category": "building", + "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..d0b665408 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..c4c657769 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_i", + "count": 7 + }, + "show_notification": true } 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..988f01724 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_left", + "count": 3 + }, + "show_notification": true } 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..8762b5ca3 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,43 @@ { - "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", + "category": "building", + "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..6b9a52ff5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..c85e9e81b 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,22 @@ { - "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", + "category": "building", + "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..65a118323 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,43 @@ { - "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", + "category": "building", + "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..d4c882522 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_relief_blank" + } + }, + "result": { + "item": "mineralogy:novaculite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_slab.json b/src/main/resources/data/mineralogy/recipes/novaculite_slab.json index 60b0747cc..2ba86efbc 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_slab", + "count": 6 + }, + "show_notification": true } 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..06a01fe17 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..6f40581e0 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..9cbc3d4e1 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..8ac3cb34d 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..6cf93c248 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..f1417fd34 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..2e9903dc1 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/novaculite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..b023a315e 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:novaculite_smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..3b123395e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..df28be283 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite/smooth" + } + }, + "result": { + "item": "mineralogy:novaculite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json b/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json index a8414e018..e2f7c0b6d 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/novaculite_to_stone.json index 7802415a0..c47f85d55 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:novaculite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:novaculite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/novaculite_wall.json b/src/main/resources/data/mineralogy/recipes/novaculite_wall.json index d4d25d96e..0e81205ff 100644 --- a/src/main/resources/data/mineralogy/recipes/novaculite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/novaculite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/novaculite" + } + }, + "result": { + "item": "mineralogy:novaculite_wall", + "count": 6 + }, + "show_notification": true } 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..ddd866c6b 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick", + "count": 4 + }, + "show_notification": true } 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..d78c99ee9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..394766a65 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..94b8439d0 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..da7d9af02 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9e3fcfef3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fa3f3691f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..20f41829b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..6f896886c 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..76d2164f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..86a807ec5 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..3b64d774b 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_furnace", + "count": 1 + }, + "show_notification": true } 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..a9d0d580a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..40fa548f8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1e8361668 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..79c03451b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..954569b0d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..80b6b5f05 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f3a62ebf0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5b83fd62b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_slab" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..c129a5535 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4a8b77f55 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_stairs" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..7808acc0d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c3c8227cb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:pegmatite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_wall" + } + }, + "result": { + "item": "mineralogy:pegmatite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..9f4e0b1ec 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,43 @@ { - "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", + "category": "building", + "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..a1dc85dfd 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..e9f684cd0 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..94ddc6d3a 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..179633d5c 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,43 @@ { - "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", + "category": "building", + "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..145bcc3e6 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..9b99330f9 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_i", + "count": 7 + }, + "show_notification": true } 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..eaba5fc2b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_left", + "count": 3 + }, + "show_notification": true } 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..b48cb62c3 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,43 @@ { - "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", + "category": "building", + "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..c68160af5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..bb548f0ce 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,22 @@ { - "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", + "category": "building", + "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..c7a971e1a 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,43 @@ { - "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", + "category": "building", + "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..887d0ca3c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_relief_blank" + } + }, + "result": { + "item": "mineralogy:pegmatite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json b/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json index 1de7cfed5..ea02b1db1 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_slab", + "count": 6 + }, + "show_notification": true } 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..e57228eab 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..89bff58fe 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..4a586bddd 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..bd3b8ff52 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..6f0fba3e6 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..bc5820eb9 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..4e37c34cd 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/pegmatite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..98c243445 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:pegmatite_smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..039f91a31 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..b1b119559 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite/smooth" + } + }, + "result": { + "item": "mineralogy:pegmatite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json b/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json index f140c3d1c..14b0ae0cf 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/pegmatite_to_stone.json index ec287a10d..0e3cec905 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:pegmatite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:pegmatite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json b/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json index e4ee88436..45e5b5179 100644 --- a/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/pegmatite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/pegmatite" + } + }, + "result": { + "item": "mineralogy:pegmatite_wall", + "count": 6 + }, + "show_notification": true } 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..788c236e3 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_brick", + "count": 4 + }, + "show_notification": true } 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..d923132c0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..33234ca16 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..ed874142a 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..17668ecb7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0943beedb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f916a0673 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..211a22274 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..36648bef9 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/brick" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..33fd4aec9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..da7c6dcb8 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..238142c09 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_furnace", + "count": 1 + }, + "show_notification": true } 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..c01000fbe --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..35a947649 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fcfc1a13e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..e08247cd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..8e167e013 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..98ea26278 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..daaf5f003 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..13414e57a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_slab" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..50e5b41be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..16705aab6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_stairs" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..7a5863d01 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..369139281 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/peridotite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:peridotite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_wall" + } + }, + "result": { + "item": "mineralogy:peridotite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..ca2563179 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,43 @@ { - "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", + "category": "building", + "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..d39f52226 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..1f377518f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..eaf4fb93c 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..5cabaca3b 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,43 @@ { - "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", + "category": "building", + "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..376cf14a0 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..f6a152ead 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_i", + "count": 7 + }, + "show_notification": true } 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..66f91a23f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_left", + "count": 3 + }, + "show_notification": true } 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..bf81d09cc 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,43 @@ { - "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", + "category": "building", + "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..1382231fd 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..e45669696 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,22 @@ { - "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", + "category": "building", + "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..652ea8439 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,43 @@ { - "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", + "category": "building", + "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..8671b5797 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_relief_blank" + } + }, + "result": { + "item": "mineralogy:peridotite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_slab.json b/src/main/resources/data/mineralogy/recipes/peridotite_slab.json index 92301341a..34cc6fda1 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_slab", + "count": 6 + }, + "show_notification": true } 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..0550450a3 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..d69158a91 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..7c868960a 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..eb9a17ac7 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..4083c0c7d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..773f11832 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..d5b2a6b8c 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/peridotite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..7ab69f929 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:peridotite_smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..0be075026 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..f6e337b6c 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite/smooth" + } + }, + "result": { + "item": "mineralogy:peridotite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json b/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json index aba8814d5..168d6dfc7 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/peridotite_to_stone.json index 08330769f..019758fa1 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:peridotite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:peridotite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/peridotite_wall.json b/src/main/resources/data/mineralogy/recipes/peridotite_wall.json index 582ca95a4..d05c3efcd 100644 --- a/src/main/resources/data/mineralogy/recipes/peridotite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/peridotite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/peridotite" + } + }, + "result": { + "item": "mineralogy:peridotite_wall", + "count": 6 + }, + "show_notification": true } 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..10a5c67b4 100644 --- a/src/main/resources/data/mineralogy/recipes/phosphorous_block.json +++ b/src/main/resources/data/mineralogy/recipes/phosphorous_block.json @@ -1,16 +1,29 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phosphorous_dust" + } + }, + "result": { + "item": "mineralogy:phosphorous_block", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json b/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json index 0937f7af7..e407ea1f5 100644 --- a/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json +++ b/src/main/resources/data/mineralogy/recipes/phosphorous_dust.json @@ -1,12 +1,23 @@ { - "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", + "category": "building", + "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..ae5391a85 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_brick", + "count": 4 + }, + "show_notification": true } 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..e1bfe9bcf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..814938c8b 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..b211d607b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..daeec0dfb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..55736f260 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fdf91465e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..67b3218d5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ca2a4bb05 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/brick" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..b24ebbecf --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ee148a840 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..b9e7114c9 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_furnace", + "count": 1 + }, + "show_notification": true } 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..875f94ad1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..40dccf90d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..933f0c405 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..54bfae496 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..a641f603a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..701d51bf2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ff745afc8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..192fca34f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_slab" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..bd72e1b04 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e3c794042 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_stairs" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..619bb079e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d68d00a46 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/phyllite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:phyllite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_wall" + } + }, + "result": { + "item": "mineralogy:phyllite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a75ac7065 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,43 @@ { - "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", + "category": "building", + "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..89e8bc1df 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..4a9f32e7a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..afcb23380 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..ebbe4aafc 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,43 @@ { - "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", + "category": "building", + "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..20ed0a999 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..e55bd45a2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_i", + "count": 7 + }, + "show_notification": true } 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..6a70a4064 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_left", + "count": 3 + }, + "show_notification": true } 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..9f03e1789 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,43 @@ { - "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", + "category": "building", + "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..569fbfd01 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..cbf86d5dd 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,22 @@ { - "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", + "category": "building", + "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..ee8876c15 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,43 @@ { - "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", + "category": "building", + "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..0f9ac7783 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_relief_blank" + } + }, + "result": { + "item": "mineralogy:phyllite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_slab.json b/src/main/resources/data/mineralogy/recipes/phyllite_slab.json index 3e05de0b7..26e8045e4 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_slab", + "count": 6 + }, + "show_notification": true } 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..176cf3e9b 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..886ffa729 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..de18c2b18 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..d8fb3c8cc 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..6007f8058 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..5863bb345 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..cde255c8c 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/phyllite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..d3f7d015e 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:phyllite_smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..e8aa2839b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..4a0c3d9c0 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite/smooth" + } + }, + "result": { + "item": "mineralogy:phyllite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json b/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json index 132bd081d..69e3a8b1b 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/phyllite_to_stone.json index fffade432..d476483b5 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:phyllite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:phyllite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/phyllite_wall.json b/src/main/resources/data/mineralogy/recipes/phyllite_wall.json index 57805f2e0..ff0a09bf8 100644 --- a/src/main/resources/data/mineralogy/recipes/phyllite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/phyllite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/phyllite" + } + }, + "result": { + "item": "mineralogy:phyllite_wall", + "count": 6 + }, + "show_notification": true } 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..dea880509 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_brick", + "count": 4 + }, + "show_notification": true } 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..5cf399bd1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ecbff744c 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..0237cf7bb 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..6d18a307b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2726dd7be --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a314429e2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..b3fa56dc6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3f20acca4 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/brick" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..6c07c3223 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..dc8c599f0 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..41804f63b 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_furnace", + "count": 1 + }, + "show_notification": true } 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..9aec98da1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..273456b22 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3cfb21fba --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..acc427644 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..e67847c26 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..38ba12f1d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..043c4205a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a1e30a264 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_slab" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..5cdfdaa43 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8666b8fb8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_stairs" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..26f539b34 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b0540f50c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/quartzite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:quartzite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_wall" + } + }, + "result": { + "item": "mineralogy:quartzite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..5ad143631 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,43 @@ { - "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", + "category": "building", + "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..80ee88b3b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..bd7ec6962 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..040ece587 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..1585acfb2 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,43 @@ { - "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", + "category": "building", + "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..fff324988 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..bbb433078 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_i", + "count": 7 + }, + "show_notification": true } 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..2c95b6554 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_left", + "count": 3 + }, + "show_notification": true } 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..760446112 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,43 @@ { - "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", + "category": "building", + "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..2a495b15c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..c92132e9c 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,22 @@ { - "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", + "category": "building", + "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..b61d399d6 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,43 @@ { - "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", + "category": "building", + "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..6fbd505d1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_relief_blank" + } + }, + "result": { + "item": "mineralogy:quartzite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_slab.json b/src/main/resources/data/mineralogy/recipes/quartzite_slab.json index 38c95aa48..dff0b7aab 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_slab", + "count": 6 + }, + "show_notification": true } 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..d586377f8 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..03dcfeef6 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..81c934b2a 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..a37f1091c 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..4c711d518 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..e0185b4e9 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..47eab4804 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/quartzite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..74f12deba 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:quartzite_smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..ed5cfbee2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..166ac1edb 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite/smooth" + } + }, + "result": { + "item": "mineralogy:quartzite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json b/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json index 35c489994..85132b8ac 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/quartzite_to_stone.json index 62e016ab1..cc7b7a3b2 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:quartzite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:quartzite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/quartzite_wall.json b/src/main/resources/data/mineralogy/recipes/quartzite_wall.json index 06260b1a6..fdacea6b3 100644 --- a/src/main/resources/data/mineralogy/recipes/quartzite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/quartzite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/quartzite" + } + }, + "result": { + "item": "mineralogy:quartzite_wall", + "count": 6 + }, + "show_notification": true } 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..7c48e0efc 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick", + "count": 4 + }, + "show_notification": true } 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..6e1f81dd4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..41b4f3161 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..dd15d0773 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_slab", + "count": 6 + }, + "show_notification": true } 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..a4f8a0b8d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..19de18844 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e6aa459f5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..3581c894e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0d512d973 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_wall", + "count": 6 + }, + "show_notification": true } 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..68c34992a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e0a391865 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..e06d1c1fc 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_furnace", + "count": 1 + }, + "show_notification": true } 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..de2921eb7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1f2648a40 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e3225c0ea --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_slab" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..a113aa2ed --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..5e52effb4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_wall" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..171a03e2e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d955b9706 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1f59ec9f2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_slab" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..2f4606834 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ab398b757 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_stairs" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..012fe0119 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c15a38e7f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rhyolite_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_wall" + } + }, + "result": { + "item": "mineralogy:rhyolite_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..c151af0f3 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,43 @@ { - "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", + "category": "building", + "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..546e6638a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_blank", + "count": 16 + }, + "show_notification": true } 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..298a62a4a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_cross", + "count": 4 + }, + "show_notification": true } 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..88b4c9efa 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..b5357e634 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,43 @@ { - "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", + "category": "building", + "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..66a472b7d 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..eecbad229 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_i", + "count": 7 + }, + "show_notification": true } 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..ef939fa53 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_left", + "count": 3 + }, + "show_notification": true } 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..965fde45c 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,43 @@ { - "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", + "category": "building", + "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..2f048abc2 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_plus", + "count": 5 + }, + "show_notification": true } 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..67d3612fb 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,22 @@ { - "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", + "category": "building", + "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..7bc3c9722 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,43 @@ { - "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", + "category": "building", + "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..6e6939b71 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_relief_blank" + } + }, + "result": { + "item": "mineralogy:rhyolite_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json b/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json index c098faa26..d0d5cc55b 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_slab", + "count": 6 + }, + "show_notification": true } 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..5e0362cf4 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..e1d085cbc 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..7e6aee565 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..514e6600d 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..2ec4ff131 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..a22f6135d 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..cd44f1a67 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rhyolite/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..4ffdaf546 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rhyolite_smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..443c31aba 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..5f76c6e61 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite/smooth" + } + }, + "result": { + "item": "mineralogy:rhyolite_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json b/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json index fb57d486c..e5cc455f4 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/rhyolite_to_stone.json index 5f06a7906..f88217de3 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:rhyolite" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:rhyolite" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json b/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json index ca0267d80..715c9894e 100644 --- a/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json +++ b/src/main/resources/data/mineralogy/recipes/rhyolite_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rhyolite" + } + }, + "result": { + "item": "mineralogy:rhyolite_wall", + "count": 6 + }, + "show_notification": true } 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..4aa11c06b 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt.json @@ -1,15 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "forge:dusts/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt", + "count": 1 + }, + "show_notification": true } 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..c670a4f45 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick", + "count": 4 + }, + "show_notification": true } 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..85645bd5f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3a891c468 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..990f3c0f8 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_slab", + "count": 6 + }, + "show_notification": true } 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..d81d7498b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..fa6f4a6d0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0502e72e3 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..b9cb69d4c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..f18ff571c 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_wall", + "count": 6 + }, + "show_notification": true } 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..d5a973d9b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..f5947fca9 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,25 @@ { - "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", + "category": "building", + "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..e3f4d41fc 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,19 @@ { - "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", + "category": "building", + "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..12df9cfb0 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/rock_salt" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:rock_salt_furnace", + "count": 1 + }, + "show_notification": true } 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..7924f0193 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "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", + "category": "building", + "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..015902cab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slab_recombination.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" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7a9210665 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_slab" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..a20bfbf87 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..29a67f39f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_wall" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a7f55b39d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a36617fb8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..13aaf68d0 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_slab" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..2ac772565 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..40785be11 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_stairs" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..78c5efe9f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3d3323555 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:rock_salt_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_wall" + } + }, + "result": { + "item": "mineralogy:rock_salt_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..911d9ff08 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,43 @@ { - "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", + "category": "building", + "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..96870efd4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_blank", + "count": 16 + }, + "show_notification": true } 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..4b643f9f4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_cross", + "count": 4 + }, + "show_notification": true } 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..3b220556a 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..c7bcb4da3 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,43 @@ { - "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", + "category": "building", + "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..a972269fd 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..4523d382c 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_i", + "count": 7 + }, + "show_notification": true } 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..f48ddcbbf 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_left", + "count": 3 + }, + "show_notification": true } 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..c8585c23f 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,43 @@ { - "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", + "category": "building", + "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..c8d912aa3 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_plus", + "count": 5 + }, + "show_notification": true } 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..f77c94826 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,22 @@ { - "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", + "category": "building", + "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..f64db052e 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,43 @@ { - "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", + "category": "building", + "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..df5c0457f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_relief_blank" + } + }, + "result": { + "item": "mineralogy:rock_salt_relief_vertical", + "count": 3 + }, + "show_notification": true } 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..dc3796958 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_slab", + "count": 6 + }, + "show_notification": true } 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..f5b3a6488 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,22 @@ { - "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", + "category": "building", + "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..0048b317d 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..22b1bf142 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..cac5dd8dc 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..66b2ff845 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..6ba4e4a5c 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth_brick" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..84a931cbc 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..127143ef9 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:rock_salt_smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..7a89eee78 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..049fcbc50 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt/smooth" + } + }, + "result": { + "item": "mineralogy:rock_salt_smooth_wall", + "count": 6 + }, + "show_notification": true } 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..bfc4c570d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/rock_salt_to_stone.json index 07c51bd27..155c27c27 100644 --- a/src/main/resources/data/mineralogy/recipes/rock_salt_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/rock_salt_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:rock_salt" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:rock_salt" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } 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..6869cbe1a 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/rock_salt" + } + }, + "result": { + "item": "mineralogy:rock_salt_wall", + "count": 6 + }, + "show_notification": true } 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..7b8c85d0d 100644 --- a/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json +++ b/src/main/resources/data/mineralogy/recipes/rocksaltlamp.json @@ -1,17 +1,29 @@ { - "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", + "category": "building", + "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..01d534074 100644 --- a/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json +++ b/src/main/resources/data/mineralogy/recipes/rocksaltstreetlamp.json @@ -1,19 +1,32 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "y", + "y" + ], + "key": { + "x": { + "tag": "forge:lamps/rock_salt" + }, + "y": { + "item": "minecraft:iron_ingot" + } + }, + "result": { + "item": "mineralogy:rocksaltstreetlamp", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/schist_brick.json b/src/main/resources/data/mineralogy/recipes/schist_brick.json index 91b0880cf..91b1a9def 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_brick.json +++ b/src/main/resources/data/mineralogy/recipes/schist_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_brick", + "count": 4 + }, + "show_notification": true } 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..e010ded65 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b163dba9b 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..9de1854ee 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_slab", + "count": 6 + }, + "show_notification": true } 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..00c6e2318 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..57102a8b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..33296a308 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..9a0335f38 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d9eb94897 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/brick" + } + }, + "result": { + "item": "mineralogy:schist_brick_wall", + "count": 6 + }, + "show_notification": true } 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..816c213a8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d6e9c1e86 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/schist_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..4c2bb9fe9 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/schist_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_furnace", + "count": 1 + }, + "show_notification": true } 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..4bc3cca1c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a66bbcce3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..106884e29 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_slab" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..4318c6263 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..9faa36eab --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_wall" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..860738253 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..5de0adf79 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fbebdbeac --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_slab" + } + }, + "result": { + "item": "mineralogy:schist_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..2ff660bb1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..073c9e54a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_stairs" + } + }, + "result": { + "item": "mineralogy:schist_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..4eee5d0a2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..86fcbafc8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/schist_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:schist_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:schist_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:schist_wall" + } + }, + "result": { + "item": "mineralogy:schist_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..8b39d408b 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,43 @@ { - "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", + "category": "building", + "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..f23d27913 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth" + } + }, + "result": { + "item": "mineralogy:schist_relief_blank", + "count": 16 + }, + "show_notification": true } 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..39863fbe9 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_cross", + "count": 4 + }, + "show_notification": true } 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..a133749ee 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..06ae81f1f 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,43 @@ { - "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", + "category": "building", + "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..31d9d688c 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..2f2608326 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_i", + "count": 7 + }, + "show_notification": true } 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..11da98a96 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_left", + "count": 3 + }, + "show_notification": true } 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..13d6d2260 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,43 @@ { - "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", + "category": "building", + "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..eb0c14049 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_plus", + "count": 5 + }, + "show_notification": true } 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..93c2dcc25 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,22 @@ { - "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", + "category": "building", + "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..4f55d78f4 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,43 @@ { - "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", + "category": "building", + "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..d9aea076b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:schist_relief_blank" + } + }, + "result": { + "item": "mineralogy:schist_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/schist_slab.json b/src/main/resources/data/mineralogy/recipes/schist_slab.json index b2077bf26..a49c49663 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_slab.json +++ b/src/main/resources/data/mineralogy/recipes/schist_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist" + } + }, + "result": { + "item": "mineralogy:schist_slab", + "count": 6 + }, + "show_notification": true } 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..25987a0ac 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/schist_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..ad0b01321 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..f057e5dad 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..195055e7b 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..91d372e2b 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..5982a663f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth_brick" + } + }, + "result": { + "item": "mineralogy:schist_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..fe7f8a5ec 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/schist/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:schist_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..beaf125fe 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:schist_smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..539581cf8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..44f59a618 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist/smooth" + } + }, + "result": { + "item": "mineralogy:schist_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/schist_stairs.json b/src/main/resources/data/mineralogy/recipes/schist_stairs.json index 91772505d..016180f4d 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/schist_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/schist_to_stone.json index fd895082c..26fa0f56d 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/schist_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:schist" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:schist" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/schist_wall.json b/src/main/resources/data/mineralogy/recipes/schist_wall.json index ba114d794..8346b795d 100644 --- a/src/main/resources/data/mineralogy/recipes/schist_wall.json +++ b/src/main/resources/data/mineralogy/recipes/schist_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/schist" + } + }, + "result": { + "item": "mineralogy:schist_wall", + "count": 6 + }, + "show_notification": true } 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..0f13b15d0 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_brick.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_brick", + "count": 4 + }, + "show_notification": true } 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..2efc1c242 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..235e86210 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..efb276121 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_slab", + "count": 6 + }, + "show_notification": true } 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..c4a0b2139 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a73a526b8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..50b79ffc7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..82893d6d7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d9cde5a4b 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/brick" + } + }, + "result": { + "item": "mineralogy:scoria_brick_wall", + "count": 6 + }, + "show_notification": true } 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..84d5b3df6 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..fc494b839 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..7e10ff07c 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_furnace", + "count": 1 + }, + "show_notification": true } 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..fc4209e61 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..bc13b5650 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..25dc5f153 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_slab" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..a94f605ff --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..2da9d5487 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_wall" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..620f0c32f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..17aff2939 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1ccaf4dbe --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_slab" + } + }, + "result": { + "item": "mineralogy:scoria_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..166bee12c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..4577e0eca --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_stairs" + } + }, + "result": { + "item": "mineralogy:scoria_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..113144d12 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2bb43f959 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/scoria_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:scoria_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_wall" + } + }, + "result": { + "item": "mineralogy:scoria_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..6dddf2372 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,43 @@ { - "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", + "category": "building", + "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..53e801af1 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth" + } + }, + "result": { + "item": "mineralogy:scoria_relief_blank", + "count": 16 + }, + "show_notification": true } 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..f93c87974 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_cross", + "count": 4 + }, + "show_notification": true } 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..c530f11a1 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..6b3ad341e 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,43 @@ { - "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", + "category": "building", + "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..342a5e328 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..bd103b3b4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_i", + "count": 7 + }, + "show_notification": true } 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..e1357339a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_left", + "count": 3 + }, + "show_notification": true } 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..597bda593 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,43 @@ { - "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", + "category": "building", + "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..e33f7092d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_plus", + "count": 5 + }, + "show_notification": true } 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..3d29a2704 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,22 @@ { - "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", + "category": "building", + "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..821e1b414 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,43 @@ { - "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", + "category": "building", + "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..71d1fc51f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:scoria_relief_blank" + } + }, + "result": { + "item": "mineralogy:scoria_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_slab.json b/src/main/resources/data/mineralogy/recipes/scoria_slab.json index 0f32c15bb..ec443619a 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_slab.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria" + } + }, + "result": { + "item": "mineralogy:scoria_slab", + "count": 6 + }, + "show_notification": true } 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..4fe74733d 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..a960fcb01 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..71bb9f045 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..9c6537276 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..a46f62bbf 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..dd8783120 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth_brick" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..d93b9ca88 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/scoria/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..45d2b0eff 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:scoria_smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..3f929fa48 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..2f2a23d85 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria/smooth" + } + }, + "result": { + "item": "mineralogy:scoria_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_stairs.json b/src/main/resources/data/mineralogy/recipes/scoria_stairs.json index de775db69..59087bf2d 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/scoria_to_stone.json index e175aca6f..7dede9dab 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:scoria" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:scoria" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/scoria_wall.json b/src/main/resources/data/mineralogy/recipes/scoria_wall.json index 79fd7df9c..c8fedace6 100644 --- a/src/main/resources/data/mineralogy/recipes/scoria_wall.json +++ b/src/main/resources/data/mineralogy/recipes/scoria_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/scoria" + } + }, + "result": { + "item": "mineralogy:scoria_wall", + "count": 6 + }, + "show_notification": true } 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..4e4b194b4 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_brick.json +++ b/src/main/resources/data/mineralogy/recipes/shale_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_brick", + "count": 4 + }, + "show_notification": true } 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..74194e208 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..36e2c5f43 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..4e7b9aa5f 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_slab", + "count": 6 + }, + "show_notification": true } 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..484ff3de8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..15434408c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d539beece 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..25f8a11c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..0c96003fe 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/brick" + } + }, + "result": { + "item": "mineralogy:shale_brick_wall", + "count": 6 + }, + "show_notification": true } 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..b9142589b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c577049dc 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/shale_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..d52d5894b 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/shale_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_furnace", + "count": 1 + }, + "show_notification": true } 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..48656254d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..bb2b06df3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ec90e1e2d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_slab" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..6b2a0df35 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..b4f4b14c1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_wall" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..33704f676 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..25aa8548e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..143d0c292 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_slab" + } + }, + "result": { + "item": "mineralogy:shale_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..6e252fdc5 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..8ffe92f3b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_stairs" + } + }, + "result": { + "item": "mineralogy:shale_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..86087876b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..7f532b662 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/shale_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:shale_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:shale_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:shale_wall" + } + }, + "result": { + "item": "mineralogy:shale_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..696442e7d 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,43 @@ { - "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", + "category": "building", + "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..c01ad2a16 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth" + } + }, + "result": { + "item": "mineralogy:shale_relief_blank", + "count": 16 + }, + "show_notification": true } 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..6a2aa49f8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_cross", + "count": 4 + }, + "show_notification": true } 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..cc439ee0a 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..342488993 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,43 @@ { - "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", + "category": "building", + "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..4c3de4838 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..6ee9329c7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_i", + "count": 7 + }, + "show_notification": true } 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..c18cb2733 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_left", + "count": 3 + }, + "show_notification": true } 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..e38c9c636 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,43 @@ { - "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", + "category": "building", + "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..6fd472b1a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_plus", + "count": 5 + }, + "show_notification": true } 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..4b331cbe4 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,22 @@ { - "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", + "category": "building", + "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..77e309998 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,43 @@ { - "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", + "category": "building", + "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..0fd26a633 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:shale_relief_blank" + } + }, + "result": { + "item": "mineralogy:shale_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/shale_slab.json b/src/main/resources/data/mineralogy/recipes/shale_slab.json index f1cafee98..c27b75d80 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_slab.json +++ b/src/main/resources/data/mineralogy/recipes/shale_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale" + } + }, + "result": { + "item": "mineralogy:shale_slab", + "count": 6 + }, + "show_notification": true } 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..7c0874ec8 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/shale_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..66480ad13 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..719f85c60 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..07866cfbf 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..bef3795e5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..afe3cf043 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth_brick" + } + }, + "result": { + "item": "mineralogy:shale_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..eb2cdeecc 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/shale/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:shale_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..eeee1f986 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:shale_smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..451bf3a79 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..72d85a9a0 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale/smooth" + } + }, + "result": { + "item": "mineralogy:shale_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/shale_stairs.json b/src/main/resources/data/mineralogy/recipes/shale_stairs.json index 35ad4648c..32e808e39 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/shale_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/shale_to_stone.json index 683db7799..48fa97d75 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/shale_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:shale" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:shale" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/shale_wall.json b/src/main/resources/data/mineralogy/recipes/shale_wall.json index 1d8316129..9308f0192 100644 --- a/src/main/resources/data/mineralogy/recipes/shale_wall.json +++ b/src/main/resources/data/mineralogy/recipes/shale_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/shale" + } + }, + "result": { + "item": "mineralogy:shale_wall", + "count": 6 + }, + "show_notification": true } 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..a6fb2faca 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_brick.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_brick", + "count": 4 + }, + "show_notification": true } 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..005985a50 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d21f0d1cf 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..b9977b0ec 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_slab", + "count": 6 + }, + "show_notification": true } 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..5047e1976 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..3f3825870 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..dd61e3b8e 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..fad21efd7 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e298cbff8 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/brick" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_wall", + "count": 6 + }, + "show_notification": true } 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..af5564c69 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a278b3977 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..a93f1e91e 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_furnace", + "count": 1 + }, + "show_notification": true } 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..ef73b2262 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..74927cafe --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ab025a207 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_slab" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..7921c1bdc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..745738d0b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_wall" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..a907fe720 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..069faac14 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..72a34a70c --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_slab" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..58aaaab36 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..13f378710 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_stairs" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..15e2bf6f4 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..93d504b8b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/siltstone_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:siltstone_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_wall" + } + }, + "result": { + "item": "mineralogy:siltstone_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..049da3e91 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,43 @@ { - "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", + "category": "building", + "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..aac297105 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_blank", + "count": 16 + }, + "show_notification": true } 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..988a0ebf9 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_cross", + "count": 4 + }, + "show_notification": true } 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..57f59223a 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..176fd4a8e 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,43 @@ { - "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", + "category": "building", + "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..66c8712c6 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..2878e0d1a 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_i", + "count": 7 + }, + "show_notification": true } 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..f4df2943f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_left", + "count": 3 + }, + "show_notification": true } 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..e3ab72fd5 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,43 @@ { - "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", + "category": "building", + "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..19db63569 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_plus", + "count": 5 + }, + "show_notification": true } 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..11351a8ed 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,22 @@ { - "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", + "category": "building", + "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..ce2fc7649 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,43 @@ { - "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", + "category": "building", + "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..b0a0defbe 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_relief_blank" + } + }, + "result": { + "item": "mineralogy:siltstone_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_slab.json b/src/main/resources/data/mineralogy/recipes/siltstone_slab.json index 8c09c65af..88ed148de 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_slab.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_slab", + "count": 6 + }, + "show_notification": true } 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..0d1fa5ed5 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..d6697436f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..6f9512251 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..8e2cc1faf 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..ea63704b8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..6d91ddc44 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth_brick" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..fc8adba08 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/siltstone/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..0b80421b3 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:siltstone_smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..ffad39b99 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..cdcaf2ab1 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone/smooth" + } + }, + "result": { + "item": "mineralogy:siltstone_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json b/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json index af3eac7fc..19f26484d 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/siltstone_to_stone.json index adeedd496..a4a875eb7 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:siltstone" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:siltstone" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/siltstone_wall.json b/src/main/resources/data/mineralogy/recipes/siltstone_wall.json index 010331e66..68f3a150f 100644 --- a/src/main/resources/data/mineralogy/recipes/siltstone_wall.json +++ b/src/main/resources/data/mineralogy/recipes/siltstone_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/siltstone" + } + }, + "result": { + "item": "mineralogy:siltstone_wall", + "count": 6 + }, + "show_notification": true } 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..511d915bb 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_brick.json +++ b/src/main/resources/data/mineralogy/recipes/slate_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_brick", + "count": 4 + }, + "show_notification": true } 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..0fb7dc16b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f2b2bbb7a 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..cae97bcbe 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_slab", + "count": 6 + }, + "show_notification": true } 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..a14ef6812 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..13fe0d855 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..432599852 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..b7eb22beb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ffd27e712 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/brick" + } + }, + "result": { + "item": "mineralogy:slate_brick_wall", + "count": 6 + }, + "show_notification": true } 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..409ed752e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..9c7e7bd49 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/slate_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..85d03d006 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/slate_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_furnace", + "count": 1 + }, + "show_notification": true } 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..4151e31ad --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..1d36c3a17 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..c4a29432d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_slab" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..c24d6fda8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..1e6b9195d --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_wall" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..93456da6e --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..17f5a79fb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e356af577 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_slab" + } + }, + "result": { + "item": "mineralogy:slate_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..1a758b2fc --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..d0c6f2190 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_stairs" + } + }, + "result": { + "item": "mineralogy:slate_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..8bd1065eb --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..e3ac2fe77 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/slate_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:slate_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:slate_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:slate_wall" + } + }, + "result": { + "item": "mineralogy:slate_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..93ae56937 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,43 @@ { - "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", + "category": "building", + "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..e1316465f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth" + } + }, + "result": { + "item": "mineralogy:slate_relief_blank", + "count": 16 + }, + "show_notification": true } 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..66f6cd08f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_cross", + "count": 4 + }, + "show_notification": true } 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..5baab9a12 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..5401e4ab6 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,43 @@ { - "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", + "category": "building", + "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..da0b808a4 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..e507ca1c7 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_i", + "count": 7 + }, + "show_notification": true } 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..0a2951d91 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_left", + "count": 3 + }, + "show_notification": true } 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..9cf7e7651 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,43 @@ { - "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", + "category": "building", + "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..5954bd060 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_plus", + "count": 5 + }, + "show_notification": true } 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..37ad9cb4a 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,22 @@ { - "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", + "category": "building", + "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..4078be550 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,43 @@ { - "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", + "category": "building", + "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..c767cc739 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:slate_relief_blank" + } + }, + "result": { + "item": "mineralogy:slate_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/slate_slab.json b/src/main/resources/data/mineralogy/recipes/slate_slab.json index 86e818a43..5d279b577 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_slab.json +++ b/src/main/resources/data/mineralogy/recipes/slate_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate" + } + }, + "result": { + "item": "mineralogy:slate_slab", + "count": 6 + }, + "show_notification": true } 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..a060845d1 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/slate_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..870c7b67a 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..833adf3b9 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..28ee016b2 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..1cd71a952 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..c1df30f92 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth_brick" + } + }, + "result": { + "item": "mineralogy:slate_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..2d1f97bf5 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/slate/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:slate_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..58062275e 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:slate_smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..1b918476d 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..085c2f6cd 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate/smooth" + } + }, + "result": { + "item": "mineralogy:slate_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/slate_stairs.json b/src/main/resources/data/mineralogy/recipes/slate_stairs.json index e3a74156d..f0462d0e5 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/slate_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/slate_to_stone.json index cfae3ef35..67b7b57c3 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/slate_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:slate" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:slate" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/slate_wall.json b/src/main/resources/data/mineralogy/recipes/slate_wall.json index 2263f87d3..f7108c640 100644 --- a/src/main/resources/data/mineralogy/recipes/slate_wall.json +++ b/src/main/resources/data/mineralogy/recipes/slate_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/slate" + } + }, + "result": { + "item": "mineralogy:slate_wall", + "count": 6 + }, + "show_notification": true } 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..a34b3ef07 100644 --- a/src/main/resources/data/mineralogy/recipes/sulfur_block.json +++ b/src/main/resources/data/mineralogy/recipes/sulfur_block.json @@ -1,16 +1,29 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:sulfur_dust" + } + }, + "result": { + "item": "mineralogy:sulfur_block", + "count": 1 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/sulfur_dust.json b/src/main/resources/data/mineralogy/recipes/sulfur_dust.json index f4ff1920d..7b98aafc5 100644 --- a/src/main/resources/data/mineralogy/recipes/sulfur_dust.json +++ b/src/main/resources/data/mineralogy/recipes/sulfur_dust.json @@ -1,12 +1,23 @@ { - "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", + "category": "building", + "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..e32b88128 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_brick.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_brick", + "count": 4 + }, + "show_notification": true } 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..2a17c95a2 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_block_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f6d5d8bc0 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff/brick" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_brick_furnace", + "count": 1 + }, + "show_notification": true } 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..bb08ab81a 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_slab", + "count": 6 + }, + "show_notification": true } 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..41bd64bd3 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..cee99bbd9 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..af3e1a1b6 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..05612f013 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..b705a5e21 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/brick" + } + }, + "result": { + "item": "mineralogy:tuff_brick_wall", + "count": 6 + }, + "show_notification": true } 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..3a1d52289 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_brick_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..ee03be543 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_cobblestone.json @@ -1,21 +1,25 @@ { - "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", + "category": "building", + "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..e435f7148 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_furnace.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_furnace.json @@ -1,36 +1,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_furnace", + "count": 1 + }, + "show_notification": true } 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..1d4f61c70 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_brick_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..44fc05fd8 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f9c5e31ec --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_slab" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..4f40b05f1 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_stairs" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..d5e043f5b --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_polished_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_wall" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..06d81ee67 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_slab" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..a7b2e1362 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slab_recombination.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..2eacd482f --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_slabs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_slab" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_slab" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_slab" + } + }, + "result": { + "item": "mineralogy:tuff_brick_slab", + "count": 4 + }, + "show_notification": true +} 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..ce39c7200 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_stairs" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..917a95a05 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_stairs_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_stairs" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_stairs" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_stairs" + } + }, + "result": { + "item": "mineralogy:tuff_brick_stairs", + "count": 4 + }, + "show_notification": true +} 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..93f811f25 --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_wall_polishing.json @@ -0,0 +1,26 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_smooth_wall" + } + ], + "type": "minecraft:crafting_shapeless", + "category": "building", + "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..f2885d13a --- /dev/null +++ b/src/main/resources/data/mineralogy/recipes/tuff_raw_walls_to_brick.json @@ -0,0 +1,28 @@ +{ + "conditions": [ + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_wall" + }, + { + "type": "forge:item_exists", + "item": "mineralogy:tuff_brick_wall" + } + ], + "type": "minecraft:crafting_shaped", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_wall" + } + }, + "result": { + "item": "mineralogy:tuff_brick_wall", + "count": 4 + }, + "show_notification": true +} 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..862b6b5a8 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,43 @@ { - "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", + "category": "building", + "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..12585c8c5 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_relief_blank", + "count": 16 + }, + "show_notification": true } 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..3e49274b4 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x x", + " ", + "x x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_cross", + "count": 4 + }, + "show_notification": true } 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..c7d404974 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,31 @@ { - "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", + "category": "building", + "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 + }, + "show_notification": true } 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..dc0ed8967 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,43 @@ { - "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", + "category": "building", + "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..afb0a6d15 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,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" - ], - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_horizontal", + "count": 3 + }, + "show_notification": true } 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..e46148b78 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + " x ", + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_i", + "count": 7 + }, + "show_notification": true } 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..40cdb486f 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + " x ", + " x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_left", + "count": 3 + }, + "show_notification": true } 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..8848b23f9 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,43 @@ { - "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", + "category": "building", + "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..14ba81fc8 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,25 @@ { - "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", + "category": "building", + "pattern": [ + " x ", + "xxx", + " x " + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_plus", + "count": 5 + }, + "show_notification": true } 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..af96afee9 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,22 @@ { - "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", + "category": "building", + "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..4c660f319 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,43 @@ { - "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", + "category": "building", + "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..127dfa308 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x", + "x", + "x" + ], + "key": { + "x": { + "item": "mineralogy:tuff_relief_blank" + } + }, + "result": { + "item": "mineralogy:tuff_relief_vertical", + "count": 3 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_slab.json b/src/main/resources/data/mineralogy/recipes/tuff_slab.json index 3708090ad..6e952eab8 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_slab.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_slab.json @@ -1,28 +1,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_slab", + "count": 6 + }, + "show_notification": true } 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..7bf2056d2 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_smooth.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_smooth.json @@ -1,27 +1,22 @@ { - "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", + "category": "building", + "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..883a65e2c 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xx", + "xx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick", + "count": 4 + }, + "show_notification": true } 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..661acc52a 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,28 @@ { - "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", + "category": "misc", + "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 + }, + "show_notification": true } 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..8b7f44816 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "item": "mineralogy:tuff_smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_slab", + "count": 6 + }, + "show_notification": true } 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..daa9b2e18 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_stairs", + "count": 4 + }, + "show_notification": true } 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..63373782f 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth_brick" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_brick_wall", + "count": 6 + }, + "show_notification": true } 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..9e95f0c68 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,28 @@ { - "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", + "category": "misc", + "pattern": [ + "xxx", + "xyx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:slabs/tuff/smooth" + }, + "y": { + "item": "minecraft:furnace" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_furnace", + "count": 1 + }, + "show_notification": true } 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..2da309fdf 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,23 @@ { - "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", + "category": "building", + "pattern": [ + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_slab", + "count": 6 + }, + "show_notification": true } 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..8dafad861 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,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_stairs", + "count": 4 + }, + "show_notification": true } 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..c44d70fa7 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,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff/smooth" + } + }, + "result": { + "item": "mineralogy:tuff_smooth_wall", + "count": 6 + }, + "show_notification": true } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_stairs.json b/src/main/resources/data/mineralogy/recipes/tuff_stairs.json index d3422cfe3..87927a070 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_stairs.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_stairs.json @@ -1,30 +1,25 @@ { - "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", + "category": "building", + "pattern": [ + "x ", + "xx ", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_stairs", + "count": 4 + }, + "show_notification": true } 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_to_stone.json b/src/main/resources/data/mineralogy/recipes/tuff_to_stone.json index d802b6527..2b58e841e 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_to_stone.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_to_stone.json @@ -1,9 +1,10 @@ { - "type": "minecraft:smelting", - "ingredient": { - "item": "mineralogy:tuff" - }, - "result": "minecraft:stone", - "experience": 0.1, - "cookingtime": 200 + "type": "minecraft:smelting", + "category": "blocks", + "ingredient": { + "item": "mineralogy:tuff" + }, + "result": "minecraft:stone", + "experience": 0.1, + "cookingtime": 200 } diff --git a/src/main/resources/data/mineralogy/recipes/tuff_wall.json b/src/main/resources/data/mineralogy/recipes/tuff_wall.json index 26f78a679..2e62f74a2 100644 --- a/src/main/resources/data/mineralogy/recipes/tuff_wall.json +++ b/src/main/resources/data/mineralogy/recipes/tuff_wall.json @@ -1,29 +1,24 @@ { - "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", + "category": "building", + "pattern": [ + "xxx", + "xxx" + ], + "key": { + "x": { + "tag": "mineralogy:stones/tuff" + } + }, + "result": { + "item": "mineralogy:tuff_wall", + "count": 6 + }, + "show_notification": true } 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/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..a6916bba0 --- /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("register(event, \"rock\", \"basalt\")")); + assertTrue(groups.contains("register(event, \"stair\", \"basalt_stairs\")")); + assertTrue(groups.contains("register(event, \"slab\", \"basalt_slab\")")); + assertTrue(groups.contains("register(event, \"wall\", \"basalt_wall\")")); + assertTrue(groups.contains("register(event, \"item\", \"sulfur_dust\")")); + assertTrue(groups.contains("CreativeModeTabs.INGREDIENTS")); + assertTrue(groups.contains(".withSearchBar()")); + assertTrue(groups.contains("CreativeModeTabEvent.Register")); + + 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.getRegistryAccess()")); + 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("@Mod.EventBusSubscriber(modid = Mineralogy.MODID)")); + assertTrue(mappings.contains("event.getMappings(ForgeRegistries.Keys.BLOCKS")); + } + + @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..635442471 --- /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.19.4 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..3c5184fc1 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/NativeRecipeManagerTest.java @@ -0,0 +1,374 @@ +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.lang.reflect.Field; +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.core.RegistryAccess; +import net.minecraft.SharedConstants; +import net.minecraft.server.Bootstrap; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; +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 net.minecraftforge.common.crafting.conditions.ICondition; + +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(); + bootstrapRegistriesWithoutForgeNetworkInitialization(); + CraftingHelper.register(NotCondition.Serializer.INSTANCE); + CraftingHelper.register(new ResourceLocation("minecraft", "item"), + VanillaIngredientSerializer.INSTANCE); + MineralogyConfig.registerRecipeConditions(); + } + + private static void bootstrapRegistriesWithoutForgeNetworkInitialization() { + try { + Field field = Bootstrap.class.getDeclaredField("isBootstrapped"); + field.setAccessible(true); + if (!field.getBoolean(null)) { + field.setBoolean(null, true); + BuiltInRegistries.bootStrap(); + } + } catch (ReflectiveOperationException exception) { + throw new AssertionError("Unable to initialize the isolated recipe registry", exception); + } + } + + @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 " + BuiltInRegistries.ITEM.getKey(rock), + recipe.matches(inventory, null)); + String expectedOutput = recipeName.startsWith("mossy_cobblestone_from_") + ? "minecraft:mossy_cobblestone" : "minecraft:" + recipeName; + assertEquals(recipeName, expectedOutput, + BuiltInRegistries.ITEM.getKey( + recipe.getResultItem(RegistryAccess.EMPTY).getItem()).toString()); + } + } + } finally { + BuiltInRegistries.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 " + BuiltInRegistries.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 { + BuiltInRegistries.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(RegistryAccess.EMPTY).getItem()); + assertEquals(prefix, 1, toVanilla.getResultItem(RegistryAccess.EMPTY).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(RegistryAccess.EMPTY).getItem()); + assertEquals(prefix, 1, fromVanilla.getResultItem(RegistryAccess.EMPTY).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())); + BuiltInRegistries.ITEM.bindTags(tags); + } + + private static Map, List>> snapshotItemTags() { + Map, List>> result = new IdentityHashMap<>(); + BuiltInRegistries.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 = BuiltInRegistries.ITEM.getResourceKey(item).get(); + result.add(BuiltInRegistries.ITEM.getHolderOrThrow(key)); + } + return result; + } + + private static TagKey tagKey(String value) { + return TagKey.create(Registries.ITEM, 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"), + ICondition.IContext.EMPTY)) { + 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 = BuiltInRegistries.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 ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @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..022a0cb68 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/ResourceContractTest.java @@ -0,0 +1,838 @@ +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 net.minecraft.resources.ResourceLocation; +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()); + assertEquals(new HashSet(Arrays.asList( + "minecraft:ocean", "minecraft:deep_ocean", "minecraft:warm_ocean", + "minecraft:lukewarm_ocean", "minecraft:deep_lukewarm_ocean", + "minecraft:cold_ocean", "minecraft:deep_cold_ocean", + "minecraft:frozen_ocean", "minecraft:deep_frozen_ocean")), + stringSet(oil.getAsJsonArray("biome_ids"))); + assertEquals(new HashSet(Arrays.asList("OCEAN")), + stringSet(oil.getAsJsonArray("biome_dictionary"))); + } + + @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_")); + assertRecipeBookFields(recipeFile.getName(), recipe); + 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 advancementsUseMinecraft119ItemPredicateSchema() 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 minecraftOverridesUseForge45WrappersAndRecipeBookFields() throws Exception { + File recipeDirectory = new File(ROOT, "data/minecraft/recipes"); + File[] recipes = recipeDirectory.listFiles((directory, name) -> name.endsWith(".json")); + assertNotNull(recipes); + assertEquals(35, recipes.length); + for (File file : recipes) { + JsonObject outer = json(file); + if ("forge:conditional".equals(outer.get("type").getAsString())) { + assertEquals(file.getName(), 2, outer.getAsJsonArray("recipes").size()); + for (JsonElement element : outer.getAsJsonArray("recipes")) { + JsonObject branch = element.getAsJsonObject(); + assertTrue(file.getName(), branch.get("conditions").isJsonArray()); + assertRecipeBookFields(file.getName(), branch.getAsJsonObject("recipe")); + } + } else { + assertRecipeBookFields(file.getName(), outer); + } + } + } + + @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 forge45ResourcesRetainNativeWallsTagsAndPackFormats() throws Exception { + JsonObject pack = json(new File(ROOT, "pack.mcmeta")); + assertEquals(13, pack.getAsJsonObject("pack").get("pack_format").getAsInt()); + assertEquals(13, pack.getAsJsonObject("pack") + .get("forge:resource_pack_format").getAsInt()); + assertEquals(12, pack.getAsJsonObject("pack") + .get("forge:data_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.119041")); + assertTrue(properties.contains("orespawn_curse_file_id=8780970")); + 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=\"[45,)\"")); + assertTrue(metadata.contains("versionRange=\"[45.4.0,46)\"")); + 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\")")); + + // Power Advantage historically registered its oil in its own namespace. Keep + // Mineralogy's registry identity isolated while contributing both fluids to the + // shared, non-replacing Forge tag so a future compatible Power Advantage build can + // consume either fluid without a registry collision. + ResourceLocation mineralogyOil = ResourceLocation.tryParse("mineralogy:crude_oil"); + ResourceLocation historicalPowerAdvantageOil = ResourceLocation.tryParse("poweradvantage:crude_oil"); + assertNotEquals(historicalPowerAdvantageOil, mineralogyOil); + + JsonObject fluidTag = json(new File(ROOT, "data/forge/tags/fluids/crude_oil.json")); + assertFalse(fluidTag.get("replace").getAsBoolean()); + assertTrue(fluidTag.getAsJsonArray("values").toString().contains("mineralogy:crude_oil")); + assertTrue(fluidTag.getAsJsonArray("values").toString().contains("mineralogy:flowing_crude_oil")); + + JsonObject bucketTag = json(new File(ROOT, "data/forge/tags/items/buckets/crude_oil.json")); + assertFalse(bucketTag.get("replace").getAsBoolean()); + assertTrue(bucketTag.getAsJsonArray("values").toString().contains("mineralogy:crude_oil_bucket")); + } + + @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 Set stringSet(JsonArray values) { + Set result = new HashSet(); + for (JsonElement value : values) result.add(value.getAsString()); + return result; + } + + private static void assertRecipeBookFields(String name, JsonObject recipe) { + String type = recipe.get("type").getAsString(); + if ("minecraft:crafting_shaped".equals(type)) { + assertTrue(name, recipe.has("category")); + assertTrue(name, recipe.has("show_notification")); + assertTrue(name, recipe.get("show_notification").getAsBoolean()); + } else if ("minecraft:crafting_shapeless".equals(type)) { + assertTrue(name, recipe.has("category")); + assertFalse(name, recipe.has("show_notification")); + } else if ("minecraft:smelting".equals(type)) { + assertEquals(name, "blocks", recipe.get("category").getAsString()); + } + } + + 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..e87b2ef02 --- /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.119041", properties.getProperty("mod_version")); + assertEquals("1.19.4", 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.16.119041", properties.getProperty("orespawn_version")); + assertEquals("8780970", properties.getProperty("orespawn_curse_file_id")); + assertEquals("C35F60B6FE2BC9782558CAE374C85C4713038AA58BAE7D281969F80468C21E35", + 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.19")); + 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("clean classes --rerun-tasks --no-build-cache")); + 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..fc30d5eb4 --- /dev/null +++ b/src/test/java/zone/moddev/mc/mineralogy/compat/CobblestoneTagPolicyTest.java @@ -0,0 +1,79 @@ +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 java.lang.reflect.Field; + +import net.minecraft.SharedConstants; +import net.minecraft.core.Holder; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.tags.TagKey; +import net.minecraft.world.item.Item; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.server.Bootstrap; + +import org.junit.BeforeClass; +import org.junit.Test; + +public class CobblestoneTagPolicyTest { + @BeforeClass + public static void initializeRegistries() { + SharedConstants.tryDetectVersion(); + try { + Field field = Bootstrap.class.getDeclaredField("isBootstrapped"); + field.setAccessible(true); + if (!field.getBoolean(null)) { + field.setBoolean(null, true); + BuiltInRegistries.bootStrap(); + } + } catch (ReflectiveOperationException exception) { + throw new AssertionError("Unable to initialize the isolated tag registry", exception); + } + } + + @Test + public void rebuiltTagPreservesVanillaAndAddsOrRemovesConfiguredElements() { + Holder vanilla = holder(Blocks.COBBLESTONE.asItem()); + Holder mineralogyStandIn = holder(Blocks.BASALT.asItem()); + TagKey cobblestone = TagKey.create(Registries.ITEM, + new ResourceLocation("forge", "cobblestone")); + Map, List>> tags = new IdentityHashMap<>(); + tags.put(cobblestone, list(vanilla)); + + CobblestoneTagPolicy.updateTag(tags, BuiltInRegistries.ITEM, Registries.ITEM, + cobblestone.location(), set(mineralogyStandIn), true); + assertEquals(list(vanilla, mineralogyStandIn), tags.get(cobblestone)); + + CobblestoneTagPolicy.updateTag(tags, BuiltInRegistries.ITEM, Registries.ITEM, + cobblestone.location(), set(mineralogyStandIn), false); + assertEquals(list(vanilla), tags.get(cobblestone)); + } + + private static Holder holder(Item item) { + return BuiltInRegistries.ITEM.getHolderOrThrow( + BuiltInRegistries.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 950d914687e3a24e42b691ed62c877ac1b2e2c88 Mon Sep 17 00:00:00 2001 From: JohnBraham Date: Tue, 1 Sep 2026 14:38:45 +0100 Subject: [PATCH 5/5] Install ForgeGradle Java 8 launcher toolchain in CI --- .gitattributes | 6 +++--- .github/workflows/ci.yml | 20 +++++++++++++++---- .github/workflows/codeql-analysis.yml | 8 +++++++- .../mc/mineralogy/WorkflowContractTest.java | 6 ++++++ 4 files changed, 32 insertions(+), 8 deletions(-) diff --git a/.gitattributes b/.gitattributes index ee2bcb7e8..b8bf3130b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,3 @@ -# The checksum-sealed Mavenizer compatibility patch is an immutable build-tool -# fixture. Preserve its exact upstream bytes instead of applying text filters. -ci-fixtures/tools/minecraft-mavenizer-0.5.21-orespawn-compat.patch binary +# The checksum-sealed Mavenizer compatibility files are immutable build-tool +# fixtures. Preserve their exact bytes instead of applying platform text filters. +ci-fixtures/tools/* binary diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b78beb5f5..e7a1ce90e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,12 @@ jobs: distribution: temurin java-version: '25.0.3+9.0.LTS' + - name: Install pinned Java 8 launcher toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + - name: Install pinned Java 17 runtime and toolchain uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 with: @@ -50,7 +56,7 @@ jobs: chmod +x ./gradlew ./gradlew verifyMavenizerCompatibilityFixture help \ --no-daemon --no-build-cache --stacktrace --max-workers=2 \ - -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" \ -Dorg.gradle.java.installations.auto-detect=false \ -Dorg.gradle.java.installations.auto-download=false \ | tee "$RUNNER_TEMP/cold-forge-bootstrap.log" @@ -71,7 +77,7 @@ jobs: set -euo pipefail ./gradlew verifyMavenizerCompatibilityFixture help \ --no-daemon --no-build-cache --stacktrace --max-workers=2 \ - -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" \ -Dorg.gradle.java.installations.auto-detect=false \ -Dorg.gradle.java.installations.auto-download=false find "$GRADLE_USER_HOME" .gradle/mavenizer \ @@ -94,6 +100,12 @@ jobs: distribution: temurin java-version: '25.0.3+9.0.LTS' + - name: Install pinned Java 8 launcher toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + - name: Install pinned Java 17 runtime and toolchain uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 with: @@ -116,7 +128,7 @@ jobs: ./gradlew clean check build javadoc verifyReleaseConfiguration verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums \ -PorespawnVerificationRepository="${{ steps.orespawn.outputs.repository }}" \ --no-daemon --stacktrace \ - -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" \ + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" \ -Dorg.gradle.java.installations.auto-detect=false \ -Dorg.gradle.java.installations.auto-download=false @@ -125,7 +137,7 @@ jobs: ./gradlew genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath -PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }} --no-daemon --stacktrace - -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_25_X64" + -Dorg.gradle.java.installations.paths="$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" -Dorg.gradle.java.installations.auto-detect=false -Dorg.gradle.java.installations.auto-download=false diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 21c1cf45b..ec69cb463 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -32,6 +32,12 @@ jobs: distribution: temurin java-version: '25.0.3+9.0.LTS' + - name: Install pinned Java 8 launcher toolchain + uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + with: + distribution: temurin + java-version: '8.0.502+7' + - name: Install pinned Java 17 runtime and toolchain uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 with: @@ -59,7 +65,7 @@ jobs: gradle_args=( clean classes --rerun-tasks --no-build-cache --no-daemon --stacktrace "-PorespawnVerificationRepository=${{ steps.orespawn.outputs.repository }}" - "-Dorg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_25_X64" + "-Dorg.gradle.java.installations.paths=$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64" -Dorg.gradle.java.installations.auto-detect=false -Dorg.gradle.java.installations.auto-download=false ) diff --git a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java index e87b2ef02..d582bb975 100644 --- a/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java +++ b/src/test/java/zone/moddev/mc/mineralogy/WorkflowContractTest.java @@ -43,8 +43,11 @@ public void ciAndSecurityChecksUsePinnedTargetNativeBuilds() throws Exception { String staging = text("gradle/stage-orespawn-release.sh"); assertTrue(ci.contains("name: Build, test, and audit")); assertTrue(ci.contains("master-1.19")); + assertTrue(ci.contains("Install pinned Java 8 launcher toolchain")); + assertTrue(ci.contains("java-version: '8.0.502+7'")); assertTrue(ci.contains("java-version: '17.0.1+12'")); assertTrue(ci.contains("Install pinned Java 17 runtime and toolchain")); + assertTrue(ci.contains("$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64")); assertTrue(ci.contains("verifyReleaseDependencies verifyReleaseArtifacts writeReleaseChecksums")); assertTrue(ci.contains("genEclipseRuns eclipse isolateEclipseProductionRuns verifyEclipseProductionClasspath")); assertTrue(ci.contains("CHANGELOG.txt")); @@ -52,6 +55,9 @@ public void ciAndSecurityChecksUsePinnedTargetNativeBuilds() throws Exception { 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("Install pinned Java 8 launcher toolchain")); + assertTrue(codeql.contains("java-version: '8.0.502+7'")); + assertTrue(codeql.contains("$JAVA_HOME,$JAVA_HOME_8_X64,$JAVA_HOME_25_X64")); assertTrue(codeql.contains("clean classes --rerun-tasks --no-build-cache")); assertTrue(codeql.contains("--rerun-tasks --no-build-cache")); assertTrue(wrapper.contains("gradle/actions/wrapper-validation@9c971963bec38e04b3d30dcc455b5382be2fdbfb"));

    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⪙)>khs*UN@n75scI@5S%XX=lN^nBJA@Iampx} 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Ƣh5{q+)I6GfgD61z8E{*tI^H{75UhP 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�UuKmu=|It?ImfAKY>sxP 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