Skip to content

Commit 85f37e5

Browse files
author
Circulate233
committed
完善梦之能量核心的bigint调用
1 parent e0c2b3d commit 85f37e5

File tree

2 files changed

+14
-10
lines changed

2 files changed

+14
-10
lines changed

src/main/java/github/kasuminova/novaeng/common/crafttweaker/util/NovaEngUtils.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,9 @@ public static String formatNumber(long value) {
5858
}
5959

6060
@ZenMethod
61-
public static String formatNumber(String value) {
62-
var BigValue = new BigInteger(value).abs();
61+
public static String formatNumber(BigInteger num) {
62+
var value = num.toString();
63+
var BigValue = num.abs();
6364
long big = BigValue.compareTo(BigLongMax) >= 0 ? Long.MAX_VALUE : BigValue.longValue();
6465
String zf = "";
6566
if (value.startsWith("-")){

src/main/java/github/kasuminova/novaeng/common/machine/DreamEnergyCore.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -162,13 +162,13 @@ public void CInit(DynamicMachine machine){
162162
machine.addMachineEventHandler(ControllerGUIRenderEvent.class, event -> {
163163
var ctrl = event.getController();
164164
var data = ctrl.getCustomDataTag();
165-
var speed = data.getFloat("speed");
165+
var speed = data.hasKey("speed") ? data.getFloat("speed") : 1.0f;
166166
var energyStored = data.getString("energyStored").isEmpty() ? "0":data.getString("energyStored");
167167

168168
String[] info = {
169169
"§b/////////// 梦之管理者 ///////////",
170-
"§b能量储存:§a" + formatNumber(energyStored) + " RF",
171-
"§b输入输出值:§a" + formatNumber((long) (defaultTransferAmount * speed)) + " RF/t",
170+
"§b能量储存:§a" + formatNumber(getBigInt(energyStored)) + " RF",
171+
"§b输入输出值:§a" + formatNumber((long) (defaultTransferAmount * speed),1) + " RF/t",
172172
"§b一分钟内平均交互速度:§a" + change(ctrl) + " RF/t",
173173
"§b///////////////////////////////////"
174174
};
@@ -243,11 +243,14 @@ private String change(TileMultiblockMachineController ctrl){
243243
FixedSizeDeque<String> energy = getEnergyInfo(ctrl.getWorld(),ctrl.getPos());
244244
var newtime = energy.getFirst();
245245
var oldtime = energy.getLast();
246-
var newbig = getBigInt(newtime);
247-
var oldbig = getBigInt(oldtime);
248-
var changel = newbig.subtract(oldbig);
249-
250-
return formatNumber(changel.compareTo(BigLongMax) >= 0 ? longmax : Long.toString(changel.longValue() / (1200L / MinuteScale * energy.size())));
246+
var newbig = newtime == null ? BigInteger.ZERO : getBigInt(newtime);
247+
var oldbig = oldtime == null ? BigInteger.ZERO : getBigInt(oldtime);
248+
if (newbig.equals(oldbig)) {
249+
return "0";
250+
} else {
251+
var changel = newbig.subtract(oldbig);
252+
return formatNumber(newbig.subtract(oldbig));
253+
}
251254
}
252255

253256
private static FixedSizeDeque<String> getEnergyInfo(World world,BlockPos pos) {

0 commit comments

Comments
 (0)