diff --git a/src/main/java/ru/betterend/blocks/basis/BlockOre.java b/src/main/java/ru/betterend/blocks/basis/BlockOre.java index 5156fec6..21745140 100644 --- a/src/main/java/ru/betterend/blocks/basis/BlockOre.java +++ b/src/main/java/ru/betterend/blocks/basis/BlockOre.java @@ -1,6 +1,8 @@ package ru.betterend.blocks.basis; +import java.util.Collections; import java.util.List; +import java.util.Random; import com.google.common.collect.Lists; @@ -23,8 +25,9 @@ public class BlockOre extends OreBlock { private final Item dropItem; private final int minCount; private final int maxCount; + private final int expirience; - public BlockOre(Item drop, int minCount, int maxCount) { + public BlockOre(Item drop, int minCount, int maxCount, int expirience) { super(FabricBlockSettings.of(Material.STONE, MaterialColor.SAND) .hardness(3F) .resistance(9F) @@ -33,12 +36,21 @@ public class BlockOre extends OreBlock { this.dropItem = drop; this.minCount = minCount; this.maxCount = maxCount; + this.expirience = expirience; + } + + @Override + protected int getExperienceWhenMined(Random random) { + return this.expirience > 0 ? random.nextInt(expirience) + 1 : 0; } @Override public List getDroppedStacks(BlockState state, LootContext.Builder builder) { ItemStack tool = builder.get(LootContextParameters.TOOL); if (tool != null && tool.isEffectiveOn(state)) { + if (EnchantmentHelper.getLevel(Enchantments.SILK_TOUCH, tool) > 0) { + return Collections.singletonList(new ItemStack(this)); + } int count = 0; int fortune = EnchantmentHelper.getLevel(Enchantments.FORTUNE, tool); if (fortune > 0) { diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 411d6046..db1cbb90 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -157,7 +157,7 @@ public class EndBlocks { public static final Block TWISTED_VINE = registerBlock("twisted_vine", new BlockVine()); // Ores // - public static final Block ENDER_ORE = registerBlock("ender_ore", new BlockOre(EndItems.ENDER_DUST, 1, 3)); + public static final Block ENDER_ORE = registerBlock("ender_ore", new BlockOre(EndItems.ENDER_DUST, 1, 3, 5)); // Materials // public static final Block TERMINITE_BLOCK = registerBlock("terminite_block", new TerminiteBlock());