Project Expansion

Project Expansion

4M Downloads

EMC/s numeric display is not working as intended when you are losing EMC over time

James103 opened this issue ยท 4 comments

commented

As of mod version 1.0.11 for Minecraft 1.16.5, losing EMC over time shows two minus signs in front of the number, like below:

To reproduce:

  1. Use a Transmutation Table or something similar to put in some items.
  2. Wait 5 seconds.
  3. Use a Transmutation Table or similar to take out many items.
  4. Notice that the EMC display shows you are losing EMC, but with 2 minus signs instead of 1.
    image

To reproduce with larger numbers, which cause the number to not be shortened when required:

  1. emc set @s 1000000000000
  2. Wait 5 seconds
  3. emc set @s 100000000000
  4. Notice that the EMC display shows you are losing EMC, but the number is not formatted.
    image

This may be caused by the following line of code prepending a negative sign to a negative number that formats to a string generated by the EMCFormat.INSTANCE.format function which already contains a leading negative sign:

if(!change.equals(BigInteger.ZERO)) str += " " + (change.compareTo(BigInteger.ZERO) > 0 ? (TextFormatting.GREEN + "+") : (TextFormatting.RED + "-")) + EMCFormat.INSTANCE.format(change.doubleValue()) + "/s";

commented

Pretty sure I even saw this issue while fixing #15 and just paid no mind to it, this seems like an easy fix that I should be able to get done once I'm back at home later

commented

The number format breaking for negative numbers is because the format function does not check that the number is negative before formatting the number.

commented

Fixed in [1.16] 1.0.12

commented

Backported to 1.15 in [1.15] 1.0.11