fix: restore ore drops and make them configurable via procedure

- Renamed data folders to 1.21.1 standards (singular names)
- Implemented OreBreakEventHandler to call ConfigurableOreDropsProcedure
- Updated procedure and config to handle all custom and variant ores
- Modified loot tables to only handle Silk Touch (manual drops via procedure)
- Fixed missing drops issue caused by folder name mismatch in 1.21.1
This commit is contained in:
feldenr
2026-02-02 23:11:42 +01:00
parent 4b9a4b0a05
commit bca6034dd7
53 changed files with 828 additions and 1355 deletions
@@ -202,8 +202,21 @@ public class ModConfigs {
public final ModConfigSpec.ConfigValue<Integer> impureGoldOreMinDrops;
public final ModConfigSpec.ConfigValue<Integer> impureGoldOreMaxDrops;
public final ModConfigSpec.ConfigValue<Integer> lapisOreMinDrops;
public final ModConfigSpec.ConfigValue<Integer> lapisOreMaxDrops;
public final ModConfigSpec.ConfigValue<Integer> redstoneOreMinDrops;
public final ModConfigSpec.ConfigValue<Integer> redstoneOreMaxDrops;
public final ModConfigSpec.ConfigValue<Integer> emeraldOreMinDrops;
public final ModConfigSpec.ConfigValue<Integer> emeraldOreMaxDrops;
public final ModConfigSpec.ConfigValue<Integer> copperOreMinDrops;
public final ModConfigSpec.ConfigValue<Integer> copperOreMaxDrops;
public final ModConfigSpec.ConfigValue<Integer> oreExperienceDrops;
public DropsConfig(ModConfigSpec.Builder builder) {
builder.push("drops");
@@ -273,7 +286,35 @@ public class ModConfigs {
.defineInRange("goldMaxDrops", 2, 0, 64);
builder.pop();
builder.push("vanilla_ore_variants");
lapisOreMinDrops = builder
.comment("Minimum lapis dropped (default: 4)")
.defineInRange("lapisMinDrops", 4, 0, 64);
lapisOreMaxDrops = builder
.comment("Maximum lapis dropped (default: 9)")
.defineInRange("lapisMaxDrops", 9, 0, 64);
redstoneOreMinDrops = builder
.comment("Minimum redstone dropped (default: 4)")
.defineInRange("redstoneMinDrops", 4, 0, 64);
redstoneOreMaxDrops = builder
.comment("Maximum redstone dropped (default: 5)")
.defineInRange("redstoneMaxDrops", 5, 0, 64);
emeraldOreMinDrops = builder
.comment("Minimum emerald dropped (default: 1)")
.defineInRange("emeraldMinDrops", 1, 0, 64);
emeraldOreMaxDrops = builder
.comment("Maximum emerald dropped (default: 1)")
.defineInRange("emeraldMaxDrops", 1, 0, 64);
copperOreMinDrops = builder
.comment("Minimum copper dropped (default: 2)")
.defineInRange("copperMinDrops", 2, 0, 64);
copperOreMaxDrops = builder
.comment("Maximum copper dropped (default: 5)")
.defineInRange("copperMaxDrops", 5, 0, 64);
builder.pop();
oreExperienceDrops = builder
.comment("Experience dropped when mining custom ores (default: 2)")
.defineInRange("oreExperience", 2, 0, 100);
@@ -0,0 +1,52 @@
package net.mcreator.customoregen.event;
import net.neoforged.neoforge.event.level.BlockEvent;
import net.neoforged.fml.common.EventBusSubscriber;
import net.neoforged.bus.api.SubscribeEvent;
import net.minecraft.world.level.block.state.BlockState;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.entity.player.Player;
import net.mcreator.customoregen.procedures.ConfigurableOreDropsProcedure;
import net.mcreator.customoregen.init.CustomOreGenModBlocks;
import net.mcreator.customoregen.CustomOreGenMod;
@EventBusSubscriber(modid = CustomOreGenMod.MODID)
public class OreBreakEventHandler {
@SubscribeEvent
public static void onBlockBreak(BlockEvent.BreakEvent event) {
BlockState state = event.getState();
Block block = state.getBlock();
Player player = event.getPlayer();
String oreType = null;
if (block == CustomOreGenModBlocks.SHARDDIAMONDBLOCKORE.get() || block == CustomOreGenModBlocks.DEEPSLATESHARDDIAMONDORE.get()) {
oreType = "shard_diamond";
} else if (block == CustomOreGenModBlocks.CONCENTRATEDCOALORE.get()) {
oreType = "concentrated_coal";
} else if (block == CustomOreGenModBlocks.PUREGOLDENORE.get() || block == CustomOreGenModBlocks.DEEPSLATEPUREGOLDENORE.get()) {
oreType = "pure_golden";
} else if (block == CustomOreGenModBlocks.IRONORE.get() || block == CustomOreGenModBlocks.DEEPSLATEIRONORE.get()) {
oreType = "impure_iron";
} else if (block == CustomOreGenModBlocks.DEEPSLATEDIAMONDORE.get()) {
oreType = "concentrated_diamond";
} else if (block == CustomOreGenModBlocks.LAPISORE.get() || block == CustomOreGenModBlocks.DEEPSLATELAPISORE.get()) {
oreType = "lapis";
} else if (block == CustomOreGenModBlocks.REDSTONEORE.get() || block == CustomOreGenModBlocks.DEEPSLATEREDSTONEORE.get()) {
oreType = "redstone";
} else if (block == CustomOreGenModBlocks.HIGHEMERALDORE.get() || block == CustomOreGenModBlocks.LOWEREMERALDORE.get()) {
oreType = "emerald";
} else if (block == CustomOreGenModBlocks.COPPERHIGHORE.get() || block == CustomOreGenModBlocks.COPPERLOWERORE.get()) {
oreType = "copper";
}
if (oreType != null) {
// Ensure the player is using the correct tool to get drops
if (player != null && player.hasCorrectToolForDrops(state)) {
ConfigurableOreDropsProcedure.execute(event.getLevel(), event.getPos().getX(), event.getPos().getY(), event.getPos().getZ(), player, oreType);
}
}
}
}
@@ -107,7 +107,32 @@ public class ConfigurableOreDropsProcedure {
dropItem = new ItemStack(Items.RAW_GOLD);
break;
case "lapis":
minDrops = ModConfigs.DROPS.lapisOreMinDrops.get();
maxDrops = ModConfigs.DROPS.lapisOreMaxDrops.get();
dropItem = new ItemStack(Items.LAPIS_LAZULI);
break;
case "redstone":
minDrops = ModConfigs.DROPS.redstoneOreMinDrops.get();
maxDrops = ModConfigs.DROPS.redstoneOreMaxDrops.get();
dropItem = new ItemStack(Items.REDSTONE);
break;
case "emerald":
minDrops = ModConfigs.DROPS.emeraldOreMinDrops.get();
maxDrops = ModConfigs.DROPS.emeraldOreMaxDrops.get();
dropItem = new ItemStack(Items.EMERALD);
break;
case "copper":
minDrops = ModConfigs.DROPS.copperOreMinDrops.get();
maxDrops = ModConfigs.DROPS.copperOreMaxDrops.get();
dropItem = new ItemStack(Items.RAW_COPPER);
break;
default:
return;
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:concentratedcoalore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/concentratedcoalore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:copper_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/copperhighore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_copper_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/copperlowerore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatediamondore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:deepslateironore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslateironore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_lapis_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatelapisore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatepuregoldenore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_redstone_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslateredstoneore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:deepslatesharddiamondore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatesharddiamondore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:emerald_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/highemeraldore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/ironore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lapis_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/lapisore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_emerald_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/loweremeraldore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/puregoldenore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:redstone_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/redstoneore"
}
@@ -0,0 +1,42 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:sharddiamondblockore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/sharddiamondblockore"
}
@@ -1,86 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:coal",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"sub_predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:concentratedcoalore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"sub_predicates": {
"minecraft:enchantments": [
{
"enchantments": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/concentratedcoalore"
}
@@ -1,85 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": {
"min": 1,
"max": 2
},
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_copper",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 5
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:copper_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/copperhighore"
}
@@ -1,85 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": {
"min": 1,
"max": 2
},
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_copper",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 2,
"max": 6
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_copper_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/copperlowerore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:diamond_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatediamondore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:deepslateironore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslateironore"
}
@@ -1,90 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lapis_lazuli",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 4,
"max": 6
}
},
{
"function": "enchant_with_levels",
"treasure": true,
"levels": {
"min": 1,
"max": 10
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_lapis_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatelapisore"
}
@@ -1,89 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": {
"min": 1,
"max": 2
},
"bonus_rolls": {
"min": 1,
"max": 2
},
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_gold",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatepuregoldenore"
}
@@ -1,85 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": {
"min": 1,
"max": 2
},
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:redstone",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 4,
"max": 6
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_redstone_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslateredstoneore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:diamondshard",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:deepslatesharddiamondore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/deepslatesharddiamondore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:emerald",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:emerald_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/highemeraldore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_iron",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:iron_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/ironore"
}
@@ -1,90 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lapis_lazuli",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 4,
"max": 8
}
},
{
"function": "enchant_with_levels",
"treasure": true,
"levels": {
"min": 0,
"max": 5
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:lapis_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/lapisore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:emerald",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:deepslate_emerald_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/loweremeraldore"
}
@@ -1,89 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": {
"min": 1,
"max": 2
},
"bonus_rolls": {
"min": 1,
"max": 2
},
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:raw_gold",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:gold_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/puregoldenore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:redstone",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 4,
"max": 5
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "minecraft:redstone_ore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/redstoneore"
}
@@ -1,82 +0,0 @@
{
"type": "minecraft:block",
"pools": [
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:diamondshard",
"weight": 1,
"conditions": [
{
"condition": "minecraft:inverted",
"term": {
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 2
}
},
{
"function": "minecraft:apply_bonus",
"enchantment": "minecraft:fortune",
"formula": "minecraft:ore_drops"
}
]
}
]
},
{
"rolls": 1,
"entries": [
{
"type": "minecraft:item",
"name": "custom_ore_gen:sharddiamondblockore",
"weight": 1,
"conditions": [
{
"condition": "minecraft:match_tool",
"predicate": {
"enchantments": [
{
"enchantment": "minecraft:silk_touch",
"levels": {
"min": 1
}
}
]
}
}
],
"functions": [
{
"function": "set_count",
"count": {
"min": 1,
"max": 1
}
}
]
}
]
}
],
"random_sequence": "custom_ore_gen:blocks/sharddiamondblockore"
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"custom_ore_gen:sharddiamondhelmet",
"custom_ore_gen:sharddiamondchestplate",
"custom_ore_gen:sharddiamondleggings",
"custom_ore_gen:sharddiamondboots"
]
}
@@ -0,0 +1,13 @@
{
"replace": false,
"values": [
"custom_ore_gen:sharddiamondpickaxe",
"custom_ore_gen:sharddiamondshovel",
"custom_ore_gen:sharddiamondaxe",
"custom_ore_gen:sharddiamondpaxel",
"custom_ore_gen:sharddiamondhelmet",
"custom_ore_gen:sharddiamondchestplate",
"custom_ore_gen:sharddiamondleggings",
"custom_ore_gen:sharddiamondboots"
]
}
@@ -0,0 +1,9 @@
{
"replace": false,
"values": [
"custom_ore_gen:sharddiamondpickaxe",
"custom_ore_gen:sharddiamondshovel",
"custom_ore_gen:sharddiamondaxe",
"custom_ore_gen:sharddiamondpaxel"
]
}
@@ -0,0 +1,7 @@
{
"replace": false,
"values": [
"custom_ore_gen:sharddiamondaxe",
"custom_ore_gen:sharddiamondpaxel"
]
}