diff --git a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java index 2cc44850..cb7a867a 100644 --- a/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java +++ b/src/main/java/ru/betterend/blocks/basis/EndAnvilBlock.java @@ -48,7 +48,10 @@ public class EndAnvilBlock extends AnvilBlock implements BlockPatterned { @Override public List getDrops(BlockState state, LootContext.Builder builder) { - return Collections.singletonList(new ItemStack(this)); + ItemStack stack = new ItemStack(this); + int level = state.getValue(getDestructionProperty()); + stack.getOrCreateTag().putInt("level", level); + return Collections.singletonList(stack); } @Override diff --git a/src/main/java/ru/betterend/item/EndAnvilItem.java b/src/main/java/ru/betterend/item/EndAnvilItem.java new file mode 100644 index 00000000..e9272779 --- /dev/null +++ b/src/main/java/ru/betterend/item/EndAnvilItem.java @@ -0,0 +1,44 @@ +package ru.betterend.item; + +import java.util.List; + +import org.jetbrains.annotations.Nullable; + +import net.fabricmc.api.EnvType; +import net.fabricmc.api.Environment; +import net.minecraft.network.chat.Component; +import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.BlockState; +import ru.betterend.blocks.basis.EndAnvilBlock; +import ru.betterend.registry.EndItems; + +public class EndAnvilItem extends BlockItem { + public EndAnvilItem(Block block) { + super(block, EndItems.makeBlockItemSettings()); + } + + @Override + protected BlockState getPlacementState(BlockPlaceContext blockPlaceContext) { + BlockState blockState = super.getPlacementState(blockPlaceContext); + ItemStack stack = blockPlaceContext.getItemInHand(); + int level = stack.getOrCreateTag().getInt("level"); + blockState = blockState.setValue(((EndAnvilBlock) blockState.getBlock()).getDestructionProperty(), level); + return blockState; + } + + @Override + @Environment(EnvType.CLIENT) + public void appendHoverText(ItemStack itemStack, @Nullable Level level, List list, TooltipFlag tooltipFlag) { + super.appendHoverText(itemStack, level, list, tooltipFlag); + int l = itemStack.getOrCreateTag().getInt("level"); + if (l > 0) { + list.add(new TranslatableComponent("message.betterend.anvil_damage").append(": " + l)); + } + } +} diff --git a/src/main/java/ru/betterend/registry/EndBlocks.java b/src/main/java/ru/betterend/registry/EndBlocks.java index 23370c07..44a7f7b5 100644 --- a/src/main/java/ru/betterend/registry/EndBlocks.java +++ b/src/main/java/ru/betterend/registry/EndBlocks.java @@ -11,6 +11,7 @@ import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; import ru.betterend.BetterEnd; import ru.betterend.blocks.*; +import ru.betterend.blocks.basis.EndAnvilBlock; import ru.betterend.blocks.basis.EndCropBlock; import ru.betterend.blocks.basis.EndFurnaceBlock; import ru.betterend.blocks.basis.EndLeavesBlock; @@ -34,6 +35,7 @@ import ru.betterend.blocks.complex.StoneMaterial; import ru.betterend.blocks.complex.WoodenMaterial; import ru.betterend.config.Configs; import ru.betterend.interfaces.ISpetialItem; +import ru.betterend.item.EndAnvilItem; import ru.betterend.item.material.EndArmorMaterial; import ru.betterend.item.material.EndToolMaterial; @@ -332,7 +334,12 @@ public class EndBlocks { EndItems.registerBlockItem(id, new WaterLilyBlockItem(block, item)); } else { - EndItems.registerBlockItem(id, new BlockItem(block, item)); + if (block instanceof EndAnvilBlock) { + EndItems.registerBlockItem(id, new EndAnvilItem(block)); + } + else { + EndItems.registerBlockItem(id, new BlockItem(block, item)); + } } if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance().get(block).getBurnChance() == 0) { FlammableBlockRegistry.getDefaultInstance().add(block, 5, 5); diff --git a/src/main/resources/assets/betterend/lang/en_us.json b/src/main/resources/assets/betterend/lang/en_us.json index 140e8f20..8a7a40d7 100644 --- a/src/main/resources/assets/betterend/lang/en_us.json +++ b/src/main/resources/assets/betterend/lang/en_us.json @@ -848,5 +848,6 @@ "block.betterend.smaragdant_crystal_slab": "Smaragdant Slab", "block.betterend.smaragdant_crystal_stairs": "Smaragdant Stairs", "block.betterend.smaragdant_crystal_tiles": "Smaragdant Tiles", - "block.betterend.smaragdant_crystal_wall": "Smaragdant Wall" + "block.betterend.smaragdant_crystal_wall": "Smaragdant Wall", + "message.betterend.anvil_damage": "§cDamage" } diff --git a/src/main/resources/assets/betterend/lang/ru_ru.json b/src/main/resources/assets/betterend/lang/ru_ru.json index ae48d1e6..236a8ae4 100644 --- a/src/main/resources/assets/betterend/lang/ru_ru.json +++ b/src/main/resources/assets/betterend/lang/ru_ru.json @@ -867,5 +867,6 @@ "block.betterend.smaragdant_crystal_slab": "Смарагдантовая плита", "block.betterend.smaragdant_crystal_stairs": "Смарагдантовые ступени", "block.betterend.smaragdant_crystal_tiles": "Смарагдантовая плитка", - "block.betterend.smaragdant_crystal_wall": "Смарагдантовая стена" + "block.betterend.smaragdant_crystal_wall": "Смарагдантовая стена", + "message.betterend.anvil_damage": "§cПовреждение" } \ No newline at end of file