filename:
common/src/main/java/rearth/oritech/item/other/SmallEnergyStorageBlockItem.java
branch:
1.21
back to repo
package rearth.oritech.item.other;
import net.minecraft.block.Block;
import net.minecraft.item.BlockItem;
import net.minecraft.item.ItemStack;
import net.minecraft.item.tooltip.TooltipType;
import net.minecraft.text.Text;
import net.minecraft.util.Formatting;
import rearth.oritech.Oritech;
import rearth.oritech.api.energy.EnergyApi;
import rearth.oritech.api.energy.containers.SimpleEnergyItemStorage;
import rearth.oritech.util.TooltipHelper;
import java.util.List;
public class SmallEnergyStorageBlockItem extends BlockItem implements EnergyApi.ItemProvider {
public SmallEnergyStorageBlockItem(Block block, Settings settings) {
super(block, settings);
}
@Override
public void appendTooltip(ItemStack stack, TooltipContext context, List<Text> tooltip, TooltipType type) {
var storedEnergy = stack.getOrDefault(EnergyApi.ITEM.getEnergyComponent(), 0L);
if (storedEnergy != 0) {
var text = Text.translatable("tooltip.oritech.energy_stored", TooltipHelper.getEnergyText(storedEnergy));
tooltip.add(text.formatted(Formatting.GOLD));
}
super.appendTooltip(stack, context, tooltip, type);
}
@Override
public boolean isItemBarVisible(ItemStack stack) {
var contentEmpty = stack.getOrDefault(EnergyApi.ITEM.getEnergyComponent(), 0L) <= 0;
return !contentEmpty;
}
@Override
public int getItemBarColor(ItemStack stack) {
return 0xff7007;
}
@Override
public int getItemBarStep(ItemStack stack) {
var capacity = Oritech.CONFIG.smallEnergyStorage.energyCapacity();
var fillAmount = stack.getOrDefault(EnergyApi.ITEM.getEnergyComponent(), 0L);
return Math.round((fillAmount * 100f / capacity) * ITEM_BAR_STEPS) / 100;
}
@Override
public EnergyApi.EnergyStorage getEnergyStorage(ItemStack stack) {
return new SimpleEnergyItemStorage(Oritech.CONFIG.smallEnergyStorage.maxEnergyInsertion(), Oritech.CONFIG.smallEnergyStorage.maxEnergyExtraction(), Oritech.CONFIG.smallEnergyStorage.energyCapacity(), stack);
}
}