优化电池物品实现

This commit is contained in:
Light_Quanta 2025-03-11 19:29:56 +08:00
parent ce371f2e30
commit 1544196810
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959

View file

@ -8,10 +8,10 @@ import net.minecraft.world.item.Item;
import net.minecraft.world.item.ItemStack;
import net.minecraftforge.common.capabilities.ForgeCapabilities;
import net.minecraftforge.common.capabilities.ICapabilityProvider;
import net.minecraftforge.energy.IEnergyStorage;
import org.jetbrains.annotations.NotNull;
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
public class BatteryItem extends Item {
@ -27,25 +27,18 @@ public class BatteryItem extends Item {
@Override
public boolean isBarVisible(ItemStack pStack) {
if (!pStack.getCapability(ForgeCapabilities.ENERGY).isPresent()) {
return false;
}
AtomicInteger energy = new AtomicInteger(0);
pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
e -> energy.set(e.getEnergyStored())
);
return energy.get() != maxEnergy;
return pStack.getCapability(ForgeCapabilities.ENERGY)
.map(IEnergyStorage::getEnergyStored)
.orElse(0) != maxEnergy;
}
@Override
public int getBarWidth(ItemStack pStack) {
AtomicInteger energy = new AtomicInteger(0);
pStack.getCapability(ForgeCapabilities.ENERGY).ifPresent(
e -> energy.set(e.getEnergyStored())
);
var energy = pStack.getCapability(ForgeCapabilities.ENERGY)
.map(IEnergyStorage::getEnergyStored)
.orElse(0);
return Math.round((float) energy.get() * 13.0F / maxEnergy);
return Math.round((float) energy * 13.0F / maxEnergy);
}
@Override
@ -54,7 +47,7 @@ public class BatteryItem extends Item {
}
@Override
public int getBarColor(ItemStack pStack) {
public int getBarColor(@NotNull ItemStack pStack) {
return 0xFFFF00;
}