XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

MyDimension-Lord

【我的世界】我的维度附属模组:维度之主

公开
关注 0 Fork 0 Star 0
UTF-8
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);
    }
}