43 lines
1.5 KiB
Java
43 lines
1.5 KiB
Java
package ru.betterend.item;
|
|
|
|
import net.fabricmc.api.EnvType;
|
|
import net.fabricmc.api.Environment;
|
|
import net.minecraft.client.renderer.block.model.BlockModel;
|
|
import net.minecraft.core.Registry;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.world.item.ItemStack;
|
|
import net.minecraft.world.item.context.BlockPlaceContext;
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.block.state.BlockState;
|
|
import ru.bclib.client.models.ItemModelProvider;
|
|
import ru.bclib.items.BaseAnvilItem;
|
|
import ru.betterend.blocks.basis.EndAnvilBlock;
|
|
import ru.betterend.registry.EndBlocks;
|
|
|
|
public class EndAnvilItem extends BaseAnvilItem {
|
|
|
|
public final static String DURABILITY = "durability";
|
|
|
|
public EndAnvilItem(Block anvilBlock) {
|
|
super(anvilBlock, EndBlocks.makeBlockItemSettings());
|
|
}
|
|
|
|
@Override
|
|
protected BlockState getPlacementState(BlockPlaceContext blockPlaceContext) {
|
|
BlockState blockState = super.getPlacementState(blockPlaceContext);
|
|
ItemStack stack = blockPlaceContext.getItemInHand();
|
|
int durability = stack.getOrCreateTag().getInt(DURABILITY);
|
|
if (blockState!=null) {
|
|
blockState = blockState.setValue(((EndAnvilBlock) blockState.getBlock()).getDurability(), durability);
|
|
}
|
|
return blockState;
|
|
}
|
|
|
|
@Override
|
|
@Environment(EnvType.CLIENT)
|
|
public BlockModel getItemModel(ResourceLocation resourceLocation) {
|
|
Block block = getBlock();
|
|
ResourceLocation blockId = Registry.BLOCK.getKey(block);
|
|
return ((ItemModelProvider) block).getItemModel(blockId);
|
|
}
|
|
}
|