优化电池物品实现

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