diff --git a/src/main/java/com/extendedae_plus/ae/screen/EntitySpeedTickerScreen.java b/src/main/java/com/extendedae_plus/ae/screen/EntitySpeedTickerScreen.java index 3bbe7e1..087c36f 100644 --- a/src/main/java/com/extendedae_plus/ae/screen/EntitySpeedTickerScreen.java +++ b/src/main/java/com/extendedae_plus/ae/screen/EntitySpeedTickerScreen.java @@ -2,8 +2,10 @@ package com.extendedae_plus.ae.screen; import appeng.client.gui.implementations.UpgradeableScreen; import appeng.client.gui.style.ScreenStyle; +import appeng.client.gui.widgets.CommonButtons; import com.extendedae_plus.ae.menu.EntitySpeedTickerMenu; import com.extendedae_plus.util.PowerUtils; +import appeng.util.Platform; import net.minecraft.network.chat.Component; import net.minecraft.world.entity.player.Inventory; @@ -12,6 +14,7 @@ public class EntitySpeedTickerScreen extends Up public EntitySpeedTickerScreen( EntitySpeedTickerMenu menu, Inventory playerInventory, Component title, ScreenStyle style) { super((C) menu, playerInventory, title, style); + this.addToLeftToolbar(CommonButtons.togglePowerUnit()); } @Override @@ -34,7 +37,7 @@ public class EntitySpeedTickerScreen extends Up double remainingRatio = PowerUtils.getRemainingRatio(energyCardCount); setTextContent("speed", Component.translatable("screen.extendedae_plus.entity_speed_ticker.speed", speed)); - setTextContent("energy", Component.translatable("screen.extendedae_plus.entity_speed_ticker.energy", PowerUtils.formatPower(finalPower))); + setTextContent("energy", Component.translatable("screen.extendedae_plus.entity_speed_ticker.energy", Platform.formatPower(finalPower, false))); setTextContent("power_ratio", Component.translatable("screen.extendedae_plus.entity_speed_ticker.power_ratio", PowerUtils.formatPercentage(remainingRatio))); setTextContent("multiplier", Component.translatable("screen.extendedae_plus.entity_speed_ticker.multiplier", String.format("%.2fx", multiplier))); } diff --git a/src/main/java/com/extendedae_plus/util/PowerUtils.java b/src/main/java/com/extendedae_plus/util/PowerUtils.java index 067af5c..3727ecb 100644 --- a/src/main/java/com/extendedae_plus/util/PowerUtils.java +++ b/src/main/java/com/extendedae_plus/util/PowerUtils.java @@ -52,20 +52,6 @@ public final class PowerUtils { return 0.5 * (1.0 - Math.pow(0.7, energyCardCount)); } - /** - * 计算最终能耗(取整,最小为 1) - * @param speedCardCount 加速卡数量 - * @param energyCardCount 能源卡数量 - * @return 最终能耗(int) - */ - public static int getFinalPowerDraw(int speedCardCount, int energyCardCount) { - double raw = getRawPower(speedCardCount); - double reduction = getReductionPercent(energyCardCount); - // 与原始实现兼容:raw * (1 - reduction) 后按 0.5 的单位转换(与 AE/FE 换算保持一致) - double adjusted = raw * (1.0 - reduction) / 2.0; - return (int) Math.max(1, Math.round(adjusted)); - } - /** * 计算最终能耗(浮点数) * @param speedCardCount 加速卡数量 @@ -88,34 +74,6 @@ public final class PowerUtils { return 1.0 - getReductionPercent(energyCardCount); } - /** - * 将能耗数字按单位缩写(K/M/G/T/P/E)格式化为更短的字符串 - * 例如 1500 -> "1.50K", 2000000 -> "2.00M" - */ - public static String formatPower(double value) { - double abs = Math.abs(value); - if (abs >= 1e18) return formatWithSuffix(value, 1e18, "E"); - if (abs >= 1e15) return formatWithSuffix(value, 1e15, "P"); - if (abs >= 1e12) return formatWithSuffix(value, 1e12, "T"); - if (abs >= 1e9) return formatWithSuffix(value, 1e9, "G"); - if (abs >= 1e6) return formatWithSuffix(value, 1e6, "M"); - if (abs >= 1e3) return formatWithSuffix(value, 1e3, "K"); - // 小于 1000 直接返回整数形式 - if (Math.floor(value) == value) { - return String.format("%d", (long) value); - } - return String.format("%.2f", value); - } - - private static String formatWithSuffix(double value, double unit, String suffix) { - double v = value / unit; - // 如果 v 是整数则不显示小数 - if (Math.abs(v - Math.round(v)) < 1e-9) { - return String.format("%d%s", Math.round(v), suffix); - } - return String.format("%.2f%s", v, suffix); - } - /** * 将剩余功耗比率格式化为百分比字符串(例如 0.9 -> "90%") */