|
12 | 12 | import net.minecraft.world.item.Item; |
13 | 13 | import net.minecraft.world.item.ItemStack; |
14 | 14 | import net.minecraft.world.item.TooltipFlag; |
| 15 | +import net.minecraft.world.item.enchantment.Enchantment; |
| 16 | +import net.minecraft.world.item.enchantment.Enchantments; |
15 | 17 | import net.minecraft.world.level.Level; |
16 | 18 | import net.minecraft.world.level.block.state.BlockState; |
17 | 19 |
|
@@ -66,15 +68,37 @@ public boolean mineBlock(@NotNull ItemStack pStack, @NotNull Level pLevel, @NotN |
66 | 68 |
|
67 | 69 | var electricItem = Objects.requireNonNull(GTCapabilityHelper.getElectricItem(pStack)); |
68 | 70 |
|
| 71 | + var unbreaking = getAllEnchantments(pStack).getOrDefault(Enchantments.UNBREAKING, 0); |
| 72 | + double chance = 1.0f / (unbreaking + 1); |
| 73 | + |
| 74 | + double rand = Math.random(); |
| 75 | + |
69 | 76 | if (electricItem.getCharge() >= GTValues.VEX[tier]) { |
70 | | - // Only discharge if possible to discharge the full amount |
71 | | - electricItem.discharge(GTValues.VEX[tier], tier, true, false, false); |
| 77 | + // Only discharge if possible to discharge the full amount and unbreaking chance doesn't proc |
| 78 | + if (rand <= chance) { |
| 79 | + electricItem.discharge(GTValues.VEX[tier], tier, true, false, false); |
| 80 | + } |
72 | 81 | return true; |
73 | 82 | } else { |
74 | 83 | return false; |
75 | 84 | } |
76 | 85 | } |
77 | 86 |
|
| 87 | + @Override |
| 88 | + public int getEnchantmentValue(ItemStack stack) { |
| 89 | + return 22; |
| 90 | + } |
| 91 | + |
| 92 | + @Override |
| 93 | + public boolean canApplyAtEnchantingTable(ItemStack stack, Enchantment enchantment) { |
| 94 | + return enchantment == Enchantments.UNBREAKING; |
| 95 | + } |
| 96 | + |
| 97 | + @Override |
| 98 | + public boolean isEnchantable(ItemStack stack) { |
| 99 | + return true; |
| 100 | + } |
| 101 | + |
78 | 102 | @Override |
79 | 103 | public void appendHoverText(@NotNull ItemStack stack, @Nullable Level level, |
80 | 104 | @NotNull List<Component> tooltipComponents, @NotNull TooltipFlag isAdvanced) { |
|
0 commit comments