From 3a35dc3430ec0f237435f38bab76244365b70bce Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Fri, 12 Sep 2025 01:11:09 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E4=BD=93=E5=8A=A0=E9=80=9F?= =?UTF-8?q?=E5=99=A8=E7=95=8C=E9=9D=A2=E6=B7=BB=E5=8A=A0=E8=83=BD=E6=BA=90?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=8D=95=E4=BD=8D=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ae/screen/EntitySpeedTickerScreen.java | 5 ++- .../com/extendedae_plus/util/PowerUtils.java | 42 ------------------- 2 files changed, 4 insertions(+), 43 deletions(-) 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%") */