package com.thebrokenrail.energonrelics.block.battery; import com.thebrokenrail.energonrelics.EnergonRelics; import com.thebrokenrail.energonrelics.block.entity.battery.BatteryCoreBlockEntity; import com.thebrokenrail.energonrelics.api.block.SimpleBlockWithEntity; import com.thebrokenrail.energonrelics.item.MultimeterItem; import net.fabricmc.api.EnvType; import net.fabricmc.api.Environment; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.block.Material; import net.minecraft.block.MaterialColor; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityType; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.text.Text; import net.minecraft.text.TranslatableText; import net.minecraft.util.Formatting; import net.minecraft.util.math.BlockPos; import net.minecraft.world.BlockView; import net.minecraft.world.World; import java.util.List; import java.util.function.Function; public class BatteryCoreBlock extends SimpleBlockWithEntity { public BatteryCoreBlock() { super(FabricBlockSettings.of(Material.STONE, MaterialColor.RED_TERRACOTTA).requiresTool().strength(1.5f, 6.0f)); } @Override protected Function, BlockEntity> getFactory() { return BatteryCoreBlockEntity::new; } @Override @Environment(EnvType.CLIENT) public void appendTooltip(ItemStack stack, BlockView world, List tooltip, TooltipContext options) { super.appendTooltip(stack, world, tooltip, options); tooltip.add(new TranslatableText("text." + EnergonRelics.NAMESPACE + ".battery_core_tooltip", MultimeterItem.format(stack.getOrCreateTag().getCompound("BlockEntityTag").getLong("Energy")).formatted(Formatting.GRAY)).formatted(Formatting.GRAY)); } @Override public void onBreak(World world, BlockPos pos, BlockState state, PlayerEntity player) { super.onBreak(world, pos, state, player); if (player.isCreative()) { Block.dropStacks(state, world, pos, world.getBlockEntity(pos)); } } @Override protected int getMaxCount() { return 1; } }