package com.xfestudio.mydimensionlord.item;
import com.xfestudio.mydimensionlord.equipment.PickaxePowers;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
public final class DimensionPickaxeItem extends PickaxeItem {
@Override public void initializeClient(java.util.function.Consumer<net.minecraftforge.client.extensions.common.IClientItemExtensions> consumer) {
com.xfestudio.mydimensionlord.client.gear.EquipmentClientExtensions.initialize(consumer);
}
public DimensionPickaxeItem(Tier tier, Item.Properties properties) { super(tier, properties.attributes(DiggerItem.createAttributes(tier, 1, -2.8F))); }
@Override public float getDestroySpeed(ItemStack stack, BlockState state) { return Float.MAX_VALUE; }
@Override public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { return true; }
@Override public boolean mineBlock(ItemStack stack, Level level, BlockState state, BlockPos pos, LivingEntity entity) {
boolean result = super.mineBlock(stack, level, state, pos, entity);
if (entity instanceof ServerPlayer player) PickaxePowers.queue(player, stack, pos, state);
return result;
}
@Override public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
if (hand != InteractionHand.MAIN_HAND || !player.isShiftKeyDown()) return super.use(level, player, hand);
ItemStack stack = player.getItemInHand(hand);
if (level.isClientSide()) return InteractionResultHolder.sidedSuccess(stack, true);
PickaxePowers.toggle(player, stack);
return InteractionResultHolder.sidedSuccess(stack, false);
}
}
package com.xfestudio.mydimensionlord.item;
import com.xfestudio.mydimensionlord.equipment.PickaxePowers;
import net.minecraft.core.BlockPos;
import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.InteractionHand;
import net.minecraft.world.InteractionResult;
import net.minecraft.world.InteractionResultHolder;
import net.minecraft.world.entity.LivingEntity;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.*;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.block.state.BlockState;
public final class DimensionPickaxeItem extends PickaxeItem {
@Override public void initializeClient(java.util.function.Consumer<net.minecraftforge.client.extensions.common.IClientItemExtensions> consumer) {
com.xfestudio.mydimensionlord.client.gear.EquipmentClientExtensions.initialize(consumer);
}
public DimensionPickaxeItem(Tier tier, Item.Properties properties) { super(tier, properties.attributes(DiggerItem.createAttributes(tier, 1, -2.8F))); }
@Override public float getDestroySpeed(ItemStack stack, BlockState state) { return Float.MAX_VALUE; }
@Override public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { return true; }
@Override public boolean mineBlock(ItemStack stack, Level level, BlockState state, BlockPos pos, LivingEntity entity) {
boolean result = super.mineBlock(stack, level, state, pos, entity);
if (entity instanceof ServerPlayer player) PickaxePowers.queue(player, stack, pos, state);
return result;
}
@Override public InteractionResultHolder<ItemStack> use(Level level, Player player, InteractionHand hand) {
if (hand != InteractionHand.MAIN_HAND || !player.isShiftKeyDown()) return super.use(level, player, hand);
ItemStack stack = player.getItemInHand(hand);
if (level.isClientSide()) return InteractionResultHolder.sidedSuccess(stack, true);
PickaxePowers.toggle(player, stack);
return InteractionResultHolder.sidedSuccess(stack, false);
}
}